Beyond Linux® From Scratch (Edição systemd )

Versão 11.3

A Equipe de Desenvolvimento do BLFS

Direitos autorais © 1999-2023, 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 2023-03-01

Histórico de Revisões
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) pelo mundo. Eles verdadeiramente permitem que os(as) usuários(as) implementem o lema Sua distribuição, suas 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)

Introdução

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 - LXDE

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. Bem vindo(a) 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 sobre 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 (Capítulo 6, Editores) e "Shells" (Capítulo 7, Shells). Na verdade, você possivelmente deseje consultar algumas partes desse capítulo (especialmente as seções sobre Editores e Sistemas de Arquivos) enquanto constrói seu 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 LXDE 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-1.2.7 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

Ê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.15

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.

Dependências Recomendadas

Essas são dependências que os(as) editores(as) do BLFS determinaram que são importantes para fornecer recursos razoáveis ao pacote. As instruções de instalação do pacote assumem que elas estão instaladas. Se um pacote recomendado não estiver instalado, [então] as instruções possivelmente exigirão modificações para acomodar o pacote ausente.

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:

Seção mestre --->
  Subseção --->
    [*]     Parâmetro exigido                      [CONFIG_REQU_PAR]
    <*>     Parâmetro exigido (não como módulo)     [CONFIG_REQU_PAR_NMOD]
    <*/M>   Parâmetro exigido (poderia ser um módulo) [CONFIG_REQU_PAR_MOD]
    <*/M/ > Parâmetro opcional                      [CONFIG_OPT_PAR]
    [ ] Parâmetro incompatível                      [CONFIG_INCOMP_PAR]
    < > Parâmetro incompatível (mesmo como módulo)    [CONFIG_INCOMP_PAR_MOD]

[CONFIG_...] na direita fornece o nome da opção, de forma que você pode facilmente verificar se ela está configurada no seu arquivo config. 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 opcional raramente usada: a opção pode ser integrada, um módulo ou não selecionada: ela possivelmente seja configurada da maneira que você desejar
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.

 

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 11.3 datada de 1º de março de 2023. Esta é a ramificação 11.3-systemd do livro do BLFS, atualmente direcionando para o livro 11.3-systemd do LFS. Para versões de desenvolvimento, se essa versão for mais antiga que um mês, [então] é provável que o seu 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: 11.3 – 1º de março de 2023

Entradas do Registro das Mudanças:

  • 1º março 2023

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

  • 27 fevereiro 2023

    • [renodr] - Adicionar informação para a página do alsa-utils a respeito de configurar a placa padrão de som.

    • [renodr] - Consertar quebra do seamonkey quando reproduz áudio quando é compilado com rustc-1.67 ou superior.

    • [renodr] - Adicionar o intel-media-driver para aceleração de vídeo em CPUs Intel Broadwell e superiores. Corrige #17668.

    • [renodr] - Adicionar intel-gmmlib para intel-media-driver. Corrige #17668.

  • 26 fevereiro 2023

    • [ken] - Retrabalhar dependências inkscape: Existem extensões (python) centrais embarcadas e instaladas por inkscape-1.2.2; essas exigem vários módulos novos ou, do contrário, elas não funcionarão: CacheControl-0.12.11 (com uma dependência de msgpack-1.0.4), cssselect-1.2.0, numpy-1.24.0 e pyserial-3.5.

  • 25 fevereiro 2023

    • [renodr] — Atualização para xf86-video-intel-20230223. Corrige #17668.

    • [timtas] — Atualização para thunar-4.18.4. Corrige #17699.

    • [timtas] — Atualização para transmission-4.0.1. Corrige #17700.

  • 24 fevereiro 2023

    • [bdubbs] - Atualização para font-util-1.4.0 (Xorg Font). Corrige #17695.

    • [bdubbs] — Atualização para unrar-6.2.6. Corrige #17684.

    • [bdubbs] — Atualização para gdb-13.1. Corrige #17679.

    • [bdubbs] — Atualização para parole-4.18.0. Corrige #17677.

    • [bdubbs] — Atualização para xf86-video-amdgpu-23.0.0. Corrige #17698.

    • [bdubbs] — Atualização para sudo-1.9.13p1. Corrige #17692.

    • [bdubbs] — Atualização para gparted-1.5.0. Corrige #17690.

  • 23 fevereiro 2023

    • [ken] — Atualização para dvisvgm-3.0.3. Corrige #17691.

    • [ken] - Atualização para HTTP-Daemon-6.15 (módulo Perl; Atualização de Segurança). Corrige #17696.

  • 22 fevereiro 2023

    • [renodr] — Atualização para epiphany-43.1 (Atualização de Segurança). Corrige #17689.

    • [renodr] - Move GDM para Gerenciadores de Tela.

    • [renodr] — Atualização para gnome-shell-43.3. Corrige #17662.

    • [renodr] — Atualização para mutter-43.3. Corrige #17663.

  • 21 fevereiro 2023

    • [renodr] — Atualização para gnome-backgrounds-43.1. Corrige #17671.

    • [renodr] — Atualização para gnome-desktop-43.2. Corrige #17670.

    • [renodr] — Atualização para Thunderbird-102.8.0 (Atualização de Segurança). Corrige #17664.

    • [pierre] — Atualização para Java-19.0.2+7 (atualização de segurança). Corrige #17674.

    • [bdubbs] — Atualização para sudo-1.9.13. Corrige #17652.

    • [bdubbs] — Atualização para curl-7.88.1 (Atualização de Segurança). Corrige #17656.

    • [bdubbs] — Atualização para bind-9.18.12. Corrige #17660.

  • 20 fevereiro 2023

    • [bdubbs] — Atualização para plasma5-5.26.5. Corrige #17471.

  • 19 fevereiro 2023

    • [bdubbs] - Atualização para kf5-apps-22.12.2, incluindo kate, kwave e falkon. Corrige #17485.

    • [bdubbs] - Atualização para kf5-5.103, incluindo extra-cmake-modules, oxygen-icons e breeze-icons. Corrige #17518.

    • [bdubbs] — Atualização para pipewire-0.3.66. Corrige #17672.

    • [bdubbs] — Atualização para userspace-rcu-0.14. Corrige #17653.

    • [bdubbs] — Atualização para tigervnc-1.13.0. Corrige #17616.

    • [pierre] - Atualização para OpenJDK-19.0.2+7 (atualização de segurança). Parte de #17674.

  • 18 fevereiro 2023

    • [renodr] — Atualização para webkitgtk-2.38.5. Corrige #17658.

    • [xry111] - Remenda GRUB-2.06 para um problema deflagrado com e2fsprogs-1.47.0. Endereça LFS #5219.

  • 17 fevereiro 2023

    • [thomas] - Atualização para xfce4-notifyd-0.8.1 e lê xfce-dev-tools-4.18.0 como uma dependência em tempo de construção de xfce4-notifyd. Corrige #17673.

    • [ken] — Atualização para node.js-v18.14.1 (Atualização de Segurança). Corrige #17669.

  • 16 fevereiro 2023

    • [renodr] — Atualização para PHP-8.2.3 (Atualização de Segurança). Corrige #17654.

    • [renodr] — Atualização para mariadb-10.6.12. Corrige #17665.

    • [renodr] — Atualização para git-2.39.2 (Atualização de Segurança). Corrige #17651.

    • [renodr] — Atualização para harfbuzz-7.0.0. Corrige #17634.

    • [renodr] — Atualização para xterm-379. Corrige #17661.

    • [renodr] — Atualização para freetype-2.13.0. Corrige #17619.

    • [renodr] - Adapta Subversion para Ruby-3.2. Corrige #17666.

  • 15 fevereiro 2023

    • [ken] — Atualização para x264-20230215 e x265-20230215. Corrige #17657.

  • 14 fevereiro 2023

    • [ken] - Atualização para firefox-102.8.0 e JS-102.8.0 (Atualizações de Segurança). Corrige #17650.

    • [renodr] — Atualização para gnome-control-center-43.4.1. Corrige #17649.

    • [renodr] — Atualização para libadwaita-1.2.2. Corrige #17644.

    • [renodr] — Atualização para vala-0.56.4. Corrige #17643.

    • [renodr] — Atualização para vte-0.70.3. Corrige #17637.

    • [renodr] — Atualização para ruby-3.2.1. Corrige #17614.

    • [ken] — Atualização para nghttp2-1.52.0. Corrige #17647.

    • [timtas] — Atualização para openldap-2.6.4.. Corrige #17648.

    • [thomas] — Atualização para traceroute-2.1.2.. Corrige #17646.

  • 13 fevereiro 2023

    • [renodr] — Atualização para seamonkey-2.53.15 (Atualização de Segurança). Corrige #17285.

    • [ken] — Atualização para gnutls-3.8.0 (Atualização de Segurança). Corrige #17633.

    • [bdubbs] — Atualização para rustc-1.67.1. Corrige #17642.

    • [bdubbs] — Atualização para util-macros-1.20.0. Corrige #17645.

    • [bdubbs] — Atualização para dos2unix-7.4.4. Corrige #17635.

    • [bdubbs] — Atualização para Python-3.11.2. Corrige #17613.

    • [bdubbs] — Atualização para dbus-1.14.6. Corrige #17611.

    • [bdubbs] — Atualização para libcap-2.67. Corrige #17600.

    • [ken] — Atualização para libdrm-2.4.115. Corrige #17621.

    • [renodr] — Atualização para Thunderbird-102.7.2 (Atualização de Segurança). Corrige #17537.

  • 12 fevereiro 2023

    • [renodr] — Atualização para gnome-terminal-3.46.8. Corrige #17641.

    • [renodr] — Atualização para gnome-maps-43.4. Corrige #17595.

    • [renodr] - Atualização para evolution e evolution-data-server 3.46.4. Corrige #17636.

    • [renodr] — Atualização para samba-4.17.5 (Atualização de Segurança). Corrige #17567.

    • [renodr] — Atualização para libhandy-1.8.1. Corrige #17594.

    • [renodr] — Atualização para NetworkManager-1.42.0. Corrige #17632.

    • [renodr] — Atualização para libgusb-0.4.5. Corrige #17617.

    • [timtas] — Atualização para xfce4-settings-4.18.2. Corrige #17640.

    • [timtas] — Atualização para xfce4-notifyd-0.8.0. Corrige #17639.

    • [ken] — Atualização para XML-LibXSLT-2.002001 (módulo Perl). Corrige #17631.

  • 11 fevereiro 2023

    • [thomas] - Atualização para postgresql-15.2 (inclui correção para CVE-2022-41862). Corrige #17620.

    • [ken] — Atualização para asymptote-2.85. Corrige #17626.

    • [timtas] — Atualização para xfce4-panel-4.18.2. Corrige #17623.

    • [timtas] — Atualização para ristretto-0.13.0. Corrige #17624.

  • 10 fevereiro 2023

    • [ken] — Atualização para libvpx-1.13.0. Corrige #17625.

    • [ken] — Atualização para nss-3.88.1. Corrige #17627.

    • [timtas] — Atualização para libxfce4ui-4.18.2. Corrige #17630.

    • [timtas] — Atualização para xfce4-session-4.18.1. Corrige #17628.

    • [timtas] — Atualização para xfce4-power-manager-4.18.1. Corrige #17629.

  • 9 fevereiro 2023

    • [timtas] - Reverte para estimativa antiga de UPC para transmission-4.0.0.

    • [bdubbs] — Atualização para libreoffice-7.5.0.3. Corrige #17596.

    • [timtas] — Atualização para transmission-4.0.0. Corrige #17609.

    • [timtas] — Atualização para mesa-22.3.5. Corrige #17616.

    • [bdubbs] — Atualização para stunnel-5.68. Corrige #17610.

    • [bdubbs] — Atualização para libjpeg-turbo-2.1.5.1. Corrige #17612.

    • [pierre] — Atualização para xwayland-22.1.8 (Atualização de Segurança). Corrige #17607.

    • [pierre] — Atualização para sphinx_rtd_theme-1.2.0. Corrige #17608.

    • [pierre] - Adicionar sphinxcontrib-jquery-2.0.0, como uma dependência de sphinx_rtd_theme-1.2.0. Parte de #17608.

  • 8 fevereiro 2023

    • [bdubbs] — Atualização para xkeyboard-config-2.38. Corrige #17603.

    • [bdubbs] — Atualização para rustc-1.67.0. Corrige #17586.

    • [renodr] — Atualização para NetworkManager-1.40.12. Corrige #17568.

  • 7 fevereiro 2023

    • [thomas] — Atualização para SDL2-2.26.3. Corrige #17606.

    • [timtas] — Atualização para xorg-server-21.1.7 (Atualização de Segurança). Corrige #17605.

    • [timtas] — Atualização para libX11-1.8.4. Corrige #17602.

  • 6 fevereiro 2023

    • [ken] - Atualização para ImageMagick-7.1.0-61. (Atualização de Segurança). Endereça #16962.

    • [thomas] - Corrige um problema no script apr-1-config.

  • 5 fevereiro 2023

    • [pierre] - Adiciona chardet-5.1.0 (módulo Python), necessitado por doxypypy-0.8.8.7. Corrige #17604.

    • [bdubbs] - Atualização para doxypypy-0.8.8.7 (módulo Python). Parte de #17604.

    • [bdubbs] — Atualização para gnumeric-1.12.55.. Corrige #17599.

    • [bdubbs] — Atualização para goffice-0.10.55.. Corrige #17598.

    • [bdubbs] — Atualização para php-8.2.2.. Corrige #17593.

    • [bdubbs] — Atualização para poppler-23.02.0 e poppler-data-0.4.12.. Corrige #17587.

    • [pierre] - Atualização para vim-9.0.1273 (Sincroniza com LFS). Parte de #12241.

    • [renodr] — Atualização para WebKitGTK+-2.38.4 (Atualização de Segurança). Corrige #17588.

  • 4 fevereiro 2023

    • [ken] - Atualiza módulos Perl: Alien-Build-2.77, Alien-Libxml2-0.19, B-COW-0.007, Clone-0.46, CPAN-Meta-Check-0.017, DateTime-1.59, DateTime-Locale-1.37, DateTime-TimeZone-2.57, Exporter-Tiny-1.006000, FFI-CheckLib-0.31, File-chdir-0.1011, HTTP-Message-6.44, List-SomeUtils-0.59, MIME-Charset-1.013.1, Module-Build-0.4232, Params-Validate-1.31, Params-ValidationCompiler-0.31, Path-Tiny-0.144, Sub-Quote-2.006008, Test-Deep-1.204, Test-Fatal-0.017, Test-File-1.993, Test-Needs-0.002010, Test-Without-Module-0.21, Text-CSV_XS-1.49, Variable-Magic-0.63, XML-LibXML-2.0208 e adiciona Alien-Build-Plugin-Download-GitLab-0.01 (agora exigido para Alien-libxml2). Endereça #13850.

  • 4 fevereiro 2023

    • [timtas] — Atualização para fuse3-3.13.1. Corrige #17601.

    • [bdubbs] — Atualização para node-18.14.0. Corrige #17592.

  • 3 fevereiro 2023

    • [bdubbs] - Atualização para openssh e ssh-askpass 9.2p1. Corrige #17590.

    • [bdubbs] — Atualização para xapian-core-1.4.22. Corrige #17589.

    • [bdubbs] — Atualização para libjpeg-turbo-2.1.5. Corrige #17584.

    • [renodr] — Atualização para libwpe-1.14.1. Corrige #17591.

  • 2 fevereiro 2023

    • [timtas] — Atualização para apr-1.7.2. Corrige #17582.

    • [timtas] — Atualização para apr-util-1.6.3. Corrige #17583.

  • 1 fevereiro 2023

    • [ken] — Atualização para HTML-Parser-3.81 (módulo Perl). Corrige #17585.

    • [timtas] — Atualização para apr-1.7.1. Corrige #17582.

    • [timtas] — Atualização para apr-util-1.6.1. Corrige #17583.

  • 31 janeiro 2023

    • [ken] — Atualização para dvisvgm-3.0.2. Corrige #17581.

    • [renodr] — Atualização para xf86-video-vmware-13.4.0. Corrige #17558.

    • [bdubbs] — Atualização para libgusb-0.4.4. Corrige #17580.

    • [thomas] - Corrige URL de transferência para proftpd.

  • 30 janeiro 2023

    • [ken] — Atualização para asymptote-2.84. Corrige #17556.

    • [ken] — Atualização para dvisvgm-3.0.1. Corrige #17190.

    • [bdubbs] — Atualização para pycryptodome-3.17.0 (módulo Python). Corrige #17579.

    • [bdubbs] — Atualização para umockdev-0.17.16. Corrige #17578.

    • [bdubbs] — Atualização para sysstat-12.7.2. Corrige #17577.

  • 29 janeiro 2023

    • [ken] - ruby-3.2.0 exige libyaml. Corrige #17576.

    • [bdubbs] — Atualização para c-ares-1.19.0. Corrige #17574.

    • [bdubbs] — Atualização para fetchmail-6.4.36. Corrige #17575.

  • 27 janeiro 2023

    • [bdubbs] — Atualização para fontconfig-2.14.2. Corrige #17573.

    • [bdubbs] — Atualização para geoclue-2.7.0. Corrige #17572.

  • 27 janeiro 2023

    • [bdubbs] — Atualização para libreoffice-7.4.5.1. Corrige #17570.

    • [bdubbs] — Atualização para mesa-22.3.4. Corrige #17569.

    • [bdubbs] — Atualização para pipewire-0.3.65. Corrige #17571.

  • 26 janeiro 2023

    • [bdubbs] - Atualização para bind e bind-utilities 9.18.11 (atualização de segurança). Fixes #17562.

    • [bdubbs] — Atualização para xine-lib-1.2.13. Corrige #17566.

    • [bdubbs] — Atualização para IO-Socket-SSL-2.081 (módulo Perl). Corrige #17564.

    • [bdubbs] — Atualização para btrfs-progs-v6.1.3. Corrige #17563.

    • [bdubbs] — Atualização para guile-3.0.9. Corrige #17565.

    • [bdubbs] - Atualização para a pilha gstreamer-1.22.0. Inclui gst-plugins-base, gst-plugins-good, gst-plugins-bad, gst-plugins-ugly, gst-libav e gstreamer-vaapi. Corrige #17555.

    • [bdubbs] — Atualização para doxyqml-0.5.2 (módulo Python). Corrige #17561.

    • [bdubbs] — Atualização para Text-BibTeX-0.89 (módulo Perl). Corrige #17560.

  • 25 janeiro 2023

    • [renodr] — Atualização para unrar-6.2.5. Corrige #17559.

  • 24 janeiro 2023

    • [renodr] — Atualização para libwacom-2.6.0. Corrige #17557.

    • [renodr] — Atualização para icewm-3.3.1. Corrige #17554.

    • [renodr] — Atualização para unrar-6.2.4. Corrige #17553.

    • [renodr] — Atualização para mc-4.8.29. Corrige #17549.

    • [bdubbs] — Atualização para graphviz-7.1.0. Corrige #17548.

    • [bdubbs] — Atualização para gnumeric-1.12.54. Corrige #17544.

    • [bdubbs] — Atualização para goffice-0.10.54. Corrige #17541.

    • [bdubbs] — Atualização para wireshark-4.0.3. Corrige #17534.

  • 23 janeiro 2023

    • [bdubbs] — Atualização para postfix-3.7.4. Corrige #17551.

    • [bdubbs] — Atualização para neon-0.32.5. Corrige #17550.

    • [bdubbs] — Atualização para glib-2.74.5. Corrige #17540.

    • [bdubbs] — Atualização para cmake-3.25.2. Corrige #17539.

    • [renodr] — Atualização para gnome-desktop-43.1. Corrige #17542.

    • [renodr] — Atualização para gedit-44.2. Corrige #17538.

    • [renodr] — Atualização para libchamplain-0.12.21. Corrige #17536.

    • [xry111] - Usar pip para instalar dbus-python. Corrige #17547.

    • [xry111] - Adiciona meson_python-0.12.0 (dependências Python). Parte de #17547.

    • [xry111] - Adiciona pyproject-metadata-0.7.0 (dependências Python). Parte de #17547.

    • [xry111] - Adiciona patchelf-0.17.2. Parte de #17547.

    • [pierre] - Atualiza todos os módulos Python depois de mesclar. Corrige #17546.

    • [bdubbs] — Atualização para nano-7.2. Corrige #17530.

    • [bdubbs] — Atualização para exiv2-0.27.6. Corrige #17523.

    • [bdubbs] — Atualização para IO-Socket-SSL-2.080 (Módulo Perl). Corrige #17533.

    • [timtas] — Atualização para xfdesktop-4.18.1. Corrige #17552.

  • 21 janeiro 2023

    • [bdubbs] — Atualização para libXpm-3.5.15 (Biblioteca Xorg). Corrige #17523.

    • [pierre] — Atualização para plasma-wayland-protocols-1.10. Corrige #17535.

    • [pierre] — Atualização para talloc-2.4.0. Corrige #17531.

    • [pierre] - Atualização para libva-2.17.0 (controlador Xorg). Corrige #17528.

    • [pierre] - Atualização para libinput-1.22.1 (controlador Xorg). Corrige #17527.

    • [pierre] — Atualização para MarkupSafe-2.1.2 (Módulo Python). Corrige #17526.

    • [timtas] — Atualização para thunar-4.18.3. Corrige #17543.

  • 19 janeiro 2023

    • [timtas] — Atualização para sudo-1.9.12p2. Corrige #17529.

  • 18 janeiro 2023

    • [bdubbs] — Atualização para httpd-2.4.55. Corrige #17525.

    • [bdubbs] — Atualização para git-2.39.1. Corrige #17524.

  • 17 janeiro 2023

    • [pierre] - Muda referências externas para módulos Python agora no livro para referências internas.

    • [ken] - Atualização para firefox-102.7.0 (atualização de segurança); também atualização para JS-102.7.0 (atualização normal). Corrige #17521.

    • [renodr] — Atualização para fuse-3.13.0. Corrige #17514.

  • 16 janeiro 2023

    • [bdubbs] — Atualização para IO-Socket-SSL-2.079 (Módulo Perl). Corrige #17522.

    • [bdubbs] — Atualização para unbound-1.17.1. Corrige #17510.

    • [bdubbs] — Atualização para mpg123-1.31.2. Corrige #17519.

  • 15 janeiro 2023

    • [thomas] - Constrói ssh-askpass usando gtk3 em vez de gtk2.

  • 14 janeiro 2023

    • [ken] - Atualização para rustc-1.66.1 (atualização de segurança). Corrige #17501. Por favor, leia-se a entrada de ontem para 'Instalar FileCheck' se você tiver instalado recente LLVM sem esse utilitário.

    • [timtas] — Atualização para thunar-4.18.2. Corrige #17498.

    • [timtas] — Atualização para libxfce4util-4.18.1. Corrige #17499.

    • [timtas] — Atualização para xfce4-panel-4.18.1. Corrige #17500.

    • [pierre] — Atualização para libreoffice-7.4.4.2. Corrige #17512.

    • [pierre] — Atualização para ed-1.19. Corrige #17516.

    • [pierre] — Atualização para xfsprogs-6.1.1. Corrige #17515.

    • [pierre] — Atualização para mesa-22.3.3. Corrige #17504.

  • 13 janeiro 2023

    • [pierre] - Adiciona uma folha de estilo XSL para gerar a página pythonhosted.xml a partir da informação contida nos módulos Python e seções de dependências e a usa no Makefile.

    • [bdubbs] — Atualização para llvm-15.0.7. Corrige #17508.

    • [bdubbs] - Instalar FileCheck em LLVM. Parcialmente endereça #17501. Para construir somente FileCheck onde LLVM já tenha sido instalado, veja-se o comentário 42 nesse tíquete.

    • [thomas] — Atualização para iptables-1.8.9. Corrige #17506.

    • [renodr] — Atualização para pipewire-0.3.64. Corrige #17513.

    • [renodr] — Atualização para tracker-miners-3.4.3. Corrige #17511.

    • [renodr] — Atualização para libpcap-1.10.3. Corrige #17509.

    • [renodr] — Atualização para libwebp-1.3.0. Corrige #17507.

    • [renodr] — Atualização para gtksourceview5-5.6.2. Corrige #17505.

    • [renodr] — Atualização para NetworkManager-1.40.10. Corrige #17503.

    • [renodr] — Atualização para apache-ant-1.10.13. Corrige #17502.

  • 10 janeiro 2023

    • [renodr] — Atualização para eog-43.2. Corrige #17494.

    • [renodr] — Atualização para nautilus-43.2. Corrige #17493.

    • [bdubbs] — Atualização para xterm-378. Corrige #17497.

    • [bdubbs] — Atualização para libnma-1.10.6. Corrige #17496.

    • [bdubbs] — Atualização para xine-ui-0.99.14. Corrige #17495.

    • [bdubbs] — Atualização para mercurial-6.3.2. Corrige #17475.

  • 9 janeiro 2023

    • [bdubbs] — Atualização para php-8.2.1. Corrige #17484.

  • 8 janeiro 2023

    • [bdubbs] — Atualização para Cython-0.29.33 (módulo Python). Corrige #17487.

    • [pierre] — Atualização para gnome-maps-43.3. Corrige #17492.

    • [pierre] — Atualização para evolution-3.46.3. Corrige #17491.

    • [pierre] — Atualização para gvfs-1.50.3. Corrige #17490.

    • [pierre] — Atualização para evolution-data-server-3.46.3. Corrige #17489.

    • [pierre] — Atualização para libadwaita-1.2.1. Corrige #17488.

    • [pierre] — Atualização para graphviz-7.0.6. Corrige #17486.

    • [pierre] — Atualização para gedit-44.1. Corrige #17473.

  • 7 janeiro 2023

    • [bdubbs] — Atualização para libxfce4ui-4.18.1. Corrige #17477.

    • [ken] - Atualização para qtwebengine-5.15.12 (Correção de segurança) com chave qmake para permitir que ffmpeg decodifique codificadores proprietários. Corrige #17478.

  • 6 janeiro 2023

    • [bdubbs] — Atualização para node-18.13.0. Corrige #17481.

    • [bdubbs] — Atualização para nss-3.87. Corrige #17479.

    • [bdubbs] — Atualização para libqalculate-4.5.1. Corrige #17474.

    • [bdubbs] — Atualização para python-dbusmock-0.28.7. Corrige #17483.

    • [bdubbs] — Atualização para LibRaw-0.21.1. Corrige #17482.

    • [bdubbs] — Atualização para xfsprogs-6.1.0. Corrige #17480.

    • [bdubbs] — Atualização para SDL2-2.26.2. Corrige #17472.

    • [bdubbs] — Atualização para btrfs-progs-v6.1.2. Corrige #17470.

    • [pierre] — Atualização para Qt5-5.15.8. Corrige #17476.

  • 5 janeiro 2023

    • [ken] - Expande os detalhes do Gentoo em 'Indo Além do BLFS'. Corrige #17004.

  • 4 janeiro 2023

    • [ken] - Corrige um cabeçalho em boost-1.81.0 e remenda Libreoffice para acomodar outa mudança nessa versão do boost, de forma que o boost do sistema possa novamente ser usado. Corrige #17461.

  • 3 janeiro 2023

    • [renodr] - Arquiva telepathy-logger.

    • [renodr] — Atualização para tepl-6.4.0. Corrige #17469.

    • [renodr] — Atualização para gedit-44.0. Corrige #17462.

    • [renodr] — Atualização para pidgin-2.14.12. Corrige #17466.

    • [renodr] — Atualização para libxkbcommon-1.5.0. Corrige #17467.

    • [renodr] — Atualização para rxvt-unicode-9.31 (Atualização de Segurança). Corrige #17648.

  • 2 janeiro 2023

    • [timtas] - Descreve como construir e configurar o dhcpcd com ou sem separação de privilégio.

    • [bdubbs] — Atualização para fontforge-20230101. Corrige #17465.

    • [bdubbs] — Atualização para Pygments-2.14.0 (módulo Python). Corrige #17464.

    • [bdubbs] — Atualização para poppler-23.01.0. Corrige #17463.

  • 1 janeiro 2023

    • [pierre] - Corrige um problema no libkdcraw introduzido pela recente libraw.

    • [pierre] - Atualização para bootscripts-20230101: corrige vários problemas com winbindd.

    • [pierre] - Corrige um problema no gegl introduzido pela recente libraw.

  • 31 dezembro 2022

    • [renodr] — Atualização para Thunderbird-102.6.1 (Atualização de Segurança). Corrige #17431.

    • [renodr] — Atualização para WebKitGTK+-2.38.3 (Atualização de Segurança). Corrige #17437.

    • [thomas] - Corrige um problema no gptfdisk introduzido pelo recente popt.

  • 30 dezembro 2022

    • [bdubbs] — Atualização para libpcap-1.10.2. Corrige #17460.

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

    • [renodr] — Atualização para glib-2.74.4 (Atualização de Segurança). Corrige #17441.

    • [renodr] — Atualização para libtiff-4.5.0 (Atualização de Segurança). Corrige #17411.

    • [renodr] — Atualização para dovecot-2.3.20. Corrige #17438.

    • [renodr] — Atualização para curl-7.87.0 (Atualização de Segurança). Corrige #17432.

    • [bdubbs] — Atualização para mesa-22.3.2. Corrige #17457.

    • [bdubbs] — Atualização para sqlite-autoconf-3400100. Corrige #17456.

    • [bdubbs] — Atualização para opencv-4.7.0. Corrige #17455.

  • 29 dezembro 2022

    • [bdubbs] — Atualização para traceroute-2.1.1. Corrige #17451.

    • [bdubbs] — Atualização para doxygen-1.9.6. Corrige #17450.

    • [bdubbs] — Atualização para libsndfile-1.2.0. Corrige #17448.

    • [bdubbs] — Atualização para libpsl-0.21.2. Corrige #17447.

    • [bdubbs] — Atualização para tree-2.1.0. Corrige #17446.

    • [bdubbs] — Atualização para ruby-3.2.0. Corrige #17379.

    • [bdubbs] - Atualização para a pilha gstreamer-1.20.5. Inclui gst-plugins-base, gst-plugins-good, gst-plugins-bad, gst-plugins-ugly, gst-libav e gstreamer-vaapi. Corrige #17420.

    • [pierre] — Atualização para gtk4-4.8.3. Corrige #17445.

    • [pierre] — Atualização para libsigc++2-2.12.0. Corrige #17443.

    • [pierre] — Atualização para graphviz-7.0.5. Corrige #17442.

    • [pierre] — Atualização para libgusb-0.4.3. Corrige #17428.

    • [pierre] — Atualização para libqalculate-4.5.0. Corrige #17421.

    • [pierre] — Atualização para NetworkManager-1.40.8. Corrige #17417.

  • 28 dezembro 2022

    • [bdubbs] — Atualização para LibRaw-0.21.0. Corrige #17419.

    • [renodr] — Atualização para gedit-43.2. Corrige #17266.

    • [renodr] — Atualização para tepl-6.2.0. Corrige #17454.

    • [renodr] - Restaura tepl a partir dos arquivamentos em suporte de gedit. Corrige #17454.

    • [renodr] — Atualização para amtk-5.6.1. Corrige #17453.

    • [renodr] - Restaura amtk a partir dos arquivamentos em suporte de gedit. Corrige #17453.

    • [renodr] — Atualização para gucharmap-15.0.2. Corrige #17030.

    • [renodr] — Atualização para gnome-weather-43.0. Corrige #17092.

    • [renodr] — Atualização para gnome-terminal-3.46.7. Corrige #17089.

    • [renodr] — Atualização para gnome-power-manager-43.0. Corrige #17049.

    • [renodr] - Arquiva folks. O único pacote que o usava (gnome-maps) não mais o usa.

    • [renodr] — Atualização para gnome-maps-43.2. Corrige #17074.

    • [renodr] - Adiciona libshumate em suporte de gnome-maps. Corrige #17452.

    • [renodr] — Atualização para gnome-logs-43.0. Corrige #17121.

    • [renodr] — Atualização para gnome-disk-utility-43.0. Corrige #17057.

    • [renodr] — Atualização para gnome-calculator-43.0.1. Corrige #17053.

    • [renodr] — Atualização para file-roller-43.0. Corrige #17073.

    • [renodr] - Remenda systemd contra CVE-2022-4415. Corrige 17433.

    • [pierre] — Atualização para gtk+-3.24.36. Corrige #17344.

    • [renodr] - Corrige construção de Seahorse com GnuPG-2.4.

    • [renodr] - Desabilita construção da extensão nautilus no Brasero. Isso é devido a ser incompatível com a versão GTK-4 do Nautilus.

    • [renodr] — Atualização para evolution-3.46.2. Corrige #17048.

    • [renodr] — Atualização para evince-43.1. Corrige #17088.

    • [renodr] — Atualização para eog-43.1. Corrige #17066.

    • [renodr] — Atualização para baobab-43.0. Corrige #17093.

    • [renodr] — Atualização para yelp-42.2. Corrige #17068.

    • [renodr] — Atualização para gnome-user-docs-43.0. Corrige #17081.

    • [renodr] — Atualização para gdm-43.0. Corrige #17101.

    • [renodr] — Atualização para gnome-session-43.0. Corrige #17102.

    • [renodr] — Atualização para gnome-shell-extensions-43.1. Corrige #17063.

    • [renodr] — Atualização para gnome-shell-43.2. Corrige #17062.

    • [renodr] - Arquiva Zenity. Não mais é usado nem por Mutter nem por Libreoffice.

    • [renodr] — Atualização para mutter-43.2. Corrige #17064.

    • [renodr] — Atualização para gnome-control-center-43.2. Corrige #17034.

    • [renodr] — Atualização para gnome-settings-daemon-43.0. Corrige #17077.

    • [renodr] — Atualização para gnome-bluetooth-42.5. Corrige #17407.

    • [renodr] — Atualização para nautilus-43.1. Corrige #17087.

    • [renodr] - Adiciona libcloudproviders-0.3.1 em suporte de Nautilus. Corrige #17436.

    • [renodr] — Atualização para gnome-backgrounds-43.0. Corrige #17100.

    • [renodr] — Atualização para evolution-data-server-3.46.2. Corrige #17047.

    • [renodr] — Atualização para dconf-editor-43.0. Corrige #17059.

    • [renodr] — Atualização para tracker-miners-3.4.2. Corrige #17079.

    • [renodr] — Atualização para tracker-3.4.2. Corrige #17079.

    • [renodr] — Atualização para libwnck-43.0. Corrige #17050.

    • [renodr] — Atualização para libpeas-1.34.0. Corrige #17071.

    • [renodr] — Atualização para libgweather-4.2.0. Corrige #17091.

  • 27 dezembro 2022

    • [bdubbs] — Atualização para harfbuzz-6.0.0. Corrige #17415.

    • [bdubbs] — Atualização para tk8.6.13. Corrige #17414.

    • [bdubbs] — Atualização para unrar-6.2.3. Corrige #17412.

    • [bdubbs] — Atualização para boost_1_81_0. Corrige #17408.

    • [bdubbs] — Atualização para qemu-7.2.0. Corrige #17406.

    • [bdubbs] — Atualização para mupdf-1.21.1. Corrige #17398.

    • [bdubbs] — Atualização para xscreensaver-6.06. Corrige #17393.

    • [bdubbs] — Atualização para exempi-2.6.3. Corrige #17389.

    • [bdubbs] — Atualização para btrfs-progs-v6.1. Corrige #17440.

    • [bdubbs] — Atualização para LVM2.2.03.18. Corrige #17439.

    • [dj] — Atualização para make-ca-1.12. Corrige #17449.

  • 25 dezembro 2022

    • [thomas] — Atualização para git-2.39.0. Corrige #17390.

    • [thomas] — Atualização para nasm-2.16.01. Corrige #17444.

  • 24 dezembro 2022

    • [thomas] — Atualização para bind-9.18.10. Corrige #17435.

    • [thomas] — Atualização para nasm-2.16. Corrige #17434.

  • 23 dezembro 2022

    • [timtas] - Atualização para Xfce 4.18, incluindo garcon libxfce4ui libxfce4util tumbler exo xfce4-panel xfconf xfwm4 xfdesktop xfce4-settings xfce4-appfinder xfce4-session xfce4-power-manager thunar thunar-volman ristretto xfce4-notifyd. Corrige #17409.

  • 22 dezembro 2022

    • [bdubbs] — Atualização para tcsh-6.24.07. Corrige #17396.

    • [bdubbs] — Atualização para dash-0.5.12. Corrige #17391.

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

    • [bdubbs] — Atualização para pipewire-0.3.63. Corrige #17386.

    • [bdubbs] — Atualização para php-8.2.0. Corrige #17385.

  • 22 dezembro 2022

    • [bdubbs] — Atualização para python3-3.11.1. Corrige #17378.

    • [bdubbs] — Atualização para IO-Socket-SSL-2.078 (módulo Perl). Corrige #17392.

    • [bdubbs] — Atualização para File-Slurper-0.014 (módulo Perl). Corrige #17416.

    • [bdubbs] — Atualização para icewm-3.3.0. Corrige #17430.

    • [bdubbs] — Atualização para mesa-22.3.1. Corrige #17365.

  • 21 dezembro 2022

    • [pierre] — Atualização para gnupg2-2.4.0. Corrige #17427.

    • [pierre] — Atualização para libksba-1.6.3 (atualização de segurança). Corrige #17429.

  • 20 dezembro 2022

    • [pierre] — Atualização para xcb-util-0.4.1. Corrige #17424.

    • [pierre] — Atualização para xwayland-22.1.7. Corrige #17423.

    • [pierre] - Atualização para libSM-1.2.4 (biblioteca xorg). Corrige #17425.

    • [pierre] - Atualização para libX11-1.8.3 (biblioteca xorg). Corrige #17413.

    • [pierre] - Atualização para xdriinfo-1.0.7 (aplicativo xorg). Corrige #17426.

    • [pierre] - Atualização para xhost-1.0.9 (aplicativo xorg). Corrige #17395.

    • [pierre] — Atualização para xorg-server-21.1.6 (atualização de segurança). Corrige #17422.

  • 18 dezembro 2022

    • [thomas] - Remove um sed obsoleto oriundo de libarchive.

    • [ken] — Atualização para nss-3.86. Corrige #17387.

  • 17 dezembro 2022

    • [thomas] — Atualização para libarchive-3.6.2. Corrige #17388.

    • [thomas] — Atualização para pcre2-10.42. Corrige #17397.

  • 16 dezembro 2022

    • [renodr] — Atualização para libgee-0.20.6. Corrige #17058.

    • [renodr] — Atualização para gnome-online-accounts-3.46.0. Corrige #17067.

    • [renodr] — Atualização para cheese-43.0. Corrige #17401.

    • [renodr] — Atualização para gnome-desktop-43. Corrige #17090.

    • [renodr] - Porta geocode-glib para libsoup3.

    • [renodr] — Atualização para yelp-xsl-42.1. Corrige #17069.

    • [renodr] - Arquiva gfbgraph. Nada mais o usa e é incompatível com rest-0.9.1/libsoup3.

    • [renodr] - Adiciona uma entidade para a URL do gi-docgen e muda vários pacotes para usar essa URL em Dependências Opcionais.

    • [renodr] — Atualização para rest-0.9.1. Corrige #16011.

    • [renodr] — Atualização para vte-0.70.2. Corrige #17043.

    • [renodr] — Atualização para gsettings-desktop-schemas-43.0. Corrige #17078.

  • 15 dezembro 2022

    • [renodr] - Adapta Zenity para usar WebKitGTK+-2.38 se presente.

    • [renodr] - Adapta Balsa para funcionar com WebKitGTK+-2.38.

    • [renodr] — Atualização para epiphany-43.0. Corrige #17035.

    • [renodr] — Atualização para WebKitGTK+-2.38.2 (Atualização de Segurança). Corrige #17046.

    • [renodr] - Força gst-plugins-good a usar libsoup3.

    • [renodr] — Atualização para samba-4.17.4 (Atualizaçãode Segurança). Corrige #17410.

    • [thomas] — Atualização para logrotate-3.21-0. Corrige #17399.

    • [thomas] — Atualização para nano-7.1. Corrige #17405.

    • [pierre] — Atualização para thunderbird-102.6.0 (atualização de segurança). Corrige #17402.

    • [pierre] — Atualização para xorg-server-21.1.5 (atualização de segurança). Corrige #17403.

    • [pierre] — Atualização para xwayland-22.1.6 (atualização de segurança). Corrige #17404.

    • [pierre] — Atualização para lxml-4.9.2 (módulo python). Corrige #17400.

  • 14 dezembro 2022

    • [renodr] — Atualização para seahorse-43.0. Corrige #17186.

    • [renodr] — Atualização para sysprof-3.46.0. Corrige #17072.

    • [renodr] — Atualização para gtksourceview5-5.6.1. Corrige #17070.

    • [renodr] — Atualização para gtksourceview4-4.8.4. Corrige #17268.

    • [renodr] — Atualização para adwaita-icon-theme-43. Corrige #17099.

    • [renodr] — Atualização para pyatspi-2.46.0. Corrige #17111.

    • [renodr] - Arquivado at-spi2-atk dado que os arquivos dele agora são fornecidos por at-spi2-core.

    • [renodr] - Arquivado ATK dado que os arquivos dele agora são fornecidos por at-spi2-core.

    • [renodr] - Muda dependências de atk ou at-spi2-atk para at-spi2-core ao longo do livro.

    • [renodr] — Atualização para at-spi2-core-2.46.0. Corrige #17060.

  • 13 dezembro 2022

    • [ken] - Atualização para firefox-102.6.0 (Atualização de Segurança) e JS102.6.0. Corrige #17394.

  • 12 dezembro 2022

    • [renodr] — Atualização para libsoup-3.2.2. Corrige #17031.

    • [renodr] - Atualização para libadwaita-1.2.0. Corrige 17032.

    • [renodr] — Atualização para libhandy-1.8.0. Corrige #17033.

    • [renodr] — Atualização para glib-networking-2.74.0. Corrige #17036.

    • [ken] - Remenda o módulo Python Requests para usar a mesma variávewl de ambiente que o Pip para acessar certificados do sistema; dessa maneira, remove a dependência desnecessária de Certifi.

  • 11 dezembro 2022

    • [bdubbs] — Atualização para plasma5-5.26.4. Corrige #16996.

    • [bdubbs] - Adiciona kuserfeedback-1.2.0 necessitado por plasma.

    • [bdubbs] - Atualização para kf5-apps-22.12.0, incluindo kate, kwave e falkon. Corrige #17006.

    • [bdubbs] - Atualização para kf5-5.101, incluindo extra-cmake-modules, oxygen-icons e breeze-icons. Corrige #17021.

  • 9 dezembro 2022

    • [pierre] — Atualização para uchardet-0.0.8. Corrige #17384.

    • [pierre] - Atualização para libfontenc-1.1.7, libxkbfile-1.1.2, libxshmfence-1.3.2 e libICE-1.1.1 (Bibliotecas Xorg). Corrige #17383.

    • [pierre] — Atualização para libXau-1.0.11. Corrige #17382.

    • [pierre] - Atualização para xkbcomp-1.4.6 (aplicativo Xorg). Corrige #17381.

  • 8 dezembro 2022

    • [bdubbs] — Atualização para wireshark-4.0.2. Corrige #17380.

    • [bdubbs] — Atualização para pcre2-10.41. Corrige #17377.

    • [bdubbs] — Atualização para NetworkManager-1.40.6. Corrige #17364.

    • [bdubbs] — Atualização para graphviz-7.0.4. Corrige #17370.

    • [bdubbs] — Atualização para tcsh-6.24.05. Corrige #17369.

    • [bdubbs] — Atualização para poppler-22.12.0. Corrige #17368.

    • [bdubbs] — Atualização para SDL2-2.26.1. Corrige #17367.

  • 6 dezembro 2022

    • [pierre] — Atualização para inkscape-1.2.2. Corrige #17376.

    • [pierre] — Atualização para icewm-3.2.3. Corrige #17374.

    • [pierre] — Atualização para xinit-1.4.2. Corrige #17373.

    • [pierre] - Atualização para xcursorgen-1.0.8, xgamma-1.0.7, xprop-1.2.6, xrandr-1.5.2, xset-1.2.5 e xvinfo-1.1.5 (aplicativos Xorg). Corrige #17372.

    • [pierre] - Atualização para libICE-1.1.0, libXScrnSaver-1.2.4, libXcomposite-0.4.6, libXdamage-1.1.6, libXres-1.2.2, libXv-1.0.12 e libXxf86dga-1.1.6 (bibliotecas Xorg). Corrige #17371.

  • 5 dezembro 2022

    • [bdubbs] — Atualização para swig-4.1.1. Corrige #17363.

    • [bdubbs] — Atualização para libass-0.17.0. Corrige #17361.

    • [thomas] — Atualização para proftpd-1.3.8. Corrige #17375.

  • 3 dezembro 2022

    • [thomas] — Atualização para cmake-3.25.1. Corrige #17362.

    • [pierre] — Atualização para glib-2.74.3. Corrige #17237.

  • 2 dezembro 2022

    • [pierre] — Atualização para thunderbird-102.5.1 (Atualização de segurança). Corrige #17360.

  • 1 dezembro 2022

    • [ken] - Adiciona página explicando como usar os Certificados de AC do sistema com o pip fornecido por Python instalado no LFS. Corrige #17354.

  • 30 novembro 2022

    • [pierre] — Atualização para LLVM-15.0.6. Corrige #17359.

    • [pierre] — Atualização para newt-0.52.23. Corrige #17358.

    • [pierre] — Atualização para wayland-protocols-1.31. Corrige #17357.

  • 28 novembro 2022

    • [bdubbs] — Atualização para pycairo-1.23.0. Corrige #17356.

    • [bdubbs] — Atualização para php-8.1.13. Corrige #17348.

    • [bdubbs] — Atualização para umockdev-0.17.15. Corrige #17347.

    • [bdubbs] — Atualização para btrfs-progs-v6.0.2. Corrige #17346.

    • [pierre] — Atualização para libreoffice-7.4.3.2. Corrige #17350.

    • [bdubbs] — Atualização para pycryptodome-3.16.0 (módulo Python). Corrige #17355.

    • [bdubbs] — Atualização para pipewire-0.3.61. Corrige #17351.

    • [bdubbs] — Atualização para tcsh-6.24.02. Corrige #17345.

    • [thomas] — Atualização para ruby-3.1.3. Corrige #17349.

  • 27 novembro 2022

    • [bdubbs] — Atualização para vlc-3.0.18. Corrige #17343.

    • [bdubbs] — Atualização para newt-0.52.22. Corrige #17339.

    • [bdubbs] — Atualização para libpng-1.6.39. Corrige #17335.

    • [bdubbs] — Atualização para SDL2-2.26.0. Corrige #17335.

    • [bdubbs] — Atualização para qpdf-11.2.0. Corrige #17333.

    • [bdubbs] — Atualização para mercurial-6.3.1. Corrige #17330.

    • [bdubbs] — Atualização para graphviz-7.0.3. Corrige #17329.

  • 26 novembro 2022

    • [bdubbs] — Atualização para xterm-377. Corrige #17353.

    • [bdubbs] — Atualização para pycairo-1.22.0. Corrige #17352.

    • [bdubbs] — Atualização para pciutils-3.9.0. Corrige #17342.

    • [bdubbs] — Atualização para usbutils-015. Corrige #17341.

    • [bdubbs] — Atualização para IO-Socket-SSL-2.077 (módulo Perl). Corrige #17338.

    • [bdubbs] — Atualização para wayland-protocols-1.30. Corrige #17336.

    • [bdubbs] - Atualização para libinput-1.22.0 (controlador Xorg). Corrige #17332.

    • [bdubbs] - Atualização para libXpm-3.5.14 (biblioteca Xorg). Corrige #17331.

    • [bdubbs] - Atualização para libXrandr-1.5.3 (biblioteca Xorg). Corrige #17334.

    • [bdubbs] — Atualização para pango-1.50.12. Corrige #17328.

    • [bdubbs] — Atualização para mlt-7.12.0. Corrige #17327.

  • 24 novembro 2022

    • [dj] — Atualização para make-ca-1.11. Corrige #17340.

  • 22 novembro 2022

    • [pierre] — Atualização para NetworkManager-1.40.4. Corrige #17325.

  • 20 novembro 2022

    • [pierre] — Atualização para libXdmcp-1.1.4. Corrige #17326.

    • [pierre] — Atualização para libpwquality-1.4.5. Corrige #17324.

    • [pierre] — Atualização para thunderbird-102.5.0 (Atualização de Segurança). Corrige #17236.

  • 18 novembro 2022

    • [bdubbs] — Atualização para bind e bind-utilities-9.18.9. Corrige #17320.

    • [bdubbs] — Atualização para sqlite-autoconf-3400000 (3.40.0). Corrige #17322.

    • [bdubbs] — Atualização para xterm-376. Corrige #17323.

    • [ken] — Atualização para mutt-2.2.9. Corrige #17274.

    • [pierre] — Atualização para mesa-22.2.4. Corrige #17321.

    • [pierre] - Atualização para libXft-2.3.7 (biblioteca Xorg). Corrige #17317.

    • [pierre] — Atualização para LLVM-15.0.5. Corrige #17319.

    • [pierre] — Atualização para cmake-3.25.0. Corrige #17318.

  • 17 novembro 2022

    • [renodr] — Atualização para nano-7.0. Corrige #17314.

    • [renodr] — Atualização para samba-4.17.3 (Atualização de Segurança). Corrige #17316.

    • [bdubbs] — Atualização para krb5-1.20.1 (Atualização de Segurança). Corrige #17313.

    • [bdubbs] — Atualização para sysstat-12.7.1. Corrige #17310.

    • [bdubbs] — Atualização para xfsprogs-6.0.0. Corrige #17309.

    • [bdubbs] — Atualização para nghttp2-1.51.0. Corrige #17301.

    • [bdubbs] — Atualização para gegl-0.4.40. Corrige #17298.

    • [bdubbs] — Atualização para babl-0.1.98. Corrige #17297.

    • [bdubbs] — Atualização para grantlee-5.3.1. Corrige #17295.

    • [bdubbs] — Atualização para nss-3.85. Corrige #17294.

    • [pierre] — Atualização para Mako-1.2.4 (Módulo Python). Corrige #17315.

    • [pierre] — Atualização para mercurial-6.3.0. Corrige #17312.

  • 16 novembro 2022

    • [bdubbs] — Atualização para postgresql-15.1. Corrige #17290.

    • [bdubbs] — Atualização para bluez-5.66. Corrige #17288.

    • [bdubbs] — Atualização para icewm-3.2.2. Corrige #17281.

    • [ken] — Atualização para firefox-102.5.0 (Atualização de Segurança). Corrige #17306.

    • [ken] - Atualiza js102 para 102.5.0 (correção de segurança. Corrige #17308.

    • [pierre] - Atualização para shadow-4.13. Corrige #17282. Também aumenta o número de voltas de "criptografia". Isso possivelmente exija atualizar os arquivos PAM para mantê-los sincronizados.

    • [bdubbs] — Atualização para soundtouch-2.3.2. Corrige #17280.

    • [bdubbs] - Atualização para xlsclients-1.1.5 (Aplicativo Xorg). Corrige #17305.

    • [bdubbs] - Atualização para xlsatoms-1.1.4 (Aplicativo Xorg). Corrige #17304.

    • [bdubbs] - Atualização para xkill-1.0.6 (Aplicativo Xorg). Corrige #17303.

    • [bdubbs] - Atualização para xkbevd-1.1.5 (Aplicativo Xorg). Corrige #17302.

    • [bdubbs] — Atualização para IO-Socket-SSL-2.076 (Módulo Perl). Corrige #17311.

    • [pierre] — Atualização para fop-2.8. Corrige #17293.

    • [pierre] — Atualização para pipewire-0.3.60. Corrige #17292.

    • [pierre] - Atualização para libX11-1.8.2 (Biblioteca Xorg). Corrige #17291.

    • [pierre] — Atualização para graphviz-7.0.1. Corrige #17287.

    • [pierre] — Atualização para LVM2-2.03.17. Corrige #17286.

    • [pierre] — Atualização para mesa-22.2.3. Corrige #17279.

  • 15 novembro 2022

    • [bdubbs] — Atualização para bubblewrap-0.7.0. Corrige #17278.

    • [bdubbs] — Atualização para iso-codes-4.12.0. Corrige #17277.

    • [bdubbs] — Atualização para polkit-122. Corrige #17230.

  • 14 novembro 2022

    • [renodr] - Adicionado gcr4 em suporte de gnome-shell. Corrige #17084.

    • [renodr] - Adicionado js102 em suporte de gjs. Arquivado js91. Corrige #16714.

    • [renodr] — Atualização para gjs-1.74.1. Corrige #17106.

    • [renodr] - Atualização para network-manager-applet-1.30.0. Corrige 17283.

    • [renodr] - Atualização para libnma-1.10.4. Corrige 17284.

    • [renodr] - Atualização para highlight-4.4. Corrige 17299.

    • [renodr] — Atualização para unrar-6.2.2. Corrige #17300.

    • [renodr] — Atualização para sysstat-12.6.1 (Atualização de Segurança). Corrige #17289.

    • [renodr] — Atualização para xfce4-settings-4.16.5 (Atualização de Segurança). Corrige #17296.

  • 10 novembro 2022

    • [pierre] - Corrige construir aplicativos mozilla e qtwebengine com Python-3.11.

    • [renodr] — Atualização para php-8.1.12 (Atualização de Segurança). Corrige #17241.

  • 9 novembro 2022

    • [renodr] — Atualização para ntfs-3g-2022.10.3 (Atualização de Segurança). Corrige #17249.

    • [renodr] — Atualização para pixman-0.42.2 (Atualização de Segurança). Corrige #17262.

  • 8 novembro 2022

    • [bdubbs] — Atualização para mupdf-1.21.0. Corrige #17276.

    • [bdubbs] — Atualização para jasper-4.0.0 (Atualização de Segurança). Corrige #17272.

    • [bdubbs] — Atualização para btrfs-progs-v6.0.1. Corrige #17271.

    • [pierre] — Atualização para node.js-18.12.1 (Atualização de Segurança). Corrige #17228.

    • [bdubbs] — Atualização para sudo-1.9.12p1. Corrige #17270.

    • [bdubbs] — Atualização para wayland-protocols-1.28. Corrige #17269.

    • [bdubbs] — Atualização para llvm-15.0.4. Corrige #17264.

    • [bdubbs] — Atualização para libdrm-2.4.114. Corrige #17267.

    • [bdubbs] — Atualização para icewm-3.2.0. Corrige #17265.

    • [bdubbs] — Atualização para xwayland-22.1.5. Corrige #17261.

    • [bdubbs] — Atualização para mlt-7.10.0. Corrige #17259.

    • [bdubbs] — Atualização para SDL2-2.24.2. Corrige #17258.

    • [bdubbs] — Atualização para cmake-3.24.3. Corrige #17257.

    • [timtas] — Atualização para xfce4-settings-4.16.4. Corrige #17275.

  • 6 novembro 2022

    • [bdubbs] — Atualização para poppler-22.11.0. Corrige #17255.

    • [bdubbs] - Atualização para lcms2-2.14 (Little CMS). Corrige #17254.

    • [bdubbs] — Atualização para stunnel-5.67. Corrige #17253.

  • 3 novembro 2022

    • [bdubbs] — Atualização para URI-5.17 (módulo perl). Corrige #17263.

    • [bdubbs] — Atualização para HTML-Parser-3.80 (Módulo Perl). Corrige #17256.

    • [renodr] — Atualização para systemd-252. Corrige #17250.

    • [xry111] - Substitui hd2u-1.0.4 por dos2unix-7.4.3, em resposta a manutenção inadequada do hd2u.

  • 1 novembro 2022

    • [bdubbs] — Atualização para mpg123-1.31.1. Corrige #17251.

    • [bdubbs] — Atualização para Python3-3.11.0. Corrige #17223.

  • 31 outubro 2022

    • [pierre] — Atualização para OpenJDK-19.0.1 (Atualização de Segurança). Corrige #17240.

    • [ken] — Atualização para asymptote-2.83. Corrige #17083.

  • 30 outubro 2022

    • [bdubbs] — Atualização para mpg123-1.31.0. Corrige #17246.

    • [bdubbs] - Atualização para xsetroot-1.1.3 (aplicativo Xorg). Corrige #17244.

    • [bdubbs] - Atualização para sessreg-1.1.3 (aplicativo Xorg). Corrige #17248.

    • [bdubbs] - Atualização para libXinerama-1.1.5 (biblioteca Xorg). Corrige #17243.

    • [bdubbs] - Atualização para libXext-1.3.5 (biblioteca Xorg). Corrige #17242.

  • 29 outubro 2022

    • [ken] - Permite que postfix construa sobre linux-6.0. Corrije #17247.

    • [pierre] — Atualização para qt5-5.15.7. Corrige #17239.

  • 28 outubro 2022

    • [renodr] — Atualização para samba-4.17.2 (Atualização de Segurança). Corrige #17208.

    • [renodr] - Remenda libtiff contra várias vulnerabilidades. Corrige #17144.

    • [bdubbs] — Atualização para taglib-1.13. Corrige #17238.

    • [bdubbs] — Atualização para xarchiver-0.5.4.20. Corrige #17235.

    • [bdubbs] — Atualização para gdk-pixbuf-2.42.10. Corrige #17234.

    • [ken] — Atualização para fetchmail-6.4.34. Corrige #17188.

  • 27 outubro 2022

    • [bdubbs] — Atualização para wireshark-4.0.1. Corrige #17232.

    • [bdubbs] — Atualização para curl-7.86.0. Corrige #17233.

    • [bdubbs] — Atualização para PerlIO-utf8_strict-0.010 (módulo Perl). Corrige #17231.

  • 24 outubro 2022

    • [bdubbs] - Atualização para alsa-lib alsa-utils 1.2.8. Corrige #17226.

    • [bdubbs] — Atualização para unrar-6.2.1. Corrige #17229.

    • [bdubbs] — Atualização para gtk-4.8.2. Corrige #17227.

    • [bdubbs] — Atualização para valgrind-3.20.0. Corrige #17225.

    • [bdubbs] — Atualização para swig-4.1.0. Corrige #17224.

  • 24 outubro 2022

    • [bdubbs] — Atualização para icewm-3.1.0. Corrige #17222.

    • [bdubbs] — Atualização para xterm-375. Corrige #17221.

    • [bdubbs] — Atualização para libidn2-2.3.4. Corrige #17220.

    • [bdubbs] — Atualização para sudo-1.9.12. Corrige #17219.

  • 23 outubro 2022

    • [bdubbs] — Atualização para thunderbird-102.4.0. Corrige #17209.

    • [bdubbs] — Atualização para flac-1.4.2. Corrige #17218.

    • [bdubbs] — Atualização para fontconfig-2.14.1. Corrige #17215.

    • [bdubbs] — Atualização para Log-Log4perl-1.57 (módulo Perl). Corrige #17216.

    • [bdubbs] — Atualização para xwayland-22.1.4. Corrige #17214.

    • [bdubbs] — Atualização para faad2-2.10.1. Corrige #17210.

    • [bdubbs] — Atualização para NetworkManager-1.40.2. Corrige #17204.

    • [bdubbs] — Atualização para llvm-15.0.3. Corrige #17154.

    • [bdubbs] — Atualização para harfbuzz-5.3.1. Corrige #17211.

    • [bdubbs] — Atualização para mesa-22.2.2. Corrige #17213.

    • [bdubbs] - Atualização para xcb-util-image-0.4.1, xcb-util-keysyms-0.4.1, xcb-util-renderutil-0.3.10, xcb-util-wm-0.4.2, xcb-util-cursor-0.1.4. Corrige #17206.

    • [bdubbs] — Atualização para libXrender-0.9.11 (Biblioteca Xorg). Corrige #17217.

    • [bdubbs] — Atualização para libxshmfence-1.3.1 (Biblioteca Xorg). Corrige #17205.

  • 22 outubro 2022

    • [bdubbs] — Atualização para pixman-0.42.0. Corrige #17203.

    • [bdubbs] — Atualização para qca-2.3.5. Corrige #17202.

    • [bdubbs] — Atualização para libgusb-0.4.2. Corrige #17201.

    • [bdubbs] — Atualização para icu4c-72_1. Corrige #17200.

  • 21 outubro 2022

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

    • [thomas] — Atualização para rsync-3.2.7. Corrige #17212.

    • [bdubbs] — Atualização para libqalculate-4.4.0. Corrige #17195.

    • [bdubbs] — Atualização para libical-3.0.16. Corrige #17194.

    • [bdubbs] — Atualização para libunistring-1.1. Corrige #17191.

    • [bdubbs] — Atualização para asciidoctor-2.0.18. Corrige #17187.

    • [bdubbs] — Atualização para unbound-1.17.0. Corrige #17184.

    • [bdubbs] — Atualização para nss-3.84. Corrige #17181.

    • [bdubbs] — Atualização para gnupg-2.3.8. Corrige #17180.

    • [bdubbs] — Atualização para libsoup-2.74.3. Corrige #17178.

  • 20 outubro 2022

    • [bdubbs] — Atualização para libreoffice-7.4.2.3. Corrige #17179.

    • [bdubbs] — Atualização para node.js-16.18.0. Corrige #17176.

    • [bdubbs] - Atualização para gstreamer-1.20.4 gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly gst-libav gstreamer-vaapi. Corrige #17175.

    • [pierre] - Atualização para libxkbfile-1.1.1 (Biblioteca Xorg). Corrige #17198.

    • [pierre] - Atualização para libpciaccess-0.17 (Biblioteca Xorg). Corrige #17197.

    • [pierre] - Atualização para libXmu-1.1.4 (Biblioteca Xorg). Corrige #17196.

    • [pierre] - Atualização para smproxy-1.0.7 (Aplicativo Xorg). Corrige #17189.

    • [pierre] — Atualização para libxml2-2.10.3 (Atualização de Segurança). Corrige #17185.

    • [pierre] — Atualização para graphviz-6.0.2. Corrige #17172.

    • [pierre] — Atualização para libwacom-2.5.0. Corrige #17182.

    • [pierre] — Atualização para mesa-22.2.1. Corrige #17170.

    • [pierre] — Atualização para wayland-protocols-1.27. Corrige #17169.

    • [pierre] — Atualização para harfbuzz-5.3.0. Corrige #17166.

    • [pierre] - Atualização para libva-2.16.0 (Controlador Xorg). Corrige #17164.

    • [pierre] — Atualização para freeglut-3.4.0. Corrige #17163.

  • 19 outubro 2022

    • [bdubbs] — Atualização para pipewire-0.3.59. Corrige #17139.

    • [bdubbs] — Atualização para git-2.38.1 (Atualização de segurança). Corrige #17199.

    • [thomas] — Atualização para postgresql-15-0. Corrige #17183.

  • 18 outubro 2022

    • [bdubbs] — Atualização para thunderbird-102.3.3 (Atualização de segurança). Corrige #17138.

    • [bdubbs] — Atualização para sqlite-autoconf-3390400 (3.39.4). Corrige #17137.

    • [bdubbs] — Atualização para php-8.1.11. Corrige #17136.

    • [ken] — Atualização para firefox-102.4.0 (Atualização de Segurança). Corrige #17192.

  • 17 outubro 2022

    • [bdubbs] — Atualização para python-dbusmock-0.28.6. Corrige #17173.

    • [bdubbs] — Atualização para python3-3.10.8. Corrige #17174.

  • 15 outubro 2022

    • [bdubbs] — Atualização para btrfs-progs-v6.0. Corrige #17171.

    • [bdubbs] — Atualização para libksba-1.6.2 (Correção de segurança). Corrige #17162.

    • [bdubbs] — Atualização para libgpg-error-1.46. Corrige #17161.

    • [bdubbs] — Atualização para dbus-1.14.4. Corrige #17156.

    • [bdubbs] — Atualização para JSON-4.10 (Módulo Perl). Corrige #17165.

    • [bdubbs] — Atualização para URI-5.16 (Módulo Perl). Corrige #17167.

    • [bdubbs] — Atualização para HTML-Parser-3.79 (Módulo Perl). Corrige #17177.

  • 14 outubro 2022

    • [bdubbs] — Atualização para libical-3.0.15. Corrige #17159.

    • [bdubbs] — Atualização para icewm-3.0.1. Corrige #17158.

    • [bdubbs] — Atualização para dhcp-4.4.3-P1. Corrige #17157.

  • 12 outubro 2022

    • [thomas] — Atualização para postfix-3.7.3. Corrige #17160.

  • 11 outubro 2022

    • [bdubbs] — Atualização para mercurial-6.2.3. Corrige #17155.

    • [thomas] — Atualização para xterm-374. Corrige #17168.

  • 9 outubro 2022

    • [bdubbs] — Atualização para wireshark-4.0.0. Corrige #17152.

  • 5 outubro 2022

    • [bdubbs] - Atualização para Net-DNS-1.35 (Módulo Perl). Corrige #17153.

    • [bdubbs] — Atualização para xkeyboard-config-2.37. Corrige #17151.

    • [bdubbs] — Atualização para SDL2-2.24.1. Corrige #17150.

    • [bdubbs] — Atualização para openssh-9.1p1 e ssh-askpass-9.1p1. Corrige #17149.

    • [bdubbs] — Atualização para icewm-3.0.0. Corrige #17148.

    • [bdubbs] — Atualização para git-2.38.0. Corrige #17147.

  • 4 outubro 2022

    • [bdubbs] — Atualização para poppler-22.10.0. Corrige #17146.

    • [bdubbs] — Atualização para pango-1.50.11. Corrige #17145.

    • [bdubbs] — Atualização para libgusb-0.4.1. Corrige #17143.

    • [bdubbs] — Atualização para qpdf-11.1.1. Corrige #17142.

    • [bdubbs] — Atualização para links-2.28. Corrige #17141.

  • 1 outubro 2022

    • [bdubbs] — Atualização para dbus-1.14.2. Corrige #17126.

    • [bdubbs] — Atualização para libcap-2.66. Corrige #17122.

  • 29 setembro 2022

    • [timtas] - Corrige Xfce4 Power Manager Introduction.

    • [pierre] — Atualização para seamonkey-2.53.14. Corrige #17135.

    • [pierre] — Atualização para plasma-wayland-protocols-1.9.0. Corrige #17134.

    • [pierre] — Atualização para highlight-4.3. Corrige #17133.

    • [pierre] — Atualização para gnutls-3.7.8. Corrige #17132.

    • [pierre] — Atualização para gspell-1.12.0. Corrige #17131.

  • 27 setembro 2022

    • [renodr] — Atualização para libXtst-1.2.4 (Biblioteca Xorg). Corrige #17127.

    • [renodr] — Atualização para libXxf86vm-1.1.5 (Biblioteca Xorg). Corrige #17128.

  • 26 setembro 2022

    • [bdubbs] - Atualização para ffmpeg-5.1.2. Corrige #17124.

    • [bdubbs] - Atualização para xterm-373. Corrige #17123.

  • 25 setembro 2022

    • [pierre] — Atualização para thunderbird-102.3.0 (atualização de segurança). Corrige #17105.

    • [pierre] — Atualização para rust-1.64.0. Corrige #17120.

    • [pierre] — Atualização para llvm-15.0.1. Corrige #16991.

  • 24 setembro 2022

    • [bdubbs] — Atualização para node-16.17.1 (atualização de segurança). Corrige #17119.

    • [bdubbs] — Atualização para unbound-1.16.3 (atualização de segurança). Corrige #17114.

    • [bdubbs] — Atualização para bind-9.18.7 (atualização de segurança). Corrige #17109.

    • [timtas] - Desatualização para mypaint-brushes-1.3.1. Corrige uso do Gimp.

  • 23 setembro 2022

    • [bdubbs] — Atualização para xapian-core-1.4.21. Corrige #17117.

    • [bdubbs] — Atualização para flac-1.4.1. Corrige #17116.

    • [bdubbs] — Atualização para mesa-22.2.0. Corrige #17107.

    • [bdubbs] — Atualização para balsa-2.6.4. Corrige #17104.

    • [renodr] — Atualização para libwpe-1.14.0. Corrige #16535.

    • [renodr] — Atualização para nghttp2-1.50.0. Corrige #17113.

    • [renodr] — Atualização para Mako-1.2.3 (Módulo Python). Corrige #17118.

    • [pierre] — Atualização para ghostscript-10.00.0. Corrige #17115.

  • 21 setembro 2022

    • [renodr] — Atualização para cmake-3.24.2. Corrige #17026.

    • [renodr] — Atualização para gtkmm-3.24.7. Corrige #17027.

    • [renodr] — Atualização para libblockdev-2.28. Corrige #17029.

    • [renodr] — Atualização para xfce4-pulseaudio-plugin-0.4.5. Corrige #17037.

    • [renodr] — Atualização para graphviz-6.0.1. Corrige #17019.

    • [renodr] — Atualização para kdsoap-2.1.1. Corrige #17020.

    • [renodr] — Atualização para neon-0.32.4. Corrige #17022.

    • [renodr] — Atualização para btrfs-progs-5.19.1. Corrige #17023.

    • [bdubbs] — Atualização para pangomm-2.46.3. Corrige #17110.

    • [bdubbs] — Atualização para wpebackend-fdo-1.14.0. Corrige #17103.

    • [bdubbs] — Atualização para mypaint-brushes-2.0.2. Corrige #17098.

    • [bdubbs] — Atualização para glibmm-2.66.5. Corrige #17095.

    • [bdubbs] — Atualização para popt-1.19. Corrige #17055.

    • [bdubbs] — Atualização para gobject-introspection-1.74.0. Corrige #17065.

    • [bdubbs] — Atualização para glib-2.74.0. Corrige #17061.

    • [renodr] — Atualização para nss-3.83. Corrige #17038.

  • 20 setembro 2022

    • [renodr] — Atualização para WebKitGTK+-2.36.8 (Atualização de Segurança). Corrige #17096.

    • [pierre] — Atualização para libreoffice-7.4.1.2.. Corrige #17044.

    • [pierre] — Atualização para gnumeric-1.12.53.. Corrige #17076.

    • [pierre] — Atualização para goffice-0.10.53.. Corrige #17075.

    • [pierre] — Atualização para gtk-4.8.1.. Corrige #17052.

    • [ken] — Atualização para firefox-102.3.0 (Atualização de Segurança). Corrige #17097.

  • 19 setembro 2022

    • [renodr] — Atualização para qtwebengine-5.15.11 (Atualização de Segurança). Corrige #17028.

    • [bdubbs] — Atualização para harfbuzz-5.2.0. Corrige #17056.

    • [bdubbs] — Atualização para libksba-1.6.1. Corrige #17054.

    • [bdubbs] — Atualização para pango-1.50.10. Corrige #17051.

    • [bdubbs] — Atualização para pipewire-0.3.58. Corrige #17045.

    • [bdubbs] — Atualização para acpid-2.0.34. Corrige #17041.

    • [bdubbs] — Atualização para qpdf-11.1.0. Corrige #17040.

  • 17 setembro 2022

    • [timtas] — Atualização para libpng-1.6.38. Corrige #17039.

  • 16 setembro 2022

    • [bdubbs] — Atualização para nspr-4.35. Corrige #17018.

    • [bdubbs] — Atualização para libgusb-0.4.0. Corrige #17017.

    • [bdubbs] — Atualização para emacs-28.2. Corrige #17016.

    • [bdubbs] — Atualização para stunnel-5.66. Corrige #17015.

    • [renodr] — Atualização para Thunderbird-102.2.2. Corrige #17053.

    • [renodr] — Atualização para NetworkManager-1.40.0. Corrige #16956.

    • [renodr] — Atualização para gnome-bluetooth-42.4. Corrige #16997.

    • [renodr] — Atualização para samba-4.17.0. Corrige #16999.

    • [renodr] — Atualização para ModemManager-1.18.12. Corrige #17008.

    • [pierre] - Incondicionalmente use duktape para polkit: adiciona baixa sobrecarga e simplifica as instruções.

  • 15 setembro 2022

    • [timtas] - Corrige URL quebrada de transferência do duktape.

    • [timtas] - Adiciona duktape-2.7.0, permite que polkit use duktape em vez de JS. Corrige #17025.

  • 11 setembro 2022

    • [bdubbs] — Atualização para grantlee-5.3.0. Corrige #17014.

    • [bdubbs] - Atualização para libXft-2.3.6 (biblioteca xorg). Corrige #17013.

    • [bdubbs] — Atualização para qpdf-11.0.0. Corrige #17012.

    • [bdubbs] — Atualização para libnma-1.10.2. Corrige #17007.

    • [bdubbs] — Atualização para fuse-3.12.0. Corrige #17005.

    • [bdubbs] — Atualização para php-8.1.10. Corrige #16974.

  • 10 setembro 2022

    • [pierre] - Habilita pie e ssp por padrão tanto no GCC quanto no LLVM/clang.

    • [bdubbs] — Atualização para xscreensaver-6.05.1. Corrige #17010.

    • [bdubbs] — Atualização para flac-1.4.0. Corrige #17011.

    • [bdubbs] — Atualização para rsync-3.2.6. Corrige #17009.

    • [bdubbs] — Atualização para gtk4-4.8.0. Corrige #17001.

    • [bdubbs] — Atualização para wireshark-3.6.8 (Atualização de Segurança). Corrige #17000.

    • [bdubbs] — Atualização para hdparm-9.65. Corrige #16998.

    • [bdubbs] — Atualização para plasma-wayland-protocols-1.8.0. Corrige #16995.

    • [bdubbs] — Atualização para Python-3.10.7 (Atualização de Segurança). Corrige #16994.

    • [bdubbs] - Adiciona o módulo Python Cython.

  • 9 setembro 2022

    • [pierre] — Atualização para Qt-5.15.6. Corrige #17002.

  • 6 setembro 2022

    • [bdubbs] — Atualização para dbus-python-1.3.2. Corrige #16993.

    • [bdubbs] — Atualização para tree-2.0.4. Corrige #16992.

    • [bdubbs] — Atualização para shadow-4.12.3. Corrige #16932.

  • 6 setembro 2022

    • [bdubbs] — Atualização para nmap-7.93. Corrige #16975.

    • [bdubbs] — Atualização para git-2.37.3. Corrige #16967.

    • [bdubbs] — Atualização para mercurial-6.2.2. Corrige #16973.

    • [bdubbs] — Atualização para xfce4-pulseaudio-plugin-0.4.4. Corrige #16979.

    • [bdubbs] — Atualização para xfce4-notifyd-0.6.4. Corrige #16976.

    • [bdubbs] - Atualização para libXft-2.3.5 (biblioteca xorg). Corrige #16990.

    • [bdubbs] — Atualização para sqlite-autoconf-3390300 (3.39.3). Corrige #16989.

    • [bdubbs] — Atualização para ffmpeg-5.1.1. Corrige #16972.

  • 5 setembro 2022

    • [bdubbs] — Atualização para neon-0.32.3. Corrige #16988.

    • [bdubbs] — Atualização para libwpe-1.12.3. Corrige #16987.

    • [bdubbs] — Atualização para cracklib-2.9.8. Corrige #16981.

    • [bdubbs] — Atualização para libsoup-3.0.8. Corrige #16977.

    • [bdubbs] - Adiciona --no-user nas instruções de instalação do módulo Python. Corrige #16965.

  • 4 setembro 2022

    • [pierre] — Atualização para pipewire-0.3.57. Corrige #16984.

    • [pierre] — Atualização para vala-0.56.3. Corrige #16980.

    • [pierre] — Atualização para libadwaita-1.1.5. Corrige #16978.

    • [pierre] — Atualização para libdrm-2.4.113. Corrige #16970.

    • [pierre] — Atualização para librsvg-2.54.5. Corrige #16953.

    • [bdubbs] — Atualização para Log-Log4perl-1.56 (Módulo Perl). Corrige #16983.

    • [bdubbs] — Atualização para IO-Socket-SSL-2.075 (Módulo Perl). Corrige #16982.

    • [bdubbs] — Atualização para doxygen-1.9.5. Corrige #16955.

    • [bdubbs] — Atualização para libatomic_ops-7.6.14. Corrige #16952.

  • 3 setembro 2022

    • [renodr] — Atualização para libtasn1-4.19.0. Corrige #16942.

    • [renodr] — Atualização para babl-0.1.96. Corrige #16943.

    • [renodr] — Atualização para fetchmail-6.4.33. Corrige #16961.

    • [renodr] — Atualização para gc-8.2.2. Corrige #15732.

    • [renodr] — Atualização para libqalculate-4.3.0. Corrige #16933.

    • [renodr] — Atualização para nghttp2-1.49.0. Corrige #16935.

    • [renodr] — Atualização para mozjs-91.13.0. Corrige #16941.

    • [renodr] - Corrige construção de inkscape com poppler-22.09. Corrige #16985.

    • [renodr] - Corrige construção de Libreoffice com poppler-22.09. Corrige #16986.

    • [renodr] — Atualização para thunderbird-102.2.1 (Atualização de Segurança). Corrige #16971.

    • [renodr] — Atualização para poppler-22.09.0 (Atualização de Segurança). Corrige #16969.

    • [renodr] — Atualização para curl-7.85.0 (Atualização de Segurança). Corrige #16968.

  • 2 setembro 2022

    • [bdubbs] — Atualização para libxslt-1.1.37. Corrige #16963.

    • [bdubbs] — Atualização para libxml2-2.10.2. Corrige #16950.

    • [bdubbs] — Atualização para libXau-1.0.10. Corrige #16958.

    • [bdubbs] - Atualização para libfontenc-1.1.6 (Biblioteca Xorg). Corrige #16960.

    • [bdubbs] - Atualização para libXfont2-2.0.6 (Biblioteca Xorg). Corrige #16959.

    • [bdubbs] - Atualização para libFS-1.0.9 (Biblioteca Xorg). Corrige #16957.

    • [bdubbs] — Atualização para Mako-1.2.2 (módulo Python). Corrige #16964.

    • [bdubbs] — Atualização para PyYAML-6.0 (módulo Python). Corrige #16951.

  • 1 setembro 2022

    • [timtas] — Atualização para qemu-7.1.0. Corrige #16966.

    • [bdubbs] - Lançamento do BLFS-11.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.

Wiki do BLFS

O Projeto BLFS criou um Wiki para usuários(as) comentarem acerca das páginas e das instruções em https://wiki.linuxfromscratch.org/blfs/wiki. Os comentários são bem vindos de todos(as) os(as) usuários(as).

As seguintes são as regras para postagem:

  • Os(As) usuários(as) precisam se registrarem e se logarem para editar uma página.

  • As sugestões para mudar o livro deveriam ser feitas criando-se um novo tíquete, não fazendo-se comentários no Wiki.

  • As perguntas com os seus problemas específicos de instalação deveriam ser feitas assinando-se e escrevendo-se para a Lista de Discussão de Suporte do BLFS em mailto:blfs-support AT linuxfromscratch D0T org.

  • As discussões acerca das instruções de instalação deveriam ser feitas assinando-se e escrevendo-se para a Lista de Desenvolvimento do BLFS em mailto:blfs-dev AT linuxfromscratch D0T org.

  • Material inapropriado será removido.

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 11.3),

  • o pacote ou seção dando problemas para você,

  • a mensagem de erro exata ou sintoma que você está recebendo,

  • se você se desviou do livro ou do LFS de alguma forma,

  • se você está instalando um pacote do BLFS em um sistema que não é o LFS.

(Observe que dizer que você se desviou do livro não significa que nós não te ajudaríamos. Apenas nos ajudará a ver outras causas possíveis do seu problema).

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

  • Bruce Dubbs

  • Pierre Labastie

  • DJ Lucas

  • Ken Moffat

  • Douglas Reno

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

  • Chris Lynn

  • Andrew McMurry

  • Randy McMurchy

  • 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

  • Thomas Trepl

  • 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.

Enquanto você pode manter os arquivos do fonte em qualquer lugar que queira, nós assumimos que você desempacotou o pacote e mudou para o diretório criado pelo processo de desempacotamento (o diretório de 'construção'). Nós assumimos também que você descomprimiu quaisquer remendos exigidos e que eles estão no diretório imediatamente acima do diretório de 'construção'.

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, você precisa estar apto(a) a desempacotar remendos que geralmente não estão no formato .tar. A melhor maneira de fazer isso é a de copiar o arquivo do remendo para o ancestral do diretório da 'construção' e, então, executar um dos seguintes comandos, dependendo se o arquivo for um arquivo .gz ou um .bz2:

gunzip -v nome_remendo.gz
bunzip2 -v nome_remendo.bz2

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.12 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.0 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 quantos processadores estão disponíveis. Por exemplo, um Core2Duo pode suportar dois processos simultâneos com:

export MAKEFLAGS='-j2'

ou apenas construir com:

make -j2

Se você tiver aplicado o sed opcional quando da construção do ninja no LFS, [então] você pode usar:

export NINJAJOBS=2

quando um pacote usar o ninja; ou apenas:

ninja -j2

porém, para o ninja, o número padrão de trabalhos é <N>+2, onde <N> é o número de processadores disponíveis, de forma que usar os comandos acima é preferencialmente para limitar o número de trabalhos (veja-se abaixo para o porque isso poderia ser necessário).

Geralmente o número de processos não deveria exceder o número de núcleos suportados pela CPU. Para listar os processadores em seu 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, [então] 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.

Nota

Quando se executar os testes de pacote ou a porção instalar do processo de construção do pacote, nós não recomendamos usar uma opção maior que '-j1', a menos que especificado de outra maneira. Os procedimentos ou verificações da instalação não foram validados usando-se procedimentos paralelos e possivelmente falhem com problemas que são difíceis de se depurar.

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.

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.

Construir o pacote CUPS é um bom exemplo de como redirecionar um arquivo como entrada gerada para solicitações pode te ajudar a automatizar a construção. Se você executar a suíte de teste, [então] você é solicitado(a) a responder a uma série de perguntas relacionadas ao tipo do teste a executar e se você tem quaisquer aplicativos auxiliares que o teste possa usar. Você pode criar um arquivo com as suas respostas, uma resposta por linha, e usar um comando similar ao mostrado abaixo para automatizar a execução da suíte de teste:

make check < ../cups-1.1.23-testsuite_parms

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 | more

Certamente, você será exigido(a) a visualizar a saída gerada uma página por vez, pois o filtro more 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 | more > 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 script curto do Bash é exigido:

cat > blfs-yes-test2 << "EOF"
#!/bin/bash

ls -l /usr/bin | more

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 consegue ser corretamente construído sem a dependência tendo primeiro sido instalada.

  • Recomendada significa que o BLFS enfaticamente sugere que esse pacote seja instalado primeiro para uma construção limpa e livre de problemas; que não teria problemas seja durante o processo de construção, seja em tempo de execução. As instruções no livro assumem que esses pacotes estejam instalados. Algumas mudanças ou gambiarras possivelmente sejam exigidas se esses pacotes não estiverem instalados.

  • Opcional significa que esse pacote poderia estar instalado para funcionalidade adicionada. Frequentemente o BLFS descreverá a dependência para explicar a funcionalidade adicionada que resultará.

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 "Meson" conseguem aceitar -Dstrip=true ao executar meson. Se esqueceu de adicionar essa opção executando o meson, [então] 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 lugar, 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). O script 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

{ find /usr/lib -type f -name '*.so*' ! -name '*dbg'
  find /usr/lib -type f -name '*.a'
  find /usr/{bin,sbin,libexec} -type f
} |  while read 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

       cp --preserve $file    ${file}.tmp
       strip --strip-unneeded ${file}.tmp
       mv ${file}.tmp $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(as) 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 e CXXFLAGS. 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), [entã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 forçar-se a compilação para uma microarquitetura específica (por exemplo, -march=amdfam10; -march=native) 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 desabilitados em lançamentos usando-se -DNDEBUG. Especificamente, se o Mesa-22.3.5 for construído com essas asserções habilitadas, [então] 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 tem um script de configuração que não é 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, [então] 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 largos 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 é configurado e nenhum sinalizador é gerado. Quaisquer CFLAGS ou CXXFLAGS no ambiente serão usados. Se o(a) programador(a) tiver codificado quaisquer asserções de depuração, [então] essas serão habilitadas, a menos que - DNDEBUG 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 -DNDEBUG
RelWithDebInfo -O2 -g -DNDEBUG
MinSizeRel -Os -DNDEBUG

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<alguma_opção>=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.

  • plano : 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 largos 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 -DNDEBUG' (porém, ocasionalmente, um pacote forçará -O2 aqui)

Apesar do tipo de construção 'lançamento' estar descrito como habilitante do -DNDEBUG e todas as construções CMake Release passarem isso, tem, até agora, somente sido observado (em construções verbosas) para o Mesa-22.3.5. Isso sugere que somente poderia ser usado quando existirem asserções de depuração presentes.

O sinalizador -DNDEBUG também pode ser fornecido passando-se -Db_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 transferirão conforme necessário. Esses pacotes são construídos usando-se cargo --release. Na teoria, você consegue manipular o RUSTFLAGS para mudar o nível de otimização (padrão é 3, semelhante a -03; por exemplo, -Copt-level=3) 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ê encontrar um aplicativo rustc interessante que seja fornecido apenas como fonte desempacotado, [então] você deveria, pelo menos, especificar RUSTFLAGS=-Copt-level=2; do contrário, fará uma compilação não otimizada, com informação de depuração e executará muito mais lento.

Os(As) desenvolvedores(as) do rust parecem presumir que todos compilarão em uma máquina dedicada a produzir construções, de forma que, por padrão, todas as CPUs serão usadas. Isso, frequentemente, pode ser contornado, seja exportando-se CARGO_BUILD_JOBS=<N>, seja passando-se --jobs <N> para o cargo. Para compilar o próprio rustc, especificar-se --jobs <N> em invocações de x.py (junto 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) na maioria das vezes funciona. 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/Optimize-Options.html; e https://gcc.gnu.org/onlinedocs/gcc/Instrumentation-Options.html; e info gcc.

Alguns pacotes padronizam para '-O2 -g'; outros para '-O3 -g'; e, se CFLAGS ou CXXFLAGS forem fornecidos, [então] eles poderiam ser adicionados aos padrões do pacote; substituir os padrões do pacote; ou até serem ignorados. Existem detalhes acerca de alguns pacotes de área de trabalho que eram na maioria das vezes atuais 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 particular a se lembrar é a de que, se você quiser tentar algum dos mais interessantes sinalizadores, [então] você possivelmente precise forçar construções verbosas para confirmar o que está sendo usado.

Claramente, se você estiver otimizando seu próprio aplicativo, [então] você pode gastar tempo para perfilá-lo e, talvez, re-codificar 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, [então] nem tudo executará em um SandyBridge.

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 do Perl ou do Python; ou pacotes do Qt que usam o qmake, [então], no geral, os CFLAGS e CXXFLAGS usados são aqueles que foram usados por aqueles pacotes 'ancestrais'.

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 reforçamento (com opções para desativar parte dele por pacote). Os livros atuais LFS e BLFS estão levando adiante uma parte do espírito dele, habilitando "PIE" (-fPIE -pie) e "SSP" (-fstack-protector-strong) como padrões para o "GCC" e o "clang". O que está sendo abordado aqui é diferente - primeiro, você precisa ter certeza de que o pacote está realmente usando os 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 e (para "C++") -D_GLIBCXX_ASSERTIONS. Nas máquinas modernas, isso deveria ter somente um pequeno impacto na rapidez com que as coisas funcionam e, muitas vezes, não serão perceptíveis.

As principais distribuições usam muito mais, como "RELRO" ("Relocation Read Only") e talvez -fstack-clash-protection. Você também possivelmente encontre a chamada retpoline do espaço de usuário(a) (-mindirect-branch=thunk etc.), que é o equivalente às mitigações de espectro aplicadas ao núcleo Linux no final de 2018. As mitigações do núcleo causaram muitas reclamações acerca de perda de desempenho; se você tiver um servidor de produção, você pode desejar considerar testá-las, juntamente com 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.

Unidades Systemd do BLFS

O pacote "Systemd Units" do BLFS contém os arquivos de unidade do systemd que são usados ao longo do livro.

O pacote "Systemd Units" do BLFS será usado ao longo do livro BLFS para os arquivos de unidade do systemd. Cada unidade do systemd tem um alvo de instalação separado. É recomendado que você mantenha o diretório do fonte do pacote por perto até completar o seu sistema BLFS. Quando uma unidade do systemd for solicitada a partir do "Systemd Units" do BLFS, simplesmente mude para o diretório e, como o(a) usuário(a) root, execute o dado comando make install-<unidade-systemd>. Esse comando instala a unidade do systemd no local adequado dela (junto com quaisquer scripts de configuração auxiliares) e, também, a habilita por padrão.

Nota

É aconselhável examinar cuidadosamente cada unidade do systemd antes da instalação para determinar se os arquivos instalados atendem às suas necessidades.

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.0-61, 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

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/la-files

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-102.8.0 e ghostscript-10.00.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.39, se usada pelo Firefox-102.8.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.

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libraries

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, [então] ela aparecerá na página desse pacote. Para as informações mais recentes relativas a problemas relacionados à localidade para pacotes individuais, verifique as Observações de Usuário(a) no Wiki do BLFS.

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.28. 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-7.2 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 Microsoft Windows tenha configurado padrões efetivos. Um exemplo desse problema são as etiquetas ID3v1 nos arquivos MP3 (veja-se a página Codificação ID3v1 da Wiki do BLFS para mais detalhes). 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-7.2; ao JOE-4.6; e a todos os reprodutores de mídia, exceto o Audacious-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.74.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 Zip-3.0 e o UnZip-6.0 tem esse problema, pois eles rigidamente codificam a codificação esperada de nome de arquivo. O UnZip contém uma tabela rigidamente codificada de conversão entre as codificações CP850 (DOS) e ISO-8859-1 (UNIX) e usa essa tabela quando extrai arquivamentos criados sob o DOS ou sob o Microsoft Windows. Entretanto, essa presunção funciona somente para aqueles(as) nos Estados Unidos da América do Norte e não para qualquer um(a) usando um locale UTF-8. Os caracteres não ASCII serão desfigurados nos nomes de arquivos extraídos.

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.2p1). 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.

O Pacote Instala as Páginas de Manual em Codificação Incorreta ou Não Exibível

Gravidade: Baixa

O LFS espera que as páginas de manual estejam na codificação específica para o idioma (geralmente oito (08) bits), conforme especificado na página Man DB do LFS. Entretanto, alguns pacotes instalam as páginas de manual traduzidas na codificação UTF-8 (por exemplo, o Shadow já tratou); ou páginas de manual em idiomas que não estão na tabela. Nem todos os pacotes do BLFS foram auditados para conformidade com as exigências colocadas no LFS (a quase totalidade foi verificada e correções colocadas no livro para os pacotes conhecidos por instalar páginas de manual não conformes). Se você encontrar uma página de manual instalada por quaisquer dos pacotes do BLFS que obviamente esteja na codificação errada, [então], por favor, remova-a ou converta-a conforme necessário e informe isso para a equipe do BLFS como um defeito.

Você pode verificar facilmente o seu sistema para quaisquer páginas de manual não conformes, copiando o seguinte script curto de shell para algum local acessível,

#!/bin/sh
# Início checkman.sh
# Uso: find /usr/share/man -type f | xargs checkman.sh
for a in "$@"
do
    # echo "Verificando $a..."
    # Página de Manual ASCII puro (possivelmente exceto comentários) está OK
    grep -v '.\\"' "$a" | iconv -f US-ASCII -t US-ASCII >/dev/null 2>&1 \
        && continue
    # Página de Manual não UTF-8 está OK
    iconv -f UTF-8 -t UTF-8 "$a" >/dev/null 2>&1 || continue
    # Encontrada uma Página de Manual UTF-8, ruim.
    echo "Página de Manual UTF-8: $a" >&2
done
# Fim checkman.sh

e, então, emitindo o seguinte comando (modifique o comando abaixo se o script checkman.sh não estiver na sua variável de ambiente PATH):

find /usr/share/man -type f | xargs checkman.sh

Observe que, se você tiver páginas de manual instaladas em qualquer outro local que /usr/share/man (por exemplo, /usr/local/share/man), [então] você precisa modificar o comando acima para incluir esse local adicional.

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; ou expanda MANPATH.

  • Adicione $PREFIX/info a INFOPATH.

  • Adicione $PREFIX/lib/pkgconfig a PKG_CONFIG_PATH. Alguns pacotes agora estão instalando arquivos .pc em $PREFIX/share/pkgconfig, de forma que você possivelmente tenha que incluir esse diretório também.

  • Adicione $PREFIX/include a CPPFLAGS quando compilar pacotes que dependam do pacote que você instalou.

  • Adicione $PREFIX/lib a LDFLAGS quando compilar pacotes que dependam de uma biblioteca instalada pelo pacote.

Se você estiver em busca de um pacote que não estiver no livro, [então] as seguintes são maneiras diferentes que você pode procurar pelo pacote desejado.

Algumas dicas gerais acerca de manusear pacotes novos:

  • Muitos dos pacotes mais recentes seguem o processo ./configure && make && make install. Ajuda acerca das opções aceitas pelo configure pode ser obtida via o comando ./configure --help.

  • A maioria dos pacotes contém documentação acerca de compilar e de instalar o pacote. Alguns dos documentos são excelentes; alguns, não tão excelentes. Consulte a página do pacote para quaisquer dicas adicionais e atualizadas para compilar e configurar o pacote.

  • Se você estiver tendo um problema compilando o pacote, [então] tente procurar nos arquivamentos do LFS em https://www.linuxfromscratch.org/search.html pelo erro; ou, se isso falhar, [então] tente procurar no Google. Frequentemente, uma distribuição já terá solucionado o problema (muitas delas usam versões de desenvolvimento dos pacotes, de forma que elas veem as mudanças mais breve que aqueles de nós que normalmente usamos versões estáveis lançadas). Porém, seja cauteloso(a) - todos(as) os(as) construtores(as) tendem a carregar remendos que não mais são necessários; e terem correções que somente são exigidas por causa das escolhas particulares deles(as) em como constroem um pacote. Você possivelmente tenha que procurar profundamente para encontrar uma correção para a versão do pacote que estiver tentando usar; ou até mesmo para encontrar o pacote (os nomes, ocasionalmente, não são o que você poderia esperar; por exemplo, o ghostscript frequentemente tem um prefixo ou um sufixo no nome dele); entretanto, as observações seguintes poderiam ajudar, particularmente aqueles(as) que, como os(as) editores(as), estão tentando construir as versões mais recentes e encontrar problemas:

    • "Arch" https://www.archlinux.org/packages/ - informe o nome do pacote na caixa 'Keywords'; selecione o nome do pacote; selecione o campo 'Source Files'; e, então, selecione a entrada PKGBUILD para ver como eles constroem esse pacote.

    • "Debian" https://ftp.debian.org/debian/pool (use a versão do seu país, se existir uma) - o fonte estará em "tarballs" ".tar.gz" (ou o fonte original .orig do(a) desenvolvedor(a); ou, do contrário, um dfsg contendo aquelas partes que cumprem as diretrizes de logiciário livre do "Debian") acompanhado por adições versionadas ".diff.gz" ou ".tar.gz". Essas adições frequentemente mostram como o pacote é construído e possivelmente contenham remendos. Nas versões ".diff.gz", quaisquer remendos criam arquivos em debian/patches.

    • O fonte do pacote do Fedora é reorganizado de tempos em tempos. No momento, o fonte do pacote para rpms está em https://src.fedoraproject.org/projects/rpms/%2A e, a partir de lá, você pode tentar colocando um nome de pacote na caixa de busca. Se o pacote for encontrado, [então] você pode olhar nos arquivos ("specfile" para controlar a construção; vários remendos) ou nos commits. Se isso falhar, [então] você pode baixar um srpm (source rpm) e usar o rpm2cpio (veja-se a Dica ao final da página). Para rpms, vá para https://dl.fedoraproject.org/pub/fedora/linux/ e, então, escolha qual repositório deseja olhar - development/rawhide é o desenvolvimento mais recente; ou, escolha "releases", para o que foi embarcado em um lançamento; "updates", para as atualizações para um lançamento; ou, "updates/testing", para as atualizações mais recentes, que poderiam funcionar ou poderiam ter problemas.

    • "Gentoo" - Primeiro use um mecanismo de busca para encontrar um "ebuild" que pareça resolver o problema, ou pesquise em https://packages.gentoo.org/ - use o campo de busca. Observe onde o pacote reside na hierarquia do "portage", por exemplo, app-alguma_coisa/. Em geral você pode tratar o "ebuild" como uma espécie de combinação de pseudocódigo/shell com algumas funções que você pode arriscar, como dodoc. Se a correção for apenas um sed, [então] tente. No entanto, na maioria dos casos, a correção usará um remendo. Para encontrar o remendo, use um espelho "gentoo-portage": Dois links para espelhos nos Estados Unidos da América do Norte que parecem estar atualizados são https://mirror.rackspace.com/gentoo-portage/ e https://mirror.steadfast.net/gentoo-portage/. Navegue pela árvore até o pacote e depois até o diretório files/ para procurar o remendo. Às vezes um espelho do "portage" ainda não foi atualizado, especialmente para um novo remendo recente. Em alguns casos, o "Gentoo" agrupa os remendos em um "tarball" e o "ebuild" terá um link no formato https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${P}-patches-${PATCH_VER }.tar.xz : aqui, procure "PATCH_DEV" e "PATCH_VER" na construção e formate o "URL" completo em seu navegador ou para o "wget" : lembre-se do "~" antes do "ID" do(a) desenvolvedor(a) e observe que tentar pesquisar os níveis anteriores do "URL" em um navegador possivelmente te levará para www.gentoo.org ou retornará 403 (proibido).

    • O "openSUSE" fornece um lançamento contínuo; algumas versões de pacote estão em https://download.opensuse.org/source/tumbleweed/repo/oss/src/, porém outras estão em ../update/openSUSE-current/src - o fonte parece somente estar disponível em "source rpms".

    • "Slackware" - o navegador de pacote oficial atualmente está quebrado. O sítio em https://slackbuilds.org/ tem versões atuais e anteriores no repositório não oficial delas com links para páginas iniciais, transferências e alguns arquivos individuais, particularmente os arquivos .SlackBuild.

    • "Ubuntu" ftp://ftp.ubuntu.com/ubuntu/pool/ - vejam-se as observações "Debian" acima.

    Se tudo o mais falhar, [então] tente a lista de discussão "blfs-support".

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.

Existe um tópico restante: Personalizando o seu Logon com o /etc/issue. Ele 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.

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/CreatingaCustomBootDevice

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.

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/aboutconsolefonts

Configurando um tamanho menor de tela no GRUB

As telas modernas frequentemente tem muito mais pixeis que as telas usadas no passado. Se a sua tela for da largura de mil e seiscentos (1.600) pixeis, [então] uma fonte 8x16 te dará 200 colunas de texto - a menos que o seu monitor seja enorme, o texto será pequeno. Uma das maneiras de se contornar isso é a de se dizer ao GRUB para usar um tamanho menor, tal como 1.024x768; ou 800x600; ou mesmo 640x480. Mesmo se a sua tela não tiver uma proporção de aspecto de 4:3, isso deveria funcionar.

Para tentar isso, você pode reinicializar e editar a linha de comando do GRUB para inserir um parâmetro 'video=' entre o 'root=/dev/sdXn' e o 'ro'; por exemplo, root=/dev/sda2 video=1024x768 ro, baseado no exemplo da seção 10.4.4 do LFS: ../../../../lfs/view/11.3-systemd/chapter10/grub.html.

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 coseguem 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/vconsole.conf conforme descrito na seção 9.6 do LFS ../../../../lfs/view/11.3-systemd/chapter09/console.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 fazer com que trabalhem no melhor deles. Existe um diretório, /lib/firmware, onde o núcleo ou os controladores de núcleo procuram por imagens de firmware.

Atualmente, a maioria do "firmware" pode ser encontrada em um repositório git: https://git.kernel.org/cgit/linux/kernel/git/firmware/linux-firmware.git/tree/. 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, ou aponte um navegador para um dos repositórios acima e, então, transfira o(s) item(s) que você precisar; ou instale o git-2.39.2 e clone aquele repositório.

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).

    Os dispositivos "ATI Radeon" e "AMGPU" todos exigem "firmware" para estarem aptos a usar o "KMS" (kernel modesetting - a opção preferida), bem como para "Xorg". Para os antigos chips "Radeon" (antes do "R600"), o "firmware" ainda está no fonte do núcleo.

    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, do contrário o controlador "nouveau" será incapaz de fornecer aceleração de "hardware". "Nvidia" agora lançou "firmware" até o "Ampere" (série "GeForce30") para o "linux-firmware". Observe que os relógios mais rápidos que o padrão não são habilitados pelo "firmware" lançado.

  • 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 wifi. 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.13; git-2.39.2; pciutils-3.9.0; e Wget-1.21.3

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/aboutfirmware

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.

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 seu núcleo para qualquer um dos métodos. 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 o 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 "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-20230214. Extraia esse arquivo da maneira normal; o microcódigo está no diretório intel-ucode, contendo vários "blobs" com nomes na forma "XX-YY-ZZ". Existem também 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 do seu 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 "Icelake" (descrito como "CPU" "Intel(R) Core(TM) i7-1065G7"), os valores relevantes são "cpu family 6", "model 126", "stepping 5", de modo que, nesse caso, a identificação necessária é "06-7e-05". A nota de lançamento diz que o microcódigo mais recente tem a versão "0xb8". Se o valor do campo microcode em /proc/cpuinfo for "0xb8" ou superior, [então] indica que a atualização do microcódigo já foi aplicada pelo "BIOS". Caso contrário, configure o núcleo para suportar o carregamento do microcódigo "Intel" e prossiga para “Carregamento antecipado do microcódigo”:

General Setup --->
  [*] Initial RAM filesystem and RAM disk (initramfs/initrd) support [CONFIG_BLK_DEV_INITRD]
Processor type and features  --->
  [*] CPU microcode loading support  [CONFIG_MICROCODE]
  [*]      Intel microcode loading support [CONFIG_MICROCODE_INTEL]

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, [então] indica que o "BIOS" já aplicou a atualização do microcódigo. Caso contrário, configure o núcleo para suportar o carregamento do microcódigo "AMD" e prossiga para “Carregamento antecipado do microcódigo”:

General Setup --->
  [*] Initial RAM filesystem and RAM disk (initramfs/initrd) support [CONFIG_BLK_DEV_INITRD]
Processor type and features  --->
  [*] CPU microcode loading support  [CONFIG_MICROCODE]
  [*]      AMD microcode loading support [CONFIG_MICROCODE_AMD]

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.13 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”), [então] você deveria executar mkinitramfs novamente depois de colocar o "blob" ou contêiner apropriado no /lib/firmware. Mais precisamente, coloque um "blob" "Intel" em um diretório /lib/firmware/intel-ucode ou um contêiner "AMD" em um diretório /lib/firmware/amd-ucode antes de executar mkinitramfs. Alternativamente, você pode ter ambos os "initrd" na mesma linha, tal como initrd /microcode.img /outro-initrd.img (adapte isso conforme 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 "Icelake") com carregamento antecipado:

[    0.000000] microcode: microcode updated early to revision 0xb8, date = 2022-08-31
[    0.000000] Linux version 6.1.11 (xry111@stargazer) (gcc (GCC) 12.2.0, GNU ld (GNU Binutils) 2.40) #2 SMP PREEMPT_DYNAMIC Tue Feb 14 23:23:31 CST 2023
[    0.000000] Command line: BOOT_IMAGE=/vmlinuz-6.1.11-lfs-11.3-rc1 root=PARTUUID=<CLASSIFIED> ro
[    0.452924] microcode: sig=0x706e5, pf=0x80, revision=0xb8
[    0.453197] microcode: Microcode Update Driver: v2.2.

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 (R600 e posteriores)

Estas instruções NÃO se aplicam aos antigos Radeons antes da família R600. Para aqueles, o firmware está no diretório do núcleo /lib/firmware/. Nem se aplicam se você pretender evitar uma configuração gráfica como o Xorg e estiver contente em usar a exibição padrão de 80x25 em vez de um framebuffer.

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.9.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 /lib/firmware/radeon
cp -v <YOUR_BLOBS> /lib/firmware/radeon

Atualmente existem duas maneiras de instalar esse firmware. No BLFS, na seção 'Configuração do Núcleo para firmware adicional', parte da seção Controlador ATI do Xorg-19.1.0 dá um exemplo de compilar o firmware no núcleo - isso é ligeiramente mais rápido de carregar, porém usa mais memória do núcleo. Aqui nós usaremos o método alternativo de tornar o controlador Radeon um módulo. No seu config do núcleo, configure o seguinte:

Device Drivers --->
  Graphics support --->
      Direct Rendering Manager --->
        [*] Direct Rendering Manager (XFree86 ... support)  [CONFIG_DRM]
      [M] ATI Radeon                                        [CONFIG_DRM_RADEON]

O carregamento de vários blobs largos a partir de /lib/firmware toma um tempo notável, durante o qual a tela estará sem escrito. Se você não habilitar o logotipo pinguim do framebuffer ou mudar o tamanho do console usando uma fonte maior, [então] provavelmente isso não importa. Se desejado, você pode reduzir ligeiramente o tempo se seguir o método alternativo de especificar 'y' para CONFIG_DRM_RADEON coberto no BLFS no link acima — você precisa especificar cada blob Radeon necessário se fizer isso.

"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.9.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 /lib/firmware/amdgpu
cp -v <TEUS_BLOBS> /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.

É recomendado construir o controlador "amdgpu" do núcleo como um módulo. Em seu ".config" do núcleo configure pelo menos as seguintes opções e revise as outras opções "AMDGPU" de acordo com teu "hardware" alvo, por exemplo "Configuração ACP (Coprocessador de Áudio)":

Device Drivers --->
  Graphics support --->
      Direct Rendering Manager --->
        [*] Direct Rendering Manager (XFree86 ... support)  [CONFIG_DRM]
        [M] AMD GPU                                        [CONFIG_DRM_AMDGPU]
        Display Engine Configuration --->
          [*] AMD DC - Enable new display engine (NEW)      [CONFIG_DRM_AMD_DC]

Conforme escrito acima no final da seção sobre "Firmware para chips de vídeo ATI", carregar grandes "blobs" a partir de "/lib/firmware" pode levar um tempo perceptível durante o qual a tela ficará em branco. Em uma máquina lenta, você pode desejar consultar a parte "Configuração do Núcleo para "firmware" adicional" de Controlador AMDGPU do Xorg-23.0.0 e compilar todos os módulos exigidos internos ao núcleo para reduzir esse tempo, ao custo de usar mais memória do núcleo.

Firmware para chips de vídeo Nvidia

A "Nvidia" lançou "firmware" básico assinado para chips gráficos recentes, mas significativamente depois que os chips e os próprios controladores binários deles foram disponibilizados pela primeira vez. Para outros chips tem sido necessário extrair o "firmware" a partir do controlador binário.

Para informações mais exatas relativas a quais chips precisam de "firmware" extraído, veja-se https://nouveau.freedesktop.org/wiki/VideoAcceleration/#firmware.

Primeiro, o controlador de núcleo Nvidia precisa ser ativado:

Device Drivers --->
  Graphics support --->
      Direct Rendering Manager --->
        <*> Direct Rendering Manager (XFree86 ... support)  [CONFIG_DRM]
      <*/M> Nouveau (NVIDIA) cards                          [CONFIG_DRM_NOUVEAU]

Se o "firmware" necessário estiver disponível no diretório nvidia/ de "linux-firmware", [então] copie-o /lib/firmware/nouveau.

Se o "firmware" não tiver sido disponibilizado em "linux-firmware", para os chips antigos mencionados no link "nouveau" do "wiki" acima, [então] certifique-se de ter instalado Python-2.7.18 e execute os seguintes comandos:

wget https://raw.github.com/imirkin/re-vp2/master/extract_firmware.py
wget https://us.download.nvidia.com/XFree86/Linux-x86/325.15/NVIDIA-Linux-x86-325.15.run
sh NVIDIA-Linux-x86-325.15.run --extract-only
python2 extract_firmware.py
mkdir -p /lib/firmware/nouveau
cp -d nv* vuc-* /lib/firmware/nouveau/

Firmware para Interfaces de Rede de Comunicação

O núcleo gosta de carregar firmware para alguns controladores de rede de comunicação, particularmente aqueles originários do diretório da Realtek (o /lib/linux-firmware/rtl_nic/), porém geralmente eles aparentam funcionar sem isso. Sendo assim, você pode inicializar o núcleo; verificar dmesg para mensagens acerca desse firmware ausente; e, se necessário, baixar o firmware e colocá-lo no diretório especificado no /lib/firmware, de forma que ele será encontrado nas inicializações subsequentes. Observe que, com os núcleos atuais, isso funciona se ou não o controlador for compilado internamente ou construído como um módulo; não existe necessidade de construir esse firmware internamente ao núcleo. Aqui está um exemplo onde o controlador R8169 foi compilado internamente, porém o firmware não foi tornado disponível. Tão logo o firmware tenha sido fornecido, não existiu menção dele nas 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 Outros Dispositivos

Identificar o firmware correto tipicamente exigirá que você instale o pciutils-3.9.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 seu sistema LFS. Para usar uma conexão sem fios, você precisará usar ferramentas de rede de comunicação, tais como Wireless Tools-29 e wpa_supplicant-2.10.

Países diferentes tem regulações diferentes acerca do uso do espectro de rádio dos dispositivos sem fios. Você pode instalar um firmware para fazer com que os dispositivos sem fios obedeçam às regulações locais de espectro, de forma que você não seria questionado(a) pela autoridade local ou não encontraria sua NIC sem fios atrapalhando 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, simplesmente extraia o regulatory.db e o regulatory.db.p7s a partir do tarball no /lib/firmware. O ponto de acesso enviaria um código de país para a sua NIC sem fios e o wpa_supplicant-2.10 diria ao núcleo para carregar a regulação desse país a partir do regulatory.db; e impô-la.

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.

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.

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/aboutdevices

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 crus é 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 crus são de propriedade do(a) usuário(a) root e do grupo usb; 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 embarcam regras do udev que mudam as permissões dos dispositivos USB crus 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 seu dispositivo, [então] informe um defeito para ambos, o BLFS (se o pacote estiver lá) e o(a) desenvolvedor(a), e você precisará escrever sua própria regra.

Existe uma situação quando tal controle de acesso refinado com regras do udev pré-geradas não funciona. Nomeadamente, os emuladores de PC, tais como o KVM; o QEMU; e o VirtualBox, usam nós de dispositivo USB crus para apresentar dispositivos USB arbitrários para o sistema operacional convidado (observação: remendos são necessários para a finalidade de fazer com que isso funcione sem o obsoleto ponto de montagem /proc/bus/usb descrito abaixo). Obviamente, os(as) mantenedores(as) desses pacotes não podem saber quais dispositivos USB serão conectados ao sistema operacional convidado. Você pode, ou escrever você mesmo(a) regras do udev separadas para todos os dispositivos USB necessários; ou usar o grupo padrão abrangente "usb", membros do qual podem enviar comandos arbitrários para todos os dispositivos USB.

Antes do Linux-2.6.15, o acesso de dispositivo USB cru era realizado não com nós de dispositivo /dev/bus/usb/BBB/DDD, porém com pseudo arquivos /proc/bus/usb/BBB/DDD. Alguns aplicativos (por exemplo, o VMware Workstation) ainda usam somente essa técnica obsoleta e não conseguem usar os novos nós de dispositivo. Para eles funcionarem, use o grupo "usb", porém lembre-se de que os(as) membros(as) terão acesso irrestrito a todos os dispositivos USB. Para criar a entrada fstab para o obsoleto sistema de arquivos usbfs:

usbfs  /proc/bus/usb  usbfs  devgid=14,devmode=0660  0  0

Nota

Adicionar usuários(as) ao grupo "usb" é inerentemente inseguro, já que eles(as) conseguem contornar as restrições de acesso impostas por intermédio dos nós de dispositivo USB específicos do controlador. Por exemplo, eles(as) conseguem ler dados sensíveis a partir de unidades rígidas USB sem estarem no grupo "disk". Evite adicionar usuários(as) a esse grupo, se puder.

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.0.32.

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
mysql 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
lightdm 63 63
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 Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/bash-shell-startup-files

/etc/profile

Aqui está um /etc/profile de base. Esse arquivo inicia configurando algumas funções auxiliares e alguns parâmetros básicos. Ele especifica alguns parâmetros do histórico do bash e, para propósitos de segurança, desabilita a manutenção de um arquivo permanente do histórico para o(a) usuário(a) root. Também configura um prompt padrão do(a) usuário(a). Então chama scripts pequenos e de propósito único no diretório /etc/profile.d para fornecer a maior parte da inicialização.

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.

cat > /etc/profile << "EOF"
# Inicia /etc/profile
# Escrito para o Beyond Linux From Scratch
# por James Robertson <jameswrobertson@earthlink.net>
# modificações por Dagmar d'Surreal <rivyqntzne@pbzpnfg.arg>

# Aplicativos da inicialização e variáveis de ambiente abrangentes ao sistema.

# Alias e funções abrangentes ao sistema deveriam estar em /etc/bashrc.  Os aplicativos 
# da inicialização e as variáveis de ambiente pessoais deveriam estar no 
# ~/.bash_profile.  Alias e funções pessoais deveriam estar no 
# ~/.bashrc.

# Funções para nos auxiliar a gerenciar "paths". O segundo argumento é o nome da
# variável "path" a ser modificada (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

# Configura o caminho inicial
export PATH=/usr/bin

# Tenta fornecer retrocompatibilidade com o LFS anterior a 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

# Configura algumas variáveis de ambiente.
export HISTSIZE=1000
export HISTIGNORE="&:[bf]g:exit"

# Configura alguns padrões para os sistemas gráficos
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}

# Configura um prompt vermelho para o(a) root e um verde para os(as) usuários(as).
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

for script in /etc/profile.d/*.sh ; do
        if [ -r $script ] ; then
                . $script
        fi
done

unset script RED GREEN NORMAL

# Termina /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"
# Configuração para /bin/ls e /bin/grep suportarem cor; o alias está em /etc/bashrc.
if [ -f "/etc/dircolors" ] ; then
        eval $(dircolors -b /etc/dircolors)
fi

if [ -f "$HOME/.dircolors" ] ; then
        eval $(dircolors -b $HOME/.dircolors)
fi

alias ls='ls --color=auto'
alias grep='grep --color=auto'
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

# Configura alguns parâmetros residuais antes de outros aplicativos adicionarem a estes caminhos.
pathappend /usr/share/man  MANPATH
pathappend /usr/share/info INFOPATH
EOF

/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 Arquivos de Inicialização do Shell Bash do LFS.

cat > /etc/profile.d/i18n.sh << "EOF"
# Configura variáveis de internacionalização.
. /etc/locale.conf
export LANG
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"
# Início /etc/bashrc
# Escrito para o Beyond Linux From Scratch
# por James Robertson <jameswrobertson@earthlink.net>
# atualização por Bruce Dubbs <bdubbs@linuxfromscratch.org>

# Alias e funções abrangentes ao sistema.

# Variáveis de ambiente e aplicativos de inicialização abrangentes ao sistema
# deveriam ir para /etc/profile. Variáveis de ambiente e aplicativos de inicialização pesoais
# deveriam ir para ~/.bash_profile. Alias e funções pessoais deveriam
# ir para ~/.bashrc

# Fornece comandos coloridos /bin/ls e /bin/grep. Usado junto
# com o código em /etc/profile.

alias ls='ls --color=auto'
alias grep='grep --color=auto'

# Fornece prompt para shells que não são de login, especificamente shells iniciados
# no ambiente do X. [Reveja-se o tópico do arquivamento do LFS intitulado
# "PS1 Environment Variable" para um grande estudo de caso por traz deste
# adendo de script].

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

# Fim /etc/bashrc
EOF

~/.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 seu ambiente de "shell". Você consegue lê-la online em https://www.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

As 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 http://rtfm.etla.org/xterm/ctlseq.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.

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.

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/vulnerabilities

make-ca-1.12

Introdução a 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, 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://github.com/lfs-book/make-ca/releases/download/v1.12/make-ca-1.12.tar.xz

  • Tamanho da transferência: 36 KB

  • Somas de verificação MD5 da transferência: 67e0b911e73a859fc326171c5153d455

  • Espaço em disco estimado exigido: 6,9 MB (com todas as dependências em tempo de execução)

  • Tempo de construção estimado: 0,1 UPC (com todas as dependências em tempo de execução)

Dependências do make-ca

Exigida

p11-kit-0.24.1 (exigido em tempo de execução para gerar lojas de certificado a partir de âncoras de confiança)

Opcional (tempo de execução)

nss-3.88.1 (para gerar um NSSDB compartilhado)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/make-ca

Instalação do make-ca

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.24.1. 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

Como o(a) usuário(a) root, depois de instalar o p11-kit-0.24.1, 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 temporizador do systemd. Um temporizador está instalado em /usr/lib/systemd/system/update-pki.timer que, se habilitado, verificará as atualizações semanalmente. Execute os seguintes comandos, como o(a) usuário(a) root, para habilitar o temporizador do systemd:

systemctl enable update-pki.timer

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.88.1. 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.24.1, 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.24.1 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.21.3 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

Usando o make-ca com o Python3

Quando o Python3 foi instalado no LFS ele incluiu o módulo pip3 com certificados fornecidos pelo módulo Certifi. Isso foi necessário, mas significa que, sempre que o pip3 for usado, ele poderá referenciar esses certificados, principalmente ao criar um ambiente virtual ou ao instalar um módulo com todas as dependências "wheel" dele de uma vez.

Geralmente considera-se que o(a) Administrador(a) do Sistema(a) deveria ser responsável por quais certificados estão disponíveis. Agora que make-ca-1.12 e p11-kit-0.24.1 foram instalados e make-ca foi configurado, é possível fazer com que pip3 use os certificados do sistema.

Os certificados fornecidos instalados no LFS são um instantâneo de quando a versão extraída do Certifi foi criada. Se você atualizar regularmente os certificados do sistema, [então] a versão fornecida se tornará desatualizada.

Para usar os certificados do sistema no Python3 você deveria configurar _PIP_STANDALONE_CERT para apontar para eles, por exemplo, para o "shell" bash:

export _PIP_STANDALONE_CERT=/etc/pki/tls/certs/ca-bundle.crt

Atenção

Se você tiver criado ambientes virtuais, por exemplo, ao testar módulos, e eles incluem os módulos Requests e Certifi em ~/.local/lib/python3.11/, então esses módulos locais serão usados em vez dos certificados do sistema, a menos que você remova os módulos locais.

Para usar os certificados do sistema no Python3 com os perfis BLFS, adicione a seguinte variável aos teus perfis de sistema ou pessoal:

mkdir -pv /etc/profile.d &&
cat > /etc/profile.d/pythoncerts.sh << "EOF"
# Inicia /etc/profile.d/pythoncerts.sh

export _PIP_STANDALONE_CERT=/etc/pki/tls/certs/ca-bundle.crt

# Termina /etc/profile.d/pythoncerts.sh
EOF

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.9.8

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Transferências Adicionais

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 .

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/cracklib

Instalação do CrackLib

Instale CrackLib executando os seguintes comandos:

autoreconf -fiv &&

PYTHON=python3              \
./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.

install -v -m644 -D    ../cracklib-words-2.9.8.bz2 \
                        /usr/share/dict/cracklib-words.bz2    &&

bunzip2 -v               /usr/share/dict/cracklib-words.bz2    &&
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

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.13 se desejar fornecer suporte de senha forte em seu sistema. Se for instalar agora o pacote Linux-PAM-1.5.2, você pode desconsiderar essa observação, pois o Shadow será reinstalado depois da instalação do Linux-PAM.

Explicações do Comando

sed -i '/skipping/d' util/packer.c: Remove um aviso sem significado.

autoreconf -fiv: O script de configuração fornecido com o pacote é muito antigo para obter a sequência correta de caracteres de versão do Python 3.10 ou posterior. Esse comando o regenera com uma versão mais recente do autotools, que corrige o problema.

PYTHON=python3: Isso força a instalação de vínculos python para Python 3, mesmo se o Python 2 estiver instalado.

--with-default-dict=/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.

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 e create-cracklib-dict
Bibliotecas Instaladas: libcrack.so e o _cracklib.so (módulo Python)
Diretórios Instalados: /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.4.3

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do cryptsetup

Exigidas

JSON-C-0.16, LVM2-2.03.18 e popt-1.19

Opcionais

libpwquality-1.4.5, argon2, libssh e passwdqc

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/cryptsetup

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) ---> [CONFIG_MD]
       <*/M> Device mapper support                       [CONFIG_BLK_DEV_DM]
       <*/M> Crypt target support                         [CONFIG_DM_CRYPT]

Cryptographic API  --->
  <*/M> XTS support                                       [CONFIG_CRYPTO_XTS]
  <*/M> SHA224 and SHA256 digest algorithm                [CONFIG_CRYPTO_SHA256]
  <*/M> AES cipher algorithms                             [CONFIG_CRYPTO_AES]
  <*/M> User-space interface for symmetric key cipher algorithms
                                                          [CONFIG_CRYPTO_USER_API_SKCIPHER]
  For tests:
  <*/M> Twofish cipher algorithm                          [CONFIG_CRYPTO_TWOFISH]

Instalação do cryptsetup

Instale cryptsetup executando os seguintes comandos:

./configure --prefix=/usr --disable-ssh-token &&
make

Para testar o resultado, emita como o(a) usuário(a) root: make check. Alguns testes falharão se as opções apropriadas de configuração do núcleo não forem configuradas. Algumas opções adicionais que possivelmente sejam necessárias para os 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_CRCT 10DIF, 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 e CONFIG_CRYPTO_TWOFISH_X86_64.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--disable-ssh-token: Essa opção é exigida se a dependência opcional libssh não estiver instalada.

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

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 destino 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 a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Cyrus SASL

Recomendada
Opcionais

Linux-PAM-1.5.2, MIT Kerberos V5-1.20.1, MariaDB-10.6.12 ou MySQL, OpenLDAP-2.6.4, PostgreSQL-15.2, sphinx-6.1.3, SQLite-3.40.1, krb4, Dmalloc e Pod::POM::View::Restructured

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/cyrus-sasl

Instalação do Cyrus SASL

Nota

Esse pacote não suporta construção paralela.

Instale o Cyrus SASL executando os seguintes comandos:

./configure --prefix=/usr       \
            --sysconfdir=/etc    \
            --enable-auth-sasldb \
            --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 Berkeley DB.

--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.

Unidade do Systemd

Se você precisar executar o processo de segundo plano saslauthd na inicialização do sistema, [então] instale a unidade saslauthd.service incluída no pacote blfs-systemd-units-20220720 usando o seguinte comando:

make install-saslauthd

Nota

Você precisará modificar /etc/default/saslauthd e modificar o parâmetro MECHANISM com o mecanismo de autenticação desejado. O mecanismo de autenticação padrão é "shadow".

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.0

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do GnuPG 2

Exigidas

libassuan-2.5.5, libgcrypt-1.10.1, libksba-1.6.3 e npth-1.6

Recomendadas
Opcionais

cURL-7.88.1, Fuse-3.13.1, ImageMagick-7.1.0-61 (para o utilitário convert, usado para gerar a documentação), libusb-1.0.26, um MTA, OpenLDAP-2.6.4, SQLite-3.40.1, texlive-20220321 (ou install-tl-unx), fig2dev (para gerar a documentação) e GNU adns

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/gnupg2

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.0 &&
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-20220321 instalado e você desejar criar a documentação em formatos alternativos, [então] emita os seguintes comandos (fig2dev é necessário para o formato "ps"):

make -C doc pdf 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/gnupg-2.4.0/html           &&
install -v -m644    doc/gnupg_nochunks.html \
                    /usr/share/doc/gnupg-2.4.0/html/gnupg.html &&
install -v -m644    ../doc/*.texi doc/gnupg.txt \
                    /usr/share/doc/gnupg-2.4.0 &&
install -v -m644    doc/gnupg.html/* \
                    /usr/share/doc/gnupg-2.4.0/html

Se você criou formatos alternativos da documentação, [então] instale-os usando o seguinte comando como o(a) usuário(a) root:

install -v -m644 doc/gnupg.{pdf,dvi,ps} \
                /usr/share/doc/gnupg-2.4.0

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.0: Essa chave muda o diretório padrão da documentação para /usr/share/doc/gnupg-2.4.0.

--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: Nenhuma
Diretórios Instalados: /usr/share/doc/gnupg-2.4.0 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.0

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do GnuTLS

Exigida

Nettle-3.8.1

Recomendadas
Opcionais

Brotli-1.0.9, Doxygen-1.9.6, GTK-Doc-1.33.2, libidn-1.41 ou libidn2-2.3.4, libseccomp-2.5.4, Net-tools-2.10 (usado durante a suíte de teste), texlive-20220321 ou install-tl-unx, Unbound-1.17.1 (para construir a biblioteca DANE), Valgrind-3.20.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) e Trousers (suporte a Trusted Platform Module)

Nota

Observe que, se você não instalar o libtasn1-4.19.0, [então] uma versão enviada no tarball GnuTLS será usada em vez.

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/gnutls

Instalação do GnuTLS

Instale GnuTLS executando os seguintes comandos:

./configure --prefix=/usr \
           --docdir=/usr/share/doc/gnutls-3.8.0 \
           --with-default-trust-store-pkcs11="pkcs11:" &&
make

Para testar os resultados, emita: make check.

Agora, 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.24.1 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.24.1 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.

--with-included-unistring: usa a versão empacotada da libunistring, em vez da do sistema. Use essa chave se você não tiver instalado libunistring-1.1.

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, libgnutls-openssl.so (opcional) e /usr/lib/guile/3.0/extensions/guile-gnutls-v-2.so
Diretórios Instalados: /usr/include/gnutls, /usr/lib/guile/3.0/site-ccache/gnutls, /usr/share/guile/site/3.0/gnutls e /usr/share/doc/gnutls-3.8.0

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.18.0

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Transferências Adicionais

Dependências do GPGME

Exigida

libassuan-2.5.5

Opcionais

Doxygen-1.9.6 e Graphviz-7.1.0 (para documentação da API), GnuPG-2.4.0 (exigido se Qt ou SWIG estiverem instalados; usado durante a suíte de teste), Clisp-2.49, Qt-5.15.8 e (ou) SWIG-4.1.1 (para vinculações de idioma)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/gpgme

Instalação do GPGME

Primeiro, corrija um problema de construção com Python 3.11 instalado:

sed -e 's/3\.9/3.11/'                   \
    -e 's/:3/:4/'                        \
    -i configure

Aplique um remendo para corrigir uma falha de construção com SWIG e libgpg-error-1.46 ou posterior:

patch -Np1 -i ../gpgme-1.18.0-gpg_error_1_46-1.patch

Instale GPGME executando os seguintes comandos:

./configure --prefix=/usr --disable-gpg-test &&
make

Para testar os resultados, você deveria ter GnuPG-2.4.0 instalado e remover o --disable-gpg-test acima. Emita: make -k check.

Agora, como o(a) usuário(a) root:

make install

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.0. Esse parâmetro não é necessário se GnuPG-2.4.0 estiver instalado.

Conteúdo

Aplicativo Instalado: gpgme-json e gpgme-tool
Bibliotecas Instaladas: libgpgme, libgpgmepp.so e libqgpgme.so
Diretório Instalado: /usr/include/{gpgme++,qgpgme,QGpgME}, /usr/lib/cmake/{Gpgmepp,QGpgme}, /usr/lib/python{2.7,3.9}/site-packages/gpg 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.9

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do iptables

Opcionais

libpcap-1.10.3 (exigido para suporte ao 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

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/iptables

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  --->                                         [CONFIG_NET]
      Networking Options  --->
        [*] Network packet filtering framework (Netfilter) --->       [CONFIG_NETFILTER]
          [*] Advanced netfilter configuration                        [CONFIG_NETFILTER_ADVANCED]
          Core Netfilter Configuration --->
            <*/M> Netfilter connection tracking support               [CONFIG_NF_CONNTRACK]
            <*/M> Netfilter Xtables support (required for ip_tables)  [CONFIG_NETFILTER_XTABLES]
            <*/M> LOG target support                                  [CONFIG_NETFILTER_XT_TARGET_LOG]
          IP: Netfilter Configuration --->
            <*/M> IP tables support (required for filtering/masq/NAT) [CONFIG_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 5.x.

install -v -dm755 /etc/systemd/scripts

cat > /etc/systemd/scripts/iptables << "EOF"
#!/bin/sh

# Início do /etc/systemd/scripts/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 verboso a respeito 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 
# 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 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

# Registra tudo o mais.
iptables -A INPUT -j LOG --log-prefix "FIREWALL:INPUT "

# Fim do /etc/systemd/scripts/iptables
EOF
chmod 700 /etc/systemd/scripts/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).

install -v -dm755 /etc/systemd/scripts

cat > /etc/systemd/scripts/iptables << "EOF"
#!/bin/sh

# Inicia /etc/systemd/scripts/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 núcleo).

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

# Habilitar Proteção de "Cookies" "SYN" do "TCP"
echo 1 > /proc/sys/net/ipv4/tcp_syncookies

# Desabilitar Aceitação de Redirecionamento "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 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 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

# As seções seguintes permitem pacotes de entrada para exemplos específicos;
# descomente as linhas de exemplo e ajuste conforme necessário

# Permite ping na interface externa
#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

# Rejeita pacotes idênticos com reconfiguração de TCP para evitar atrasos com o FTP ou o IRC
#iptables -A INPUT  -p tcp --dport 113 -j REJECT --reject-with tcp-reset

# Permite HTTP e HTTPS para 192.168.0.2
#iptables -A PREROUTING -t nat -i WAN1 -p tcp --dport 80 -j DNAT --to 192.168.0.2
#iptables -A PREROUTING -t nat -i WAN1 -p tcp --dport 443 -j DNAT --to 192.168.0.2
#iptables -A FORWARD -p tcp -d 192.168.0.2 --dport 80 -j ACCEPT
#iptables -A FORWARD -p tcp -d 192.168.0.2 --dport 443 -j ACCEPT

# Termina /etc/systemd/scripts/iptables
EOF
chmod 700 /etc/systemd/scripts/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.

Unidade do systemd

Para configurar o firewall iptables na inicialização, instale a unidade iptables.service inclusa no pacote blfs-systemd-units-20220720.

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.9 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.9. 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.67 com PAM

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do libcap

Exigida

Linux-PAM-1.5.2

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libcap

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.5.2 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
Biblioteca Instalada: pam_cap.so
Diretórios Instalados: Nenhum

Linux-PAM-1.5.2

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Transferências Adicionais

Documentação Opcional

Dependências do Linux PAM

Opcionais

Base de Dados Berkeley-5.3.28, libnsl-2.0.0, libtirpc-1.3.3, libaudit e Prelude

Opcional (Para Reconstruir a Documentação)

docbook-xml-4.5, docbook-xsl-nons-1.79.2, fop-2.8, libxslt-1.1.37 e ou Lynx-2.8.9rel.1 ou W3m

Nota

Shadow-4.13 e Systemd-252 precisa ser reinstalado e reconfigurado depois de instalar e de configurar o Linux PAM.

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/linux-pam

Instalação do Linux PAM

Se você baixou a documentação, [então] desempacote o tarball emitindo o seguinte comando.

tar -xf ../Linux-PAM-1.5.2-docs.tar.xz --strip-components=1

Se quiser regenerar a documentação você mesmo(a), [então] corrija o script configure, de forma que detectará o lynx:

sed -e 's/dummy elinks/dummy lynx/'                                   \
    -e 's/-no-numbering -no-references/-force-html -nonumbers -stdin/' \
    -i configure

Compile e vincule o Linux PAM executando os seguintes comandos:

./configure --prefix=/usr                       \
            --sbindir=/usr/sbin                  \
            --sysconfdir=/etc                    \
            --libdir=/usr/lib                    \
            --enable-securedir=/usr/lib/security \
            --docdir=/usr/share/doc/Linux-PAM-1.5.2 &&
make

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 make install sobrescreve os arquivos de configuração em /etc/security, assim como em /etc/environment . Se você tiver modificado esses arquivos, [então] 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 make check. Certifique-se de que os testes não produziram erros antes de continuar a instalação. Observe que os testes são muito longos. Redirecione a saída gerada para um arquivo de registro, de forma que você possa inspecioná-lo completamente.

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:

make install &&
chmod -v 4755 /usr/sbin/unix_chkpwd

Explicações do Comando

--enable-securedir=/usr/lib/security: Essa chave configura o local de instalação para os módulos PAM.

--disable-regenerate-docu : se as dependências necessárias (docbook-xml-4.5, docbook-xsl-nons-1.79.2, libxslt-1.1.37 e Lynx-2.8.9rel.1 ou W3m) estiverem instaladas, [então] as páginas de manual e os arquivos de documentação html e de texto, serão geradas e instaladas. Além disso, se fop-2.8 estiver instalado, [então] a documentação PDF será gerada e instalada. Use essa chave se não desejar reconstruir a documentação.

chmod -v 4755 /usr/sbin/unix_chkpwd: O bit setuid para o aplicativo auxiliar unix_chkpwd precisa ser ativado, de forma que processos não root possam acessar o arquivo de sombra.

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" &&
# Início /etc/pam.d/system-account

account   required    pam_unix.so

# Fim /etc/pam.d/system-account
EOF

cat > /etc/pam.d/system-auth << "EOF" &&
# Início /etc/pam.d/system-auth

auth      required    pam_unix.so

# Fim /etc/pam.d/system-auth
EOF

cat > /etc/pam.d/system-session << "EOF" &&
# Início /etc/pam.d/system-session

session   required    pam_unix.so

# Fim /etc/pam.d/system-session
EOF

cat > /etc/pam.d/system-password << "EOF"
# Início /etc/pam.d/system-password

# use hash sha512 para encriptação; use sombreamento e tente usar algum 
# token de autenticação previamente definido (senha escolhida) 
# configurado por algum módulo anterior. Use o mesmo número de voltas 
# que o sombreamento.
password  required    pam_unix.so       sha512 shadow try_first_pass \
                                        rounds=500000

# Fim /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 permitidas. O Guia do(a) Administrador(a) do Sistema Linux-PAM é recomendado para informação adicional.

Importante

Você deveria agora reinstalar os pacotes Systemd-252 e Shadow-4.13.

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.5.2

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 a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Transferências Adicionais

Dependências do liboauth

Exigida

cURL-7.88.1

Opcionais

nss-3.88.1 e Doxygen-1.9.6 (para construir a documentação)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/liboauth

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.9.6), 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
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 a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do libpwquality

Exigida

CrackLib-2.9.8

Recomendadas

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libpwquality

Instalação do libpwquality

Instale libpwquality executando os seguintes comandos:

./configure --prefix=/usr                     \
            --disable-static                   \
            --with-securedir=/usr/lib/security \
            --with-python-binary=python3       &&
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-python-binary=python3: Esse parâmetro dá o local do binário Python. O padrão é python e exige Python-2.7.18.

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"
# Início /etc/pam.d/system-password

# verifica novas senhas para robustez (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 hash sha512 para encriptação; use sombreamento e use o token de 
# autenticação (senha escolhida) configurada pelo pam_pwquality acima 
# (ou quaisquer módulos anteriores). Também configure o número de voltas 
# de cripta para o valor usado no sombreamento.
password  required    pam_unix.so        sha512 shadow use_authtok \
                                         rounds=500000

# Fim /etc/pam.d/system-password
EOF

Conteúdo

Aplicativos Instalados: pwscore e pwmake
Bibliotecas Instaladas: pam_pwquality.so e libpwquality.so
Diretórios Instalados: Nenhum

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.20.1

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://kerberos.org/dist/krb5/1.20/krb5-1.20.1.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 73f5780e7b587ccd8b8cfc10c965a686

  • Tamanho da transferência: 8,3 MB

  • Espaço em disco estimado exigido: 94 MB (adicionar 14 MB para os testes)

  • Tempo de construção estimado: 0,3 UPC (Usando paralelismo=4; adicione 5,8 UPC para os testes)

Dependências do MIT Kerberos V5

Opcionais

Utilitários BIND-9.18.12, GnuPG-2.4.0 (para autenticar o pacote), keyutils-1.6.1, OpenLDAP-2.6.4, Valgrind-3.20.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.8p15) é necessário, pois o Kerberos não autenticaria se houvesse uma diferença de horário entre um cliente kerberizado e o servidor KDC.

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/mitkrb

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 &&
sed -i '/t_kadm5.py/d'           lib/kadm5/Makefile.in                &&

./configure --prefix=/usr           \
            --sysconfdir=/etc        \
            --localstatedir=/var/lib \
            --runstatedir=/run       \
            --with-system-et         \
            --with-system-ss         \
            --with-system-verto=no   \
            --enable-dns-for-realm &&
make

Para testar a construção, emita como o(a) usuário(a) root: make -k -j1 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.

Agora, como o(a) usuário(a) root:

make install &&

install -v -dm755 /usr/share/doc/krb5-1.20.1 &&
cp -vfr ../doc/* /usr/share/doc/krb5-1.20.1

Explicações do Comando

Os dois comandos sed removem os testes que são conhecidos por falharem.

--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.

--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.9.8. 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.20.1 na qual as instruções acima são baseadas.

Unidade do Systemd

Se você deseja iniciar os serviços Kerberos na inicialização, [então] instale a unidade krb5.service incluída no pacote blfs-systemd-units-20220720 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.20.1,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.8.1

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Nettle

Opcionais

Valgrind-3.20.0 (opcional para os testes)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/nettle

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.8.1 &&
install -v -m644 nettle.html /usr/share/doc/nettle-3.8.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.8.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.88.1

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://archive.mozilla.org/pub/security/nss/releases/NSS_3_88_1_RTM/src/nss-3.88.1.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 7ca8ff8ed672d82290c3122f38708579

  • Tamanho da transferência: 69 MB

  • Espaço em disco estimado exigido: 297 MB (adicionar 129 MB para os testes)

  • Tempo de construção estimado: 1,2 UPC (com paralelismo=4; adicione menos que 20 UPC para os testes em ryzens AMD ou ao menos 30 UPC em máquinas Intel)

Transferências Adicionais

Dependências do NSS

Exigida

NSPR-4.35

Recomendadas

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/nss

Instalação do NSS

Instale NSS executando os seguintes comandos:

patch -Np1 -i ../nss-3.88.1-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, é necessário especificar um FQDN 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 extremamente longo para executar. Se desejado, [então] existe informação no script all.sh relativa à execução de 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      &&
chmod -v 644                                  /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.24.1 estiver instalado, [então] 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 de NSS, em vez da lista 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.12 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.2p1

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.2p1.tar.gz

  • Soma de verificação MD5 da transferência: f78b2acac4bb299629a8c58ddc3fac63

  • Tamanho da transferência: 1,8 MB

  • Espaço em disco estimado exigido: 44 MB (adicionar 22 MB para os testes)

  • Tempo de construção estimado: 0,2 UPC (Usando paralelismo=4; executar os testes toma cerca de vinte (20) minutos, independentemente da velocidade do processador)

Dependências do OpenSSH

Opcionais

GDB-13.1 (para os testes), Linux-PAM-1.5.2, um ambiente gráfico, MIT Kerberos V5-1.20.1, Which-2.21 (para os 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.2

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/OpenSSH

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 -m700 -d /var/lib/sshd &&
chown   -v root:sys /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

A suíte de teste exige uma cópia instalada do scp para concluir os testes de multiplexação. Para executar a suíte de teste, primeiro copie o aplicativo scp para /usr/bin, certificando-se de produzir uma cópia de segurança de qualquer cópia existente primeiro.

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.2p1     &&
install -v -m644    INSTALL LICENCE OVERVIEW README* \
                    /usr/share/doc/openssh-9.2p1

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=/usr/bin/xauth: Configura o local padrão para o binário xauth para autenticação do X. Mude o local se o xauth for instalado em um caminho diferente. 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_rsa.pub NOME_USUARIO(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.

Unidade do systemd

Para iniciar o servidor SSH na inicialização do sistema, instale a unidade sshd.service incluída no pacote blfs-systemd-units-20220720.

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.2p1 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.24.1

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do p11-kit

Recomendadas
Opcionais

GTK-Doc-1.33.2, libxslt-1.1.37 e nss-3.88.1 (tempo de execução)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/p11-kit

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"
# Copia as modificações de âncora existentes para /etc/ssl/local
/usr/libexec/make-ca/copy-trust-modifications

# Atualiza armazenamentos confiáveis
/usr/sbin/make-ca -r
EOF

Instale p11-kit executando os seguintes comandos:

mkdir p11-build &&
cd   p11-build &&

meson --prefix=/usr       \
      --buildtype=release \
      -Dtrust_paths=/etc/pki/anchors &&
ninja

Para testar os resultados, emita: 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.

-Dtrust_paths=/etc/pki/anchors: essa chave configura o local dos certificados confiáveis usados pela libp11-kit.so.

-Dhash_impl=freebl: Use essa chave se quiser usar a biblioteca Freebl proveniente da NSS para hash SHA1 e MD5.

-Dgtk_doc=true: Use essa chave se você tiver instalado GTK-Doc-1.33.2 e libxslt-1.1.37 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-122

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Polkit

Exigidas

GLib-2.74.5 e duktape-2.7.0

Recomendadas

Nota

Como systemd-logind usa PAM para registrar sessões de usuário(a), é uma boa ideia construir Polkit com suporte a PAM, de forma que systemd-logind possa rastrear sessões Polkit.

Opcionais

GTK-Doc-1.33.2, JS-102.8.0 (pode ser usado no lugar de duktape) e dbusmock-0.28.7 (para os testes)

Dependências Exigidas em Tempo de Execução

Systemd-252

Dependências Opcionais em Tempo de Execução

Um agente de autenticação polkit para usar o polkit no ambiente gráfico: polkit-kde-agent em Plasma-5.26.5 para KDE, o agente construído em gnome-shell-43.3 para GNOME3, polkit-gnome-0.105 para XFCE e lxpolkit em LXSession-0.5.5 para LXDE

Nota

Se libxslt-1.1.37 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.37, mas não deseja instalar nenhum dos pacotes DocBook mencionados, [então] você precisará usar -Dman=false nas instruções abaixo.

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/polkit

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 Polkit executando os seguintes comandos:

mkdir build &&
cd   build &&

meson --prefix=/usr                       \
      --buildtype=release                 \
      -Dman=true                          \
      -Dsession_tracking=libsystemd-login \
      -Dtests=true                        \
      -Djs_engine=duktape                 \
      ..                                  &&
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.28.7 estejam instalados. Em seguida, execute meson test -t3.

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.

-Dtests=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.

-Djs_engine=duktape: Essa chave permite usar o mecanismo do JavaScript duktape-2.7.0. Substitua por -Djs_engine=mozjs para usar o mecanismo do JavaScript JS-102.8.0.

-Dauthfw=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.

-Dintrospection=false: Use essa opção se tiver certeza de que não precisa dos arquivos gobject-introspection para o polkit ou não tiver o gobject-introspection instalado.

-Dman=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.

-Dexamples=true: Use essa opção para construir os aplicativos de exemplo.

-Dgtk_doc=true: Use essa opção para habilitar a construção e a instalação da documentação da API.

Configurando Polkit

Configuração PAM

Nota

Se não construiu o Polkit com suporte para Linux PAM, [então] você pode pular esta seção.

Se tiver construído o Polkit com suporte para Linux PAM, [então] você precisa modificar o arquivo padrão de configuração PAM que foi instalado por padrão para fazer o Polkit 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/polkit-1 << "EOF"
# Início /etc/pam.d/polkit-1

auth     include        system-auth
account  include        system-account
password include        system-password
session  include        system-session

# Fim /etc/pam.d/polkit-1
EOF

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 a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Transferências Adicionais

Dependências do Polkit GNOME

Exigidas

AccountsService-22.08.8, GTK+-3.24.36 e Polkit-122

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/polkit-gnome

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-authentification-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.13

Introdução a Shadow

O Shadow foi realmente instalado no LFS e não existe razão para reinstalá-lo, a menos que você tenha instalado o CrackLib ou o Linux-PAM depois que seu sistema LFS foi concluído. Se você tiver instalado CrackLib depois do LFS, então reinstalar o Shadow habilitará o suporte a senha forte. Se você tiver instalado o Linux-PAM, [então] reinstalar o Shadow permitirá que aplicativos como login e su utilizem o PAM.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Shadow

Exigida

Linux-PAM-1.5.2 ou CrackLib-2.9.8

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/shadow

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.

Se você estiver reinstalando Shadow para fornecer suporte de senha forte usando a biblioteca CrackLib sem usar Linux-PAM, [então] certifique-se de adicionar o parâmetro --with-libcrack ao script configure abaixo e também emita o seguinte comando:

sed -i 's@DICTPATH.*@DICTPATH\t/lib/cracklib/pw_dict@' etc/login.defs

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 SHA512@' \
    -e 's@#\(SHA_CRYPT_..._ROUNDS 5000\)@\100@'       \
    -e 's@/var/spool/mail@/var/mail@'                 \
    -e '/PATH=/{s@/sbin:@@;s@/bin:@@}'                \
    -i etc/login.defs                                 &&

./configure --sysconfdir=/etc               \
            --disable-static                \
            --with-group-name-max-length=32 &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make exec_prefix=/usr 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 SHA512@' -e 's@#\(SHA_CRYPT_..._ROUNDS 5000\)@\100@' -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 mais seguro 'SHA512' de hash de senhas, que também permite senhas maiores que oito caracteres. O número de rodadas também é aumentado para evitar ataques de senha de força bruta. 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.

--with-group-name-max-length=32: O nome máximo de usuário(a) é de trinta e dois (32) caracteres. Torne o nome máximo do grupo o mesmo.

Configurando Linux-PAM para Funcionar com Shadow

Nota

O restante desta página é dedicado à configurar o Shadow para funcionar adequadamente com o Linux-PAM. Se você não tiver o Linux-PAM instalado e reinstalou o Shadow para suportar senhas fortes por meio da biblioteca CrackLib, [então] nenhuma configuração adicional é necessária.

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.5.2 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            \
                CRACKLIB_DICTPATH        \
                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 data do login mais recente - Desabilitado por padrão
#session   optional    pam_lastlog.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/11.3-systemd/chapter08/shadow.html#contents-shadow.

ssh-askpass-9.2p1

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do ssh-askpass

Exigidas

GTK+-3.24.36, Sudo-1.9.13p1 (tempo de execução), Bibliotecas do Xorg e um ambiente gráfico (tempo de execução)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/ssh-askpass

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.13p1 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: Nenhuma
Diretório Instalado: /usr/libexec/openssh/contrib

stunnel-5.68

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do stunnel

Opcionais

libnsl-2.0.0, netcat (exigido para os testes), tcpwrappers e TOR

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/stunnel

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 &&
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.68 install

Instale a unidade systemd incluída executando o seguinte comando como o(a) usuário(a) root:

install -v -m644 tools/stunnel.service /usr/lib/systemd/system

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

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.

Unidade do systemd

Para iniciar o processo de segundo plano stunnel na inicialização, habilite a unidade do systemd instalada anteriormente executando o seguinte comando como o(a) usuário(a) root:

systemctl enable 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.68

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.13p1

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Sudo

Opcionais

Linux-PAM-1.5.2, MIT Kerberos V5-1.20.1, OpenLDAP-2.6.4, MTA (que fornece um comando sendmail), AFS, FWTK e Opie

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/sudo

Instalação do Sudo

Instale Sudo executando os seguintes comandos:

./configure --prefix=/usr             \
            --libexecdir=/usr/lib      \
            --with-secure-path         \
            --with-all-insults         \
            --with-env-editor          \
            --docdir=/usr/share/doc/sudo-1.9.13p1 \
            --with-passprompt="[sudo] password for %p: " &&
make

Para testar os resultados, emita: env LC_ALL=C make check 2>&1 | tee make-check.log. Check the results with grep failed make-check.log.

Agora, como o(a) usuário(a) root:

make install &&
ln -sfv libsudo_util.so.0.0.0 /usr/lib/sudo/libsudo_util.so.0

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-all-insults: Essa chave inclui todos os conjuntos de insultos do sudo.

--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.

Nota

Existem muitas opções para o comando configure do sudo. Verifique a saída gerada do configure --help para uma lista completa.

ln -sfv libsudo_util...: Contorna um defeito no processo de instalação, que vincula à versão instalada anteriormente (se existir uma) em vez da nova.

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 configurar o caminho para o(a) superusuário(a) e permitir que os membros 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, sample_approval.so, sudoers.so, sudo_noexec.so e system_group.so
Diretórios Instalados: /etc/sudoers.d, /usr/lib/sudo, /usr/share/doc/sudo-1.9.13p1 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 a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Tripwire

Opcionais

Um MTA

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/tripwire

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 exemplo 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: Nenhuma
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

volume_key-0.3.12

Introdução a volume_key

O pacote volume_key fornece uma biblioteca para manipular as chaves de encriptação do volume de armazenamento e para armazená-las separadamente dos volumes para lidar com frases senha esquecidas.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do volume_key

Exigidas

cryptsetup-2.4.3, GLib-2.74.5, GnuPG-2.4.0, GPGME-1.18.0 e nss-3.88.1

Recomendada

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/volume_key

Instalação do volume_key

Nota

Esse pacote se expande para o diretório volume_key-volume_key-0.3.12.

Diga ao sistema de construção como localizar o GPGME e o GnuPG corretamente:

sed -e '/AM_PATH_GPGME/iAM_PATH_GPG_ERROR' \
    -e 's/gpg2/gpg/' -i configure.ac

Instale volume_key executando os seguintes comandos:

autoreconf -fiv             &&
./configure --prefix=/usr    \
            --without-python &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--without-python: Esse parâmetro impede a construção das ligações Python 2, se Python-2.7.18 estiver instalado.

--without-python3: Use essa opção se você não quiser construir as ligações Python 3. Nesse caso, SWIG-4.1.1 não é necessário.

Conteúdo

Aplicativo Instalado: volume_key
Biblioteca Instalada: libvolume_key.so
Diretório Instalado: /usr/include/volume_key

Descrições Curtas

volume_key

gerencia chaves e frases senhas do volume encriptado

volume_key.so

contém funções de API para gerenciar chaves do volume encriptado

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 script 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 rootfs a partir de uma rede; carregá-lo a partir de um volume lógico LVM; ter um rootfs encriptado onde uma senha seja exigida; ou para a conveniência de se especificar o rootfs 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, [então] os scripts a seguir fornecerão uma base para isso. Os scripts permitirão especificar um rootfs via partição UUID ou partição RÓTULO ou um rootfs em um volume lógico LVM. Eles não suportam um sistema de arquivos raiz encriptado ou montar o rootfs 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 scripts, 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.13

Outras Dependências em Tempo de Execução

LVM2-2.03.18 e(ou) mdadm-4.2 precisam ser instalados antes de gerar o initramfs, se a partição do sistema os usar.

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/initramfs

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, [então] 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”), [então] 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.1.3

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Btrfs-progs

Exigida

LZO-2.10

Recomendadas
Opcionais

LVM2-2.03.18 (dmsetup é usado em testes), reiserfsprogs-3.6.27 (para os testes) e sphinx-6.1.3 (exigido para construir a documentação),

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/btrfs-progs

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 [CONFIG_BTRFS_FS]

Além do acima e das opções exigidas para LVM2-2.03.18 e reiserfsprogs-3.6.27, as seguintes opções precisam ser habilitadas para execução de testes:

File systems  --->
  [*]   Btrfs POSIX Access Control Lists      [CONFIG_BTRFS_FS_POSIX_ACL]
  [*]   ReiserFS extended attributes         [CONFIG_REISERFS_FS_XATTR]
  [*]     ReiserFS POSIX Access Control Lists [CONFIG_REISERFS_FS_POSIX_ACL]

Instalação do btrfs-progs

Instale btrfs-progs executando os seguintes comandos:

./configure --prefix=/usr --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.42.

Antes de executar os testes, construa um aplicativo de suporte:

make fssum

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 do núcleo mencionadas acima não estiverem habilitadas, [então] alguns testes falharão e impedirão que todos os testes restantes sejam executados, porque a imagem de teste do disco não foi desmontada corretamente.

O teste mkfs "025-zoned-parallel" é conhecido por falhar.

Instale o pacote como o(a) usuário(a) root:

make install

Explicações do Comando

--disable-documentation: Essa opção é necessária se as dependências recomendadas não estiverem instaladas.

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 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 a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/dosfstools

Configuração do Núcleo

Habilite a seguinte opção na configuração do núcleo e recompile o núcleo:

File systems --->
  <DOS/FAT/EXFAT/NT Filesystems --->
    <*/M> MSDOS fs support            [CONFIG_MSDOS_FS]
    <*/M> VFAT (Windows-95) fs support [CONFIG_VFAT_FS]

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

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-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.13.1

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Fuse

Opcionais

Doxygen-1.9.6 (para reconstruir a documentação da API) e pytest-7.2.1 (exigido para testes)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/fuse

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 [CONFIG_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  [CONFIG_FUSE_FS]
  <*/M>   Character device in Userspace support [CONFIG_CUSE]

Instalação do Fuse

Instale Fuse executando os seguintes comandos:

sed -i '/^udev/,$ s/^/#/' util/meson.build &&

mkdir build &&
cd   build &&

meson --prefix=/usr --buildtype=release .. &&
ninja

A documentação da API está incluída no pacote, mas se você tiver o Doxygen-1.9.6 instalado e quiser reconstruí-la, [então] emita:

pushd .. &&
  doxygen doc/Doxyfile &&
popd

Para testar os resultados, execute (como o(a) usuário(a) root):

python3 -m pytest test/

O módulo Python pytest-7.2.1 é exigido para os testes. Um teste chamado test_cuse falhará se o item de configuração CONFIG_CUSE não estiver habilitado quando o núcleo foi construído. Dois testes, test_ctests.py e test_examples.py produzirão um aviso, porque um módulo obsoleto Python é usado.

Agora, como o(a) usuário(a) root:

ninja install                 &&
chmod u+s /usr/bin/fusermount3 &&

cd ..                          &&
install -v -m755 -d /usr/share/doc/fuse-3.13.1 &&
install -v -m644    doc/{README.NFS,kernel.txt} \
                    /usr/share/doc/fuse-3.13.1 &&
cp -Rv doc/html     /usr/share/doc/fuse-3.13.1

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.13.1

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 a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Transferências Adicionais

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/jfs

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 [CONFIG_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.18

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://sourceware.org/ftp/lvm2/LVM2.2.03.18.tgz

  • Transferência (FTP): ftp://sourceware.org/pub/lvm2/LVM2.2.03.18.tgz

  • Soma de verificação MD5 da transferência: cda7b89ae45ddb4a0cee768645ac9757

  • Tamanho da transferência: 2,6 MB

  • Espaço em disco estimado exigido: 48 MB (adicione 25 MB para os testes; arquivos transitórios podem crescer até cerca de 800 MB no diretório /tmp durante os testes)

  • Tempo de construção estimado: 0,1 UPC (usando paralelismo = 4; adicione de 9 a 48 UPC para os testes, dependendo da velocidade do disco)

Dependências do LVM2

Exigida

libaio-0.3.113

Opcionais

mdadm-4.2, reiserfsprogs-3.6.27, Valgrind-3.20.0, Which-2.21, xfsprogs-6.1.1 (todos os cinco podem ser usados, porém não são exigidos, para os testes), thin-provisioning-tools e vdo

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/lvm2

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 --->
  [*] Multiple devices driver support (RAID and LVM) ---> [CONFIG_MD]
    <*/M>   Device mapper support                        [CONFIG_BLK_DEV_DM]
    <*/M>   Crypt target support                          [CONFIG_DM_CRYPT]
    <*/M>   Snapshot target                               [CONFIG_DM_SNAPSHOT]
    <*/M>   Thin provisioning target                      [CONFIG_DM_THIN_PROVISIONING]
    <*/M>   Cache target (EXPERIMENTAL)                   [CONFIG_DM_CACHE]
    <*/M>   Mirror target                                 [CONFIG_DM_MIRROR]
    <*/M>   Zero target                                   [CONFIG_DM_ZERO]
    <*/M>   I/O delaying target                           [CONFIG_DM_DELAY]
  [*] Block devices --->
    <*/M>   RAM block device support                      [CONFIG_BLK_DEV_RAM]
Kernel hacking --->
  Generic Kernel Debugging Instruments --->
    [*] Magic SysRq key                                   [CONFIG_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
make install_systemd_units

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.

make install_systemd_units: Isso é necessário para instalar uma unidade que ativa volumes lógicos na inicialização. Não é instalada por padrão.

Configurando LVM2

Arquivo de Configuração

/etc/lvm/lvm.conf

Informação de Configuração

A configuração padrão ainda referencia o obsoleto diretório /var/lock. Isso cria um impasse ao tempo da inicialização. Mude isso (como o(a) usuário(a) root):

sed -e '/locking_dir =/{s/#//;s/var/run/}' \
   -i /etc/lvm/lvm.conf

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.18 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

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.

Se não usar um initramfs, [então existe uma condição de corrida no systemd impedindo a montagem de volumes lógicos por meio de /etc/fstab. Você precisa criar uma unidade mount (veja-se systemd.mount(5)), como no seguinte exemplo, que monta o diretório /home automaticamente na inicialização:

cat > /etc/systemd/system/home.mount << EOF
[Unit]
Description=Monta o volume lvm /dev/lfs-lvm/home em /home

[Mount]
What=/dev/lfs-lvm/home
Where=/home
Type=ext4
Options=default

[Install]
WantedBy=multi-user.target
EOF

Nota

O nome da unidade precisa ser o nome do ponto de montagem com o caractere `/' substituído por `-', omitindo o inicial.

Em seguida, a unidade precisa ser habilitada com:

systemctl enable home.mount

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.2.7.

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.2.

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.5, 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 sua escolha (por exemplo, ext3, ext4, xfsprogs-6.1.1, reiserfsprogs-3.6.27, etc). As partições formatadas podem então ser 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.2

Introdução a mdadm

O pacote mdadm contém ferramentas de administração para RAID de software.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do mdadm

Opcionais

Um MTA

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/mdadm

Cuidado

As versões do núcleo na série 4.1 a 4.4.1 tem uma implementação de RAID quebrada. Use um núcleo com versão igual ou superior a 4.4.2.

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) ---> [CONFIG_MD]
    <*> RAID support                                     [CONFIG_BLK_DEV_MD]
    [*]   Autodetect RAID arrays during kernel boot       [CONFIG_MD_AUTODETECT]
    <*/M>  Linear (append) mode                           [CONFIG_MD_LINEAR]
    <*/M>  RAID-0 (striping) mode                         [CONFIG_MD_RAID0]
    <*/M>  RAID-1 (mirroring) mode                        [CONFIG_MD_RAID1]
    <*/M>  RAID-10 (mirrored striping) mode               [CONFIG_MD_RAID10]
    <*/M>  RAID-4/RAID-5/RAID-6 mode                      [CONFIG_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.

--keep-going: Executa os testes até o final, mesmo se um ou mais testes falharem.

--logdir=test-logs: Define o diretório onde os registros dos teste são salvos.

--save-logs: Instrui a suíte de teste a salvar os registros.

--tests=<test1,test2,...>: Lista opcional de testes, separados por vírgulas, a serem executados (todos os testes, se essa opção não for passada) .

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 a 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   --->
  <*/M> NTFS Read-Write file system support [CONFIG_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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Ntfs-3g

Opcional

fuse 2.x (isso desabilita as montagens do(a) usuário(a))

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/ntfs-3g

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 [CONFIG_FUSE_FS]

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.9

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://downloads.sourceforge.net/gptfdisk/gptfdisk-1.0.9.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 01c11ecfa454096543562e3068530e01

  • Tamanho da transferência: 212 KB

  • Espaço em disco estimado exigido: 2,3 MB

  • Tempo de construção estimado: menos que 0,1 UPC (adicione 0,2 UPC para os testes)

Transferências Adicionais

Dependências do gptfdisk

Exigida

popt-1.19

Opcional

ICU-72.1

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/gptdisk

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, bem como corrigir um problema introduzido por uma versão recente do popt. Instale o gptfdisk executando os seguintes comandos:

patch -Np1 -i ../gptfdisk-1.0.9-convenience-1.patch &&
sed -i 's|ncursesw/||' gptcurses.cc &&
sed -i 's|sbin|usr/sbin|' Makefile &&
sed -i '/UUID_H/s/^.*$/#if defined (_UUID_UUID_H) || defined (_UL_LIBUUID_UUID_H)/' guid.cc &&
sed -i "/device =/s/= \(.*\);/= strdup(\1);/" gptcl.cc &&

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.5

Introdução a parted

O pacote Parted é uma ferramenta de particionamento de disco e de redimensionamento de partição.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Parted

Recomendada
Opcionais

dosfstools-4.2, Pth-2.0.7, texlive-20220321 (ou install-tl-unx) e Digest::CRC (para testes)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/parted

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 --->                 [CONFIG_SCSI_LOW_LEVEL]
      <M> SCSI debugging host and device simulator   [CONFIG_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-20220321 instalado e desejar criar documentação em PDF e Postscript, [então] emita os seguintes comandos:

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.5/html &&
install -v -m644    doc/html/* \
                   /usr/share/doc/parted-3.5/html &&
install -v -m644    doc/{FAT,API,parted.{txt,html}} \
                    /usr/share/doc/parted-3.5

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.5

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.5

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

reiserfsprogs-3.6.27

Introdução a reiserfsprogs

O pacote reiserfsprogs contém vários utilitários para uso com o sistema de arquivos Reiser.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/reiser

Configuração do Núcleo

Habilite a seguinte opção na configuração do núcleo e recompile o núcleo:

File systems --->
  <*/M> Reiserfs support [CONFIG_REISERFS_FS]

Instalação do reiserfsprogs

Instale reiserfsprogs executando os seguintes comandos:

sed -i '/parse_time.h/i #define _GNU_SOURCE' lib/parse_time.c &&
autoreconf -fiv          &&

./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

sed ...: Certifique-se de que uma variável seja definida para uso com arquivos recentes "include".

Conteúdo

Aplicativos Instalados: debugreiserfs, mkreiserfs, reiserfsck, reiserfstune e resize_reiserfs
Biblioteca Instalada: libreiserfscore.so
Diretório Instalado: /usr/include/reiserfs

Descrições Curtas

debugreiserfs

pode, ocasionalmente, ajudar a resolver problemas com sistemas de arquivos ReiserFS. Se for chamado sem opções, [então] imprime o super bloco de qualquer sistema de arquivos ReiserFS encontrado no dispositivo

mkreiserfs

cria um sistema de arquivos ReiserFS

reiserfsck

é usado para verificar ou para reparar um sistema de arquivos ReiserFS

reiserfstune

é usado para ajustar o diário do ReiserFS. AVISO: Não use esse utilitário sem primeiro ler a página de manual completamente

resize_reiserfs

é usado para redimensionar um sistema de arquivos ReiserFS desmontado

smartmontools-7.3

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do smartmontools

Opcionais (tempo de execução)

cURL-7.88.1 ou Lynx-2.8.9rel.1 ou Wget-1.21.3 (ferramentas de transferência) e GnuPG-2.4.0 (discos rígidos encriptados)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/smartmontools

Instalação do smartmontools

Instale smartmontools executando os seguintes comandos:

./configure --prefix=/usr          \
            --sysconfdir=/etc       \
            --docdir=/usr/share/doc/smartmontools-7.3 &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

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.

Unidade do systemd

Se você desejar que o processo de segundo plano smartd inicie automaticamente quando o sistema for inicializado, [então] habilite a unidade systemd fornecida pelo pacote executando o seguinte comando como o(a) usuário(a) root:

systemctl enable smartd

Conteúdo

Aplicativos Instalados: smartctl, smartd e update-smart-drivedb
Bibliotecas Instaladas: Nenhuma
Diretórios Instalados: /usr/share/smartmontools, /usr/share/doc/smartmontools-7.3 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 a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Sshfs

Exigidas

Fuse-3.13.1, GLib-2.74.5 e OpenSSH-9.2p1.

Opcionais

docutils-0.19 (exigido para construir a página de manual)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/sshfs

Instalação do Sshfs

Instale Sshfs executando os seguintes comandos:

mkdir build &&
cd   build &&

meson --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.1.1

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do xfsprogs

Exigidas

inih-56 e liburcu-0.14.0

Opcionais

ICU-72.1 (para escaneamento de nome Unicode em xfs_scrub)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/xfs

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 [CONFIG_XFS_FS]

Instalação do xfsprogs

Instale xfsprogs executando os seguintes comandos:

make DEBUG=-DNDEBUG    \
     INSTALL_USER=root  \
     INSTALL_GROUP=root

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.1.1 install    &&
make PKG_DOC_DIR=/usr/share/doc/xfsprogs-6.1.1 install-dev &&

rm -rfv /usr/lib/libhandle.{a,la}

Explicações do Comando

make 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.

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_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.1.1

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_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-38

Introdução ao efivar

O pacote efivar fornece ferramentas e bibliotecas para manipular variáveis EFI.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Transferências Adicionais

Dependências do efivar

Exigidas

mandoc-1.14.6

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/efivar

Instalação do efivar

Primeiro, corrija um problema no Makefile que faz com que o pacote seja reconstruído durante a instalação:

sed '/prep :/a\\ttouch prep' -i src/Makefile

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.

Se construir esse pacote em um sistema de 32 bits, [então] aplique um remendo:

[ $(getconf LONG_BIT) = 64 ] || patch -Np1 -i ../efivar-38-i686-1.patch

Construa o efivar com os seguintes comandos:

make

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 LIBDIR=/usr/lib

Explicações do Comando

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do efibootmgr

Exigidas

efivar-38 e popt-1.19

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/efibootmgr

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 é 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.06 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://ftp.gnu.org/gnu/grub/grub-2.06.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: cf0fd928b1e5479c8108ee52cb114363

  • Tamanho da transferência: 6,3 MB

  • Espaço em disco estimado exigido: 137 MB

  • Tempo de construção estimado: 1,0 UPC (no LFS de 64 bits)

Transferências Adicionais

Dados de fonte Unicode usados para exibir o menu do GRUB

GCC (necessário somente se construir no LFS de 32 bits)

Dependências do GRUB

Recomendadas
Opcionais

LVM2-2.03.18

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/grub-efi

Instalação do GRUB

Primeiro, instale os dados da fonte como o(a) usuário(a) root:

mkdir -pv /usr/share/fonts/unifont &&
gunzip -c ../unifont-15.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.

Corrija um problema que faz com que grub-install falhe quando a partição /boot (ou a partição raiz, se /boot não for uma partição separada) é criada pelo e2fsprogs-1.47.0 ou posterior:

patch -Np1 -i ../grub-2.06-upstream_fixes-1.patch

Se você estiver executando um LFS de 32 bits, [então] prepare um compilador de 64 bits:

case $(uname -m) in i?86 )
    tar xf ../gcc-12.2.0.tar.xz
    mkdir gcc-12.2.0/build
    pushd gcc-12.2.0/build
        ../configure --prefix=$PWD/../../x86_64-gcc \
                     --target=x86_64-linux-gnu      \
                     --with-system-zlib             \
                     --enable-languages=c,c++       \
                     --with-ld=/usr/bin/ld
        make all-gcc
        make install-gcc
    popd
    export TARGET_CC=$PWD/x86_64-gcc/bin/x86_64-linux-gnu-gcc
esac

Construa o GRUB com os seguintes comandos:

./configure --prefix=/usr        \
            --sysconfdir=/etc    \
            --disable-efiemu     \
            --enable-grub-mkfont \
            --with-platform=efi  \
            --target=x86_64      \
            --disable-werror     &&
unset TARGET_CC &&
make

Esse pacote não tem uma suíte de teste que forneça resultados significativos.

Agora, como o(a) usuário(a) root:

make install &&
mv -v /etc/bash_completion.d/grub /usr/share/bash-completion/completions

Explicações do Comando

--enable-grub-mkfont: Construa a ferramenta chamada grub-mkfont para gerar o arquivo de fonte para o carregador de inicialização a partir dos dados de fonte que instalamos.

Atenção

Se a dependência recomendada FreeType-2.13.0 não estiver instalada, [então] é possível omitir essa opção e construir o GRUB. No entanto, se o grub-mkfont não fosse construído ou os dados da fonte Unicode não estivessem disponíveis ao tempo que o GRUB for construído, [então] o GRUB não instalaria nenhuma fonte para o carregador de inicialização. O menu de inicialização do GRUB será exibido usando uma fonte grosseira e o estágio inicial da inicialização do núcleo será em modo cego — você não consegue ver nenhuma mensagem do núcleo antes que o controlador da placa gráfica seja inicializado. Será muito difícil diagnosticar alguns problemas de inicialização, especialmente se o controlador gráfico for construído como módulo.

--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 dos firmwares 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

Veja-se a página para o GRUB no livro LFS.

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.

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.38.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.
Calling ioctl() to re-read partition table.
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:

mkdir -pv /mnt/rescue &&
mount -v -t vfat /dev/sdx1 /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. Ele inicializará o sistema e mostrará o shell do GRUB. Então você consegue digitar comandos para inicializar seu sistema operacional a partir da unidade rígida. Para saber como selecionar o dispositivo de inicialização, leia-se o manual da sua placa-mãe ou notebook.

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                              [CONFIG_EFI]
  [*]   EFI stub support                                        [CONFIG_EFI_STUB]
Enable the block layer --->
  Partition Types --->
    [*] Advanced partition selection                            [CONFIG_PARTITION_ADVANCED]
    [*] EFI GUID Partition support                              [CONFIG_EFI_PARTITION]
Device Drivers --->
  Firmware Drivers --->
    [*] Mark VGA/VBE/EFI FB as generic system framebuffer       [CONFIG_SYSFB_SIMPLEFB]
  Graphics support --->
    <*> Direct Rendering Manager                                [CONFIG_DRM]
    [*] Enable legacy fbdev support for your modesetting driver [CONFIG_DRM_FBDEV_EMULATION]
    <*> Simple framebuffer driver                               [CONFIG_DRM_SIMPLEDRM]
    Frame buffer Devices --->
      <*> Support for frame buffer devices --->                 [CONFIG_FB]
    Console display driver support --->
      [*] Framebuffer Console support                           [CONFIG_FRAMEBUFFER_CONSOLE]
File systems --->
  <DOS/FAT/EXFAT/NT Filesystems --->
    <*/M> VFAT (Windows-95) fs support                          [CONFIG_VFAT_FS]
  Pseudo filesystems --->
    <*/M> EFI Variable filesystem                               [CONFIG_EFIVAR_FS]

O significado das opções de configuração:

CONFIG_EFI_STUB

Em sistemas EFI, o GRUB inicializa o núcleo Linux invocando o firmware EFI para carregá-lo como um aplicativo EFI. Portanto, a raiz EFI é necessária para amarrar o núcleo como um aplicativo EFI.

CONFIG_SYSFB_SIMPLEFB, CONFIG_DRM, CONFIG_DRM_FBDEV_EMULATION, CONFIG_DRM_SIMPLEDRM, CONFIG_FB e CONFIG_FRAMEBUFFER_CONSOLE

A combinação dessas opções fornece suporte ao console Linux no topo do framebuffer UEFI. Para permitir que o núcleo imprima mensagens de depuração em um estágio inicial da inicialização, elas não deveriam ser construídas como módulos do kernel, a menos que um initramfs seja usado.

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, [então] a ESP possivelmente não exista. Nesse caso, 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):

mkdir -pv /boot/efi &&
mount -v -t vfat /dev/sda1 /boot/efi

Adicione uma entrada para a ESP em /etc/fstab, de forma que ela será montada automaticamente durante a inicialização do sistema:

cat >> /etc/fstab << EOF
/dev/sda1 /boot/efi vfat defaults 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

Nota

Se o sistema for inicializado com UEFI e systemd, [então] o efivarfs será montado automaticamente. No entanto, no ambiente chroot do LFS ele ainda precisa ser montado manualmente.

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
# Início /boot/grub/grub.cfg
set default=0
set timeout=5

insmod part_gpt
insmod ext2
set root=(hd0,2)

if loadfont /boot/grub/fonts/unicode.pf2; then
  set gfxmode=auto
  insmod all_video
  terminal_output gfxterm
fi

menuentry "GNU/Linux, Linux 6.1.11-lfs-11.3"  {
  linux   /boot/vmlinuz-6.1.11-lfs-11.3 root=/dev/sda2 ro
}

menuentry "Configuração do Firmware" {
  fwsetup
}
EOF

(hd0,2), sda2 e 6.1.11-lfs-11.3 precisam corresponder à sua configuração.

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

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.12

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Bluefish

Exigidas

GTK+-2.24.33 ou GTK+-3.24.36 (se ambos estiverem instados, [então] configure, por padrão, usa GTK+ 3)

Recomendada
Opcionais

enchant-2.3.3 (para verificação ortográfica), Gucharmap-15.0.2, PCRE-8.45 e Jing

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/bluefish

Instalação do Bluefish

Instale Bluefish executando os seguintes comandos:

./configure --prefix=/usr --docdir=/usr/share/doc/bluefish-2.2.12 &&
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.26 (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.12 e /usr/share/xml/bluefish

Descrições Curtas

bluefish

é um editor de texto GTK+ para marcação e programação

Ed-1.19

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Ed

Exigido para descomprimir o tarball

libarchive-3.6.2 (para bsdtar)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/ed

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-28.2

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Emacs

Recomendadas
Opcionais

um ambiente gráfico, alsa-lib-1.2.8, Cairo-1.17.6, dbus-1.14.6, GConf-3.2.6, gobject-introspection-1.74.0, gsettings-desktop-schemas-43.0, GPM-1.20.7, GTK+-2.24.33 ou GTK+-3.24.36, ImageMagick-7.1.0-61, Little CMS-2.14, libjpeg-turbo-2.1.5.1, libpng-1.6.39, librsvg-2.54.5, libxml2-2.10.3, MIT Kerberos V5-1.20.1, Valgrind-3.20.0, intlfonts, libungif, libotf e m17n-lib - para exibir corretamente scripts complexos, tais como o Indic e o Khmer, e também para scripts que exigem suporte a modelagem árabe (Arabic e Farsi), mailutils e libXaw3d

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/emacs

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/28.2

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+-2.24.33 ou GTK+-3.24.36 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.0-61 e desejar vincular a ele.

--with-gif=no: Use isso se você não tiver instalado giflib-5.2.1 ou libungif.

--with-tiff=no: Use isso se você não tiver instalado libtiff-4.5.0.

--with-gnutls=no: Use isso se você não tiver instalado GnuTLS-3.8.0.

--without-harfbuzz: Use isso se você não tiver instalado o HarfBuzz-7.0.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-28.2, emacsclient e etags
Bibliotecas Instaladas: Nenhum
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-44.2

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Gedit

Exigidas

git-2.39.2, gsettings-desktop-schemas-43.0, gtksourceview4-4.8.4, itstool-2.0.7, libpeas-1.34.0 e tepl-6.4.0

Recomendadas
Opcionais

GTK-Doc-1.33.2, Vala-0.56.4 e zeitgeist

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/gedit

Instalação do Gedit

Instale Gedit executando os seguintes comandos:

mkdir gedit-build &&
cd   gedit-build &&

meson setup --prefix=/usr       \
            --buildtype=release \
            -Dgtk_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

--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.

-Dgtk_doc=false: Essa chave desabilita a geração da documentação da API. Omita essa chave se você tiver GTK-Doc-1.33.2 instalado e desejar gerar a documentação da API.

Conteúdo

Aplicativo Instalado: gedit
Bibliotecas Instaladas: libgedit-44.so
Diretórios Instalados: /usr/include/gedit-44 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/joe

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: Nenhuma
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-22.12.2

Introdução a Kate

O pacote Kate contém um avançado editor gráfico de texto baseado em KF5.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Kate

Exigida

KDE Frameworks-5.103.0

Opcional

libgit2

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/kate5

Instalação do Kate

Instale Kate executando os seguintes comandos:

mkdir build &&
cd   build &&

cmake -DCMAKE_INSTALL_PREFIX=$KF5_PREFIX  \
      -DCMAKE_BUILD_TYPE=Release          \
      -DBUILD_TESTING=OFF                 \
      -Wno-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: Vários plugins sob $KF5_PREFIX/lib/plugins
Diretórios Instalados: $KF5_PREFIX/lib/plugins/ktexteditor, $KF5_PREFIX/lib/plugins/plasma/dataengine, $KF5_PREFIX/share/doc/HTML/*/{kate,katepart,kwrite}, $KF5_PREFIX/share/{kateproject,katexmltools} e $KF5_PREFIX/share/plasma/plasmoids/org.kde.plasma.katesessions

Descrições Curtas

kate

é um avançado editor de texto para o kde

kwrite

é um editor de texto para o KDE, que é uma versão leve do kate

Mousepad-0.5.10

Introdução a Mousepad

Mousepad é um editor simples de texto GTK+ 3 para o ambiente de área de trabalho Xfce.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Mousepad

Exigida

gtksourceview4-4.8.4

Opcionais

DConf-0.40.0 (tempo de execução) e dbus-glib-0.112

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/mousepad

Instalação do Mousepad

Instale Mousepad executando os seguintes comandos:

./configure --prefix=/usr --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.

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-7.2

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://www.nano-editor.org/dist/v7/nano-7.2.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 13742c686c6ddb0b7b294634f0c13cec

  • Tamanho da transferência: 1,5 MB

  • Espaço em disco estimado exigido: 20 MB

  • Tempo de construção estimado: 0,2 UPC

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/Nano

Instalação do Nano

Instale Nano executando os seguintes comandos:

./configure --prefix=/usr    \
            --sysconfdir=/etc \
            --enable-utf8     \
            --docdir=/usr/share/doc/nano-7.2 &&
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-7.2

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: Nenhuma
Diretórios Instalados: /usr/share/nano e /usr/share/doc/nano-7.2

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.0.1273

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://anduin.linuxfromscratch.org/BLFS/vim/vim-9.0.1273.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 9c80755d2d95ec4ef713f66e57671797

  • Tamanho da transferência: 11 MB

  • Espaço em disco estimado exigido: 166 MB (adicionar 67 MB para os testes)

  • Tempo de construção estimado: 0,4 UPC (com paralelismo=4; adicione 7,7 UPC para os testes)

Dependências do Vim

Recomendadas
Opcionais

GPM-1.20.7, Lua-5.4.4, rsync-3.2.7 e Ruby-3.2.1

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/vim

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, [então] alguns testes possivelmente reclamem a respeito de estarem inaptos para encontrar o diretório correspondente e aguardem a entrada gerada do(a) usuário(a). Se esse for o caso, [então] esse arquivo deveria ser salvo e removido antes de executar os testes.

Para testar os resultados, emita: make -j1 test. Mesmo se um dos testes falhar em produzir o arquivo test.out em src/testdir, os testes restantes ainda serão executados. Se tudo correr bem, [então] o registro informará ALL DONE. Alguns testes rotulados como flaky 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 [GNU] 'screen'.

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.0.1273, tornando-o consistente com o local da documentação para outros pacotes:

ln -snfv ../vim/vim90/doc /usr/share/doc/vim-9.0.1273

Se você deseja atualizar os arquivos de tempo de execução, [então] emita o seguinte comando (exige rsync-3.2.7):

rsync -avzcP --exclude="/dos/" --exclude="/spell/" \
    ftp.nluug.nl::Vim/runtime/ ./runtime/

Para instalar os arquivos 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.0.1273" -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 scripts 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/vim90/spell/.

Para saber o que há de novo no Vim-9.0.1273 emita o seguinte comando:

:help version-9.0.1273

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: Nenhuma
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 a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Dash

Opcionais

libedit (biblioteca do editor de linha de comando)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/dash

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.07

Introdução a 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 à 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/tcsh

Instalação de 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 adequadamente usando uma plataforma LFS 11.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: 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)

Transferências Adicionais

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

PCRE-8.45 e Valgrind-3.20.0

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/zsh

Instalação do zsh

Se você baixou a documentação opcional, desempacote-a com o seguinte comando:

tar --strip-components=1 -xvf ../zsh-5.9-doc.tar.xz

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 --plaintext -o Doc/zsh.txt     &&
makeinfo  Doc/zsh.texi --html      -o Doc/html        &&
makeinfo  Doc/zsh.texi --html --no-split --no-headers -o Doc/zsh.html

Se você tiver texlive-20220321 instalado, [então] poderá construir o formato PDF da documentação 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 &&

install -v -m755 -d                 /usr/share/doc/zsh-5.9/html &&
install -v -m644 Doc/html/*         /usr/share/doc/zsh-5.9/html &&
install -v -m644 Doc/zsh.{html,txt} /usr/share/doc/zsh-5.9

Se você baixou a documentação opcional, instale-a emitindo os seguintes comandos como o(a) usuário(a) root:

make htmldir=/usr/share/doc/zsh-5.9/html install.html &&
install -v -m644 Doc/zsh.dvi /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.

--enable-pcre: Essa opção permite que o zsh use a biblioteca de expressões regulares PCRE em [comandos] integrados do shell.

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 nas páginas de manual zsh(1) e 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 na iniciação do shell, 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-7.2.0

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://download.qemu.org/qemu-7.2.0.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5: 7630d6a9eba7ab2bcb9979d6d24c2697

  • Tamanho da transferência: 117 MB

  • Espaço em disco estimado exigido: 2,1 GB

  • Tempo de construção estimado: 1,3 UPC (adicione 2,0 UPC para os testes, ambos usando paralelismo=4)

Dependências do Qemu

Exigida

GLib-2.74.5 e um ambiente gráfico

Recomendadas
Opcionais

Dependendo do sistema de som, vários pacotes em ALSA-1.2.7, Python-3.11.2, PulseAudio-16.1, BlueZ-5.66, cURL-7.88.1, Cyrus SASL-2.1.28, GnuTLS-3.8.0, GTK+-2.24.33, GTK+-3.24.36, libusb-1.0.26, libgcrypt-1.10.1, libssh2-1.10.0, LZO-2.10, Nettle-3.8.1, Mesa-22.3.5, SDL-1.2.15, VTE-0.70.3 ou Vte-0.28.2 e libcacard

Opcional (para construir a documentação)

sphinx_rtd_theme-1.2.0

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 Usuário(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:  --->                                             [CONFIG_VIRTUALIZATION]
  <*/M>   Kernel-based Virtual Machine (KVM) support [CONFIG_KVM]
  <*/M>     KVM for Intel (and compatible) processors support         [CONFIG_KVM_INTEL]
  <*/M>     KVM for AMD processors support                            [CONFIG_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  --->                         [CONFIG_NET]
  Networking options  --->
    <*/M> 802.1d Ethernet Bridging                   [CONFIG_BRIDGE]
Device Drivers  --->
  [*] Network device support  --->                   [CONFIG_NETDEVICES]
    <*/M>    Universal TUN/TAP device driver support [CONFIG_TUN]

Instalação do qemu

Como o(a) usuário(a) root, adicione quaisquer usuários(as) que possam usar o dispositivo KVM a esse grupo:

usermod -a -G kvm <nome_de_usuário(a)>

Instale 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                \
             --docdir=/usr/share/doc/qemu-7.2.0 &&

unset QEMU_ARCH &&

make

qemu usa ninja como um subprocesso ao construir. Para executar os testes, emita: ninja test.

Agora, como o(a) usuário(a) root:

make install

Você também precisará adicionar uma regra do Udev para que o dispositivo KVM obtenha as permissões corretas. Como o(a) usuário(a) root, emita:

cat > /lib/udev/rules.d/65-kvm.rules << "EOF"
KERNEL=="kvm", GROUP="kvm", MODE="0660"
EOF

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:

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 --disable-pa: Essa chave configura o controlador de áudio para o ALSA. Veja-se abaixo para habilitar outros controladores de áudio.

--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á decidir a respeito de CPU, memória, disco, dispositivos USB, placa(s) de rede de comunicaçã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. A seguir, mostramos maneiras básicas de realizar essas etapas. Porém, o qemu é muito mais que isso, e é fortemente aconselhado ler-se a documentação do qemu em /usr/share/doc/qemu-7.2.0/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. Usaremos essas notações a seguir.

Nota

As instruções a seguir assumem que o link simbólico opcional, qemu, tenha sido criado. Além disso, o qemu deveria ser executado em um ambiente gráfico. Mas é possível usar 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.

Sistema Operacional

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), d (primeiro CD-ROM). A opção -m é a quantidade de memória a usar para a máquina virtual. A escolha depende da carga do anfitrião. As distribuições modernas deveriam estar confortáveis com 1 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 como um CDROM. Aqui usamos um disco de resgate do GRUB, que pode ser útil quando algo der errado no momento da 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.

-pflash /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 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 o 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 os controladores Virtio habilitados, então faça sua personalização. E, se o núcleo do convidado for Linux, [então] 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 interface Virtio para o núcleo do convidado para acessar a interface de rede de comunicação, em vez de simular uma placa real de interface de rede de comunicação. Isso pode melhorar o desempenho de Entrada/Saída da rede de comunicaçã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 o Virtio.

Controlando a Tela Emulada

Possivelmente aconteça que a janela de convidado exibida pelo qemu não corresponda à capacidade total da placa emulada VGA. Por exemplo, a placa vmware é compatível com 1600x900, mas somente 1024x768 é exibido por padrão. Uma configuração adequada do Xorg no convidado permite usar o tamanho completo (observe que o controlador de vídeo do Xorg a ser usado é o Controlador VMware do Xorg-13.4.0):

cat > /usr/share/X11/xorg.conf.d/20-vmware.conf << "EOF"
Section         "Monitor"
  Identifier    "Monitor0"
  # cvt 1600 900
  # 1600x900 59.95 Hz (CVT 1.44M9) hsync: 55.99 kHz; pclk: 118.25 MHz
  Modeline      "1600x900"  118.25  1600 1696 1856 2112  900 903 908 934 -hsync +vsync
  Option        "PreferredMode" "1600x900"
  HorizSync     1-200
  VertRefresh   1-200
EndSection

Section         "Device"
  Identifier    "Adaptador VMware SVGA II"
  Option        "Monitor" "default"
  Driver        "vmware"
EndSection

Section         "Screen"
  Identifier    "Tela Padrão"
  Device        "Adaptador VMware SVGA II"
  Monitor       "Monitor0"

  SubSection    "Display"
    Depth       24
    Modes       "1600x900" "1440x900" "1366x768" "1280x720" "800x480"
  EndSubSection

EndSection
EOF

Novos tamanhos estarão disponíveis além dos nativos. Você precisa reiniciar o X para a finalidade de ter os novos tamanhos disponíveis.

Rede de comunicação

A solução acima para rede de comunicação permite que o convidado acesse a rede local de comunicaçã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 estiverem executando, eles não conseguirão se comunicarem uns com os outros. Outros dispositivos de rede de comunicaçã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 comunicação comum. A seguir, descrevemos em mais detalhes como configurar o dispositivo bridge, que permite que os convidados apareçam como se estivessem conectados à rede local de comunicação. Todos os comandos abaixo deveriam ser executados como o(a) usuário(a) root.

Permite que o anfitrião encaminhe pacotes IP:

sysctl -w net.ipv4.ip_forward=1

Para tornar isso permanente, adicione o comando a /etc/sysctl.d/60-net-forward.conf:

cat >> /etc/sysctl.d/60-net-forward.conf << EOF
net.ipv4.ip_forward=1
EOF

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 e qemu-system-<arch>
Biblioteca Instalada: Nenhuma
Diretórios Instalados: /usr/share/qemu e /usr/share/doc/qemu-7.2.0 (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 de reserva persistente para o QEMU

qemu-storage-daemon

permite modificar imagens de disco usando o QEMU Monitor Protocol (QMP) sem executar uma "VM"

qemu-system-x86_64

é o emulador PC System do 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.

Apr-1.7.2

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/apr

Instalação da APR

Corrija um problema ao verificar um local em um modelo de script:

sed -e '/^case "$0"/s;$0;$(readlink -f $0);' \
    -i apr-config.in

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências da Apr Util

Exigida

Apr-1.7.2

Opcionais

Base de Dados Berkeley-5.3.28, FreeTDS, MariaDB-10.6.12 ou MySQL, OpenLDAP-2.6.4, PostgreSQL-15.2, SQLite-3.40.1 e unixODBC-2.3.11

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/apr-util

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 Base de Dados Berkeley-5.3.28, [então] use essa chave para compilar o plugin apr_dbm_db-1.so.

--with-ldap: se você tiver instalado OpenLDAP-2.6.4, [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

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Transferências Adicionais

Você precisará baixar pelo menos um dicionário. O link abaixo te levará a uma página contendo links para dicionários em muitos idiomas.

Dependências de Aspell

Exigida

Which-2.21 (para os dicionários)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/aspell

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/aspell{,-dev}.html &&

install -v -m644 manual/aspell.html/* \
    /usr/share/doc/aspell-0.60.8/aspell.html &&

install -v -m644 manual/aspell-dev.html/* \
    /usr/share/doc/aspell-0.60.8/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.3.3.

Configurando Aspell

Informação de Configuração

Depois que Aspell estiver instalado, você precisa configurar pelo menos um dicionário. Instale um ou mais dicionários executando os seguintes comandos:

./configure &&
make

Agora, como o(a) usuário(a) root:

make install

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.81.0

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências de Boost

Recomendada
Opcionais

ICU-72.1 e Open MPI

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/boost

Instalação de Boost

Uma mudança nesta versão do boost quebra os poucos pacotes que usam o módulo phoenix quando compilados com o GCC atual. No BLFS, isso afeta LibreOffice-7.5.0.3. Corrija isso com o seguinte comando:

sed -i '/#include.*phoenix.*tuple.hpp.*/d' \
  boost/phoenix/stl.hpp

Esse pacote pode ser construído com vários trabalhos executando em paralelo. Nas instruções abaixo, <N> representa o número de trabalhos. Instale o Boost executando os seguintes comandos:

./bootstrap.sh --prefix=/usr --with-python=python3 &&
./b2 stage -j<N> threading=multi link=shared

Para executar o teste de regressão do Boost.Build, emita pushd tools/build/test; python3 test_all.py; popd. Com python-3.10.x, todos os 168 testes deveriam passar. Com Python-3.11.2, 20 testes falham por razões indeterminadas.

Para executar cada um dos testes de regressão da biblioteca, emita pushd status; ../b2; popd. Uns poucos testes possivelmente falhem. Eles tomam um tempo muito longo (mais que 119 UPC em -j4) e usam uma quantidade muito grande de espaço em disco (46 GB). Você deveria usar a chave -jN para acelerá-los.

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

sed -i '/#include ...: Isso remove a inclusão de boost/phoenix/stl/tuple.hpp dessa biblioteca somente de cabeçalho, permitindo que aplicativos que a usam se vincularem usando C++ recente. Uma alternativa é a de editar /usr/include/boost/phoenix/stl.hpp se essa versão do "boost" já tiver sido instalada sem esse sed.

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.

-jN: Essa chave pode ser adicionada às linhas de comando b2, para executar até N processos em paralelo.

Conteúdo

Aplicativos Instalados: Nenhum
Bibliotecas Instaladas: libboost_atomic.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_numpy39.so, libboost_prg_exec_monitor.so, libboost_program_options.so, libboost_python311.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_wave.so e libboost_wserialization.so
Diretório Instalado: /usr/include/boost

brotli-1.0.9

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://github.com/google/brotli/archive/v1.0.9/brotli-1.0.9.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: c2274f0c7af8470ad514637c35bcee7d

  • Tamanho da transferência: 476 KB

  • Espaço em disco estimado exigido: 24 MB (com vinculações python3)

  • Tempo de construção estimado: 0,4 UPC (com vinculações python3)

Dependências de Brotli

Exigida

CMake-3.25.2

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/brotli

Instalação de Brotli

Primeiro, corrija um problema nos arquivos pkg-config:

sed -i 's@-R..libdir.@@' scripts/*.pc.in

Instale brotli executando os seguintes comandos:

mkdir out &&
cd    out &&

cmake -DCMAKE_INSTALL_PREFIX=/usr \
      -DCMAKE_BUILD_TYPE=Release  \
      ..  &&
make

Para testar os resultados, emita: make test.

Agora, como o(a) usuário(a) root:

make install &&
cd ..

Se desejado, construa e instale as ligações Python3 como o(a) usuário(a) root:

pip3 wheel -w dist --no-build-isolation --no-deps $PWD &&
pip3 install --no-index --find-links dist --no-cache-dir --no-user Brotli

Conteúdo

Aplicativos Instalados: brotli
Bibliotecas Instaladas: libbrotlicommon{-static.a,.so}, libbrotlidec{,-static.a,.so} e libbrotlienc{,-static.a,.so}
Diretório Instalado: /usr/include/brotli /usr/lib/python3.11/site-packages/Brotli-1.0.9.dist-info

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 a CLucene

CLucene é uma versão C++ do Lucene, um mecanismo de pesquisa de texto de alto desempenho.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Transferências Adicionais

Dependências de CLucene

Exigida

CMake-3.25.2

Recomendada

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/clucene

Instalação de 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 -DCMAKE_INSTALL_PREFIX=/usr \
      -DBUILD_CONTRIBS_LIB=ON .. &&
make

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

-DBUILD_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
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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências da GLib do D-Bus

Exigidas

dbus-1.14.6 e GLib-2.74.5

Opcionais

GTK-Doc-1.33.2

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/dbus-glib

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.2.1

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências de Double-conversion

Exigida

CMake-3.25.2

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/double-conversion

Instalação de Double-conversion

Instale Double-conversion executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -DCMAKE_INSTALL_PREFIX=/usr \
      -DBUILD_SHARED_LIBS=ON      \
      -DBUILD_TESTING=ON          \
      ..                          &&
make

Para testar os resultados, emita: make test.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

-DBUILD_SHARED_LIBS=ON: Essa chave força o cmake a construir uma versão compartilhada da biblioteca em vez da versão estática.

-DBUILD_TESTING=ON: Essa chave constrói os aplicativos de teste.

Conteúdo

Aplicativos Instalados: Nenhum
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 a duktape

duktape é um mecanismo embutível Javascript, com foco em portabilidade e pegada compacta.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.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

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/duktape

Instalação de 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
Bibliotecas Instaladas: libduktape.so e libduktaped.so
Diretórios Instalados: Nenhum

Descrições Curtas

libduktape.so

é um mecanismo embutível Javascript

enchant-2.3.3

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências de enchant

Exigida

GLib-2.74.5

Recomendada
Opcionais

dbus-glib-0.112, Doxygen-1.9.6, Hspell, Hunspell, Nuspell, Voikko e unittest-cpp (exigido para os testes)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/enchant

Instalação de enchant

Instale enchant executando os seguintes comandos:

./configure --prefix=/usr --disable-static &&
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):

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 e /usr/share/enchant

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.3

Introdução a Exempi

Exempi é uma implementação do XMP (Extensible Metadata Platform da Adobe).

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://libopenraw.freedesktop.org/download/exempi-2.6.3.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 27a7d9566d2335785c03ce9e66096f2a

  • Tamanho da transferência: 2,7 MB

  • Espaço em disco estimado exigido: 288 MB (adicionar 241 MB para os testes)

  • Tempo de construção estimado: 0,4 UPC (usando paralelismo=4; adicionar 1,9 UPC para os testes)

Dependências de Exempi

Exigida

Boost-1.81.0

Opcionais

Valgrind-3.20.0

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/exempi

Instalação de Exempi

Se você pretende executar os testes de regressão, [então] primeiro remova um teste que depende de um SDK da Adobe aparentemente proprietário:

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 a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/fftw

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 AVX512. 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-16.1.

--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 ser executada em uma CPU sem o AVX512F. Use essa opção se a construção da FFTW for 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

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

GLib-2.74.5

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Transferências Adicionais

Dependências de GLib

Recomendada
Opcionais

dbus-1.14.6 (para alguns testes), Fuse-3.13.1 e bindfs (ambos necessários para um teste), GDB-13.1 (para vinculações), docbook-xml-4.5, docbook-xsl-nons-1.79.2, GTK-Doc-1.33.2 (para construir a documentação da API), glib-networking-2.74.0 (para alguns testes, porém isso é uma dependência circular) e sysprof-3.46.0

Dependências Adicionais de Tempo de Execução

Citado diretamente do arquivo INSTALL: Algumas das funcionalidades relacionadas ao tipo mime no GIO exigem os utilitários update-mime-database e update-desktop-database, os quais são parte de shared-mime-info-2.2 e desktop-file-utils-0.26, respectivamente. Esses dois utilitários também são necessários para alguns testes.

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/glib2

Instalação de 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.36, 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-2.74.5-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 --prefix=/usr       \
      --buildtype=release \
      -Dman=true          \
      ..                  &&
ninja

Nota

Se libxslt-1.1.37 estiver instalado, [então] o comando acima possivelmente indique vários (cerca de 33) erros que começam com "Error: no ID for constraint linkend:" ao gerar as páginas de manual. Esses são inofensivos.

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.

Agora, como o(a) usuário(a) root:

ninja install &&

mkdir -p /usr/share/doc/glib-2.74.5 &&
cp -r ../docs/reference/{gio,glib,gobject} /usr/share/doc/glib-2.74.5

Você deveria agora instalar desktop-file-utils-0.26 e shared-mime-info-2.2 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 o pacote, emita: LC_ALL=C ninja test como um(a) usuário(a) não root. Um teste chamado glib:glib / error é conhecido por falhar.

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.

-Dman=true: Essa chave faz com que a construção crie e instale as páginas de manual do pacote.

-Dgtk_doc=true: Essa chave faz com que a construção crie e instale a documentação da API.

Conteúdo

Aplicativos Instalados: gapplication, gdbus, gdbus-codegen, 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, 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/glib-2.0, /usr/share/glib-2.0, /usr/share/doc/glib-2.74.5 e /usr/share/gtk-doc/html/{gio,glib,gobject} (opcional)

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

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

Bibliotecas GLib

contém bibliotecas centrais de baixo nível para o kit de ferramentas GIMP

GLibmm-2.66.5

Introdução a GLibmm

O pacote GLibmm é um conjunto de ligações C++ para a GLib.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências de GLibmm

Exigidas

GLib-2.74.5 e libsigc++-2.12.0

Opcionais

Doxygen-1.9.6, glib-networking-2.74.0 (para os testes), GnuTLS-3.8.0 (para os testes), libxslt-1.1.37 e mm-common

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/glibmm

Instalação de GLibmm

Instale GLibmm executando os seguintes comandos:

mkdir bld &&
cd    bld &&

meson --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
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 da GLib

GMime-3.2.7

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências de GMime

Exigidas

GLib-2.74.5 e libgpg-error-1.46

Recomendadas
Opcionais

DocBook-utils-0.6.14, GPGME-1.18.0, GTK-Doc-1.33.2, libnsl-2.0.0, Vala-0.56.4 e Gtk# (exige Mono)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/gmime

Instalação de 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
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

gobject-introspection-1.74.0

Introdução a GObject Introspection

O GObject Introspection é usado para descrever as APIs do aplicativo e coletá-las em um formato uniforme e legível por máquina.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do GObject Introspection

Exigida

GLib-2.74.5

Opcionais

Cairo-1.17.6 (exigido para os testes), Gjs-1.74.1 (para satisfazer um teste), GTK-Doc-1.33.2, Mako-1.2.4 e Markdown-3.4.1

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/gobject-introspection

Instalação do GObject Introspection

Instale o GObject Introspection executando os seguintes comandos:

mkdir build &&
cd    build &&

meson --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.

-Dgtk_doc=true: Constrói e instala a documentação.

-Dcairo=enabled: Use cairo para os testes.

-Ddoctool=enabled: Instala "g-ir-doc-tool" e executa os testes relacionados. Você precisar ter Mako-1.2.4 e Markdown-3.4.1 instalados para a finalidade de instalar esse utilitário.

Conteúdo

Aplicativos Instalados: g-ir-annotation-tool, g-ir-compiler, g-ir-doc-tool, g-ir-generate, g-ir-inspect e g-ir-scanner
Bibliotecas Instaladas: libgirepository-1.0.so e _giscanner.cpython-311-<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

g-ir-annotation-tool

cria ou extrai dados de anotação a partir de bibliotecas de tipo do GI

g-ir-compiler

converte um ou mais arquivos GIR em uma ou mais bibliotecas de tipo

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

é um utilitário que dá informação a respeito de uma biblioteca de tipo do GI

g-ir-generate

é um gerador GIR que usa a API do repositório

g-ir-scanner

é uma ferramenta que gera arquivos XML do GIR analisando cabeçalhos e analisando bibliotecas baseadas em GObject

libgirepository-1.0.so

fornece uma API para acessar os metadados da biblioteca de tipo

Gsl-2.7.1

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Gsl

Opcional

sphinx_rtd_theme-1.2.0

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/gsl

Instalação do Gsl

Instale Gsl executando os seguintes comandos:

./configure --prefix=/usr --disable-static &&
make

Se você tiver sphinx_rtd_theme-1.2.0 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.7.1 &&
cp -R doc/_build/html/* /usr/share/doc/gsl-2.7.1

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órios Instalados: /usr/include/gsl e /usr/share/doc/gsl-2.7.1

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.12.0

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do gspell

Exigidas

enchant-2.3.3, ICU-72.1 e GTK+-3.24.36

Opcionais

gobject-introspection-1.74.0, GTK-Doc-1.33.2, Vala-0.56.4 e Valgrind-3.20.0

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/gspell

Instalação do gspell

Instale gspell executando os seguintes comandos:

./configure --prefix=/usr &&
make

Para testar os resultados, emita: make check. 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:

make install

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

ICU-72.1

Introdução a 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.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do ICU

Opcionais

LLVM-15.0.7 (com o Clang) e Doxygen-1.9.6 (para a documentação)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/icu

Instalação do ICU

Nota

Esse pacote se expande para o diretório icu.

Nota

Se clang++ estiver disponível, [então] ele será usado na crença equivocada de que g++ pode não suportar C++11, mesmo que configure tenha testado para isso. Se estiver usando g++, [então] existirá um aviso desnecessário ao final do configure. Construir com g++ também toma mais tempo que a UPC estimada mostrada.

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-56

Introdução a inih

Esse pacote é um analisador simples de arquivo ".INI" escrito em C.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://github.com/benhoyt/inih/archive/r56/inih-r56.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: e27e394554d9f339b728035a5766d8f3

  • Tamanho da transferência: 20 KB

  • Espaço em disco estimado exigido: 704 KB

  • Tempo de construção estimado: menos que 0,1 UPC

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/inih

Instalação do inih

Instale inih executando os seguintes comandos:

mkdir build &&
cd    build &&

meson --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)

Intel-gmmlib-22.3.4

Introdução a Intel-gmmlib

O pacote Intel-gmmlib contém a Intel Graphics Memory Management Library, 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Nota

O tarball intel-gmmlib-22.3.4.tar.gz extrairá para o diretório gmmlib-intel-gmmlib-22.3.4.

Dependências do Intel-gmmlib

Exigida

CMake-3.25.2

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/intel-gmmlib

Instalação do Intel-gmmlib

Instale Intel-gmmlib executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -DCMAKE_INSTALL_PREFIX=/usr   \
      -DBUILD_TYPE=Release          \
      -Wno-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
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

Jansson-2.14

Introdução a Jansson

O pacote Jansson contém uma biblioteca usada para codificar, decodificar e manipular dados JSON.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/jansson

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

JS-102.8.0

Introdução a JS

JS (também conhecido como SpiderMonkey) é o mecanismo JavaScript e WebAssembly da Mozilla, escrito em C++ e Rust. No BLFS, o código-fonte do JS é retirado a partir do Firefox.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do JS102

Exigidas

ICU-72.1, rustc-1.67.1 e Which-2.21

Recomendada

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/js102

Instalação do JS

Nota

Ao contrário da maioria dos outros pacotes no BLFS, as instruções abaixo exigem que você descompacte firefox-102.8.0esr.tar.xz e mude para a pasta firefox-102.8.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, tal como o /tmp, [então] ele terminará com mensagens de erro:

tar: .: Não é possível utime: Operação não permitida
tar: .: Não é possível mudar o modo para rwxr-xr-t: Operação não permitida
tar: Saindo com status de falha devido a erros anteriores

Isso termina com um status diferente de zero, porém NÃO significa que existe um problema real. Não descompacte como o(a) usuário(a) root em um diretório onde o bit "sticky" estiver configurado - isso irá desconfigurá-lo.

Instale JS executando os seguintes comandos:

Nota

Se você estiver compilando esse pacote em chroot, você precisa fazer duas coisas. Primeiro, como o(a) usuário(a) root, certifique-se de que /dev/shm esteja montado. Se você não fizer isso, a configuração do Python falhará com um informe de rastreamento referenciando /usr/lib/pythonN.N/multiprocessing/synchronize.py. Execute:

mountpoint -q /dev/shm || mount -t tmpfs devshm /dev/shm

Segundo, como o(a) usuário(a) root exporte a variável de ambiente $SHELL usando export SHELL=/bin/sh ou, então, preceda SHELL=/bin/sh ao executar o comando configure.

A compilação do código C++ respeita "$MAKEFLAGS" e o padrão é 'j1'; o código "Rust" usará todos os processadores.

Primeiro remova um sinalizador obsoleto no código "Python", que foi removido no "python-3.11":

grep -rl \"rU\" | xargs sed -i 's/"rU"/"r"/'

Em seguida execute:

mkdir obj &&
cd    obj &&

sh ../js/src/configure.in --prefix=/usr            \
                          --with-intl-api          \
                          --with-system-zlib       \
                          --with-system-icu        \
                          --disable-jemalloc       \
                          --disable-debug-symbols  \
                          --enable-readline        &&
make

Para executar a suíte de teste do JS, emita: make -C js/src check-jstests JSESTS_EXTRA_ARGS="--timeout 300 --wpt=disabled". É recomendável redirecionar a saída gerada para um [arquivo de] registro. Como estamos construindo com o "ICU" do sistema, mais de cem testes (de um total de mais de 50.000) são conhecidos por falharem.

Para executar a suíte de teste do JIT, emita: make -C js/src check-jit-test JITTEST_EXTRA_ARGS="--timeout 300".

Cuidado

Um problema no processo de instalação faz com que qualquer aplicativo em execução e que se vincule à biblioteca compartilhada "JS102" (por exemplo, GNOME Shell) quebre se a "JS102" for atualizada ou for reinstalada. Para contornar esse problema, remova a versão antiga da biblioteca compartilhada "JS102" antes da instalação:

rm -fv /usr/lib/libmozjs-102.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/js102-config

Explicações do Comando

sh ../js/src/configure.in: configure.in é na verdade um script de shell, porém o bit executável não está configurado no modo de permissão dele, de modo que é necessário executá-lo explicitamente com o sh.

--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 do sistema das bibliotecas acima. Essas são exigidas para a estabilidade.

--enable-readline: Essa chave habilita o suporte a "Readline" no shell do "JS".

--disable-jemalloc: Essa chave desabilita o alocador interno de memória usado no "JS102". o "jemalloc" destina-se somente ao ambiente do navegador Firefox. Para outros aplicativos que usam a "JS102", o aplicativo possivelmente quebre quando os itens alocados no alocador "jemalloc" forem liberados no alocador do sistema (glibc).

--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-a se quiser depurar a "JS102".

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/js102-config: Evita que js102-config use "CFLAGS" defeituosos.

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 toma mais tempo com gcc e g++, principalmente por causa de avisos extras, e é maior. Passe essas variáveis de ambiente para o script de configuração se desejar continuar a usar gcc, g++ (exportando-as e desconfigurando-as depois da instalação ou simplesmente anexando-as antes do comando sh ../js/src/configure.in). Se você estiver construindo em um sistema de 32 bits, [então] também veja abaixo.

CXXFLAGS="-msse2 -mfpmath=sse": Use "SSE2" em vez de "387" para operações de ponto flutuante de precisão dupla. É necessário para o GCC satisfazer as expectativas dos(as) desenvolvedores(as) "upstream" (Mozilla) com aritmética de ponto flutuante. Use-o se estiver construindo esse pacote em um sistema de 32 bits com GCC (se o "Clang" não estiver instalado ou o GCC for explicitamente especificado). Observe que isso fará com que o "JS" quebre em um processador sem capacidade "SSE2". Se você estiver executando o sistema em um processador tão antigo, [então] o "Clang" é estritamente necessário. Essa configuração não é necessária em sistemas de 64 bits, pois 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: js102 e js102-config
Bibliotecas Instaladas: libmozjs-102.so
Diretórios Instalados: /usr/include/mozjs-102

Descrições Curtas

js102

fornece uma interface de linha de comando para o mecanismo JavaScript

js102-config

é usado para encontrar o compilador "JS" e sinalizadores do vinculador

libmozjs-102.so

contém as funções da API do JavaScript da Mozilla

JSON-C-0.16

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do JSON-C

Exigida

CMake-3.25.2

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/json-c

Instalação do JSON-C

Instale JSON-C executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -DCMAKE_INSTALL_PREFIX=/usr \
      -DCMAKE_BUILD_TYPE=Release \
      -DBUILD_STATIC_LIBS=OFF    \
      .. &&
make

Para testar os resultados, emita: make test.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

-DCMAKE_BUILD_TYPE=Release: Essa chave é usada para aplicar um nível mais alto de otimização à compilação.

Conteúdo

Aplicativos Instalados: Nenhum
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.6.6

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do JSON-GLib

Exigida

GLib-2.74.5

Opcionais (Exigidas se construir GNOME)

gobject-introspection-1.74.0

Opcionais

GTK-Doc-1.33.2

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/json-glib

Instalação do JSON GLib

Instale o JSON GLib executando os seguintes comandos:

mkdir build &&
cd build &&

meson --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: json-glib-format e json-glib-validate
Biblioteca Instalada: libjson-glib-1.0.so
Diretórios Instalados: /usr/{include,share/installed-tests}/json-glib-1.0, /usr/libexec/installed-tests/json-glib-1.6.6 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.1

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://people.redhat.com/~dhowells/keyutils/keyutils-1.6.1.tar.bz2

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 919af7f33576816b423d537f8a8692e8

  • Tamanho da transferência: 96 KB

  • Espaço em disco estimado exigido: 1,9 MB (com os testes)

  • Tempo de construção estimado: menos que 0,1 UPC (adicionar 0,6 UPC para os testes)

Dependências do keyutils

Exigida

MIT Kerberos V5-1.20.1

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/keyutils

Instalação do keyutils

Instale keyutils executando os seguintes comandos:

sed -i 's:$(LIBDIR)/$(PKGCONFIG_DIR):/usr/lib/pkgconfig:' Makefile &&
make

Para testar os resultados, emita, como o(a) usuário(a) root:

make -k test

Observe que vários testes falharão se certas opções incomuns do núcleo não forem usadas quando o núcleo foi construído. Isso inclui CONFIG_BIG_KEYS, CONFIG_KEY_DH_OPERATIONS e CONFIG_CRYPTO_DH.

Agora, como o(a) usuário(a) root:

make NO_ARLIB=1 LIBDIR=/usr/lib BINDIR=/usr/bin SBINDIR=/usr/sbin install

Explicações do Comando

sed ... Makefile: Esse comando garante que o arquivo "pkgconfig" seja colocado no diretório correto.

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/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 a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libaio

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

Se você deseja executar a suíte de teste, {então] corrija um problema com Glibc-2.34 ou posterior:

sed 's/-Werror//' -i harness/Makefile

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.6.2

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do libarchive

Opcionais

libxml2-2.10.3, LZO-2.10 e Nettle-3.8.1

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libarchive

Instalação do libarchive

Instale o libarchive executando os seguintes comandos:

./configure --prefix=/usr --disable-static &&
make

Para testar os resultados, emita: LC_ALL=C make check.

Agora, como o(a) usuário(a) root:

make install

Remova uma entrada inválida em /usr/lib/pkgconfig/libarchive.pc:

sed -i "s/iconv //" /usr/lib/pkgconfig/libarchive.pc

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.

--without-nettle: Essa chave configura o "OpenSSL" para suporte de criptografia em vez do preferido "Nettle" se ambos os pacotes estiverem instalados.

Conteúdo

Aplicativos Instalados: bsdcat, bsdcpio e bsdtar
Bibliotecas Instaladas: libarchive.so
Diretórios Instalados: Nenhum

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

libarchive.so

é uma biblioteca que consegue criar e ler vários formatos de arquivamento de fluxo

libassuan-2.5.5

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do libassuan

Exigida

libgpg-error-1.46

Opcionais

texlive-20220321 (ou install-tl-unx)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libassuan

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-20220321 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-2.5.5/html &&
install -v -m644 doc/assuan.html/* \
                    /usr/share/doc/libassuan-2.5.5/html &&
install -v -m644 doc/assuan_nochunks.html \
                    /usr/share/doc/libassuan-2.5.5      &&
install -v -m644 doc/assuan.{txt,texi} \
                    /usr/share/doc/libassuan-2.5.5

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-2.5.5

Conteúdo

Aplicativo Instalado: libassuan-config
Biblioteca Instalada: libassuan.so
Diretório Instalado: /usr/share/doc/libassuan-2.5.5

Descrições Curtas

libassuan-config

é um script de informação de construção da libassuan

libassuan.so

é uma biblioteca de comunicação entre processos que implementa o protocolo "Assuan"

libatasmart-0.19

Introdução a 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 adequadamente usando uma plataforma LFS 11.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 Usuário(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 discos

libatasmart.so

contém as funções da API S.M.A.R.T do ATA

libatomic_ops-7.6.14

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libatomic_ops

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.6.14 &&
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.6.14

Descrições Curtas

libatomic_ops.so

contém funções para operações atômicas de memória

libblockdev-2.28

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do libblockdev

Exigidas

gobject-introspection-1.74.0, libbytesize-2.7, libyaml-0.2.5, parted-3.5 e volume_key-0.3.12

Opcionais

btrfs-progs-6.1.3, GTK-Doc-1.33.2, mdadm-4.2, dmraid, bcachefs e ndctl

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libblockdev

Instalação do libblockdev

Instale libblockdev executando os seguintes comandos:

./configure --prefix=/usr   \
            --sysconfdir=/etc \
            --with-python3    \
            --without-gtk-doc \
            --without-nvdimm  \
            --without-dm      &&
make

Esse pacote não vem com uma suíte de teste funcional.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: lvm-cache-stats
Bibliotecas Instaladas: libbd_btrfs.so, libbd_crypto.so, libbd_fs.so, libbd_kbd.so, libbd_loop.so, libbd_lvm.so, libbd_lvm-dbus.so, libbd_mdraid.so, libbd_mpath.so, libbd_part.so, libbd_part_err.so, libbd_swap.so, libbd_utils.so, libbd_vdo.so e libblockdev.so
Diretórios Instalados: /etc/libblockdev, /usr/include/blockdev e /usr/share/gtk-doc/html/libblockdev

Descrições Curtas

lvm-cache-stats

imprime estatísticas relativas a caches relativos a Volumes Lógicos do LVM

libbytesize-2.7

Introdução a libbytesize

O pacote libbytesize é uma biblioteca que facilita as operações comuns com tamanhos em bytes.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do libbytesize

Exigidas

pcre2-10.42 e Pygments-2.14.0

Recomendada
Opcionais

GTK-Doc-1.33.2, pocketlint (módulo Python para um teste) e polib (módulo Python para um teste)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libbytesize

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.11/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

libcloudproviders-0.3.1

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do libcloudproviders

Exigidas

gobject-introspection-1.74.0 e Vala-0.56.4

Opcionais

GTK-Doc-1.33.2

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libcloudproviders

Instalação do libcloudproviders

Instale libcloudproviders executando os seguintes comandos:

mkdir build &&
cd build &&

meson --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.

-Denable-gtk-doc: Use essa chave se você tiver GTK-Doc-1.33.2 instalado e desejar gerar a documentação da API.

Conteúdo

Aplicativos Instalados: Nenhum
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 a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do libdaemon

Opcionais

Doxygen-1.9.6 e Lynx-2.8.9rel.1

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libdaemon

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
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

libgcrypt-1.10.1

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do libgcrypt

Exigida

libgpg-error-1.46

Opcionais

Pth-2.0.7 e texlive-20220321 (ou install-tl-unx)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libgcrypt

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

Os comandos acima constroem a documentação nos formatos HTML e texto simples. Se desejar construir formatos alternativos da documentação, [então] você precisa do texlive-20220321 (ou do install-tl-unx). 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 -dm755  /usr/share/doc/libgcrypt-1.10.1 &&
install -v -m644    README doc/{README.apichanges,fips*,libgcrypt*} \
                    /usr/share/doc/libgcrypt-1.10.1 &&

install -v -dm755   /usr/share/doc/libgcrypt-1.10.1/html &&
install -v -m644 doc/gcrypt.html/* \
                    /usr/share/doc/libgcrypt-1.10.1/html &&
install -v -m644 doc/gcrypt_nochunks.html \
                    /usr/share/doc/libgcrypt-1.10.1      &&
install -v -m644 doc/gcrypt.{txt,texi} \
                    /usr/share/doc/libgcrypt-1.10.1

Se você construiu formatos alternativos da documentação, [então] instale-os emitindo o seguinte comando como o(a) usuário(a) root:

install -v -m644 doc/gcrypt.{pdf,ps,dvi} \
                   /usr/share/doc/libgcrypt-1.10.1

Explicações do Comando

--with-capabilities: Essa opção habilita o suporte a "libcap2". Observe que isso quebra o cryptsetup-2.4.3

Conteúdo

Aplicativos Instalados: dumpsexp, hmac256, libgcrypt-config e mpicalc
Biblioteca Instalada: libgcrypt.so
Diretório Instalado: /usr/share/doc/libgcrypt-1.10.1

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

libgcrypt-config

determina os sinalizadores de compilação e do vinculador que deveriam ser usados para compilar e vincular aplicativos que usam libgcrypt

mpicalc

é uma calculadora RPN (Reverse Polish Notation)

libgcrypt.so

contém as funções criptográficas da API

libgpg-error-1.46

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libgpg-error

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.46/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.46

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

libgrss-0.7.0

Introdução a libgrss

O pacote libgrss contém uma biblioteca projetada para manipular feeds RSS e Atom.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Transferências Adicionais

Dependências do libgrss

Exigida

libsoup-2.74.3

Recomendada

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libgrss

Instalação do libgrss

Instale libgrss executando os seguintes comandos:

patch -Np1 -i ../libgrss-0.7.0-bugfixes-2.patch &&
autoreconf -fv &&
./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
Biblioteca Instalada: libgrss.so
Diretórios Instalados: /usr/include/libgrss e /usr/share/doc/libgrss-0.7.0

Descrições Curtas

libgrss.so

fornece funções de API para lidar com feeds RSS

libgsf-1.14.50

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do libgsf

Exigidas

GLib-2.74.5 e libxml2-2.10.3

Recomendada
Opcionais

gobject-introspection-1.74.0 e GTK-Doc-1.33.2

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libgsf

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, "t1004-zip-zip64.pl" e "t1005-zip-nonseekable.pl" 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-237

Introdução a libgudev

O pacote libgudev contém ligações GObject para a libudev.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Exigida

GLib-2.74.5

Opcionais

gobject-introspection-1.74.0 (para gir-data, necessário para o GNOME), GTK-Doc-1.33.2 e umockdev-0.17.16 (para testar)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libgudev

Instalação do libgudev

Instale libgudev executando os seguintes comandos:

mkdir build &&
cd  build &&

meson --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.

-Dgtk_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
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.5

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do libgusb

Exigidas

JSON-GLib-1.6.6 e libusb-1.0.26

Recomendadas
Opcionais

Gi-DocGen-2023.1

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libgusb

Instalação do libgusb

Instale libgusb executando os seguintes comandos:

mkdir build &&
cd  build &&

meson --prefix=/usr --buildtype=release -Ddocs=false .. &&
ninja

Se você tiver o Gi-DocGen-2023.1 instalado e desejar construir a documentação da API para esse pacote, [então] emita:

sed "/output: 'libgusb'/s/'\$/-0.4.5'/" -i ../docs/meson.build &&
meson configure -Ddocs=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.

-Ddocs=false: Permite construir esse pacote sem "Gi-DocGen-2023.1" instalado. Se tiver "Gi-DocGen-2023.1" instalado e você desejar reconstruir e instalar a documentação da "API", [então] 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.5 (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.16

Introdução a libical

O pacote libical contém uma implementação dos protocolos e formatos de dados "iCalendar".

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do libical

Exigida

CMake-3.25.2

Recomendadas
Opcionais

Base de Dados Berkeley-5.3.28, Doxygen-1.9.6 (para a documentação da API), Graphviz-7.1.0 (para a documentação da API), GTK-Doc-1.33.2 (para a documentação da API), ICU-72.1 e PyGObject-3.42.2 (para alguns testes)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libical

Instalação do libical

Instale libical executando os seguintes comandos:

Nota

Esse pacote ocasionalmente possivelmente falhe ao construir com múltiplos processadores. Veja-se Usando Múltiplos Processadores para mais informações.

mkdir build &&
cd  build &&

cmake -DCMAKE_INSTALL_PREFIX=/usr  \
      -DCMAKE_BUILD_TYPE=Release   \
      -DSHARED_ONLY=yes            \
      -DICAL_BUILD_DOCS=false      \
      -DGOBJECT_INTROSPECTION=true \
      -DICAL_GLIB_VAPI=true        \
      .. &&
make -j1

Se tiver Doxygen-1.9.6, Graphviz-7.1.0 e GTK-Doc-1.33.2 instalados e desejar construir a documentação da API, [então] você deveria remover a chave -DICAL_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.16/html &&
cp -vr apidocs/html/* /usr/share/doc/libical-3.0.16/html

Explicações do Comando

-DCMAKE_BUILD_TYPE=Release: Essa chave é usada para aplicar um nível mais alto de otimização à compilação.

-DSHARED_ONLY=yes: Essa chave é usada para a finalidade de construir somente as bibliotecas compartilhadas.

-DICAL_BUILD_DOCS=false: Essa chave evita construir a documentação do GTK. Remova se você desejar construir a documentação.

-DGOBJECT_INTROSPECTION=true: Essa chave é usada para gerar ligações de meta dados do "GObject".

-DICAL_GLIB_VAPI=true: Essa chave é usada para a finalidade de construir ligações para Vala-0.56.4.

-DUSE_BUILTIN_TZDATA=yes: Essa chave é usada para a finalidade de construir usando seus próprios dados de fuso horário.

Conteúdo

Aplicativos Instalados: Nenhum
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.16/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.41

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do libidn

Opcionais

Pth-2.0.7, Emacs-28.2, GTK-Doc-1.33.2, OpenJDK-19.0.2, Valgrind-3.20.0 e Mono

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libidn

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.41     &&
cp -r -v doc/* /usr/share/doc/libidn-1.41

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-19.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.41 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.4

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do libidn2

Exigida

libunistring-1.1

Opcionais

git-2.39.2 e GTK-Doc-1.33.2

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libidn2

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

libiodbc-3.52.15

Introdução a libiodbc

libiodbc é uma API para bases de dados compatíveis com ODBC.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do libiodbc

Recomendada

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libiodbc

Instalação do libiodbc

Instale libiodbc executando os seguintes comandos:

./configure --prefix=/usr                 \
            --with-iodbc-inidir=/etc/iodbc  \
            --includedir=/usr/include/iodbc \
            --disable-libodbc               \
            --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-iodbc-inidir=/etc/iodbc: libiodbc instalará arquivos de configuração nesse diretório.

--includedir=/usr/include/iodbc: Isso instala os cabeçalhos de interface em um diretório privado, para evitar um conflito com os cabeçalhos instalados pelo unixODBC.

--disable-libodbc: Isso evita a instalação do link simbólico libodbc.so, para evitar um conflito com o unixODBC.

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Conteúdo

Aplicativos Instalados: iodbc-config, iodbctest, iodbctestw e iodbcadm-gtk
Bibliotecas Instaladas: libdrvproxy.so, libiodbc.so, libiodbcinst.so e libiodbcadm.so
Diretório Instalado: /usr/include/iodbc, /usr/share/libiodbc e /etc/iodbc

Descrições Curtas

iodbc-config

é um utilitário para recuperar as opções de instalação da "libiodbc"

iodbctest{,w}

são processadores interativos SQL

iodbcadm-gtk

é um utilitário gráfico de administração

libksba-1.6.3

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Libksba

Exigida

libgpg-error-1.46

Opcional

Valgrind-3.20.0

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libksba

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
Biblioteca Instalada: libksba.so
Diretório Instalado: Nenhum

Descrições Curtas

libksba.{so,a}

contém as funções criptográficas da API

liblinear-245

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Nota

Depois de atualizar esse pacote a partir de liblinear-1.96 ou anterior, você precisa reinstalar o Nmap-7.93, para a finalidade de vincular à nova biblioteca.

Informação do Pacote

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/liblinear

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.5 /usr/lib &&
ln -sfv liblinear.so.5 /usr/lib/liblinear.so

Conteúdo

Aplicativos Instalados: Nenhum
Biblioteca Instalada: liblinear.so
Diretórios Instalados: Nenhum

Descrições Curtas

liblinear.so

é uma grande biblioteca de classificação linear

libmbim-1.26.4

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://www.freedesktop.org/software/libmbim/libmbim-1.26.4.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 58dea20cad346f31d2873b68385a9973

  • Tamanho da transferência: 553 KB

  • Espaço em disco estimado exigido: 33 MB (com os testes)

  • Tempo de construção estimado: 0,2 UPC (com os testes)

Dependências do libmbim

Recomendada
Opcionais

GTK-Doc-1.33.2 e help2man

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libmbim

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)

libpaper-1.1.24+nmu5

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libpaper

Instalação do libpaper

Instale libpaper executando os seguintes comandos:

autoreconf -fi              &&
./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 &&
mkdir -vp /etc/libpaper.d

O diretório /etc/libpaper.d contém scripts a serem executados depois que o tamanho do papel tenha sido mudado. Esse pacote não coloca scripts aqui, mas outros pacotes possivelmente. Se o pacote "fcron" não tiver sido instalado, [então] crie o script run-parts conforme mostrado na seção Informações de Configuração do "Fcron".

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

mkdir -pv /etc/libpaper.d: libpaper espera que os pacotes instalem arquivos nesse diretório.

Configurando libpaper

Informação de Configuração

Crie /etc/papersize para configurar o tamanho de papel padrão do sistema. Emita o seguinte comando como o(a) usuário(a) root para configurar isso como 'A4' (libpaper prefere a forma minúscula). Você possivelmente queira usar um tamanho diferente, tal como "carta".

cat > /etc/papersize << "EOF"
a4
EOF

Conteúdo

Aplicativos Instalados: paperconf, paperconfig e run-parts
Biblioteca Instalada: libpaper.so
Diretórios Instalados: /etc/libpaper.d

Descrições Curtas

paperconf

imprime informação de configuração de papel

paperconfig

configura o tamanho padrão de papel do sistema

libpaper.so

contém funções para interrogar a biblioteca de papéis

libportal-0.6

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do libportal

Exigida

gobject-introspection-1.74.0

Recomendadas
Opcionais

Gi-DocGen-2023.1 e Vala-0.56.4

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libportal

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 --prefix=/usr --buildtype=release -Ddocs=false .. &&
ninja

Se você tiver Gi-DocGen-2023.1 instalado e desejar construir a documentação da API para esse pacote, [então] emita:

sed "/output/s/-1/-0.6/" -i ../doc/meson.build &&
meson configure -Ddocs=true                   &&
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.

-Ddocs=false: Permite construir esse pacote sem "Gi-DocGen-2023.1" instalado. Se tiver "Gi-DocGen-2023.1" instalado e você desejar reconstruir e instalar a documentação da "API", [então] um comando "meson configure" reconfigurará essa opção.

-Dbackends=gtk3,gtk4,qt5: Essa chave permite que você configure as estruturas disponíveis de retaguarda. Você consegue usá-la para desabilitar a dependência de gtk-3, gtk-4 ou qt-5. A maioria dos aplicativos que usam libportal usará ou gtk-4 ou gtk-3. O padrão é o de construir todas as três estruturas de retaguarda.

Conteúdo

Aplicativos Instalados: Nenhum
Bibliotecas Instaladas: libportal.so, libportal-gtk3.so, libportal-gtk4.so e libportal-qt5.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 os portais Flatpak.

libportal-gtk4.so

fornece funções específicas do GTK-4 para interagir com portais Flatpak.

libportal-qt5.so

fornece funções específicas do Qt5 para interagir com portais Flatpak.

libptytty-2.0

Introdução a 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 adequadamente usando uma plataforma LFS 11.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

Exigida

CMake-3.25.2

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libptytty

Instalação do libptytty

Instale libptytty executando os seguintes comandos:

mkdir build &&
cd   build &&

cmake -DCMAKE_INSTALL_PREFIX=/usr     \
      -DCMAKE_BUILD_TYPE=Release      \
      -DPT_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
Bibliotecas Instaladas: libptytty.so
Diretórios Instalados: Nenhum

Descrições Curtas

libptytty.so

fornece manuseio seguro e independente do Sistema Operacional de pty/tty e de utmp/wtmp/lastlog

libqalculate-4.5.1

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do libqalculate

Exigidas

cURL-7.88.1, ICU-72.1 e libxml2-2.10.3

Opcionais

Doxygen-1.9.6

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libqalculate

Instalação do libqalculate

Instale libqalculate executando os seguintes comandos:

./configure --prefix=/usr   \
            --disable-static \
            --docdir=/usr/share/doc/libqalculate-4.5.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: qalc
Biblioteca Instalada: libqalculate.so
Diretórios Instalados: /usr/include/libqalculate, /usr/share/doc/libqalculate-4.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 a 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 adequadamente usando uma plataforma LFS 11.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 os testes)

  • Tempo de construção estimado: 0,3 UPC (Usando paralelismo=4; com os testes)

Dependências do libqmi

Exigidas

GLib-2.74.5 e libgudev-237

Recomendadas
Opcionais

GTK-Doc-1.33.2, help2man e libqrtr-glib

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libqmi

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.5.4

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do libseccomp

Opcionais

Which-2.21 (necessitado para os testes), Valgrind-3.20.0 e LCOV

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libseccomp

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.

Conteúdo

Aplicativo Instalado: scmp_sys_resolver
Biblioteca Instalada: libseccomp.so
Diretórios Instalados: Nenhum

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.0

Introdução a libsigc++

O pacote libsigc++ implementa um sistema de retorno de chamada seguro para C++ padrão.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do libsigc++

Recomendadas
Opcionais

DocBook-utils-0.6.14, docbook-xml-5.0, Doxygen-1.9.6 e mm-common

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libsigc++

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

-Dbuild-documentation=true: Use essa chave se Doxygen-1.9.6 estiver instalado e você desejar construir e instalar a documentação da API.

Conteúdo

Aplicativos Instalados: Nenhum
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

contém as funções da API da libsigc++

libsigsegv-2.14

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libsigsegv

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
Biblioteca Instalada: libsigsegv.so
Diretórios Instalados: Nenhum

Descrições Curtas

libsigsegv.so

é uma biblioteca para lidar com falhas de página no modo de usuário(a)

libssh2-1.10.0

Introdução a libssh2

O pacote Libssh2 é uma biblioteca C do lado do cliente que implementa o protocolo "SSH2".

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://www.libssh2.org/download/libssh2-1.10.0.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: f604ba083fad23bf715a9ecccc9f57f4

  • Tamanho da transferência: 944 KB

  • Espaço em disco estimado exigido: 13 MB (com os testes)

  • Tempo de construção estimado: 0,2 UPC (com os testes)

Transferências Adicionais

Dependências do libssh2

Opcionais

GnuPG-2.4.0, libgcrypt-1.10.1 e OpenSSH-9.2p1 (todos três são exigidos para a suíte de teste)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libssh2

Instalação do libssh2

Aplique um remendo para corrigir a incompatibilidade com lançamentos recentes do "OpenSSH":

patch -Np1 -i ../libssh2-1.10.0-upstream_fix-1.patch

Instale libssh2 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
Biblioteca Instalada: libssh2.so
Diretórios Instalados: Nenhum

Descrições Curtas

libssh2.so

contém funções para usar o protocolo "SSH2"

libstatgrab-0.92.1

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libstatgrab

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.19.0

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do libtasn1

Opcionais

GTK-Doc-1.33.2 e Valgrind-3.20.0

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libtasn1

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)

libunique-1.1.6

Introdução a libunique

O pacote libunique contém uma biblioteca para escrever aplicativos de instância única.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Transferências Adicionais

Dependências do libunique

Exigidas

GTK+-2.24.33, também GTK-Doc-1.33.2 (para "autoreconf")

Opcionais

gobject-introspection-1.74.0

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libunique

Instalação do libunique

Instale libunique executando os seguintes comandos:

patch -Np1 -i ../libunique-1.1.6-upstream_fixes-1.patch &&
autoreconf -fi &&

./configure --prefix=/usr \
            --disable-dbus \
            --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-dbus: Essa chave desabilita a infraestrutura de retaguarda D-Bus em favor da infraestrutura de retaguarda "GDBus".

--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
Biblioteca Instalada: libunique-1.0.so
Diretórios Instalados: /usr/include/unique-1.0 e /usr/share/gtk-doc/html/unique

Descrições Curtas

libunique-1.0.so

contém as funções da API da libunique para suporte de instância única

libunistring-1.1

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do libunistring

Opcionais

texlive-20220321 (ou install-tl-unx) (para reconstruir a documentação)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libunistring

Instalação do libunistring

Instale libunistring executando os seguintes comandos:

./configure --prefix=/usr   \
            --disable-static \
            --docdir=/usr/share/doc/libunistring-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.

Conteúdo

Aplicativos Instalados: Nenhum
Bibliotecas Instaladas: libunistring.so
Diretório Instalado: /usr/include/unistring e /usr/share/doc/libunistring-1.1

Descrições Curtas

libunistring.so

fornece a API da biblioteca de sequências de caracteres Unicode

libunwind-1.6.2

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do libunwind

Opcionais

texlive-20220321 (para "latex2man")

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libunwind

Instalação do libunwind

Instale libunwind executando os seguintes comandos:

./configure --prefix=/usr --disable-static &&
make

Para testar os resultados, emita: make check. Dois testes, "run-coredump-unwind" e "run-coredump-unwind-mdi" 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.

Conteúdo

Aplicativos Instalados: Nenhum
Bibliotecas Instaladas: libunwind.so, libunwind-coredump.so, libunwind-generic.so, libunwind-ptrace.so, libunwind-setjmp.so e libunwind-x86_64.so
Diretórios Instalados: Nenhum

liburcu-0.14.0

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://lttng.org/files/urcu/userspace-rcu-0.14.0.tar.bz2

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 0cd5647788b048a5d6bbdb3b08d46299

  • Tamanho da transferência: 648 KB

  • Espaço em disco estimado exigido: 25 MB (com os testes)

  • Tempo de construção estimado: 0,2 UPC (com os testes)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/liburcu

Instalação do liburcu

Instale liburcu executando os seguintes comandos:

./configure --prefix=/usr   \
            --disable-static \
            --docdir=/usr/share/doc/liburcu-0.14.0 &&
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: 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.14.0

libusb-1.0.26

Introdução a libusb

O pacote libusb contém uma biblioteca usada por alguns aplicativos para acesso a dispositivos USB.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do libusb

Opcionais

Doxygen-1.9.6

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libusb

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.26/apidocs &&
install -v -m644   doc/api-1.0/* \
                    /usr/share/doc/libusb-1.0.26/apidocs

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 --->                  [CONFIG_USB_SUPPORT]
    <*/M> Support for Host-side USB      [CONFIG_USB]
    (Select any USB hardware device drivers you may need on the same page)

Para mais detalhes a respeito do como configurar dispositivos USB, veja-se “Consequências do Dispositivo USB”.

Conteúdo

Aplicativos Instalados: Nenhum
Biblioteca Instalada: libusb-1.0.so
Diretórios Instalados: /usr/include/libusb-1.0 e /usr/share/doc/libusb-1.0.26

Descrições Curtas

libusb-1.0.so

contém funções de API usadas para acessar hardware USB

libuv-1.44.2

Introdução a libuv

O pacote libuv é uma biblioteca de suporte multiplataforma com foco em Entrada/Saída assíncrona.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://dist.libuv.org/dist/v1.44.2/libuv-v1.44.2.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 0addbddcb1098e2c1c99f03f0108e1e7

  • Tamanho da transferência: 1,2 MB

  • Espaço em disco estimado exigido: 14 MB (adicionar 13 MB para os testes)

  • Tempo de construção estimado: 0,1 UPC (adicionar 0,5 UPC para os testes)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libuv

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ê 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

Conteúdo

Aplicativos Instalados: Nenhum
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.5.0

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://xkbcommon.org/download/libxkbcommon-1.5.0.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 40f0486b4eb491928ec6616c2ff85120

  • Tamanho da transferência: 464 KB

  • Espaço em disco estimado exigido: 19 MB (com os testes)

  • Tempo de construção estimado: 0,2 UPC (com os testes)

Dependências do libxkbcommon

Exigida

xkeyboard-config-2.38 (tempo de execução)

Recomendadas
Opcionais

Doxygen-1.9.6

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libxkbcommon

Instalação do libxkbcommon

Instale libxkbcommon executando os seguintes comandos:

mkdir build &&
cd   build &&

meson --prefix=/usr       \
      --buildtype=release \
      -Denable-docs=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.

-Denable-docs=false: Essa chave desabilita a geração de documentação. Remova-a se Doxygen-1.9.6 estiver instalado.

mv -v /usr/share/doc/libxkbcommon{,-1.5.0}: se você removeu "-Denable-docs=false", [então] use esse comando para instalar a documentação 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.5.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.10.3

Introdução a libxml2

O pacote libxml2 contém bibliotecas e utilitários usados para analisar arquivos "XML".

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://download.gnome.org/sources/libxml2/2.10/libxml2-2.10.3.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: f9edac7fac232b3657a003fd9a5bbe42

  • Tamanho da transferência: 2,5 MB

  • Espaço em disco estimado exigido: 105 MB (com os testes)

  • Tempo de construção estimado: 0,4 UPC (Usando paralelismo=4; com os testes)

Transferências Adicionais

Dependências do libxml2

Opcionais

ICU-72.1 (veja-se abaixo) e Valgrind-3.20.0 (possivelmente seja usado nos testes)

Nota

O antigo módulo Python2 pode ser construído depois que libxml2.so tiver sido instalada; veja-se Módulo "python2" libxml2-2.10.3.

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libxml2

Instalação do libxml2

Instale libxml2 executando os seguintes comandos:

./configure --prefix=/usr          \
            --sysconfdir=/etc       \
            --disable-static        \
            --with-history          \
            PYTHON=/usr/bin/python3 \
            --docdir=/usr/share/doc/libxml2-2.10.3 &&
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. Um sumário dos resultados pode ser obtido com grep -E '^Total|expected' check.log. Se Valgrind-3.20.0 estiver instalado e você desejar verificar vazamentos de memória, [então] 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:

systemctl stop httpd.service

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-history: Essa chave habilita o suporte Readline ao executar xmlcatalog ou xmllint no modo shell.

PYTHON=/usr/bin/python3: Permite construir o módulo "libxml2" com "Python3" em vez de "Python2".

--with-icu: Adicione essa chave se você tiver construído ICU-72.1, para melhor suporte a Unicode.

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.10.3 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"

libxslt-1.1.37

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do libxslt

Exigida

libxml2-2.10.3

Recomendadas (ao 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.10.1

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libxslt

Instalação do libxslt

Instale libxslt executando os seguintes comandos:

./configure --prefix=/usr                         \
            --disable-static                       \
            --docdir=/usr/share/doc/libxslt-1.1.37 \
            PYTHON=/usr/bin/python3 &&
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/libxslt-plugins, /usr/share/doc/libxslt-1.1.37 e /usr/share/doc/libxslt-python-1.1.37

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.6.0

Introdução a libwacom

O pacote libwacom contém uma biblioteca usada para identificar os tablets "Wacom" e os recursos específicos do modelo deles.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do libwacom

Exigida

libgudev-237

Recomendada
Opcionais

Doxygen-1.9.6, git-2.39.2, librsvg-2.54.5, Valgrind-3.20.0 (opcional para alguns testes), pytest-7.2.1 com python-libevdev e pyudev

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libwacom

Instalação do libwacom

Instale libwacom executando os seguintes comandos:

mkdir build &&
cd   build &&

meson --prefix=/usr --buildtype=release -Dtests=disabled .. &&
ninja

Para testar os resultados, emita: ninja test. Para executar testes adicionais, instale pytest-7.2.1, "python-libevdev" e "pyudev" e, então, remova a opção "-Dtests=disabled" da linha "meson" acima.

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.

-Dtests=disabled: Esse parâmetro desabilita alguns dos testes mais avançados porque eles exigem pytest-7.2.1 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"

libwpe-1.14.1

Introdução a libwpe

O pacote libwpe contém uma biblioteca de propósito geral para o WebKit WPE e o "WPE Renderer".

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://wpewebkit.org/releases/libwpe-1.14.1.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: d834d70a6b3afb24a05ec188df248e52

  • Tamanho da transferência: 64 KB

  • Espaço em disco estimado exigido: 2,3 MB

  • Tempo de construção estimado: menos que 0,1 UPC

Dependências do libwpe

Exigidas

libxkbcommon-1.5.0 e Mesa-22.3.5

Opcionais

hotdoc

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libwpe

Instalação do libwpe

Instale libwpe executando os seguintes comandos:

mkdir build &&
cd   build &&

meson --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: Nenhum
Bibliotecas Instaladas: libwpe-1.0.so
Diretórios Instalados: /usr/include/wpe-1.0

Descrições Curtas

libwpe-1.0.so

contém funções que fornecem uma biblioteca de propósito geral para o WebKit WPE e o "WPE Renderer"

libyaml-0.2.5

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do libyaml

Opcionais

Doxygen-1.9.6

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libyaml

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
Bibliotecas Instaladas: libyaml.so
Diretórios Instalados: Nenhum

Descrições Curtas

libyaml.so

contém funções de API para analisar e emitir código "YAML"

LZO-2.10

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/lzo

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
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.6

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://bitmath.org/code/mtdev/mtdev-1.1.6.tar.bz2

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: bf8ef2482e84a00b5db8fbd3ce00e249

  • Tamanho da transferência: 292 KB

  • Espaço em disco estimado exigido: 2,5 MB

  • Tempo de construção estimado: menos que 0,1 UPC

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/mtdev

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

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-18.14.1

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://nodejs.org/dist/v18.14.1/node-v18.14.1.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 09aaaa219c453d6d5307641cc41b76e1

  • Tamanho da transferência: 40 MB

  • Espaço em disco estimado exigido: 962 MB (adicionar 34 MB para os testes)

  • Tempo de construção estimado: 15 UPC (adicionar 4,2 UPC para os testes: ambos usando paralelismo=4 e 4 CPUs online, partes dos testes usarão todas as CPUs online)

Dependências do Node.js

Exigida

Which-2.21

Recomendadas
Opcionais

http-parser e npm (uma cópia interna do npm será instalada se não presente)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/nodejs

Instalação do Node.js

Construa Node.js executando os seguintes comandos:

./configure --prefix=/usr         \
            --shared-cares         \
            --shared-libuv         \
            --shared-openssl       \
            --shared-nghttp2       \
            --shared-zlib          \
            --with-intl=system-icu &&
make

Para testar os resultados, emita: make test-only. Um teste é conhecido por falhar.

Agora, como o(a) usuário(a) root:

make install &&
ln -sf node /usr/share/doc/node-18.14.1

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-{cares,libuv,nghttp2,openssl,zlib}: use as bibliotecas instaladas do sistema em vez de 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: Nenhuma
Diretórios Instalados: /usr/include/node, /usr/lib/node_modules/{corepack,npm}, /usr/share/doc/{node,node-18.14.1} 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.6

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/npth

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

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.35

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/nspr

Instalação de NSPR

Instale NSPR executando os seguintes comandos:

cd nspr                                                    &&
sed -ri '/^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 Usuário(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.

$([ $(uname -m) = x86_64 ] && echo --enable-64bit): O parâmetro "--enable-64bit" é exigido em um sistema "x86_64" para evitar uma falha do configure com uma alegação de que este é 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

PCRE-8.45

Introdução a PCRE

O pacote PCRE contém as bibliotecas Perl de Expressões Regulares Compatíveis. Elas são úteis para implementar correspondência de padrão de expressão regular usando a mesma sintaxe e semântica da Perl 5.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do PCRE

Opcionais

Valgrind-3.20.0

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/pcre

Instalação do PCRE

Instale PCRE executando os seguintes comandos:

./configure --prefix=/usr                    \
            --docdir=/usr/share/doc/pcre-8.45 \
            --enable-unicode-properties       \
            --enable-pcre16                   \
            --enable-pcre32                   \
            --enable-pcregrep-libz            \
            --enable-pcregrep-libbz2          \
            --enable-pcretest-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-properties: Essa chave habilita o suporte a propriedades Unicode e inclui o código para lidar com sequências dos caracteres de carácter UTF-8/16/32 na biblioteca. Você precisa dessa chave se for construir GLib-2.74.5.

--enable-pcre16: Essa chave habilita o suporte a caracteres de 16 bits.

--enable-pcre32: Essa chave habilita o suporte a caracteres de 32 bits.

--enable-pcregrep-libz: Essa chave adiciona suporte para o pcregrep ler arquivos comprimidos .gz.

--enable-pcregrep-libbz2: Essa chave adiciona suporte para o pcregrep ler arquivos comprimidos .bz2.

--enable-pcretest-libreadline: Essa chave adiciona recursos de edição de linha e de histórico ao aplicativo pcretest.

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

--enable-jit: essa opção habilita a compilação "na hora certa", que consegue acelerar bastante a correspondência de padrões.

Conteúdo

Aplicativos Instalados: pcregrep, pcretest e pcre-config
Bibliotecas Instaladas: libpcre.so, libpcre16.so, libpcre32.so, libpcrecpp.so e libpcreposix.so
Diretório Instalado: /usr/share/doc/pcre-8.45

Descrições Curtas

pcregrep

é um grep que entende expressões regulares compatíveis com Perl

pcretest

consegue testar uma expressão regular compatível com Perl

pcre-config

é usado durante o processo de compilação de aplicativos se vinculando às bibliotecas PCRE

PCRE2-10.42

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do PCRE2

Opcionais

Valgrind-3.20.0 e libedit

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/pcre2

Instalação do PCRE2

Instale PCRE2 executando os seguintes comandos:

./configure --prefix=/usr                      \
            --docdir=/usr/share/doc/pcre2-10.42 \
            --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.42

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 a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do popt

Opcionais

Doxygen-1.9.6 (para gerar documentação)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/popt

Instalação do Popt

Instale popt executando os seguintes comandos:

./configure --prefix=/usr --disable-static &&
make

Se você tiver Doxygen-1.9.6 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
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

Pth-2.0.7

Introdução a Pth

O pacote Pth contém uma biblioteca baseada em POSIX/ANSI-C muito portável para plataformas Unix que fornece agendamento não preemptivo baseado em prioridade para várias 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, mas cada camada tem o próprio contador de programa individual dela, pilha de tempo de execução, máscara de sinal e variável "errno".

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Pth

Opcionais

GCC-12.2.0 (para gfortran) e libnsl-2.0.0

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/pth

Instalação do Pth

Cuidado

Não adicione o parâmetro --enable-pthread ao comando configure abaixo, senão você sobrescreverá a biblioteca "pthread" e o cabeçalho de interface instalado pelo pacote Glibc no LFS.

Instale Pth executando os seguintes comandos:

sed -i 's#$(LOBJS): Makefile#$(LOBJS): pth_p.h Makefile#' Makefile.in &&
./configure --prefix=/usr          \
            --disable-static        \
            --mandir=/usr/share/man &&
make

Para testar os resultados, emita: make test.

Agora, como o(a) usuário(a) root:

make install &&
install -v -m755 -d /usr/share/doc/pth-2.0.7 &&
install -v -m644   README PORTING SUPPORT TESTS \
                    /usr/share/doc/pth-2.0.7

Explicações do Comando

sed -i 's#$(LOBJS) ...: Esse sed corrige uma condição de corrida no Makefile. Ele permite executar make com várias tarefas (por exemplo, make -j4).

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

--mandir=/usr/share/man: Essa chave coloca as páginas de manual em /usr/share/man em vez de /usr/man.

Conteúdo

Aplicativo Instalado: pth-config
Biblioteca Instalada: libpth.so
Diretório Instalado: /usr/share/doc/pth-2.0.7

Descrições Curtas

pth-config

é um utilitário usado para configurar e construir aplicativos baseados na biblioteca pth(3). Ele pode ser usado para consultar os sinalizadores do compilador C e do vinculador que sejam necessários para compilar e vincular corretamente o aplicativo à biblioteca pth(3)

libpth.so

contém as funções de API usadas pela GNU Portable Threads Library

Qca-2.3.5

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://download.kde.org/stable/qca/2.3.5/qca-2.3.5.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 64a8c4c30a42740fca1f9a6937d3fbae

  • Tamanho da transferência: 724 KB

  • Espaço em disco estimado exigido: 42 MB

  • Tempo de construção estimado: 0,5 UPC (usando paralelismo=4; adicionar 0,1 UPC para os testes)

Dependências do Qca

Exigidas

make-ca-1.12, CMake-3.25.2, Qt-5.15.8 e Which-2.21

Opcionais

Cyrus SASL-2.1.28, GnuPG-2.4.0, libgcrypt-1.10.1, libgpg-error-1.46, nss-3.88.1, NSPR-4.35, p11-kit-0.24.1, Doxygen-1.9.6, Which-2.21 e Botan

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/qca

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 -DCMAKE_INSTALL_PREFIX=$QT5DIR            \
      -DCMAKE_BUILD_TYPE=Release                \
      -DQCA_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

-DCMAKE_BUILD_TYPE=Release: Essa chave é usada para aplicar um nível mais alto de otimização à compilação.

-DQCA_MAN_INSTALL_DIR:PATH=/usr/share/man: Instala a página de manual do "qca" no local normal.

Conteúdo

Aplicativos Instalados: mozcerts-qt5 e qcatool-qt5
Bibliotecas Instaladas: libqca-qt5.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: $QT5DIR/include/Qca-qt5, $QT5DIR/lib/cmake/Qca-qt5 e $QT5DIR/lib/qca-qt5

Descrições Curtas

mozcerts-qt5

é uma ferramenta de linha de comando para converter "certdata.txt" em arquivos "arquivo_saida_gerada.pem"

qcatool-qt5

é uma ferramenta de linha de comando para realizar várias operações criptográficas com o "Qca"

libqca-qt5.so

é a biblioteca "Qt Cryptography Architecture" (Qca)

Talloc-2.4.0

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://www.samba.org/ftp/talloc/talloc-2.4.0.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 02fb35ead70f73af2518234ef3cb1073

  • Tamanho da transferência: 660 KB

  • Espaço em disco estimado exigido: 11 MB (com os testes)

  • Tempo de construção estimado: 0,3 UPC (com os testes)

Dependências do Talloc

Opcionais

docbook-xml-4.5, docbook-xsl-nons-1.79.2 e libxslt-1.1.37 (para gerar páginas de manual), GDB-13.1, git-2.39.2, libnsl-2.0.0, libtirpc-1.3.3, Valgrind-3.20.0 e xfsprogs-6.1.1

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/talloc

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
Bibliotecas Instaladas: libpytalloc-util.cpython-311-<arch>-linux-gnu.so, libtalloc.so e talloc.cpython-311-<arch>-linux-gnu.so (Módulo Python-3)
Diretórios Instalados: Nenhum

Descrições Curtas

libtalloc.so

contém um substituto para a função "malloc" da Glibc

telepathy-glib-0.24.2

Introdução a "Telepathy GLib"

O Telepathy GLib contém uma biblioteca usada pelos componentes Telepathy baseados na GLib. Telepathy é um estrutura essencial de suporte do D-Bus para unificar a comunicação em tempo real, incluindo mensagens instantâneas, chamadas de voz e chamadas de vídeo. Ele abstrai diferenças entre protocolos para fornecer uma interface unificada para aplicativos.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "Telepathy GLib"

Exigidas

dbus-glib-0.112 e libxslt-1.1.37

Recomendadas
Opcionais

GTK-Doc-1.33.2

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/telepathy-glib

Instalação do "Telepathy Glib"

Se você pretende executar os testes, [então] um deles, por padrão, invoca /usr/bin/python e falha se ele estiver ausente, causando o segundo lote de testes não ser executado - ao contrário dos outros testes que podem ser substituídos a partir do ambiente. Corrija-o com o seguinte comando:

sed -i 's%/usr/bin/python%&3%' tests/all-errors-documented.py

Instale Telepathy GLib executando os seguintes comandos:

PYTHON=/usr/bin/python3 ./configure --prefix=/usr   \
                                    --enable-vala-bindings \
                                    --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-vala-bindings: Essa chave habilita a construção das ligações "Vala". Remova-a se você não tiver Vala-0.56.4 instalado.

--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
Bibliotecas Instaladas: libtelepathy-glib.so
Diretórios Instalados: /usr/include/telepathy-1.0 e /usr/share/gtk-doc/html/telepathy-glib

Descrições Curtas

libtelepathy-glib.so

contém as funções da API do Telepathy GLib

Uchardet-0.0.8

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Uchardet

Exigida

CMake-3.25.2

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/uchardet

Instalação do Uchardet

Instale Uchardet executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -DCMAKE_INSTALL_PREFIX=/usr \
      -DBUILD_STATIC=OFF         \
      -Wno-dev ..                 &&
make

Para testar os resultados, emita: make test.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

-DBUILD_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.17.16

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Umockdev

Exigidas

libgudev-237, libpcap-1.10.3 e Vala-0.56.4

Opcionais

GTK-Doc-1.33.2 e libgphoto2 (opcional para os testes)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/umockdev

Instalação do Umockdev

Instale Umockdev executando os seguintes comandos:

mkdir build &&
cd   build &&

meson --prefix=/usr --buildtype=release .. &&
ninja

Para testar os resultados, emita: PATH=$PATH:/usr/sbin ninja test. A adição ao PATH é necessária se você usar os scripts iniciais em Os Arquivos de Iniciação do Shell Bash, porque alguns testes precisam executar udevadm. 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

-Dgtk_doc=true: Use essa chave se você tiver GTK-Doc-1.33.2 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

Wayland-1.21.0

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências de Wayland

Exigida

libxml2-2.10.3

Opcionais

Doxygen-1.9.6, Graphviz-7.1.0 e xmlto-0.0.28 (para construir a documentação da API) e docbook-xml-4.5, docbook-xsl-nons-1.79.2 e libxslt-1.1.37 (para construir as páginas de manual)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/wayland

Instalação de Wayland

Instale Wayland executando os seguintes comandos:

mkdir build &&
cd    build &&

meson --prefix=/usr       \
      --buildtype=release \
      -Ddocumentation=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

-Ddocumentation=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.31

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências de Wayland-protocols

Exigida

Wayland-1.21.0

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/wayland-protocols

Instalação de Wayland-protocols

Instale Wayland-protocols executando os seguintes comandos:

mkdir build &&
cd    build &&

meson --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
Bibliotecas Instaladas: Nenhum
Diretórios Instalados: /usr/share/wayland-protocols

wpebackend-fdo-1.14.0

Introdução a wpebackend-fdo

O pacote wpebackend-fdo contém a estrutura de retaguarda Freedesktop.org para o WebKit do WPE e o renderizador WPE.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências de wpebackend-fdo

Exigidas

libepoxy-1.5.10, libwpe-1.14.1 e wayland-protocols-1.31

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/wpebackend-fdo

Instalação de wpebackend-fdo

Instale wpebackend-fdo executando os seguintes comandos:

mkdir build &&
cd    build &&

meson --prefix=/usr --buildtype=release ..
ninja

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
Bibliotecas Instaladas: libWPEBackend-fdo-1.0.so
Diretórios Instalados: /usr/include/wpe-fdo-1.0

Descrições Curtas

libWPEBackend-fdo-1.0.so

contém funções que fornecem a estrutura de retaguarda freedesktop.org para o WebKit do WPE e o renderizador WPE

wv-1.2.9

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências de wv

Exigidas

libgsf-1.14.50 e libpng-1.6.39

Opcionais

libwmf

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/wv

Instalação de 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.22

Introdução a xapian

Xapian é uma biblioteca de mecanismo de pesquisa de fonte aberto.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://oligarchy.co.uk/xapian/1.4.22/xapian-core-1.4.22.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 18412be5f8b62044f139937c3d7069d7

  • Tamanho da transferência: 2,9 MB

  • Espaço em disco estimado exigido: 147 MB (adicionar 154 MB para os testes)

  • Tempo de construção estimado: 0,5 UPC (usando paralelismo=4; adicionar 12 UPC para os testes)

Dependências de Xapian

Opcionais

Valgrind-3.20.0 (para os testes)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/xapian

Instalação de Xapian

Instale Xapian executando os seguintes comandos:

./configure --prefix=/usr    \
            --disable-static \
            --docdir=/usr/share/doc/xapian-core-1.4.22 &&
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.22 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 do xapian instalado

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 a AAlib

AAlib é uma biblioteca para renderizar qualquer gráfico em arte ASCII.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do AAlib

Opcionais

Bibliotecas do Xorg, Fontes Legadas do "Xorg" (tempo de execução), slang-2.3.3 e GPM-1.20.7

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/aalib

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

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

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.98

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://download.gimp.org/pub/babl/0.1/babl-0.1.98.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 0fd5f826e2ef14de04d978c203a3fe28

  • Tamanho da transferência: 308 KB

  • Espaço em disco estimado exigido: 12 MB (com os testes)

  • Tempo de construção estimado: 0,1 UPC (Usando paralelismo=4; com os testes)

Dependências do Babl

Recomendadas
Opcionais

Little CMS-2.14 e w3m

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/babl

Instalação do Babl

Instale Babl executando os seguintes comandos:

mkdir bld &&
cd   bld &&

meson --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
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.27.6

Introdução a Exiv2

Exiv2 é 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Exiv2

Exigida

CMake-3.25.2

Recomendada
Opcional

libssh

Opcionais para documentação

Doxygen-1.9.6, Graphviz-7.1.0 e libxslt-1.1.37

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/exiv2

Instalação do Exiv2

Instale Exiv2 executando os seguintes comandos:

mkdir build &&
cd   build &&

cmake -DCMAKE_INSTALL_PREFIX=/usr  \
      -DCMAKE_BUILD_TYPE=Release   \
      -DEXIV2_ENABLE_VIDEO=yes     \
      -DEXIV2_ENABLE_WEBREADY=yes  \
      -DEXIV2_ENABLE_CURL=yes      \
      -DEXIV2_BUILD_SAMPLES=no     \
      -G "Unix Makefiles" .. &&
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

-DEXIV2_ENABLE_VIDEO=yes: Essa chave habilita o gerenciamento de metadados de vídeo.

-DEXIV2_ENABLE_WEBREADY=yes: Essa chave habilita o gerenciamento de metadados de imagem da web.

-DEXIV2_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.

-DEXIV2_ENABLE_CURL=yes: Essa chave é necessária para habilitar os recursos de rede de comunicação/http.

Conteúdo

Aplicativo Instalado: exiv2
Biblioteca Instalada: libexiv2.so e libexiv2-xmp.a
Diretórios Instalados: /usr/include/exiv2

Descrições Curtas

exiv2

é um utilitário usado para despejar dados "Exif"

FreeType-2.13.0

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://downloads.sourceforge.net/freetype/freetype-2.13.0.tar.xz

  • Soma de verificação MD5 da transferência: fe73327ebbf0b629f3ad24be656d59de

  • Tamanho da transferência: 2,4 MB

  • Espaço em disco estimado exigido: 48 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.0.9 e librsvg-2.54.5

Opcional (para documentação)

docwriter

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/freetype2

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.0.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:

install -v -m755 -d /usr/share/doc/freetype-2.13.0 &&
cp -v -R docs/*    /usr/share/doc/freetype-2.13.0 &&
rm -v /usr/share/doc/freetype-2.13.0/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.0

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.14.2

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Fontconfig

Exigida

FreeType-2.13.0

Opcionais

cURL-7.88.1 e UnZip-6.0 (ambos usados por alguns testes para baixar e extrair arquivos de teste), JSON-C-0.16, DocBook-utils-0.6.14 e libxml2-2.10.3, texlive-20220321 (ou install-tl-unx)

Nota

Se tiver DocBook Utils instalado e remover o parâmetro --disable-docs do comando configure abaixo, [então] você precisa ter SGMLSpm-1.1 e texlive-20220321 instalado também, ou a construção do Fontconfig falhará.

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/Fontconfig

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.14.2 &&
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.14.2/fontconfig-devel} &&
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/fontconfig-devel/* \
                                  /usr/share/doc/fontconfig-2.14.2/fontconfig-devel &&
install -v -m644 doc/*.{pdf,sgml,txt,html} \
                                  /usr/share/doc/fontconfig-2.14.2

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.14.2/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.14.2, /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 o padrão (padrão 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.12

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do FriBidi

Opcionais

c2man (para construir páginas de manual)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/fribidi

Instalação do FriBidi

Instale FriBidi executando os seguintes comandos:

mkdir build &&
cd   build &&

meson --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.40

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://download.gimp.org/pub/gegl/0.4/gegl-0.4.40.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: fe182967ce4b678d8b45500c416555c5

  • Tamanho da transferência: 5,5 MB

  • Espaço em disco estimado exigido: 115 MB (Adicionar 7 MB para os testes)

  • Tempo de construção estimado: 0,9 UPC (Usando paralelismo=4; adicionar 0,2 para os testes)

Dependências do gegl

Exigidas

babl-0.1.98, JSON-GLib-1.6.6, libjpeg-turbo-2.1.5.1 e libpng-1.6.39

Recomendadas
Opcionais

asciidoc-10.2.0, Cairo-1.17.6, Exiv2-0.27.6, FFmpeg-5.1.2, gdk-pixbuf-2.42.10, gexiv2-0.14.0, GTK-Doc-1.33.2, JasPer-4.0.0, Little CMS-2.14, libraw-0.21.1, librsvg-2.54.5, libtiff-4.5.0, libwebp-1.3.0, Pango-1.50.12, Poppler-23.02.0, Ruby-3.2.1, SDL2-2.26.3, v4l-utils-1.22.1, Vala-0.56.4, libspiro-20220722, lensfun, libumfpack, LuaJIT, OpenCL (para os testes), MRG e OpenEXR

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/gegl

Instalação do gegl

Se instalar sobre uma versão anterior do gegl, [então] um módulo precisa ser removido. Como o(a) usuário(a) root, execute:

rm -f /usr/lib/gegl-0.4/vector-fill.so

Se "LibRaw-0.21.0" ou superior estiver instalado, [então] a compilação falhará devido a uma mudança na ABI. Corrija o problema emitindo:

sed -e '/shot_select/s/params/raw&/' \
   -i operations/external/raw-load.c

Instale gegl executando os seguintes comandos:

mkdir build &&
cd   build &&

meson --prefix=/usr --buildtype=release .. &&
ninja

Para executar os testes, digite: ninja test. Isso não deveria indicar falhas, mas pulará muitos testes, dependendo das dependências opcionais instaladas no sistema.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

-Ddocs=true: Construa e instale a documentação (exige GTK-Doc-1.33.2).

Conteúdo

Aplicativos Instalados: gegl e gegl-imgcmp
Bibliotecas Instaladas: libgegl-0.4.so, libgegl-npd-0.4.so, libgegl-sc-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 trabalhar com o modelo de dados "XML"

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

libgegl-sc-0.4.so

é a biblioteca "GEGL Seamless Cloning"

giflib-5.2.1

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://sourceforge.net/projects/giflib/files/giflib-5.2.1.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 6f03aee4ebe54ac2cc1ab3e4b0a049e5

  • Tamanho da transferência: 436 KB

  • Espaço em disco estimado exigido: 3,2 MB (com a documentação)

  • Tempo de construção estimado: menos que 0,1 UPC (com a documentação)

Dependências do giflib

Exigida

xmlto-0.0.28

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/giflib

Instalação do giflib

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.1 &&
cp -v -R doc/* /usr/share/doc/giflib-5.2.1

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.1

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"

GLM-0.9.9.8

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/GLM

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-0.9.9.8

Conteúdo

Aplicativo Instalado: Nenhum(a)
Biblioteca Instalada: Nenhum(a)
Diretório Instalado: /usr/include/glm

Graphite2-1.3.14

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Graphite2

Exigida

CMake-3.25.2

Opcionais

FreeType-2.13.0, silgraphite para construir a ferramenta de teste e avaliação comparativa comparerender e, se isso estiver presente, e HarfBuzz-7.0.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.0, Doxygen-1.9.6, texlive-20220321 (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.

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/graphite2

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 -DCMAKE_INSTALL_PREFIX=/usr .. &&
make

Se você deseja construir a documentação, emita:

make docs

Para testar os resultados, emita: make test.

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

-DCMAKE_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-7.0.0

Introdução a Harfbuzz

O pacote HarfBuzz contém um mecanismo de modelagem de texto "OpenType".

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do HarfBuzz

Recomendadas
Opcionais

Cairo-1.17.6 (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.39.2, GTK-Doc-1.33.2, FontTools (módulo Python 3, para a suíte de teste) e ragel

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.

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/harfbuzz

Instalação do HarfBuzz

Instale HarfBuzz executando os seguintes comandos:

mkdir build &&
cd   build &&

meson --prefix=/usr        \
      --buildtype=release  \
      -Dgraphite2=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.

-Dgraphite2=enabled: Essa chave habilita o suporte Graphite2, que é necessário para construir texlive-20220321 ou o LibreOffice-7.5.0.3 com "harfbuzz" do sistema.

-Ddocs=disabled: Se GTK-Doc-1.33.2 estiver instalado, [então] a documentação é 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.0.0

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do JasPer

Exigida

CMake-3.25.2

Recomendada
Opcionais

Freeglut-3.4.0 (necessário para jiv), Doxygen-1.9.6 (necessário para gerar documentação html) e texlive-20220321 ( necessário para regerar a documentação em pdf)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/jasper

Instalação do JasPer

Nota

O tarball jasper-4.0.0.tar.gz extrairá para jasper-version-4.0.0.

Instale JasPer executando os seguintes comandos:

mkdir BUILD &&
cd   BUILD &&

cmake -DCMAKE_INSTALL_PREFIX=/usr    \
      -DCMAKE_BUILD_TYPE=Release     \
      -DCMAKE_SKIP_INSTALL_RPATH=YES \
      -DJAS_ENABLE_DOC=NO            \
      -DCMAKE_INSTALL_DOCDIR=/usr/share/doc/jasper-4.0.0 \
      ..  &&
make

Para testar os resultados, emita: make test.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

-DCMAKE_SKIP_INSTALL_RPATH=YES: Essa opção remove os caminhos de pesquisa da biblioteca incorporada.

-DJAS_ENABLE_DOC=NO: Essa opção desabilita a reconstrução da documentação em PDF se texlive-20220321 estiver instalado.

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.0.0

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-1.19

Introdução a Little CMS

A biblioteca Little CMS é usada por outros aplicativos para fornecer recursos de gerenciamento de cores.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://downloads.sourceforge.net/lcms/lcms-1.19.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 8af94611baf20d9646c7c2c285859818

  • Tamanho da transferência: 927 KB

  • Espaço em disco estimado exigido: 27 MB

  • Tempo de construção estimado: 0,5 UPC

Transferências Adicionais

Dependências do Little CMS

Opcionais

libtiff-4.5.0, libjpeg-turbo-2.1.5.1 e Python-2.7.18 (com SWIG-4.1.1 também)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/lcms

Instalação do Little CMS

Instale Little CMS executando os seguintes comandos:

patch -Np1 -i ../lcms-1.19-cve_2013_4276-1.patch &&

./configure --prefix=/usr --disable-static      &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install &&
install -v -m755 -d /usr/share/doc/lcms-1.19 &&
install -v -m644   README.1ST doc/* \
                    /usr/share/doc/lcms-1.19

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

--with-python: Use esse parâmetro se Python e SWIG estiverem instalados.

Conteúdo

Aplicativos Instalados: icc2ps, icclink, icctrans, wtpt e, opcionalmente, jpegicc, tiffdiff e tifficc
Bibliotecas Instaladas: liblcms.so e o opcional módulo Python "_lcms.so"
Diretório Instalado: /usr/share/doc/lcms-1.19

Descrições Curtas

icc2ps

gera "CRD" ou "CSA" PostScript a partir de perfis "ICC"

icclink

vincula dois ou mais perfis em um perfil único de ligação de dispositivo

icctrans

é uma calculadora de conversão de espaço de cores

jpegicc

é um aplicador de perfil "ICC" para arquivos "JPEG"

tifficc

é um aplicador de perfil "ICC" para arquivos "TIFF"

tiffdiff

é um utilitário de comparação "TIFF"

wtpt

mostra a mídia branca dos perfis, identificando o "locus" do corpo negro

liblcms.so

é usado pelos aplicativos lcms assim como outros aplicativos para fornecer recursos de gerenciamento de cores

Little CMS-2.14

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Little CMS2

Opcionais

libjpeg-turbo-2.1.5.1 e libtiff-4.5.0

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/lcms2

Instalação do Little CMS2

Aplique a correção do(a) desenvolvedor(a) para um problema quebrando "colord":

sed '/BufferSize < TagSize/,+1 s/goto Error/TagSize = BufferSize/' \
   -i src/cmsio0.c

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

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"

libexif-0.6.24

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "libexif"

Opcional (para construir a documentação)

Doxygen-1.9.6 e Graphviz-7.1.0

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libexif

Instalação do "libexif"

Instale libexif executando os seguintes comandos:

./configure --prefix=/usr   \
            --disable-static \
            --with-doc-dir=/usr/share/doc/libexif-0.6.24 &&
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.24.

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Conteúdo

Aplicativos Instalados: Nenhum
Biblioteca Instalada: libexif.so
Diretórios Instalados: /usr/include/libexif e /usr/share/doc/libexif-0.6.24

Descrições Curtas

libexif.so

contém funções usadas para analisar, editar e salvar dados "EXIF"

Libgxps-0.3.2

Introdução a libgxps

O pacote libgxps fornece uma interface para manipular documentos "XPS".

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Libgxps

Exigidas

GTK+-3.24.36, Little CMS-2.14, libarchive-3.6.2, libjpeg-turbo-2.1.5.1, libtiff-4.5.0 e libxslt-1.1.37

Opcionais

git-2.39.2 e GTK-Doc-1.33.2

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libgxps

Instalação do Libgxps

Instale Libgxps executando os seguintes comandos:

mkdir build &&
cd   build &&

meson --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-2.1.5.1

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://downloads.sourceforge.net/libjpeg-turbo/libjpeg-turbo-2.1.5.1.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: aed60d4d776dd5cf00b5a01c609d50f7

  • Tamanho da transferência: 2,2 MB

  • Espaço em disco estimado exigido: 17 MB (adicionar 17 MB para os testes)

  • Tempo de construção estimado: 0,1 UPC (usando paralelismo=4; adicionar 0,2 UPC para os testes)

Dependências do libjpeg-turbo

Exigida

CMake-3.25.2

Recomendadas

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libjpeg-turbo

Instalação do libjpeg-turbo

Instale libjpeg-turbo executando os seguintes comandos:

mkdir build &&
cd   build &&

cmake -DCMAKE_INSTALL_PREFIX=/usr \
      -DCMAKE_BUILD_TYPE=RELEASE  \
      -DENABLE_STATIC=FALSE       \
      -DCMAKE_INSTALL_DOCDIR=/usr/share/doc/libjpeg-turbo-2.1.5.1 \
      -DCMAKE_INSTALL_DEFAULT_LIBDIR=lib  \
      .. &&
make

Para testar os resultados, emita: make test.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

-DWITH_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-2.1.5.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"

libmng-2.0.3

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do libmng

Exigidas

libjpeg-turbo-2.1.5.1 e Little CMS-2.14

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libmng

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
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 a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do libmypaint

Exigida

JSON-C-0.16

Recomendadas
Opcionais

Doxygen-1.9.6 (para criar documentos "XML"), gegl (somente versões 0.3) e gperftools

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libmypaint

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.39

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://downloads.sourceforge.net/libpng/libpng-1.6.39.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: aa1ae92e172417039bda072b702f6326

  • Tamanho da transferência: 1000 KB

  • Espaço em disco estimado exigido: 15 MB (com os testes)

  • Tempo de construção estimado: 0,1 UPC (adicionar 0,5 UPC para os testes)

Transferências Adicionais

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libpng

Instalação do libpng

Se você deseja remendar a "libpng" para suportar arquivos "apng", [então] aplique-o aqui:

gzip -cd ../libpng-1.6.39-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.39 &&
cp -v README libpng-manual.txt /usr/share/doc/libpng-1.6.39

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.39

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.1

Introdução a libraw

Libraw é uma biblioteca para leitura de arquivos "RAW" obtidos a partir de câmeras fotográficas digitais ("CRW/CR2", "NEF", "RAF", "DNG" e outros).

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://www.libraw.org/data/LibRaw-0.21.1.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 2942732de752f46baccd9c6d57823b7b

  • Tamanho da transferência: 1,6 MB

  • Espaço em disco estimado exigido: 31 MB

  • Tempo de construção estimado: 0,2 UPC (Usando paralelismo=4)

Dependências do libraw

Recomendadas

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libraw

Instalação do libraw

Instale libraw executando os seguintes comandos:

autoreconf -fiv             &&
./configure --prefix=/usr    \
            --enable-jpeg    \
            --enable-jasper  \
            --enable-lcms    \
            --disable-static \
            --docdir=/usr/share/doc/libraw-0.21.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

--enable-jpeg: Essa chave habilita o suporte para "jpeg". Remova se você não tiver libjpeg-turbo-2.1.5.1 instalada.

--enable-jasper: Essa chave habilita o suporte para "jasper". Remova se você não tiver JasPer-4.0.0 instalado.

--enable-lcms: Essa chave habilita o suporte para "Little CMS2". Remova se você não tiver Little CMS-2.14 instalado.

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Conteúdo

Nota

Todos os aplicativos 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.1

Descrições Curtas

4channels

gera quatro arquivos "TIFF" a partir de dados "RAW", um arquivo por canal

dcraw_half

emula "dcraw -h" (veja-se a página de manual do DCRAW)

mem_image

emula "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 chamada a "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 chamada a "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 chamada a "dcraw -i [-v]" (veja-se a página de manual do DCRAW)

unprocessed_raw

gera imagem bruta não processada: com pixels mascarados e sem subtração de preto

librsvg-2.54.5

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do librsvg

Exigidas

Cairo-1.17.6, gdk-pixbuf-2.42.10, Pango-1.50.12 e rustc-1.67.1

Recomendadas
Opcionais

docutils-0.19 (para páginas de manual), Gi-DocGen-2023.1 (para documentação) e Fontes do Xorg (para testes)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/librsvg

Instalação do librsvg

Instale librsvg executando os seguintes comandos:

./configure --prefix=/usr   \
            --enable-vala    \
            --disable-static \
            --docdir=/usr/share/doc/librsvg-2.54.5 &&
make

Para testar os resultados, emita: make -k check. Durante o teste, alguns binários são reconstruídos com um nível diferente de depuração, de forma que você deveria executar make novamente depois que os testes estiverem completos para garantir que tudo esteja pronto para ser instalado.

Agora, como o(a) usuário(a) root:

make install

Nota

Se você instalou o pacote em seu sistema usando um 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

--enable-vala: Essa chave habilita a construção das ligações "Vala". Remova essa chave se você não tiver Vala-0.56.4 instalado.

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

--disable-introspection: Use essa chave se você não tiver instalado Gobject Introspection.

--disable-gtk-doc: Essa chave evita construir a documentação da API, mesmo se Gi-DocGen-2023.1 (apesar do nome da opção) estiver disponível.

Conteúdo

Aplicativos Instalados: rsvg-convert
Biblioteca Instalada: librsvg-2.so
Diretórios Instalados: /usr/include/librsvg-2.0 e /usr/share/doc/librsvg-2.54.5

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 a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libspiro

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
Biblioteca Instalada: libspiro.so
Diretórios Instalados: Nenhum

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.5.0

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://download.osgeo.org/libtiff/tiff-4.5.0.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: db9e220a1971acc64487f1d51a20dcaa

  • Tamanho da transferência: 3,7 MB

  • Espaço em disco estimado exigido: 59 MB (com os testes)

  • Tempo de construção estimado: 0,2 UPC (com os testes)

Dependências do libtiff

Recomendada
Opcionais

Freeglut-3.4.0 (exigido para tiffgt), libjpeg-turbo-2.1.5.1, sphinx-6.1.3, libwebp-1.3.0, JBIG-KIT e LERC

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libtiff

Instalação do libtiff

Instale libtiff executando os seguintes comandos:

mkdir -p libtiff-build &&
cd      libtiff-build &&

cmake -DCMAKE_INSTALL_DOCDIR=/usr/share/doc/libtiff-4.5.0 \
      -DCMAKE_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/share/doc/tiff-4.5.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.3.0

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do libwebp

Recomendadas
Opcionais

Freeglut-3.4.0 e giflib-5.2.1

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libwebp

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 a mypaint-brushes

O pacote mypaint-brushes contém pincéis usados por pacotes que usam a "libmypaint".

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do mypaint-brushes

Exigidas ao tempo de execução

libmypaint-1.6.1

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/mypaint-brushes

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.23

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://releases.pagure.org/newt/newt-0.52.23.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 70aefeff0f3e9444a69dbdae9a931442

  • Tamanho da transferência: 173 KB

  • Espaço em disco estimado exigido: 5,5 MB

  • Tempo de construção estimado: menos que 0,1 UPC

Dependências do Newt

Exigidas

popt-1.19 e slang-2.3.3

Recomendada

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/newt

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.11 &&
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.11: 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.11/site-packages/_snack.so
Diretórios Instalados: Nenhum

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.7.0

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

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.25.2 e UnZip-6.0

Recomendadas
Opcionais

apache-ant-1.10.13, Doxygen-1.9.6, Java-19.0.2, Python-2.7.18, blas, Cuda, Eigen, OpenEXR, GDAL, lapack, libdc1394, NumPy, Threading Building Blocks (TBB) e VTK - The Visualization Toolkit,

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/opencv

Instalação do opencv

Se você baixou os módulos opcionais, [então] desempacote-os agora:

tar -xf ../opencv_contrib-4.7.0.tar.gz

Instale opencv executando os seguintes comandos:

mkdir build &&
cd   build &&

cmake -DCMAKE_INSTALL_PREFIX=/usr      \
      -DCMAKE_BUILD_TYPE=Release       \
      -DENABLE_CXX11=ON                \
      -DBUILD_PERF_TESTS=OFF           \
      -DWITH_XINE=ON                   \
      -DBUILD_TESTS=OFF                \
      -DENABLE_PRECOMPILED_HEADERS=OFF \
      -DCMAKE_SKIP_RPATH=ON            \
      -DBUILD_WITH_DEBUG_INFO=OFF      \
      -Wno-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

-DWITH_XINE=ON: Essa opção instrui o procedimento "make" a usar xine-lib-1.2.13.

-DENABLE_PRECOMPILED_HEADERS=OFF: Essa opção é necessária para compatibilidade com "gcc-6.1" e posteriores.

-DOPENCV_EXTRA_MODULES_PATH=../opencv_contrib-4.7.0/modules: instrui o sistema de construção a construir módulos adicionais.

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.11/site-packages/cv2, /usr/share/licenses/opencv4, /usr/share/opencv4 e /usr/share/java/opencv4

OpenJPEG-2.5.0

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do OpenJPEG

Exigida

CMake-3.25.2

Opcionais

Little CMS-2.14, libpng-1.6.39, libtiff-4.5.0 e Doxygen-1.9.6 (para construir a documentação da API)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/openjpeg2

Instalação do OpenJPEG

Instale OpenJPEG executando os seguintes comandos:

mkdir -v build &&
cd      build &&

cmake -DCMAKE_BUILD_TYPE=Release \
      -DCMAKE_INSTALL_PREFIX=/usr \
      -DBUILD_STATIC_LIBS=OFF .. &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install &&

pushd ../doc &&
  for man in man/man?/* ; do
     install -v -D -m 644 $man /usr/share/$man
  done
popd

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.42.2

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://www.cairographics.org/releases/pixman-0.42.2.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: a0f6ab8a1d8e0e2cd80e935525e2a864

  • Tamanho da transferência: 940 KB

  • Espaço em disco estimado exigido: 30 MB (com os testes)

  • Tempo de construção estimado: 0,5 UPC (com os testes)

Dependências do Pixman

Opcionais

GTK+-2.24.33 e libpng-1.6.39 (para testes e demonstrações)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/pixman

Instalação do Pixman

Instale Pixman executando os seguintes comandos:

mkdir build &&
cd   build &&

meson --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
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-23.02.0

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://poppler.freedesktop.org/poppler-23.02.0.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: ce7eef12c40dcd78998a43422c2c71ef

  • Tamanho da transferência: 1,8 MB

  • Espaço em disco estimado exigido: 89 MB (com a biblioteca Qt5 e os testes)

  • Tempo de construção estimado: 0,6 UPC (com paralelismo=4, biblioteca Qt5 e os testes)

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.25.2, Fontconfig-2.14.2 e gobject-introspection-1.74.0

Recomendadas
Opcionais

cURL-7.88.1, gdk-pixbuf-2.42.10, git-2.39.2 (para transferir arquivos de teste), GTK-Doc-1.33.2, GTK+-3.24.36, libtiff-4.5.0, Qt-5.15.8 (exigido para suporte PDF no Okular-22.12.2) e Qt-6.1 ou posterior.

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/poppler

Instalação do Poppler

Instale Poppler executando os seguintes comandos:

mkdir build                        &&
cd    build                         &&

cmake  -DCMAKE_BUILD_TYPE=Release   \
       -DCMAKE_INSTALL_PREFIX=/usr  \
       -DTESTDATADIR=$PWD/testfiles \
       -DENABLE_UNSTABLE_API_ABI_HEADERS=ON \
       ..                           &&
make

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 make test.

Agora, como o(a) usuário(a) root:

make install

Para instalar a documentação, execute os seguintes comandos como root:

install -v -m755 -d          /usr/share/doc/poppler-23.02.0 &&
cp -vr ../glib/reference/html /usr/share/doc/poppler-23.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

-DCMAKE_BUILD_TYPE=Release: Essa chave é usada para aplicar um nível mais alto de otimização à compilação.

-DTESTDATADIR=$PWD/testfiles: Informa aos aplicativos de teste onde os arquivos auxiliares estão localizados.

-DENABLE_UNSTABLE_API_ABI_HEADERS=ON: Instala alguns cabeçalhos antigos Xpdf exigidos por certos aplicativos.

-DENABLE_GTK_DOC=ON: Use esse parâmetro se o "GTK-Doc" estiver instalado e você desejar reconstruir e instalar a documentação da API.

-DENABLE_BOOST=OFF: Use esse parâmetro se você não tiver instalado o boost (a estrutura de retaguarda "Splash" para "Qt5" recomenda o "boost").

LC_ALL=en_US.UTF-8 make test: Executa a suíte de teste. A variável de ambiente "LC_ALL=en_US.UTF-8" só é necessária se o "locale" 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 libpoppler-qt5.so
Diretórios Instalados: /usr/include/poppler, /usr/share/poppler e /usr/share/doc/poppler-23.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-qt5.so

é uma biblioteca invólucro usada para interfacear as funções de renderização de "PDF" com Qt5

Potrace-1.16

Introdução a 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 adequadamente usando uma plataforma LFS 11.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 os testes)

Dependências do Potrace

Recomendada

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/potrace

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.2.0

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://github.com/qpdf/qpdf/releases/download/v11.2.0/qpdf-11.2.0.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 8fa1fc5d8b99e41c4f9d0760d6733756

  • Tamanho da transferência: 18 MB

  • Espaço em disco estimado exigido: 249 MB (adicionar 2 MB para os testes)

  • Tempo de construção estimado: 0,5 UPC (usando paralelismo=4; adicionar 0,5 UPC para testes)

Dependências do Qpdf

Exigida

libjpeg-turbo-2.1.5.1

Opcionais

fop-2.8, GnuTLS-3.8.0 e sphinx-6.1.3

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/qpdf

Instalação do Qpdf

Instale Qpdf executando os seguintes comandos:

mkdir build &&
cd   build &&

cmake -DCMAKE_INSTALL_PREFIX=/usr \
      -DCMAKE_BUILD_TYPE=Release  \
      -DBUILD_STATIC_LIBS=OFF     \
      -DCMAKE_INSTALL_DOCDIR=/usr/share/doc/qpdf-11.2.0 \
      .. &&
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.2.0

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 a 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 adequadamente usando uma plataforma LFS 11.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 os testes

Dependências do Qrencode

Recomendada
Opcionais

Doxygen-1.9.6 para gerar documentação e SDL2-2.26.3 para os testes

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/qrencode

Instalação do qrencode

Instale libqrencode executando os seguintes comandos:

./configure --prefix=/usr &&
make

Se instalou Doxygen-1.9.6, [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.26.3.

--without-tools: Essa opção evita construir o executável qrencode, removendo a necessidade da libpng-1.6.39.

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 a sassc

SassC é um invólucro em torno da "libsass", uma linguagem de pré-processador "CSS".

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Transferências Adicionais

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/sassc

Instalação do sassc

Primeiro, construa a biblioteca:

tar -xf ../libsass-3.6.5.tar.gz &&
pushd libsass-3.6.5 &&

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"

woff2-1.0.2

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do WOFF2

Exigidas

Brotli-1.0.9 e CMake-3.25.2

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/woff2

Instalação do WOFF2

Instale WOFF2 executando os seguintes comandos:

mkdir out                          &&
cd    out                           &&
cmake -DCMAKE_INSTALL_PREFIX=/usr \
      -DCMAKE_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
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"

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.18

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Asciidoctor

Exigida

Ruby-3.2.1

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/asciidoctor

Instalação do Asciidoctor

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.18.gem &&
install -vm644 man/asciidoctor.1 /usr/share/man/man1

Conteúdo

Aplicativos Instalados: asciidoctor
Bibliotecas Instaladas: Nenhuma
Diretórios Instalados: /usr/lib/ruby/gems/3.2.0/gems/asciidoctor-2.0.18 e /usr/lib/ruby/gems/3.2.0/doc/asciidoctor-2.0.18

Descrições Curtas

asciidoctor

converte arquivos fonte "AsciiDoc" em "HTML", "DocBook" e outros formatos

Bogofilter-1.2.5

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Bogofilter

Exigida

Base de Dados Berkeley-5.3.28

Recomendadas
Opcionais

lmdb-0.9.29, SQLite-3.40.1, xmlto-0.0.28, QDBM e TokyoCabinet

Nota

Se você não instalar o pacote Gsl-2.7.1 recomendado, então uma versão enviada estaticamente vinculada será usada.

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/bogofilter

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 &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--with-database=: Essa chave te permite mudar a base de dados padrão de "db" para "qdbm", "sqlite3" ou "tokyocabinet".

Conteúdo

Aplicativos Instalados: bf_compact, bf_copy, bf_tar, bogofilter, bogolexer, bogotune, bogoupgrade e bogoutil
Bibliotecas Instaladas: Nenhuma
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 a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/compface

Instalação do Compface

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.{so,a}
Diretórios Instalados: Nenhum

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.{so,a}

permite que os algoritmos de compressão e descompressão sejam usados em outros aplicativos, tais como "MTAs"

desktop-file-utils-0.26

Introdução a "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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "Desktop File Utils"

Exigida

GLib-2.74.5

Opcional

Emacs-28.2

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/desktop-file-utils

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 --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.4.4

Introdução a dos2unix

O pacote dos2unix contém um conversor de formato de texto de qualquer para qualquer.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://downloads.sourceforge.net/dos2unix/dos2unix-7.4.4.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 6ac049a4eb878bbc57019f731a28f7b5

  • Tamanho da transferência: 896 KB

  • Espaço em disco estimado exigido: 8,1 MB (com os testes)

  • Tempo de construção estimado: menos que 0,1 UPC (com os testes)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/dos2unix

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: Nenhuma
Diretórios Instalados: /usr/share/doc/dos2unix-7.4.4

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"

Graphviz-7.1.0

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Graphviz

Nota

O uso básico do Graphviz não precisa de nenhuma biblioteca além das encontradas no livro LFS. O mecanismo de renderização central dele permite gerar vários formatos gráficos, tais como "Postscript", "SVG", "VML", ".fig" e "Tk". Esses formatos podem ser convertidos para quase qualquer outro formato usando, por exemplo, ferramentas originárias do ImageMagick-7.1.0-61. As dependências abaixo adicionam a capacidade de gerar imagens gráficas em formato "bitmap", exibir a imagem gráfica na tela, editar um gráfico visualizando a imagem resultante diretamente ou visualizar gráficos grandes. Uma vez que Graphviz é uma dependência de vários outros pacotes neste livro, é sugerido primeiro construí-lo sem quaisquer dependências, então reconstruí-lo quando você tiver construído pacotes suficientes para atender às suas necessidades.

Opcional, para várias saídas de "bitmap"

Pango-1.50.12, com Cairo-1.17.6, Bibliotecas do Xorg, Fontconfig-2.14.2 e libpng-1.6.39, para gerar imagens nos formatos "bitmap SVG", "postscript", "PNG" e "PDF" ou exibir a imagem na tela. A saída gerada "PNG" é exigida para construir gegl-0.4.40

Adicionar GTK+-2.24.33 com libjpeg-turbo-2.1.5.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.3.0 (o suporte a "WebP" é considerado experimental), DevIL, libLASi e glitz

Opcional, para carregar imagens gráficas que podem ser exibidas dentro dos nós de um gráfico

libgs.so originária de ghostscript-10.00.0, librsvg-2.54.5 e Poppler-23.02.0

Opcional, para construir mais ferramentas

Freeglut-3.4.0 (com libglade-2.6.4, GtkGLExt e libGTS, para construir o visualizador de gráfico grande smyrna, que é considerado experimental) e Qt-5.15.8 (para construir o editor gráfico gvedit).

Opcional (para construir ligações de idioma)

SWIG-4.1.1 (SWIG precisa estar instalado ou nenhuma ligação será construída), GCC-12.2.0 (para o compilador "go"), Guile-3.0.9, OpenJDK-19.0.2, Lua-5.4.4, PHP-8.2.3, Ruby-3.2.1, Tk-8.6.13, 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.00.0 (para o comando ps2pdf)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/graphviz

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-7.1.0

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-19.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.3.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.11,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-7.1.0 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.33.2

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do GTK-Doc

Exigidas

docbook-xml-4.5, docbook-xsl-nons-1.79.2, itstool-2.0.7 e libxslt-1.1.37

Recomendada
Opcionais

Para testes: dblatex ou fop-2.8 (suporte a "PDF" "XML"), GLib-2.74.5, Which-2.21 e módulos "Python" lxml-4.9.2, parameterized e yelp-tools

Nota

Os módulos opcionais "Python" acima podem ser facilmente instalados com o comando pip3.

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/gtk-doc

Instalação do GTK-Doc

Instale GTK-Doc executando os seguintes comandos:

autoreconf -fiv          &&
./configure --prefix=/usr &&
make

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:

make install

Para testar os resultados, emita: make check. 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: Nenhuma
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.4

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): http://www.andre-simon.de/zip/highlight-4.4.tar.bz2

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: e61056f9cfe5f865ea7f87c74f05d22f

  • Tamanho da transferência: 1,4 MB

  • Espaço em disco estimado exigido: 31 MB (com a "GUI")

  • Tempo de construção estimado: 0,3 UPC (Usando paralelismo=4; com a "GUI")

Dependências do "Highlight"

Exigidas

Boost-1.81.0 e Lua-5.4.4

Opcionais

Qt-5.15.8 (para construir a estrutura de interação direta "GUI")

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/highlight

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 de interação direta "GUI" Qt5, execute o seguinte comando:

make doc_dir=/usr/share/doc/highlight-4.4/ 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.4/ 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.4/: instala a documentação do "highlight" em um diretório versionado. Esse comando 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.4 e /usr/share/highlight

Descrições Curtas

highlight

é um código-fonte universal para conversor de texto formatado

highlight-gui

é a interface Qt5 para highlight.

ibus-1.5.27

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://github.com/ibus/ibus/releases/download/1.5.27/ibus-1.5.27.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 3590d33fbd84e041acb75fcee818b504

  • Tamanho da transferência: 3,6 MB

  • Espaço em disco estimado exigido: 66 MB (adicionar 3 MB para os testes)

  • Tempo de construção estimado: 0,2 UPC (Usando paralelismo=4; adicionar 0,6 UPC para os testes)

Transferência Opcional

Dependências do ibus

Exigidas

DConf-0.40.0, ISO Codes-4.12.0 e Vala-0.56.4

Recomendadas
Opcionais

GTK+-3.24.36 (para construir o módulo "IM" para "it"), GTK-4.8.3 (para construir o módulo "IM" para "it"), D-Bus Python-1.3.2 e PyGObject-3.42.2 (ambos para construir a biblioteca de suporte a "Python"), GTK-Doc-1.33.2 e libxkbcommon-1.5.0, Wayland-1.21.0 (ambos para construir os aplicativos de suporte a "Wayland") e EmojiOne

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/ibus

Instalação do ibus

Se a base de dados opcional de caracteres "Unicode" foi baixada, [então] instale-a agora como o(a) usuário(a) root:

mkdir -p               /usr/share/unicode/ucd &&
unzip -uo ../UCD.zip -d /usr/share/unicode/ucd

Nota

Certifique-se de remover também o "--disable-unicode-dict" na etapa "configure" abaixo.

Corrija um problema com entradas de esquema obsoletas:

sed -i 's@/desktop/ibus@/org/freedesktop/ibus@g' \
   data/dconf/org.freedesktop.ibus.gschema.xml

Instale ibus executando os seguintes comandos:

./configure --prefix=/usr         \
            --sysconfdir=/etc      \
            --disable-python2      \
            --disable-emoji-dict   \
            --disable-unicode-dict &&
rm -f tools/main.c                 &&
make

Para testar os resultados, emita: make -k check. O teste chamado "ibus-compose" falha porque usa alguns "locales" não instalados no LFS. O teste chamado "ibus-keypress" é conhecido por falhar em um ambiente de área de trabalho baseado em "Wayland". O teste chamado "xkb-latin-layouts" é conhecido por falhar com um lançamento recente do "xkeyboard-config". O teste chamado "test-override-ibus.py" é conhecido por falhar se a biblioteca de suporte do "Python" estiver habilitada.

Agora, como o(a) usuário(a) root:

make install &&
gzip -dfv /usr/share/man/man{{1,5}/ibus*.gz,5/00-upstream-settings.5.gz}

Explicações do Comando

--disable-emoji-dict: Essa chave desabilita o uso de dicionários de emoticons. Omita se você instalou o pacote opcional.

--disable-unicode-dict: Essa chave desabilita o uso de dicionários "Unicode". Omita se você instalou a base de dados opcional de caracteres "Unicode".

rm -f tools/main.c: Esse comando remove um arquivo gerado que não foi removido quando do empacotamento.

--disable-gtk2: Essa chave desabilita a construção do módulo "IM" GTK+ 2. Use-a se você não tiver instalado o GTK+ 2.

--enable-gtk4: Essa chave habilita construir o módulo "IM" GTK 4. Use-a se você tiver instalado o GTK 4.

--enable-python-library: Essa chave habilita construir a biblioteca de suporte Python. Use-a se tiver instalado as dependências opcionais.

--enable-wayland: Essa chave habilita construir os aplicativos de suporte Wayland. Use-a se você tiver instalado as dependências opcionais.

--with-python=python3: Essa chave induz o script configure a procurar por Python 3. Use-a se você quiser construir a biblioteca de suporte do Python 3 juntamente com a do Python 2.

--enable-gtk-doc: Use esse parâmetro se GTK-Doc estiver instalado e você desejar reconstruir e instalar a documentação da API.

gzip -dfv ...: Descomprima as páginas de manual instaladas de acordo com outras páginas de manual.

Configurando Ibus

Se "GTK+-3" ou "GTK+-2" estiverem instalados e --disable-gtk{3,2} não forem usados, [então] o módulo "ibus" do "IM" para "GTK+-3" ou "GTK+-2" será instalado. Como o(a) usuário(a) root, atualize um arquivo de "cache" do "GTK+-3" ou "GTK+-2", 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". Para "GTK+-2", use gtk-query-immodules-2.0 em vez de gtk-query-immodules-3.0. 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.0-61

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://www.imagemagick.org/archive/releases/ImageMagick-7.1.0-61.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: f9973657738b5c970325e97f198b9977

  • Tamanho da transferência: 9,9 MB

  • Espaço em disco estimado exigido: 192 MB (com as dependências típicas; adicionar 20 MB para as verificações)

  • Tempo de construção estimado: 0,8 UPC (com as dependências típicas; adicionar 1,9 UPC para as 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, [então] você pode baixá-la a partir do servidor de pacotes do BLFS na Oregon State University: ftp://ftp.osuosl.org/pub/blfs/conglomeration/ImageMagick/.

Dependências do ImageMagick

Recomendada

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

"Clang" originário de LLVM-15.0.7, Cups-2.4.2, cURL-7.88.1, FFmpeg-5.1.2, fftw-3.3.10, p7zip-17.04 ("LZMA"), SANE-1.0.32, Wget-1.21.3, xdg-utils-1.1.3, xterm-379, Dmalloc, Electric Fence e PGP ou GnuPG-2.4.0 (você terá que fazer alguns ajustes para usar o GnuPG), Profiles

Bibliotecas Opcionais de Gráficos

JasPer-4.0.0, Little CMS-1.19 ou Little CMS-2.14, libgxps-0.3.2, libjpeg-turbo-2.1.5.1, libpng-1.6.39, libraw-0.21.1 ("RAW_R"), librsvg-2.54.5, libtiff-4.5.0, libwebp-1.3.0, OpenJPEG-2.5.0, Pango-1.50.12, DjVuLibre, FlashPIX ("libfpx"), FLIF, JBIG-KIT, libheif com libde265 (ambos necessários se converter imagens "heic" do "macOS"), libjxl, libraqm, Liquid Rescale, OpenEXR e RALCGM (ou ralcgm)

Utilitários Opcionais Gráficos

Fontes "Dejavu", ghostscript-10.00.0, Gimp-2.10.32, Graphviz-7.1.0, Inkscape-1.2.2, Blender, corefonts, GhostPCL, Gnuplot, POV-Ray e Radiance

Ferramentas Opcionais de Conversão

Enscript-1.6.6, Potrace-1.16, texlive-20220321 (ou install-tl-unx) AutoTrace, Utilitários de linha de comando GeoExpress, também conhecidos como utilitários MrSID (pacote binário), hp2xx, libwmf, UniConvertor, ufraw (para arquivos "dng"; veja-se https://imagemagick.org/script/formats.php para algumas chaves especiais) e Utah Raster Toolkit (ou URT-3.1b)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/imagemagick

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.0 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 de Helvetica originário de Ghostscript Standard Fonts, que são opcionalmente instaladas em ghostscript-10.00.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-gslib: Habilita o suporte para usar a biblioteca compartilhada Ghostscript.

--with-rsvg: Habilita o suporte para usar a biblioteca librsvg.

--with-autotrace: Habilita o suporte para usar a biblioteca Autotrace.

--with-wmf: Habilita o suporte para usar a biblioteca libwmf.

--with-gvc: Habilita o suporte para usar GraphViz.

--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.0, /usr/lib/perl5/site_perl/5.36/{,auto}/Image/Magick, /usr/share/doc/ImageMagick-7.1.0 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

converter entre formatos de imagem, bem como redimensionar uma imagem, desfocar, cortar, remover manchas, pontilhar, desenhar, virar, juntar, re-amostrar e muito mais

Magick{++,Core,Wand}-config

mostra informações a respeito das versões instaladas das bibliotecas 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 a leitura, manipulação e gravação de 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 que o pacote estiver 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.12.0

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/iso-codes

Instalação do ISO Codes

O diretório é chamado iso-codes-4.12.0.

Instale ISO Codes executando os seguintes comandos:

./configure --prefix=/usr &&
make

Para testar os resultados, emita: make check.

Nota

Se você instalar ISO Codes sobre uma versão instalada anterior, [então] a etapa de instalação falhará ao criar alguns links simbólicos. Para a finalidade de atualizá-los corretamente, execute:

sed -i '/^LN_S/s/s/sfvn/' */Makefile

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/iso-codes, /usr/share/xml/iso-codes

lsof-4.95.0

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do lsof

Exigida

libtirpc-1.3.3

Opcionais

Nmap-7.93 (com um link simbólico nc apontando para ncat em /usr/bin; usado em testes)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/lsof

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   [CONFIG_POSIX_MQUEUE]

Instalação do lsof

Instale lsof executando os seguintes comandos:

./Configure -n linux &&
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.93 seja instalado com um link simbólico /usr/bin/nc apontando para ncat.

make check

Um teste, "case-20-ux-socket-endpoint", é conhecido por falhar. Outro teste possivelmente falhe se os testes forem executados em um script.

Agora, como o(a) usuário(a) root:

install -v -m4755 -o root -g root lsof /usr/bin &&
install -v lsof.8 /usr/share/man/man8

Explicações do Comando

./Configure -n linux: Evita verificações de "AFS", personalização e inventário e usa o dialeto linux.

install -m4755 ...: lsof deveria estar suid root para permitir que usuários(as) listem todos os arquivos. Isso possivelmente seja uma ameaça à segurança em alguns sistemas. Nesse caso mude para -m755 e use sudo para executar o aplicativo.

Conteúdo

Aplicativo Instalado: lsof
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: Nenhum(a)

Descrições Curtas

lsof

lista arquivos abertos para processos em execução

mandoc-1.14.6

Introdução a mandoc

"mandoc" é um utilitário para formatar páginas de manual.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://mandoc.bsd.lv/snapshots/mandoc-1.14.6.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: f0adf24e8fdef5f3e332191f653e422a

  • Tamanho da transferência: 684 KB

  • Espaço em disco estimado exigido: 22 MB (com os testes)

  • Tempo de construção estimado: menos que 0,1 UPC (com os testes)

Instalação do mandoc

Muitos utilitários fornecidos pelo mandoc conflitam com Man-DB no LFS. Construa somente o comando mandoc:

./configure &&
make mandoc

Para testar o pacote, emita: make regress.

Agora, como o(a) usuário(a) root:

install -vm755 mandoc  /usr/bin &&
install -vm644 mandoc.1 /usr/share/man/man1

Conteúdo

Aplicativos Instalados: mandoc

Descrições Curtas

mandoc

Formata páginas de manual

pinentry-1.2.1

Introdução a PIN-Entry

O pacote PIN-Entry contém uma coleção de diálogos simples de entrada de "PIN" ou frase secreta que utiliza o protocolo "Assuan" conforme descrito em Äprojeto egípcio. 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 (baseado em texto) e para os kits comuns de ferramentas GTK e Qt.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do PIN-Entry

Exigidas

libassuan-2.5.5 e libgpg-error-1.46

Opcionais

Emacs-28.2, FLTK-1.3.8, Gcr-3.41.1, GTK+-2.24.33, libsecret-0.20.5, Qt-5.15.8 e efl

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/pinentry

Instalação do PIN-Entry

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-gtk2=yes/no: Padrão é "yes". Mesmo se outros pinentry-* estiverem instalados, pinentry será um link simbólico para pinentry-gtk-2.

--enable-pinentry-gnome3=yes/no: Padrão é "yes". Atualmente, ele usa Gcr para o diálogo "pinentry".

--enable-pinentry-tty: Padrão é "maybe".

Conteúdo

Aplicativos Instalados: pinentry (link simbólico), pinentry-curses, pinentry-emacs, pinentry-fltk, pinentry-gnome3, pinentry-gtk-2, 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-gtk-2

é um aplicativo auxiliar GTK+2 do PIN-Entry

pinentry-qt

é um aplicativo auxiliar Qt4 ou 5 do PIN-Entry

pinentry-tty

é um aplicativo auxiliar tty do PIN-Entry

Rep-gtk-0.90.8.3

Introdução a Rep-gtk

O pacote rep-gtk contém uma ligação Lisp e GTK. Isso é útil para estender as bibliotecas GTK-2 e GDK com Lisp. Começando em rep-gtk-0.15, o pacote contém as ligações para GTK e usa as mesmas instruções. Ambas podem ser instaladas, se necessário.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Rep-gtk

Exigidas

GTK+-2.24.33 e librep-0.92.7

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/rep-gtk

Instalação do Rep-gtk

Instale rep-gtk executando os seguintes comandos:

./autogen.sh --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
Bibliotecas Instaladas: Ligações "Lisp"
Diretório Instalado: /usr/include/rep-gtk e /usr/lib/rep/gui

Descrições Curtas

Ligações Lisp

são bibliotecas armazenadas em /usr/lib/rep/gui/ que auxiliam a comunicação entre "Lisp" e as bibliotecas GTK

Screen-4.9.0

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Screen

Opcionais

Linux-PAM-1.5.2

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/screen

Instalação do Screen

Instale Screen executando os seguintes comandos:

sh autogen.sh                                &&
./configure --prefix=/usr                     \
            --infodir=/usr/share/info         \
            --mandir=/usr/share/man           \
            --with-socket-dir=/run/screen     \
            --with-pty-group=5                \
            --with-sys-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

--with-socket-dir=/run/screen: Essa opção coloca os soquetes por usuário em um local padrão.

--with-sys-screenrc=/etc/screenrc: Essa opção coloca o arquivo global "screenrc" /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-4.9.0
Bibliotecas Instaladas: Nenhuma
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.2

Introdução a "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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Transferências Adicionais

Dependências do "Shared Mime Info"

Exigidas

GLib-2.74.5 e libxml2-2.10.3

Opcionais

xmlto-0.0.28

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/shared-mime-info

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 --prefix=/usr --buildtype=release -Dupdate-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.

-Dupdate-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: Nenhuma
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 a Sharutils

O pacote Sharutils contém utilitários que conseguem criar arquivamentos "shell".

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/sharutils

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

telepathy-mission-control-5.16.6

Introdução a "Telepathy Mission Control"

Telepathy Mission Control é um gerenciador de contas e despachante de canal para a estrutura Telepathy, permitindo que interfaces de usuário(a) e outros clientes compartilhem conexões com serviços de comunicação em tempo real sem conflitos.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "Telepathy Mission Control"

Exigidas

telepathy-glib-0.24.2

Recomendadas
Opcionais

D-Bus Python-1.3.2 (para os testes torcidos), GTK-Doc-1.33.2, UPower-1.90.0 e Twisted (para os testes torcidos)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/telepathy-mission-control

Instalação do "Telepathy Mission Control"

Instale Telepathy Mission Control 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

PYTHON=python3: evita usar "Python2" se ele estiver instalado.

--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: mc-tool, mc-wait-for-name e mission-control-5 (executável de biblioteca)
Bibliotecas Instaladas: libmission-control-plugins.so
Diretórios Instalados: /usr/include/mission-control-5.5 e /usr/share/gtk-doc/html/mission-control-plugins

Descrições Curtas

mc-tool

é uma ferramenta de linha de comando usada para manipular contas do "Mission Control"

mc-wait-for-name

espera por um nome de barramento "D-Bus" que será fornecido automaticamente pela sessão da área de trabalho

mission-control-5

é um serviço D-Bus que executa no barramento de sessão para implementar os serviços "AccountManager" e "ChannelDispatcher" descritos na especificação "D-Bus" do Telepathy

libmission-control-plugins.so

contém as funções de "API" de "plugin" do Telepathy Mission Control

tidy-html5-5.8.0

Introdução a "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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "Tidy HTML5"

Exigida

CMake-3.25.2

Recomendada

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/tidy

Instalação do "Tidy HTML5"

Instale Tidy HTML5 executando os seguintes comandos:

cd build/cmake &&

cmake -DCMAKE_INSTALL_PREFIX=/usr \
      -DCMAKE_BUILD_TYPE=Release  \
      -DBUILD_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

-DCMAKE_BUILD_TYPE=Release: Essa chave é usada para construir a biblioteca de lançamento sem nenhuma "declaração" de depuração no código.

-DBUILD_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 a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/time

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.1.0

Introdução a "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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://mama.indstate.edu/users/ice/tree/src/tree-2.1.0.tgz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 50aa5cdb28df6340ef67a3a3ec953ffc

  • Tamanho da transferência: 60 KB

  • Espaço em disco estimado exigido: 524 KB

  • Tempo de construção estimado: menos que 0,1 UPC

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/tree

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 &&
chmod -v 644 /usr/share/man/man1/tree.1

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.11

Introdução a "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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "unixODBC"

Opcionais

Mini SQL e Pth-2.0.7

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/unixodbc

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.11 &&
cp      -v -R doc/* /usr/share/doc/unixODBC-2.3.11

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.11, 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.11

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-user-dirs-0.18

Introdução a "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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/xdg-user-dirs

Instalação do "Xdg-user-dirs"

Instale xdg-user-dirs 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

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.

AccountsService-22.08.8

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "AccountsService"

Exigida

Polkit-122

Recomendadas
Opcionais

GTK-Doc-1.33.2 e xmlto-0.0.28

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/accountsservice

Instalação do "AccountsService"

Instale AccountsService executando os seguintes comandos:

mkdir build &&
cd build &&

meson --prefix=/usr      \
      --buildtype=release \
      -Dadmin_group=adm   \
      .. &&
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.

-Dadmin_group=adm: Essa chave configura o grupo para contas de administrador(a).

-Ddocbook=true: Essa chave habilita criar a documentação da "API" da interface "D-Bus".

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

Unidade do "systemd"

Para iniciar o processo de segundo plano accounts-daemon na inicialização, habilite a unidade do systemd instalada anteriormente executando o seguinte comando como o(a) usuário(a) root:

systemctl enable accounts-daemon

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 a "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).

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.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

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/acpid

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 seguinte breve exemplo suspenderá o sistema quando a tampa do "laptop" for fechada (exige pm-utils-1.4.1):

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

Infelizmente, nem todos os computadores rotulam os eventos "ACPI" da mesma maneira. Para determinar como seus 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.

Soquete do Systemd

Para iniciar o processo de segundo plano acpid na inicialização, instale a unidade do "systemd" a partir do pacote blfs-systemd-units-20220720 executando o seguinte comando como o(a) usuário(a) root:

make install-acpid

Nota

Esse pacote usa ativação baseada em soquete e será iniciado quando algo precisar. Nenhum arquivo de unidade independente é fornecido para esse pacote.

Conteúdo

Aplicativos Instalados: acpid, acpi_listen e kacpimon
Bibliotecas Instaladas: Nenhuma
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 a "at"

O pacote at fornece execução de tarefa atrasada e processamento em lote. Ele é exigido para conformidade com o "Linux Standards Base" (LSB).

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.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"

Exigida

Um MTA

Opcionais

Linux-PAM-1.5.2

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/at

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       \
            SENDMAIL=/usr/sbin/sendmail       \
            --with-jobdir=/var/spool/atjobs   \
            --with-atspool=/var/spool/atspool \
            --with-systemdsystemunitdir=/lib/systemd/system &&
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"
# Início /etc/pam.d/atd

auth required pam_unix.so
account required pam_unix.so
password required pam_unix.so
session required pam_unix.so

# Fim /etc/pam.d/atd
EOF

Unidade do systemd

Para iniciar o processo de segundo plano atd na inicialização, habilite a unidade do systemd instalada anteriormente executando o seguinte comando como o(a) usuário(a) root:

systemctl enable atd

Conteúdo

Aplicativos Instalados: at, atd, atq (link simbólico), atrm (link simbólico), atrun e batch
Bibliotecas Instaladas: Nenhuma
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.8

Introdução a "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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "Autofs"

Exigidas

libtirpc-1.3.3 e rpcsvc-proto-1.4.3

Opcionais

nfs-utils-2.6.2, libnsl-2.0.0, libxml2-2.10.3, MIT Kerberos V5-1.20.1, OpenLDAP-2.6.4 (somente o cliente) e Cyrus SASL-2.1.28

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/autofs

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) [CONFIG_AUTOFS_FS]

Opcionalmente, habilite as seguintes opções na configuração do núcleo:

File systems  --->
  [*] Network File Systems  --->                                     [CONFIG_NETWORK_FILESYSTEMS]
    <*/M> NFS client support                                          [CONFIG_NFS_FS]
    <*/M> SMB3 and CIFS support (advanced network filesystem)         [CONFIG_CIFS]

Recompile e instale o novo núcleo, se necessário.

Instalação do "Autofs"

Primeiro corrija um problema introduzido pela "glibc-2.36":

grep -rl linux/fs modules | xargs sed -i "/linux\/fs/d"

Instale Autofs executando os seguintes comandos:

./configure --prefix=/usr            \
            --with-mapdir=/etc/autofs \
            --with-libtirpc           \
            --with-systemd            \
            --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.

--with-systemd: Essa chave habilita a instalação das unidades agrupadas do "systemd".

--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.20.1.

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.

Unidade do systemd

Para iniciar Autofs na inicialização, habilite a unidade do "systemd" instalada anteriormente executando o seguinte comando como o(a) usuário(a) root:

systemctl enable autofs

Nota

Você também pode especificar a variável OPTIONS no arquivo /etc/sysconfig/autofs com quaisquer parâmetros adicionais que você queira passar para o processo de segundo plano de montagem automática.

Conteúdo

Aplicativo Instalado: automount
Bibliotecas Instaladas: lookup_dir.so, lookup_file.so, lookup_files.so, lookup_hosts.so, lookup_ldap.so (opcional), lookup_multi.so, lookup_nis.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, mount_ext4.so, mount_generic.so, mount_nfs.so, mount_nfs4.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.66

Introdução a "BlueZ"

O pacote BlueZ contém a pilha de protocolos "Bluetooth" para Linux.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://www.kernel.org/pub/linux/bluetooth/bluez-5.66.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 3f9496fedf878fba985e56713ed7752e

  • Tamanho da transferência: 2,2 MB

  • Espaço em disco estimado exigido: 149 MB (com os testes)

  • Tempo de construção estimado: 0,4 UPC (usando paralelismo = 4; com os testes)

Dependências do "BlueZ"

Exigidas

dbus-1.14.6, GLib-2.74.5 e libical-3.0.16

Opcionais

docutils-0.19 (para gerar páginas de manual)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/bluez

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 --->
  [ /*] Configure standard kernel features (expert users)   [CONFIG_EXPERT]
    (Note: if CONFIG_EXPERT is disabled, the following options will be
          hidden and enabled implicitly.  We DO NOT recommend to enable
          CONFIG_EXPERT unless you are really an expert user.)
    [*] Enable timerfd() system call                        [CONFIG_TIMERFD]
    [*] Enable eventfd() system call                        [CONFIG_EVENTFD]

[*] Networking support --->                [CONFIG_NET]
  <*/M> Bluetooth subsystem support --->   [CONFIG_BT]
    <*/M> RFCOMM protocol support          [CONFIG_BT_RFCOMM]
    [*]   RFCOMM TTY support               [CONFIG_BT_RFCOMM_TTY]
    <*/M> BNEP protocol support            [CONFIG_BT_BNEP]
    [*]   Multicast filter support         [CONFIG_BT_BNEP_MC_FILTER]
    [*]   Protocol filter support          [CONFIG_BT_BNEP_PROTO_FILTER]
    <*/M> HIDP protocol support            [CONFIG_BT_HIDP]
        Bluetooth device drivers --->
          (Select the appropriate drivers for your Bluetooth hardware)

   <*/M> RF switch subsystem support ----  [CONFIG_RFKILL]

-*- Cryptographic API --->
   Crypto core or helper --- >
      <*/M> User-space cryptographic algorithm configuration   [CONFIG_CRYPTO_USER]
   Block ciphers --->
      <*/M> AES (Advanced Encryption Standard)                 [CONFIG_CRYPTO_AES]
   AEAD (authenticated encryption with associated data) ciphers --->
      <*/M> CCM (Counter with Cipher Block Chaining-MAC)       [CONFIG_CRYPTO_CCM]
   Hashes, digests, and MACs --->
      <*/M> CMAC (Cipher-based MAC)                            [CONFIG_CRYPTO_CMAC]
   Userspace interface --->
      <*/M> Hash algorithms                                    [CONFIG_CRYPTO_USER_API_HASH]
      <*/M> Symmetric key cipher algorithms                    [CONFIG_CRYPTO_USER_API_SKCIPHER]
      <*/M> AEAD cipher algorithms                             [CONFIG_CRYPTO_USER_API_AEAD]

Instalação do "BlueZ"

Instale BlueZ executando os seguintes comandos:

./configure --prefix=/usr        \
            --sysconfdir=/etc     \
            --localstatedir=/var  \
            --disable-manpages    \
            --enable-library      &&
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, [então] instale a documentação da "API" como o(a) usuário(a) root:

install -v -dm755 /usr/share/doc/bluez-5.66 &&
install -v -m644 doc/*.txt /usr/share/doc/bluez-5.66

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.19 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.

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 dois arquivos de configuração suplementares. Você pode opcionalmente instalar os seguintes arquivos 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

Serviços Bluez do Systemd

Para iniciar o processo de segundo plano bluetoothd na inicialização, habilite a unidade do systemd instalada anteriormente executando o seguinte comando como o(a) usuário(a) root:

systemctl enable bluetooth

Para iniciar o processo de segundo plano obexd para uma sessão de usuário(a) (para suportar alguns aplicativos "Bluetooth" que o utilizam), habilite a unidade do "systemd" instalada anteriormente para todos(as) os(as) usuários(as) executando o seguinte comando como o(a) usuário(a) root:

systemctl enable --global obex

Nota

Systemd iniciará o processo de segundo plano "Bluetooth" somente quando um dispositivo "bluetooth" for detectado no sistema.

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.66

Descrições Curtas

bluemoon

é um utilitário de configuração do "Bluemoon"

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.7.0

Introdução a "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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "Bubblewrap"

Opcionais

libxslt-1.1.37 (para gerar páginas de manual) e libseccomp-2.5.4 (construído com ligações "python", para testes)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/bubblewrap

Instalação do "Bubblewrap"

Instale Bubblewrap executando os seguintes comandos:

mkdir build &&
cd   build &&

meson --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 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.6

Introdução a "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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "Colord"

Exigidas

dbus-1.14.6, GLib-2.74.5, Little CMS-2.14, Polkit-122 e SQLite-3.40.1

Recomendadas
Opcionais

gnome-desktop-43.2 e colord-gtk-0.3.0 (para construir as ferramentas de exemplo), DocBook-utils-0.6.14, GTK-Doc-1.33.2, libxslt-1.1.37, SANE-1.0.32, ArgyllCMS e Bash Completion

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/colord

Instalação do "Colord"

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

Corrija uma liberação dupla que causa uma falha de construção no x86 de 32 bits e travamentos de tempo de execução com alguns monitores:

sed '/cmsUnregisterPluginsTHR/d' -i lib/colord/cd-context-lcms.c

Instale Colord executando os seguintes comandos:

mkdir build &&
cd build &&

meson --prefix=/usr           \
      --buildtype=release      \
      -Ddaemon_user=colord     \
      -Dvapi=true              \
      -Dsystemd=true           \
      -Dlibcolordcompat=true   \
      -Dargyllcms_sensor=false \
      -Dbash_completion=false  \
      -Ddocs=false             \
      -Dman=false ..           &&
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.

-Ddaemon_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.

-Dvapi=true: Essa chave habilita construir as ligações Vala. Remova se você não tiver Vala-0.56.4 instalado.

-Dsystemd=true: Essa chave habilita a instalação do serviço systemd.

-Dlibcolordcompat=true: Essa chave habilita construir uma biblioteca de compatibilidade para pacotes mais antigos que usam Colord.

-Dargyllcms_sensor=false: Essa chave desabilita o controlador do sensor "ArgLLCMS". Omita se você tiver ArgyllCMS instalado e desejar usá-lo.

-Dbash_completion=false: Essa chave desabilita o suporte ao "Bash Completion" para aplicativos "Colord".

-Ddocs=false: Essa chave desabilita a construção de documentação. Omita se você tiver GTK-Doc-1.33.2 disponível.

-Dman=false: Essa chave desabilita a construção de páginas de manual. Omita se você tiver DocBook-utils-0.6.14 disponível. Versões de espaço de nomes das folhas de estilo "docbook-xsl" também são necessárias.

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.13

Introdução a "cpio"

O pacote cpio contém ferramentas para arquivamento.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "CPIO"

Opcionais

texlive-20220321 (ou install-tl-unx)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/cpio

Instalação do "cpio"

Primeiro, corrija um problema de construção ao usar o "GCC-10" e superior:

sed -i '/The name/,+2 d' src/global.c

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-20220321 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.13/html &&
install -v -m644   doc/html/* \
                    /usr/share/doc/cpio-2.13/html &&
install -v -m644    doc/cpio.{html,txt} \
                    /usr/share/doc/cpio-2.13

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.13

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: Nenhuma
Diretórios Instalados: /usr/share/doc/cpio-2.13

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 a "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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "cups-pk-helper"

Exigidas

Cups-2.4.2 e Polkit-122

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/cups-pk-helper

Instalação do "cups-pk-helper"

Instale cups-pk-helper executando os seguintes comandos:

mkdir build &&
cd   build &&

meson --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.14.6

Introdução ao "D-Bus"

Embora o D-Bus tenha sido construído no LFS, existem alguns recursos fornecidos pelo pacote que outros pacotes do BLFS precisam, mas as dependências deles não cabem no LFS.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://dbus.freedesktop.org/releases/dbus/dbus-1.14.6.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: e809d7aa905ad82adeaf1d59db5445b1

  • Tamanho da transferência: 1,3 MB

  • Espaço em disco estimado exigido: 23 MB (adicionar 20 MB para os testes)

  • Tempo de construção estimado: 0,2 UPC (adicionar 1,7 UPC para os testes)

Dependências do "D-Bus"

Exigidas

Systemd-252

Recomendadas
Opcionais

Para os testes: D-Bus Python-1.3.2, PyGObject-3.42.2 e Valgrind-3.20.0; para documentação: Doxygen-1.9.6, xmlto-0.0.28, Ducktype e Yelp Tools

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/dbus

Instalação do "D-Bus"

Instale o D-Bus executando os seguintes comandos (você possivelmente revise a saída gerada a partir de ./configure --help primeiro e adicione quaisquer parâmetros desejados ao comando configure mostrado abaixo):

./configure --prefix=/usr                       \
            --sysconfdir=/etc                    \
            --localstatedir=/var                 \
            --runstatedir=/run                   \
            --enable-user-session                \
            --disable-doxygen-docs               \
            --disable-xml-docs                   \
            --disable-static                     \
            --docdir=/usr/share/doc/dbus-1.14.6  \
            --with-system-socket=/run/dbus/system_bus_socket &&
make

Veja-se abaixo para instruções de teste.

Agora, como o(a) usuário(a) root:

make 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

Os testes "dbus" não podem ser executados até que D-Bus Python-1.3.2 e PyGObject-3.42.2 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 make check.

Se você deseja executar os testes de regressão de unidade, [então] o "configure" 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, [então] emita os seguintes comandos (para os testes, você não precisa construir os documentos):

make distclean                                   &&
PYTHON=python3 ./configure --enable-tests         \
                           --enable-asserts       \
                           --disable-doxygen-docs \
                           --disable-xml-docs     &&
make                                              &&
make check

Existiram informes de que os testes possivelmente falhem se executados dentro de um "shell" do "Midnight Commander". Você possivelmente receba mensagens de erro de falta de memória ao executar os testes. Elas são normais e podem ser seguramente ignoradas.

Explicações do Comando

--disable-doxygen-docs: Essa chave desabilita a construção e instalação da documentação do "doxygen", se você tiver o doxygen instalado. Se doxygen estiver instalado e você desejar construí-la, [então] remova esse parâmetro.

--disable-xml-docs: Essa chave desabilita a construção e instalação da documentação "HTML", se você tiver o xmlto instalado. Se xmlto estiver instalado e você desejar construí-la, [então] remova esse parâmetro.

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

--enable-user-session: Esse parâmetro habilita sessões do "DBus" por usuário(a) com systemd.

--with-system-pid-file=/run/dbus/pid: Esse parâmetro especifica o local do arquivo "PID".

--with-system-socket=/run/dbus/system_bus_socket: Esse parâmetro especifica o local do soquete do barramento do sistema.

--enable-tests: Constrói partes extras do código para suportar todos os testes. Não use em uma construção de produção.

--enable-embedded-tests: Constrói partes extras do código para suportar somente testes de unidade. Não use em uma construção de produção.

--enable-asserts: Habilita código de depuração para executar asserções para declarações normalmente presumidas serem verdadeiras. Isso evita um aviso que '--enable-tests' 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 algum pacote instalar um arquivo .service do D-Bus fora do diretório padrão /usr/share/dbus-1/services, [então] esse diretório deveria ser adicionado à configuração local da sessão. Por exemplo, /usr/local/share/dbus-1/services pode ser adicionado realizando 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"

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

Uma lista dos arquivos instalados, juntamente com as descrições curtas deles, pode ser encontrada em ../../../../lfs/view/11.3-systemd/chapter08/dbus.html#contents-dbus.

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 adequadamente usando uma plataforma LFS 11.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.0.1273), Linux-PAM-1.5.2 e DocBook-utils-0.6.14

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/fcron

Instalação do "Fcron"

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-piddir=/run     \
            --with-boot-install=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-piddir=/run: Isso corrige a unidade do "systemd" para usar o diretório apropriado para arquivos "PID", de modo que o "systemctl" não trave e a unidade inicie corretamente.

--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

Unidade do "systemd"

Habilite o fcron para iniciar na inicialização usando a unidade do "systemd" instalada anteriormente.

systemctl enable fcron

Finalmente, novamente como o(a) usuário(a) root, inicie o "fcron" e gere o arquivo /var/spool/fcron/systab:

systemctl start fcron &&
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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Transferências Adicionais

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/GPM

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 ---> [CONFIG_INPUT]
    <*/M> Mouse interface  [CONFIG_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      &&
make

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

Explicações do Comando

./autogen.sh: Esse comando cria o ausente script configure.

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"

Unidade do systemd

Para iniciar o processo de segundo plano gpm na inicialização, instale a unidade do "systemd" a partir do pacote blfs-systemd-units-20220720 executando o seguinte comando como o(a) usuário(a) root:

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.

Informação de Configuração

GPM é iniciado por padrão com os seguintes parâmetros: -m /dev/input/mice -t imps2. Se os parâmetros mencionados não atenderem às suas necessidades, [então] você pode substituí-los executando os seguintes comandos como o(a) usuário(a) root:

install -v -dm755 /etc/systemd/system/gpm.service.d &&
cat > /etc/systemd/system/gpm.service.d/99-user.conf << EOF
[Service]
ExecStart=/usr/sbin/gpm <lista de parâmetros>
EOF

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 adequadamente usando uma plataforma LFS 11.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

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/hdparm

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

LSB-Tools-0.10

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/LSB-Tools

Instalação do "LSB-Tools"

Instale LSB-Tools executando os seguintes comandos:

python3 setup.py build

Agora, como o(a) usuário(a) root:

python3 setup.py install --optimize=1

Informação de Configuração

A configuração para esse pacote foi feita no LFS e no Systemd. O arquivo /etc/lsb-release já deveria existir. Certifique-se de que a entrada "DISTRIB_CODENAME" tenha sido configurada adequadamente.

Conteúdo

Aplicativos Instalados: lsb_release, install_initd e remove_initd
Biblioteca Instalada: Nenhuma
Diretórios Instalados: /usr/lib/lsb e /usr/lib/python3.11/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 ajustar o desempenho de alguns hardwares (como ventiladores de resfriamento).

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "lm_sensors"

Exigidas

Which-2.21

Opcionais

RRDtool (exigido para construir o aplicativo sensord) e dmidecode (tempo de execução)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/lm_sensors

Configuração do Núcleo

Acertar a configuração do seu núcleo é um processo iterativo que possivelmente exija que você recompile o seu núcleo algumas vezes. A maneira mais simples de fazer isso é a de começar habilitando os módulos e depois compilar tudo o que possivelmente seja necessário para o "Lm Sensors" como um módulo:

[*] Enable loadable module support  --->  [CONFIG_MODULES]

Device Drivers  --->
  [*] PCI support --->                   [CONFIG_PCI]
  I2C support --->
    <*/M> I2C device interface            [CONFIG_I2C_CHARDEV]
    I2C Hardware Bus support  --->
      <M> (configure all of them as modules)
  <*/M> Hardware Monitoring support  ---> [CONFIG_HWMON]
    <M> (configure all of them as modules)

Recompile seu núcleo e reinicialize no novo núcleo. Não se esqueça de make modules_install. Voltaremos ao núcleo na seção "Configurando" abaixo.

Instalação do "Lm_sensors"

Instale Lm_sensors executando os seguintes comandos:

make PREFIX=/usr       \
     BUILD_STATIC_LIB=0 \
     MANDIR=/usr/share/man

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.

PROG_EXTRA=sensord: Esse parâmetro habilita compilar o sensord, um processo de segundo plano que consegue monitorar seu sistema em intervalos regulares. Compilar o 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 o "Lm_sensors"

Arquivo de Configuração

/etc/sensors3.conf

Informação de Configuração

Para descobrir quais sensores de hardware seu sistema tem, emita o seguinte comando como o(a) usuário(a) root:

sensors-detect

Os módulos apropriados deveriam ter sido carregados e um resumo ser exibido no final. Agora você sabe o que é necessário e pode recompilar seu núcleo para habilitar apenas as opções que necessitar (ou seja, não habilite os módulos que não consegue usar).

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 script de shell para uso com lm_sensors. Ele lê a configuração dele a partir de um arquivo, 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 script Perl que te guiará ao longo do processo de varredura de seu sistema em busca de vários "chips" de monitoramento de hardware (sensores) suportados pela libsensors, ou mais geralmente pelo conjunto de ferramentas 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 da "API" do lm_sensors

Logrotate-3.21.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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "Logrotate"

Exigidas

popt-1.19

Opcionais

Um MTA (tempo de execução)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/logrotate

Instalação do "Logrotate"

Instale logrotate executando o seguinte comando:

./configure --prefix=/usr &&
make

Para testar os resultados, emita: make test. Um teste falha porque o muito antigo compress não está presente e 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, execute os seguintes comandos, como o(a) usuário(a) root, para criar um cronômetro do "systemd" para executar diariamente às 3h (hora local):

cat > /usr/lib/systemd/system/logrotate.service << "EOF" &&
[Unit]
Description=Executa o comando "logrotate"
Documentation=man:logrotate(8)
DefaultDependencies=no
After=local-fs.target
Before=shutdown.target

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/sbin/logrotate /etc/logrotate.conf
EOF
cat > /usr/lib/systemd/system/logrotate.timer << "EOF" &&
[Unit]
Description=Executa o comando "logrotate" diariamente as 3:00 AM

[Timer]
OnCalendar=*-*-* 3:00:00
Persistent=true

[Install]
WantedBy=timers.target
EOF
systemctl enable logrotate.timer

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.29

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "MC"

Exigidas

GLib-2.74.5 e PCRE-8.45

Recomendadas
Opcionais

Doxygen-1.9.6, GPM-1.20.7, libssh2-1.10.0, Ruby-3.2.1, Samba-4.17.5, UnZip-6.0, um ambiente gráfico e Zip-3.0

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/MC

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.

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 de configuração principal ~/.config/mc/ini manualmente ou por meio do shell MC. Consulte 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: Nenhuma
Diretórios Instalados: /etc/mc e /usr/{libexec,share}/mc

Descrições Curtas

cons.saver

é usado internamente pelo mc para salvar e restaurar o texto atrás dos painéis no console de texto do Linux

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "ModemManager"

Exigidas

libgudev-237

Recomendadas
Opcionais

GTK-Doc-1.33.2

Observações de Usuário(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        \
            --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 systemd.

--with-systemd-journal : Essa chave força o ModemManager a 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.

Configurando o "ModemManager"

Unidades do "systemd"

Para iniciar o processo de segundo plano ModemManager na inicialização, habilite a unidade do systemd instalada anteriormente executando o seguinte comando como o(a) usuário(a) root:

systemctl enable ModemManager

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "Notification Daemon"

Exigidas

GTK+-3.24.36 e libcanberra-0.30 (Construído com suporte a GTK+-3.24.36).

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/notification-daemon

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.8.1.

Conteúdo

Aplicativo Instalado: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Diretório Instalado: Nenhum(a)

p7zip-17.04

Introdução ao "p7zip"

p7zip é a versão de linha de comando do Unix do "7-Zip", um arquivador de arquivos que arquiva com altas taxas de compressão. Ele manuseia 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "p7zip"

Opcionais

wxWidgets

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/p7zip

Instalação do "p7zip"

Primeiro, evite que o p7zip instale páginas de manual comprimidas:

sed '/^gzip/d' -i install.sh

Em seguida, corrija uma vulnerabilidade de segurança:

sed -i '160a if(_buffer == nullptr || _size == _pos) return E_FAIL;' CPP/7zip/Common/StreamObjects.cpp

Instale p7zip executando os seguintes comandos:

make all3

Para testar os resultados, emita: make test.

Agora, como o(a) usuário(a) root:

make DEST_HOME=/usr \
    DEST_MAN=/usr/share/man \
    DEST_SHARE_DOC=/usr/share/doc/p7zip-17.04 install

Nota

Se usar técnicas "DESTDIR", [então] use "DEST_DIR" invés.

Conteúdo

Aplicativos Instalados: 7z, 7za e 7zr
Bibliotecas Instaladas: Nenhuma
Diretório Instalado: /usr/lib/p7zip e /usr/share/doc/p7zip-17.04

Descrições Curtas

7z

é um utilitário de arquivador de arquivos

7za

é um executável independente que lida com menos formatos de arquivamento que 7z

7zr

é uma versão mínima do 7za que lida somente com arquivamentos "7z"

Pax-20201030

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/pax

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.9.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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://mj.ucw.cz/download/linux/pci/pciutils-3.9.0.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 357496ae1652aac66cad0d2de2d831d0

  • Tamanho da transferência: 888 KB

  • Espaço em disco estimado exigido: 5,5 MB

  • Tempo de construção estimado: menos que 0,1 UPC

Dependências do "PCI Utils"

Recomendadas

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/pciutils

Instalação do "PCI Utils"

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

Explicações do Comando

SHARED=yes: Esse parâmetro habilita a construção da biblioteca compartilhada em vez da estática.

ZLIB=no: Essa opção evita a compressão do arquivo pci.ids.

Configurando o "PCI Utils"

O arquivo de dados pci.ids está sendo constantemente atualizado. Para obter uma versão atual desse arquivo, execute update-pciids como o(a) usuário(a) root. Esse aplicativo exige o script ou aplicativo Which-2.21 para encontrar o cURL-7.88.1, Lynx-2.8.9rel.1 ou o Wget-1.21.3 que são usados para baixar o arquivo mais atual e, em seguida, substituir o arquivo existente em /usr/share/hwdata.

Você deveria atualizar o arquivo /usr/share/hwdata/pci.ids periodicamente. Execute os seguintes comandos, como o(a) usuário(a) root, para criar um cronômetro do "systemd" para atualizá-lo semanalmente aos domingos às 2h30 (hora local):

cat > /usr/lib/systemd/system/update-pciids.service << "EOF" &&
[Unit]
Description=Atualiza o arquivo "pci.ids"
Documentation=man:update-pciids(8)
DefaultDependencies=no
After=local-fs.target network-online.target
Before=shutdown.target

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/sbin/update-pciids
EOF
cat > /usr/lib/systemd/system/update-pciids.timer << "EOF" &&
[Unit]
Description=Atualiza o arquivo "pci.ids" semanalmente

[Timer]
OnCalendar=Sun 02:30:00
Persistent=true

[Install]
WantedBy=timers.target
EOF
systemctl enable update-pciids.timer

Conteúdo

Aplicativos Instalados: lspci, setpci e update-pciids
Biblioteca Instalada: libpci.so
Diretório Instalado: /usr/include/pci e /usr/share/hwdata

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

setpci

é um utilitário para consultar e configurar dispositivos "PCI"

update-pciids

busca a versão atual da lista de "IDs" de "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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências dos Utilitários de Gerenciamento de Eletricidade

Opcionais

xmlto-0.0.28 (para gerar páginas de manual)

Opcionais (tempo de execução)

Hdparm-9.65, Wireless Tools-29, ethtool e vbetool

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/pm-utils

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           [CONFIG_SUSPEND]
    <*> Hibernation (aka 'suspend to disk')   [CONFIG_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

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.28 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 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: Nenhuma
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)

Raptor-2.0.15

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://download.librdf.org/source/raptor2-2.0.15.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: a39f6c07ddb20d7dd2ff1f95fa21e2cd

  • Tamanho da transferência: 1,9 MB

  • Espaço em disco estimado exigido: 28 MB (1 MB adicionais para os testes)

  • Tempo de construção estimado: 0,2 UPC (0,5 UPC adicionais para os testes)

Transferências Adicionais

Dependências do "Raptor"

Exigidas

cURL-7.88.1 e libxslt-1.1.37

Opcionais

GTK-Doc-1.33.2, ICU-72.1 e libyajl

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/raptor

Instalação do "Raptor"

Primeiro, aplique um remendo que corrige alguns problemas de segurança:

patch -Np1 -i ../raptor-2.0.15-security_fixes-1.patch

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-72.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 adequadamente usando uma plataforma LFS 11.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.15

Opcionais

PCRE-8.45 e libgcrypt-1.10.1

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/rasqal

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 adequadamente usando uma plataforma LFS 11.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

Base de Dados Berkeley-5.3.28, libiodbc-3.52.15, SQLite-3.40.1, MariaDB-10.6.12 ou MySQL, PostgreSQL-15.2, virtuoso e 3store

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/redland

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.47

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://sg.danny.cz/sg/p/sg3_utils-1.47.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: c9e95d3b0e106514aefaae17f58a30f9

  • Tamanho da transferência: 1,0 MB

  • Espaço em disco estimado exigido: 21 MB

  • Tempo de construção estimado: 0,2 UPC

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/sg3_utils

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

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

Sysstat-12.7.2

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "Sysstat"

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/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/sysconfig   \
./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

Instale a unidade do "systemd" executando os seguintes comandos como o(a) usuário(a) root:

install -v -m644 sysstat.service /usr/lib/systemd/system/sysstat.service &&
install -v -m644 cron/sysstat-collect.service /usr/lib/systemd/system/sysstat-collect.service &&
install -v -m644 cron/sysstat-collect.timer /usr/lib/systemd/system/sysstat-collect.timer &&
install -v -m644 cron/sysstat-summary.service /usr/lib/systemd/system/sysstat-summary.service &&
install -v -m644 cron/sysstat-summary.timer /usr/lib/systemd/system/sysstat-summary.timer

Corrija a unidade do "systemd" executando o seguinte comando como o(a) usuário(a) root:

sed -i "/^Also=/d" /usr/lib/systemd/system/sysstat.service

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 de dados diários para reinicializar os contadores do núcleo. Isso pode ser automatizado habilitando a unidade do "systemd" instalada anteriormente executando o seguinte comando como o(a) usuário(a) root:

systemctl enable sysstat

Conteúdo

Aplicativos Instalados: cifsiostat, iostat, mpstat, pidstat, sadf, sar e tapestat
Bibliotecas Instaladas: Nenhuma
Diretórios Instalados: /usr/lib/sa, /usr/share/doc/sysstat-12.7.2 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

Systemd-252

Introdução ao "systemd"

Enquanto o systemd foi instalado quando da construção do LFS, existem muitos recursos fornecidos pelo pacote que não foram incluídos na instalação inicial porque o Linux-PAM ainda não estava instalado. O pacote systemd precisa ser reconstruído para fornecer um serviço systemd-logind funcional, o qual fornece muitos recursos adicionais para pacotes dependentes.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://github.com/systemd/systemd/archive/v252/systemd-252.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: b9456750a212dd54d81caeb3c38134b6

  • Tamanho da transferência: 11 MB

  • Espaço em disco estimado exigido: 307 MB (com os testes)

  • Tempo de construção estimado: 2,8 UPC (com os testes)

Transferências Adicionais

Dependências do "systemd"

Exigidas

Linux-PAM-1.5.2

Dependência de Tempo de Execução Recomendada
Opcionais

btrfs-progs-6.1.3, cURL-7.88.1, cryptsetup-2.4.3, git-2.39.2, GnuTLS-3.8.0, iptables-1.8.9, libgcrypt-1.10.1, libidn2-2.3.4, libpwquality-1.4.5, libseccomp-2.5.4, libxkbcommon-1.5.0, make-ca-1.12, p11-kit-0.24.1, pcre2-10.42, qemu-7.2.0, qrencode-4.1.1, rsync-3.2.7, sphinx-6.1.3, Valgrind-3.20.0, zsh-5.9 (para as completações do "zsh"), gnu-efi, kexec-tools, libbpf, libdw, libfido2, libmicrohttpd, lz4, quota-tools e tpm2-tss

Opcional (para reconstruir as páginas de manual)

docbook-xml-4.5, docbook-xsl-nons-1.79.2, libxslt-1.1.37 e lxml-4.9.2 (para construir o índice das páginas de manual do "systemd")

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/systemd

Instalação do "systemd"

Primeiro, corrija um problema de segurança no "systemd-coredump":

patch -Np1 -i ../systemd-252-security_fix-1.patch

Remova dois grupos desnecessários, render e sgx, das regras padrão do "udev":

sed -i -e 's/GROUP="render"/GROUP="video"/' \
      -e 's/GROUP="sgx", //' rules.d/50-udev-default.rules.in

Reconstrua o systemd executando os seguintes comandos:

mkdir build &&
cd   build &&

meson --prefix=/usr                 \
      --buildtype=release           \
      -Ddefault-dnssec=no           \
      -Dfirstboot=false             \
      -Dinstall-tests=false         \
      -Dldconfig=false              \
      -Dman=auto                    \
      -Dsysusers=false              \
      -Drpmmacrosdir=no             \
      -Dhomed=false                 \
      -Duserdb=false                \
      -Dmode=release                \
      -Dpam=true                    \
      -Dpamconfdir=/etc/pam.d       \
      -Ddocdir=/usr/share/doc/systemd-252 \
      ..                            &&

ninja

Nota

Para os melhores resultados de teste, certifique-se de executar a suíte de testes a partir de um sistema que seja inicializado pela mesma versão do systemd que você estiver reconstruindo.

Para testar os resultados, emita: PATH+=:/usr/sbin 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.

-Dpamconfdir=/etc/pam.d: Força os arquivos do "PAM" serem instalados em "/etc/pam.d" em vez de "/usr/lib/pam.d".

-Duserdb=false: Remove um processo de segundo plano que não oferece qualquer uso sob uma configuração do BLFS. Se você deseja habilitar o processo de segundo plano userdbd, [então] substitua "false" por "true" no comando "meson" acima.

-Dhomed=false: Remove um processo de segundo plano que não oferece qualquer uso sob uma configuração tradicional do BLFS, especialmente usando contas criadas com "useradd". Para habilitar o "systemd-homed", primeiro certifique-se de ter cryptsetup-2.4.3 e libpwquality-1.4.5 instalados e, em seguida, mude "false" para "true" no comando "meson" acima.

Configurando o "systemd"

O arquivo /etc/pam.d/system-session precisa ser modificado e um novo arquivo precisa ser criado para a finalidade de que o systemd-logind funcione corretamente. Execute os seguintes comandos como o(a) usuário(a) root:

grep 'pam_systemd' /etc/pam.d/system-session ||
cat >> /etc/pam.d/system-session << "EOF"
# Começo da adição do "Systemd"

session  required    pam_loginuid.so
session  optional    pam_systemd.so

# Fim da adição do "Systemd"
EOF

cat > /etc/pam.d/systemd-user << "EOF"
# Começo "/etc/pam.d/systemd-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_systemd.so

auth     required    pam_deny.so
password required    pam_deny.so

# Fim "/etc/pam.d/systemd-user"
EOF

Atenção

Se atualizar a partir de uma versão anterior do "systemd" e um "initrd" for usado para inicialização do sistema, [então] você deveria gerar um novo "initrd" antes de reinicializar o sistema.

Conteúdo

Uma lista dos arquivos instalados, juntamente com as descrições curtas deles, pode ser encontrada em ../../../../lfs/view/11.3-systemd/chapter08/systemd.html#contents-systemd.

Listados abaixo estão os aplicativos recém-instalados, juntamente com descrições curtas.

Aplicativos Instalados: "homectl" (se cryptsetup-2.4.3 estiver instalado), "systemd-cryptenroll" (se cryptsetup-2.4.3 estiver instalado) e "userdbctl" (opcionalmente)

Descrições Curtas

homectl

é uma ferramenta para criar, remover, mudar ou inspecionar um diretório "home" gerenciado por systemd-homed; observe que é inútil para os(as) usuários(as) clássicos(as) do "UNIX" e diretórios "home" que estamos usando no livro LFS/BLFS

systemd-cryptenroll

É usado para registrar ou remover um sistema da criptografia completa do disco, bem como configurar e consultar chaves privadas e chaves de recuperação

userdbctl

inspeciona usuários(as), grupos e associações de grupos

pam_systemd.so

é um módulo "PAM" usado para registrar sessões de usuário(a) com o gerenciador de "login" do systemd, systemd-logind

UDisks-2.9.4

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "UDisks"

Exigidas

libatasmart-0.19, libblockdev-2.28, libgudev-237, libxslt-1.1.37 e Polkit-122

Exigido em tempo de execução

btrfs-progs-6.1.3, dosfstools-4.2, gptfdisk-1.0.9, mdadm-4.2 e xfsprogs-6.1.1

Recomendadas
Opcionais (Exigidas se construir "GNOME")

gobject-introspection-1.74.0

Opcionais

D-Bus Python-1.3.2 (para os testes de integração), GTK-Doc-1.33.2, LVM2-2.03.18, PyGObject-3.42.2 (para os testes de integração), exFAT e libiscsi

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/udisks2

Instalação do "UDisks"

Instale UDisks executando os seguintes comandos:

./configure --prefix=/usr       \
            --sysconfdir=/etc    \
            --localstatedir=/var \
            --disable-static     &&
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.

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-6.2.6

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://www.rarlab.com/rar/unrarsrc-6.2.6.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 6c68f2bbcd9f06f9d37801ad4256e680

  • Tamanho da transferência: 244 KB

  • Espaço em disco estimado exigido: 2,3 MB

  • Tempo de construção estimado: 0,1 UPC

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/unrar

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-6.2.6.

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

UnZip-6.0

Introdução ao "UnZip"

O pacote UnZip contém utilitários de extração ZIP. Eles são úteis para extrair arquivos a partir de arquivamentos ZIP. Os arquivamentos ZIP são criados com os utilitários PKZIP ou Info-ZIP, principalmente em um ambiente "DOS".

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Cuidado

A versão anterior do pacote UnZip tinha alguns problemas relacionados à localidade. Atualmente não existem editores(as) do BLFS capazes de testar esses problemas de localidade. Portanto, as informações relacionadas à localidade são deixadas nesta página, mas não foram testadas. Uma discussão mais geral desses problemas pode ser encontrada na seção O Aplicativo Assume a Codificação da página Problemas Relacionados à Localidade.

Informação do Pacote

Transferências Adicionais

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/unzip

Problemas de Localidade do "UnZip"

Nota

O uso de UnZip no JDK, Mozilla, DocBook ou qualquer outra instalação de pacote do BLFS não é um problema, pois as instruções do BLFS nunca usam UnZip para extrair um arquivo com caracteres não "ASCII" no nome do arquivo.

Esses problemas são presumidos terem sido corrigidos no remendo. Mas, como nenhum(a) dos(a) editores(a) tem dados para testar isso, as seguintes soluções alternativas são mantidas caso ainda sejam necessárias.

O pacote UnZip assume que os nomes de arquivos armazenados nos arquivamentos "ZIP" criados em sistemas não Unix estejam codificados em "CP850" e que deveriam ser convertidos para "ISO-8859-1" ao escrever arquivos no sistema de arquivos. Tais suposições nem sempre são válidas. Na verdade, dentro do arquivamento "ZIP", os nomes dos arquivos são codificados na página de códigos do "DOS" que estiver em uso no país relevante, e os nomes dos arquivos no disco deveriam estar na codificação da localidade. No "MS Windows", a função C "OemToChar()" (originária de User32.DLL) faz a conversão correta (que é, de fato, a conversão de "CP850" para um superconjunto de "ISO-8859-1", se o "MS Windows" estiver configurado para usar o idioma inglês dos Estados Unidos da América do Norte), mas não existe equivalente no Linux.

Ao usar unzip para desempacotar um arquivamento "ZIP" contendo nomes de arquivos não "ASCII", os nomes dos arquivos são danificados porque unzip usa conversão inadequada quando qualquer uma das suposições dele de codificação estiver incorreta. Por exemplo, na localidade "ru_RU.KOI8-R", a conversão de nomes de arquivos de "CP866" para "KOI8-R" é necessária, mas a conversão de "CP850" para "ISO-8859-1" é feita, o que produz nomes de arquivos que consistem em caracteres indecifráveis em vez de palavras (o mais próximo exemplo compreensível equivalente para usuários(as) somente em inglês é "rot13"). Existem várias maneiras de contornar essa limitação:

1) Para descompactar arquivamentos "ZIP" com nomes de arquivos contendo caracteres não "ASCII", use WinZip enquanto executa o emulador de "Windows" Wine.

2) Use bsdtar -xf oriundo de libarchive-3.6.2 para descompactar o arquivamento "ZIP". Em seguida, corrija os danos causados aos nomes dos arquivos usando a ferramenta convmv (https://j3e.de/linux/convmv/). A seguir está um exemplo para a localidade "zh_CN.UTF-8":

convmv -f cp936 -t utf-8 -r --nosmart --notest \
    </caminho/para/arquivos/descomprimidos>

Instalação do "UnZip"

Primeiro aplique o remendo:

patch -Np1 -i ../unzip-6.0-consolidated_fixes-1.patch

Agora compile o pacote:

make -f unix/Makefile generic

A suíte de teste não funciona para o alvo generic.

Agora, como o(a) usuário(a) root:

make prefix=/usr MANDIR=/usr/share/man/man1 \
-f unix/Makefile install

Explicações do Comando

make -f unix/Makefile generic: Esse alvo começa executando um script de configuração (ao contrário dos alvos mais antigos, como "linux" e "linux_noasm") que cria um arquivo de sinalizadores que é então usado na construção. Isso garante que a construção "x86" de 32 bits receba os sinalizadores corretos para descompactar arquivos os quais sejam maiores que 2 GB quando extraídos.

Conteúdo

Aplicativos Instalados: funzip, unzip, unzipfsx, zipgrep e zipinfo
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: Nenhum(a)

Descrições Curtas

funzip

permite que a saída gerada dos comandos unzip seja redirecionada

unzip

lista, testa ou extrai arquivos a partir de um arquivamento ZIP

unzipfsx

é um toco auto-extraível que pode ser preposto a um arquivamento ZIP. Arquivos nesse formato permitem ao destinatário descomprimir o arquivamento sem instalar o UnZip

zipgrep

pesquisa arquivos em um arquivamento ZIP em busca de linhas que correspondam a um padrão

zipinfo

produz informações técnicas relativas aos arquivos em um arquivamento ZIP, incluindo permissões de acesso a arquivos, situação de encriptação, tipo de compressão, etc

UPower-1.90.0

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 pode acessar o serviço org.freedesktop.UPower por meio do barramento de mensagens do sistema.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "UPower"

Exigidas

libgudev-237, libusb-1.0.26 e Polkit-122

Opcionais (Exigidas se construir GNOME)

gobject-introspection-1.74.0

Opcionais

GTK-Doc-1.33.2, libxslt-1.1.37, docbook-xsl-nons-1.79.2, PyGObject-3.42.2, dbusmock-0.28.7, umockdev-0.17.16 (para parte da suíte de teste) e libimobiledevice

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/upower

Configuração do Núcleo

Habilite as seguintes opções na configuração do núcleo e recompile o núcleo, se necessário:

General Setup --->
    [*] Namespaces support --->     [CONFIG_NAMESPACES]
       [*] User namespace          [CONFIG_USER_NS]

Instalação do "UPower"

Primeiro, remova uma dependência desnecessária oriunda de um teste:

sed '/parse_version/d' -i src/linux/integration-test.py

Instale UPower executando os seguintes comandos:

mkdir build                        &&
cd    build                         &&
meson --prefix=/usr       \
      --buildtype=release \
      -Dgtk-doc=false     \
      -Dman=false         \
      ..                            &&
ninja

Para testar os resultados, emita: LC_ALL=C ninja test. Algumas verificações possivelmente não passem devido a arquivos ausentes. A suíte de teste deveria ser executada a partir de uma sessão "GUI" local iniciada com "dbus-launch".

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

-Dgtk-doc=false: Impede construir a documentação. Remova isso se você tiver o GTK-Doc instalado e desejar construir a documentação.

-Dman=false: Impede construir as páginas de manual. Remova isso se você tiver libxslt-1.1.37 e docbook-xsl-nons-1.79.2 instalados e desejar construir as páginas de manual.

Configurando o "UPower"

Unidade do "systemd"

Para iniciar o serviço UPower na inicialização, habilite a unidade do "systemd" instalada anteriormente executando o seguinte comando como o(a) usuário(a) root:

systemctl enable upower

Conteúdo

Aplicativo Instalado: 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-015

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "USB Utils"

Exigidas

libusb-1.0.26

Recomendadas

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/usbutils

Instalação do "USB Utils"

Instale USB Utils executando os seguintes comandos:

autoreconf -fiv &&

./configure --prefix=/usr --datadir=/usr/share/hwdata &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Para instalar o arquivo de dados usb.ids, usando Wget-1.21.3, execute como o(a) usuário(a) root:

install -dm755 /usr/share/hwdata/ &&
wget http://www.linux-usb.org/usb.ids -O /usr/share/hwdata/usb.ids

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.

Configurando o "USB Utils"

Você deveria atualizar o arquivo /usr/share/hwdata/usb.ids periodicamente. Execute os seguintes comandos, como o(a) usuário(a) root, para criar um cronômetro do "systemd" para atualizá-lo semanalmente aos domingos às 2h30. (hora local):

cat > /usr/lib/systemd/system/update-usbids.service << "EOF" &&
[Unit]
Description=Atualiza arquivo "usb.ids"
Documentation=man:lsusb(8)
DefaultDependencies=no
After=local-fs.target network-online.target
Before=shutdown.target

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/bin/wget http://www.linux-usb.org/usb.ids -O /usr/share/hwdata/usb.ids
EOF
cat > /usr/lib/systemd/system/update-usbids.timer << "EOF" &&
[Unit]
Description=Atualiza semanalmente arquivo "usb.ids"

[Timer]
OnCalendar=Sun 03:00:00
Persistent=true

[Install]
WantedBy=timers.target
EOF
systemctl enable update-usbids.timer

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.21 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/which

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.

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/zip

Instalação do "Zip"

Instale Zip executando os seguintes comandos:

make -f unix/Makefile generic_gcc

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

make prefix=/usr -f unix/Makefile install: Esse comando substitui a variável prefix que está configurada como /usr/local no unix/Makefile. Alternativas para generic_gcc podem ser vistas com um comando make -f unix/Makefile list.

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.

Autoconf2.13

Introdução ao "Autoconf2.13"

Autoconf2.13 é uma versão antiga do Autoconf . Essa versão antiga aceita chaves que não são válidas em versões mais recentes. Agora que o firefox começou a usar o python2 para configuração, essa versão antiga é exigida mesmo se os arquivos de configuração não tenham sido mudados.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Transferências Adicionais

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/autoconf213

Instalação do "Autoconf2.13"

Instale Autoconf executando os seguintes comandos:

patch -Np1 -i ../autoconf-2.13-consolidated_fixes-1.patch &&
mv -v autoconf.texi autoconf213.texi                     &&
rm -v autoconf.info                                       &&
./configure --prefix=/usr --program-suffix=2.13           &&
make

Para testar a instalação, emita make check (todos os 253 testes deveriam passar).

Agora, como o(a) usuário(a) root:

make install                                     &&
install -v -m644 autoconf213.info /usr/share/info &&
install-info --info-dir=/usr/share/info autoconf213.info

Explicações do Comando

mv -v autoconf.texi autoconf213.texi: certifique-se de que o arquivo "info" adicionado por esse pacote não sobrescreverá a versão mais recente.

rm -v autoconf.info: certifique-se de que o arquivo "info" será criado pela versão atual do "texinfo".

--program-suffix=2.13: certifique-se de que os aplicativos instalados tenham a versão adicionada aos nomes deles, de forma que somente um script que procure especificamente por essas versões antigas os encontrará.

install -v -m644 ...: o remendo remove informações de instalação do "Makefile" porque isso instalaria (e se necessário recriaria) "standards.info" que é uma versão antiga, de forma que agora autoconf213.info tem de ser instalado manualmente.

Conteúdo

Aplicativos Instalados: autoconf2.13, autoheader2.13, autoreconf2.13, autoscan2.13, autoupdate2.13 e ifnames2.13
Biblioteca Instalada: Nenhum(a)
Diretório Instalado: /usr/share/autoconf-2.13

Descrições Curtas

autoconf2.13

Produz scripts de shell que configuram automaticamente pacotes de código-fonte de software para se adaptarem a muitos tipos de sistemas do tipo Unix

autoheader2.13

é uma ferramenta para criar arquivos de modelo de declarações C #define para o "configure" usar

autoreconf2.13

Isso executa automaticamente autoconf2.13, autoheader2.13, aclocal, automake, gettextize e libtoolize na ordem correta quando mudanças tenham sido feitas nos arquivos de modelo autoconf ou automake

autoscan2.13

Pode ser usado como uma etapa preliminar na criação de um arquivo configure.in

autoupdate2.13

Modifica um arquivo configure.in que ainda chama macros autoconf pelos nomes antigos deles para usar os nomes de macro atuais

ifnames2.13

Imprime os identificadores que o pacote usa nas condicionais do pré-processador C [Se um pacote já tiver sido configurado para ter alguma portabilidade, [então] esse aplicativo pode ajudar a determinar o que o "configure" precisa verificar. Ele também pode preencher lacunas em um arquivo "configure.in" gerado pelo "autoscan"]

Cbindgen-0.24.3

Introdução ao "Cbindgen"

Cbindgen pode ser usado para gerar ligações C para código Rust.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://github.com/eqrion/cbindgen/archive/v0.24.3/cbindgen-0.24.3.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 6aa2991ca8411f9ebf9961e8b873e884

  • Tamanho da transferência: 204 KB

  • Espaço em disco estimado exigido: 121 MB (adicionar 596 MB para os testes)

  • Tempo de construção estimado: 0,5 UPC (adicionar 0,4 UPC para os testes), ambos em uma máquina de 4 núcleos

Dependências do "cbindgen"

Exigidas

rustc-1.67.1

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/cbindgen

Instalação do "cbindgen"

Nota

Conforme com a maioria dos pacotes Rust, isso precisa de uma conexão de rede de comunicação para verificar as versões atuais das caixas de carga necessárias e para baixá-las, caso ainda não estejam presentes.

Instale cbindgen executando os seguintes comandos:

cargo build --release

Para testar os resultados, emita: cargo test. Três testes na suíte final são conhecidos por falharem.

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Transferências Adicionais

Dependências do "Clisp"

Recomendadas
Opcionais

libnsl-2.0.0 e libffcall

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/clisp

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 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 16384: isso aumenta o tamanho máximo da pilha, conforme recomendado pelo configure.

--docdir=/usr/share/doc/clisp-2.49: isso garante que a documentação "HTML" irá para um diretório versionado em vez de diretamente para /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 libffcall opcional em /usr, caso contrário, como libsigsegv, ele não será encontrado.

Conteúdo

Aplicativos Instalados: clisp, 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 /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.25.2

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://cmake.org/files/v3.25/cmake-3.25.2.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5da transferência: 24cde56ea2dc5e22d7f5d1abc7a82258

  • Tamanho da transferência: 10 MB

  • Espaço em disco estimado exigido: 354 MB (adicionar 1,1 GB para os testes)

  • Tempo de construção estimado: 1,6 UPC (adicionar 3,2 UPC para os testes, ambos usando paralelismo=4)

Dependências do "CMake"

Recomendadas
Opcionais

GCC-12.2.0 (para "gfortran"), git-2.39.2 (para uso durante testes), Mercurial-6.3.2 (para uso durante testes), Qt-5.15.8 (para a "GUI" baseada em "Qt"), sphinx-6.1.3 (para construir documentos), Subversion-1.14.2 (para testagem) e rhash

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/cmake

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-librhash \
            --docdir=/share/doc/cmake-3.25.2 &&
make

Para testar os resultados, emita: LC_ALL=en_US.UTF-8 bin/ctest -j<N> -O cmake-3.25.2-test.log, onde <N> é um número inteiro entre 1 e o número de núcleos do sistema. A configuração de LC_ALL é necessária para evitar algumas falhas de teste quando algumas das variáveis de localidade estão definidas para localidades diferentes do inglês. Um teste, "BundleUtilities", é conhecido por falhar.

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 a Zlib, Bzip2, cURL, nghttp2, Expat e libarchive instalados no sistema.

--no-system-jsoncpp: Essa chave remove 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 dependência recomendada não estiver instalada. Uma versão empacotada da dependência será usada em lugar dele.

--qt-gui: Essa chave habilita construir a "GUI" baseada em Qt para CMake.

--parallel=: Essa chave habilita executar as instruções iniciais de carregamento do CMake com várias tarefas ao mesmo tempo.

Conteúdo

Aplicativos Instalados: ccmake, cmake, cmake-gui (opcional), cpack e ctest
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/share/cmake-3.25 e /usr/share/doc/cmake-3.25.2

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.9.6

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://doxygen.nl/files/doxygen-1.9.6.src.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 5f7ab15c8298d013c5ef205a4febc7b4

  • Tamanho da transferência: 5,1 MB

  • Espaço em disco estimado exigido: 217 MB (com os testes)

  • Tempo de construção estimado: 1,4 UPC (usando paralelismo = 4; com os testes)

Dependências do "Doxygen"

Exigidas

CMake-3.25.2 e git-2.39.2

Opcionais

Graphviz-7.1.0, ghostscript-10.00.0, libxml2-2.10.3 (exigido para os testes), LLVM-15.0.7 (com "clang"), Python-2.7.18, Qt-5.15.8 (para "doxywizard"), texlive-20220321 (ou install-tl-unx), xapian-1.4.22 (para "doxyindexer") e javacc

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/doxygen

Instalação do "Doxygen"

Instale Doxygen executando os seguintes comandos:

mkdir -v build &&
cd      build &&

cmake -G "Unix Makefiles"         \
      -DCMAKE_BUILD_TYPE=Release  \
      -DCMAKE_INSTALL_PREFIX=/usr \
      -Wno-dev .. &&

make

Para testar os resultados, emita: make tests.

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 -DDOC_INSTALL_DIR=share/doc/doxygen-1.9.6 -Dbuild_doc=ON .. &&

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

-Dbuild_wizard=ON: Use essa chave se Qt5 estiver instalado e você desejar construir a estrutura "GUI" de interação direta com o(a) usuário(a).

-Dbuild_search=ON: Use essa chave se xapian estiver instalado e você desejar construir ferramentas de pesquisa externas (doxysearch.cgi e doxyindexer).

-Duse_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 precisar usar os recursos de tradução de idiomas, [então] você precisa ter Python-2.7.18 instalado. Se precisar de fórmulas para criar documentação em "PDF", então você precisa ter o texlive-20220321 instalado. Se precisar de fórmulas para converter arquivos "PostScript" para "bitmaps", então você precisa ter o ghostscript-10.00.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.9.6

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

GCC-12.2.0

Introdução ao "GCC"

O pacote GCC contém a coleção de compiladores "GNU". Esta página descreve a instalação de compiladores para as seguintes linguagens: "C", "C++", "Fortran", "Objective C", "Objective C++" e "Go". 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 é 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 adequadamente usando uma plataforma LFS 11.3.

Cuidado

Se você estiver atualizando o GCC a partir de qualquer outra versão anterior ao 12.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. Como sempre, nunca atualize os cabeçalhos do núcleo a partir daqueles usados quando o Glibc foi compilado durante o LFS.

Alguns cabeçalhos do sistema precisam ser corrigidos para serem usados com o "GCC". Isso é feito durante a instalação do "GCC", e os cabeçalhos corrigidos são instalados em /usr/lib/gcc/<trio da máquina>/<GCC version>/include-fixed . Isso é inofensivo se o "GCC" for construído durante o estágio LFS. Mas se você reinstalar o "GCC" no BLFS, [então] alguns dos pacotes do BLFS possivelmente sejam corrigidos. Se um desses pacotes for reinstalado posteriormente, [então] os cabeçalhos corrigidos não serão atualizados, o que possivelmente leve a incompatibilidades de versões. Caso isso aconteça, os cabeçalhos corrigidos precisam ser atualizados executando (como root): /usr/libexec/gcc/x86_64-pc -linux-gnu/12.2.0/install-tools/mkheaders . O trio da máquina possivelmente seja diferente em um sistema de 32 bits.

Informação do Pacote

Dependências do "GCC"

Opcionais

GDB-13.1, Valgrind-3.20.0 (para os testes) e ISL (para habilitar a otimização "graphite")

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/gcc

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/11.3-systemd/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 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-languages=c,c++,fortran,go,objc,obj-c++ &&
make

Se você tiver instalado pacotes adicionais, como Valgrind e GDB, [então] 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-12.2.0", cerca de sessenta (60) "FAIL" ocorrem no conjunto guality, bem como falhas diversas em todo o resto da suíte de teste, quinze dos quais já estão presentes nos testes "GCC" do LFS. Se todos os compiladores acima forem construídos, [então] existirão em torno de oitenta (80) falhas inesperadas em mais que quatrocentos e oitenta e dois mil (482.000) testes. Para executar os testes, emita:

ulimit -s 32768 &&
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/12.2.0/include{,-fixed}

Alguns pacotes esperam encontrar o pré-processador "C" em /lib ou possivelmente se refiram ao compilador "C" sob o nome cc. Os seguintes vinculos simbólicos não são necessários se você tiver seguido as instruções do LFS, pois eles já foram criados. Se você não os tiver em seu sistema, [então] emita como o(a) usuário(a) root:

ln -v -sf ../usr/bin/cpp /lib          &&
ln -v -sf gcc /usr/bin/cc             &&
install -v -dm755 /usr/lib/bfd-plugins &&
ln -sfv ../../libexec/gcc/$(gcc -dumpmachine)/12.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-languages=c,c++,fortran,go,objc,obj-c++: Esse comando identifica quais linguagens construir. Você possivelmente modifique esse comando para remover linguagens indesejadas. Outras linguagens podem ser adicionadas, incluindo "ADA", "D", "BRIG" (adicionar brig à lista de linguagens habilitadas), um formato binário para "Heterogeneous System Architecture Intermediate Language" ("HSAIL") e "JIT" (adicionar jit à lista de linguagens habilitadas), uma biblioteca que pode ser vinculada a interpretadores que desejam gerar código de máquina em voo em tempo de execução. Eles não foram testados pelos(as) desenvolvedores(as) do BLFS.

ulimit -s 32768: Esse comando evita que vários testes fiquem sem espaço na pilha.

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.

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, go e gofmt, rigidamente vinculados a nomes específicos de arquitetura
Bibliotecas Instaladas: libgfortran.{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 em "GCC" para a linguagem Go

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 em "GCC" para a linguagem Fortran

GC-8.2.2

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Opcionais

libatomic_ops-7.6.14

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/gc

Instalação do "GC"

Instale GC executando os seguintes comandos:

./configure --prefix=/usr     \
            --enable-cplusplus \
            --disable-static   \
            --docdir=/usr/share/doc/gc-8.2.2 &&
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.2: 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.2

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-13.1

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://ftp.gnu.org/gnu/gdb/gdb-13.1.tar.xz

  • Transferência (FTP): ftp://ftp.gnu.org/gnu/gdb/gdb-13.1.tar.xz

  • Soma de verificação MD5 da transferência: 4aaad768ff2585464173c091947287ec

  • Tamanho da transferência: 23 MB

  • Espaço em disco estimado exigido: 1,1 GB (adicionar 406 MB para documentos; adicionar 373 MB para os testes)

  • Tempo de construção estimado: 2,1 UPC (Usando paralelismo=4; adicionar 0,5 UPC para documentos; adicionar 20 UPC para os testes)

Dependências do "GDB"

Dependência de Tempo de Execução Recomendada
Opcionais

Doxygen-1.9.6, GCC-12.2.0 ("ada", "gfortran" e "go" são usadas para testes), Guile-3.0.9, Python-2.7.18, rustc-1.67.1 (usado para alguns testes), Valgrind-3.20.0 e SystemTap (tempo de execução, usado para testes)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/gdb

Instalação do "GDB"

Instale 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.9.6, execute:

make -C gdb/doc doxy

Para testar os resultados, emita:

pushd gdb/testsuite &&
make  site.exp     &&
echo  "set gdb_test_timeout 120" >> site.exp &&
runtest
popd

Veja-se gdb/testsuite/README e TestingGDB. Existem muitos problemas 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 dependem dos compiladores instalados.

  • Uma execução de teste da suíte de teste teve trinta e três (33) falhas inesperadas em mais de cento e seis mil (106.000) testes.

  • Em alguns sistemas, a suíte de teste "gdb.tui" falhará se executada em SSH.

  • 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".

Agora, como o(a) usuário(a) root:

make -C gdb 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-13.1 &&
rm -rf gdb/doc/doxy/xml &&
cp -Rv gdb/doc/doxy /usr/share/doc/gdb-13.1

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 o GDB a usar o "Python" 3. Remova essa chave se você instalou o Python-2.7.18 e deseja usá-lo em vez do "Python" 3.

Conteúdo

Aplicativos Instalados: gcore, gdb e gdbserver
Biblioteca Instalada: Nenhum(a)
Diretórios Instalados: /usr/{include,share}/gdb e /usr/share/doc/gdb-13.1

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)

Git-2.39.2

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.3.2, Bazaar, Subversion-1.14.2, CVS, Perforce e Team Foundation Server.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://www.kernel.org/pub/software/scm/git/git-2.39.2.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 32d34dc65ae0955cc68c7152b5ca8b13

  • Tamanho da transferência: 6,8 MB

  • Espaço em disco estimado exigido: 392 MB (com a documentação baixada; adicionar 18 MB para construir a documentação)

  • Tempo de construção estimado: 0,3 UPC (com paralelismo=4; adicionar 0,4 UPC para construir a documentação e 1,6 UPC (dependente da velocidade do disco) para testes, ambos com paralelismo=4)

Transferências Adicionais

Dependências do "Git"

Recomendadas
Opcionais

GnuPG-2.4.0 (tempo de execução, possivelmente seja usado para assinar "commits" ou "tags" do Git ou para verificar as assinaturas deles), OpenSSH-9.2p1 (tempo de execução, necessário para usar Git por meio de "SSH"), pcre2-10.42 (ou o obsoleto PCRE-8.45), em ambos os casos configurados com --enable-jit, Subversion-1.14.2 com ligações "Perl" (tempo de execução, para git svn), Tk-8.6.13 ("gitk", um visualizador simples de repositórios do Git, usa Tk em tempo de execução), Valgrind-3.20.0, Authen::SASL e MIME::Base64 (ambos em tempo de execução, para git send-email) e IO-Socket-SSL-2.081 (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.28 e asciidoc-10.2.0 , e também dblatex (para a versão "PDF" do manual de usuário(a)) e docbook2x para criar páginas "info"

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/git

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.0, [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.0 e xmlto-0.0.28, [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: make test. Se executada como um(a) usuário(a) normal, [então] zero (0) testes deveriam ser informados como falhos no resumo final.

Agora, como o(a) usuário(a) root:

make perllibdir=/usr/lib/perl5/5.36/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.39.2 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.39.2.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.39.2 &&
tar   -xf   ../git-htmldocs-2.39.2.tar.xz \
     -C    /usr/share/doc/git-2.39.2 --no-same-owner --no-overwrite-dir &&

find        /usr/share/doc/git-2.39.2 -type d -exec chmod 755 {} \; &&
find        /usr/share/doc/git-2.39.2 -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.39.2/man-pages/{html,text}        &&
mv        /usr/share/doc/git-2.39.2/{git*.txt,man-pages/text}     &&
mv        /usr/share/doc/git-2.39.2/{git*.,index.,man-pages/}html &&

mkdir -vp /usr/share/doc/git-2.39.2/technical/{html,text}         &&
mv        /usr/share/doc/git-2.39.2/technical/{*.txt,text}        &&
mv        /usr/share/doc/git-2.39.2/technical/{*.,}html           &&

mkdir -vp /usr/share/doc/git-2.39.2/howto/{html,text}             &&
mv        /usr/share/doc/git-2.39.2/howto/{*.txt,text}            &&
mv        /usr/share/doc/git-2.39.2/howto/{*.,}html               &&

sed -i '/^<a href=/s|howto/|&html/|' /usr/share/doc/git-2.39.2/howto-index.html &&
sed -i '/^\* link:/s|howto/|&html/|' /usr/share/doc/git-2.39.2/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 e tiver sido construído com o "JIT" não padrão habilitado.

--with-libpcre1: Como uma alternativa ao "PCRE2", use essa chave se o obsoleto PCRE estiver instalado e tiver sido construído com o "JIT" não padrão habilitado.

tar -xf ../git-manpages-2.39.2.tar.gz -C /usr/share/man --no-same-owner: Isso descompacta git-manpages-2.39.2.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.39.2 ...: 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 e /usr/share/{doc/git-2.39.2,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.13)

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.39.2 e OpenSSH-9.2p1

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 a unidade git-daemon.service a partir do pacote blfs-systemd-units-20220720:

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

Junto com a unidade git-daemon.service, um arquivo de configuração chamado /etc/default/git-daemon foi instalado. Revise esse arquivo de configuração para corresponder às suas necessidades.

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.9

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "Guile"

Exigidas

GC-8.2.2 e libunistring-1.1

Opcionais

Emacs-28.2 e GDB-13.1 (dependências somente em tempo de execução).

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/guile

Instalação do "Guile"

Instale Guile executando os seguintes comandos:

./configure --prefix=/usr   \
            --disable-static \
            --docdir=/usr/share/doc/guile-3.0.9 &&
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.9/{guile.html,ref} &&
mv /usr/share/doc/guile-3.0.9/r5rs{.html,}     &&

find examples -name "Makefile*" -delete         &&
cp -vR examples   /usr/share/doc/guile-3.0.9   &&

for DIRNAME in r5rs ref; do
  install -v -m644  doc/${DIRNAME}/*.txt \
                    /usr/share/doc/guile-3.0.9/${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.9 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

Librep-0.92.7

Introdução ao "Librep"

O pacote librep contém um sistema "Lisp". Isso é útil para scripts ou para aplicativos que possivelmente usem o interpretador "Lisp" como linguagem de extensão.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://download.tuxfamily.org/librep/librep_0.92.7.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 036195b371006848e29ed6f50ddc8475

  • Tamanho da transferência: 840 KB

  • Espaço em disco estimado exigido: 10 MB

  • Tempo de construção estimado: 0,3 UPC

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/librep

Instalação do "Librep"

Instale librep 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:

sed -i '5043,5044 d' libtool &&
make install

Conteúdo

Aplicativos Instalados: rep, rep-remote, rep-xgettext e repdoc
Bibliotecas Instaladas: "librep.so" e numerosos módulos instalados na hierarquia "/usr/lib/rep"
Diretórios Instalados: /usr/lib/rep, /usr/share/emacs/site-lisp e /usr/share/rep

Descrições Curtas

rep

é o interpretador "Lisp"

librep.so

contém as funções necessárias para o interpretador "Lisp"

LLVM-15.0.7

Introdução ao "LLVM"

O pacote LLVM contém uma coleção de compiladores modulares e reutilizá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 à 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 representação intermediária LLVM ("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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://github.com/llvm/llvm-project/releases/download/llvmorg-15.0.7/llvm-15.0.7.src.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: c77db4c71e1eb267358204dffe2c6e10

  • Tamanho da transferência: 50 MB

  • Espaço em disco estimado exigido: 2,7 GB (848 MB instalado; adicionar 18,3 GB para os testes e 308 MB para a documentação)

  • Tempo de construção estimado: 24 UPC (Usando paralelismo=4; adicionar 22 UPC para os testes)

Transferências Adicionais

módulos "Cmake" para o "LLVM"

Transferência Recomendada

Clang

Transferência Opcional

Compiler RT

Dependências do "LLVM"

Exigidas

CMake-3.25.2

Opcionais

Doxygen-1.9.6, git-2.39.2, Graphviz-7.1.0, libxml2-2.10.3, Pygments-2.14.0, rsync-3.2.7 (para testes), recommonmark-0.7.1 (para construir documentação), texlive-20220321 (ou install-tl-unx), Valgrind-3.20.0, PyYAML-6.0, Zip-3.0, OCaml, psutil (para testes) e Z3

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/llvm

Instalação do "LLVM"

A partir da versão 15.0.0, um "tarball" adicional llvm-cmake-15.0.7.src.tar.xz é necessário. O(A) desenvolvedor(a) espera que ele seja extraído no mesmo nível do "tarball" llvm-15.0.7.src.tar.xz e que o diretório extraído seja renomeado para cmake. Extraia-o e modifique o sistema de construção para evitar criar um diretório fora da hierarquia llvm-15.0.7.src:

tar -xf ../llvm-cmake-15.0.7.src.tar.xz &&
sed '/LLVM_COMMON_CMAKE_UTILS/s@../cmake@cmake-15.0.7.src@' \
   -i CMakeLists.txt

Instale o clang na árvore do fonte executando os seguintes comandos:

tar -xf ../clang-15.0.7.src.tar.xz -C tools &&
mv tools/clang-15.0.7.src tools/clang

Se você tiver baixado o compiler-rt, [então] instale-o na árvore do fonte executando os seguintes comandos:

tar -xf ../compiler-rt-15.0.7.src.tar.xz -C projects &&
mv projects/compiler-rt-15.0.7.src projects/compiler-rt

Existem muitos scripts "Python" nesse pacote que usam /usr/bin/env python para acessar o "Python" do sistema, que no LFS é Python-3.11.2. Use o seguinte comando para corrigir esses scripts:

grep -rl '#!.*python' | xargs sed -i '1s/python$/python3/'

Se você tiver baixado o clang, [então] aplique o seguinte remendo para habilitar SSP por padrão em aplicativos compilados.

patch -Np2 -d tools/clang <../clang-15.0.7-enable_default_ssp-1.patch

Instale LLVM executando os seguintes comandos:

mkdir -v build &&
cd      build &&

CC=gcc CXX=g++                                  \
cmake -DCMAKE_INSTALL_PREFIX=/usr               \
      -DLLVM_ENABLE_FFI=ON                      \
      -DCMAKE_BUILD_TYPE=Release                \
      -DLLVM_BUILD_LLVM_DYLIB=ON                \
      -DLLVM_LINK_LLVM_DYLIB=ON                 \
      -DLLVM_ENABLE_RTTI=ON                     \
      -DLLVM_TARGETS_TO_BUILD="host;AMDGPU;BPF" \
      -DLLVM_BINUTILS_INCDIR=/usr/include       \
      -DLLVM_INCLUDE_BENCHMARKS=OFF             \
      -DCLANG_DEFAULT_PIE_ON_LINUX=ON           \
      -Wno-dev -G Ninja ..                      &&
ninja

Se tiver instalado o recommonmark-0.7.1 e as dependências dele, [então] você consegue gerar a documentação "HTML" e as páginas de manual com os seguintes comandos:

cmake -DLLVM_BUILD_DOCS=ON           \
      -DLLVM_ENABLE_SPHINX=ON         \
      -DSPHINX_WARNINGS_AS_ERRORS=OFF \
      -Wno-dev -G Ninja ..            &&
ninja docs-llvm-html  docs-llvm-man

A documentação do "clang" pode ser construída também:

ninja docs-clang-html docs-clang-man

Para testar os resultados, emita: ninja check-all. Os testes são construídos com todos os núcleos disponíveis, porém executados ussndo o número de processadores online. (A diferença é a de que os núcleos disponíveis podem ser limitados usando o taskset; mas, colocá-los "offline" exige ecoar zero (0) para /sys/devices/system/cpu/cpu<N>/online pelo(a) usuário(a) root e torná-los temporáriamente inutilizáveis por todas as tarefas na máquina). Observe que quatro testes de mais que sessenta e quatro mil e setecentos (64.700) são conhecidos por falharem: DataFlowSanitizer-x86_64 :: custom.cpp, DataFlowSanitizer-x86_64 :: origin_unaligned_memtrans.c, DataFlowSanitizer-x86_64 :: release_shadow_space.c, LLVM :: tools/llvm-libtool-darwin/L-and-l.test,

Agora, como o(a) usuário(a) root:

ninja install &&
cp bin/FileCheck /usr/bin

Se você tiver construído a documentação do "llvm", [então] ela foi instalada pelo comando acima, mas precisa ser movida. Como o(a) usuário(a) root:

install -v -d -m755 /usr/share/doc/llvm-15.0.7           &&
mv -v /usr/share/doc/LLVM/llvm /usr/share/doc/llvm-15.0.7 &&
rmdir -v --ignore-fail-on-non-empty /usr/share/doc/LLVM

Se você tiver construído a documentação do "clang", [então] ela foi instalada, mas precisa ser movida também. Novamente como o(a) usuário(a) root:

install -v -d -m755 /usr/share/doc/llvm-15.0.7            &&
mv -v /usr/share/doc/LLVM/clang /usr/share/doc/llvm-15.0.7 &&
rmdir -v --ignore-fail-on-non-empty /usr/share/doc/LLVM

Explicações do Comando

-DLLVM_ENABLE_FFI=ON: Essa chave permite que o LLVM use libffi.

-DLLVM_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.

-DCMAKE_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.

-DLLVM_TARGETS_TO_BUILD="host;AMDGPU;BPF": 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 alvo "BPF" é necessário para construir v4l-utils-1.22.1. O padrão é todos os alvos. Você consegue usar uma lista separada por ponto e vírgula. Os alvos válidos são: "host", "X86", "Sparc", "PowerPC", "ARM", "AArch64", "Mips", "Hexagon", "Xcore", "M68K", "MSP430", "NVPTX", "SystemZ", "AMDGPU", "BPF", "CppBackend" ou "all".

-DLLVM_LINK_LLVM_DYLIB=ON: Usado em conjunção com -DLLVM_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-15.so".

-DLLVM_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-22.3.5.

-DLLVM_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").

-DLLVM_INCLUDE_BENCHMARKS=OFF: é usado para desabilitar alvos de construção de geração para os referenciais do "LLVM". Essa opção exige código adicional que não está disponível atualmente.

-DCLANG_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.

-DBUILD_SHARED_LIBS=ON: se usado em vez de -DLLVM_BUILD_LLVM_DYLIB=ON e -DLLVM_LINK_LLVM_DYLIB=ON, constrói todas as bibliotecas LLVM (cerca de sessenta (60)) como bibliotecas compartilhadas em vez de estáticas.

-DLLVM_ENABLE_DOXYGEN: habilita a geração de documentação "HTML" navegável se você tiver instalado Doxygen-1.9.6. Você deveria executar make doxygen-html depois e instalar a documentação gerada manualmente.

Conteúdo

Aplicativos Instalados: analyze-build, bugpoint, c-index-test, clang, clang++ (vínculos simbólicos para clang-15), clang-15, clang-check, clang-cl, clang-cpp (últimos dois vínculos simbólicos para "clang"), clang-extdef-mapping, clang-format, clang-linker-wrapper, clang-nvlink-wrapper, clang-offload-bundler, clang-offload-packager, clang-offload-wrapper, clang-refactor, clang-rename, clang-repl, clang-scan-deps, diagtool, dsymutil, FileCheck, git-clang-format, hmaptool, intercept-build, llc, lli, llvm-addr2line (vínculo simbólico para llvm-symbolizer), llvm-ar, llvm-as, llvm-bcanalyzer, llvm-bitcode-strip (vínculo 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-debuginfod, llvm-debuginfod-find, llvm-diff, llvm-dis, llvm-dlltool (vínculo simbólico para llvm-ar), llvm-dwarfdump, llvm-dwarfutil, llvm-dwp, llvm-exegesis, llvm-extract, llvm-gsymutil, llvm-ifs, llvm-install-name-tool (vínculo simbólico para llvm-objcopy), llvm-jitlink, llvm-lib (vínculo 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 (vínculo simbólico para llv-objdump), llvm-pdbutil, llvm-profdata, llvm-profgen, llvm-ranlib (vínculo simbólico para llvm-ar), llvm-rc, llvm-readelf (vínculo simbólico para llvm-readobj), llvm-readobj, llvm-reduce, llvm-remark-size-diff, llvm-rtdyld, llvm-sim, llvm-size, llvm-split, llvm-stress, llvm-strings, llvm-strip (vínculo simbólico para llvm-objcopy), llvm-symbolizer, llvm-tapi-diff, llvm-tblgen, llvm-tli-checker, llvm-undname, llvm-windres (vínculo simbólico para llvm-rc), llvm-xray, opt, sancov, sanstats, scan-build, scan-build-py, scan-view, split-file e verify-uselistorder
Bibliotecas Instaladas: libLLVM.so, libLLVM*.a (noventa e cinco (95) bibliotecas), libLTO.so, libRemarks.so, libclang.so, libclang-cpp.so, libclang*.a (quarenta e uma (41) 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 /usr/share/doc/llvm-15.0.7

Descrições Curtas

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-nvlink-wrapper

é uma ferramenta de envólucro sobre o aplicativo "nvlink"

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-offload-wrapper

é uma ferramenta para criar "bitcode" de envólucro para binários de descarregamento alvo

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

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.39.2)

hmaptool

é uma ferramenta "Python" para despejar e construir mapas de cabeçalho

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-debuginfod

é um serviço que fornece informações de depuração por meio de uma "API" "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" multimó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-reduce

é usado para reduzir automaticamente os casos de teste ao executar uma suíte de teste

llvm-remark-size-diff

informa a diferença na contagem de instruções e nas observações do tamanho da pilha entre dois arquivos de observações

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

intercept-build

gera uma base de dados de comandos de construção para um projeto

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 script Perl que invoca o analisador estático Clang

scan-build-py

é um script Python que invoca o analisador estático Clang

scan-view

é um visualizador dos resultados do analisador estático Clang

split-file

divide um arquivo de entrada em múltiplas partes separadas por expressão regular

verify-uselistorder

é a ferramenta do LLVM para verificar a ordem da lista de uso

Lua-5.4.4

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://www.lua.org/ftp/lua-5.4.4.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: bd8ce7069ff99a400efd14cf339a727b

  • Tamanho da transferência: 356 KB

  • Espaço em disco estimado exigido: 5,8 MB (com os testes Básicos)

  • Tempo de construção estimado: menos que 0,1 UPC (com os testes Básicos)

Transferências Adicionais

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/lua

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.4

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.4-shared_library-2.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.4" \
     install &&

mkdir -pv                      /usr/share/doc/lua-5.4.4 &&
cp -v doc/*.{html,css,gif,png} /usr/share/doc/lua-5.4.4 &&

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.4-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.4

Descrições Curtas

lua

é o interpretador independente "Lua"

luac

é o compilador "Lua"

liblua.so

contém as funções da "API" da Lua

Lua-5.2.4

Introdução ao "Lua" 5.2

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.

Essa é uma versão mais antiga da Lua necessária somente para compatibilidade com outros aplicativos como Wireshark-4.0.3.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://www.lua.org/ftp/lua-5.2.4.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 913fdb32207046b273fdb17aad70be13

  • Tamanho da transferência: 248 KB

  • Espaço em disco estimado exigido: 3,6 MB

  • Tempo de construção estimado: menos que 0,1 UPC

Transferências Adicionais

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/lua

Instalação do "Lua" 5.2

Alguns pacotes verificam o arquivo pkg-config para Lua, o qual é criado com:

cat > lua.pc << "EOF"
V=5.2
R=5.2.4

prefix=/usr
INSTALL_BIN=${prefix}/bin
INSTALL_INC=${prefix}/include/lua5.2
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/lua5.2

Name: Lua
Description: Uma Linguagem de Extensão Extensível
Version: ${R}
Requires:
Libs: -L${libdir} -llua5.2 -lm -ldl
Cflags: -I${includedir}
EOF

Instale Lua executando os seguintes comandos:

patch -Np1 -i ../lua-5.2.4-shared_library-1.patch &&

sed -i '/#define LUA_ROOT/s:/usr/local/:/usr/:' src/luaconf.h &&

sed -r -e '/^LUA_(SO|A|T)=/ s/lua/lua5.2/' \
       -e '/^LUAC_T=/ s/luac/luac5.2/'    \
       -i src/Makefile &&

make MYCFLAGS="-fPIC" linux

A instalação desse pacote é complexa, de modo que usaremos o método "DESTDIR" de instalação:

make TO_BIN='lua5.2 luac5.2'                    \
     TO_LIB="liblua5.2.so liblua5.2.so.5.2 liblua5.2.so.5.2.4" \
     INSTALL_DATA="cp -d"                        \
     INSTALL_TOP=$PWD/install/usr                \
     INSTALL_INC=$PWD/install/usr/include/lua5.2 \
     INSTALL_MAN=$PWD/install/usr/share/man/man1 \
     install &&

install -Dm644 lua.pc install/usr/lib/pkgconfig/lua52.pc &&

mkdir -pv install/usr/share/doc/lua-5.2.4 &&
cp -v doc/*.{html,css,gif,png} install/usr/share/doc/lua-5.2.4 &&

ln -s liblua5.2.so install/usr/lib/liblua.so.5.2   &&
ln -s liblua5.2.so install/usr/lib/liblua.so.5.2.4 &&

mv install/usr/share/man/man1/{lua.1,lua5.2.1} &&
mv install/usr/share/man/man1/{luac.1,luac5.2.1}

Agora, como o(a) usuário(a) root:

chown -R root:root install &&
cp -a install/* /

Explicações do Comando

sed -i ... src/luaconf.h: Esse comando muda o caminho de pesquisa de Lua para corresponder ao caminho de instalação.

sed -i ... src/Makefile: Esse comando desconflita essa instalação com a versão mais recente de "Lua".

Conteúdo

Aplicativos Instalados: lua5.2 e luac5.2
Biblioteca Instalada: liblua5.2.so
Diretórios Instalados: /usr/include/lua5.2, /usr/lib/lua/5.2, /usr/share/doc/lua-5.2.4 e /usr/share/lua/5.2

Descrições Curtas

lua5.2

é o interpretador independente "Lua" versão 5.2

luac5.2

é o compilador "Lua" versão 5.2

liblua5.2.so

contém as funções da "API" da Lua versão 5.2

Mercurial-6.3.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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://www.mercurial-scm.org/release/mercurial-6.3.2.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 37f5c2c5efee02fe25a0f344b2e3ca72

  • Tamanho da transferência: 7,7 MB

  • Espaço em disco estimado exigido: 79 MB (com os documentos, adicionar 892 MB para os testes)

  • Tempo de construção estimado: 0,3 UPC (com os documentos, adicionar 6,2 UPC para os testes usando "-j4")

Dependências do "Mercurial"

Opcionais

docutils-0.19 (exigido para construir a documentação), git-2.39.2, GPGME-1.18.0 (com ligações "Python"), OpenSSH-9.2p1 (tempo de execução, para acessar repositórios "ssh://..."), Pygments-2.14.0, rustc-1.67.1 (veja-se rust/README.rst e rust/rhg/README.md), Subversion-1.14.2 (com ligações "Python"), Bazaar, CVS, pyflakes, pyOpenSSL e re2

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/mercurial

Instalação do "Mercurial"

Construa Mercurial emitindo o seguinte comando:

make build

Para construir a documentação (exige docutils-0.19), emita:

make doc

Para executar a suíte de teste, emita:

TESTFLAGS="-j<N> --tmpdir tmp --blacklist blacklists/fsmonitor --blacklist blacklists/linux-vfat" make check

onde <N> é um número inteiro entre um e o número de (camadas X do processador), inclusive. Vários testes (cerca de vinte (20)) falham porque algumas mensagens de erro foram mudadas em "Python" ou alguns avisos de descontinuação são impressos, que não estavam presentes quando o teste foi projetado. Para a finalidade de investigar quaisquer testes aparentemente falhos, você possivelmente use o script 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.12 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.11/site-packages/mercurial
Diretórios Instalados: /etc/mercurial, /usr/lib/python3.11/site-packages/hgdemandimport, /usr/lib/python3.11/site-packages/hgext, /usr/lib/python3.11/site-packages/hgext3rd, /usr/lib/python3.11/site-packages/mercurial e /usr/lib/python3.11/site-packages/mercurial-6.3.2-py3.11.egg-info

Descrições Curtas

hg

é o sistema de controle de versão "mercurial"

NASM-2.16.01

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Transferências Adicionais

Dependências do "NASM"

Opcional (para gerar documentação):

asciidoc-10.2.0 e xmlto-0.0.28

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/nasm

Instalação do "NASM"

Se você baixou a documentação opcional, [então] coloque-a na árvore do fonte:

tar -xf ../nasm-2.16.01-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.01/html  &&
cp -v doc/html/*.html    /usr/share/doc/nasm-2.16.01/html  &&
cp -v doc/*.{txt,ps,pdf} /usr/share/doc/nasm-2.16.01

Conteúdo

Aplicativos Instalados: nasm e ndisasm
Bibliotecas Instaladas: Nenhum(a)
Diretório Instalado: /usr/share/doc/nasm-2.16.01

Descrições Curtas

nasm

é um montador portável "80x86"

ndisasm

é um desmontador de arquivos binários "80x86"

Patchelf-0.17.2

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/patchelf

Instalação do "Patchelf"

Instale patchelf executando os seguintes comandos:

./configure --prefix=/usr \
           --docdir=/usr/share/doc/patchelf-0.17.2 &&
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 Usuário(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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do "Archive::Zip"
Recomendadas (para a suíte de teste)

UnZip-6.0 (com o remendo dele)

Opcionais

Test-MockModule-v0.176.0

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 adequadamente usando uma plataforma LFS 11.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.007

Introdução ao "Business::ISBN"

O módulo "Business::ISBN" é para trabalhar com números internacionais padrão de livros.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do "Business::ISBN"
Exigidas

Business-ISBN-Data-20210112.006

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.202

Introdução ao "Business::ISMN"

O módulo "Business::ISMN" é para trabalhar com números internacionais padrão de músicas.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do "Business::ISMN"
Exigidas

Tie-Cycle-1.227

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.005

Introdução ao "Business::ISSN"

O módulo "Business::ISSN" é para trabalhar com números internacionais padrão de série.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.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 adequadamente usando uma plataforma LFS 11.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.27

Introdução ao "Data::Compare"

O módulo "Data::Compare" compara duas estruturas de dados perl.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do "Data::Compare"
Exigidas

Clone-0.46, 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 adequadamente usando uma plataforma LFS 11.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 adequadamente usando uma plataforma LFS 11.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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do "DateTime::Calendar::Julian"
Exigidas

DateTime-1.59

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" criou classes e objetos do analisador "DateTime".

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.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 adequadamente usando uma plataforma LFS 11.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 adequadamente usando uma plataforma LFS 11.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.03

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 adequadamente usando uma plataforma LFS 11.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::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 adequadamente usando uma plataforma LFS 11.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 adequadamente usando uma plataforma LFS 11.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.81

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do "HTML::Parser"
Exigidas

HTML-Tagset-3.20

Exigidas (tempo de execução)

HTTP-Message-6.44 (o módulo "HTTP::Headers" dele é uma exigência de tempo de execução para "HTML::HeadParser" a partir 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.15

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do "HTTP::Daemon"
Exigidas

HTTP-Message-6.44

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.081

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do "IO::Socket::SSL"
Exigidas

make-ca-1.12 e Net-SSLeay-1.92

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

. 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"; isso permite 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 adequadamente usando uma plataforma LFS 11.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.048

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 adequadamente usando uma plataforma LFS 11.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

JSON-4.10

Introdução ao "JSON"

"JSON" fornece um envólucro simples para módulos compatíveis com "JSON::XS" com alguns recursos adicionais.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Instalação do "JSON"

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 adequadamente usando uma plataforma LFS 11.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.67)

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências da "libwww-perl"
Exigidas

File-Listing-6.15, HTTP-Cookies-6.10, HTTP-Daemon-6.15, HTTP-Negotiate-6.01, HTML-Parser-3.81, Net-HTTP-6.22, Try-Tiny-0.31 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.10.

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do "List::AllUtils"
Exigidas

List-SomeUtils-0.59, 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do "List::MoreUtils"
Exigidas

Exporter-Tiny-1.006000 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 adequadamente usando uma plataforma LFS 11.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.10

Introdução ao "LWP::Protocol::https"

"LWP::Protocol::https" fornece suporte "HTTPS" para "LWP::UserAgent" (ou seja, libwww-perl-6.67). 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Transferência Adicional
Dependências do "LWP::Protocol::https"
Exigidas

IO-Socket-SSL-2.081, libwww-perl-6.67 e make-ca-1.12 com /etc/pki/tls/certs/ca-bundle.crt.

Instalação do "LWP::Protocol::https"

Primeiro, aplique um remendo para usar os certificados do sistema (usar a instalação automatizada do "CPAN" usará Mozilla::CA que, geralmente, não está atualizado e não usa certificados locais).

patch -Np1 -i ../LWP-Protocol-https-6.10-system_certs-2.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

Module::Build-0.4232

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 adequadamente usando uma plataforma LFS 11.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.36

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 adequadamente usando uma plataforma LFS 11.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 adequadamente usando uma plataforma LFS 11.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 adequadamente usando uma plataforma LFS 11.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 adequadamente usando uma plataforma LFS 11.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-2017060201

Introdução ao "Regexp::Common"

"Regexp::Common" fornece expressões regulares comumente solicitadas.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.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 adequadamente usando uma plataforma LFS 11.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 adequadamente usando uma plataforma LFS 11.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 adequadamente usando uma plataforma LFS 11.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.69

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 adequadamente usando uma plataforma LFS 11.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.89

Introdução ao "Text::BibTeX"

"Text::BibTeX" fornece uma interface para ler e analisar arquivos BibTeX.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do "Text::BibTeX"
Exigidas

Config-AutoConf-0.320, ExtUtils-LibBuilder-0.08

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, libparse, dumpnames
Bibliotecas Instaladas: libtparse.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.02

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 adequadamente usando uma plataforma LFS 11.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 adequadamente usando uma plataforma LFS 11.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.18 e você não precisa reinstalar esse módulo.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do "Unicode::LineBreak"
Exigidas

MIME-Charset-1.013.1, também Wget-1.21.3 (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.17

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do "URI"
Recomendadas (exigidas para a suíte de teste)
Opcionais

Business-ISBN-3.007

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do "XML::LibXML::Simple"
Exigidas

XML-LibXML-2.0208

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.002001

Introdução ao "XML::LibXSLT"

"XML-LibXSLT" fornece uma interface para libxslt-1.1.37

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do "XML::LibXSLT"
Exigidas

libxslt-1.1.37, XML-LibXML-2.0208

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 adequadamente usando uma plataforma LFS 11.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 adequadamente usando uma plataforma LFS 11.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.13p1 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, [então], por favor, verifique o arquivo de 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.

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/perl-modules

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 adequadamente usando uma plataforma LFS 11.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.77

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do "Alien::Build"
Exigidas

Capture-Tiny-0.48, 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do "Alien::Build::Plugin::Download::GitLab"
Exigidas

Alien-Build-2.77 e URI-5.17

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.10.3 instalado.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do "Alien::Libxml2"
Exigidas

Alien-Build-Plugin-Download-GitLab-0.01, libxml2-2.10.3, Path-Tiny-0.144

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 adequadamente usando uma plataforma LFS 11.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.26

Introdução a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências de B::Hooks::EndOfScope
Exigida

Module-Implementation-0.09, Sub-Exporter-Progressive-0.001013 e Variable-Magic-0.63

Recomendadas (exigidas para a suíte de teste)

Instalação de 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-20210112.006

Introdução ao "Business-ISBN-Data"

"Business-ISBN-Data" é um pacote de dados para "Business::ISBN".

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.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.48

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 adequadamente usando uma plataforma LFS 11.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.09

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 adequadamente usando uma plataforma LFS 11.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 adequadamente usando uma plataforma LFS 11.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 adequadamente usando uma plataforma LFS 11.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 adequadamente usando uma plataforma LFS 11.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.46

Introdução ao "Clone"

"Clone" copia recursivamente tipos de dados "Perl".

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do "Config::AutoConf"
Exigidas

Capture-Tiny-0.48, 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.017

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 adequadamente usando uma plataforma LFS 11.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.59

Introdução ao "DateTime"

"DateTime" é um objeto de data e hora para "Perl".

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do "DateTime"
Exigidas

DateTime-Locale-1.37, DateTime-TimeZone-2.57

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do "DateTime::Format::Strptime"
Exigidas

DateTime-1.59

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.37

Introdução ao "DateTime::Locale"

"DateTime::Locale" fornece suporte a localização para DateTime-1.59.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do "DateTime::Locale"
Exigidas

Dist-CheckConflicts-0.11, File-ShareDir-1.118, namespace-autoclean-0.29 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.57

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do "DateTime::TimeZone"
Exigidas

Class-Singleton-1.6, Module-Runtime-0.016 e Params-ValidationCompiler-0.31, também

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.04

Introdução ao "Devel::StackTrace"

"Devel::StackTrace" fornece um objeto que representa um rastreamento de pilha.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.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 adequadamente usando uma plataforma LFS 11.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 adequadamente usando uma plataforma LFS 11.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 adequadamente usando uma plataforma LFS 11.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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do "Exception::Class"
Exigidas

Class-Data-Inheritable-0.09, Devel-StackTrace-2.04

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.006000

Introdução a 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 adequadamente usando uma plataforma LFS 11.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.08

Introdução a ExtUtils::LibBuilder

"ExtUtils::LibBuilder" é uma ferramenta para construir bibliotecas "C".

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do ExtUtils::LibBuilder
Exigidas

Module-Build-0.4232

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 adequadamente usando uma plataforma LFS 11.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 adequadamente usando uma plataforma LFS 11.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 adequadamente usando uma plataforma LFS 11.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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do File::Find::Rule
Exigidas

Number-Compare-0.03, 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.15

Introdução ao File::Listing

"File::Listing" analisa uma listagem de diretórios.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do File::Listing
Exigidas

HTTP-Date-6.05,

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do File::ShareDir
Exigidas

Class-Inspector-1.36, 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 adequadamente usando uma plataforma LFS 11.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.20

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 adequadamente usando uma plataforma LFS 11.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::Cookies-6.10

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.67) conhece.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do HTTP::Cookies
Exigidas

HTTP-Message-6.44

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.05

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 adequadamente usando uma plataforma LFS 11.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-6.44

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do HTTP::Message
Exigidas

Clone-0.46, Encode-Locale-1.05, HTTP-Date-6.05, IO-HTML-1.004, LWP-MediaTypes-6.04 e URI-5.17

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 adequadamente usando uma plataforma LFS 11.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

Importer-0.026

Introdução ao Importer

O "Importer" fornece uma interface alternativa, mas compatível, para módulos que exportam símbolos.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Instalação do Importer

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 adequadamente usando uma plataforma LFS 11.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 adequadamente usando uma plataforma LFS 11.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 adequadamente usando uma plataforma LFS 11.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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do List::SomeUtils
Exigidas

Module-Implementation-0.09, 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 adequadamente usando uma plataforma LFS 11.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 adequadamente usando uma plataforma LFS 11.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 adequadamente usando uma plataforma LFS 11.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::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 adequadamente usando uma plataforma LFS 11.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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do Module::Implementation
Exigidas

Module-Runtime-0.016, Try-Tiny-0.31

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::Pluggable-5.2

Introdução ao Module::Pluggable

"Module::Pluggable" fornece uma maneira de ter "plugins" para o seu módulo.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Instalação do Module::Pluggable

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 adequadamente usando uma plataforma LFS 11.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 adequadamente usando uma plataforma LFS 11.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.29

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do namespace::autoclean
Exigidas

namespace-clean-0.27, Sub-Identify-0.14

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do namespace::clean
Exigidas

B-Hooks-EndOfScope-0.26, 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.22

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do Net::HTTP
Exigidas

URI-5.17

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.92

Introdução ao Net::SSLeay

"Net::SSLeay" é uma extensão "PERL" para usar "OpenSSL".

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Instalação do Net::SSLeay

Nota

Se habilitar os testes externos, [então] 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

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.

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 adequadamente usando uma plataforma LFS 11.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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do Package::Stash
Exigidas

Dist-CheckConflicts-0.11, 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do Params::Validate
Exigidas

Module-Build-0.4232, 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do Params::ValidationCompiler
Exigidas

Exception-Class-1.45, Specio-0.48

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.144

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 adequadamente usando uma plataforma LFS 11.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 adequadamente usando uma plataforma LFS 11.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 adequadamente usando uma plataforma LFS 11.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.48

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do Specio
Exigidas

Devel-StackTrace-2.04, Eval-Closure-0.14, Module-Runtime-0.016, Role-Tiny-2.002004, Sub-Quote-2.006008 e Try-Tiny-0.31

Recomendadas (exigidas para a suíte de teste)
Opcionais

namespace-autoclean-0.29 (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 adequadamente usando uma plataforma LFS 11.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::Identify-0.14

Introdução ao Sub::Identify

"Sub::Identify" te permite recuperar o nome real das referências de código. É encorajado migrar para "Sub::Util" (um módulo central) quando possível.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Instalação do Sub::Identify

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::Info-0.002

Introdução ao Sub::Info

"Sub::Info" é uma ferramenta para inspecionar sub-rotinas.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do Sub::Info
Exigidas

Importer-0.026

Instalação do Sub::Info

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 adequadamente usando uma plataforma LFS 11.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 adequadamente usando uma plataforma LFS 11.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

SUPER-1.20190531

Introdução ao SUPER

"SUPER" fornece métodos mais fáceis para despachar o controle para a superclasse (ao subclassificar uma classe).

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do SUPER
Recomendadas (exigidas para a suíte de teste)

Instalação do SUPER

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.016

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do Term::Table
Exigidas

Importer-0.026

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 adequadamente usando uma plataforma LFS 11.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 adequadamente usando uma plataforma LFS 11.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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do Test::Fatal
Exigidas

Try-Tiny-0.31

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.993

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 adequadamente usando uma plataforma LFS 11.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 adequadamente usando uma plataforma LFS 11.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.144 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 adequadamente usando uma plataforma LFS 11.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::MockModule-v0.176.0

Introdução ao Test::MockModule

"Test::MockModule" te permite redefinir temporariamente sub-rotinas em outros pacotes para os propósitos de teste de unidade.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do Test::MockModule
Exigidas

Module-Build-0.4232, SUPER-1.20190531

Recomendadas (exigidas para a suíte de teste)

Instalação do Test::MockModule

Esse módulo é construído usando Build.PL:

perl Build.PL &&
./Build       &&
./Build test

Agora, como o(a) usuário(a) root:

./Build 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 adequadamente usando uma plataforma LFS 11.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 adequadamente usando uma plataforma LFS 11.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 em recursos não locais da Internet.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.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::utf8-1.02

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 adequadamente usando uma plataforma LFS 11.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.031

Introdução ao Test::Warnings

"Test::Warnings" testa para avisos e a falta deles.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.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.21

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 adequadamente usando uma plataforma LFS 11.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.09

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do Test2::Plugin::NoWarnings
Exigidas

Test2-Suite-0.000145

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

Test2::Suite-0.000145

Introdução ao Test2::Suite

"Test2::Suite" é uma distribuição com um rico conjunto de ferramentas construídas sobre a estrutura "Test2".

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do Test2::Suite
Exigidas

Module-Pluggable-5.2, Scope-Guard-0.21, Sub-Info-0.002 e Term-Table-0.016

Instalação do Test2::Suite

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.49

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 adequadamente usando uma plataforma LFS 11.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 adequadamente usando uma plataforma LFS 11.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 adequadamente usando uma plataforma LFS 11.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.227

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 adequadamente usando uma plataforma LFS 11.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 adequadamente usando uma plataforma LFS 11.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.31

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do Try::Tiny
Opcionais (podem ser usadas pela suíte de teste)

Capture-Tiny-0.48

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.63

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 adequadamente usando uma plataforma LFS 11.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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do WWW::RobotRules
Exigidas (tempo de execução)

libwww-perl-6.67 (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.0208

Introdução ao XML::LibXML

"XML::LibXML" é uma ligação "Perl" para libxml2-2.10.3.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do XML::LibXML
Exigidas

Alien-Libxml2-0.19, XML-SAX-1.02

Instalação do XML::LibXML

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 adequadamente usando uma plataforma LFS 11.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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do XML::SAX
Exigidas

libxml2-2.10.3, 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 adequadamente usando uma plataforma LFS 11.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.2.3

Introduction to PHP

PHP is the PHP Hypertext Preprocessor. Primarily used in dynamic web sites, it allows for programming code to be directly embedded into the HTML markup. It is also useful as a general purpose scripting language.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Package Information

  • Download (HTTP): https://www.php.net/distributions/php-8.2.3.tar.xz

  • Download (FTP):

  • Download MD5 sum: cb768cf744184e64d48b15305c437336

  • Download size: 11 MB

  • Estimated disk space required: 673 MB (com a documentação)

  • Estimated build time: 1,7 UPC (com paralelismo=4; adicionar 1,6 UPC para os testes)

Additional Downloads

PHP Dependencies

Recommended
Optional System Utilities and Libraries

Aspell-0.60.8, enchant-2.3.3, libxslt-1.1.37, an MTA (that provides a sendmail command), pcre2-10.42, Pth-2.0.7, AppArmor, Dmalloc, Net-SNMP, oniguruma, OSSP mm, re2c, and XMLRPC-EPI

Optional Graphics Utilities and Libraries

FreeType-2.13.0, libexif-0.6.24, libjpeg-turbo-2.1.5.1, libpng-1.6.39, libtiff-4.5.0, libwebp-1.3.0, um ambiente gráfico, FDF Toolkit, GD, and t1lib

Optional Web Utilities

cURL-7.88.1, tidy-html5-5.8.0, Caudium, Hyperwave, Roxen WebServer, and WDDX

Optional Data Management Utilities and Libraries

Base de Dados Berkeley-5.3.28 (Note that PHP does not officially support versions above 5.3), libiodbc-3.52.15, lmdb-0.9.29, MariaDB-10.6.12 or MySQL, OpenLDAP-2.6.4, PostgreSQL-15.2, SQLite-3.40.1, unixODBC-2.3.11, Adabas, Birdstep, cdb, DBMaker, Empress, FrontBase, IBM DB2, Mini SQL, Monetra, and QDBM

PHP also provides support for many commercial database tools such as Oracle, SAP and ODBC Router.

Optional Security/Encryption Utilities and Libraries

Cyrus SASL-2.1.28, MIT Kerberos V5-1.20.1, libmcrypt, and mhash

User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/php

Installation of PHP

You can use PHP for server-side scripting, command-line scripting or client-side GUI applications. This book provides instructions for setting up PHP for server-side scripting as it is the most common form.

Nota

PHP has many more configure options that will enable support for various things. You can use ./configure --help to see a full list of the available options. Also, use of the PHP web site is highly recommended, as their online docs are very good. An example of a configure command that utilizes many of the most common dependencies can be found at https://anduin.linuxfromscratch.org/BLFS/files/php_configure.txt.

If, for whatever reason, you don't have libxml2-2.10.3 installed, you need to add --disable-libxml to the configure command in the instructions below. Note that this will prevent the pear command from being built.

Install PHP by running the following commands:

./configure --prefix=/usr                \
            --sysconfdir=/etc            \
            --localstatedir=/var         \
            --datadir=/usr/share/php     \
            --mandir=/usr/share/man      \
            --enable-fpm                 \
            --without-pear               \
            --with-fpm-user=apache       \
            --with-fpm-group=apache      \
            --with-fpm-systemd           \
            --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

To test the results, issue: make test. Several tests (out of over 16000) 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" | .

Now, as the root user:

make install                                     &&
install -v -m644 php.ini-production /etc/php.ini &&

install -v -m755 -d /usr/share/doc/php-8.2.3 &&
install -v -m644    CODING_STANDARDS* EXTENSIONS NEWS README* UPGRADING* \
                    /usr/share/doc/php-8.2.3

The default configuration files for the fastCGI process manager are installed only if they do not already exist on the system. If this is the first installation, they should be renamed, as the root user:

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

The pre-built HTML documentation is packaged in two forms: a tarball containing many individual files, useful for quick loading into your browser, and one large individual file, which is useful for using the search utility of your browser. If you downloaded either, or both, of the documentation files, issue the following commands as the root user to install them (note these instructions assume English docs, modify the tarball names below if necessary).

For the Single HTML file:

install -v -m644 ../php_manual_en.html.gz \
    /usr/share/doc/php-8.2.3 &&
gunzip -v /usr/share/doc/php-8.2.3/php_manual_en.html.gz

For the Many HTML files tarball:

tar -xvf ../php_manual_en.tar.gz \
    -C /usr/share/doc/php-8.2.3 --no-same-owner

The bundled pear is not installed because of a bug which might pollute the filesystem with several hidden files and directories. If pear is needed, execute the following commands to install it:

wget https://pear.php.net/go-pear.phar
php ./go-pear.phar

Command Explanations

--datadir=/usr/share/php: This works around a bug in the build machinery, which installs some data to a wrong location.

--enable-fpm: This parameter allows building the fastCGI Process Manager.

--with-fpm-systemd: This parameter allows the FastCGI Process Manager to integrate with systemd.

--without-pear: This switch disables installation of bundled pear software.

--with-config-file-path=/etc: This parameter makes PHP look for the php.ini configuration file in /etc.

--with-zlib: This parameter adds support for Zlib compression.

--enable-bcmath: Enables bc style precision math functions.

--with-bz2: Adds support for Bzip2 compression functions.

--enable-calendar: This parameter provides support for calendar conversion.

--enable-dba=shared: This parameter enables support for database (dbm-style) abstraction layer functions.

--enable-ftp: This parameter enables FTP functions.

--with-gettext: Enables functions that use Gettext text translation.

--enable-mbstring: This parameter enables multibyte string support.

--with-readline: This parameter enables command line Readline support.

--disable-libxml: This option allows building PHP without libxml2 installed.

--with-apxs2: Instead of building the fastCGI process manager, it is possible to build an apache module. This has some performance penalty for heavy loaded servers, but may be easier to set up. This switch is incompatible with the --enable-fpm and --with-fpm-... switches.

--with-mysqli=shared: This option includes MySQLi support.

--with-mysql-sock=/run/mysqld/mysqld.sock: Location of the MySQL unix socket pointer.

--with-pdo-mysql=shared: This option includes PDO: MySQL support.

--with-tidy=shared: This option includes tidy library support.

Configuring PHP

Config Files

/etc/php.ini, /etc/pear.conf, /etc/php-fpm.conf, and /etc/php-fpm.d/www.conf

Configuration Information

The file used as the default /etc/php.ini configuration file is recommended by the PHP development team. This file modifies the default behavior of PHP. If no /etc/php.ini is used, all configuration settings fall to the defaults. You should review the comments in this file and ensure the changes are acceptable in your particular environment.

The fastCGI process manager uses the configuration file /etc/php-fpm.conf. The default file shipped with PHP includes all the /etc/php-fpm.d/*.conf in turn. There is a shipped /etc/php-fpm.d/www.conf file, that contains the parameters related to the interaction with the Apache Web server.

You may have noticed the following from the output of the make install command:

You may want to add: /usr/lib/php to your php.ini include_path

If desired, add the entry using the following command as the root user:

sed -i 's@php/includes"@&\ninclude_path = ".:/usr/lib/php"@' \
    /etc/php.ini

To enable fastCGI support in the Apache web server, two LoadModule directives must be added to the httpd.conf file. They are commented out, so just issue the following command as root user:

sed -i -e '/proxy_module/s/^#//'      \
       -e '/proxy_fcgi_module/s/^#//' \
       /etc/httpd/httpd.conf

Those modules accept various ProxyPass directives. One possibility is (as the root user):

echo \
'ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/srv/www/$1' >> \
/etc/httpd/httpd.conf

Additionally, it may be useful to add an entry for index.php to the DirectoryIndex directive of the httpd.conf file. Lastly, adding a line to set up the .phps extension to show highlighted PHP source may be desirable:

AddType application/x-httpd-php-source .phps

You'll need to restart the Apache web server after making any modifications to the httpd.conf file.

Systemd Unit

To start the php-fpm daemon at boot, install the systemd unit from the blfs-systemd-units-20220720 package by running the following command as the root user:

make install-php-fpm

Contents

Installed Programs: phar (symlink), phar.phar, php, php-cgi, php-config, php-fpm, phpdbg, and phpize
Installed Libraries: dba.so and opcache.so in /usr/lib/php/extensions/no-debug-non-zts-20220829
Installed Directories: /etc/php-fpm.d, /usr/{include,lib,share}/php, and /usr/share/doc/php-8.2.3

Short Descriptions

php

is a command line interface that enables you to parse and execute PHP code

pear

is the PHP Extension and Application Repository (PEAR) package manager. This isn't installed by default

php-fpm

is the fastCGI process manager for PHP

phpdbg

is the interactive PHP debugger

Python-2.7.18

Introdução ao Python 2

O pacote "Python 2" contém o ambiente de desenvolvimento "Python". Ele é útil para programação orientada a objetos, escrita de conjuntos sequenciais de comandos, prototipagem de aplicativos grandes ou desenvolvimento de aplicativos inteiros. Essa versão é para compatibilidade retroativa com outros pacotes dependentes.

Nota

"Python2" foi descontinuado pelos(as) desenvolvedores(as) produtores(as). O suporte para "Python2" foi descontinuado em 1º de janeiro de 2020.

O BLFS está tentando usar "Python3" tanto quanto possível, mas alguns pacotes não foram atualizados para suportar "Python3".

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://www.python.org/ftp/python/2.7.18/Python-2.7.18.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: fd6cc8ec0a78c44036f825e739f36e5a

  • Tamanho da transferência: 12,2 MB

  • Espaço em disco estimado exigido: 228 MB (adicionar 17 MB para os testes)

  • Tempo de construção estimado: 0,5 UPC (Usando paralelismo=4; adicionar 5,9 UPC para os testes)

Transferências Adicionais

Dependências do "Python" 2

Recomendadas
Opcionais

BlueZ-5.66 e Valgrind-3.20.0

Opcionais (Para mais módulos adicionais)

libnsl-2.0.0 e Tk-8.6.13

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/Python

Instalação do Python 2

Primeiro, desabilite a instalação de um conjunto sequencial de comandos que sobrescreve um conjunto sequencial de comandos mais recente:

sed -i '/2to3/d' ./setup.py

Instale o "Python 2" executando os seguintes comandos:

patch -Np1 -i ../Python-2.7.18-security_fixes-1.patch &&
./configure --prefix=/usr                             \
            --enable-shared                            \
            --with-system-expat                        \
            --with-system-ffi                          \
            --enable-unicode=ucs4                     &&
make

Se você invocar os testes, [então] eles executarão duas vezes. Para testar os resultados, emita: "make -k test". Vários testes são conhecidos por falharem, incluindo "test_ftplib", "test_ssl", "test_urllib2_localnet", "test_xml_etree", "test_xml_etree_c" e "test_minidom". Essas falhas são devidas ao "OpenSSL-3" e ao "Expat-2.4.6".

Agora, como o(a) usuário(a) "root":

make altinstall                               &&
ln -s python2.7        /usr/bin/python2        &&
ln -s python2.7-config /usr/bin/python2-config &&
chmod -v 755 /usr/lib/libpython2.7.so.1.0

Como o "Python 2" está em modo de manutenção e o "Python 3" é recomendado pelo(a) produtor(a) para desenvolvimento, você provavelmente não precisa instalar a documentação. No entanto, se você ainda quiser instalar a documentação para ambas as versões do "Python", [então] certifique-se de definir a variável "PYTHONDOCS" para a versão que deseja usar, cada vez que precisar consultar a documentação. Se você baixou a documentação pré-formatada a partir de https://docs.python.org/download.html, [então] instale-a como o(a) usuário(a) "root":

install -v -dm755 /usr/share/doc/python-2.7.18 &&

tar --strip-components=1                    \
    --no-same-owner                          \
    --directory /usr/share/doc/python-2.7.18 \
    -xvf ../python-2.7.18-docs-html.tar.bz2 &&

find /usr/share/doc/python-2.7.18 -type d -exec chmod 0755 {} \; &&
find /usr/share/doc/python-2.7.18 -type f -exec chmod 0644 {} \;

Explicações do Comando

--with-system-expat: Essa chave habilita vincular à versão do sistema do "Expat".

--with-system-ffi: Essa chave habilita vincular à versão do sistema da "libffi".

--enable-unicode=ucs4: Essa chave habilita o suporte "Unicode" de 32 bits no "Python".

--with-ensurepip=yes : Essa chave habilita construir os aplicativos de empacotamento "pip" e "setuptools". "setuptools" é necessário para construir alguns módulos "Python". Essa chave não é recomendada porque essa versão do "Python" não mais é mantida.

--with-dbmliborder=bdb:gdbm:ndbm: Use essa chave se você desejar construir o módulo "DBM" do "Python" contra "Berkeley DB" em vez do "GDBM".

make altinstall: Esse alvo do "make" omite alguns links simbólicos padrão que possivelmente interfiram no "Python" 3.

chmod ...: Corrige permissões para bibliotecas serem consistentes com outras bibliotecas.

Configurando o Python 2

Para a finalidade de que "python" encontre a documentação instalada, você precisa adicionar a seguinte variável de ambiente ao perfil individual do(a) usuário(a) ou ao do sistema:

export PYTHONDOCS=/usr/share/doc/python-2.7.18

Conteúdo

Aplicativos Instalados: pydoc, python2 (link simbólico), python2-config (link simbólico), python2.7, python2.7-config, smtpd.py e idle
Biblioteca Instalada: libpython2.7.so
Diretórios Instalados: /usr/{include,lib}/python2.7 e /usr/share/doc/python-2.7.18

Descrições Curtas

idle

é um conjunto sequencial de comandos envólucros que abre 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

pydoc

é a ferramenta de documentação do "Python"

python2

é uma linguagem de programação interpretada, interativa e orientada a objetos

python2.7

é um nome específico de versão para o aplicativo "python"

smtpd.py

é um "proxy" "SMTP" implementado em "Python"

Python-3.11.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 adequadamente usando uma plataforma LFS 11.3.

Importante

Se atualizar para uma nova versão menor do "Python" 3 (por exemplo, de "Python-3.10.x" para "Python-3.11.0"), [então] você precisará reinstalar quaisquer módulos "Python3" que tiver instalado. Você também deveria reinstalar pacotes que gerem módulos "Python3", incluindo "gobject-introspection-1.74.0", "opencv-4.7.0", "Graphviz-7.1.0" (se o "swig" estiver instalado).

Antes de atualizar, você pode obter uma lista completa dos módulos instalados com "pip3 list".

O módulo "wheel" e "meson" oriundos do LFS também terão de ser reinstalados: https://www.linuxfromscratch.org/lfs/view/development/chapter08/wheel.html e https://www.linuxfromscratch.org/lfs/view/development/chapter08/meson.html.

Em sistemas "systemd", também é necessário reinstalar os módulos "MarkupSafe" e "Jinja2" oriundos do LFS: https://www.linuxfromscratch.org/lfs/view/systemd/chapter08/markupsafe.html e https://www.linuxfromscratch.org/lfs/view/systemd/chapter08/jinja2.html.

Informação do Pacote

  • Transferência (HTTP): https://www.python.org/ftp/python/3.11.2/Python-3.11.2.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: a957cffb58a89303b62124896881950b

  • Tamanho da transferência: 19 MB

  • Espaço em disco estimado exigido: 283 MB (adicionar 897 MB para os testes)

  • Tempo de construção estimado: 2,2 UPC (adicionar 3,4 UPC para os testes; ambos usando paralelismo=4)

Transferência Adicional Opcional

Dependências do "Python" 3

Recomendadas
Opcionais

BlueZ-5.66, GDB-13.1 (exigido para alguns testes), Valgrind-3.20.0 e libmpdec

Opcionais (Para Módulos Adicionais)

Base de Dados Berkeley-5.3.28, libnsl-2.0.0 e Tk-8.6.13

Observações de Usuário(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  \
            --with-system-ffi    \
            --enable-optimizations &&
make

Para testar o resultado, emita "make test". Alguns testes possivelmente precisem de uma conexão com a Internet. Dois testes, "test_distutils" e "test_embed", são conhecidos por falharem.

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.11.2/html

tar --strip-components=1 \
    --no-same-owner       \
    --no-same-permissions \
    -C /usr/share/doc/python-3.11.2/html \
    -xvf ../python-3.11.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 vincular à versão do sistema do "Expat".

--with-system-ffi: Essa chave habilita vincular à versão do sistema da "libffi".

--with-dbmliborder=bdb:gdbm:ndbm: Use essa chave se você desejar construir o módulo "DBM" do "Python" contra "Berkeley DB" em vez de "GDBM".

--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.11/config-3.11-<arch>-linux-gnu/libpython3.11.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.11.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.11, idle3 (link simbólico) e idle3.11, pip3 (link simbólico) e pip3.11, pydoc3 e pydoc3.11, python3 (link simbólico); python3.11 e python3-config (link simbólico) e python3.11-config
Bibliotecas Instaladas: libpython3.11.so e libpython3.so
Diretórios Instalados: /usr/include/python3.11, /usr/lib/python3.11 e /usr/share/doc/python-3.11.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.11

é um nome específico de versão para o aplicativo "python"

Módulos "Python"

Introdução aos Módulos 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.

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, [então] insira --force-reinstall na linha de comando.

Asciidoc-10.2.0

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do Asciidoc
Opcionais (tempo de execução)

docbook-xsl-nons-1.79.2, fop-2.8, libxslt-1.1.37, Lynx-2.8.9rel.1, dblatex e W3m

Instalação do Asciidoc

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps $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-cache-dir --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.11/site-packages/asciidoc e /usr/lib/python3.11/site-packages/asciidoc-10.2.0.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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do CSSSelect
Exigidas

setuptools_scm-7.1.0

Opcionais (para testagem)

pluggy-1.0.0 e pytest-7.2.1

Instalação do CSSSelect

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps $PWD

Agora, como o(a) usuário(a) root:

pip3 install --no-index --find-links dist --no-cache-dir --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.11/site-packages/cssselect

CacheControl-0.12.11

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do CacheControl
Exigidas

msgpack-1.0.4 e requests-2.28.2

Instalação do CacheControl

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps $PWD

Agora, como o(a) usuário(a) root:

pip3 install --no-index --find-links dist --no-cache-dir --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.11/site-packages/CacheControl-0.12.11.dist-info e /usr/lib/python3.11/site-packages/cachecontrol
Descrições Curtas

doesitcache

é um script de linha de comando não documentado.

Cython-0.29.33

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Instalação do Cython

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps $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-cache-dir --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 cythonize
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/lib/python3.11/site-packages/Cython, /usr/lib/python3.11/site-packages/Cython-0.29.33.dist-info e /usr/lib/python3.11/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.28.7

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do dbusmock
Exigidas

D-Bus Python-1.3.2

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/dbusmock

Instalação do dbusmock

Construa o pacote com:

pip3 wheel -w dist --no-build-isolation --no-deps $PWD

Para instalar o pacote execute o seguinte como o(a) usuário(a) root:

pip3 install --no-index --find-links dist --no-cache-dir --no-user python-dbusmock

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.11/site-packages/dbusmock e /usr/lib/python3.11/site-packages/python_dbusmock-0.28.7.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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do "D-Bus Python"
Exigidas

dbus-1.14.6, GLib-2.74.5, meson_python-0.12.0 e patchelf-0.17.2

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/dbus-python

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 $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-cache-dir --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.11/site-packages/dbus e /usr/lib/python3.11/site-packages/dbus_python-1.3.2.egg-info

docutils-0.19

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/docutils

Instalação do docutils

Para construir os aplicativos "Python 3", execute o seguinte comando:

pip3 wheel -w dist --no-build-isolation --no-deps $PWD

Para instalar os aplicativos "Python" execute o seguinte como o(a) usuário(a) "root":

pip3 install --no-index --find-links dist --no-cache-dir --no-user docutils &&

for f in /usr/bin/rst*.py; do
   ln -svf $(basename $f) /usr/bin/$(basename $f .py)
done

Para reduzir o tempo necessário para carregar "scripts" "Python", "pip3 install" compilará os "scripts" com extensão ".py" em código de bytes e salvará o resultado em arquivos ".pyc" no diretório "__pycache__". Mas esse pacote instala "scripts" ".py" em "/usr/bin". Portanto, os arquivos de código de bytes para eles serão instalados em "/usr/bin/__pycache__", o que não é permitido pelo "FHS". Ainda como o(a) usuário(a) "root", remova esse diretório:

rm -rfv /usr/bin/__pycache__

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.11/site-packages/docutils{,-0.19.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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do Doxypypy
Exigidas

chardet-5.1.0 e Doxygen-1.9.6 (em tempo de execução)

Instalação do Doxypypy

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps $PWD

Agora, como o(a) usuário(a) root:

pip3 install --no-index --find-links dist --no-cache-dir --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.11/site-packages/doxypypy e /usr/lib/python3.11/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.2

Introdução ao Módulo Doxyqml

O pacote "Doxyqml" permite usar "Doxygen" para documentar classes "QML".

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do Doxyqml
Exigidas (Tempo de Execução)

Doxygen-1.9.6

Opcionais (para testagem)

pytest-7.2.1

Instalação do Doxyqml

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps $PWD

Agora, como o(a) usuário(a) root:

pip3 install --no-index --find-links dist --no-cache-dir --no-user doxyqml

Para testar a instalação, execute:

pytest

O teste "test_qmlclass.py" é 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: doxyqml
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/lib/python3.11/site-packages/doxyqml e /usr/lib/python3.11/site-packages/doxyqml-0.5.2.dist-info
Descrições Curtas

doxyqml

é um filtro de entrada "Doxygen" para arquivos "QML".

Gi-DocGen-2023.1

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 "API" dessas bibliotecas, bem como outras documentações auxiliares.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do Gi-DocGen
Exigidas

Markdown-3.4.1, Pygments-2.14.0 e typogrify-2.0.7

Opcionais (para testagem)

pytest-7.2.1

Instalação do gi-docgen

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps $PWD

Agora, como o(a) usuário(a) root:

pip3 install --no-index --find-links dist --no-cache-dir --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.11/site-packages/gidocgen e /usr/lib/python3.11/site-packages/gi_docgen-2023.1.dist-info

Descrições Curtas

gi-docgen

gerencia documentação para bibliotecas baseadas em "libgobject".

libxml2-2.10.3 (para o módulo Python2 dele)

Introdução ao módulo Python2 libxml2

Essas instruções fornecem as ligações "Python2" para a "libxml2": as ligações "Python3" são construídas como parte de libxml2-2.10.3 e a maioria dos pacotes no livro não usa essas ligações para o mais antigo "Python2".

Ao construir essas ligações depois que o libxml2-2.10.3 tenha sido instalado, não existe necessidade de reconstruir a parte principal demorada (se todas as dependências forem usadas) desse pacote.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do libxml2 (Python2)
Exigidas

libxml2-2.10.3 e Python-2.7.18

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libxml2

Instalação do módulo Python2 libxml2

Para construir o módulo "Python 2", execute:

./configure PYTHON=python2 &&
cd python                 &&
python2 setup.py build

Para instalar o módulo "Python 2", como o(a) usuário(a) "root", execute:

python2 setup.py install --optimize=1

Conteúdo

Módulos Instalados: drv_libxml2.py, libxml2.py
Bibliotecas Instaladas: libxml2mod.so
Diretórios Instalados: Nenhum(a)

Descrições Curtas

drv_libxml2.py

é um controlador "SAX" "Python2" para a "libxml2"

libxml2.py

é a ligação "Python2" para a "libxml2"

libxml2mod.so

é a interface para "Python2" usar "libxml2.so"

lxml-4.9.2

Introdução ao Módulo lxml

"lxml" fornece ligações "Python" para libxslt-1.1.37 e libxml2-2.10.3.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do lxml
Exigidas

libxslt-1.1.37

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/lxml

Instalação do lxml

Para construir o módulo "Python 3", execute:

pip3 wheel -w dist --no-build-isolation --no-deps $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-cache-dir --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.11/site-packages/lxml e /usr/lib/python3.11/site-packages/lxml-4.9.2.dist-info

Mako-1.2.4

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
  • Transferência (HTTP): https://files.pythonhosted.org/packages/source/M/Mako/Mako-1.2.4.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 651f365616611fcd4f2702a9002e2195

  • Tamanho da transferência: 485 KB

  • Espaço em disco estimado exigido: 3,9 MB (adicionar 1,2 MB para os testes)

  • Tempo de construção estimado: menos que 0,1 UPC (com os testes)

Dependências do Mako
Opcionais (para testagem)

pytest-7.2.1

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/Mako

Instalação do Mako

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps $PWD

Instale o módulo como o(a) usuário(a) "root":

pip3 install --no-index --find-links dist --no-cache-dir --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.11/site-packages/mako e /usr/lib/python3.11/site-packages/Mako-1.2.4.dist-info
Descrições Curtas

mako-render

renderiza um modelo

NumPy-1.24.2

Introdução ao Módulo NumPy

"NumPy" é o pacote fundamental para computação científica com "Python".

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do NumPy
Exigidas

cython-0.29.33

Opcionais

fortran oriundo do GCC-12.2.0, lapack e cblas, openblas

Opcionais (para testagem)

attrs-22.2.0, pytest-7.2.1, hypothesis

Instalação do NumPy

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps $PWD

Agora, como o(a) usuário(a) root:

pip3 install --no-index --find-links dist --no-cache-dir --no-user numpy

A instalação pode ser testada com os seguintes comandos:

python3 -m venv --system-site-packages testenv &&
source testenv/bin/activate                   &&
pip3 install hypothesis                        &&
python3 runtests.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: f2py, f2py3 e f2py3.11 (três cópias do mesmo "script")
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/lib/python3.11/site-packages/numpy
Descrições Curtas

f2py

é o utilitário gerador de interface "Fortran" para "Python".

Packaging-23.0

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 ou se beneficiam muito de ter uma implementação compartilhada.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do Packaging
Exigidas

flit_core-3.8.0

Opcionais (para testagem)

pytest-7.2.1 e pretend

Instalação do Packaging

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps $PWD

Agora, como o(a) usuário(a) root:

pip3 install --no-index --find-links dist --no-cache-dir --no-user packaging

Supondo que "pytest-7.2.1" 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.11/site-packages/packaging e /usr/lib/python3.11/site-packages/packaging-23.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 adequadamente usando uma plataforma LFS 11.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 os testes)

  • Tempo de construção estimado: menos que 0,1 UPC (com os testes)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/py3c

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.0

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do PyAtSpi2
Exigidas

PyGObject-3.42.2

Recomendadas

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/pyatspi2

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.11/site-packages/pyatspi

PyCairo-1.18.2

Introdução ao Módulo PyCairo para Python2

Essa versão do "PyCairo" fornece ligações "Python2" para "Cairo".

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do PyCairo
Exigidas

Cairo-1.17.6 e Python-2.7.18

Opcionais

Hypothesis (para testes)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/pycairo

Instalação do PyCairo

Nota

Essa versão do "PyCairo" é mantida somente para pacotes, como "Gimp-2.10.32", que ficam presos ao "Python2" até que o "Gimp-3" seja lançado.

Instale "PyCairo" para "Python2" executando os seguintes comandos:

python2 setup.py build

Esse pacote no vem com uma sute de teste.

Agora, como o(a) usuário(a) "root":

python2 setup.py install --optimize=1  &&
python2 setup.py install_pycairo_header &&
python2 setup.py install_pkgconfig

Conteúdo

Aplicativo Instalado: Nenhum(a)
Biblioteca Instalada: _cairo.so
Diretórios Instalados: /usr/include/pycairo, /usr/lib/python2.7/site-packages/cairo e /usr/lib/python2.7/site-packages/pycairo-1.18.2-py2.7.egg

PyCairo-1.23.0

Introdução ao Módulo PyCairo

"PyCairo" fornece ligações "Python" para "Cairo".

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do PyCairo
Exigidas

Cairo-1.17.6

Opcionais

Hypothesis e pytest-7.2.1 (para testes)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/pycairo

Instalação do PyCairo

Nota

A versão atual do "pycairo" não mais constrói o módulo "Python2". Se você precisar desse módulo para pacotes como "Gimp-2.10.32", [então] use "PyCairo-1.18.2"

Instale "PyCairo" para "Python3" executando os seguintes comandos:

mkdir build &&
cd   build &&

meson --prefix=/usr --buildtype=release .. &&
ninja

Para executar os testes, esse pacote exige o módulo opcional "pytest". Se ele estiver instalado, [então] execute os testes executando "ninja test". O teste "test_surface.py" tem uma falha.

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.11/site-packages/cairo e /usr/lib/python3.11/site-packages/pycairo-1.23.0.egg-info

PyCryptodome-3.17.0

Introdução ao Módulo PyCryptodome

"PyCryptodome" é uma coleção tanto de funções seguras de resumo (como "SHA256" e "RIPEMD160") quanto de vários algoritmos de encriptação ("AES", "DES", "RSA", "ElGamal", etc.) e é um substituto imediato para "PyCrypto".

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/pycryptodome

Instalação do PyCryptodome

Para construir "PyCryptodome" como um módulo "Python" 3, execute o seguinte comando:

pip3 wheel -w dist --no-build-isolation --no-deps $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-cache-dir --no-user pycryptodome

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.11/site-packages/Crypto e /usr/lib/python3.11/site-packages/pycryptodome-3.17.0.dist-info

Pygments-2.14.0

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/pygments

Instalação do Pygments

Construa o módulo "Python 3":

pip3 wheel -w dist --no-build-isolation --no-deps $PWD

Para instalar o pacote execute o seguinte como o usuário "root":

pip3 install --no-index --find-links dist --no-cache-dir --no-user Pygments

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.11/site-packages/pygments e /usr/lib/python3.11/site-packages/Pygments-2.14.0.dist-info

Descrições Curtas

pygmentize

realça um arquivo de entrada e escreve o resultado em um arquivo de saída

PyGObject-2.28.7

Introdução ao Módulo PyGObject

"PyGObject-2.28.7" fornece ligações "Python 2" para a classe "GObject" originária da "GLib".

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do PyGObject
Exigidas

GLib-2.74.5, PyCairo-1.18.2 e Python-2.7.18

Opcionais

gobject-introspection-1.74.0 e libxslt-1.1.37 (para construir a documentação)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/pygobject2

Instalação do PyGObject

Instale PyGObject executando os seguintes comandos:

./configure --prefix=/usr --disable-introspection &&
make

Esse pacote não tem uma suíte funcional de teste.

Agora, como o(a) usuário(a) "root":

make install

Explicações do Comando

--disable-introspection: Omita essa chave se você tiver instalado "gobject-introspection-1.74.0". Observe que ela conflita com "PyGObject-3.42.2".

--disable-docs: Essa opção desabilita a reconstrução da documentação "HTML" se "libxslt-1.1.37" estiver instalado.

Conteúdo

Aplicativos Instalados: pygobject-codegen-2.0
Bibliotecas Instaladas: libpyglib-2.0-python.so, _gio.so, unix.so, _glib.so e _gobject.so.
Diretórios Instalados: /usr/include/pygtk-2.0, /usr/lib/python2.7/site-packages/gtk-2.0/{gio,glib,gobject}, /usr/share/gtk-doc/html/pygobject e /usr/share/pygobject/2.0

PyGObject-3.42.2

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do PyGObject3
Exigidas

gobject-introspection-1.74.0 e PyCairo-1.23.0 (módulo "Python 3")

Opcionais (para os testes)

GTK-4.8.3, pep8, pyflakes e pytest-7.2.1

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/pygobject3

Instalação do PyGObject3

Primeiro, remova um teste defeituoso:

mv -v tests/test_gdbus.py{,.nouse}

Instale "pygobject3" executando os seguintes comandos:

mkdir build &&
cd   build &&

meson --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.8.3" 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: Nenhum(a)
Biblioteca Instalada: /usr/lib/python3.11/site-packages/gi/_gi{,_cairo}.cpython-311-<arch>-linux-gnu.so
Diretórios Instalados: /usr/include/pygobject-3.0 e /usr/lib/python3.11/site-packages/{gi,pygtkcompat}

PyGTK-2.24.0

Introdução ao Módulo PyGTK

"PyGTK" te permite criar facilmente aplicativos com uma interface gráfica de usuário(a) usando a linguagem de programação "Python".

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do PyGTK
Exigidas

PyGObject-2.28.7 e Python-2.7.18

Exigidas (módulo "atk")

at-spi2-core-2.46.0

Exigidas (módulo "pango")

Pango-1.50.12

Exigidas (módulo "pangocairo")

PyCairo-1.18.2 e Pango-1.50.12

Exigidas (módulos "gtk" e "gtk.unixprint")

PyCairo-1.18.2 e GTK+-2.24.33.

Exigidas (módulo "gtk.glade")

PyCairo-1.18.2 e libglade-2.6.4.

Opcionais

NumPy

Opcionais (para construir a documentação)

libxslt-1.1.37

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/pygtk

Instalação do PyGTK

Primeiro, adapte o "PyGTK" às mudanças no "Pango" removendo "APIs" indefinidas:

sed -i '1394,1402 d' pango.defs

Instale PyGTK executando os seguintes comandos:

./configure --prefix=/usr &&
make

Os testes precisam ser executados a partir de uma tela ativa do "X". Se for assim, emita: "make check".

Agora, como o(a) usuário(a) "root":

make install

Explicações do Comando

--enable-docs: Essa opção habilita reconstruir a documentação "HTML" se "libxslt-1.1.37" estiver instalado.

Conteúdo

Aplicativos Instalados: pygtk-codegen-2.0 e pygtk-demo.
Bibliotecas Instaladas: atk.so, _gtk.so, glade.so, gtkunixprint.so, pango.so e pangocairo.so.
Diretórios Instalados: /usr/include/pygtk-2.0, /usr/lib/pygtk, /usr/lib/python2.7/site-packages/gtk-2.0, /usr/share/gtk-doc/html/pygtk e /usr/share/pygtk.
Descrições Curtas

pygtk-codegen-2.0

é um "script" envólucro para executar o módulo "codegen" do "PyGTK"

pygtk-demo

é um envólucro "Python" para executar o programa de demonstração "PyGTK"

pyparsing-3.0.9

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do pyparsing
Exigidas

flit_core-3.8.0

Opcionais

railroad-diagrams (também necessário para os testes)

Opcionais (para testagem)

pytest-7.2.1

Instalação do pyparsing

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps $PWD

Agora, como o(a) usuário(a) "root":

pip3 install --no-index --find-links dist --no-cache-dir --no-user pyparsing

Supondo que "pytest-7.2.1" 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                 &&
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.11/site-packages/pyparsing e /usr/lib/python3.11/site-packages/pyparsing-3.0.9.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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do pySerial
Exigidas

setuptools_scm-7.1.0

Opcionais (para testagem)

pluggy-1.0.0 e pytest-7.2.1

Instalação do pySerial

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps $PWD

Agora, como o(a) usuário(a) "root":

pip3 install --no-index --find-links dist --no-cache-dir --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.11/site-packages/pyserial-3.5.dist-info e /usr/lib/python3.11/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-7.2.1

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
  • Transferência (HTTP): https://files.pythonhosted.org/packages/source/p/pytest/pytest-7.2.1.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 366a4047534ef0485f700c20bb574f67

  • Tamanho da transferência: 1,2 MB

  • Espaço em disco estimado exigido: 10 MB (adicionar 31 MB para os testes)

  • Tempo de construção estimado: menos que 0,1 UPC (1,1 UPC para os testes)

Dependências do Pytest
Exigidas

attrs-22.2.0, iniconfig-2.0.0, packaging-23.0, pluggy-1.0.0 e py-1.11.0

Recomendadas
Opcionais (para testagem)

Pygments-2.14.0, requests-2.28.2, argcomplete, hypothesis, mock, nose e xmlschema

Instalação do Pytest

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps $PWD

Agora, como o(a) usuário(a) "root":

pip3 install --no-index --find-links dist --no-cache-dir --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[testing]                   &&
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.11/site-packages/_pytest, /usr/lib/python3.11/site-packages/pytest e /usr/lib/python3.11/site-packages/pytest-7.2.1.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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/pyxdg

Instalação do PyXDG

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps $PWD

Instale o módulo como o(a) usuário(a) "root":

pip3 install --no-index --find-links dist --no-cache-dir --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.11/site-packages/xdg e /usr/lib/python3.11/site-packages/pyxdg-0.28.dist-info

PyYAML-6.0

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do PyYAML
Exigidas

cython-0.29.33 e libyaml-0.2.5

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/PyYAML

Instalação do PyYAML

Construa "PyYAML" com o seguinte comando:

pip3 wheel -w dist --no-build-isolation --no-deps $PWD

Agora, instale o módulo como o usuário "root":

pip3 install --no-index --find-links dist --no-cache-dir --no-user PyYAML

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/python2.7/site-packages/yaml e /usr/lib/python3.11/site-packages/PyYAML-0.2.5.dist-info

Recommonmark-0.7.1

Introdução ao Módulo Recommonmark

"Recommonmark" é uma ponte de compatibilidade "docutils" para o "CommonMark". Permite escrever "CommonMark" dentro de projetos "Docutils" e "Sphinx". "Recommonmark" agora está obsoleto em favor de MyST-Parser. Infelizmente, LLVM-15.0.7 ainda depende desse módulo.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do Recommonmark
Exigidas

commonmark-0.9.1 e sphinx-6.1.3

Opcionais (para testagem)

pytest-7.2.1

Instalação do Recommonmark

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps $PWD

Agora, como o(a) usuário(a) root:

pip3 install --no-index --find-links dist --no-cache-dir --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.11/site-packages/recommonmark e /usr/lib/python3.11/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.28.2

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Transferência Adicional
Dependências do Requests
Exigidas

charset-normalizer-3.0.1, idna-3.4 e urllib3-1.26.14

Recomendadas
Opcionais

PySocks (também necessário para testagem)

Opcionais (para testagem)

pytest-7.2.1, 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.28.2-use_system_certs-1.patch

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps $PWD

Agora, como o(a) usuário(a) "root":

pip3 install --no-index --find-links dist --no-cache-dir --no-user requests

Supondo que "pytest-7.2.1" 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.12" 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.11/site-packages/requests e /usr/lib/python3.11/site-packages/requests-2.28.2.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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do Scour
Exigidas

six-1.16.0

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/scour

Instalação do scour

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps $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-cache-dir --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.11/site-packages/scour e /usr/lib/python3.11/site-packages/scour-0.38.2.dist-info

Descrições Curtas

scour

é um aplicativo para otimizar e limpar arquivos "SVG"

six-1.16.0

Introdução ao Módulo Six

"Six" é uma biblioteca de compatibilidade "Python" 2 a 3.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/six

Instalação do Six

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps $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-cache-dir --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.11/site-packages/six-1.16.0.dist-info

Sphinx-6.1.3

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
  • Transferência (HTTP): https://github.com/sphinx-doc/sphinx/archive/v6.1.3/sphinx-6.1.3.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 18b07621d19d4b2cffd58d7a6ac5bed3

  • Tamanho da transferência: 6,4 MB

  • Espaço em disco estimado exigido: 43 MB (adicionar 35 MB para os testes)

  • Tempo de construção estimado: menos que 0,1 UPC (1,1 UPC para os testes)

Dependências do Sphinx
Exigidas

alabaster-0.7.13, Babel-2.11.0, docutils-0.19, imagesize-1.4.1, packaging-23.0, Pygments-2.14.0, requests-2.28.2, snowballstemmer-2.2.0, sphinxcontrib-applehelp-1.0.3, sphinxcontrib-devhelp-1.0.2, sphinxcontrib-htmlhelp-2.0.0, sphinxcontrib-jsmath-1.0.1, sphinxcontrib-qthelp-1.0.3 e sphinxcontrib-serializinghtml-1.1.5

Opcionais (para testes)

cython-0.29.33, pytest-7.2.1, texlive-20220321 e html5lib

Instalação do Sphinx

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps $PWD

Agora, como o(a) usuário(a) "root":

pip3 install --no-index --find-links dist --no-cache-dir --no-user sphinx

Supondo que "cython-0.29.33" e "pytest-7.2.1" estejam instalados, 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 html5lib                          &&
python3 /usr/bin/pytest
deactivate

Um teste, "tests/test_config.py::test_needs_sphinx", é 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.11/site-packages/sphinx e /usr/lib/python3.11/site-packages/sphinx-6.1.3.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-1.2.0

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do Sphinx_rtd_theme
Exigidas

sphinx-6.1.3 e sphinxcontrib-jquery-2.0.0

Opcionais (para testes)

pytest-7.2.1 e readthedocs-sphinx-ext

Instalação do Sphinx_rtd_theme

Corrija uma versão errada para uma lista de dependências:

sed -e s/0.19/0.20/ \
   -i setup.cfg

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps $PWD

Agora, como o(a) usuário(a) "root":

pip3 install --no-index --find-links dist --no-cache-dir --no-user sphinx_rtd_theme

Supondo que "pytest-7.2.1" 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 um aviso 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.11/site-packages/sphinx_rtd_theme e /usr/lib/python3.11/site-packages/sphinx_rtd_theme-1.2.0.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, [então] insira "--force-reinstall" na linha de comando.

Alabaster-0.7.13

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Instalação do Alabaster

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps $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-cache-dir --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.11/site-packages/alabaster e /usr/lib/python3.11/site-packages/alabaster-0.7.13.dist-info

Attrs-22.2.0

Introdução ao Módulo Attrs

O pacote "Attrs" é um tema para o sistema de documentação "sphinx". Embora desenvolvido separadamente, é o tema padrão do "Sphinx".

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
  • Transferência (HTTP): https://files.pythonhosted.org/packages/source/a/attrs/attrs-22.2.0.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: eff16b3bbd0d9b72e118cca83a19d380

  • Tamanho da transferência: 211 KB

  • Espaço em disco estimado exigido: 2 MB (adicionar 53 MB para os testes)

  • Tempo de construção estimado: menos que 0,1 UPC (0,2 UPC para os testes)

Opcionais (para testagem)

pytest-7.2.1, coverage[toml], hypothesis, Pympler, mypy, pytest-mypy-plugins, zope.interface e cloudpickle

Instalação do Attrs

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps $PWD

Agora, como o(a) usuário(a) "root":

pip3 install --no-index --find-links dist --no-cache-dir --no-user attrs

Para testar a instalação, execute:

python3 -m venv --system-site-packages testenv &&
source testenv/bin/activate                   &&
pip3 install attrs[tests]                      &&
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.11/site-packages/attr, /usr/lib/python3.11/site-packages/attrs e /usr/lib/python3.11/site-packages/attrs-22.2.0.dist-info

Babel-2.11.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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
  • Transferência (HTTP): https://files.pythonhosted.org/packages/source/B/Babel/Babel-2.11.0.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 9ee7784fd452d456206ecd3a12694010

  • Tamanho da transferência: 8,9 MB

  • Espaço em disco estimado exigido: 103 MB (adicionar 30 MB para os testes)

  • Tempo de construção estimado: menos que 0,1 UPC (0,1 UPC para os testes)

Dependências do Babel
Exigidas

pytz-2022.7.1

Opcionais (para testagem)

pytest-7.2.1, Python-3.11.2 (com o módulo "sqlite"), freezegun==0.3.12 e pytest-cov

Instalação do Babel

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps $PWD

Agora, como o(a) usuário(a) "root":

pip3 install --no-index --find-links dist --no-cache-dir --no-user Babel

Supondo que "pytest-7.2.1" 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==0.3.12      &&
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.11/site-packages/babel e /usr/lib/python3.11/site-packages/Babel-2.11.0.dist-info
Descrições Curtas

pybabel

é uma interface de linha de comando para trabalhar com catálogos de mensagens

Chardet-5.1.0

Introdução ao Módulo chardet

"Chardet" é um detector universal de codificação de caracteres.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do Chardet
Opcionais (para testagem)

pytest-7.2.1

Instalação do Chardet

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps $PWD

Agora, como o(a) usuário(a) "root":

pip3 install --no-index --find-links dist --no-cache-dir --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.11/site-packages/chardet e /usr/lib/python3.11/site-packages/chardet-5.1.0.dist-info
Descrições Curtas

chardetect

é um detector universal de codificação de caracteres

Charset-normalizer-3.0.1

Introdução ao Módulo charset-normalizer

A biblioteca "charset-normalizer" ajuda a ler texto originário de uma codificação de caracteres desconhecida.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do Charset-normalizer
Opcionais (para testagem)

pytest-7.2.1 e pytest-cov

Instalação do Charset-normalizer

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps $PWD

Agora, como o(a) usuário(a) "root":

pip3 install --no-index --find-links dist --no-cache-dir --no-user charset-normalizer

Supondo que "pytest-7.2.1" 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.11/site-packages/charset_normalizer e /usr/lib/python3.11/site-packages/charset_normalizer-3.0.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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do Commonmark
Opcionais (para testagem)

pytest-7.2.1, flake8 e hypothesis

Instalação do Commonmark

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps $PWD

Agora, como o(a) usuário(a) "root":

pip3 install --no-index --find-links dist --no-cache-dir --no-user commonmark

Supondo que "pytest-7.2.1" 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.11/site-packages/commonmark e /usr/lib/python3.11/site-packages/commonmark-0.9.1.dist-info

Descrições Curtas

cmark

processa "Markdown" de acordo com a especificação "CommonMark"

Editables-0.3

Introdução ao Módulo Editables

Editables é uma biblioteca "Python" para criar rodas editáveis.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Instalação do Editables

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps $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-cache-dir --no-user editables

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.11/site-packages/editables e /usr/lib/python3.11/site-packages/editables-0.3.dist-info

Flit_core-3.8.0

Introdução ao Módulo Flit_core

O módulo "Flit_core" é o componente chave do sistema "Flit", que fornece uma maneira simples de colocar pacotes e módulos "Python" no "PyPi".

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências de Flit_core
Opcionais (para testagem)

pytest-7.2.1 e testpath

Instalação do Flit_core

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps $PWD

Agora, como o(a) usuário(a) "root":

pip3 install --no-index --find-links dist --no-cache-dir --no-user flit_core

Supondo que "pytest-7.2.1" 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 testpath                          &&
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.11/site-packages/flit_core e /usr/lib/python3.11/site-packages/flit_core-3.8.0.dist-info

Hatchling-1.12.2

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do Hatchling
Exigidas

editables-0.3, packaging-23.0, pathspec-0.10.3 e pluggy-1.0.0

Instalação do Hatchling

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps $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-cache-dir --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.11/site-packages/hatchling e /usr/lib/python3.11/site-packages/hatchling-1.12.2.dist-info

Descrições Curtas

hatchling

é um construtor de módulo "Python"

Hatch_vcs-0.3.0

Introdução ao Módulo Hatch-vcs

"Hatch_vcs" é um "plugin" do "Hatch" para versionamento com diversos " VCS ".

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do Hatch_vcs
Exigidas

hatchling-1.12.2 e setuptools_scm-7.1.0

Opcionais (para testagem)

pytest-7.2.1

Instalação do Hatch_vcs

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps $PWD

Agora, como o(a) usuário(a) "root":

pip3 install --no-index --find-links dist --no-cache-dir --no-user hatch_vcs

Para testar a instalação, emita "pytest". Um teste falha.

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.11/site-packages/hatch_vcs e /usr/lib/python3.11/site-packages/hatch_vcs-0.3.0.dist-info

Idna-3.4

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
  • Transferência (HTTP): https://files.pythonhosted.org/packages/source/i/idna/idna-3.4.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 13ea24e076212b6baae1135a116d1e0e

  • Tamanho da transferência: 179 KB

  • Espaço em disco estimado exigido: 2,1 MB (com o teste)

  • Tempo de construção estimado: menos que 0,1 UPC (com os testes)

Dependências do Idna
Exigidas

flit_core-3.8.0

Opcionais (para testagem)

pytest-7.2.1

Instalação do Idna

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps $PWD

Agora, como o(a) usuário(a) "root":

pip3 install --no-index --find-links dist --no-cache-dir --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.11/site-packages/idna e /usr/lib/python3.11/site-packages/idna-3.4.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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do Imagesize
Opcionais (para testagem)

pytest-7.2.1 e requests-2.28.2

Instalação do Imagesize

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps $PWD

Agora, como o(a) usuário(a) "root":

pip3 install --no-index --find-links dist --no-cache-dir --no-user imagesize

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.11/site-packages/imagesize e /usr/lib/python3.11/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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do Iniconfig
Exigidas

hatch_vcs-0.3.0

Instalação do Iniconfig

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps $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-cache-dir --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.11/site-packages/iniconfig e /usr/lib/python3.11/site-packages/iniconfig-2.0.0.dist-info

Markdown-3.4.1

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do Markdown
Opcionais (para testagem)

pytest-7.2.1, PyYAML-6.0 e coverage

Instalação do Markdown

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps $PWD

Agora, como o(a) usuário(a) "root":

pip3 install --no-index --find-links dist --no-cache-dir --no-user Markdown

Supondo que "pytest-7.2.1" e "PyYAML-6.0" 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.11/site-packages/markdown e /usr/lib/python3.11/site-packages/Markdown-3.4.1.dist-info

Descrições Curtas

markdown_py

converte arquivos "markdown" para "(x)html"

Meson_python-0.12.0

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do Meson_python
Exigidas

pyproject-metadata-0.7.0

Recomendadas (Tempo de execução)

patchelf-0.17.2

Instalação do Meson_python

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps $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-cache-dir --no-user meson_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.11/site-packages/meson_python e /usr/lib/python3.11/site-packages/meson_python-0.12.0.dist-info

MessagePack-1.0.4

Introdução ao Módulo MessagePack

"MessagePack" é 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 "MessagePack".

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do MessagePack
Exigidas

cython-0.29.33 e setuptools_scm-7.1.0

Opcionais (para testagem)

pluggy-1.0.0 e pytest-7.2.1

Instalação do MessagePack

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps $PWD

Agora, como o(a) usuário(a) "root":

pip3 install --no-index --find-links dist --no-cache-dir --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.11/site-packages/msgpack-1.0.4.dist-info e /usr/lib/python3.11/site-packages/msgpack

Pathspec-0.10.3

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do Pathspec
Opcionais (para testagem)

pytest-7.2.1

Instalação do Pathspec

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps $PWD

Agora, como o(a) usuário(a) "root":

pip3 install --no-index --find-links dist --no-cache-dir --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.11/site-packages/pathspec e /usr/lib/python3.11/site-packages/pathspec-0.10.3.dist-info

Pluggy-1.0.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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do Pluggy
Recomendadas
Opcionais (para testagem)

pytest-7.2.1 e pytest-benchmark

Instalação do Pluggy

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps $PWD

Agora, como o(a) usuário(a) "root":

pip3 install --no-index --find-links dist --no-cache-dir --no-user pluggy

Supondo que "pytest-7.2.1" 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-benchmark                  &&
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.11/site-packages/pluggy e /usr/lib/python3.11/site-packages/pluggy-1.0.0.dist-info

Py-1.11.0

Introdução ao Módulo Py

A biblioteca "Py" é uma biblioteca de suporte ao desenvolvimento "Python" usada em "Pytest". Ela está obsoleta e deveria ser removida em algum momento, mas parte dela ainda é usada no "Pytest".

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do Py
Recomendadas

Instalação do Py

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps $PWD

Agora, como o(a) usuário(a) "root":

Devido à descontinuação desse pacote, a suíte de teste não é mantida e não pode ser executada.

pip3 install --no-index --find-links dist --no-cache-dir --no-user 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: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/lib/python3.11/site-packages/py e /usr/lib/python3.11/site-packages/py-1.11.0.dist-info

Pyproject-Metadata-0.7.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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do Pyproject-Metadata
Exigidas

packaging-23.0

Instalação do Pyproject-Metadata

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps $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-cache-dir --no-user pyproject-metadata

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.11/site-packages/pyproject_metadata e /usr/lib/python3.11/site-packages/pyproject_metadata-0.7.0.dist-info

Pytz-2022.7.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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do Pytz
Opcionais (para testagem)

pytest-7.2.1

Instalação do Pytz

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps $PWD

Agora, como o(a) usuário(a) "root":

pip3 install --no-index --find-links dist --no-cache-dir --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.11/site-packages/pytz e /usr/lib/python3.11/site-packages/pytz-2022.7.1.dist-info

Setuptools_scm-7.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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do Setuptools_scm
Exigidas

packaging-23.0 e typing_extensions-4.4.0

Opcionais (para testagem)

git-2.39.2, Mercurial-6.3.2 e pytest-7.2.1

Instalação do Setuptools_scm

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps $PWD

Agora, como o(a) usuário(a) "root":

pip3 install --no-index --find-links dist --no-cache-dir --no-user setuptools_scm

A instalação pode ser testada com "pytest". Uns poucos testes possivelmente falhem se a tua configuração do "git" não for aquela esperada pela suíte de teste.

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.11/site-packages/setuptools_scm e /usr/lib/python3.11/site-packages/setuptools_scm-7.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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Instalação do Smartypants

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps $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-cache-dir --no-user smartypants

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.11/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". Portanto, uma busca por "connected" também encontraria documentos que tenham somente as outras formas.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Instalação do Snowballstemmer

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps $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-cache-dir --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.11/site-packages/snowballstemmer e /usr/lib/python3.11/site-packages/snowballstemmer-2.2.0.dist-info

Sphinxcontrib-applehelp-1.0.3

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do Sphinxcontrib-applehelp
Opcionais (para testagem)

pytest-7.2.1 e sphinx-6.1.3 (dependência circular)

Instalação do Sphinxcontrib-applehelp

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps $PWD

Agora, como o(a) usuário(a) "root":

pip3 install --no-index --find-links dist --no-cache-dir --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.11/site-packages/sphinxcontrib e /usr/lib/python3.11/site-packages/sphinxcontrib_applehelp-1.0.3.dist-info

Sphinxcontrib-devhelp-1.0.2

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do Sphinxcontrib-devhelp
Opcionais (para testagem)

pytest-7.2.1 e sphinx-6.1.3 (dependência circular)

Instalação do Sphinxcontrib-devhelp

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps $PWD

Agora, como o(a) usuário(a) "root":

pip3 install --no-index --find-links dist --no-cache-dir --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.11/site-packages/sphinxcontrib e /usr/lib/python3.11/site-packages/sphinxcontrib_devhelp-1.0.2.dist-info

Sphinxcontrib-htmlhelp-2.0.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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do Sphinxcontrib-htmlhelp
Opcionais (para testagem)

pytest-7.2.1, sphinx-6.1.3 (dependência circular) e html5lib

Instalação do Sphinxcontrib-htmlhelp

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps $PWD

Agora, como o(a) usuário(a) "root":

pip3 install --no-index --find-links dist --no-cache-dir --no-user sphinxcontrib-htmlhelp

Supondo que "pytest-7.2.1" 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 html5lib                            &&
sed -i 's/text()/read_&/' tests/test_htmlhelp.py &&
python3 /usr/bin/pytest
deactivate

o comando "sed ..." é necessário devido a uma mudança na "API" "Sphinx" para versões 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.11/site-packages/sphinxcontrib e /usr/lib/python3.11/site-packages/sphinxcontrib_htmlhelp-2.0.0.dist-info

Sphinxcontrib-jquery-2.0.0

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do Sphinxcontrib-jquery
Opcionais (para testagem)

pytest-7.2.1

Instalação do Sphinxcontrib-jquery

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps $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-cache-dir --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.11/site-packages/sphinxcontrib e /usr/lib/python3.11/site-packages/sphinxcontrib_jquery-2.0.0.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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do Sphinxcontrib-jsmath
Opcionais (para testagem)

pytest-7.2.1 e sphinx-6.1.3 (dependência circular)

Instalação do Sphinxcontrib-jsmath

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps $PWD

Agora, como o(a) usuário(a) "root":

pip3 install --no-index --find-links dist --no-cache-dir --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.11/site-packages/sphinxcontrib e /usr/lib/python3.11/site-packages/sphinxcontrib_jsmath-1.0.1.dist-info

Sphinxcontrib-qthelp-1.0.3

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do Sphinxcontrib-qthelp
Opcionais (para testagem)

pytest-7.2.1 e sphinx-6.1.3 (dependência circular)

Instalação do Sphinxcontrib-qthelp

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps $PWD

Agora, como o(a) usuário(a) "root":

pip3 install --no-index --find-links dist --no-cache-dir --no-user sphinxcontrib-qthelp

A instalação pode ser testada com os seguintes comandos:

sed -i 's/text()/read_&/' tests/test_qthelp.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.11/site-packages/sphinxcontrib e /usr/lib/python3.11/site-packages/sphinxcontrib_qthelp-1.0.3.dist-info

Sphinxcontrib-serializinghtml-1.1.5

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do Sphinxcontrib-serializinghtml
Opcionais (para testagem)

pytest-7.2.1 e sphinx-6.1.3 (dependência circular)

Instalação do Sphinxcontrib-serializinghtml

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps $PWD

Agora, como o(a) usuário(a) "root":

pip3 install --no-index --find-links dist --no-cache-dir --no-user sphinxcontrib-serializinghtml

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.11/site-packages/sphinxcontrib e /usr/lib/python3.11/site-packages/sphinxcontrib_serializinghtml-1.1.5.dist-info

Typing_extensions-4.4.0

Introdução ao Módulo Typing_extensions

O módulo "Typing_extensions" permite usar recursos do sistema de novos tipos ainda não definidos na versão "Python" em uso no sistema.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do Typing_extensions
Exigidas

flit_core-3.8.0

Instalação do Typing_extensions

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps $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-cache-dir --no-user typing_extensions

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.11/site-packages/typing_extensions-4.4.0.dist-info

Typogrify-2.0.7

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 adequadamente usando uma plataforma LFS 11.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 $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-cache-dir --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.11/site-packages/typogrify e /usr/lib/python3.11/site-packages/typogrify-2.0.7.dist-info

Urllib3-1.26.14

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do Urllib3
Opcionais (para testes)

pytest-7.2.1, mock, PySocks, pytest-freezegun, pytest-timeout, python-dateutil, tornado e trustme

Instalação do Urllib3

Construa o módulo:

pip3 wheel -w dist --no-build-isolation --no-deps $PWD

Agora, como o(a) usuário(a) "root":

pip3 install --no-index --find-links dist --no-cache-dir --no-user urllib3

Supondo que "pytest-7.2.1" 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  \
             pytest-freezegun                  &&
python3 /usr/bin/pytest
deactivate

Uns poucos erros são conhecidos por ocorrerem.

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.11/site-packages/urllib3 e /usr/lib/python3.11/site-packages/urllib3-1.26.14.dist-info

Last updated on

Ruby-3.2.1

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://cache.ruby-lang.org/pub/ruby/3.2/ruby-3.2.1.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 23617540ad13c57ed8dd9d4ed32192a5

  • Tamanho da transferência: 14 MB

  • Espaço em disco estimado exigido: 461 MB (adicionar 1,3 GB para os documentos da "API" "C")

  • Tempo de construção estimado: 1,4 UPC (usando paralelismo=4; adicionar 5,0 UPC para os testes; adicionar 0,8 UPC para os documentos da "API" "C")

Dependências do Ruby

Exigidas

libyaml-0.2.5

Opcionais

Base de Dados Berkeley-5.3.28, Doxygen-1.9.6, Graphviz-7.1.0, rustc-1.67.1, Tk-8.6.13, Valgrind-3.20.0 e DTrace

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/ruby

Instalação do Ruby

Instale "Ruby" executando o seguinte comando:

./configure --prefix=/usr     \
            --enable-shared    \
            --without-valgrind \
            --docdir=/usr/share/doc/ruby-3.2.1 &&
make

Opcionalmente, construa os documentos da "API" "C" executando os seguintes comandos:

make capi

Para testar os resultados, emita: "make check". Existem mais de vinte e cinco mil (25.000) testes. Alguns testes relacionados ao "IPv6" possivelmente indiquem erros. Se os testes forem executados em um diretório que tem um componente gravável mundialmente (por exemplo, "/tmp"), então vários testes adicionais possivelmente falhem. Alguns testes possivelmente falhem devido às expectativas de configuração do sistema.

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

--enable-shared: Essa chave habilita construir a biblioteca compartilhada "libruby".

--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".

--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.

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.2.0, /usr/lib/ruby, /usr/share/doc/ruby-3.2.1 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.67.1

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 de construir, no momento exigido somente por uns poucos pacotes neste livro, e particularmente porque as versões mais recentes tendem a quebrar pacotes "Mozilla" mais antigos, os(as) editores(as) do BLFS consideram que ele somente deveria ser atualizado quando isso for necessário (seja para corrigir problemas ou para permitir a construção de uma nova versão de um pacote).

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.67.1-build2".

Se preferir, você pode, certamente, mudar o prefixo para "/usr".

O atual sistema de construção "rustbuild" usará todos os processadores, embora não escale bem e frequentemente retorne 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 de adicionar a chave "--jobs <N>" (por exemplo, "--jobs 4" para limitar a quatro processadores) em cada invocação de "python3 ./x.py" e usar 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 sua máquina carece de "DRAM" (normalmente, menos de dois (02) GB de "DRAM" por núcleo), [então] isso pode ser uma alternativa para colocar "CPUs" fora de linha. Isso pode ser conseguido usando o comando "systemd-run" com as opções "-p User=$(whoami)" e "-p AllowedCPUs=0-x" (com "x" substituído pelo número de núcleos de "CPU" que você deseja usar menos um).

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://static.rust-lang.org/dist/rustc-1.67.1-src.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: e5e47e53c52574ce89ea200e52819f81

  • Tamanho da transferência: 136 MB

  • Espaço em disco estimado exigido: 8,5 GB (501 MB instalado); adicionar 7,5 GB se executar os testes

  • Tempo de construção estimado: 13 UPC (incluindo o tempo de transferência; adicionar 16 UPC para os testes, ambos usando paralelismo=4)

Dependências do Rust

Exigidas

CMake-3.25.2

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-13.1" (usado pela suíte de teste se estiver presente) e "libgit2"

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/rust

Instalação do Rust

Nota

Atualmente o compilador "Rust" produz instruções "SSE2" para "x86" de 32 bits, fazendo com que o código gerado seja quebrado em sistemas de 32 bits sem um processador compatível com "SSE2". Todos os modelos de processador "x86" lançados após 2004 deveriam ser compatíveis com "SSE2". Execute "lscpu | grep sse2" como teste. Se gerar alguma coisa, [então] tua "CPU" é compatível com "SSE2" e está OK. Caso contrário, você pode tentar construir esse pacote em um sistema compatível com "SSE2" com a seguinte correção aplicada:

sed 's@pentium4@pentiumpro@' -i \
   compiler/rustc_target/src/spec/i686_unknown_linux_gnu.rs

E copie o "/opt/rustc-1.67.1" resultante para o sistema sem capacidade "SSE2". Mas, essa mudança ainda está sob revisão do(a) desenvolvedor(a) e não foi testada pelos(as) editores(as) do BLFS.

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.67.1     &&
ln -svfn rustc-1.67.1 /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
# Veja-se "config.toml.example" para mais opções possíveis
# Veja-se o livro 8.4 para um exemplo antigo usando "LLVM" enviado
# por exemplo, se não instalar "clang", ou usar uma versão anterior a 13.0

# Diz ao "x.py" para não permanecer imprimindo um aviso irritante
changelog-seen = 2

[llvm]
# por padrão, "rust" construirá para uma miríade de arquiteturas
targets = "X86"

# Quando usar o "LLVM" do sistema prefira bibliotecas compartilhadas
link-shared = true

[build]
# Omita os documentos para economizar tempo e espaço (padrão é para construí-los)
docs = false

# Instala ferramentas estendidas: cargo, clippy, etc
extended = true

# Não consulte novas versões de dependências online.
locked-deps = true

# Especifique quais ferramentas estendidas (aquelas oriundas da instalação padrão).
tools = ["cargo", "clippy", "rustfmt"]

# Use o código-fonte enviado no "tarball" para as dependências.
# A combinação disto e da entrada "locked-deps" evita baixar
# muitas caixas a partir da Internet, e torna a construção do "Rustc" mais estável.
vendor = true

[install]
prefix = "/opt/rustc-1.67.1"
docdir = "share/doc/rustc-1.67.1"

[rust]
channel = "stable"
description = "para BLFS 11.3"

# BLFS costumava não instalar o executável "FileCheck" originário do "LLVM",
# de forma que desabilitava os testes "codegen". Os testes "assembly" dependem de "FileCheck"
# e não podem ser facilmente desabilitados, de forma que eles falharão de qualquer maneira se
# "FileCheck" não tiver sido instalado.
#codegen-tests = false

[target.x86_64-unknown-linux-gnu]
# Observe bem: a saída gerada do "llvm-config" (ou seja, opções de ajuda) pode ser
# despejada na tela quando "config.toml" é analisado.
llvm-config = "/usr/bin/llvm-config"

[target.i686-unknown-linux-gnu]
# Observe bem: a saída gerada do "llvm-config" (ou seja, opções de ajuda) pode ser
# despejada na tela quando "config.toml" é analisado.
llvm-config = "/usr/bin/llvm-config"


EOF

Compile "Rust" executando os seguintes comandos:

{ [ ! -e /usr/include/libssh2.h ] ||
  export LIBSSH2_SYS_USE_PKG_CONFIG=1; } &&
python3 ./x.py build

Nota

A suíte de teste gerará algumas mensagens no diário do systemd 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:

python3 ./x.py test --verbose --no-fail-fast | tee rustc-testlog

Se o "FileCheck" originário do "LLVM" não tiver sido instalado, [então] todos os quarenta e sete (47) testes da suíte assembly falharão.

Tal como acontece com todas as grandes suítes de teste, outros testes podem falhar em algumas máquinas - se o número de falhas adicionais estiver na casa de um dígito, [então] 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:

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 usuário "root", garanta que "LIBSSH2_SYS_USE_PKG_CONFIG" seja passada corretamente ou o comando seguinte possivelmente reconstrua completamente esse pacote. Para "sudo", use a opção "--preserve-env=LIBSSH2_SYS_USE_PKG_CONFIG". Para "su", não use o "-" ou o "--login".

python3 ./x.py install

Explicações do Comando

ln -svfn rustc-1.67.1 /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", "rustfmt"]: se as ferramentas não forem especificadas, [então] a ausência de Miri agora causa falha na instalação. Mas Miri não é construído no canal estável. Algumas das outras ferramentas são improváveis de serem úteis, a menos que se usem analisadores (antigos) de código ou se edite a biblioteca padrão. Esse conjunto corresponde àquelas originárias do perfil 'default' no comando binário rustup que são recomendadas para a maioria dos usuários, exceto que a documentação foi desabilitada no início da seção '[build]'.

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 seja 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.

--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.

Configurando 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"
# Inicia /etc/profile.d/rustc.sh

pathprepend /opt/rustc/bin           PATH

# Inclui "/opt/rustc/man" na variável "MANPATH" para acessar páginas de manual
pathappend  /opt/rustc/share/man     MANPATH

# Termina /etc/profile.d/rustc.sh
EOF

Imediatamente depois da instalação, atualize o "PATH" atual para o seu "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.67.1

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.67.1/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"

SCons-4.4.0

Introdução ao SCons

"SCons" é uma ferramenta para construir logiciário (e outros arquivos) implementada em "Python".

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://downloads.sourceforge.net/scons/SCons-4.4.0.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 056b141b420583e8faef8b1c64bc43cf

  • Tamanho da transferência: 3,0 MB

  • Espaço em disco estimado exigido: 23 MB

  • Tempo de construção estimado: menos que 0,1 UPC

Dependências do SCons

Opcionais

docbook-xsl-nons-1.79.2 e libxslt-1.1.37

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/scons

Instalação do SCons

Instale "SCons" executando os seguintes comandos como o(a) usuário(a) "root":

sed -i 's/env python/&3/' SCons/Utilities/*.py &&

python3 setup.py install --prefix=/usr \
                        --optimize=1  &&

mv -v /usr/lib/python3.11/site-packages/SCons-4.4.0-py3.11.egg/*.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.11/site-packages/SCons

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 adequadamente usando uma plataforma LFS 11.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 os testes)

Dependências do Slang

Opcionais

libpng-1.6.39, PCRE-8.45 e Oniguruma

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/slang

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

Para testar os resultados, emita: "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 \
     install &&

chmod -v 755 /usr/lib/slang/v2/modules/*.so

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".

make install_doc_dir=/usr/share/doc/slang-2.3.3 SLSH_DOC_DIR=/usr/share/doc/slang-2.3.3/slsh install: Esse comando instala 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.2

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://archive.apache.org/dist/subversion/subversion-1.14.2.tar.bz2

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 9927b167d1c67d663ca63125907f6f69

  • Tamanho da transferência: 8,3 MB

  • Espaço em disco estimado exigido: 208 MB (adicionar 228 MB para ligações, 52 MB para documentos e 1,3 GB para os testes)

  • Tempo de construção estimado: 0,5 UPC (Usando paralelismo=4; adicionar 1,9 UPC para ligações e 35 UPC para os testes)

Dependências do Subversion

Exigidas

Apr-Util-1.6.3 e SQLite-3.40.1

Recomendadas
Opcionais

Apache-2.4.55, Boost-1.81.0, Cyrus SASL-2.1.28, dbus-1.14.6, Doxygen-1.9.6 (para gerar documentação "HTML"), gnome-keyring-42.1, libsecret-0.20.5, Py3c-1.4 (para as ligações "Python" e testes), Python-2.7.18 (com suporte "sqlite" para os testes), Ruby-3.2.1, SWIG-4.1.1 (para construir ligações "Perl", "Python" e "Ruby"), LZ4 e UTF8proc

Opcionais (para as ligações Java)

Um de OpenJDK-19.0.2, Dante ou Jikes; JUnit 4 (para testar as ligações "Java") e apache-ant-1.10.13.

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/subversion

Instalação do Subversion

Primeiro, adapte alguns "scripts" "Python" para usar "python3":

grep -rl '^#!.*python$' | xargs sed -i '1s/python/&3/'

A seguir, adapte as ligações "Ruby" para "Ruby-3.2":

sed -e 's/File.exists?/File.exist?/'              \
    -i subversion/bindings/swig/ruby/svn/util.rb   \
       subversion/bindings/swig/ruby/test/test_wc.rb

Instale Subversion executando os seguintes comandos:

PYTHON=python3 ./configure --prefix=/usr            \
            --disable-static          \
            --with-apache-libexecdir  \
            --with-lz4=internal       \
            --with-utf8proc=internal &&
make

Se você tiver "Doxygen-1.9.6" 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.13" 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.11/site-packages/libsvn \
     swig_pydir_extra=/usr/lib/python3.11/site-packages/svn # para Python
make swig-rb # para Ruby

Para testar os resultados, emita: "make check". Quatro testes nas suítes "commit_tests.py", "prop_tests.py" e "update_tests.py" são conhecidos por falharem.

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.2 &&
cp     -v -R doc/* /usr/share/doc/subversion-1.14.2

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.11/site-packages/libsvn \
     swig_pydir_extra=/usr/lib/python3.11/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.55" 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-lz4=internal, --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.36/{,auto/}SVN, /usr/lib/python3.11/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.2

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.2 e OpenSSH-9.2p1

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 a unidade "svnserve.service" a partir do pacote "blfs-systemd-units-20220720":

make install-svnserve

Além disso, as instruções acima exigem que o servidor "svn" use "umask 002", de forma que todos os novos arquivos serão escrevíveis pelo(a) proprietário(a) e pelo grupo. Isso pode ser conseguido criando-se um arquivo de unidade "systemd" de substituição executando-se o seguinte comando:

mkdir -p /etc/systemd/system/svnserve.service.d
echo "UMask=0002" > /etc/systemd/system/svnserve.service.d/99-user.conf

As opções que são passadas para o processo de segundo plano "svnserve" podem ser mudadas em "/etc/default/svnserve".

SWIG-4.1.1

Introdução ao SWIG

SWIG ("Simplified Wrapper and Interface Generator") é um compilador que integra "C" e "C++" com linguagens que incluem "Perl", "Python", "Tcl", "Ruby", "PHP", "Java", "C#", "D", "Go", "Lua", "Octave", "R", "Scheme" e "Ocaml". "SWIG" também consegue exportar a árvore analisadora dele para "s-expressions" do "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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://downloads.sourceforge.net/swig/swig-4.1.1.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: c7d55a1bca26752f3846c85b43c1a69c

  • Tamanho da transferência: 8,2 MB

  • Espaço em disco estimado exigido: 82 MB (2,1 GB com os testes)

  • Tempo de construção estimado: 0,1 UPC (adicionar 7,8 UPC para os testes; ambos usando paralelismo=4)

Dependências do "SWIG"

Exigidas

pcre2-10.42

Opcionais

"Boost-1.81.0" para testes e quaisquer das linguagens mencionadas na introdução, como dependências de tempo de execução

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/swig

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: "PY3=1 make -k check TCL_INCLUDE=". A desabilitaçã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 sua 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 &&
install -v -m755 -d /usr/share/doc/swig-4.1.1 &&
cp -v -R Doc/* /usr/share/doc/swig-4.1.1

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.

Conteúdo

Aplicativos Instalados: swig e ccache-swig
Biblioteca Instalada: Nenhum(a)
Diretórios Instalados: /usr/share/doc/swig-4.1.1 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"

Sysprof-3.46.0

Introdução ao Sysprof

O pacote "sysprof" contém um perfilador estatístico e abrangente a todo o sistema para "Linux".

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "Sysprof"

Exigidas

desktop-file-utils-0.26, GTK-4.8.3, itstool-2.0.7, JSON-GLib-1.6.6, libadwaita-1.2.2, libdazzle-3.44.0, libunwind-1.6.2

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/sysprof

Instalação do Sysprof

Instale "Sysprof" executando os seguintes comandos:

mkdir build &&
cd   build &&

meson --prefix=/usr .. &&
ninja

Para testar os resultados, emita: "ninja test".

Agora, como o(a) usuário(a) "root":

ninja install

Conteúdo

Aplicativos Instalados: sysprof, sysprof-agent e sysprof-cli
Bibliotecas Instaladas: libsysprof-4.so, libsysprof-capture-4.a, libsysprof-memory-4.so, libsysprof-speedtrack-4.so e libsysprof-ui-5.so
Diretórios Instalados: /usr/include/sysprof-4, /usr/include/sysprof-ui-5 e /usr/share/help/*/sysprof

Descrições Curtas

sysprof

é uma interface gráfica para "sysprof"

sysprof-agent

é usado para perfilar aplicativos em contêineres

sysprof-cli

é uma interface de linha de comando para "sysprof"

libsysprof-4.so

fornece funções de "API" para perfilamento de processos executando em um sistema

libsysprof-capture-4.a

fornece um gancho usado para capturar estatísticas a partir de um processo

libsysprof-memory-4.so

fornece funções de "API" para capturar estatísticas de memória

libsysprof-speedtrack-4.so

fornece funções de "API" para rastrear a velocidade de um processo em execução

libsysprof-ui-4.so

fornece funções de "API" para a "GUI" do "sysprof"

Tk-8.6.13

Introdução ao Tk

O pacote "Tk" contém um kit de ferramentas "GUI" "TCL".

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://downloads.sourceforge.net/tcl/tk8.6.13-src.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 95adc33d55a133ee29bc9f81efdf31b2

  • Tamanho da transferência: 4,3 MB

  • Espaço em disco estimado exigido: 25 MB

  • Tempo de construção estimado: 0,3 UPC (adicionar 2,0 UPC para os testes)

Dependências do "Tk"

Exigidas

Bibliotecas do Xorg

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/tk

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

$([ $(uname -m) = x86_64 ] && echo --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"

Vala-0.56.4

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Vala

Exigidas

GLib-2.74.5

Recomendadas
Opcionais

dbus-1.14.6 (exigido para os testes), libxslt-1.1.37 (exigido para gerar a documentação), help2man, jing e weasyprint

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/vala

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

--disable-valadoc: Essa opção é exigida se "Graphviz-7.1.0" 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.20.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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "Valgrind"

Opcionais

GDB-13.1 (para os testes), LLVM-15.0.7 (com "Clang") e Which-2.21 (para os testes)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/valgrind

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.20.0 &&
make

Para testar os resultados, emita: "make regtest". Os testes possivelmente travem para sempre se "GDB-13.1" 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.20.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.01". 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 adequadamente usando uma plataforma LFS 11.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

Python-2.7.18 e cython-0.29.33

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/yasm

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 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-19.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 adequadamente usando uma plataforma LFS 11.3.

Informações do Pacote Binário

Dependências de Tempo de Execução do Binário "Java"

alsa-lib-1.2.8, Cups-2.4.2, giflib-5.2.1 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-19.0.2-bin &&
mv -v * /opt/OpenJDK-19.0.2-bin        &&
chown -R root:root /opt/OpenJDK-19.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-19.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-19.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 adequadamente usando uma plataforma LFS 11.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-19.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/jdk19u/archive/jdk-19.0.2-ga.tar.gz

  • Soma de verificação MD5 da transferência: 2c5489f4830bce40240dc4f76f890156

  • Tamanho da Transferência: 103 MB

  • Espaço em disco estimado exigido: 5,1 GB (adicionar 595 MB para os testes)

  • Tempo de construção estimado: 3,8 UPC com quatro (04) tarefas (adicionar 41 UPC para os testes com quatro (04) tarefas)

Transferências Adicionais

Equipamento opcional de teste

Dependências do "OpenJDK"

Dependências Exigidas

Um binário existente (Java-19.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.8, cpio-2.13, Cups-2.4.2, UnZip-6.0, Which-2.21, Bibliotecas do Xorg e Zip-3.0

Recomendadas
Opcionais

git-2.39.2, Graphviz-7.1.0, Mercurial-6.3.2, pandoc e pigz

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/openjdk

Instalação do OpenJDK

Se você baixou o equipamento opcional de teste, desempacote-o agora:

tar -xf ../jtreg-6.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".

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                            &&
bash configure --enable-unlimited-crypto    \
               --disable-warnings-as-errors \
               --with-stdc++lib=dynamic     \
               --with-giflib=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-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 sessenta (60) falhas e dez (10) erros.

Instale o pacote com os seguintes comandos como o(a) usuário(a) "root":

install -vdm755 /opt/jdk-19.0.2+7             &&
cp -Rv build/*/images/jdk/* /opt/jdk-19.0.2+7 &&
chown -R root:root /opt/jdk-19.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-19.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 19.0.2 Tempo de Execução
Comment=OpenJDK Java 19.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 19.0.2 Console
Comment=OpenJDK Java 19.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=<X>: 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,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 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.12", [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: /opt/jdk-19.0.2/lib/*
Diretório Instalado: /opt/jdk-19.0.2

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"
# Inicia /etc/profile.d/openjdk.sh

# Configura o diretório "JAVA_HOME"
JAVA_HOME=/opt/jdk

# Ajusta o "PATH"
pathappend $JAVA_HOME/bin

# Adiciona ao "MANPATH"
pathappend $JAVA_HOME/man MANPATH

# Auto "Java" "CLASSPATH": Copia arquivos "jar" para, ou cria links simbólicos em, o
# diretório "/usr/share/java".

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
unset AUTO_CLASSPATH_DIR dir jar

# Termina /etc/profile.d/openjdk.sh
EOF

Se "Sudo-1.9.13p1" 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
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.12" 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.13

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Apache Ant

Exigidas

Uma "JDK" ("Binário "Java"" ou "OpenJDK-19.0.2") e "GLib-2.74.5"

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/apache-ant

Instalação do Apache Ant

Construa uma versão limitada de instruções de autoaprimoramento do "Apache Ant" usando o seguinte comando:

./bootstrap.sh

Agora corrija um problema quando o próximo comando tentar baixar um arquivo a partir de um sítio problemático:

sed -e 's|ftp.software.ibm.com|anduin.linuxfromscratch.org|' \
    -e 's|software/awdtools/netrexx|BLFS/apache-ant|'        \
    -i fetch.xml 

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.13 dist

Instale, como o(a) usuário(a) "root":

cp -rv ant-1.10.13 /opt/           &&
chown -R root:root /opt/ant-1.10.13 &&
ln -sfv ant-1.10.13 /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 na árvore do fonte (no diretório "lib/optional", onde o "ant" os coleta ao tempo da construção).

./build.sh -Ddist.dir=$PWD/ant-1.10.13 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.13

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.

Configuração Avançada de Rede de Intercomunicação

Ponte de Rede de Intercomunicação

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: Y
  Networking options:
    802.1d Ethernet Bridging: M or Y

Configurando uma Ponte de Rede de Intercomunicação

Nessa seção discutiremos como configurar uma ponte de rede de intercomunicação usando o "systemd-networkd". Nos exemplos abaixo, "eth0" representa a interface externa que está sendo interligada, enquanto "br0" representa a interface de ponte.

Para criar uma interface de ponte, crie o seguinte arquivo de configuração executando o seguinte comando como o(a) usuário(a) "root":

cat > /etc/systemd/network/50-br0.netdev << EOF
[NetDev]
Name=br0
Kind=bridge
EOF

Para atribuir uma interface de rede de intercomunicação para uma ponte, crie o seguinte arquivo de configuração executando o seguinte comando como o(a)usuário(a) "root":

cat > /etc/systemd/network/51-eth0.network << EOF
[Match]
Name=eth0

[Network]
Bridge=br0
EOF

Repita o processo para quaisquer outras interfaces que precisem ser interligadas. Observe que é importante que nada atribua quaisquer endereços para as interfaces de ponte. Se você estiver usando "NetworkManager-1.42.0", [então] certifique-se de configurá-las para ignorar as interfaces em ponte, bem como a própria interface de ponte.

Se você estiver em uma rede de intercomunicação que usa "DHCP" para atribuir endereços "IP", [então] crie o seguinte arquivo de configuração executando o seguinte comando como o(a)usuário(a) "root":

cat > /etc/systemd/network/60-br0.network << EOF
[Match]
Name=br0

[Network]
DHCP=yes
EOF

Alternativamente, se usar uma configuração de "IP" estático, [então] crie o seguinte arquivo de configuração executando o seguinte comando como o(a) usuário(a) "root":

cat > /etc/systemd/network/60-br0.network << EOF
[Match]
Name=br0

[Network]
Address=192.168.0.2/24
Gateway=192.168.0.1
DNS=192.168.0.1
EOF

Para ativar a interface de ponte, simplesmente reinicie o processo de segundo plano "systemd-networkd" executando o seguinte comando como o(a) usuário(a) "root":

systemctl restart systemd-networkd

dhcpcd-9.4.1

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://roy.marples.name/downloads/dhcpcd/dhcpcd-9.4.1.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 2b2f46648bc96979f96127f0e0e07d9b

  • Tamanho da transferência: 251 KB

  • Espaço em disco estimado exigido: 3,6 MB (com os testes)

  • Tempo de construção estimado: menos que 0,1 UPC (com os testes)

Dependências do "dhcpcd"

Opcionais

LLVM-15.0.7 (com "Clang"), ntp-4.2.8p15, chronyd e ypbind

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/dhcpcd

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

Corrija um erro de tempo de execução causado por uma mudança na "glibc-2.36":

sed '/Deny everything else/i SECCOMP_ALLOW(__NR_getrandom),' \
   -i src/privsep-linux.c

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

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: Configura um local mais adequado para bibliotecas internas do "dhcpcd".

--dbdir=/var/lib/dhcpcd: O "/var/db" padrão não é compatível com a "FHS"

--runstatedir=/run: O "/var/run" padrão é um link simbólico para "/run".

--with-hook=...: Opcionalmente, você pode instalar mais ganchos, por exemplo, para instalar alguns arquivos de configuração como "ntp.conf". O conjunto de ganchos está no diretório "dhcpcd-hooks" na árvore de construção.

--disable-privsep: Não use a separação de privilégios, que é o padrão.

--privsepuser=dhcpcd: Use esse(a) usuário(a) sem privilégios em uma configuração de separação de privilégios.

--with-hook=...: Opcionalmente, você pode instalar mais ganchos, por exemplo, para instalar alguns arquivos de configuração como "ntp.conf". O conjunto de ganchos está no diretório "dhcpcd-hooks" na árvore de construção.

Configurando o dhcpcd

Arquivos de Configuração

/etc/dhcpcd.conf

Informações Gerais de Configuração

Se você quiser configurar interfaces de rede de intercomunicação na inicialização usando o "dhcpcd", [então] você precisa instalar a unidade "systemd" incluída no pacote "blfs-systemd-units-20220720" executando o seguinte comando como o(a) usuário(a) "root":

make install-dhcpcd

Nota

O comportamento padrão do "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 de configuração do sistema são feitas por ganchos que estão armazenados em "/lib/dhcpcd/dhcpcd-hooks". Configure o "dhcpcd" removendo ou adicionando ganchos de/para esse diretório. A execução de ganchos consegue ser desabilitada usando-se a opção de linha de comando "--nohook" ("-C") ou pela opção "nohook" no arquivo "/etc/dhcpcd.conf".

Nota

Certifique-se de desabilitar o serviço "systemd-networkd" ou configurá-lo para não gerenciar as interfaces que você quer gerenciar com o "dhcpcd".

Neste ponto você consegue testar se o "dhcpcd" está se comportando conforme esperado executando o seguinte comando como o(a) usuário(a) "root":

systemctl start dhcpcd@eth0

Para iniciar o "dhcpcd" em uma interface específica na inicialização, habilite a unidade "systemd" instalada anteriormente executando o seguinte comando como o(a) usuário(a) "root":

systemctl enable dhcpcd@eth0

Substitua "eth0" pelo nome real da interface.

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

DHCP-4.4.3-P1

Introdução ao ISC DHCP

O pacote "ISC DHCP" contém os aplicativos cliente e servidor para "DHCP". "dhclient" (o cliente) é usado para conectar-se a uma rede de intercomunicação que usa "DHCP" para atribuir endereços de rede de intercomunicação. "dhcpd" (o servidor) é usado para atribuir endereços de rede de intercomunicação em redes de intercomunicação privadas.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/dhcp

Configuração do Núcleo

Você precisa ter suporte para "Packet Socket". O suporte "IPv6" é opcional.

[*] Networking support --->       [CONFIG_NET]
      Networking options --->
        <*> Packet socket          [CONFIG_PACKET]
        <*> The IPv6 Protocol ---> [CONFIG_IPV6]

Instalação do ISC DHCP

Nota

Esse pacote não suporta construção paralela.

Nota

Tenha cuidado com as instruções abaixo. As aspas simples e duplas são importantes porque as variáveis definidas são usadas literalmente no código.

Instale "ISC DHCP" executando os seguintes comandos:

( export CFLAGS="${CFLAGS:--g -O2} -Wall -fno-strict-aliasing                \
        -D_PATH_DHCLIENT_SCRIPT='\"/usr/sbin/dhclient-script\"'     \
        -D_PATH_DHCPD_CONF='\"/etc/dhcp/dhcpd.conf\"'               \
        -D_PATH_DHCLIENT_CONF='\"/etc/dhcp/dhclient.conf\"'"        &&

./configure --prefix=/usr                                           \
            --sysconfdir=/etc/dhcp                                  \
            --localstatedir=/var                                    \
            --with-srv-lease-file=/var/lib/dhcpd/dhcpd.leases       \
            --with-srv6-lease-file=/var/lib/dhcpd/dhcpd6.leases     \
            --with-cli-lease-file=/var/lib/dhclient/dhclient.leases \
            --with-cli6-lease-file=/var/lib/dhclient/dhclient6.leases
) &&
make -j1

Esse pacote não vem com uma suíte de teste.

Se você deseja instalar somente o cliente "ISC DHCP", [então] emita os seguintes comandos como o(a) usuário(a) "root":

make -C client install            &&
install -v -m755 client/scripts/linux /usr/sbin/dhclient-script

Pule para "“Configuração do Cliente”" para a finalidade de configurar o cliente

Se você deseja instalar somente o servidor "ISC DHCP", [então] emita o seguinte comando como o(a) usuário(a) "root":

make -C server install

Pule para "“Configuração do Servidor”" para a finalidade de configurar o servidor.

Alternativamente, você consegue instalar o pacote inteiro, que inclui o cliente, servidor, retransmissão, bibliotecas estáticas e cabeçalhos de desenvolvimento executando os seguintes comandos como o(a) usuário(a) "root":

make install &&
install -v -m755 client/scripts/linux /usr/sbin/dhclient-script

Configurando o ISC DHCP

Arquivos de Configuração

/etc/dhcp/dhclient.conf e /etc/dhcp/dhcpd.conf

Configuração do Cliente

Crie um "/etc/dhcp/dhclient.conf" básico executando o seguinte comando como o(a) usuário(a) "root":

install -vdm755 /etc/dhcp &&
cat > /etc/dhcp/dhclient.conf << "EOF"
# Inicia /etc/dhcp/dhclient.conf
#
# Um dhclient.conf(5) básico

#prepend domain-name-servers 127.0.0.1;
request subnet-mask, broadcast-address, time-offset, routers,
        domain-name, domain-name-servers, domain-search, host-name,
        netbios-name-servers, netbios-scope, interface-mtu,
        ntp-servers;
require subnet-mask, domain-name-servers;
#timeout 60;
#retry 60;
#reboot 10;
#select-timeout 5;
#initial-interval 2;

# Termina /etc/dhcp/dhclient.conf
EOF

Veja-se "man 5 dhclient.conf" para opções adicionais.

Agora crie o diretório "/var/lib/dhclient" que conterá concessões do cliente "DHCP" executando o seguinte comando como o(a) usuário(a) "root":

install -v -dm 755 /var/lib/dhclient

Se você deseja configurar interfaces de rede de intercomunicação na inicialização usando o "dhclient", [então] você precisa instalar a unidade "dhclient@.service" incluída no pacote "blfs-systemd-units-20220720" executando o seguinte comando como o(a) usuário(a) "root":

make install-dhclient

Nota

Certifique-se de desabilitar o serviço "systemd-networkd" ou configurá-lo para não gerenciar as interfaces que você quer gerenciar com o "dhclient".

Neste ponto você consegue testar se o "dhclient" está se comportando conforme esperado executando o seguinte comando como o(a) usuário(a) "root":

systemctl start dhclient@eth0

Para iniciar o "dhclient" em uma interface específica na inicialização, habilite a unidade "systemd" instalada anteriormente executando o seguinte comando como o(a) usuário(a) "root":

systemctl enable dhclient@eth0

Substitua "eth0" pelo nome real da interface.

Configuração do Servidor

Observe que você só precisa do servidor "DHCP" se quiser emitir endereços "LAN" pela sua rede de intercomunicação. O cliente "DHCP" não precisa do servidor para a finalidade de funcionar corretamente.

Comece criando "/etc/dhcp/dhcpd.conf" executando o seguinte comando como o(a) usuário(a) "root":

cat > /etc/dhcp/dhcpd.conf << "EOF"
# Inicia /etc/dhcp/dhcpd.conf
#
# Um dhcpd.conf(5) de exemplo

# Use isto para habilitar/desabilitar globalmente atualizações dinâmicas de DNS.
ddns-update-style none;

# Definições de opções comuns a todas as redes de intercomunicação suportadas...
option domain-name "exemplo.org";
option domain-name-servers ns1.exemplo.org, ns2.exemplo.org;

default-lease-time 600;
max-lease-time 7200;

# Esta é uma declaração de sub-rede muito básica.
subnet 10.254.239.0 netmask 255.255.255.224 {
  range 10.254.239.10 10.254.239.20;
  option routers rtr-239-0-1.exemplo.org, rtr-239-0-2.exemplo.org;
}

# Termina /etc/dhcp/dhcpd.conf
EOF

Ajuste o arquivo para atender às suas necessidades. Veja-se "man 5 dhcpd.conf" para opções adicionais.

Agora crie o diretório "/var/lib/dhcpd/dhcpd.leases" que conterá concessões do servidor "DHCP" executando os seguintes comandos como o(a) usuário(a) "root":

install -v -dm 755 /var/lib/dhcpd &&
touch /var/lib/dhcpd/dhcpd.leases

Se você deseja iniciar o servidor "DHCP" na inicialização, [então] instale a unidade "dhcpd.service" incluída no pacote "" "blfs-systemd-units-20220720":

make install-dhcpd

Você precisará editar o "/etc/default/dhcpd" para a finalidade de configurar a interface na qual o "dhcpd" atenderá as solicitações "DHCP".

Conteúdo

Aplicativos Instalados: dhclient, dhclient-script, dhcpd, dhcrelay e omshell
Bibliotecas Instaladas: libdhcpctl.a e libomapi.a
Diretórios Instalados: /etc/dhcp, /usr/include/dhcpctl, /usr/include/isc-dhcp, /usr/include/omapip, /var/lib/dhclient e /var/lib/dhcpd

Descrições Curtas

dhclient

é a implementação do cliente "DHCP"

dhclient-script

é usado pelo "dhclient" para (re)configurar interfaces. Ele pode fazer mudanças extras invocando "dhclient-{entry,exit}-hooks" personalizados

dhcpd

implementa solicitações de "Dynamic Host Configuration Protocol" ("DHCP") e "Internet Bootstrap Protocol" ("BOOTP") para endereços de rede de intercomunicação

dhcrelay

fornece um meio de aceitar solicitações "DHCP" e "BOOTP" em uma sub-rede sem um servidor "DHCP" e retransmiti-las para um servidor "DHCP" em outra sub-rede

omshell

fornece uma maneira interativa de conectar, consultar e possivelmente mudar o estado do servidor "ISC DHCP" via "OMAPI", a "Object Management API"

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "bridge-utils"

Opcionais (para executar testes)

Net-tools-2.10

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/bridge

Configuração do Núcleo

Habilite as seguintes opes na configuração do núcleo e recompile o núcleo, se necessário:

[*] Networking support --->            [CONFIG_NET]
      Networking options --->
        <*/M> 802.1d Ethernet Bridging [CONFIG_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

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.0

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "cifs-utils"

Recomendadas
Opcionais

docutils-0.19 (para criar as páginas de manual), keyutils-1.6.1 (exigido para construir o módulo "PAM"), Linux-PAM-1.5.2, Samba-4.17.5 e libcap-2.67 com PAM ou libcap-ng

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/cifsutils

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  --->                             [CONFIG_NETWORK_FILESYSTEMS]
    <*/M> SMB3 and CIFS support (advanced network filesystem) [CONFIG_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 &&
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.5.2" estiver instalado e você desejar suporte "PAM".

--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

iw-5.19

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://www.kernel.org/pub/software/network/iw/iw-5.19.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: fd17ca2dd5f160a5d9e5fd3f8a69f416

  • Tamanho da transferência: 152 KB

  • Espaço em disco estimado exigido: 4,5 MB

  • Tempo de construção estimado: menos que 0,1 UPC

Dependências do "iw"

Exigidas

libnl-3.7.0

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/iw

Configuração do Núcleo

Para usar o "iw", o núcleo precisa ter os controladores apropriados e outros suportes disponíveis. O barramento apropriado também precisa estar disponível. Para "laptops" mais antigos, o barramento "PCMCIA" ("CONFIG_PCCARD") precisa ser construído. Em alguns casos, esse suporte de barramento também precisará ser construído para placas "iw" embutidas. O suporte apropriado de ponte também precisa ser construído. Para muitos "laptops" modernos, a ponte de dispositivo "CardBus" ("CONFIG_YENTA") será necessária.

Além do barramento, o controlador real para a placa sem fios específica também precisa estar disponível. Existem muitas placas sem fios e nem todas funcionam com o Linux. O primeiro lugar para procurar por suporte de placa é o núcleo. Os controladores estão localizados em "Device Drivers" → "Network Device Support" → "Wireless LAN" ("non-hamradio"). Existem também controladores externos disponíveis para algumas placas muito comuns. Para mais informações, consulte as notas de usuário(a).

Depois que os controladores corretos estiverem carregados, a interface aparecerá em "/proc/net/wireless".

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

NcFTP-3.2.6

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP):

  • Transferência (FTP): ftp://ftp.ncftp.com/ncftp/ncftp-3.2.6-src.tar.xz

  • Soma de verificação MD5 da transferência: 42d0f896d69a4d603ec097546444245f

  • Tamanho da transferência: 412 KB

  • Espaço em disco estimado exigido: 6,6 MB

  • Tempo de construção estimado: 0,2 UPC

Dependências do "NcFTP"

Opcionais

LLVM-15.0.7 (com "Clang", usado por padrão se instalado)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/ncftp

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 causado por uma mudança de comportamento no "GCC-10":

sed -i 's/^Bookmark/extern Bookmark/' sh_util/gpshare.c

Para instalar o "NcFTP" usando o primeiro (e ideal) método, execute os seguintes comandos:

./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

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.

Configurando o NcFTP

Arquivos de Configuração

/etc/ncftp.* e ~/.ncftp/*; especialmente /etc/ncftp.prefs_v3 e ~/.ncftp/prefs_v3

Informação de Configuração

A maior parte da configuração do "NcFTP" é feita no programa e os arquivos de configuração são tratados automaticamente. Uma exceção a isso é "~/.ncftp/prefs_v3". Existem várias opções para alterar lá, incluindo:

yes-i-know-about-NcFTPd=yes

Isso desabilita a tela inicial anunciando o servidor "NcFTPd".

Existem outras opções no arquivo "prefs_v3". A maioria delas é autoexplicativa. Os padrões globais podem ser configurados em "/etc/ncftp.prefs v3".

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/net-tools

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.6.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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências dos Utilitários do "NFS"

Exigidas

libtirpc-1.3.3 e rpcsvc-proto-1.4.3

Opcionais

Cyrus SASL-2.1.28 (para autenticação "SASL"), LVM2-2.03.18 ("libdevmapper" para suporte "NFSv4"), libnsl-2.0.0 (para suporte ao cliente "NIS"), OpenLDAP-2.6.4 (para autenticação "LDAP"), SQLite-3.40.1, MIT Kerberos V5-1.20.1 ou libgssapi e librpcsecgss (para suporte de segurança "GSS" e "RPC") e libcap-2.67 com PAM

Exigidas (tempo de execução)

rpcbind-1.2.6

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/nfs-utils

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  --->        [CONFIG_NETWORK_FILESYSTEMS]
    <*/M> NFS client support             [CONFIG_NFS_FS]
    <*/M> NFS server support             [CONFIG_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 "NFS Utilities" executando os seguintes comandos:

./configure --prefix=/usr         \
            --sysconfdir=/etc      \
            --sbindir=/usr/sbin    \
            --disable-nfsv4        \
            --disable-gss &&
make

Esse pacote não vem com uma suíte de teste funcional.

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

Explicações do Comando

--disable-gss: Desabilita o suporte para "GSS" do "RPCSEC" (Segurança "RPC").

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.

Unidades do Systemd

Instale as unidades de servidor NFSv4 inclusas no pacote blfs-systemd-units-20220720 para iniciar o servidor na inicialização.

make install-nfsv4-server

Se você desabilitou o suporte ao "NFSv4", [então] execute o seguinte comando como o(a) usuário(a) "root" para omitir as unidades do "systemd" específicas do "NFSv4":

make install-nfs-server

Você consegue editar o arquivo "/etc/default/nfs-utils" para mudar as opções de inicialização dos processos de segundo plano do "NFS". Os padrões deveriam servir para a maioria dos casos de uso.

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.

Você possivelmente precise habilitar o "autofs v4" em teu núcleo e adicionar a opção "comment=systemd.automount". Algumas máquinas podem precisar disso porque o "systemd" tenta montar os sistemas de arquivos externos antes que a rede de intercomunicação esteja ativa. Uma alternativa é a de executar "mount -a" como o(a) usuário(a) "root" depois que o sistema tiver iniciado.

Unidades do Systemd

Nota

As seguintes unidades do "systemd" não são necessárias se as unidades "nfs-server" estiverem instaladas.

Instale as unidades inclusas no pacote "" "blfs-systemd-units-20220720" para iniciar os serviços do cliente na inicialização.

make install-nfs-client

Conteúdo

Aplicativos Instalados: exportfs, 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

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"

ntp-4.2.8p15

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "ntp"

Exigidas

IO-Socket-SSL-2.081

Opcionais

libcap-2.67 com PAM, libevent-2.1.12, libedit e libopts originário do AutoGen

Observações de Usuário(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

O comando "update-leap" precisa ser corrigido para a finalidade de funcionar corretamente:

sed -e 's/"(\\S+)"/"?([^\\s"]+)"?/' \
   -i scripts/update-leap/update-leap.in

Agora corrija um problema introduzido com a "glibc-2.34":

sed -e 's/#ifndef __sun/#if !defined(__sun) \&\& !defined(__GLIBC__)/' \
   -i libntp/work_thread.c

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.8p15 &&
make

A suíte de teste desse pacote está quebrada com o "GCC" 10 ou posterior.

Agora, como o(a) usuário(a) "root":

make install &&
install -v -o ntp -g ntp -d /var/lib/ntp

Explicações do Comando

CFLAGS="-O2 -g -fPIC": Essa variável de ambiente é necessária para gerar Código Independente de Posição necessário para uso nas bibliotecas de pacotes.

--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 primeiro define vários servidores "NTP" com acesso aberto a partir de diferentes continentes. Segundo, ele cria um arquivo de mudança gradual onde o "ntpd" armazena o deslocamento de frequência e um arquivo "PID" para armazenar o "ID" do processo do "ntpd". Terceiro, ele define o local para o arquivo de definição do segundo bissexto "/etc/ntp.leapseconds", que o conjunto de comandos sequenciais "update-leap" verifica e atualiza, quando necessário. Esse conjunto de comandos sequenciais pode ser executado como uma tarefa do "Cron" e os desenvolvedores do "ntp" recomendam uma frequência de cerca de três semanas para as atualizações. Como a documentação incluída no pacote é escassa, visite o sítio da "web" 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

leapfile  /var/lib/ntp/ntp.leapseconds
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 a unidade "ntpd.service" inclusa no pacote "" "blfs-systemd-units-20220720".

make install-ntpd

Se você preferir executar o "ntpd" periodicamente, [então] adicione o seguinte comando ao "crontab" do(a) "root":

ntpd -q

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

rpcbind-1.2.6

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Transferências Adicionais

Dependências do "rpcbind"

Exigidas

libtirpc-1.3.3

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/rpcbind

Instalação do rpcbind

Deveria existir um(a) usuário(a) e um grupo dedicado(a) para assumir o controle do processo de segundo plano "rpcbind" depois de ele ser iniciado. Emita os seguintes comandos como o(a) usuário(a) "root":

groupadd -g 28 rpc &&
useradd -c "Proprietário(a) do Processo de Segundo Plano de Ligação RPC" -d /dev/null -g rpc \
        -s /bin/false -u 28 rpc

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:

patch -Np1 -i ../rpcbind-1.2.6-vulnerability_fixes-1.patch &&

./configure --prefix=/usr      \
            --bindir=/usr/sbin  \
            --enable-warmstarts \
            --with-rpcuser=rpc  &&
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=rpc: Essa chave é usada de forma que o processo de segundo plano "rpcbind" executará como um(a) usuário(a) sem privilégios em vez do(a) usuário(a) "root".

Configurando o rpcbind

Unidade do systemd

Habilite a unidade do "systemd" instalada com o pacote:

systemctl enable 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.2.7

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://www.samba.org/ftp/rsync/src/rsync-3.2.7.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: f216f350ef56b9ba61bc313cb6ec2ed6

  • Tamanho da transferência: 1,1 MB

  • Espaço em disco estimado exigido: 9,6 MB (com os testes; adicionar 24 MB para a documentação "HTML" da "API")

  • Tempo de construção estimado: 0,7 UPC (com os testes)

Dependências do "rsync"

Recomendadas
Opcionais

Doxygen-1.9.6, lz4 e xxhash

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/rsync

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-lz4    \
            --disable-xxhash \
            --without-included-zlib &&
make

Se você tiver o "Doxygen-1.9.6" 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.2.7/api &&
install -v -m644 dox/html/*  /usr/share/doc/rsync-3.2.7/api

Explicações do Comando

--disable-lz4: Essa chave desabilita o suporte à compressão "LZ4". Observe que ele usa o algoritmo superior "zstd" quando essa chave estiver em uso, e o "zstd" é fornecido no LFS.

--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.2p1" 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.

Unidade do systemd

Observe que você só precisa iniciar o servidor "rsync" se quiser fornecer um arquivamento "rsync" em sua máquina local. Você não precisa desta unidade para executar o cliente "rsync".

Instale a unidade "rsyncd.service" inclusa no pacote "" "blfs-systemd-units-20220720".

make install-rsyncd

Nota

Esse pacote vem com dois tipos de unidades: um arquivo de serviço e um arquivo de soquete. O arquivo de serviço iniciará o processo de segundo plano "rsync" uma vez na inicialização e ele continuará em execução até que o sistema seja desligado. O arquivo de soquete fará com que o "systemd" escute na porta do "rsync" (padrão 873, precisa ser editado para qualquer outra coisa) e iniciará o processo de segundo plano "rsync" quando algo tentar se conectar a essa porta e parará o processo de segundo plano quando a conexão for terminada. Isso é chamado de ativação de soquete e é análogo a usar "{,x}inetd" em um sistema baseado em "SysVinit".

Por padrão, o primeiro método é usado - o processo de segundo plano "rsync" é iniciado na inicialização e parado no desligamento. Se o método de soquete for desejado, [então] você precisa executar como o(a) usuário(a) "root":

systemctl stop rsyncd &&
systemctl disable rsyncd &&
systemctl enable rsyncd.socket &&
systemctl start rsyncd.socket

Observe que o método de soquete só é útil para cópias remotas de segurança. Para cópias locais de segurança, você precisará do método de serviço.

Conteúdo

Aplicativo Instalado: rsync e rsync-ssl
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: Opcionalmente, /usr/share/doc/rsync-3.2.7

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.17.5

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://download.samba.org/pub/samba/stable/samba-4.17.5.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 8e1d89cad4de151a6de83ff1eac359a1

  • Tamanho da transferência: 29 MB

  • Espaço em disco estimado exigido: 715 MB (adicionar 30 MB para teste rápido)

  • Tempo de construção estimado: 2,2 UPC (usando paralelismo=4; adicionar 0,3 UPC para teste rápido)

Dependências do "Samba"

Exigidas

GnuTLS-3.8.0, jansson-2.14, JSON-4.10, libtirpc-1.3.3, lmdb-0.9.29 e rpcsvc-proto-1.4.3

Recomendadas
Opcionais

Avahi-0.8, BIND-9.18.12, Cups-2.4.2, Cyrus SASL-2.1.28, GDB-13.1, git-2.39.2, GnuPG-2.4.0 (exigido para "ADS" e a suíte de teste), libaio-0.3.113, libarchive-3.6.2, libcap-2.67 com PAM, libgcrypt-1.10.1, libnsl-2.0.0, libunwind-1.6.2, MIT Kerberos V5-1.20.1, nss-3.88.1, popt-1.19, Talloc-2.4.0 (incluso), Vala-0.56.4, Valgrind-3.20.0 (opcionalmente usado pela suíte de teste), xfsprogs-6.1.1, cmocka, cryptography, ctdb (incluso), cwrap, dnspython, FAM, Gamin, GlusterFS, Heimdal (incluso), iso8601, ldb (incluso), M2Crypto (exigido para "ADS"), OpenAFS, pyasn1, PyGPGME (recomendado para "ADS"), tevent (incluso), tdb (incluso) e tracker-2

Opcionais (para a Suíte de Teste de Desenvolvedor(a))

Instale na ordem listada: six-1.16.0, pytest-7.2.1, argparse, extras, hypothesis, coverage, pytest-cov, doctools, unittest2, testtools, fixtures, python-mimeparse, contextlib2, traceback2, linecache2, testscenarios, testresources, virtualenv, pbr e python-subunit

Observações de Usuário(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:

python3 -m venv pyvenv &&
./pyvenv/bin/pip3 install cryptography pyasn1 iso8601

Instale o "Samba" executando os seguintes comandos:

PYTHON=$PWD/pyvenv/bin/python3            \
CPPFLAGS="-I/usr/include/tirpc"            \
LDFLAGS="-ltirpc"                          \
./configure                                \
    --prefix=/usr                          \
    --sysconfdir=/etc                      \
    --localstatedir=/var                   \
    --with-piddir=/run/samba               \
    --with-pammodulesdir=/usr/lib/security \
    --enable-fhs                           \
    --without-ad-dc                        \
    --enable-selftest                      &&
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 um caminho rigidamente codificado para o interpretador "Python" 3:

sed '1s@^.*$@#!/usr/bin/python3@' \
   -i ./bin/default/source4/scripting/bin/samba-gpupdate.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.11/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.LDAP  &&

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-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-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, 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 o teu local preferido, 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 as unidades "systemd" fornecidas.

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 a unidade do "systemd" "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 precisam 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 a unidade do "systemd" 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".

Unidades do systemd

Para iniciar os processos de segundo plano do "Samba" na inicialização, instale as unidades do "systemd" a partir do pacote "blfs-systemd-units-20220720" executando o seguinte comando como o(a) usuário(a) "root":

make install-samba

Para iniciar o processo de segundo plano "winbindd" na inicialização, instale a unidade do "systemd" a partir do pacote "blfs-systemd-units-20220720" executando o seguinte comando como o(a) usuário(a) "root":

make install-winbindd

Nota

Esse pacote vem com dois tipos de unidades: um arquivo de serviço e um arquivo de soquete. O arquivo de serviço iniciará o processo de segundo plano "smbd" uma vez na inicialização e ele continuará executando até o sistema ser desligado. O arquivo de soquete fará com que o "systemd" escute na porta do "smbd" (padrão 445, precisa ser editado para qualquer outra coisa) e iniciará o processo de segundo plano "smbd" quando algo tentar se conectar a essa porta e parará o processo de segundo plano quando a conexão for terminada. Isso é chamado de ativação de soquete e é análogo a usar "{,x}inetd" em um sistema baseado em "SysVinit".

Por padrão, o primeiro método é usado - o processo de segundo plano "smbd" é iniciado na inicialização e parado no desligamento. Se o método de soquete for desejado, [então] você precisa executar os seguintes comandos como o(a) usuário(a) "root":

systemctl stop smbd &&
systemctl disable smbd &&
systemctl enable smbd.socket &&
systemctl start smbd.socket

Observe que somente o processo de segundo plano "smbd" pode ser ativado por soquete.

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-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-310-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 suporte sob /usr/lib/{python3.11,samba}
Diretórios Instalados: /etc/samba, /run/samba, /usr/include/samba-4.0, /usr/lib/python3.11/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-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.21.3

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "Wget"

Recomendadas
Opcionais

GnuTLS-3.8.0, HTTP-Daemon-6.15 (para a suíte de teste), IO-Socket-SSL-2.081 (para a suíte de teste), libidn2-2.3.4, libpsl-0.21.2, PCRE-8.45 ou pcre2-10.42 e Valgrind-3.20.0 (para a suíte de teste)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/wget

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.0".

--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

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Transferências Adicionais

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/WirelessTools

Configuração do Núcleo

Para usar "Wireless Tools", o núcleo precisa ter os controladores apropriados e outros suportes disponíveis. O barramento apropriado também precisa estar disponível. Para muitos "laptops", o barramento "PCMCIA" ("CONFIG_PCCARD") precisa ser construído. Em alguns casos, esse suporte de barramento também precisa ser construído para placas sem fios incorporadas. O suporte de ponte apropriado também precisa ser construído. Para muitos "laptops" modernos, a ponte de dispositivo "CardBus" ("CONFIG_YENTA") será necessária.

Além do barramento, o controlador real para a placa sem fios específica também precisa estar disponível. Existem muitas placas sem fios e nem todas funcionam com o Linux. O primeiro lugar para procurar suporte de placa é o núcleo. Os controladores estão localizados em Device Drivers → Network Device Support → Wireless LAN (non-hamradio). Existem também controladores externos disponíveis para algumas placas muito comuns. Para mais informações, consulte as notas de usuário(a).

Depois que os controladores corretos estiverem carregados, a interface aparecerá em "/proc/net/wireless".

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.10

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://w1.fi/releases/wpa_supplicant-2.10.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: d26797fcb002898d4ee989179346e1cc

  • Tamanho da transferência: 3,4 MB

  • Espaço em disco estimado exigido: 37 MB

  • Tempo de construção estimado: 0,5 UPC (com a GUI opcional)

Dependências do "WPA Supplicant"

Recomendadas
Opcionais

libxml2-2.10.3 e Qt-5.15.8

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/wpa_supplicant

Configuração do Núcleo

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  --->                             [CONFIG_NET]
  [*] Wireless  --->                                      [CONFIG_WIRELESS]
    <*/M> cfg80211 - wireless configuration API           [CONFIG_CFG80211]
    [*]     cfg80211 wireless extensions compatibility    [CONFIG_CFG80211_WEXT]
    <*/M> Generic IEEE 802.11 Networking Stack (mac80211) [CONFIG_MAC80211]
Device Drivers  --->
  [*] Network device support  --->                        [CONFIG_NETDEVICES]
    [*] Wireless LAN  --->                                [CONFIG_WLAN]

Abra o submenu e selecione as opções que suportam o teu hardware: "lspci" oriundo de "pciutils-3.9.0" pode ser usado para visualizar a configuração do teu hardware.

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.42.0", [então] certifique-se de ter instalado o "dbus-1.14.6" e o "libxml2-2.10.3" então adicione as seguintes opções ao arquivo de configuração da 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
cd wpa_supplicant &&
make BINDIR=/usr/sbin LIBDIR=/usr/lib

Se você tiver instalado o "Qt-5.15.8" e desejar construir o aplicativo "GUI" do "WPA Supplicant", [então] execute os seguintes comandos:

Nota

O seguinte nome de diretório é rotulado como "qt4", mas é compatível com o "Qt-5.15.8".

pushd wpa_gui-qt4 &&
qmake wpa_gui.pro &&
make &&
popd

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/

Instale os arquivos de suporte do "systemd" executando o seguinte comando como o(a) usuário(a) "root":

install -v -m644 systemd/*.service /usr/lib/systemd/system/

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

Além disso, habilite o "wpa_supplicant.service", de forma que o "systemd" consiga ativar corretamente o serviço "D-Bus". Observe que o serviço por conexão e o serviço "D-Bus" não podem ser habilitados ao mesmo tempo. Execute o seguinte comando como o(a) usuário(a) "root":

systemctl enable wpa_supplicant

Se você tiver construído o aplicativo "GUI" do "WPA Supplicant", [então] instale-o executando os seguintes comandos como o(a) usuário(a) "root":

install -v -m755 wpa_gui-qt4/wpa_gui /usr/bin/ &&
install -v -m644 doc/docbook/wpa_gui.8 /usr/share/man/man8/ &&
install -v -m644 wpa_gui-qt4/wpa_gui.desktop /usr/share/applications/ &&
install -v -m644 wpa_gui-qt4/icons/wpa_gui.svg /usr/share/pixmaps/

Nota

Você precisará reiniciar o processo de segundo plano "D-Bus" do sistema antes que possa usar a interface "WPA Supplicant" do "D-Bus".

Nota

Esse pacote instala arquivos de área de trabalho na hierarquia /usr/share/applications e você pode melhorar o desempenho do sistema e o uso de memória atualizando /usr/share/applications/mimeinfo.cache. Para realizar a atualização, você precisa ter o desktop-file-utils-0.26 instalado e emitir o seguinte comando como o(a) usuário(a) root:

update-desktop-database -q

Configurando o wpa_supplicant

Arquivo de Configuração

/etc/wpa_supplicant/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/wpa_supplicant/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":

install -v -dm755 /etc/wpa_supplicant &&
wpa_passphrase SSID SENHA_SECRETA > /etc/wpa_supplicant/wpa_supplicant-wifi0.conf

"/etc/wpa_supplicant/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/wpa_supplicant/wpa_supplicant-wifi0.conf". Substitua "Algum-SSID" pelo "SSID" do ponto de acesso/roteador.

network={
  ssid="Algum-SSID"
  key_mgmt=NONE
}

Conetar-se a um novo ponto de acesso que não esteja no arquivo de configuração pode ser realizada manualmente por meio da linha de comando ou da "GUI", 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

Existem três tipos de unidades do "systemd" que foram instaladas:

  • wpa_supplicant@.service

  • wpa_supplicant-nl80211@.service

  • wpa_supplicant-wired@.service

A única diferença entre elas três é qual controlador é usado para conectar (opção "-D"). A primeira usa o controlador padrão, a segunda usa o controlador "nl80211" e a terceira usa o controlador com fio.

Você consegue se conectar ao ponto de acesso sem fio executando o seguinte comando como o(a) usuário(a) "root":

systemctl start wpa_supplicant@wlan0

Para conectar-se ao ponto de acesso sem fio na inicialização, simplesmente habilite o serviço "wpa_supplicant" apropriado executando o seguinte comando como o(a) usuário(a) "root":

systemctl enable wpa_supplicant@wlan0

Dependendo da tua configuração, você pode substituir o "wpa_supplicant@.service" por qualquer outro listado acima.

Para atribuir um endereço de rede de intercomunicação para a tua interface sem fio, consulte a página Configuração Geral de Rede de Intercomunicação no LFS.

Conteúdo

Aplicativos Instalados: wpa_gui, wpa_supplicant, wpa_passphrase e wpa_cli
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: Nenhum(a)

Descrições Curtas

wpa_gui

é um aplicativo gráfico de estrutura de interação direta com o(a) usuário(a) para interagir com o "wpa_supplicant"

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.

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/basicnetworkingutilities

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Transferências Adicionais

Dependências do "Avahi"

Exigidas

GLib-2.74.5

Recomendadas
Opcionais

D-Bus Python-1.3.2, libevent-2.1.12, PyGTK-2.24.0, Doxygen-1.9.6 e xmltoman (para gerar documentação)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/avahi

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        \
    --enable-core-docs   \
    --with-distro=none   \
    --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-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 o processo de segundo plano avahi-daemon na inicialização, habilite a unidade do systemd instalada anteriormente executando o seguinte comando como o(a) usuário(a) root:

systemctl enable avahi-daemon

Para iniciar o processo de segundo plano avahi-dnsconfd na inicialização, habilite a unidade do systemd instalada anteriormente executando o seguinte comando como o(a) usuário(a) root:

systemctl enable avahi-dnsconfd

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-qt5, 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-qt5, 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.18.12

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.18.12". 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências dos Utilitários "BIND"

Exigidas

libuv-1.44.2

Recomendadas
Opcionais

libcap-2.67 com PAM, libxml2-2.10.3 e sphinx-6.1.3

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/bind-utils

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/bind9  &&
make -C lib/irs    &&
make -C bin/dig    &&
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/bind9  install &&
make -C lib/irs    install &&
make -C bin/dig    install &&
cp -v doc/man/{dig.1,host.1,nslookup.1} /usr/share/man/man1

Explicações do Comando

--disable-doh: Use essa opção se você não tiver instalado o "nghttp2-1.52.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/dig: Esse comando constrói os aplicativos clientes.

make -C doc: Esse comando constrói as páginas de manual se o módulo opcional "sphinx-6.1.3" do "Python" estiver instalado.

Use "cp -v doc/man/{dig.1,host.1,nslookup.1} /usr/share/man/man1" para instalar as páginas de manual se elas tiverem sido construídas.

Conteúdo

Aplicativos Instalados: dig, host e nslookup
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: Nenhum(a)

Descrições Curtas

Vejam-se as descrições do aplicativo na seção "BIND-9.18.12".

NetworkManager-1.42.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 adequadamente usando uma plataforma LFS 11.3.

Nota

Certifique-se de desabilitar o serviço "systemd-networkd" ou configurá-lo para não gerenciar as interfaces que você quiser gerenciar com o "NetworkManager".

Informação do Pacote

Dependências do "NetworkManager"

Exigidas

jansson-2.14 e libndp-1.8

Recomendadas
Opcionais

BlueZ-5.66, D-Bus Python-1.3.2 (para a suíte de teste), GnuTLS-3.8.0 (usado se nss-3.88.1 não for encontrado), GTK-Doc-1.33.2, libpsl-0.21.2, Qt-5.15.8 (para exemplos), ModemManager-1.18.12, Valgrind-3.20.0, dnsmasq, firewalld, libaudit, libteam, mobile-broadband-provider-info, PPP e RP-PPPoE

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/NetworkManager

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--->                               [CONFIG_NET]
      Networking options--->
      [*] TCP/IP networking                               [CONFIG_INET]
      <*/M>   IP: tunelling                               [CONFIG_NET_IPIP]
      <*/M>   IP: GRE demultiplexer                       [CONFIG_NET_IPGRE_DEMUX]
      <*/M>   IP: GRE tunnels over IP                     [CONFIG_NET_IPGRE]
      <*>   The IPv6 protocol --->                        [CONFIG_IPV6]
        <*/M> IPv6: IPv6-in-IPv4 tunnel (SIT driver)      [CONFIG_IPV6_SIT]
        <*/M> IPv6: GRE tunnel                            [CONFIG_IPV6_GRE]
        [*] IPv6: Multiple Routing Tables                 [CONFIG_IPV6_MULTIPLE_TABLES]
      [*]   MPTCP:   Multipath TCP                        [CONFIG_MPTCP]
      [*]     MPTCP: IPv6 support for Multipath TCP       [CONFIG_MPTCP_IPV6]
      <*/M> 802.1Q/802.1ad VLAN Support                   [CONFIG_VLAN_8021Q]
      [*] QoS and/or fair queueing  --->                  [CONFIG_NET_SCHED]
        <*/M> Stochastic Fairness Queueing (SFQ)          [CONFIG_NET_SCH_SFQ]
        <*/M> Token Bucket Filter (TBF)                   [CONFIG_NET_SCH_TBF]
        <*/M> Fair Queue Controlled Delay AQM (FQ_CODEL)  [CONFIG_NET_SCH_FQ_CODEL]
        <*/M> Ingress/classifier-action Qdisc             [CONFIG_NET_SCH_INGRESS]
    Device Drivers --->
    [*] Network device support --->                       [CONFIG_NETDEVICES]
      [*] Network core driver support                     [CONFIG_NET_CORE]
      <*>   Bonding driver support                        [CONFIG_BONDING]
      <*>   Dummy net driver support                      [CONFIG_DUMMY]
      <*>   Ethernet team driver support --->             [CONFIG_NET_TEAM]
      <*>   MAC-VLAN support                              [CONFIG_MACVLAN]
      <*>     MAC-VLAN based tap driver                   [CONFIG_MACVTAP]
      <*>   IP-VLAN support                               [CONFIG_IPVLAN]
      <*>   Virtual eXtensible Local Area Network (VXLAN) [CONFIG_VXLAN]
      <*>   Virtual ethernet pair device                  [CONFIG_VETH]
      <*>   Virtual Routing and Forwarding (Lite)         [CONFIG_VRF]

Instalação do NetworkManager

Se "Qt-5.15.8" estiver instalado e os exemplos baseados em "Qt" forem desejados, [então] corrija dois arquivos "meson.build":

sed -e 's/-qt4/-qt5/'             \
    -e 's/moc_location/host_bins/' \
    -i examples/C/qt/meson.build   &&

sed -e 's/Qt/&5/'                  \
    -i meson.build

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    &&

CXXFLAGS+="-O2 -fPIC"            \
meson setup                      \
      --prefix=/usr              \
      --buildtype=release        \
      -Dlibaudit=no              \
      -Dlibpsl=false             \
      -Dnmtui=true               \
      -Dovs=false                \
      -Dppp=false                \
      -Dselinux=false            \
      -Dqt=false                 \
      -Dsession_tracking=systemd \
      -Dmodem_manager=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.42.0}

Se você não passou a opção "-Ddocs=true" para "meson", [então] 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

Ainda caso você não tenha usado "-Ddocs=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.42.0

Explicações do Comando

CXXFLAGS="-O2 -fPIC": Essas opções do compilador são necessárias para construir exemplos baseados em "Qt5".

--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.

-Ddocs=true: Use essa chave para habilitar a construção de páginas de manual e documentação se "GTK-Doc-1.33.2" estiver instalado.

-Dnmtui=true: Esse parâmetro habilita construir o "nmtui".

-Dlibpsl=false e -Dovs=false: Essas chaves desabilitam a construção com as respectivas bibliotecas. Remova se você tiver as bibliotecas necessárias instaladas.

-Dmodem_manager=false: Essa chave é exigida se o "ModemManager" não estiver instalado. Omita se você tiver construído "ModemManager" e "mobile-broadband-provider-info".

-Dsession_tracking=systemd: Essa chave é usada para configurar o "systemd-logind" como o aplicativo padrão para rastreamento de sessão.

-Dsystemdsystemunitdir=/lib/systemd/system: Essa chave é usada para configurar o diretório correto de instalação para as unidades do "systemd".

-Dppp=false: Esse parâmetro desabilita o suporte "PPP" no "NetworkManager".

-Dlibaudit=no e -Dselinux=false: "libaudit" e "SELinux" não são usados no BLFS.

-Dqt=false: desabilita os exemplos "QT". Omita se você tiver o "QT" disponível e desejar instalar os exemplos.

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 "dhclient" ou "internal"):

cat > /etc/NetworkManager/conf.d/dhcp.conf << "EOF"
[main]
dhcp=dhclient
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

Unidade do systemd

Para iniciar o processo de segundo plano NetworkManager na inicialização, habilite a unidade do systemd instalada anteriormente executando o seguinte comando como o(a) usuário(a) root:

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".

systemctl enable NetworkManager

Começando na versão 1.11.2 do "NetworkManager", uma unidade do "systemd" chamada "NetworkManager-wait-online.service" está habilitada, a qual é usada para evitar que serviços que exigem conectividade de rede de intercomunicação iniciem até que o "NetworkManager" estabeleça uma conexão. Para desabilitar esse comportamento, execute o seguinte comando como o(a) usuário(a)" root":

systemctl disable NetworkManager-wait-online

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.42.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.30.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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "NetworkManager Applet"

Exigidas

GTK+-3.24.36, libnma-1.10.6 e libsecret-0.20.5

Recomendadas
Exigidas (Tempo de Execução)

Como esse pacote usa "Polkit-122" 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-42.5 e libindicator

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/network-manager-applet

Instalação do NetworkManager Applet

Instale o "NetworkManager Applet" executando os seguintes comandos:

mkdir build &&
cd   build &&

meson --prefix=/usr       \
      --buildtype=release \
      -Dappindicator=no   \
      -Dselinux=false     &&
ninja

Para testar os resultados, emita: "ninja test".

Agora, como o(a) usuário(a) "root":

ninja install

Explicações do Comando

-Dappindicator=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.

-Dselinux=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.

-Dwwan=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.93

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://nmap.org/dist/nmap-7.93.tar.bz2

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 9027eac4b8ca57574012cb061ba9ce4d

  • Tamanho da transferência: 10 MB

  • Espaço em disco estimado exigido: 141 MB (adicionar 22 MB para os testes)

  • Tempo de construção estimado: 0,3 UPC (Usando paralelismo=4; adicionar 0,2 UPC para os 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

PyGTK-2.24.0 (exigido para o zenmap), Python-2.7.18 (exigido para o ndiff) e libssh2-1.10.0

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/nmap

Instalação do Nmap

Instale o "Nmap" executando os seguintes comandos:

./configure --prefix=/usr &&
make

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/python2.7/site-packages/{radialnet,zenmapCore,zenmapGUI} 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.2

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/traceroute

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "Whois"

Opcionais

libidn-1.41 ou libidn2-2.3.4

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/whois

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.0.3

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://www.wireshark.org/download/src/all-versions/wireshark-4.0.3.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 11a7302d65b1ff26f92148f3014eaf5b

  • Tamanho da transferência: 39 MB

  • Espaço em disco estimado exigido: 680 MB (com todas as dependências opcionais disponíveis no livro BLFS)

  • Tempo de construção estimado: 1,9 UPC (com paralelismo=4 e todas as dependências opcionais disponíveis no livro BLFS)

Transferências Adicionais

Dependências do "Wireshark"

Exigidas

CMake-3.25.2, GLib-2.74.5, libgcrypt-1.10.1 e Qt-5.15.8

Recomendadas
Opcionais

asciidoctor-2.0.18, Brotli-1.0.9, c-ares-1.19.0, Doxygen-1.9.6, git-2.39.2, GnuTLS-3.8.0, libnl-3.7.0, libxslt-1.1.37, libxml2-2.10.3, Lua-5.2.4, MIT Kerberos V5-1.20.1, nghttp2-1.52.0, SBC-2.0, Speex-1.2.1, BCG729, libilbc, libsmi, lz4, libssh, MaxMindDB, Minizip, Snappy e Spandsp

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/wireshark

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 --->         [CONFIG_NET]
      Networking options --->
        <*/M> Packet socket          [CONFIG_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 -DCMAKE_INSTALL_PREFIX=/usr \
      -DCMAKE_BUILD_TYPE=Release  \
      -DCMAKE_INSTALL_DOCDIR=/usr/share/doc/wireshark-4.0.3 \
      -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.0.3 &&
install -v -m644   ../README.linux ../doc/README.* ../doc/randpkt.txt \
                    /usr/share/doc/wireshark-4.0.3 &&

pushd /usr/share/doc/wireshark-4.0.3 &&
   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.0.3

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,dumpcap} &&
chmod -v 6550 /usr/bin/{tshark,dumpcap}

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.9". 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, captype, dumpcap, 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/{include,lib,share}/wireshark e /usr/share/doc/wireshark-4.0.3

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

dumpcap

é uma ferramenta de despejo de tráfego de rede de intercomunicação. Ela te permite capturar dados de pacotes a partir de uma rede de intercomunicação ativa e escrever os pacotes em um arquivo

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 aplicativo 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 aplicativos "Python", "wireshark_be.py" e "wireshark_gen.py", que 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.19.0

Introdução ao c-ares

"c-ares" é uma biblioteca "C" para solicitações "DNS" assíncronas.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://c-ares.haxx.se/download/c-ares-1.19.0.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 2668790bc92603e292d0fbcb25ded39c

  • Tamanho da transferência: 1,5 MB

  • Espaço em disco estimado exigido: 11 MB

  • Tempo de construção estimado: menos que 0,1 UPC

Dependências de c-ares

Exigidas

CMake-3.25.2

Instalação do c-ares

Instale c-ares executando os seguintes comandos:

mkdir build &&
cd   build &&

cmake  -DCMAKE_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: acountry, adig e ahost
Bibliotecas Instaladas: libcares.so
Diretórios Instalados: Nenhum(a)

Descrições Curtas

acountry

imprime o país onde um endereço "IPv4" ou dispositivo está localizado

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-7.88.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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://curl.se/download/curl-7.88.1.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 8bea0c58428578f397471fe209fad6ab

  • Tamanho da transferência: 2,5 MB

  • Espaço em disco estimado exigido: 150 MB (adicionar 23 MB para os testes)

  • Tempo de construção estimado: 0,2 UPC (com paralelismo=4; adicionar 16 UPC para os testes)

Dependências do "cURL"

Recomendadas
Opcionais

Brotli-1.0.9, c-ares-1.19.0, GnuTLS-3.8.0, libidn2-2.3.4, libpsl-0.21.2, libssh2-1.10.0, MIT Kerberos V5-1.20.1, nghttp2-1.52.0, OpenLDAP-2.6.4, Samba-4.17.5, gsasl, impacket, libmetalink, librtmp, ngtcp2, quiche e SPNEGO

Opcionais se Executar a Suíte de Teste

stunnel-5.68 (para os testes HTTPS e FTPS) e Valgrind-3.20.0 (isso atrasará os testes e possivelmente cause falhas.)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/curl

Instalação do cURL

Instale o "cURL" executando os seguintes comandos:

./configure --prefix=/usr                          \
            --disable-static                        \
            --with-openssl                          \
            --enable-threaded-resolver              \
            --with-ca-path=/etc/ssl/certs &&
make

Para executar a suíte de teste, emita: "make test". Se o Samba estiver instalado, os testes relacionados produzirão uma mensagem duplicada muitas vezes reclamando que o módulo "Python" "impacket" (não é parte do BLFS) está ausente e será ignorado.

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 \) -exec rm {} \; &&

install -v -d -m755 /usr/share/doc/curl-7.88.1 &&
cp -v -R docs/*    /usr/share/doc/curl-7.88.1

Testes simples para o novo "curl" instalado: "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 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.

--enable-threaded-resolver: Essa chave ativa o resolvedor "DNS" encadeado integrado do "cURL".

--with-ca-path=/etc/ssl/certs: Essa chave define o local do armazenamento da Autoridade Certificadora do BLFS.

--with-openssl: Esse parâmetro escolhe o "OpenSSL" como implementação "SSL"/"TLS". Isso parece obrigatório agora.

--with-gssapi: Esse parâmetro adiciona suporte "Kerberos 5" à "libcurl".

--without-ssl --with-gnutls: Use 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". Ele substitui "--enable-threaded-resolver" e não é amplamente testado pelos(as) Editores(as).

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-7.88.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.0

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "GeoClue"

Exigidas

JSON-GLib-1.6.6 e libsoup-3.2.2

Recomendadas
Opcionais

GTK-Doc-1.33.2 e libnotify-0.8.1

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/geoclue2

Instalação do GeoClue

Instale o "GeoClue" executando os seguintes comandos:

mkdir build &&
cd   build &&

meson --prefix=/usr --buildtype=release -Dgtk-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.

-D3g-source=false: Essa chave desativa a estrutura de retaguarda "3G". Use-a se você não tiver instalado o pacote "ModemManager".

-Dmodem-gps-source=false: Essa chave desativa a estrutura de retaguarda "GPS" do modem. Use-a se você não tiver instalado o pacote "ModemManager".

-Dcdma-source=false: Essa chave desabilita a estrutura de retaguarda fonte "CDMA". Use-a se você não tiver instalado o pacote "ModemManager".

-Dnmea-source=false: Essa chave desabilita a fonte "NMEA". Use-a se você não tiver instalado o pacote "Avahi".

-Ddemo-agent=false: Essa chave desabilita a demonstração. Use-a se você não tiver instalado o pacote "libnotify".

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.74.0

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "GLib Networking"

Exigidas

GLib-2.74.5 e GnuTLS-3.8.0

Recomendadas
Opcionais

libproxy

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/glib-networking

Instalação do GLib Networking

Instale o "GLib Networking" executando os seguintes comandos:

mkdir build &&
cd   build &&

meson --prefix=/usr       \
      --buildtype=release &&
ninja

Para testar os resultados, emita: "ninja test". Um teste chamado "connection-gnutls-tls1.2" é conhecido por falhar com o "GnuTLS" 3.7.8 ou posterior.

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: libgioenvironmentproxy.so, libgiognomeproxy.so e libgiognutls.so (Módulos "GIO" instalados em "/usr/lib/gio/modules")
Diretórios Instalados: Nenhum(a)

kdsoap-2.1.1

Introdução ao kdsoap

O "kdsoap" é um componente "SOAP" do lado 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "kdsoap"

Exigidas

Qt-5.15.8

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/kdsoap

Instalação do kdsoap

Instale o "kdsoap" executando os seguintes comandos:

mkdir build &&
cd   build &&

cmake -DCMAKE_INSTALL_PREFIX=/usr \
      -DCMAKE_BUILD_TYPE=Release  \
      -DCMAKE_INSTALL_DOCDIR=/usr/share/doc/kdsoap-2.1.1 \
      .. &&
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
Bibliotecas Instaladas: libkdsoap.so e libkdsoap-server.so
Diretórios Instalados: /usr/lib/cmake/KDSoap, /usr/share/doc/kdsoap-2.1.1, /usr/include/KDSoapClient e /usr/include/KDSoapServer

ldns-1.8.3

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://www.nlnetlabs.nl/downloads/ldns/ldns-1.8.3.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 429b93dacb2d6ecc5ed63788b14c38e6

  • Tamanho da transferência: 1,2 MB

  • Espaço em disco estimado exigido: 30 MB (com os documentos)

  • Tempo de construção estimado: 0,2 UPC (com os documentos)

Dependências do "ldns"

Opcionais

make-ca-1.12 e libpcap-1.10.3 (para aplicativos de exemplo), Python-2.7.18 e SWIG-4.1.1 (para ligações "Python") e Doxygen-1.9.6 (para documentação "HTML")

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/ldns

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.9.6" 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.3 &&
install -v -m644 doc/html/* /usr/share/doc/ldns-1.8.3

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 a construção das ligações "Python".

Conteúdo

Aplicativos Instalados: drill e ldns-config
Biblioteca Instalada: libldns.so e /usr/lib/python2.7/site-packages/_ldns.so
Diretórios Instalados: /usr/include/ldns e /usr/share/doc/ldns-1.8.3

Descrições Curtas

drill

é uma ferramenta como o "dig" oriunda de "Utilitários BIND-9.18.12" 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "libevent"

Opcionais

Doxygen-1.9.6 (para a documentação da "API")

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libevent

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.9.6" 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".

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "libnma"

Opcionais

Doxygen-1.9.6

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libmnl

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"

libnl-3.7.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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Transferência Opcional

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libnl

Instalação do libnl

Instale o "libnl" executando os seguintes comandos:

./configure --prefix=/usr    \
            --sysconfdir=/etc \
            --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

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.7.0 &&
tar -xf ../libnl-doc-3.7.0.tar.gz --strip-components=1 --no-same-owner \
   -C  /usr/share/doc/libnl-3.7.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.7.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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "libnma"

Exigidas

Gcr-3.41.1, GTK+-3.24.36, ISO Codes-4.12.0 e NetworkManager-1.42.0

Recomendadas
Opcionais

mobile-broadband-provider-info

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libnma

Instalação do libnma

Instale o "libnma" executando os seguintes comandos:

mkdir build &&
cd   build &&

meson --prefix=/usr                             \
      --buildtype=release                       \
      -Dgtk_doc=false                           \
      -Dlibnma_gtk4=true                        \
      -Dmobile_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.

-Dgtk_doc=false: Esse parâmetro desabilita a geração da documentação da "API" usando "gtk-doc". Se você tiver o "GTK-Doc-1.33.2" instalado e desejar gerar a documentação da "API", [então] omita essa chave.

-Dlibnma_gtk4=true: Esse parâmetro é necessário somente para o "gnome-control-center-43.4.1" mais recente.

-Dmobile_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.0

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "libnsl"

Exigidas

rpcsvc-proto-1.4.3 e libtirpc-1.3.3

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libnsl

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: Nenhum(a)

Descrições Curtas

libnsl.so

fornece as funções da "API" "NIS" ("YP") exigidas por outros aplicativos

libpcap-1.10.3

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://www.tcpdump.org/release/libpcap-1.10.3.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: c42fde2eb75a5075f19116f8c9768573

  • Tamanho da transferência: 932 KB

  • Espaço em disco estimado exigido: 11 MB

  • Tempo de construção estimado: menos que 0,1 UPC

Dependências do "libpcap"

Opcionais

BlueZ-5.66, libnl-3.7.0, libusb-1.0.26, distribuição de logiciário para o DAG e a gama de placas passivas de monitoramento de atividade de rede de intercomunicação Septel.

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libpcap

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.2

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "libpsl"

Exigidas

libidn2-2.3.4

Opcionais

GTK-Doc-1.33.2 (para a documentação) e Valgrind-3.20.0 (para os testes)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libpsl

Instalação do libpsl

Instale o "libpsl" executando os seguintes comandos:

sed -i 's/env python/&3/' src/psl-make-dafsa             &&
./configure --prefix=/usr --disable-static PYTHON=python3 &&
make

Para testar os resultados, emita: "make check".

Agora, como o(a) usuário(a) "root":

make install

Explicações do Comando

sed -i ...: Esse comando força o uso do "Python 3" em um utilitário.

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

libndp-1.8

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): http://libndp.org/files/libndp-1.8.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: c7e775fd5a9d676e8cba9c3732c4df93

  • Tamanho da transferência: 360 KB

  • Espaço em disco estimado exigido: 2,5 MB

  • Tempo de construção estimado: menos que 0,1 UPC

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libndp

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"

Libslirp-4.7.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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "libslirp"

Exigidas

GLib-2.74.5

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libslirp

Instalação do Libslirp

Instale o "libslirp" 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: 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "libsoup"

Exigidas

glib-networking-2.74.0, libpsl-0.21.2, libxml2-2.10.3 e SQLite-3.40.1

Recomendadas
Opcionais

Apache-2.4.55 (exigido para executar a suíte de teste), Brotli-1.0.9, cURL-7.88.1 (exigido para executar a suíte de teste), sysprof-3.46.0 (para perfilamento), MIT Kerberos V5-1.20.1 (exigido para executar a suíte de teste), GTK-Doc-1.33.2, PHP-8.2.3 compilado com suporte "XMLRPC-EPI" (usado somente para os testes de regressão "XMLRPC") e Samba-4.17.5 ("ntlm_auth" é exigido para executar a suíte de teste)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libsoup

Instalação do libsoup

Instale o "libsoup" executando os seguintes comandos:

mkdir build &&
cd   build &&

meson --prefix=/usr       \
      --buildtype=release \
      -Dvapi=enabled      \
      -Dgssapi=disabled   \
      -Dsysprof=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.

-Dvapi=disabled: Use isso se não tiver instalado o "Vala", por exemplo, porque você não está construindo o "GNOME".

-Ddoc=enabled: Use essa opção se quiser construir a documentação. Observe que você precisa ter o "GTK-Doc-1.33.2" instalado.

-Dgssapi=disabled: O padrão da "libsoup" é o de 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, [então] remova essa opção.

-Dsysprof=disabled: "libsoup" baixará automaticamente uma versão "git" de "sysprof-3.46.0" se o "git" estiver disponível ou usará a versão instalada, se disponível. Se você precisar de perfilamento, [então] 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.2.2

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "libsoup3"

Exigidas

glib-networking-2.74.0, libpsl-0.21.2, libxml2-2.10.3, nghttp2-1.52.0 e SQLite-3.40.1

Recomendadas
Opcionais

Apache-2.4.55 (exigido para executar a suíte de teste), Brotli-1.0.9, cURL-7.88.1 (exigido para executar a suíte de teste), Gi-DocGen-2023.1, MIT Kerberos V5-1.20.1 (exigido para executar a suíte de teste), PHP-8.2.3 compilado com suporte "XMLRPC-EPI" (usado somente para os testes de regressão "XMLRPC"), Samba-4.17.5 ("ntlm_auth" é exigido para executar a suíte de teste) e sysprof-3.46.0 (para perfilamento)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libsoup3

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 --prefix=/usr          \
      --buildtype=release    \
      -Dvapi=enabled         \
      -Dgssapi=disabled      \
      -Dsysprof=disabled     \
      --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 que o meson use substitutos de subprojeto para quaisquer declarações de dependência nos arquivos de construção, impedindo-o de baixar qualquer dependência opcional que não esteja instalada no sistema.

-Dvapi=disabled: Use isso se não tiver instalado o "Vala", por exemplo, porque você não está construindo o "GNOME".

-Ddocs=enabled: Se "Gi-DocGen-2023.1" estiver instalado, [então] 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-2023.1" não estiver instalado.

-Dgssapi=disabled: o padrão da "libsoup3" é o de construir com suporte "GSSAPI", que exige "Kerberos" (assim como a suíte de teste).

-Dsysprof=disabled: "libsoup3" baixará automaticamente uma versão "git" de "sysprof-3.46.0" se o "git" estiver disponível ou usará a versão instalada, se disponível. Se você precisar de perfilamento, [então] remova essa opção.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: libsoup-3.0.so
Diretórios Instalados: /usr/include/libsoup-3.0, /usr/share/gtk-doc/html/libsoup-3.0 (instalado somente se "-Ddocs=enabled" for passado)

Descrições Curtas

libsoup-3.0.so

fornece funções para conexões assíncronas "HTTP"

libtirpc-1.3.3

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "libtirpc"

Opcionais

MIT Kerberos V5-1.20.1 para a "GSSAPI"

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libtirpc

Instalação do libtirpc

Nota

Se atualizar esse pacote, [então] você também precisará atualizar qualquer versão existente de "rpcbind-1.2.6"

./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.20.1") 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.32.5

Introdução ao neon

"neon" é uma biblioteca cliente "HTTP" e "WebDAV", com uma interface "C".

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://notroj.github.io/neon/neon-0.32.5.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 7976b1cd67b7228cddb7eb4f39640ac5

  • Tamanho da transferência: 876 KB

  • Espaço em disco estimado exigido: 8,6 MB (adicional 18 MB para os testes)

  • Tempo de construção estimado: 0,1 UPC (adicionar 0,4 UPC para os testes)

Dependências do "neon"

Opcionais

GnuTLS-3.8.0, libxml2-2.10.3, MIT Kerberos V5-1.20.1, nss-3.88.1 (para alguns testes), xmlto-0.0.28 (para regenerar a documentação), libproxy e PaKChoiS

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/neon

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.32.5

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.52.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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "nghttp2"

Recomendadas

libxml2-2.10.3

Opcionais

Os seguintes são usados somente se construir o pacote completo em vez de somente as bibliotecas principais: Boost-1.81.0, c-ares-1.19.0, cython-0.29.33, jansson-2.14, libevent-2.1.12, sphinx-6.1.3, jemalloc, libev, mruby e Spdylay.

"CUnit" é exigido se você desejar executar a suíte de teste.

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/nghttp2

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.52.0 &&
make

A suíte de teste precisa do "CUnit", que está além do escopo do BLFS.

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.52.0

Descrições Curtas

libnghttp2.so

uma implementação do "Hypertext Transfer Protocol" versão 2 em "C"

rpcsvc-proto-1.4.3

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.3", junto com o aplicativo "rpcgen".

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/rpcsvc-proto

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.9

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://archive.apache.org/dist/serf/serf-1.3.9.tar.bz2

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 370a6340ff20366ab088012cd13f2b57

  • Tamanho da transferência: 144 KB

  • Espaço em disco estimado exigido: 3,2 MB

  • Tempo de construção estimado: menos que 0,1 UPC

Transferências Adicionais

Dependências do "Serf"

Exigidas

Apr-Util-1.6.3 e SCons-4.4.0

Opcionais

MIT Kerberos V5-1.20.1, para a "GSSAPI"

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/serf

Instalação do Serf

Primeiro, corrija um problema que causa problemas de compilação em outros pacotes ao usar o "OpenSSL-3":

patch -Np1 -i ../serf-1.3.9-openssl3_fixes-1.patch

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 &&
sed -i "/  print/{s/print/print(/; s/$/)/}" SConstruct &&
sed -i "/get_contents()/s/,/.decode()&/"    SConstruct &&

scons PREFIX=/usr

Esse pacote não vem com uma suíte funcional de teste.

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. O quarto comando corrige mudanças no "scons-3.x". O último comando permite usar o "Python 3".

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.5.3

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "uhttpmock"

Exigidas

libsoup-2.74.3

Recomendadas
Opcionais

GTK-Doc-1.33.2

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/uhttpmock

Instalação do uhttpmock

Instale o "uhttpmock" 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)
Bibliotecas Instaladas: libuhttpmock-0.0.so
Diretórios Instalados: /usr/include/libuhttpmock-0.0 e /usr/share/gtk-doc/html/libuhttpmock-0.0

Descrições Curtas

libuhttpmock-0.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.28

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): http://links.twibright.com/download/links-2.28.tar.bz2

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 915c45777f0c9d8e6ec85438cbd7d3df

  • Tamanho da transferência: 6,2 MB

  • Espaço em disco estimado exigido: 35 MB

  • Tempo de construção estimado: 0,3 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 "libpng-1.6.39", "libjpeg-turbo-2.1.5.1", "librsvg-2.54.5" e "libtiff-4.5.0"

Para descomprimir páginas da "web" que estejam comprimidas com o "Brotli", o "Links" consegue utilizar o "Brotli-1.0.9"

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/LinksBrowser

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.28 &&
install -v -m644 doc/links_cal/* KEYS BRAILLE_HOWTO \
   /usr/share/doc/links-2.28

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.28

Descrições Curtas

links

é um navegador "WWW" em modo texto e gráfico

Lynx-2.8.9rel.1

Introdução ao Lynx

"Lynx" é um navegador da "web" baseado em texto.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Transferências Adicionais

Dependências do "Lynx"

Opcionais

GnuTLS-3.8.0 (experimental, para substituir o "OpenSSL"), Zip-3.0, UnZip-6.0, um MTA (que forneça um comando "sendmail") e Sharutils-4.15.2 (para o aplicativo "uudecode")

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/Lynx

Instalação do Lynx

Primeiro, aplique um remendo para corrigir uma vulnerabilidade de segurança:

patch -p1 -i ../lynx-2.8.9rel.1-security_fix-1.patch

Instale o "Lynx" executando os seguintes comandos:

./configure --prefix=/usr         \
            --sysconfdir=/etc/lynx \
            --datadir=/usr/share/doc/lynx-2.8.9rel.1 \
            --with-zlib            \
            --with-bzlib           \
            --with-ssl             \
            --with-screen=ncursesw \
            --enable-locale-charset &&
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.8.9rel.1/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.8.9rel.1: Esse parâmetro é usado para que os arquivos da documentação sejam instalados em /usr/share/doc/lynx-2.8.9rel.1 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.8.9rel.1/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

O "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.0.1273", 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.8.9rel.1

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.4.36

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://downloads.sourceforge.net/fetchmail/fetchmail-6.4.36.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 8bfdc96f0241f328b17ef04666b2f155

  • Tamanho da transferência: 1,1 MB

  • Espaço em disco estimado exigido: 12 MB incluindo os testes

  • Tempo de construção estimado: 0,1 UPC incluindo os testes

Dependências do "Fetchmail"

Recomendadas
Opcionais

MIT Kerberos V5-1.20.1 e libgssapi

Opcional (para executar "fetchmailconf")

Python-3.11.2, construído depois do Tk-8.6.13, com o pacote "py-future"

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/fetchmail

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:

PYTHON=python3 \
./configure --prefix=/usr \
           --enable-fallback=procmail &&
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

Explicações do Comando

PYTHON=python3: uma versão do "Python" é exigida, mas usada somente para instalar um módulo para permitir que o "fetchmailconf" seja executado. Esse módulo não é mantido e não deveria ser usado.

--enable-fallback=procmail: Isso diz ao "Fetchmail" para entregar as mensagens recebidas para o "Procmail" para entrega, se o servidor de mensagem da porta 25 não estiver presente ou não estiver respondendo.

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 te ajudar a configurar e editar um arquivo de configuração "~/.fetchmailrc", usando uma interface "GUI" do "Tk". Ele foi escrito para "Python" e para o módulo "Tkinter", mas é rotulado com um AVISO de que precisa ser atualizado para as opções "SSL" do "fetchmail" 6.4 e outras novas opções recentes

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Transferências Adicionais

Dependências do "Heirloom mailx"

Opcionais

nss-3.88.1, MIT Kerberos V5-1.20.1 (para autenticação "IMAP" "GSSAPI") e um MTA

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/mailx

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 o 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.9

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "Mutt"

Recomendadas (para uma versão de texto do manual)
Opcionais

Aspell-0.60.8, Cyrus SASL-2.1.28, DocBook-utils-0.6.14, GDB-13.1, GnuPG-2.4.0, GnuTLS-3.8.0, GPGME-1.18.0, libidn-1.41, MIT Kerberos V5-1.20.1, um MTA (que forneça um comando sendmail), slang-2.3.3, SQLite-3.40.1, libgssapi, Mixmaster, QDBM ou Tokyo Cabinet

Observações de Usuário(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.

O "Mutt" exige um grupo chamado "mail". Você pode adicionar esse grupo, caso ele não exista, com este comando:

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.9 \
            --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.9/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.9

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.0"

pgpring

é um despejador de chaveiro para o "PGP". Não é necessário para o "GnuPG-2.4.0"

smime_keys

gerencia um armazenamento de chaves para certificados "S/MIME"

Procmail-3.22

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Transferências Adicionais

Dependências do "Procmail"

Recomendadas
Opcionais

libnsl-2.0.0

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/procmail

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":

sed -i 's/getline/get_line/' src/*.[ch]                  &&
patch -Np1 -i ../procmail-3.22-consolidated_fixes-1.patch &&

make LOCKINGTEST=/tmp MANDIR=/usr/share/man install       &&
make install-suid

Explicações do Comando

sed -i 's/getline/get_line/' src/*.[ch]: Isso renomeia a função "getline" do "Procmail" para evitar conflito com a função "getline" proveniente da "glibc".

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 o 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.15 inclui um cliente de mensagem e um leitor de notícias na instalação dele.

Thunderbird-102.8.0 é um cliente de mensagem/notícias baseado na base do código do "Mozilla".

Parte V. Servers

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.55

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://archive.apache.org/dist/httpd/httpd-2.4.55.tar.bz2

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: b6a8b9d8741db43cf5b4dd8e9bdb0ce7

  • Tamanho da transferência: 7,1 MB

  • Espaço em disco estimado exigido: 87 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.42

Opcionais

Brotli-1.0.9, Base de Dados Berkeley-5.3.28, Doxygen-1.9.6, libxml2-2.10.3, Lua-5.4.4, Lynx-2.8.9rel.1 ou Links-2.28 ou ELinks, nghttp2-1.52.0, OpenLDAP-2.6.4 (Apr-Util-1.6.3 precisa ser instalado com suporte a "ldap"), rsync-3.2.7 e Distcache

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/apache

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.55-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  &&

./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.

--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".

Unidade do systemd

Se você quiser que o servidor "Apache" inicie automaticamente quando o sistema for inicializado, [então] instale a unidade "httpd.service" incluída no pacote "" "blfs-systemd-units-20220720":

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.18.12

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.18.12.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "BIND"

Exigidas

libuv-1.44.2

Recomendadas
Opcionais

cURL-7.88.1, libidn2-2.3.4, libxml2-2.10.3, lmdb-0.9.29, MIT Kerberos V5-1.20.1, pytest-7.2.1, sphinx-6.1.3 (exigido para construir a documentação), cmocka, geoip, w3m

Estruturas de retaguarda opcionais de base de dados

Base de Dados Berkeley-5.3.28, MariaDB-10.6.12 ou MySQL, OpenLDAP-2.6.4, PostgreSQL-15.2 e unixODBC-2.3.11

Opcional (para executar a suíte de teste)

Net-DNS-1.36

Observações de Usuário(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 possivelmente indique alguns testes ignorados dependendo de quais opções de configuração são usadas. Alguns testes são marcados como UNTESTED ou até falham se o "Net-DNS-1.36" não estiver instalado. Para executar os testes, como um(a) usuário(a) sem privilégios, execute:

make -k check

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-linux-caps: O "BIND" também pode ser construído sem suporte de capacidade usando-se essa opção, ao custo de alguma perda de segurança.

--with-dlz-{mysql,bdb,filesystem,ldap,odbc,stub}: Use uma (ou mais) dessas opções para adicionar suporte a Zonas Dinamicamente Carregáveis. Para mais informações, consulte-se bind-dlz.sourceforge.net.

--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 porque 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

Complete 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       199.9.14.201
B.ROOT-SERVERS.NET.     6D  IN      AAAA    2001:500:200::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

Unidade do systemd

Para iniciar o servidor "DNS" na inicialização, instale a unidade "named.service" inclusa no pacote "" "blfs-systemd-units-20220720":

make install-named

Agora inicie o "BIND" com o seguinte comando:

systemctl start named

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 "MRA" (não confunda com a arquitetura do processador) está incluída no pacote 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-6.1.3" estiver instalado.

Quando o "BIND" for configurado, especialmente quando for operar em um cenário da vida real, é altamente recomendado consultar a documentação "MRA". 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 "PDF", "epub" e "HTML" em https://downloads.isc.org/isc/bind9/9.18.12/doc/arm/.

Conteúdo

Aplicativos Instalados: arpaname, ddns-confgen, delv, dig, dnssec-cds, dnssec-checkds, dnssec-coverage, dnssec-dsfromkey, dnssec-importkey, dnssec-keyfromlabel, dnssec-keygen, dnssec-keymgr, dnssec-revoke, dnssec-settime, dnssec-signzone, dnssec-verify, host, mdig, named, named-checkconf, named-checkzone, named-compilezone (link simbólico), named-journalprint, named-nzd2nzf, named-rrchecker, nsec3hash, nslookup, nsupdate, rndc, rndc-confgen e tsig-keygen (link simbólico)
Bibliotecas Instaladas: libbind9.so, libdns.so, libirs.so, libisc.so, libisccc.so, libisccfg.so e libns.so
Diretórios Instalados: /usr/include/{bind9,dns,dst,irs,isc,isccc,isccfg,ns,pk11,pkcs11}, /usr/lib/named, /usr/lib/python3.11/site-packages/isc 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-checkds

é uma ferramenta de verificação de consistência de delegação "DNSSEC"

dnssec-coverage

verifica se as chaves "DNSSEC" para uma dada zona ou conjunto de zonas tem metadados de hora configurados corretamente para garantir que não existam lapsos futuros na cobertura "DNSSEC"

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-keygen

é um gerador de chaves para "DNS" seguro

dnssec-keymgr

garante a cobertura correta "DNSKEY" baseada em uma política definida

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"

ProFTPD-1.3.8

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "ProFTPD"

Opcionais

libcap-2.67 com PAM, libssh2-1.10.0, Linux-PAM-1.5.2, MariaDB-10.6.12 ou MySQL, PCRE-8.45, PostgreSQL-15.2 e Net::SSH2

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/proftpd

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

Esse pacote 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.8 &&
cp -Rv doc/*     /usr/share/doc/proftpd-1.3.8

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

Unidade do systemd

Instale a unidade "proftpd.service" inclusa no pacote "" "blfs-systemd-units-20220720":

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.8 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

vsftpd-3.0.5

Introdução ao vsftpd

O pacote "vsftpd" contém um processo de segundo plano "FTP" muito seguro e muito pequeno. Isso é útil para servir arquivos em uma rede de intercomunicação.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://security.appspot.com/downloads/vsftpd-3.0.5.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: efbf362a65bec771bc15ad311f5a982e

  • Tamanho da transferência: 210 KB

  • Espaço em disco estimado exigido: 1,9 MB

  • Tempo de construção estimado: menos que 0,1 UPC

Dependências do "vsftpd"

Exigidas

libnsl-2.0.0

Recomendadas
Opcionais

libcap-2.67 com PAM

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/vsftpd

Instalação do vsftpd

Por motivos de segurança, executar o "vsftpd" como um(a) usuário(a) e grupo sem privilégios é encorajado. Além disso, um(a) usuário(a) deveria ser criado(a) para mapear usuários(as) anônimos(as). Como o(a) usuário(a) "root", crie os diretórios, usuários(as) e grupos necessários(as) com os seguintes comandos:

install -v -d -m 0755 /usr/share/vsftpd/empty &&
install -v -d -m 0755 /home/ftp               &&
groupadd -g 47 vsftpd                         &&
groupadd -g 45 ftp                            &&

useradd -c "Usuário(a) vsftpd"  -d /dev/null -g vsftpd -s /bin/false -u 47 vsftpd &&
useradd -c anonymous_user -d /home/ftp -g ftp    -s /bin/false -u 45 ftp

O "Gcc-10" e posteriores sinalizam um erro para uma conversão implícita de tipo. Torne isso explícito:

sed -e "s/kVSFSysStrOpenUnknown;/(enum EVSFSysUtilOpenMode)&/" -i sysstr.c

Construa o "vsftpd" como um(a) usuário(a) sem privilégios usando o seguinte comando:

make

Esse pacote não vem com uma suíte de teste.

Mais uma vez, torne-se o usuário "root" e instale o "vsftpd" com os seguintes comandos:

install -v -m 755 vsftpd        /usr/sbin/vsftpd    &&
install -v -m 644 vsftpd.8     /usr/share/man/man8 &&
install -v -m 644 vsftpd.conf.5 /usr/share/man/man5 &&
install -v -m 644 vsftpd.conf   /etc

Explicações do Comando

install -v -d ...: Isso cria o diretório que os(as) usuários(as) anônimos(as) usarão ("/home/ftp") e o diretório que o processo de segundo plano se enjaulará nele ("/usr/share/vsftpd/empty").

Nota

"/home/ftp" não deveria ser titularizado pelo(a) usuário(a) "vsftpd", ou pelo(a) usuário(a) "ftp".

echo "#define VSF_BUILD_TCPWRAPPERS" >>builddefs.h: Use isso antes do "make" para adicionar suporte a "tcpwrappers".

echo "#define VSF_BUILD_SSL" >>builddefs.h: Use isso antes do "make" para adicionar suporte a "SSL".

install -v -m ...: O Makefile usa caminhos de instalação não padrões. Esses comandos instalam os arquivos em "/usr" e "/etc".

Configurando o vsftpd

Arquivos de Configuração

/etc/vsftpd.conf

Informação de Configuração

O "vsftpd" vem com um arquivo básico de configuração somente anônimo que foi copiado para "/etc" acima. Embora ainda como "root", esse arquivo deveria ser modificado porque agora é recomendado executar o "vsftpd" em modo autônomo. Além disso, você deveria especificar o(a) usuário(a) de separação de privilégios criado(a) acima. Finalmente, você deveria especificar o diretório "chroot". "man vsftpd.conf" te dará todos os detalhes.

cat >> /etc/vsftpd.conf << "EOF"
background=YES
nopriv_user=vsftpd
secure_chroot_dir=/usr/share/vsftpd/empty
EOF

O processo de segundo plano "vsftpd" usa "seccomp" para melhorar a segurança por padrão. Mas é conhecido por fazer com que o "vsftpd" não consiga lidar com o comando "LIST" do "ftp" com versões recentes do núcleo. Anexe uma linha a "/etc/vsftpd.conf" (como o(a) usuário(a) "root") para desabilitar o "seccomp" e solucionar esse problema:

cat >> /etc/vsftpd.conf << "EOF"
seccomp_sandbox=NO
EOF

Para habilitar "logins" locais, anexe o seguinte ao arquivo "/etc/vsftpd.conf" (como o(a) usuário(a) "root"):

cat >> /etc/vsftpd.conf << "EOF"
local_enable=YES
EOF

Além disso, se usar o "Linux-PAM" e o "vsftpd" com "logins" locais de usuário(a), [então] você precisará de um arquivo de configuração do "Linux-PAM". Como o(a) usuário(a) "root", crie o arquivo "/etc/pam.d/vsftpd" e adicione as mudanças necessárias de configuração para o suporte da sessão do "Linux-PAM" usando os seguintes comandos:

cat > /etc/pam.d/vsftpd << "EOF" &&
# Inicia /etc/pam.d/vsftpd
auth       required     /lib/security/pam_listfile.so item=user sense=deny \
                                                      file=/etc/ftpusers \
                                                      onerr=succeed
auth       required     pam_shells.so
auth       include      system-auth
account    include      system-account
session    include      system-session
EOF

cat >> /etc/vsftpd.conf << "EOF"
session_support=YES
pam_service_name=vsftpd
EOF

Unidade do systemd

Instale a unidade "vsftpd.service" inclusa no pacote "" "blfs-systemd-units-20220720":

make install-vsftpd

Conteúdo

Aplicativo Instalado: vsftpd
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/share/vsftpd, /home/ftp

Descrições Curtas

vsftpd

é o processo de segundo plano de "FTP"

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.

Além dos servidores "SMTP", existe um servidor "POP" ("qpopper") e um servidor "IMAP" ("Courier-IMAP").

Dovecot-2.3.20

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://www.dovecot.org/releases/2.3/dovecot-2.3.20.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: b8add62d0311dcc95ac25b379e8ba043

  • Tamanho da transferência: 7,4 MB

  • Espaço em disco estimado exigido: 235 MB

  • Tempo de construção estimado: 4,8 UPC

Transferências Adicionais

Dependências do "Dovecot"

Exigidas

libtirpc-1.3.3

Opcionais

CLucene-2.3.3.4, ICU-72.1, libcap-2.67 com PAM, Linux-PAM-1.5.2, Lua-5.4.4, MariaDB-10.6.12 ou MySQL, OpenLDAP-2.6.4, PostgreSQL-15.2, SQLite-3.40.1, Valgrind-3.20.0, xfsprogs-6.1.1, Cassandra, lz4, stemmer e libsodium

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/dovecot

Instalação do Dovecot

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

Primeiro, aplique um remendo para corrigir problemas com o "OpenSSL-3":

patch -Np1 -i ../dovecot-2.3.20-openssl3_fixes-1.patch

A seguir, aplique um remendo para corrigir uma vulnerabilidade de segurança:

patch -Np1 -i ../dovecot-2.3.20-security_fix-1.patch

Instale o "Dovecot" executando os seguintes comandos:

CPPFLAGS="-I/usr/include/tirpc" \
LDFLAGS+=" -ltirpc" \
./configure --prefix=/usr                         \
            --sysconfdir=/etc                      \
            --localstatedir=/var                   \
            --docdir=/usr/share/doc/dovecot-2.3.20 \
            --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

CPPFLAGS=... LDFLAGS+=...: construa com "libtirpc" em vez do código "RPC" recentemente removido fornecido pela "GlibC".

--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-lucene: Essa chave habilita o suporte pesquisa completa de texto "CLucene".

--with-lua: Essa chave habilita o suporte ao "plugin" "Lua". Isso inclui um "plugin" de notificação de mensagem e envio.

Configurando o Dovecot

Arquivos de Configuração

/etc/dovecot/dovecot.conf, /etc/dovecot/conf.d/* e /etc/dovecot/local.conf

Informação de Configuração

Copie uma configuração de exemplo, a qual você pode usar como um ponto de partida:

cp -rv /usr/share/doc/dovecot-2.3.20/example-config/* /etc/dovecot

A configuração a seguir é uma simples prova de conceito com serviço "IMAP" usando usuários(as) locais para autenticação e local de caixa de mensagens. A leitura de arquivos a partir do diretório "conf.d" está comentada, pois a configuração de exemplo inclusa exige "OpenSSL" e "Linux PAM".

sed -i '/^\!include / s/^/#/' /etc/dovecot/dovecot.conf &&
chmod -v 1777 /var/mail &&
cat > /etc/dovecot/local.conf << "EOF"
protocols = imap
ssl = no
# A próxima linha é necessária somente se você não tiver interfaces de rede de intercomunicação "IPv6"
listen = *
mail_location = mbox:~/Mail:INBOX=/var/mail/%u
userdb {
  driver = passwd
}
passdb {
  driver = shadow
}
EOF

Você definitivamente vai querer ler a documentação oficial em https://wiki2.dovecot.org/ se planeja usar o "Dovecot" em um ambiente de produção.

Unidade do systemd

Para iniciar o processo de segundo plano "dovecot" na inicialização, habilite a unidade do "systemd" instalada anteriormente com o seguinte comando:

systemctl enable dovecot

Conteúdo

Aplicativos Instalados: doveadm, doveconf, dovecot, dovecot-sysreport e dsync (link simbólico)
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.3.20

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

dsync

é o utilitário de sincronização de caixa de mensagem do "Dovecot"

Exim-4.96

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

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.0 e PCRE-8.45

Opcionais

TDB (alternativa ao GDBM, construído no LFS), Cyrus SASL-2.1.28, libidn-1.41, Linux-PAM-1.5.2, MariaDB-10.6.12 ou MySQL, OpenLDAP-2.6.4, GnuTLS-3.8.0, PostgreSQL-15.2, SQLite-3.40.1, um ambiente gráfico, Heimdal GSSAPI e OpenDMARC

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/exim

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 '/# SUPPORT_TLS=yes/s,^#,,'                   \
    -e '/# USE_OPENSSL/s,^#,,'                       \
    -e 's,^EXIM_MONITOR,#EXIM_MONITOR,' 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 -v -d -m755    /usr/share/doc/exim-4.96 &&
install -v -m644 doc/* /usr/share/doc/exim-4.96 &&

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 o "GDBM" em vez do padrão "Berkeley DB". Remova esse comando se você tiver instalado "Base de Dados Berkeley-5.3.28".

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".

SUPPORT_TLS=yes: Isso permite suportar conexões "STARTTLS". Se usar essa opção, [então] você precisa selecionar se o "OpenSSL" ou o "GnuTLS" será usado (veja-se "src/EDITME").

USE_OPENSSL_PC=openssl: Isso informa ao sistema de construção para usar o "OpenSSL" e encontrar as bibliotecas necessárias com o "pkg-config".

#EXIM_MONITOR: Isso adia a construção do aplicativo monitor do "Exim", pois ele exige suporte ao "X Window System", comentando-se a linha "EXIM_MONITOR" no "Makefile". Se você deseja construir o aplicativo monitor, [então] omita esse comando "sed" e emita o seguinte comando antes de construir o pacote (modifique "Local/eximon.conf", se necessário): "cp exim_monitor/EDITME Local/eximon.conf".

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.96/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.96/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.96/doc/html/spec_html/ch04. html#SECTdb.

Para funcionalidade "SSL", vejam-se as instruções em https://exim.org/exim-html-4.96/doc/html/spec_html/ch04.html#SECTinctlsssl e https://exim.org/exim-html-4.96/doc/html/spec_html/ch42.html.

Para a funcionalidade "tcpwrappers", vejam-se as instruções em https://exim.org/exim-html-4.96/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.96/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.96/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.96/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.96/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.96/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 o "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

Unidade do systemd

Para iniciar automaticamente o "exim" na inicialização, instale a unidade "exim.service" inclusa no pacote "" "blfs-systemd-units-20220720":

make install-exim

Conteúdo

Aplicativos Instalados: exicyclog, exigrep, exim, exim-4.96-2, exim_checkaccess, exim_dbmbuild, exim_dumpdb, exim_fixdb, exim_lock, 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.96 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.96-2"

exim-4.96-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_lock

tranca um arquivo de caixa de mensagens

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.7.4

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "Postfix"

Recomendadas
Opcionais

ICU-72.1 para suporte a Internacionalização de Endereços de Correio Eletrônico ("SMTPUTF8"), MariaDB-10.6.12 ou MySQL, OpenLDAP-2.6.4, PCRE-8.45, PostgreSQL-15.2, SQLite-3.40.1 e CDB ou TinyCDB

Observe que "SQLite", "MySQL", "PostgreSQL" e "CDB" são úteis somente se existir uma necessidade conhecida deles.

Observações de Usuário(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, [então] torne-os legíveis com o seguinte "sed":

sed -i 's/.\x08//g' README_FILES/*

O "Makefile" examina o núcleo em execução para decidir como configurar várias coisas. Ele não reconhece o "Linux-6" e falha em fazer as definições. Depois que isso for corrigido, a construção fará referência à versão recém-definida em um cabeçalho, o que também quebra a construção. Corrija ambos com os seguintes comandos:

sed -i 's/Linux..345/&6/' makedefs &&
sed -i 's/LINUX2/LINUX6/' src/util/sys_defs.h

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 "rpcsvc" que não existe no BLFS.

Para mais detalhes, leiam-se os arquivos "readme".

Cyrus-SASL

Para usar o "Cyrus-SASL" com o "Postfix", use os seguintes argumentos:

CCARGS='-DNO_NIS -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/include/sasl'
AUXLIBS='-lsasl2'
OpenLDAP

Para usar o "OpenLDAP" com o "Postfix", use os seguintes argumentos:

CCARGS='-DNO_NIS -DHAS_LDAP'
AUXLIBS='-lldap -llber'
Sqlite

Para usar o "Sqlite" com o "Postfix", use os seguintes argumentos:

CCARGS='-DNO_NIS -DHAS_SQLITE'
AUXLIBS='-lsqlite3 -lpthread'
MySQL

Para usar o "MySQL" com o "Postfix", use os seguintes argumentos:

CCARGS='-DNO_NIS -DHAS_MYSQL -I/usr/include/mysql'
AUXLIBS='-lmysqlclient -lz -lm'
PostgreSQL

Para usar o "PostgreSQL" com o "Postfix", use os seguintes argumentos:

CCARGS='-DNO_NIS -DHAS_PGSQL -I/usr/include/postgresql'
AUXLIBS='-lpq -lz -lm'
CDB/TinyCDB

Para usar o "CDB" ou o "TinyCDB" com o "Postfix", use os seguintes argumentos:

CCARGS='-DNO_NIS -DHAS_CDB'
AUXLIBS='</caminho/para/CDB>/libcdb.a'
Autenticação StartTLS

Para usar o "OpenSSL" com o "Postfix", use os seguintes argumentos:

CCARGS='-DNO_NIS -DUSE_TLS -I/usr/include/openssl/'
AUXLIBS='-lssl -lcrypto'

Instalando o Postfix

Ajuste o seguinte de acordo com as tuas necessidades. Por exemplo, se você tiver o "Cyrus SASL", [então] instale o "Postfix" executando os seguintes comandos:

make CCARGS="-DNO_NIS -DUSE_TLS -I/usr/include/openssl/           \
             -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/include/sasl" \
     AUXLIBS="-lssl -lcrypto -lsasl2"                              \
     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.7.4/html \
  readme_directory=/usr/share/doc/postfix-3.7.4/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 sua 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.

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.

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

Unidade do systemd

Para automatizar a execução do "Postfix" na inicialização, instale a unidade "postfix.service" inclusa no pacote "" "blfs-systemd-units-20220720":

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.7.4 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.17.1

Introdução ao sendmail

O pacote "sendmail" contém um "Mail Transport Agent" ("MTA").

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "sendmail"

Exigidas

OpenLDAP-2.6.4 (cliente)

Recomendadas
Opcionais

ghostscript-10.00.0 (para criar a documentação em "PDF"), Procmail-3.22 (a configuração proposta abaixo exige que o "procmail" esteja presente em tempo de execução) e nph

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/sendmail

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',`-DSTARTTLS -DSASL -DLDAPMAP -DHASFLOCK')
APPENDDEF(`confLIBS', `-lssl -lcrypto -lsasl2 -lldap -llber -ldb')
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.17.1/{cf,sendmail} &&

install -v -m644 CACerts FAQ KNOWNBUGS LICENSE PGPKEYS README RELEASE_NOTES \
        /usr/share/doc/sendmail-8.17.1 &&

install -v -m644 sendmail/{README,SECURITY,TRACEFLAGS,TUNING} \
        /usr/share/doc/sendmail-8.17.1/sendmail &&

install -v -m644 cf/README /usr/share/doc/sendmail-8.17.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.17.1 &&
install -v -m644 op.ps op.txt op.pdf /usr/share/doc/sendmail-8.17.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
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".

Unidade do systemd

Para automatizar a execução do "sendmail" na inicialização, instale a unidade "sendmail.service" inclusa no pacote "" "blfs-systemd-units-20220720":

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 na unidade do "systemd". 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.17.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/

Base de Dados Berkeley

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 Berkeley são as páginas de manual de "db_dump" e a contraparte dele "db_load".

Base de Dados Berkeley-5.3.28

Introdução à Base de Dados Berkeley

O pacote Berkeley DB contém aplicativos e utilitários usados por muitos outros aplicativos para funções relacionadas a bases de dados.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências da Base de Dados "Berkeley"

Opcionais

libnsl-2.0.0 e Sharutils-4.15.2 (para o comando "uudecode")

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/db

Instalação da Base de Dados Berkeley

Primeiro aplique uma correção para que isso seja compilado com as versões atuais do "g++":

sed -i 's/\(__atomic_compare_exchange\)/\1_db/' src/dbinc/atomic.h

Instale o "Berkeley DB" executando os seguintes comandos:

cd build_unix                       &&
../dist/configure --prefix=/usr      \
                  --enable-compat185 \
                  --enable-dbm       \
                  --disable-static   \
                  --enable-cxx       &&
make

Agora, como o(a) usuário(a) "root":

make docdir=/usr/share/doc/db-5.3.28 install &&

chown -v -R root:root                       \
      /usr/bin/db_*                          \
      /usr/include/db{,_185,_cxx}.h          \
      /usr/lib/libdb*.{so,la}                \
      /usr/share/doc/db-5.3.28

Explicações do Comando

cd build_unix && ../dist/configure --prefix=/usr...: Isso substitui o comando ./configure normal, já que o Berkeley DB vem com vários diretórios de construção para diferentes plataformas.

--enable-compat185: Essa chave habilita construir a "API" de compatibilidade "DB-1.85".

--enable-cxx: Essa chave habilita construir as bibliotecas de "API" "C++".

--enable-dbm: Habilita o suporte à interface legada necessária para alguns pacotes mais antigos.

make docdir=/usr/share/doc/db-5.3.28 install: Isso instala a documentação no local padrão em vez de "/usr/docs".

chown -v -R root:root ...: Esse comando muda a titularidade de propriedade dos vários arquivos instalados do "uid:gid" do(a) construtor(a) para "root:root".

--enable-tcl --with-tcl=/usr/lib: Habilita o suporte a "Tcl" na Base de Dados e cria as bibliotecas "libdb_tcl".

--enable-java: Habilita o suporte a "Java" na Base de Dados e cria as bibliotecas "libdb_java". O suporte atualmente está quebrado com "Java-7.x".

Conteúdo

Aplicativos Instalados: db_archive, db_checkpoint, db_deadlock, db_dump, db_hotbackup, db_load, db_log_verify, db_printlog, db_recover, db_replicate, db_stat, db_tuner, db_upgrade e db_verify
Bibliotecas Instaladas: libdb.so, libdb_cxx.so e libdb_tcl.so
Diretório Instalado: /usr/share/doc/db-5.3.28

Descrições Curtas

db_archive

imprime os nomes dos caminhos dos arquivos de registro que não mais estão em uso

db_checkpoint

é um processo de segundo plano usado para monitorar e verificar registros de bases de dados

db_deadlock

é usado para abortar solicitações de tranca quando trancas mortas são detectadas

db_dump

converte arquivos de base de dados em um formato de arquivo simples legível pelo "db_load"

db_hotbackup

cria instantâneos de "cópia de segurança a quente" ou "failover a quente" de bases de dados "Berkeley DB"

db_load

é usado para criar arquivos de base de dados a partir de arquivos simples criados com o "db_dump"

db_log_verify

verifica os arquivos de registro de uma base de dados

db_printlog

converte arquivos de registro da base de dados em texto legível por humanos(as)

db_recover

é usado para restaurar uma base de dados para um estado consistente depois de uma falha

db_replicate

é um processo de segundo plano que fornece serviços de replicação/"HA" em um ambiente transacional

db_stat

exibe estatísticas do ambiente de base de dados

db_tuner

analisa os dados em uma base de dados "btree" e sugere um tamanho de página que provavelmente proporcionará uma operação ideal

db_upgrade

é usado para atualizar arquivos de base de dados para uma versão mais recente da "Berkeley DB"

db_verify

é usado para executar verificações de consistência em arquivos de bases de dados

lmdb-0.9.29

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://github.com/LMDB/lmdb/archive/LMDB_0.9.29.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 84cc7cac4bf15486536560f171297a49

  • Tamanho da transferência: 144 KB

  • Espaço em disco estimado exigido: 6,1 MB

  • Tempo de construção estimado: menos que 0,1 UPC

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/lmdb

Instalação do lmdb

Nota

Esse pacote extrai para "lmdb-LMDB_0.9.29".

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)

MariaDB-10.6.12

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Nota

O tamanho instalado do "MariaDB" é 658 MB, mas pode ser reduzido em cerca de 252 MB, se desejado, removendo-se o diretório "/usr/share/mysql/test" depois da instalação.

Dependências do "MariaDB"

Exigidas

CMake-3.25.2

Recomendadas
Opcionais

Boost-1.81.0, libaio-0.3.113, libxml2-2.10.3, Linux-PAM-1.5.2, MIT Kerberos V5-1.20.1, pcre2-10.42, Ruby-3.2.1, sphinx-6.1.3, unixODBC-2.3.11, Valgrind-3.20.0, Groonga, KyTea, Judy, lz4, MeCab, MessagePack, mruby, MyRocks, Snappy e ZeroMQ

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/mariadb

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 mysql &&
useradd -c "Servidor MySQL" -d /srv/mysql -g mysql -s /bin/false -u 40 mysql

Instale o "MariaDB" executando os seguintes comandos:

mkdir build &&
cd   build &&

cmake -DCMAKE_BUILD_TYPE=Release                      \
      -DCMAKE_INSTALL_PREFIX=/usr                     \
      -DGRN_LOG_PATH=/var/log/groonga.log             \
      -DINSTALL_DOCDIR=share/doc/mariadb-10.6.12       \
      -DINSTALL_DOCREADMEDIR=share/doc/mariadb-10.6.12 \
      -DINSTALL_MANDIR=share/man                      \
      -DINSTALL_MYSQLSHAREDIR=share/mysql             \
      -DINSTALL_MYSQLTESTDIR=share/mysql/test         \
      -DINSTALL_PAMDIR=lib/security                   \
      -DINSTALL_PAMDATADIR=/etc/security              \
      -DINSTALL_PLUGINDIR=lib/mysql/plugin            \
      -DINSTALL_SBINDIR=sbin                          \
      -DINSTALL_SCRIPTDIR=bin                         \
      -DINSTALL_SQLBENCHDIR=share/mysql/bench         \
      -DINSTALL_SUPPORTFILESDIR=share/mysql           \
      -DMYSQL_DATADIR=/srv/mysql                      \
      -DMYSQL_UNIX_ADDR=/run/mysqld/mysqld.sock       \
      -DWITH_EXTRA_CHARSETS=complex                   \
      -DWITH_EMBEDDED_SERVER=ON                       \
      -DSKIP_TESTS=ON                                 \
      -DTOKUDB_OK=0                                   \
      .. &&
make

Para testar os resultados, emita: "make test". Um teste, "test-connect", é conhecido por falhar.

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

-DWITH_EMBEDDED_SERVER=ON: Essa chave habilita compilar a biblioteca incorporada do servidor necessária para determinados aplicativos, como o "Amarok".

-DWITH_EXTRA_CHARSETS=complex: Essa chave habilita suporte para os conjuntos de caracteres complexos.

-DSKIP_TESTS=ON: Essa chave desabilita testes para "Connector/C" do "MariaDB" que não são suportados sem configuração adicional.

-DWITHOUT_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/mysql/my.cnf e ~/.my.cnf

Informação de Configuração

Crie o "/etc/mysql/my.cnf" básico usando o seguinte comando como o(a) usuário(a) "root":

install -v -dm 755 /etc/mysql &&
cat > /etc/mysql/my.cnf << "EOF"
# Inicia /etc/mysql/my.cnf

# As seguintes opções serão passadas para todos os clientes "MySQL"
[client]
#password       = tua_senha
port            = 3306
socket          = /run/mysqld/mysqld.sock

# O servidor "MySQL"
[mysqld]
port            = 3306
socket          = /run/mysqld/mysqld.sock
datadir         = /srv/mysql
skip-external-locking
key_buffer_size = 16M
max_allowed_packet = 1M
sort_buffer_size = 512K
net_buffer_length = 16K
myisam_sort_buffer_size = 8M

# Não escute em uma porta TCP/IP.
skip-networking

# Exigido ID único entre 1 e 2^32 - 1
server-id       = 1

# Descomente o seguinte se você estiver usando tabelas "BDB"
#bdb_cache_size = 4M
#bdb_max_lock = 10000

# As tabelas "InnoDB" agora são usadas por padrão
innodb_data_home_dir = /srv/mysql
innodb_log_group_home_dir = /srv/mysql
# Todos os valores "innodb_xxx" abaixo são os [valores] padrão:
innodb_data_file_path = ibdata1:12M:autoextend
# Você consegue configurar ".._buffer_pool_size" até 50 - 80 %
# da "RAM", mas cuidado ao configurar o uso de memória muito alto
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

[mysqldump]
quick
max_allowed_packet = 16M

[mysql]
no-auto-rehash
# Remova o próximo caractere de comentário se você não estiver familiarizado(a) com "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

[mysqlhotcopy]
interactive-timeout

# Termina /etc/mysql/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"):

mysql_install_db --basedir=/usr --datadir=/srv/mysql --user=mysql &&
chown -R mysql:mysql /srv/mysql

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 mysql -g mysql -d /run/mysqld &&
mysqld_safe --user=mysql 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.

mysqladmin -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":

mysqladmin -p shutdown

Unidade do systemd

Instale a unidade "mysqld.service" inclusa no pacote "" "blfs-systemd-units-20220720" como o(a) usuário(a) "root" para iniciar o servidor "MariaDB" durante a inicialização do sistema.

make install-mysqld

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: libmariadbclient.a, libmariadb.so, libmariadbd.so, libmysqlclient.a, libmysqlclient_r.a (links simbólicos para libmariadbclient.a), libmysqld.{so,a}, libmysqlservices.a e várias sob /usr/lib/mysql/plugin/
Diretórios Instalados: /etc/mysql, /usr/{include,lib,share}/mysql, /usr/share/groonga{-normalizer-mysql} e /usr/share/doc/mariadb-10.6.12

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 "MySQL" que não podem ser testados usando o "mysqltest" 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 "mysqld" que escutam conexões em diferentes arquivos de soquete "Unix" e portas "TCP"/"IP"

mariadbd-safe

é a maneira recomendada de iniciar um servidor "mysqld" 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 "mysqltest", mas é construído com suporte para o servidor incorporado "libmysqld"

mariadb-tzinfo-to-sql

carrega as tabelas de fuso horário na base de dados "mysql"

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-15.2

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://ftp.postgresql.org/pub/source/v15.2/postgresql-15.2.tar.bz2

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 968418dbdd700caaccfeabcee7516496

  • Tamanho da transferência: 21,6 MB

  • Espaço em disco estimado exigido: 209 MB (adicionar 42 MB para os testes)

  • Tempo de construção estimado: 0,6 UPC (com paralelismo=4, adicionar 0,1 UPC para os testes)

Dependências do "PostgreSQL"

Opcionais

ICU-72.1, libxml2-2.10.3, libxslt-1.1.37, OpenLDAP-2.6.4, Linux-PAM-1.5.2, MIT Kerberos V5-1.20.1 e Bonjour

Opcionais (Para Regenerar a Documentação)

fop-2.8, docbook-4.5-dtd, docbook-dsssl-1.79, DocBook-utils-0.6.14, OpenJade-1.3.2 e SGMLSpm-1.1

Observações de Usuário(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         \
            --enable-thread-safety \
            --docdir=/usr/share/doc/postgresql-15.2 &&
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, [então] existem etapas importantes que você precisa seguir. Se a versão principal da nova construção for superior à versão anterior, [então] existe uma chance de que o formato do arquivo de dados tenha mudado. O novo logiciário não consegue atuar nos arquivos de dados existentes. Nesse caso, o servidor não iniciará porque os aplicativos antigos 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 binário diferente nos objetos de dados, causando potenciais incompatibilidades. Para mais informações, verifique a documentação do(a) desenvolvedor(a) relativa a atualização do "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
systemctl stop postgresql
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 é sugerido 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".

--enable-thread-safety: Essa chave torna as bibliotecas cliente seguras em camadas, permitindo que camadas simultâneas em aplicativos "libpq" e "ECPG" controlem com segurança os manuseadores privados de conexão deles.

--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. "Python3" é usado por padrão; "Python2" não mais é suportado.

--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-15.2/html/index.html.

Unidade do systemd

Instale a unidade "postgresql.service" inclusa no pacote "" "blfs-systemd-units-20220720":

make install-postgresql

Iniciando o Servidor PostgreSQL e Criando uma Base de Dados de Exemplo

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, postmaster (descontinuado), psql, reindexdb, vacuumdb, opcionalmente, se o 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-15.2,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"

postmaster

(descontinuado, um link simbólico para postgres) é um processo multiusuário(a) de segundo plano de base de dados

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.40.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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://sqlite.org/2022/sqlite-autoconf-3400100.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 42175b1a1d23529cb133bbd2b5900afd

  • Tamanho da transferência: 3,0 MB

  • Espaço em disco estimado exigido: 78 MB

  • Tempo de construção estimado: 0,3 UPC (Usando paralelismo=4)

Transferências Adicionais

Documentação Opcional

Dependências do "SQLite"

Opcionais

libedit e UnZip-6.0 (exigido para deszipar a documentação)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/sqlite

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-3400100.zip

Instale o "SQLite" executando os seguintes comandos:

./configure --prefix=/usr    \
            --disable-static  \
            --enable-fts5     \
            CPPFLAGS="-DSQLITE_ENABLE_FTS3=1            \
                      -DSQLITE_ENABLE_FTS4=1            \
                      -DSQLITE_ENABLE_COLUMN_METADATA=1 \
                      -DSQLITE_ENABLE_UNLOCK_NOTIFY=1   \
                      -DSQLITE_ENABLE_DBSTAT_VTAB=1     \
                      -DSQLITE_SECURE_DELETE=1          \
                      -DSQLITE_ENABLE_FTS3_TOKENIZER=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.40.1 &&
cp -v -R sqlite-doc-3400100/* /usr/share/doc/sqlite-3.40.1

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

--enable-fts5: Essa chave habilita o suporte para a versão cinco da extensão completa de pesquisa de texto.

CPPFLAGS="-DSQLITE_ENABLE_FTS3=1 -DSQLITE_ENABLE_FTS3_TOKENIZER=1 -DSQLITE_ENABLE_FTS4=1 -DSQLITE_ENABLE_COLUMN_METADATA=1 -DSQLITE_SECURE_DELETE -DSQLITE_ENABLE_UNLOCK_NOTIFY=1 -DSQLITE_ENABLE_DBSTAT_VTAB=1": Aplicativos como o "SeaMonkey" exigem que essas opções estejam ativadas. A única maneira de fazer isso é a de incluí-las na "CFLAGS" ou na "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 seja afetado. Para mais informações relativas ao 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.40.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.4

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Transferências Adicionais

Dependências do "OpenLDAP"

Recomendadas
Opcionais

GnuTLS-3.8.0, Pth-2.0.7, unixODBC-2.3.11, MariaDB-10.6.12 ou PostgreSQL-15.2 ou MySQL, OpenSLP, WiredTiger e Base de Dados Berkeley-5.3.28 (para "slapd", porém descontinuado)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/openldap

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.4-consolidated-1.patch &&
autoconf &&

./configure --prefix=/usr    \
            --sysconfdir=/etc \
            --disable-static  \
            --enable-dynamic  \
            --enable-versioning=yes  \
            --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.4-consolidated-1.patch &&
autoconf &&

./configure --prefix=/usr        \
            --sysconfdir=/etc     \
            --localstatedir=/var  \
            --libexecdir=/usr/lib \
            --disable-static      \
            --enable-versioning=yes \
            --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 parecem ser frágeis. Erros possivelmente causem os testes abortar antes de finalizar, aparentemente devido a problemas de temporização. Os testes duram cerca de sessenta e cinco (65) minutos e são independentes do processador. 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.4 &&
cp      -vfr      doc/{drafts,rfc,guide} \
                  /usr/share/doc/openldap-2.6.4

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-versioning: Essa chave habilita o versionamento de símbolos nas bibliotecas do "OpenLDAP". Sem isso, alguns aplicativos podem gerar um aviso relativo a versões ausentes de símbolos.

--enable-crypt: Essa chave habilita o uso de 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".

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:

Unidade do systemd

Para automatizar a inicialização do servidor do "LDAP" na inicialização do sistema, instale a unidade "slapd.service" inclusa no pacote "" "blfs-systemd-units-20220720" usando o seguinte comando:

make install-slapd

Nota

Você precisará modificar o "/etc/default/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 "systemctl":

systemctl start slapd

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.4

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.17.1

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://nlnetlabs.nl/downloads/unbound/unbound-1.17.1.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: bb96df2dc579c11ada537dbc52781abc

  • Tamanho da transferência: 6,0 MB

  • Espaço em disco estimado exigido: 141 MB (com os documentos; adicionar 10 MB para os testes)

  • Tempo de construção estimado: 0,5 UPC (Usando paralelismo=4; com os documentos; adicionar 0,4 UPC para os testes)

Dependências do "Unbound"

Opcionais

libevent-2.1.12, Nettle-3.8.1, Python-2.7.18, sphinx-6.1.3 (para a documentação das ligações "Python"), SWIG-4.1.1 (para as ligações "Python"), Doxygen-1.9.6 (para a documentação "HTML") e dnstap

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/unbound

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.9.6" 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.17.1 &&
install -v -m644 doc/html/* /usr/share/doc/unbound-1.17.1

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", permitindo o uso de grandes intervalos de portas de saída.

--with-pyunbound: Essa opção habilita a construção das ligações "Python".

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

Se você estiver usando um cliente "DHCP" para conectar-se a uma rede de intercomunicação, [então] o "/etc/resolv.conf" será sobrescrito pelos valores fornecidos pelo servidor "DHCP". Você pode substituir isso, por exemplo, no "DHCP-4.4.3-P1", executando o seguinte comando como o(a) usuário(a) "root":

sed -i '/request /i\supersede domain-name-servers 127.0.0.1;' \
       /etc/dhcp/dhclient.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. Crie esse arquivo executando o seguinte comando como o(a) usuário(a) "root":

unbound-anchor

Unidade do systemd

Se você quiser que o servidor "Unbound" inicie automaticamente quando o sistema for inicializado, [então] instale a unidade "unbound.service" inclusa no pacote "" "blfs-systemd-units-20220720":

make install-unbound

Conteúdo

Aplicativos Instalados: unbound, unbound-anchor, unbound-checkconf, unbound-control, unbound-control-setup e unbound-host
Biblioteca Instalada: libunbound.so e (opcional) /usr/lib/python2.7/site-packages/_unbound.so
Diretórios Instalados: /etc/unbound e /usr/share/doc/unbound-1.17.1 (opcional)

Descrições Curtas

unbound

é um processo de segundo plano de resolvedor "DNS"

unbound-anchor

executa a configuração ou atualização da â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.18.12"

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 um longo tempo o único ambiente gráfico usável com o GNU/Linux foi o "Sistema 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 ser difícil acessar a aceleração moderna de hardware, de forma que outras abordagens foram desenvolvidas. Dois novos sistemas estão disponíveis: "Wayland" e "Vulkan". O primeiro é um substituto mais simples do "X", mais fácil de desenvolver e manter, usando a estrutura essencial de suporte "OpenGL". Os principais ambientes de área de trabalho, "GNOME" e "KDE", foram portados para ele. O último permite acesso direto ao hardware gráfico por intermédio de uma interface portável. Ele é mais recente e ainda não está incluído no BLFS.

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").

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/Xorg7

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.21.3" é 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 si. 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 logiciário 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. Uma página wiki contendo informações de dependência está em desenvolvimento. Você é incentivado(a) a adicionar informações a essas páginas se descobrir informações adicionais que possivelmente sejam úteis para outros(as) usuários(as) que instalem pacotes individuais seletivamente.

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.13p1". É 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"

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.13p1", [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.0".

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.0

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 adequadamente usando uma plataforma LFS 11.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)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/util-macros

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-2022.2

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "xorgproto"

Exigidas

util-macros-1.20.0

Opcionais

fop-2.8, libxslt-1.1.37, xmlto-0.0.28 e asciidoc-10.2.0 (para construir documentação adicional)

Nota

Existe uma dependência recíproca com o "fop-2.8". 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.8" ter sido instalado.

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/Xorg7ProtocolHeaders

Instalação do xorgproto

Instale o "xorgproto" executando os seguintes comandos:

mkdir build &&
cd   build &&

meson --prefix=$XORG_PREFIX -Dlegacy=true .. &&
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{,-2022.2}

Explicações do Comando

-Dlegacy=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-2022.2

libXau-1.0.11

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "libXau"

Exigidas

xorgproto-2022.2

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libXau

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.4

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "libXdmcp"

Exigidas

xorgproto-2022.2

Opcionais

xmlto-0.0.28, fop-2.8, libxslt-1.1.37 e Xorg-SGML-doctools (para a documentação)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libXdmcp

Instalação do libXdmcp

Instale o "libXdmcp" executando os seguintes comandos:

./configure $XORG_CONFIG --docdir=/usr/share/doc/libXdmcp-1.1.4 &&
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.4

Descrições Curtas

libXdmcp.so

é a biblioteca do Protocolo de Controle do Gerenciador de Monitor do "X"

xcb-proto-1.15.2

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "xcb-proto"

Recomendadas
Opcionais

libxml2-2.10.3 (exigido para executar os testes)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/xcb-proto

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.11/site-packages/xcbgen

libxcb-1.15

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://xorg.freedesktop.org/archive/individual/lib/libxcb-1.15.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 39c0fc337e738ad6c908e7cce90957d0

  • Tamanho da transferência: 440 KB

  • Espaço em disco estimado exigido: 27 MB (com os testes, adicionar 62 MB para os 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.11 e xcb-proto-1.15.2

Recomendadas
Opcionais

Doxygen-1.9.6 (para gerar a documentação da "API") e libxslt-1.1.37

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libxcb

Instalação do libxcb

Instale o "libxcb" executando os seguintes comandos:

PYTHON=python3               \
./configure $XORG_CONFIG      \
            --without-doxygen \
            --docdir='${datadir}'/doc/libxcb-1.15 &&
make

Para testar os resultados, emita: "make check".

Agora, como o(a) usuário(a) "root":

make install

Explicações do Comando

PYTHON=python3: Essa variável força a configuração a usar "python3" em vez de "python2". O conjunto de comandos sequenciais de configuração para esse pacote será automaticamente padronizado para "python2" se esse estiver presente.

--without-doxygen: Não use "doxygen" para gerar documentação da "API" (padrão: automático). Sem ele, se o "Doxygen-1.9.6" 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-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.15

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências das Bibliotecas do "Xorg"

Exigidas

Fontconfig-2.14.2 e libxcb-1.15

Opcionais

asciidoc-10.2.0, xmlto-0.0.28 com um ou mais do seguinte: fop-2.8, Links-2.28, Lynx-2.8.9rel.1, ncompress (para alguns testes) e W3m (para gerar documentação adicional "PDF" ou texto para o pacote "libXfont").

Recomendadas em tempo de execução

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/Xorg7Libraries

Transferindo as Bibliotecas do Xorg

Primeiro, crie uma lista de arquivos a serem baixados. Este arquivo também será usado para verificar a integridade das transferências quando concluídas:

cat > lib-7.md5 << "EOF"
ce2fb8100c6647ee81451ebe388b17ad  xtrans-1.4.0.tar.bz2
e932752126240f0846b35eef6b1f2c3d  libX11-1.8.4.tar.xz
964942427fcc5a9fa0539661421857c8  libXext-1.3.5.tar.xz
742863a552ecd53cdb957b7b276213cc  libFS-1.0.9.tar.xz
b444a0e4c2163d1bbc7b046c3653eb8d  libICE-1.1.1.tar.xz
ffa434ed96ccae45533b3d653300730e  libSM-1.2.4.tar.xz
e613751d38e13aa0d0fd8e0149cec057  libXScrnSaver-1.2.4.tar.xz
b122ff9a7ec70c94dbbfd814899fffa5  libXt-1.2.1.tar.bz2
ed52d396115fbc4d05300762aab79685  libXmu-1.1.4.tar.xz
b3c58c94e284fd6940d3615e660a0007  libXpm-3.5.15.tar.xz
c1ce21c296bbf3da3e30cf651649563e  libXaw-1.0.14.tar.bz2
86f182f487f4f54684ef6b142096bb0f  libXfixes-6.0.0.tar.bz2
af0a5f0abb5b55f8411cd738cf0e5259  libXcomposite-0.4.6.tar.xz
ebf7fb3241ec03e8a3b2af72f03b4631  libXrender-0.9.11.tar.xz
4cdd1886fe5cce6f68554296edb46db8  libXcursor-1.2.1.tar.xz
ca55d29fa0a8b5c4a89f609a7952ebf8  libXdamage-1.1.6.tar.xz
6d3f1b15bb5b0bb71ae9f0a5103c1fc4  libfontenc-1.1.7.tar.xz
c179daa707f5f432f1bc13977e5bb329  libXfont2-2.0.6.tar.xz
69dc24ba444a0f6bd99423dbf8fd0260  libXft-2.3.7.tar.xz
74055672a111a98ce2841d2ec4057b05  libXi-1,8.tar.bz2
228c877558c265d2f63c56a03f7d3f21  libXinerama-1.1.5.tar.xz
850cbc7c921c9d5d0135734b114ff6ac  libXrandr-1.5.3.tar.xz
66c9e9e01b0b53052bb1d02ebf8d7040  libXres-1.2.2.tar.xz
02f128fbf809aa9c50d6e54c8e57cb2e  libXtst-1.2.4.tar.xz
70bfdd14ca1a563c218794413f0c1f42  libXv-1.0.12.tar.xz
11a358e7229fa28dc9801c1e64fe2e18  libXvMC-1.0.13.tar.xz
74d1acf93b83abeb0954824da0ec400b  libXxf86dga-1.1.6.tar.xz
5b913dac587f2de17a02e17f9a44a75f  libXxf86vm-1.1.5.tar.xz
d2f1f0ec68ac3932dd7f1d9aa0a7a11c  libdmx-1.1.4.tar.bz2
1466cf950c914ad2db1dbb76c9a724db  libpciaccess-0,17.tar.xz
8af2275955d40166bb647b14e4896ab1  libxkbfile-1.1.2.tar.xz
faa74f7483074ce7d4349e6bdc237497  libxshmfence-1.3.2.tar.xz
EOF

Para baixar os arquivos necessários usando o "wget", 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

Ao instalar-se múltiplos pacotes em um "script", a instalação precisa ser feita como o(a) usuário(a) "root". Existem três opções gerais que podem ser usadas para fazer isso:

  1. Executar o "script" inteiro como o(a) usuário(a) "root" (não recomendado).

  2. Usar o comando "sudo" oriundo do pacote Sudo-1.9.13p1.

  3. Usar su -c "argumentos do comando" (aspas exigidas) o qual solicitará a senha do(a) "root" para cada interação do "loop".

Uma maneira de se lidar com essa situação é a de criar uma função curta do "bash" que seleciona automaticamente o método apropriado. Tão logo o comando seja configurado no ambiente, ele não precisa ser novamente configurado.

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*}
  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]* )
      sed -i '/TestAll.*TRUE/s|^|//|' test/TestAllFiles.h
      ./configure $XORG_CONFIG $docdir --disable-open-zfile
    ;;
    
    * )
      ./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

sed ... test/TestAllFiles.h: Corrija um arquivo de teste para funcionar sem o aplicativo opcional "compress".

--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.28" 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.8" 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: libdmx.so, 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, 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.1, $XORG_PREFIX/share/doc/libSM-1.2.4, $XORG_PREFIX/share/doc/libX11-1.8.4, $XORG_PREFIX/share/doc/libXaw, $XORG_PREFIX/share/doc/libXext, $XORG_PREFIX/share/doc/libXi, $XORG_PREFIX/share/doc/libXmu-1.1.4, $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

libdmx.so

é a biblioteca de extensão "Distributed Multihead X" ("DMX") do Sistema de Janelas "X"

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"

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.2

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "libxcvt"

Exigidas

Ambiente de construção do "Xorg" (deveria estar configurado para as seguintes instruções funcionarem)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libxcvt

Instalação do libxcvt

Instale o "libxcvt" executando os seguintes comandos:

mkdir build &&
cd   build &&

meson --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 adequadamente usando uma plataforma LFS 11.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.15

Opcionais

Doxygen-1.9.6 (para documentação)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/xcb-util

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"

xcb-util-image-0.4.1

Introdução ao xcb-util-image

O pacote "xcb-util-image" fornece extensões adicionais para a biblioteca "XCB".

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://xcb.freedesktop.org/dist/xcb-util-image-0.4.1.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: a67bfac2eff696170259ef1f5ce1b611

  • Tamanho da transferência: 284 KB

  • Espaço em disco estimado exigido: 2,9 MB

  • Tempo de construção estimado: menos que 0,1 UPC

Dependências do "xcb-util-image"

Exigidas

xcb-util-0.4.1

Opcionais

Doxygen-1.9.6 (para documentação)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/xcb-util-image

Instalação do xcb-util-image

Instale o "xcb-util-image" executando os seguintes comandos:

./configure $XORG_CONFIG &&
make

Para testar os resultados, emita: "LD_LIBRARY_PATH=$XORG_PREFIX/lib make check".

Agora, como o(a) usuário(a) "root":

make install

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libxcb-image.so
Diretórios Instalados: Nenhum(a)

Descrições Curtas

libxcb-image.so

É uma portagem das funções "XImage" e "XShmImage" do "Xlib"

xcb-util-keysyms-0.4.1

Introdução ao xcb-util-keysyms

O pacote "xcb-util-keysyms" contém uma biblioteca para lidar com constantes padrões de teclas do X e conversão de/para códigos de teclas.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "xcb-util-keysyms"

Exigidas

libxcb-1.15

Opcionais

Doxygen-1.9.6 (para gerar documentação)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/xcb-util-keysyms

Instalação do xcb-util-keysyms

Instale o "xcb-util-keysyms" 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-keysyms.so
Diretórios Instalados: Nenhum(a)

Descrições Curtas

libxcb-keysyms.so

fornece as constantes padrões de teclas do "X" e funções de "API" para conversão de/para códigos de teclas

xcb-util-renderutil-0.3.10

Introdução ao xcb-util-renderutil

O pacote "xcb-util-renderutil" fornece extensões adicionais para a biblioteca "XCB".

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "xcb-util-renderutil"

Exigidas

libxcb-1.15

Opcionais

Doxygen-1.9.6 (para documentação)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/xcb-util-renderutil

Instalação do xcb-util-renderutil

Instale o "xcb-util-renderutil" 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-render-util.so
Diretórios Instalados: Nenhum(a)

Descrições Curtas

libxcb-render-util.so

Fornece funções convenientes para a extensão "Render"

xcb-util-wm-0.4.2

Introdução ao xcb-util-wm

O pacote "xcb-util-wm" contém bibliotecas que fornecem auxiliares de cliente e gerenciador de janelas para "EWMH" e "ICCCM".

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://xcb.freedesktop.org/dist/xcb-util-wm-0.4.2.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 581b3a092e3c0c1b4de6416d90b969c3

  • Tamanho da transferência: 280 KB

  • Espaço em disco estimado exigido: 3,2 MB

  • Tempo de construção estimado: menos que 0,1 UPC

Dependências do "xcb-util-wm"

Exigidas

libxcb-1.15

Opcionais

Doxygen-1.9.6 (para documentação)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/xcb-util-wm

Instalação do xcb-util-wm

Instale o "xcb-util-wm" 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)
Bibliotecas Instaladas: libxcb-ewmh.so e libxcb-icccm.so
Diretórios Instalados: Nenhum(a)

Descrições Curtas

libxcb-ewmh.so

fornece o cliente e ajudantes de gerenciador de janelas para "EWMH"

libxcb-icccm.so

fornece o cliente e auxiliares do gerenciador de janelas para "ICCCM"

xcb-util-cursor-0.1.4

Introdução ao xcb-util-cursor

O pacote "xcb-util-cursor" fornece um módulo que implementa a biblioteca de cursores "XCB". Ela é a substituta do "XCB" para a "libXcursor".

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://xcb.freedesktop.org/dist/xcb-util-cursor-0.1.4.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 0d244518ad54b886413fe782235d6210

  • Tamanho da transferência: 260 KB

  • Espaço em disco estimado exigido: 2,5 MB

  • Tempo de construção estimado: menos que 0,1 UPC

Dependências do "xcb-util-cursor"

Exigidas

xcb-util-image-0.4.1 e xcb-util-renderutil-0.3.10

Opcionais

Doxygen-1.9.6 (para documentação)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/xcb-util-cursor

Instalação do xcb-util-cursor

Instale o "xcb-util-cursor" 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-cursor.so
Diretórios Instalados: Nenhum(a)

Descrições Curtas

libxcb-cursor.so

É uma portagem das funções "libXcursor" do "Xlib"

Mesa-22.3.5

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 22.3.x do "Mesa" mais recente disponível.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Transferências Adicionais

Dependências do "Mesa"

Exigidas

Bibliotecas do Xorg, libdrm-2.4.115 e Mako-1.2.4

Recomendadas
Opcionais

libgcrypt-1.10.1, libunwind-1.6.2, lm-sensors-3-6-0 , Nettle-3.8.1, Valgrind-3.20.0, mesa-demos (fornece mais que trezentos (300) demonstrativos extra para testar Mesa; isso inclui os mesmos aplicativos adicionados pelo remendo acima), Camada de Integração Bellagio OpenMAX (para plataformas móveis), glslang (para os controladores "vulkan"), libtizonia e libvulkan

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/mesalib

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), [então] aplique-o executando o seguinte comando:

patch -Np1 -i ../mesa-22.3.5-add_xdemos-1.patch

Instale o "Mesa" executando os seguintes comandos:

mkdir build &&
cd   build &&

meson setup                   \
      --prefix=$XORG_PREFIX   \
      --buildtype=release     \
      -Dplatforms=x11,wayland \
      -Dgallium-drivers=auto  \
      -Dvulkan-drivers=""     \
      -Dvalgrind=disabled     \
      -Dlibunwind=disabled    \
      ..                      &&

ninja

Para testar os resultados, emita: "meson configure -Dbuild-tests=true && ninja test".

Agora, como o(a) usuário(a) "root":

ninja install

Se desejado, [então] instale a documentação opcional executando os seguintes comandos como o(a) usuário(a) "root":

install -v -dm755 /usr/share/doc/mesa-22.3.5 &&
cp -rfv ../docs/* /usr/share/doc/mesa-22.3.5

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.

-Dgallium-drivers="...": Esse parâmetro controla quais controladores "Gallium3D" deveriam ser construídos.

-Dplatforms="...": Esse parâmetro controla quais sistemas de janelas serão suportados. As plataformas Linux disponíveis são "x11" e "wayland".

-Dvulkan-drivers="": Essa chave permite escolher quais controladores "Vulkan" serão construídos. O padrão é "auto", mas isso exige a dependência opcional "glslang". Portanto é melhor passar uma lista vazia, para a finalidade de eliminar a necessidade dessa dependência. De qualquer forma, nada no BLFS usa "Vulkan".

-Dvalgrind=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.

-Dlibunwind=disabled: Esse parâmetro desabilita o uso da "libunwind".

meson configure -Dbuild-tests=true: Esse comando reconfigurará a construção para configurar "-Dbuild-tests=true", mas manterá as outras opções especificadas no comando "meson setup" sem mudanças. Ele permite que o "ninja test" construa e execute testes unitários.

-Degl-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".

Conteúdo

Aplicativos Instalados: glxgears e glxinfo
Bibliotecas Instaladas: libEGL.so, libGL.so, libGLESv1_CM.so, libGLESv2.so, libgbm.so, libglapi.so e libxatracker.so
Controladores Instalados: crocus_dri.so, i915_dri.so, iris_dri.so, kms_swrast_dri.so, nouveau_dri.so, nouveau_drv_video.so, r300_dri.so, r600_dri.so, r600_drv_video.so, radeonsi_dri.so, radeonsi_drv_video.so, swrast_dri.so, virtio_gpu_dri.so, virtio_gpu_drv_video.so, vmwgfx_dri.so, libvdpau_nouveau.so, libvdpau_r300.so libvdpau_r600.so e libvdpau_radeonsi.so libvdpau_virtio_gpu.so (Muitos desses controladores são rigidamente lincados).
Diretórios Instalados: $XORG_PREFIX/{include/{EGL,GLES,GLES2,GLES3,KHR}, $XORG_PREFIX/lib/{dri,vdpau}}, $XORG_PREFIX/share/drirc.d (contém soluções alternativas para vários aplicativos, principalmente navegadores e jogos) e /usr/share/doc/mesa-22.3.5

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

libEGL.so

fornece uma interface gráfica de plataforma nativa conforme definido pela especificação "EGL-1.4"

libgbm.so

é a biblioteca "Graphics Buffer Manager" do "Mesa"

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"

xbitmaps-1.1.2

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "xbitmaps"

Exigidas

util-macros-1.20.0

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/xbitmaps

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências dos Aplicativos do "Xorg"

Exigidas

libpng-1.6.39, Mesa-22.3.5, xbitmaps-1.1.2 e xcb-util-0.4.1

Opcionais

Linux-PAM-1.5.2 e ambos cairo-5c e Nickle (somente se você desejar tentar executar o não documentado conjunto de comandos sequenciais xkeyhost).

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/Xorg7Applications

Transferindo os Aplicativos do Xorg

Primeiro, crie uma lista de arquivos a serem transferidos. Esse arquivo também será usado para verificar a integridade das transferências quando concluídas:

cat > app-7.md5 << "EOF"
5d3feaa898875484b6b340b3888d49d8  iceauth-1.0.9.tar.xz
c4a3664e08e5a47c120ff9263ee2f20c  luit-1.1.1.tar.bz2
fd2e6e5a297ac2bf3d7d54799bf69de0  mkfontscale-1.2.2.tar.xz
05423bb42a006a6eb2c36ba10393de23  sessreg-1.1.3.tar.xz
2f72c7170cdbadc8ef786b2f9cfd4a69  setxkbmap-1.3.3.tar.xz
9f7a4305f0e79d5a46c3c7d02df9437d  smproxy-1.0.7.tar.xz
e96b56756990c56c24d2d02c2964456b  x11perf-1.6.1.tar.bz2
dbcf944eb59343b84799b2cc70aace16  xauth-1.1.2.tar.xz
5b6405973db69c0443be2fba8e1a8ab7  xbacklight-1.2.3.tar.bz2
82a90e2feaeab5c5e7610420930cc0f4  xcmsdb-1.0.6.tar.xz
89e81a1c31e4a1fbd0e431425cd733d7  xcursorgen-1.0.8.tar.xz
f67116760888f2e06486ee3d179875d2  xdpyinfo-1.3.3.tar.xz
34aff1f93fa54d6a64cbe4fee079e077  xdriinfo-1.0.7.tar.xz
61219e492511b3d78375da76defbdc97  xev-1.2.5.tar.xz
41afaa5a68cdd0de7e7ece4805a37f11  xgamma-1.0.7.tar.xz
48ac13856838d34f2e7fca8cdc1f1699  xhost-1.0.9.tar.xz
ac6b7432726008b2f50eba82b0e2dbe4  xinput-1.6.3.tar.bz2
a11d4d6eeda762f13818684c0670f89f  xkbcomp-1.4.6.tar.xz
05ce1abd8533a400572784b1186a44d0  xkbevd-1.1.5.tar.xz
cf65ca1aaf4c28772ca7993cfd122563  xkbutils-1.0.5.tar.xz
f62b99839249ce9a7a8bb71a5bab6f9d  xkill-1.0.6.tar.xz
da5b7a39702841281e1d86b7349a03ba  xlsatoms-1.1.4.tar.xz
ab4b3c47e848ba8c3e47c021230ab23a  xlsclients-1.1.5.tar.xz
f33841b022db1648c891fdc094014aee  xmessage-1.0.6.tar.xz
0d66e07595ea083871048c4b805d8b13  xmodmap-1.0.11.tar.xz
9cf272cba661f7acc35015f2be8077db  xpr-1.1.0.tar.xz
33c090d8632a300e63efbf36edd6a333  xprop-1.2.6.tar.xz
f822a8d5f233e609d27cc22d42a177cb  xrandr-1.5.2.tar.xz
85f04a810e2fb6b41ab872b421dce1b1  xrdb-1.2.1.tar.bz2
33b04489e417d73c90295bd2a0781cbb  xrefresh-1.0.7.tar.xz
18ff5cdff59015722431d568a5c0bad2  xset-1.2.5.tar.xz
fa9a24fe5b1725c52a4566a62dd0a50d  xsetroot-1.1.3.tar.xz
d698862e9cad153c5fefca6eee964685  xvinfo-1.1.5.tar.xz
f783a209f2e3fa13253cedb65eaf9cdb  xwd-1.0.8.tar.bz2
26d46f7ef0588d3392da3ad5802be420  xwininfo-1.1.5.tar.bz2
5ff5dc120e8e927dc3c331c7fee33fc3  xwud-1.0.6.tar.xz
EOF

Para transferir os arquivos necessários usando o "wget", 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

Ao instalar-se múltiplos pacotes em um "script", a instalação precisa ser feita como o(a) usuário(a) "root". Existem três opções gerais que podem ser usadas para fazer isso:

  1. Executar o "script" inteiro como o(a) usuário(a) "root" (não recomendado).

  2. Usar o comando "sudo" oriundo do pacote Sudo-1.9.13p1.

  3. Usar su -c "argumentos do comando" (aspas exigidas) o qual solicitará a senha do(a) "root" para cada interação do "loop".

Uma maneira de se lidar com essa situação é a de criar uma função curta do "bash" que seleciona automaticamente o método apropriado. Tão logo o comando seja configurado no ambiente, ele não precisa ser novamente configurado.

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
     case $packagedir in
       luit-[0-9]* )
         sed -i -e "/D_XOPEN/s/5/6/" configure
       ;;
     esac

     ./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, luit, mkfontdir, mkfontscale, sessreg, setxkbmap, smproxy, x11perf, x11perfcomp, xauth, xbacklight, 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

luit

fornece suporte local e "ISO 2022" para terminais "Unicode"

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

x11perf

é um aplicativo de teste de desempenho do servidor "X11"

x11perfcomp

é um aplicativo de comparação de desempenho do servidor "X11"

xauth

é o utilitário de arquivo de autoridade do "X"

xbacklight

ajusta o brilho da luz de fundo usando a extensão "RandR"

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"

xcursor-themes-1.0.6

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "xcursor-themes"

Exigidas

Aplicativos do Xorg

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/xcursor-themes

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências das fontes do "Xorg"

Exigidas

xcursor-themes-1.0.6

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/Xorg7Fonts

Transferindo as Fontes do Xorg

Primeiro, crie uma lista de arquivos a serem transferidos. Esse arquivo também será usado para verificar a integridade das transferências quando concluídas:

cat > font-7.md5 << "EOF"
ec6cea7a46c96ed6be431dfbbb78f366  font-util-1.4.0.tar.xz
c2bcfdc52b8b6462228342cedae2fed9  encodings-1.0.6.tar.xz
0497de0176a0dfa5fac2b0552a4cf380  font-alias-1.0.4.tar.bz2
fcf24554c348df3c689b91596d7f9971  font-adobe-utopia-type1-1.0.4.tar.bz2
e8ca58ea0d3726b94fe9f2c17344be60  font-bh-ttf-1.0.3.tar.bz2
53ed9a42388b7ebb689bdfc374f96a22  font-bh-type1-1.0.3.tar.bz2
bfb2593d2102585f45daa960f43cb3c4  font-ibm-type1-1.0.3.tar.bz2
4ee18ab6c1edf636b8e75b73e6037371  font-misc-ethiopic-1.0.4.tar.bz2
3eeb3fb44690b477d510bbd8f86cf5aa  font-xfree86-type1-1.0.4.tar.bz2
EOF

Para transferir os arquivos necessários usando o "wget", 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

Ao instalar-se múltiplos pacotes em um "script", a instalação precisa ser feita como o(a) usuário(a) "root". Existem três opções gerais que podem ser usadas para fazer isso:

  1. Executar o "script" inteiro como o(a) usuário(a) "root" (não recomendado).

  2. Usar o comando "sudo" oriundo do pacote Sudo-1.9.13p1.

  3. Usar su -c "argumentos do comando" (aspas exigidas) o qual solicitará a senha do(a) "root" para cada interação do "loop".

Uma maneira de se lidar com essa situação é a de criar uma função curta do "bash" que seleciona automaticamente o método apropriado. Tão logo o comando seja configurado no ambiente, ele não precisa ser novamente configurado.

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.38

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "XKeyboardConfig"

Exigidas

Bibliotecas do Xorg

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/xkeyboard-config

Instalação do XKeyboardConfig

Instale o "XKeyboardConfig" executando os seguintes comandos:

mkdir build &&
cd   build &&

meson --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

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Diretório Instalado: $XORG_PREFIX/share/X11/xkb

Xwayland-22.1.8

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "Xwayland"

Exigidas

libxcvt-0.1.2, Pixman-0.42.2, wayland-protocols-1.31 e Fontes do Xorg (somente "font-util")

Recomendadas
Opcionais

git-2.39.2 (para transferir os pacotes necessários para os testes), libgcrypt-1.10.1, Nettle-3.8.1, xmlto-0.0.28, Fontes Legadas do "Xorg" (somente bdftopcf, para construir as fontes exigidas para os testes), rendercheck (para os testes) e weston (para os testes)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/xwayland

Instalação do Xwayland

Instale o "xwayland" executando os seguintes comandos:

sed -i '/install_man/,$d' meson.build &&

mkdir build &&
cd   build &&

meson --prefix=$XORG_PREFIX         \
      --buildtype=release           \
      -Dxkb_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

Se o "Xorg-Server-21.1.7" 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.7". Remova esse comando se o "Xorg-Server-21.1.7" 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.

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.7

Introdução ao Servidor Xorg

O Servidor "Xorg" é o núcleo do Sistema de Janelas "X".

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Servidor "Xorg"

Exigidas

libxcvt-0.1.2, Pixman-0.42.2, Fontes do Xorg (somente "font-util") e, ao tempo da execução, xkeyboard-config-2.38

Recomendadas
Opcionais

acpid-2.0.34 (tempo de execução), Doxygen-1.9.6 (para construir a documentação da "API"), fop-2.8 (para construir a documentação), libunwind-1.6.2, Nettle-3.8.1, libgcrypt-1.10.1, xcb-util-keysyms-0.4.1, xcb-util-image-0.4.1, xcb-util-renderutil-0.3.10, xcb-util-wm-0.4.2 (todos quatro para construir o "Xephyr"), xmlto-0.0.28 (para construir a documentação), xkeyboard-config-2.38 (para testes), rendercheck (para testes) e xorg-sgml-doctools (para construir a documentação)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/Xorg7Server

Instalação do Servidor Xorg

Instale o servidor executando os seguintes comandos:

mkdir build &&
cd   build &&

meson --prefix=$XORG_PREFIX \
      --localstatedir=/var  \
      -Dsuid_wrapper=true   \
      -Dxkb_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

Explicações do Comando

-Dsuid_wrapper=true: Constrói o involucrador "suid-root" para suporte de controlador legado em sistemas "xserver" sem raiz.

-Dsystemd_logind=false: Essa chave desabilita a integração "systemd-logind" , permitindo que o Servidor "Xorg" funcione sem ter o módulo "PAM" do "systemd" configurado.

-Dxephyr=true: Essa opção permite construir o "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.so"
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 do Xorg

Introdução aos Controladores do Xorg

A página "Controladores do "Xorg"" contém as instruções para construir controladores do "Xorg" que são necessários para a finalidade de que o Servidor "Xorg" aproveite as vantagens do "hardware" no qual está em execução. Pelo menos uma entrada e um controlador de vídeo são exigidos para o Servidor "Xorg" iniciar.

Em máquinas que usam "KMS", o controlador "modesetting" é fornecido pelo "xorg-server" e pode ser usado no lugar do controlador de vídeo para o "hardware" específico, mas com desempenho reduzido. Também pode ser usado (sem aceleração de "hardware") em máquinas virtuais executando sob o "qemu".

Nota

Se você não tiver certeza qual "hardware" de vídeo você tem, [então] você pode usar o "lspci" originário de "pciutils-3.9.0" para descobrir qual "hardware" de vídeo você tem e então olhar as descrições dos pacotes para a finalidade de descobrir qual controlador você precisa.

Nota

Além dos controladores listados abaixo, existem vários outros controladores para hardware muito antigo que ainda podem ser relevantes. As versões mais recentes desses controladores podem ser baixadas a partir de " https://www.x.org/archive/individual/driver". Instruções para construir esses controladores agora mantidos intermitentemente podem ser encontradas em uma versão anterior do BLFS: "https://www.linuxfromscratch.org/blfs/view/7.6/x/x7driver.html"

Aceleração de Vídeo por Hardware

libevdev 1.13.0

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do libevdev
Opcionais

Doxygen-1.9.6 e Valgrind-3.20.0 (opcional para testes)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libevdev

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, ...) [CONFIG_INPUT]
    <*>   Event interface                   [CONFIG_INPUT_EVDEV]
    [*]   Miscellaneous devices  --->       [CONFIG_INPUT_MISC]
      <*/m>    User level driver support    [CONFIG_INPUT_UINPUT]

O último item não é estritamente exigido para o libevdev. Se for compilado como um módulo, não será carregado automaticamente. É necessário para cobertura completa do teste.

Instalação do libevdev

Instale o libevdev executando os seguintes comandos:

mkdir build &&
cd    build &&

meson --prefix=$XORG_PREFIX    \
      --buildtype=release      \
      -Ddocumentation=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.10.6

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do Controlador "Evdev" do "Xorg"
Exigidas

libevdev-1.13.0, mtdev-1.1.6 e Xorg-Server-21.1.7

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/xorg-evdev-driver

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.22.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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
  • Transferência (HTTP): https://gitlab.freedesktop.org/libinput/libinput/-/archive/1.22.1/libinput-1.22.1.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: d164313f9a92162df7af3505b6915c76

  • Tamanho da transferência: 967 KB

  • Espaço em disco estimado exigido: 13 MB (adicionar 22 MB para documentação e 9,6 MB para testes)

  • Tempo de construção estimado: 0,1 UPC (adicionar 0,1 UPC para documentação e 4,7 UPC para testes)

Dependências do libinput
Exigidas

libevdev-1.13.0 e mtdev-1.1.6

Opcionais

Valgrind-3.20.0 (para executar os testes), GTK+-3.24.36 (para construir o visualizador de eventos da GUI), libunwind-1.6.2 (exigido para testes), libwacom-2.6.0, sphinx-6.1.3 (exigido para construir documentação) e pyparsing-3.0.9 (para um teste não root)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libinput

Configuração do Núcleo para Executar a Suíte de Teste do Libinput

Embora libinput funcione com a mesma configuração de núcleo usada por libevdev-1.13.0, a extenso suíte de teste exige a presença de /dev/uinput (assim como ambos Valgrind-3.20.0 e libunwind-1.6.2).

Se você desejar executar os testes completos, habilite a seguinte opção na configuração do núcleo e recompile o núcleo se necessário:

Device Drivers --->
  Input device support --->
    Miscellaneous Devices --->
    <*/M>   User level driver support        [CONFIG_INPUT_UINPUT]

Se você construir isso como um módulo, ele precisará ser inserido antes da suíte de teste executar.

Em um sistema Xorg você também precisará evitar que os eventos gerados durante a suíte de teste interfiram em tua área de trabalho. Copie o arquivo test/50-litest.conf para ${XORG_PREFIX}/share/X11/xorg.conf.d e reinicie o X. Para mais informações, veja-se suíte de teste do libinput.

Instalação do Libinput

Instale o libinput executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=$XORG_PREFIX    \
            --buildtype=release      \
            -Ddebug-gui=false        \
            -Dtests=false            \
            -Dlibwacom=false         \
            -Dudev-dir=/usr/lib/udev \
            ..                      &&
ninja

Nota

Se você quiser executar os testes completos, remova -Dtests do comando meson acima. Por favor, leia "configuração do núcleo para executar a suíte de teste do libinput" (acima).

Se você tiver habilitado os testes completos, você pode executar os testes principais como o(a) usuário(a) root executando: ninja test. Um número muito grande de testes será executado. Um teste falha no Wayland.

Agora, como o(a) usuário(a) root:

ninja install

Se você tiver passado -Ddocumentation=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.22.1/html &&
cp -rv Documentation/* /usr/share/doc/libinput-1.22.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.

-Ddebug-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.36 instalado.

-Dtests=false: Essa chave desabilita a compilação dos testes principais. Mesmo com os testes definidos como false, você ainda consegue executar os primeiros quatro testes secundários, como um(a) usuário(a) normal, mas um será ignorado se o pyparsing-3.0.9 não estiver instalado.

-Dlibwacom=false: Remova essa opção se você tiver libwacom-2.6.0 instalado ou se estiver instalando o GNOME.

-Dudev-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.

-Ddocumentation=true: Essa chave habilita a geração da documentação. Adicione-a se quiser gerar a documentação. Você precisa ter Doxygen-1.9.6 e Graphviz-7.1.0 instalados.

Conteúdo

Aplicativos Instalados: libinput
Bibliotecas Instaladas: libinput.so
Diretórios Instalados: /etc/libinput, $XORG_PREFIX/libexec/libinput, $XORG_PREFIX/usr/share/libinput e (opcionalmente) $XORG_PREFIX/share/doc/libinput-1.22.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 Libinput do Xorg-1.2.1

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do Controlador "Libinput" do "Xorg"
Exigidas

libinput-1.22.1 e Xorg-Server-21.1.7

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/xorg-libinput-driver

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.9.2

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do Controlador "Synaptics" do "Xorg"
Exigidas

libevdev-1.13.0 e Xorg-Server-21.1.7

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/xorg-synaptics-driver

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.1.0

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do Controlador "Wacom" do "Xorg"
Exigidas

Xorg-Server-21.1.7

Opcionais

Doxygen-1.9.6 e Graphviz-7.1.0

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/xorg-wacom-driver

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 support  --->
    -*- HID bus support                                       [CONFIG_HID]
         Special HID drivers --->
              <*/M> Wacom Intuos/Graphire tablet support (USB) [CONFIG_HID_WACOM]

Instalação do Controlador Wacom do Xorg

Instale o Controlador "Wacom" 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

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"

Controlador AMDGPU do Xorg-23.0.0

Introdução ao Controlador AMDGPU do Xorg

O pacote Controlador "AMDGPU" do "Xorg" contém o Controlador de Vídeo "X.Org" para placas de vídeo "Radeon" da "AMD" mais recentes e "CPUs" da "AMD" mais recentes com gráficos integrados ("APUs"). Isso inclui placas de vídeo começando com "Volcanic Islands". Também pode ser usado para "Southern Islands" e "Sea Islands" se o suporte experimental foi habilitado no núcleo.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Nota

Para a Renderização Direta funcionar, você precisa habilitar o controlador "radeonsi Gallium" ao tempo da construção do "Mesa-22.3.5". Além disso, todas as placas e "APUs" mais recentes exigem que o "Firmware" esteja disponível quando o controlador do núcleo for carregado. Se você não tiver seguido as instruções na parte "Firmware" para Placas de Vídeo de "Acerca de Firmware", que forneceu esse "firmware" em "/lib/firmware" para uma construção modular, [então] o "firmware" pode ser obtido a partir de "https://anduin.linuxfromscratch.org/BLFS/linux-firmware/" - veja-se “Configuração do Núcleo para firmware adicional” abaixo para "firmware" adicional.

Informação do Pacote
Dependências do Controlador "AMDGPU" do "Xorg"
Exigidas

Xorg-Server-21.1.7 (precisa ser construído com "glamour" habilitado)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/xorg-amdgpu-driver

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 --->
   <*> Direct Rendering Manager (XFree86 ... support) ---> [CONFIG_DRM]
   <*/M> AMD GPU                                          [CONFIG_DRM_AMDGPU]
    < /*> Enable amdgpu support for SI parts               [CONFIG_DRM_AMDGPU_SI]
    < /*> Enable amdgpu support for CIK parts              [CONFIG_DRM_AMDGPU_CIK]

As últimas duas opções habilitam o suporte experimental para as "GPUs" "Southern Islands" e "Sea Islands" da "AMD", de forma que possam ser usadas com esse controlador. Observe que o suporte está marcado como experimental e desabilitado por padrão. O "Controlador ATI do Xorg-19.1.0" deveria ser usado para essas "GPUs".

Configuração do Núcleo para firmware adicional

Se você precisar adicionar "firmware", [então] instale o(s) arquivo(s) e então aponte para ele(s) na configuração do núcleo e recompile o núcleo se necessário. Para descobrir qual "firmware" você precisa, consulte o "Anel decodificador para nomes de engenharia versus nomes de mercadologia". Baixe qualquer "firmware" para a tua placa com o nome: "<NOME_ENGENHARIA>_rlc.bin", etc. Abaixo está um exemplo para a "GPU" "Radeon R7 M340", cujo codinome é "Iceland/Topaz", junto com uma placa de rede de intercomunicação que também exige o "firmware":

CONFIG_EXTRA_FIRMWARE="amdgpu/topaz_ce.bin amdgpu/topaz_k_smc.bin amdgpu/topaz_mc.bin
                        amdgpu/topaz_me.bin amdgpu/topaz_mec2.bin amdgpu/topaz_mec.bin
                        amdgpu/topaz_pfp.bin amdgpu/topaz_rlc.bin amdgpu/topaz_sdma1.bin
                        amdgpu/topaz_sdma.bin amdgpu/topaz_smc.bin rtl_nic/rtl8168e-3.fw"
CONFIG_EXTRA_FIRMWARE_DIR="/lib/firmware"

Nota

CONFIG_EXTRA_FIRMWARE deveria estar todos em uma linha. É mostrado acima como múltiplas linhas somente para apresentação.

Dica

Você pode verificar a saída gerada do "dmesg" depois da inicialização para ver qual "firmware" está ausente.

Alternativamente, se você mudar "CONFIG_DRM_AMDGPU" para "=m" no ".config" do teu núcleo Linux, [então] o "firmware" consegue ser carregado automaticamente a partir de "/lib/firmware/amdgpu/" quando instalar o módulo. Isso oferece uma pequena economia de espaço, mas também significa que a tela ficará em branco por mais tempo antes que o "framebuffer" apareça. As distribuições adotam essa abordagem porque não é prático especificar todos os "firmwares" possíveis e o núcleo seria excessivamente grande.

Instalação do Controlador AMDGPU do Xorg

Instale o Controlador "AMDGPU" 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: amdgpu_drv.so
Descrições Curtas

amdgpu_drv.so

é um controlador de vídeo do "Xorg" para as placas de vídeo "Radeon" da "AMD" mais recentes

Controlador ATI do Xorg-19.1.0

Introdução ao Controlador ATI do Xorg

O pacote "Controlador ATI do Xorg" contém o Controlador de Vídeo "X.Org" para placas de vídeo "ATI Radeon", incluindo todos os "chipsets", desde "R100" até os "chipsets" "Volcanic Islands".

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Nota

Para Renderização Direta funcionar com placas "Radeon" mais recentes ("chipsets" "R300" e posteriores), você precisa habilitar os controladores "Gallium" "r300", "r600" e "radeonsi" em tempo da construção do Mesa-22.3.5. Além disso, algumas placas exigem que o "Firmware" esteja disponível quando o controlador do núcleo for carregado. Nesse caso, se você não tiver seguido as instruções na parte "Firmware" para Placas de Vídeo de Acerca de Firmware que forneceu esse "firmware" em /lib/firmware para uma construção modular, [então] o "firmware" pode ser obtido a partir de https://anduin.linuxfromscratch.org/BLFS/linux-firmware/ - veja-se “Configuração do Núcleo para firmware adicional” abaixo para "firmware" adicional.

Informação do Pacote
Transferências Adicionais
Dependências do Controlador "ATI" do "Xorg"
Exigidas

Xorg-Server-21.1.7 (recomendado para ser construído com o "glamour" habilitado)

Nota

"Glamour" é exigido para "GPUs" "Southern Islands", "Sea Islands" ou "Volcanic Islands" e usado por padrão em todas as outras "GPUs" "Radeon" "R600" ou posteriores. Para ver quais "GPUs" estão nessas categorias, leia-se o Anel decodificador para nomes de engenharia versus nomes de mercadologia.

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/xorg-ati-driver

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 --->
   <*> Direct Rendering Manager (XFree86 ... support) ---> [CONFIG_DRM]
   <*> ATI Radeon                                           [CONFIG_DRM_RADEON]

Configuração do Núcleo para firmware adicional

Se você precisar adicionar "firmware", [então] instale o(s) arquivo(s) e então aponte para ele(s) na configuração do núcleo e recompile o núcleo se necessário. Para descobrir qual "firmware" você precisa, consulte o Anel decodificador para nomes de engenharia versus nomes de mercadologia. Baixe algum "firmware" para a tua placa que seja nomeada como: <NOME_ENGENHARIA>_rlc.bin, etc. Observe que para a família "R600" e "R700", "R600_rlc.bin" e "R700_rlc.bin" genéricos são necessários além do "firmware" específico do modelo, enquanto para gerações posteriores você precisa do "BTC_rlc.bin" além do "firmware" específico do modelo. Abaixo está um exemplo de uma "Radeon HD6470" que é uma "GPU" "Northern Islands", além de um "chip" de rede de intercomunicação "RTL" que também solicita "firmware" extra:

CONFIG_EXTRA_FIRMWARE="radeon/BTC_rlc.bin radeon/CAICOS_mc.bin radeon/CAICOS_me.bin
radeon/CAICOS_pfp.bin radeon/CAICOS_smc.bin rtl_nic/rtl8168e-3.fw"
CONFIG_EXTRA_FIRMWARE_DIR="/lib/firmware"

Nota

"CONFIG_EXTRA_FIRMWARE" deveriam estar todos em uma linha. Eles estão mostrados acima como duas linhas somente para apresentação.

Dica

Você pode verificar a saída gerada do "dmesg" depois da inicialização para ver qual "firmware" está ausente.

Alternativamente, se você mudar "CONFIG_DRM_RADEON" para "=m" em teu ".config", [então] o "firmware" poderá ser carregado automaticamente a partir de "/lib/firmware/radeon" quando instalar o módulo. Isso oferece uma pequena economia de espaço, mas também significa que a tela ficará em branco por mais tempo antes que o "framebuffer" apareça. As distribuições adotam essa abordagem porque não é prático especificar todos os "firmwares" possíveis e o núcleo seria excessivamente grande.

Instalação do Controlador ATI do Xorg

Primeiro, aplique um remendo incluindo correções para regressões de desempenho conhecidas e problemas futuros com o "Xorg-Server".

patch -Np1 -i ../xf86-video-ati-19.1.0-upstream_fixes-1.patch

Instale o "Controlador "ATI" 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

Controladores Instalados do Xorg: ati_drv.so e radeon_drv.so
Descrições Curtas

ati_drv.so

é um controlador involucrador para placas de vídeo "ATI" que detecta automaticamente o hardware de vídeo "ATI" e carrega o controlador "radeon", "mach64" ou "r128" dependendo de qual placa de vídeo estiver em uso

radeon_drv.so

é um controlador de vídeo do "Xorg" para placas de vídeo baseadas em "ATI" "Radeon"

Controlador Fbdev do Xorg-0.5.0

Introdução ao Controlador Fbdev do Xorg

O pacote Controlador "Fbdev" do "Xorg" contém o Controlador de Vídeo "X.Org" para dispositivos "framebuffer". Esse controlador frequentemente é usado como controlador substituto se os controladores "VESA" e específicos do "hardware" falharem ao carregar ou não estiverem presentes. Se esse controlador não estiver instalado, [então] o Servidor "Xorg" imprimirá um aviso na inicialização, mas poderá ser ignorado com segurança se o controlador específico do "hardware" funcionar bem.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do Controlador "Fbdev" do "Xorg"
Exigidas

Xorg-Server-21.1.7

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/xorg-fbdev-driver

Instalação do Controlador Fbdev do Xorg

Instale o Controlador "Fbdev" 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: fbdev_drv.so
Descrições Curtas

fbdev_drv.so

é um controlador de vídeo do "Xorg" para dispositivos "framebuffer"

Controlador Intel do Xorg-20230223

Introdução ao Controlador Intel do Xorg

O pacote Controlador Intel do "Xorg" contém o Controlador de Vídeo "X.Org" para "chips" de vídeo integrados Intel, incluindo processadores gráficos "8xx", "9xx", "Gxx", "Qxx", "HD", "Iris" e "Iris Pro".

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Nota

Esse controlador é para "GPU" integrada Intel e uma versão de desenvolvimento é necessária para funcionar adequadamente com o "hardware" mais recente. Essa versão já tem um ano e tem alguns problemas. Diz-se que o controlador Kernel Modes Setting (KMS) enviado junto com o Servidor "Xorg" fornece melhores resultados.

Informação do Pacote
Dependências do Controlador Intel do "Xorg"
Exigidas

xcb-util-0.4.1 e Xorg-Server-21.1.7

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/xorg-intel-driver

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 --->
   <*> Direct Rendering Manager (XFree86 ... support) ---> [CONFIG_DRM]
   <*> Intel 8xx/9xx/G3x/G4x/HD Graphics                    [CONFIG_DRM_I915]

Instalação do Controlador Intel do Xorg

Instale o Controlador Intel do "Xorg" executando os seguintes comandos:

./autogen.sh $XORG_CONFIG      \
            --enable-kms-only \
            --enable-uxa      \
            --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 &&

mv -v /usr/share/man/man4/intel-virtual-output.4 \
       /usr/share/man/man1/intel-virtual-output.1 &&

sed -i '/\.TH/s/4/1/' /usr/share/man/man1/intel-virtual-output.1

Solucionando problemas com o controlador Intel

O código "SandyBridge New Acceleration" ("SNA") destina-se a substituir o antigo "UMA Acceleration Architecture" ("UXA"), mas ele é um grande corpo de código e possivelmente cause problemas. Entretanto, a versão do código no sistema de controle de versão listado acima foi testada com êxito com ambos os recursos "SNA" e "UXA".

Para contornar esse problema, bem como habilitar o suporte para o "UXA", é necessário forçar que o "UXA" seja usado criando-se um arquivo de configuração. Se esse problema se aplicar a você, [então] crie o seguinte arquivo como o(a) usuário(a) "root" e modifique-o conforme necessário:

cat >> /etc/X11/xorg.conf.d/20-intel.conf << "EOF"
Section   "Device"
        Identifier "Intel Graphics"
        Driver     "intel"
        #Option     "DRI" "2"            # DRI3 é o padrão
        #Option     "AccelMethod"  "sna" # padrão
        #Option     "AccelMethod"  "uxa" # substituto
EndSection
EOF

Explicações do Comando

--enable-kms-only: Essa chave omite o código "User Mode Setting" ("UMS").

--enable-uxa: Essa chave permite que o antigo código "UXA" seja compilado além do padrão "SNA".

Conteúdo

Aplicativo Instalado: intel-virtual-output
Biblioteca Instalada: libIntelXvMC.so
Controlador Instalado do Xorg: intel_drv.so
Descrições Curtas

intel-virtual-output

é um utilitário para conectar a "GPU" integrada Intel a saídas geradas discretas em sistemas híbridos

intel_drv.so

é um controlador de vídeo do "Xorg" para "chipsets" gráficos integrados Intel

Controlador Nouveau do Xorg-1.0.17

Introdução ao Controlador Nouveau do Xorg

O pacote Controlador "Nouveau" do "Xorg" contém o Controlador de Vídeo "X.Org" para Placas "NVidia", incluindo os "chipsets" "RIVA TNT", "RIVA TNT2", "GeForce 256", "QUADRO", "GeForce2", "QUADRO2", "GeForce3", "QUADRO DDC", "nForce", "nForce2", "GeForce4", "QUADRO4", "GeForce FX", "QUADRO FX", "GeForce 6XXX" e "GeForce 7xxx".

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências dos Controladores "Nouveau" do "Xorg"
Exigidas

Xorg-Server-21.1.7 (recomendado para ser construído com o "glamour" habilitado)

Nota

As novas "GPUs" Maxwell e Pascal exigem o "Glamor" para serem construídas com o servidor "Xorg".

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/xorg-nouveau-driver

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 --->
   <*> Direct Rendering Manager (XFree86 ... support) ---> [CONFIG_DRM]
   <*> Nouveau (NVIDIA) cards                               [CONFIG_DRM_NOUVEAU]
      [*]   Support for backlight control                     [CONFIG_DRM_NOUVEAU_BACKLIGHT]

Instalação do Controlador Nouveau do Xorg

Nota

Por favor, certifique-se de ter instalado o "Mesa-22.3.5" com o remendo de correções "nouveau" antes de continuar.

Primeiro, corrija o Controlador "Nouveau" do "Xorg" para construir com o Servidor "Xorg" mais recente:

grep -rl slave | xargs sed -i s/slave/secondary/

Instale o Controlador "Nouveau" 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: nouveau_drv.so
Descrições Curtas

nouveau_drv.so

é um controlador de vídeo do "Xorg" para placas de vídeo "nVidia"

Controlador VMware do Xorg-13.4.0

Introdução ao Controlador VMware do Xorg

O pacote Controlador "VMware" do "Xorg" contém o Controlador de Vídeo "X.Org" para placas de vídeo virtuais "VMware SVGA".

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do Controlador "VMware" do "Xorg"
Exigidas

Xorg-Server-21.1.7

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/xorg-vmware-driver

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  --->
   <*> Direct Rendering Manager (XFree86 ... support) --->  [CONFIG_DRM]
   <*> DRM driver for VMware Virtual GPU                     [CONFIG_DRM_VMWGFX]
      [*]   Enable framebuffer console under vmwgfx by default [CONFIG_DRM_VMWGFX_FBCON]

Instalação do Controlador VMware do Xorg

Instale o Controlador "VMware" 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: vmware_drv.so
Descrições Curtas

vmware_drv.so

é um controlador de vídeo do "Xorg" para placa de vídeo virtual "VMware SVGA"

intel-media-driver-23.1.2

Introdução ao intel-media-driver

O pacote intel-media-driver fornece um controlador VA API para GPUs Intel fornecidas com CPUs Broadwell e superiores. Isso inclui suporte para uma variedade de codificadores.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Nota

O tarball intel-media-23.1.2.tar.gz extrairá para o diretório media-driver-intel-media-23.1.2.

Dependências do intel-media-driver
Exigidas

CMake-3.25.2, Intel-gmmlib-22.3.4 e libva-2.17.0

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/intel-media-driver

Instalação do intel-media-driver

Nota

Este pacote leva muito tempo para construir porque compila código específico para cada geração individual de GPUs Intel e para uma variedade de codificadores de mídia.

Instale o intel-media-driver executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -DCMAKE_INSTALL_PREFIX=/usr   \
      -DINSTALL_DRIVER_SYSCONF=OFF  \
      -DBUILD_TYPE=Release          \
      -Wno-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)
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

libva-2.17.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 janelas, 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 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Transferências Adicionais
Dependências do libva
Exigidas

libdrm-2.4.115

Recomendadas
Opcionais

Doxygen-1.9.6, Wayland-1.21.0 e intel-gpu-tools

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libva

Instalação do libva

Instale o libva 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

Instalação do intel-vaapi-driver

O intel-vaapi-driver foi projetado especificamente para placas de vídeo baseadas em uma GPU Intel. Desempacote o tarball intel-vaapi:

tar -xvf ../intel-vaapi-driver-2.4.1.tar.bz2 &&
cd intel-vaapi-driver-2.4.1

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

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: libva-drm.so, libva-glx.so, libva.so, libva-wayland.so e libva-x11.so
Controlador Instalado: i965_drv_video.so
Diretório Instalado: $XORG_PREFIX/include/va

Descrições Curtas

libva.so

contém funções de API que fornecem acesso a processamento de vídeo acelerado por hardware

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 e hardware de GPU posterior dela direcionado ao Sistema de Janelas X. Essa API da VDPAU permite que aplicativos 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 em 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, um hardware de GPU da série GeForce 200M (2xxM) (a décima primeira geração de unidades de processamento gráfico GeForce da Nvidia) ou mais recente é exigido.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
Dependências do libvdpau
Exigidas

Bibliotecas do Xorg

Opcionais

Doxygen-1.9.6, Graphviz-7.1.0 e texlive-20220321 ou install-tl-unx

Dependências em Tempo de Execução

Mesa-22.3.5

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libvdpau

Instalação do libvdpau

Instale o libvdpau executando os seguintes comandos:

mkdir build &&
cd    build &&

meson --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 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

libvdpau-va-gl-0.4.0

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 Intel e em alguns adaptadores de vídeo AMD com a ajuda do controlador libvdpau.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote
  • Transferência do Controlador Libvdpau-va-gl (HTTP): https://github.com/i-rinat/libvdpau-va-gl/archive/v0.4.0/libvdpau-va-gl-0.4.0.tar.gz

  • Transferência do Controlador Libvdpau-va-gl (FTP):

  • Soma de verificação MD5 da Transferência do Controlador Libvdpau-va-gl: 638244652a702d0262039890904f37ce

  • Tamanho da Transferência do Controlador Libvdpau-va-gl: 120 KB

  • Espaço em disco estimado exigido: 3,4 MB

  • Tempo de construção estimado: menos que 0,1 UPC

Dependências do libvdpau-va-gl
Exigidas

CMake-3.25.2, libvdpau-1.5 e libva-2.17.0

Opcionais

Doxygen-1.9.6, Graphviz-7.1.0 e texlive-20220321 ou install-tl-unx

Dependências ao Tempo de Execução

Mesa-22.3.5

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libvdpau

Instalação do libvdpau-va-gl

Instale o libvdpau-va-gl executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$XORG_PREFIX .. &&
make

Para testar os resultados, emita: make check. Os testes precisam ser executados a partir de um ambiente Xorg.

Agora, como o(a) usuário(a) root:

make install

Configuração

Para permitir que 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 OpenGL para a API da Video Decode and Presentation API for Unix (VDPAU)

twm-1.0.12

Introdução ao "twm"

O pacote "twm" contém um gerenciador de janelas extremamente mínimo.

Esse pacote é fornecido para testagem da instalação completada do "Xorg".

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "twm"

Exigidas

Xorg-Server-21.1.7

Recomendadas

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/twm

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-379

Introdução ao xterm

"xterm" é um emulador de terminal para o Sistema de Janelas "X".

Esse pacote é fornecido para testagem da instalação completada do "Xorg".

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://invisible-mirror.net/archives/xterm/xterm-379.tgz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 5e98e6c74f344b211918bf75d0827831

  • Tamanho da transferência: 1,5 MB

  • Espaço em disco estimado exigido: 18 MB

  • Tempo de construção estimado: 0,2 UPC

Dependências do "xterm"

Exigidas

Aplicativos do Xorg

Exigidas (em tempo de execução)

Uma fonte mono espaçada "TTF" ou "OTF", como "Fontes "Dejavu""

Opcionais

Emacs-28.2, PCRE-8.45 ou pcre2-10.42, Valgrind-3.20.0 e man2html

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/Xterm

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     &&
make install-ti &&

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".

make install-ti: Esse comando instala arquivos corrigidos de descrição "terminfo" para uso com o "xterm".

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 testagem da instalação completada do "Xorg".

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "xclock"

Exigidas

Bibliotecas do Xorg

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/xclock

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.2

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "xinit"

Exigidas

Bibliotecas do Xorg

Recomendadas (tempo de execução somente)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/xinit

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

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"".

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.7" com o "bit" "suid") para declarações como:

(II) intel(0): direct rendering: DRI2 Enabled

ou

(II) NOUVEAU(0): Loaded DRI module

Nota

A configuração da "DRI" possivelmente seja diferente se você estiver usando controladores alternativos, como aqueles 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-22.3.5". A partir de um terminal do "X", execute "glxinfo" e procure pela frase:

nome da tela: :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-15.0.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, [então] ele estará localizado no diretório "$HOME/.local/share/xorg/". Se o "Xorg" for iniciado por um gerenciador de exibição (por exemplo, "lightdm-1.32.0", "lxdm-0.5.3" ou "GDM-43.0") ou se "$XORG_PREFIX/libexec /Xorg" tiver o "bit" "suid" configurado, [então] 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 somente uma placa de vídeo no sistema, [então] ele pode ser seguramente ignorado. Se desejado, [então] 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>
(EE) AIGLX error: dlopen of /opt/xorg/lib/dri/i965_dri.so failed

Esse erro, acompanhado por "(EE) AIGLX error: unable to load driver i965", ocorre em alguns sistemas com dispositivos gráficos baseados em Intel. Isso é causado por uma incompatibilidade entre o "Xorg-Server-21.1.7" e o "Mesa-22.3.5" atuais. O "Xorg" não mais usa o controlador "i965" e usa os controladores Mesa "crocus" ou "iris", conforme indicado pelo comando "xdriinfo". Ele pode seguramente ser ignorado.

Se desejado, [então] esse aviso pode ser removido comentando-se as linhas 330-331 e 337-338 ("LogMessage") do "glx/glxdricommon.c" no pacote "Xorg-Server-21.1.7".

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:Intel
Provider 1: id: 0x56 cap: 0xf, Source Output, Sink Output, Source Offload, Sink Offload crtcs: 6 outputs: 1 associated providers: 1 name:radeon

Para a finalidade de poder executar um aplicativo "GLX" em uma "GPU" discreta, você precisará executar o seguinte comando, onde <provider> é a placa discreta mais poderosa e <sink> é o cartão que tem uma tela conectada:

xrandr --setprovideroffloadsink <provider> <sink>

Nota

Com controladores do "Xorg" mais recentes, como "modesetting" ou "intel", que são compatíveis 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

Novamente, com o "Xorg" moderno, pouca ou nenhuma configuração adicional é necessária. Se devesse precisar de opções extras passadas para o teu controlador de vídeo, por exemplo, você poderia usar algo como o seguinte (novamente, executado como o(a) usuário(a) "root"):

cat > /etc/X11/xorg.conf.d/videocard-0.conf << "EOF"
Section "Device"
    Identifier  "Videocard0"
    Driver      "radeon"
    VendorName  "Fornecedor da placa de vídeo"
    BoardName   "ATI Radeon 7500"
    Option      "NoAccel" "true"
EndSection
EOF

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

Ajustando Fontconfig

Visão Geral do Fontconfig

Se você lê texto somente em inglês e está satisfeito(a) com as fontes livres comuns listadas na próxima página, [então] possivelmente você nunca precise se preocupar com os detalhes do como o "fontconfig" funciona. Mas existem muitas coisas que podem ser alteradas se não atenderem às tuas necessidades.

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.

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/Fontconfig

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, [então] ele será ignorado e as informações serão obtidas a partir das próprias fontes (isso pode levar alguns segundos se você instalou muitas fontes).

Se você tiver instalado o "Xorg" em qualquer prefixo diferente de "/usr", {então} nenhuma fonte do "X" foi instalada em um local conhecido para o "Fontconfig". Links simbólicos foram criados a partir dos diretórios de fontes do "X" "OTF" e "TTF" para "/usr/share/fonts/X11-{OTF,TTF}". 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 seguintes comandos possivelmente sejam úteis ao se trabalhar com o "fontconfig":

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 há mais de tinta (30) segundos, mas ela não aparece, então ela ou um dos diretórios dela não está legível pelo(a) teu(ua) usuário(a).

fc-match 'Nome da Fonte' : informará qual fonte será usada se a fonte nomeada for solicitada. Normalmente você usaria isso para ver o que acontece se uma fonte que você não tenha instalado for solicitada, mas você também pode usá-lo se o sistema estiver fornecendo uma fonte diferente da que você esperava (talvez porque o "fontconfig" não concorde que a fonte suporte o teu idioma).

fc-match -a 'Tipo' | less : fornecerá uma lista de todas as fontes que podem ser usadas para esse tipo ("Monospace", "Sans", "Serif"). Observe que, no extremo, o "fontconfig" pegará um glifo a partir de qualquer fonte disponível, mesmo que ela não seja do tipo especificado, e, a menos que saiba a respeito do tipo da fonte, ele assumirá que é "Sans".

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.50.12" e o "ImageMagick-7.1.0-61" - 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 - "zh" por si só não é válido).

Os vários arquivos

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 (suavização, etc.)

  • 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.

Mas, 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), [então] 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.). Depois disso, uma fonte desconhecida será procurada em "45-latin.conf" - se for encontrada, [então] será mapeada como "Serif" ou "Monospace" ou "Sans"; caso contrário, [então] será considerada "Sans". Então "50-latin.conf" fornece listas ordenadas de substitutas - as "Fontes "Dejavu"" serão usadas se você as instalou. O cirílico e o grego parecem ser tratados da mesma forma. Existem arquivos semelhantes com um prefixo "65-" para o Persa e outros sistemas de escrita não latinos. Todos esses arquivos preferem fontes comerciais, se elas estiverem presentes, embora as fontes livres modernas frequentemente sejam, pelo menos, os iguais delas.

Desde "fontconfig-2.12.5", também existe correspondência genérica de família para algumas fontes "emoji" e matemáticas; 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ê possivelmente precise sair do "Xorg" e então executar novamente o "startx" de forma que todos os aplicativos usem as novas configurações. E, se você usa "Gnome" ou "KDE", [então] as áreas de trabalhos deles podem substituir essas mudanças. Para explorar as possibilidades, crie um arquivo para o teu(ua) 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 alinhe bem à
    grade de células de caracteres, mas ao custo do formato adequado dela.

    hintmedium: mal documentado, talvez um sinônimo para "hintfull".
    "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

Você precisará agora editar o arquivo no teu editor preferido.

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 "bitmap", [então] 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

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-20220321" coloca muitas fontes em "/opt/texlive/2022/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 dificulta a seleção da fonte.

  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, [então] 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/2022/texmf-dist/fonts/opentype/arkandis/berenisadf</dir>
  <dir>/opt/texlive/2022/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

Existem muitos motivos pelos quais as pessoas possivelmente desejem que páginas que especifiquem uma fonte específica usem uma fonte diferente ou prefiram fontes específicas em "Monospace", "Sans" ou "Serif". Como você esperará, existem várias maneiras de conseguir isso.

Documentos 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, [então] a documentação de usuário(a) estará disponível em versões "HTML", "PDF" e texto em /usr/share/doc/fontconfig-2.14.2/: 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 a "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 para todos(as) os(as) usuários(as) da máquina) faz várias coisas:

  1. Se uma fonte "Serif" for especificada, [então] ela preferirá as variantes "UMing", de forma que nos idiomas "zh-cn", "zh-hk" e "zh-tw" as coisas deveriam parecer boas (também "zh-sg" que na verdade usa as mesmas configurações que "zh-cn") sem afetar o japonês.

  2. Ela prefere as "Fontes IPAex" do japonês se elas tiverem sido instaladas (embora a "VL Gothic" terá precedência para a "Sans" (japonês) se ela também tiver sido instalada.

  3. Como a "WenQuanYi ZenHei" abrange glifos "Hangul" coreanos e também é preferida para "Serif" em "65-nonlatin.conf", se instalada, ela será usada por padrão para "Serif" coreano. Para obter uma fonte "Serif" adequada, a fonte "UnBatang" é especificada aqui - mude essa linha se você instalou uma fonte "Serif" diferente da escolha das "Fontes coreanas".

  4. As fontes "Monospace" são forçadas para as fontes preferidas "Sans". Se o texto estiver em 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". 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>AR PL UMing</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>WenQuanYi Zen Hei</family>
             <family>VL Gothic</family>
             <family>IPAexGothic</family>
         </prefer>
    </alias>
    <alias>
         <family>monospace</family>
         <prefer>
             <family>VL Gothic</family>
             <family>IPAexGothic</family>
             <family>WenQuanYi Zen Hei</family>
         </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", [então] 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 não "CJK", o "fontconfig" geralmente fará um bom trabalho sem essas regras. A origem delas remonta a quando os usuários "CJK" precisavam que os "bitmaps" feitos à mão fossem legíveis em tamanhos pequenos, e eles pareciam feios perto dos glifos latinos suavizados - eles preferiam usar a mesma fonte "CJK" para os glifos latinos. Existe um efeito colateral em fazer isso: a fonte ("Serif") também é frequentemente 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 a leitura desconfortável.

No entanto, esses arquivos antigos de configuração podem ser corrigidos se você desejar usá-los. O exemplo a seguir é 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 todo o bloco 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>

Veja-se Também

Eu olhei fixamente para o "fontconfig" ...

As entradas do blog de "Eevee" são particularmente úteis se o "fontconfig" não pensar que a tua fonte escolhida suporta o teu idioma e para preferir algumas fontes japonesas não "MS" quando uma fonte feia "MS" já estiver instalada.

"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".

Essas fontes conseguem fornecer dicas, que o "fontconfig" usa para ajustá-las para máxima legibilidade em monitores de computador. No Linux você deveria sempre preferir as versões com dicas, se disponíveis (em geral os alfabetos latino, cirílico e grego conseguem usar dicas; a maioria dos outros sistemas de escrita não usa dicas).

Algumas fontes são fornecidas como coleções ("TTC" ou "OTC") onde os dados das fontes são compartilhados entre diferentes fontes, portanto economizando espaço em disco. Trate-as exatamente da mesma maneira que os arquivos "TTF" ou "OTF" individuais.

Se uma fonte fornecer ambos os formatos "TTF" e "OTF", [então] prefira o formato "OTF" no Linux; ela possivelmente forneça mais recursos para aplicativos que saibam como usá-las (como o "xelatex").

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 e se os "caches" dele forem mais antigos que trinta (30) segundos. Mas se você adicionar uma fonte e quiser usá-la imediatamente, então 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 "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 as "Fontes Noto" (cerca de cento e oitenta (180) fontes quando da última verificação), mas esse número de fontes torna muito menos conveniente selecionar uma fonte específica em um documento, e a maioria das pessoas considerará muitas delas um desperdício de espaço. 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, alguns exemplos de fontes latinas com as mesmas métricas (listadas como "Fontes substitutas latinas") e vários arquivos de texto fictício para comparar fontes de tipos semelhantes , podem ser encontrados nesta página de comparação de fontes. Esse sítio também cobre outros sistemas atuais de escrita.

As fontes frequentemente são fornecidas em arquivos "zip", exigindo o "UnZip-6.0" 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 estranhos diretórios __MACOSX/. Além disso, muitas fontes são fornecidas com permissões que não permitem que "outros(as)" as leiam - se uma fonte é para ser instalada para uso abrangente a todo o sistema, [então] quaisquer diretórios precisam estar no modo 755 e todos os arquivos no modo 644, de forma que mude-os se necessário. Se você se esquecer, [então] 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.

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 do fonte desempacotado, 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) "TTF" ou "OTF" completo(s). 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") - úteis se você executar um servidor "web" e desejar usar essa fonte nele, mas não é útil para áreas de trabalho.

Para fornecer maior cobertura "Unicode", recomendamos instalar algumas das fontes a seguir, dependendo de quais sites 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 trata de problemas relacionados ao "CJK".

Nota

É altamente recomendável instalar as "Fontes "Dejavu"".

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" e depois devolvê-lo a eles(as).

Fontes Cantarell

Fontes Cantarell – A família de fontes "Cantarell" fornece uma "Serif" contemporânea "Sans" "Humanist". Ela é particularmente otimizada para legibilidade em tamanhos pequenos e é a família de fontes preferida para a interface de usuário(a) "GNOME-3".

Por favor, esteja ciente de que a versão atual inclui um arquivo "Variable Font" ("VF") que pode fornecer todas as fontes individuais (também fornecidas), mas quebra o "xelatex" se ele for encontrado pelo "fontconfig". As fontes individuais funcionam bem.

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" e então devolvê-lo a eles(as).

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 são as fontes substitutas padrão.

GNU FreeFont

GNU FreeFont – Esse conjunto de fontes cobre muitos caracteres não "CJK", em particular algumas das variantes de letras latinas e cirílicas usadas em idiomas minoritários, mas os glifos são comparativamente pequenos (ao contrário das fontes "DejaVu" que são comparativamente grandes) e bastante leves ("menos preto" quando preto sobre branco é usado), o que significa que, em alguns contextos, como terminais, eles não sã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 impressão, e muitas fontes "CJK", também são leves.

Gelasio

Gelasio é metricamente compatível com "MS Georgia" e o "fontconfig" irá usá-la se alguma vez a Geórgia for solicitada, mas não instalada.

Fontes Liberation

As fontes Liberation fornecem substitutas livres para "Arial", "Courier New" e "Times New Roman". O "fontconfig" irá usá-las como substitutas para essas fontes, e também para as similares "Helvetica", "Courier", "Times Roman", embora para essas últimas possa preferir uma fonte diferente (vejam-se os exemplos nos "PDFs" "Substitutes" em zarniwhoop.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 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.6.2". 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 especificadas 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", [então] você pode usar as fontes livres "Liberation" (acima) e, da mesma forma, consegue substituir a "Georgia" pela "Gelasio".

Embora muitas postagens antigas recomendem a instalação dessas fontes para uma saída gerada mais bonita, existem postagens mais recentes que essas são feias ou "quebradas". Uma sugestão é a de que elas não suportam suavização.

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 gratuitamente. Mas, se você não as tiver instaladas, [então] poderá encontrar equivalentes métricas ("Carlito", "Caladea") acima.

Fontes Noto

As fontes Noto ("No Tofu", ou seja, evitando caixas com pontos [dígitos hexadecimais] quando um glifo não puder ser encontrado) é um conjunto de fontes que visa a cobrir cada glifo em "Unicode", não importa quão obscuro. Essas fontes, ou pelo menos as fontes "Sans Serif", são usadas pelo "KF5" (inicialmente somente para aplicações "GTK"). Se quiser cobrir idiomas históricos, [então] você pode baixar todas as fontes clicando no link no topo dessa página.

Pessoas que usam idiomas escritos em alfabetos Latino, Grego ou Cirílico precisam instalar somente a própria "Noto Sans" e talvez a "Noto Sans Symbols" para símbolos monetários. Para mais detalhes a respeito das fontes "CJK", veja-se "Noto Sans CJK" abaixo. Existem também fontes separadas para todos os outros sistemas de escrita atuais, mas essas também exigirão a "Noto Sans" (ou "Noto Serif") e talvez a "Noto Symbols".

No entanto, você deveria estar ciente de que o "fontconfig" não sabe nada a respeito das fontes "Noto". As fontes "Noto Sans Something" são tratadas como fontes separadas (e para o Árabe não existe um nome especificamente "Sans"), de forma que, se você tiver outras fontes instaladas, então a escolha de qual fonte usar para glifos ausentes onde a "Noto Sans" estiver especificada será aleatória, exceto que as fontes "Sans" serão preferidas às fontes conhecidas "Serif" e "Monospace", porque "Sans" é a substituta para fontes desconhecidas.

Fontes Oxygen

Quando o "KDE Frameworks 5" foi lançado pela primeira vez, ele usava as fontes Oxygen que foram projetadas para uso integrado com a área de trabalho "KDE". Essas fontes não mais são mantidas ativamente, de forma que o "KDE" tomou a decisão de mudar para as "Fontes Noto", mas, no momento, elas ainda são exigidas pelo "startkde".

Originalmente essas fontes eram fornecidas somente como fonte, necessitando do "CMake-3.25.2" e do "FontForge-20230101" para criar os arquivos "TTF". Mas, por um tempo, o fonte também incluiu o "TTF" preparado. A única característica incomum é a de que cada arquivo "TTF" fica no próprio subdiretório dele (oxygen-fonts/{*-?00}/) com o fonte em subdiretórios adicionais. Você poderia simplesmente instalar o "tarball" inteiro, se preferir, embora isso desperdice espaço.

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-43.0". 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 deseja somente a fonte "Regular".

Existe também uma versão "TTF" disso mais antiga disponível a partir de fontes do Google, mas tem uma cobertura muito limitada (adequada para a maioria dos idiomas Europeus que usam o alfabeto latino).

Fontes "CJK":

Conforme indicado anteriormente, o uso de uma combinação de Chinês, Japonês e Coreano 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, por padrão, o "fontconfig" prefere o Chinês ao Japonês. Ajustar isso é abordado em Prefira 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 ("PRC") ou Tradicional (Taiwan)) ou em 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 o uso desses caracteres onde os nomes locais forem escritos em Mandarim. As fontes "UMing HK", "Noto Sans CJK HK" e "WenQuanYi Zen Hei" parecem cobrir o uso em Hong Kong (o "fontconfig" discorda a respeito da "Noto Sans CJK HK").

Os glifos "Han" tem largura dupla; outros glifos na mesma fonte possivelmente sejam mais estreitos. Para o conteúdo "CJK" deles, todas essas fontes podem ser consideradas mono espaçadas (ou seja, largura fixa).

Se tudo o que você deseja fazer é estar apto(a) a renderizar glifos "CJK", [então] 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".

Noto Sans CJK

Noto Sans CJK – conjuntos "Sans-Serif" de todas as fontes "CJK" em um "ttc" – conforme o link diz, você consegue escolher instalar o "TTC" e cobrir todos os idiomas em todos os pesos em um arquivo de 110MB ou pode baixar sub conjuntos. Existem também versões mono espaçadas.

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 scripts "CJK", incluindo o Coreano. Embora inclua arquivos de configuração de estilo antigo, eles não são exigidos: o "fontconfig" já tratará essas fontes (o "sharp" contém "bitmaps", o "monospace" parece não ser "Mono" na parte "ASCII" dela) como "Sans", "Serif" e mono espaçada. 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, [então] a fonte principal proveniente desse pacote é uma boa fonte para usar.

Fontes japonesas:

Em Japonês, as fontes góticas são "Sans", "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 CJK".

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" somente conhece as fontes "IPAfonts" mais antigas e a fonte "IPA Mona" bifurcada (que não está facilmente disponível e que aparentemente não atende às diretrizes de Software Livre do Debian). Portanto, se você instalar as fontes "IPAex", [então] você possivelmente deseje torná-las conhecidas para o "fontconfig"; veja-se "Prefira fontes escolhidas "CJK"" para uma maneira possível 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 ao "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 CJK" (todas as variantes abrangem "Hangul") 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 do "systemd" BLFS-7.10 em https://www.linuxfromscratch.org/blfs/view/7.10-systemd/x/x7font.html se desejar instalar quaisquer dessas outras fontes .

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Legado do "Xorg"

Exigidas

Fontes do Xorg

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/Xorg7Legacy

Transferindo 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 completadas:

cat > legacy.dat << "EOF"
2a455d3c02390597feb9cefb3fe97a45 app/ bdftopcf-1.1.tar.bz2
1347c3031b74c9e91dc4dfa53b12f143 font/ font-adobe-100dpi-1.0.3.tar.bz2
6c9f26c92393c0756f3e8d614713495b font/ font-adobe-75dpi-1.0.3.tar.bz2
cb7b57d7800fd9e28ec35d85761ed278 font/ font-jis-misc-1.0.3.tar.bz2
0571bf77f8fab465a5454569d9989506 font/ font-daewoo-misc-1.0.3.tar.bz2
a2401caccbdcf5698e001784dbd43f1a font/ font-isas-misc-1.0.3.tar.bz2
c88eb44b3b903d79fb44b860a213e623 font/ font-misc-misc-1.1.2.tar.bz2
EOF

Para transferir os arquivos necessários usando o "wget", 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

Ao instalar-se múltiplos pacotes em um "script", a instalação precisa ser feita como o(a) usuário(a) "root". Existem três opções gerais que podem ser usadas para fazer isso:

  1. Executar o "script" inteiro como o(a) usuário(a) "root" (não recomendado).

  2. Usar o comando "sudo" oriundo do pacote Sudo-1.9.13p1.

  3. Usar su -c "argumentos do comando" (aspas exigidas) o qual solicitará a senha do(a) "root" para cada interação do "loop".

Uma maneira de se lidar com essa situação é a de criar uma função curta do "bash" que seleciona automaticamente o método apropriado. Tão logo o comando seja configurado no ambiente, ele não precisa ser novamente configurado.

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.bz2}
  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.

Amtk-5.6.1

Introdução ao Amtk

O pacote "Amtk" contém uma substituição básica do "GTKUIManager" baseada no "GAction".

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "Amtk"

Exigidas

GTK+-3.24.36

Opcionais

GTK-Doc-1.33.2 (para documentação) e Valgrind-3.20.0

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/amtk

Instalação do Amtk

Instale o "Amtk" executando os seguintes comandos:

mkdir amtk-build &&
cd     amtk-build &&

meson --prefix=/usr --buildtype=release -Dgtk_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.

-Dgtk_doc=false: Essa chave impede que o sistema de construção gere e instale a documentação da "API". Omita essa chave se você tiver o "GTK-Doc-1.33.2" instalado e desejar gerar e instalar a documentação da "API".

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: libamtk-5.so
Diretórios Instalados: /usr/include/amtk-5 e /usr/share/gtk-doc/html/amtk-5.0

Descrições Curtas

libamtk-5.so

fornece uma "API" básica de substituição do "GTKUIManager" baseada em "GAction"

Atkmm-2.28.3

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "Atkmm"

Exigidas

at-spi2-core-2.46.0 e GLibmm-2.66.5

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/atkmm

Instalação do Atkmm

Instale o "Atkmm" executando os seguintes comandos:

mkdir build &&
cd     build &&

meson --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.3}

Descrições Curtas

libatkmm-1.6.so

contém as classes da "API" do "ATK"

at-spi2-core-2.46.0

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "At-Spi2 Core"

Exigidas

dbus-1.14.6, GLib-2.74.5, gsettings-desktop-schemas-43.0 (tempo de execução) e Bibliotecas do Xorg

Opcionais (Exigidas se construir o "GNOME")

gobject-introspection-1.74.0

Opcionais

GTK-Doc-1.33.2

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/at-spi2-core

Instalação do At-Spi2 Core

Instale o "At-Spi2 Core" executando os seguintes comandos:

mkdir build &&
cd     build &&

meson --prefix=/usr --buildtype=release .. &&
ninja

Um endereço de barramento de sessão, normalmente disponível em um terminal do "Xorg", é necessário para executar os testes. A suíte de teste também exige que os esquemas simplistas do pacote já estejam instalados. Para testar os resultados, instale o pacote primeiro e, 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.

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

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.17.6

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 saída de arquivos "OpenGL", "Quartz" e "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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "Cairo"

Exigidas

libpng-1.6.39 e Pixman-0.42.2

Recomendadas
Opcionais

Cogl-1.22.8, ghostscript-10.00.0, GTK+-3.24.36 e GTK+-2.24.33, GTK-Doc-1.33.2, libdrm-2.4.115, librsvg-2.54.5, libxml2-2.10.3, LZO-2.10, Mesa-22.3.5, Poppler-23.02.0, Qt-5.15.8, Valgrind-3.20.0, DirectFB, jbig2dec, libspectre, Skia e Qt4.

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".

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/cairo

Instalação do Cairo

Adapte esse pacote para "Binutils-2.39" ou posterior:

sed 's/PTR/void */' -i util/cairo-trace/lookup-symbol.c

Corrija um arquivo do "pkg-config" que possivelmente cause erros posteriormente:

sed -e "/@prefix@/a exec_prefix=@exec_prefix@" \
     -i util/cairo-script/cairo-script-interpreter.pc.in

Instale o "Cairo" executando os seguintes comandos:

./configure --prefix=/usr     \
            --disable-static \
            --enable-tee &&
make

Esse pacote não tem uma suíte de teste funcional.

Agora, como o(a) usuário(a) "root":

make install

Explicações do Comando

--enable-tee: Essa chave habilita a estrutura experimental de retaguarda da superfície "tee" que é exigida se usar o "Cairo" instalado no sistema com aplicativos "Mozilla".

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

--enable-xlib-xcb: Essa chave habilita diversas funções experimentais do "Xlib"/"XCB" usadas por alguns gerenciadores de janelas.

--enable-gl: Essa chave habilita a superfície experimental "OpenGL" do "Cairo", que é exigida para o compositor "Wayland" e alguns outros pacotes que não são parte do BLFS.

--enable-gtk-doc: Use esse parâmetro se o "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,lib,share/gtk-doc/html}/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.0)

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://www.cairographics.org/releases/cairomm-1.14.0.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 75a08d50eb08b97667e4ea2be6efa1ad

  • Tamanho da transferência: 592 KB

  • Espaço em disco estimado exigido: 9,5 MB (com os testes)

  • Tempo de construção estimado: menos que 0,1 UPC (com testes)

Dependências do "libcairomm-1.0"

Exigidas

Cairo-1.17.6 e libsigc++-2.12.0

Recomendadas
Opcionais

Doxygen-1.9.6

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/cairomm-1.0

Instalação do libcairomm-1.0

Instale o "Cairomm-1.0" executando os seguintes comandos:

mkdir bld &&
cd     bld &&

meson --prefix=/usr       \
      --buildtype=release \
      -Dbuild-tests=true  \
      -Dboost-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

-Dbuild-tests=true: Essa chave é para construir os testes de unidade. Remova se você não tiver instalado o "Boost-1.81.0".

-Dboost-shared=true: Essa chave faz o pacote usar a versão compartilhada das bibliotecas "boost". Ela é exigida se você não tiver instalado as bibliotecas estáticas "boost" e tiver passado "-Dbuild-tests=true".

-Dbuild-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"

Cogl-1.22.8

Introdução ao Cogl

"Cogl" é uma "API" moderna de gráficos "3D" com "APIs" utilitárias associadas projetadas para expor os recursos do hardware de gráficos "3D" usando um projeto de "API" de acesso direto de estado, em oposição ao estilo de máquina de estado do "OpenGL".

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "Cogl"

Exigidas

Cairo-1.17.6, gdk-pixbuf-2.42.10, GLU-9.0.2, Mesa-22.3.5, Pango-1.50.12 e Wayland-1.21.0

Recomendadas
Opcionais

gst-plugins-base-1.22.0, GTK-Doc-1.33.2, SDL-1.2.15 e SDL2-2.26.3

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/cogl

Instalação do Cogl

Instale o "Cogl" executando os seguintes comandos:

Nota

Esse pacote ocasionalmente possivelmente falhe ao construir com múltiplos processadores. Veja-se Usando Múltiplos Processadores para mais informações.

./configure --prefix=/usr   \
            --enable-gles1 \
            --enable-gles2 \
            --enable-{kms,wayland,xlib}-egl-platform \
            --enable-wayland-egl-server              &&
make

Para testar os resultados, emita: "make check". Os testes deveriam ser executados a partir de um terminal do "X" sobre o Servidor "Xorg" acelerado por hardware. Uns poucos testes usarão todas as "CPUs" em paralelo, independentemente das configurações de paralelismo.

Agora, como o(a) usuário(a) "root":

make install

Explicações do Comando

--enable-gles1: Essa chave habilita o suporte para "OpenGL ES 1.1".

--enable-gles2: Essa chave habilita o suporte para "OpenGL ES 2.0".

--enable-{kms,wayland,xlib}-egl-platform: Essas chaves habilitam o suporte para plataformas "EGL" "KMS", "Wayland" e "Xlib". Elas são exigidas para o suporte do "Wayland" do "GNOME".

--enable-wayland-egl-server: Essa chave habilita a "API" do Servidor "Wayland" do "Cogl", que é exigida para o suporte do "Wayland" do "GNOME".

--enable-cogl-gst: Essa chave habilita o suporte ao "gstreamer".

--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: libcogl-gles2.so, libcogl-pango.so, libcogl-path.so e libcogl.so e as bibliotecas opcionais libcogl-gst.so e /usr/lib/gstreamer-1.0/libgstcogl.so
Diretórios Instalados: /usr/include/cogl e /usr/share/cogl

Descrições Curtas

libcogl-gles2.so

é a biblioteca de integração "OpenGL ES 2.0" para o "Cogl"

libcogl-pango.so

é a biblioteca de integração "Pango" para o "Cogl"

libcogl.so

é uma biblioteca de Camada de Abstração/Utilidade "GL"/"GLES" orientada a objetos

Clutter-1.26.4

Introdução ao Clutter

O pacote "Clutter" contém uma biblioteca de "software" de fonte aberto usada para criar interfaces gráficas de usuário(a) rápidas, visualmente ricas e animadas.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Nota

Qualquer coisa construída com esse kit de ferramentas precisa de aceleração "3D" de hardware proveniente do controlador de gráficos em tempo de execução. Isso é fornecido pelo "Mesa" (ou por controladores proprietários de gráficos), mas não está disponível para todas as placas gráficas nem para todas as máquinas virtuais. Você possivelmente deseje rever Verificando a instalação do "DRI".

Informação do Pacote

Dependências do "Clutter"

Exigidas

at-spi2-core-2.46.0, Cogl-1.22.8 e JSON-GLib-1.6.6

Recomendadas
Opcionais

GTK-Doc-1.33.2 e Tslib

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/clutter

Instalação do Clutter

Instale o "Clutter" executando os seguintes comandos:

./configure --prefix=/usr                \
            --sysconfdir=/etc           \
            --enable-egl-backend        \
            --enable-evdev-input        \
            --enable-wayland-backend    \
            --enable-wayland-compositor &&
make

A suíte de teste não é recomendada porque alguns testes possivelmente travem para sempre. Se você quiser testar os resultados de qualquer maneira, [então] emita: "make -j1 -k check". Você precisa estar em um "xterm" ou similar, pois ele abre algumas janelas.

Agora, como o(a) usuário(a) "root":

make install

Explicações do Comando

--enable-egl-backend: Essa chave habilita a estrutura experimental de retaguarda de janelas "EGL".

--enable-evdev-input: Essa chave habilita a estrutura experimental de retaguarda de entrada "Evdev" que é exigida para o suporte do "Wayland" do "GNOME".

--enable-wayland-backend e --enable-wayland-compositor: Essas chaves habilitam a "API" experimental do "Wayland" no "Clutter" que é exigida para o suporte do "Wayland" do "GNOME".

--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: libclutter-1.0.so e libclutter-glx-1.0.so
Diretórios Instalados: /usr/include/clutter-1.0 e /usr/share/gtk-doc/html/{cally,clutter}

Descrições Curtas

libclutter-1.0.so

contém as funções da "API" do "Clutter"

clutter-gst-3.0.27

Introdução ao Clutter Gst

O pacote "Clutter Gst" contém uma biblioteca de integração para usar o "GStreamer" com o "Clutter". O objetivo dela é o de implementar a interface "ClutterMedia" usando o "GStreamer".

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "Clutter Gst"

Exigidas

Clutter-1.26.4, gst-plugins-base-1.22.0 e libgudev-237

Recomendadas
Opcionais

GTK-Doc-1.33.2 e Cgc

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/clutter-gst

Instalação do Clutter Gst

Instale o "Clutter Gst" 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)
Biblioteca Instalada: libclutter-gst-3.0.so e /usr/lib/gstreamer-1.0/libcluttergst3.so
Diretórios Instalados: /usr/include/clutter-gst-3.0 e /usr/share/gtk-doc/html/clutter-gst-3.0

Descrições Curtas

libclutter-gst-3.0.so

contém as funções da "API" do "Clutter Gst"

clutter-gtk-1.8.4

Introdução ao Clutter Gtk

O pacote "Clutter Gtk" é uma biblioteca que fornece facilidades para integrar o "Clutter" em aplicações "GTK+".

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "Clutter Gtk"

Exigidas

Clutter-1.26.4 e GTK+-3.24.36

Recomendadas
Opcionais

GTK-Doc-1.33.2

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/clutter-gtk

Instalação do Clutter Gtk

Instale o "Clutter Gtk" 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: libclutter-gtk-1.0.so
Diretórios Instalados: /usr/include/clutter-gtk-1.0 e /usr/share/gtk-doc/html/clutter-gtk-1.0

Descrições Curtas

libclutter-gtk-1.0.so

contém as funções da "API" do "Clutter Gtk"

colord-gtk-0.3.0

Introdução ao Colord GTK

O pacote "Colord GTK" contém ligações "GTK+" para o "Colord".

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "Colord GTK"

Exigidas

colord-1.4.6 e GTK+-3.24.36

Recomendadas
Opcionais

DocBook-utils-0.6.14 e GTK-Doc-1.33.2

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/colord-gtk

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 --prefix=/usr       \
      --buildtype=release \
      -Dgtk2=true         \
      -Dgtk4=true         \
      -Dvapi=true         \
      -Ddocs=false        \
      -Dman=false ..      &&
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.

-Dvapi=true: Essa chave habilita a construção das ligações "Vala". Remova essa chave se você não tiver o "Vala-0.56.4" instalado.

-Dgtk2=true: Essa chave habilita construir as ligações "GTK+-2" para "colord".

-Dgtk4=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.8.3" instalado.

-Ddocs=false: Essa chave desabilita a construção de documentação baseada em "gtk-doc". Mesmo se o "gtk-doc" estiver instalado, você precisará das versões com "namespace" das folhas de estilo "XSL" do "Docbook".

-Dman=false: Essa chave desabilita a geração de páginas de manual para esse pacote. Remova essa chave se você tiver versões com "namespace" das folhas de estilo "XSL" do "Docbook" instaladas.

Conteúdo

Aplicativos Instalados: cd-convert
Bibliotecas Instaladas: libcolord-gtk.so, libcolord-gtk2.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-gtk2.so

contém as ligações do "GTK+-2" do "Colord"

libcolord-gtk4.so

contém as ligações do "GTK-4" do "Colord"

FLTK-1.3.8

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://fltk.org/pub/fltk/1.3.8/fltk-1.3.8-source.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 84907602c2e50fadec3bc40fb61935cd

  • Tamanho da transferência: 5,1 MB

  • Espaço em disco estimado exigido: 119 MB (com a documentação)

  • Tempo de construção estimado: 0,2 UPC (Usando paralelismo=4)

Dependências do "FLTK"

Exigidas

Bibliotecas do Xorg

Recomendadas
Opcionais

alsa-lib-1.2.8, desktop-file-utils-0.26, Doxygen-1.9.6, GLU-9.0.2, Mesa-22.3.5 e texlive-20220321 (ou install-tl-unx)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/fltk

Instalação do FLTK

Nota

O diretório de extração "tar" é "fltk-1.3.8" e não "fltk-1.3.8-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, como o(a) usuário(a) "root":

make docdir=/usr/share/doc/fltk-1.3.8 install

Se desejado, [então] instale alguns jogos de exemplo construídos como parte dos testes, documentação extra e aplicativos de exemplo. Como o(a) usuário(a) "root":

make -C test           docdir=/usr/share/doc/fltk-1.3.8 install-linux &&
make -C documentation docdir=/usr/share/doc/fltk-1.3.8 install-linux

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.{a,so}, libfltk_forms.{a,so}, libfltk_gl.{a,so} e libfltk_images.{a,so}
Diretórios Instalados: /usr/include/FL e /usr/share/doc/fltk-1.3.8

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.4.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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "Freeglut"

Exigidas

CMake-3.25.2 e Mesa-22.3.5

Recomendadas

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/freeglut

Instalação do Freeglut

Instale o "Freeglut" executando os seguintes comandos:

mkdir build &&
cd     build &&

cmake -DCMAKE_INSTALL_PREFIX=/usr       \
      -DCMAKE_BUILD_TYPE=Release        \
      -DFREEGLUT_BUILD_DEMOS=OFF        \
      -DFREEGLUT_BUILD_STATIC_LIBS=OFF  \
      -Wno-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

-DFREEGLUT_BUILD_DEMOS=OFF: Desabilita a construção de aplicativos opcionais de demonstração. Observe que, se você optar por construí-los, [então] a instalação deles precisa ser feita manualmente. Os aplicativos de demonstração são limitados e a instalação não é recomendada.

-DFREEGLUT_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.10

Introdução ao Gdk Pixbuf

O pacote "Gdk Pixbuf" é um kit de ferramentas para carregamento de imagens e manipulação de "buffer" de pixeis. Ele é usado por "GTK+ 2" e "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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "Gdk Pixbuf"

Exigidas

GLib-2.74.5, libjpeg-turbo-2.1.5.1, libpng-1.6.39 e shared-mime-info-2.2

Recomendadas
Opcionais (Exigidas se construir o "GNOME")

gobject-introspection-1.74.0

Opcionais

Gi-DocGen-2023.1 (para gerar documentação)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/gdk-pixbuf

Instalação do Gdk Pixbuf

Instale o "Gdk Pixbuf" executando os seguintes comandos:

mkdir build &&
cd     build &&

meson --prefix=/usr --buildtype=release --wrap-mode=nofallback .. &&
ninja

Se você tiver o "Gi-DocGen-2023.1" instalado e desejar construir a documentação da "API" para esse pacote, [então] emita:

sed "/docs_dir =/s@\$@ / 'gdk-pixbuf-2.42.10'@" -i ../docs/meson.build &&
meson configure -Dgtk_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 que o meson use substitutos de subprojeto para quaisquer declarações de dependência nos arquivos de construção, impedindo-o de baixar qualquer dependência opcional que não esteja instalada no sistema.

-Dman=false: Use essa opção se você não quiser gerar páginas de manual ou se não quiser instalar o "docutils-0.19".

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

gdk-pixbuf-xlib-2.40.2

Introdução ao gdk-pixbuf-xlib

O pacote "gdk-pixbuf-xlib" fornece uma interface obsoleta "Xlib" para" gdk-pixbuf", que é necessária para alguns aplicativos que ainda não foram portados para usar as novas interfaces.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "gdk-pixbuf-xlib"

Exigidas

gdk-pixbuf-2.42.10 e Bibliotecas do Xorg

Opcionais

GTK-Doc-1.33.2

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/gdk-pixbuf-xlib

Instalação do gdk-pixbuf-xlib

Instale o "gdk-pixbuf-xlib" executando os seguintes comandos:

mkdir build &&
cd     build &&

meson --prefix=/usr .. &&
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

-Dgtk_doc=true: Use essa opção se o "GTK-Doc-1.33.2" estiver instalado e você desejar reconstruir e instalar a documentação da "API".

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: libgdk_pixbuf_xlib-2.0.so
Diretórios Instalados: /usr/include/gdk-pixbuf-2.0/gdk-pixbuf-xlib

Descrições Curtas

libgdk_pixbuf_xlib-2.0.so

fornece uma interface "Xlib" para "gdk-pixbuf"

GLEW-2.2.0

Introdução ao GLEW

"GLEW" é a Biblioteca "OpenGL Extension Wrangler".

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.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-22.3.5

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/GLEW

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"

GLU-9.0.2

Introdução ao GLU

Esse pacote fornece a biblioteca "OpenGL Utility" do Mesa.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP):

  • Transferência (FTP): ftp://ftp.freedesktop.org/pub/mesa/glu/glu-9.0.2.tar.xz

  • Soma de verificação MD5 da transferência: 2b0f13fa5b949bfb3a995927c6e35125

  • Tamanho da transferência: 428 KB

  • Espaço em disco estimado exigido: 9,2 MB

  • Tempo de construção estimado: 0,2 UPC

Dependências do "GLU"

Exigidas

Mesa-22.3.5

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/glu

Instalação do GLU

Instale o "GLU" executando os seguintes comandos:

mkdir build &&
cd     build &&

meson --prefix=$XORG_PREFIX -Dgl_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.55

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "GOffice"

Exigidas

GTK+-3.24.36, libgsf-1.14.50, librsvg-2.54.5, libxslt-1.1.37 e Which-2.21

Opcionais

gobject-introspection-1.74.0, ghostscript-10.00.0, gsettings-desktop-schemas-43.0, GTK-Doc-1.33.2, Lasem e libspectre

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/goffice010

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

Grantlee-5.3.1

Introdução ao grantlee

"Grantlee" é um conjunto de bibliotecas de "software" livre escritas usando a estrutura "Qt". Atualmente duas bibliotecas são fornecidas com o "Grantlee": "Grantlee Templates" e "Grantlee TextDocument". O objetivo da "Grantlee Templates" é o de tornar mais fácil para os(as) desenvolvedores(as) de aplicativos separar a estrutura dos documentos dos dados que eles contém, abrindo a porta para temas.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "Grantlee"

Exigidas

CMake-3.25.2 e Qt-5.15.8

Opcionais

Doxygen-1.9.6 (para documentação)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/grantlee

Instalação do Grantlee

Instale o "Grantlee" executando os seguintes comandos:

mkdir build &&
cd     build &&

cmake -DCMAKE_INSTALL_PREFIX=/usr \
      -DCMAKE_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)
Bibliotecas Instaladas: libGrantlee_Templates.so e libGrantlee_TextDocument.so
Diretórios Instalados: /usr/lib/cmake/Grantlee5, /usr/lib/grantlee/5.2 e /usr/include/grantlee

Descrições Curtas

libGrantlee_Templates.so

contém modelos comuns de documentação para separar documentos da estrutura deles

libGrantlee_TextDocument.so

contém funções que permitem separar o conteúdo dos documentos de texto da estrutura deles.

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "Graphene"

Exigidas

GLib-2.74.5 e gobject-introspection-1.74.0

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/graphene

Instalação do Graphene

Instale o "Graphene" executando os seguintes comandos:

mkdir build &&
cd     build &&

meson --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.

-Dgtk_doc=true: Use essa chave se você tiver o "GTK-Doc-1.33.2" 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+-2.24.33

Introdução ao GTK+ 2

O pacote "GTK+ 2" contém bibliotecas usadas para criar interfaces gráficas de usuário(a) para aplicativos.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "GTK+ 2"

Exigidas

at-spi2-core-2.46.0, gdk-pixbuf-2.42.10 e Pango-1.50.12

Recomendadas
Opcionais

Cups-2.4.2, DocBook-utils-0.6.14, gnome-themes-extra-3.28 (tempo de execução, para os temas "Adwaita" e "HighContrast"), gobject-introspection-1.74.0 e GTK-Doc-1.33.2

Nota

Se o "gobject-introspection-1.74.0" foi instalado depois do "at-spi2-core-2.46.0", "gdk-pixbuf-2.42.10" e (ou) "Pango-1.50.12", [então] esses pacotes terão que ser reconstruídos antes que esse pacote possa ser construído.

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/gtk+2

Instalação do GTK+ 2

Instale o "GTK+ 2" executando os seguintes comandos:

sed -e 's#l \(gtk-.*\).sgml#& -o \1#' \
    -i docs/{faq,tutorial}/Makefile.in       &&

./configure --prefix=/usr --sysconfdir=/etc &&

make

Para testar os resultados, emita: "make -k check". Observe que você precisa executar os testes a partir de uma sessão com capacidade de exibição de janela do "X" (ou seja, não um terminal/console baseado em texto), pois os testes tentam abrir uma janela do "X" e os testes podem demorar excessivamente. Usando uma janela do "X", os testes deveriam levar menos que 0,1 UPC. Um teste, "aliasfilescheck.sh", é conhecido por falhar.

Agora, como o(a) usuário(a) "root":

make 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 precisa ser copiado e (ou) gerado. Gere-o usando o seguinte comando como o(a) usuário(a) "root":

gtk-query-immodules-2.0 --update-cache

Explicações do Comando

sed -i 's#l \(gtk-.*\).sgml#& -o \1#' docs/{faq,tutorial}/Makefile.in: Se você tiver o "DocBook-utils-0.6.14" instalado (especificamente, se o "configure" encontrar "db2html"), então ele tentará usá-lo para reconstruir parte da documentação "HTML" dele e falhará devido a defeitos em alguns dos "Makefiles". Esse "sed" corrige os "Makefiles".

--enable-gtk-doc: Use esse parâmetro se GTK-Doc estiver instalado e você desejar reconstruir e instalar a documentação da API.

Configurando o GTK+ 2

Arquivos de Configuração

~/.gtkrc-2.0, /etc/gtk-2.0/gtkrc e /usr/share/gtk-2.0/gtkrc

Informação de Configuração

Os temas do "GTK+ 2" mudam a aparência de um aplicativo "GTK+ 2". Um tema de ícone do "GTK+ 2" pode ser usado para mudar os ícones que aparecem na barra de ferramentas do aplicativo. Se tiver instalado um tema do "GTK+ 2" (como "gnome-themes-extra-3.28" ou "GTK Engines-2.20.2"), ou um tema de ícone do "GTK+" (como "adwaita-icon-theme-43"), [então] você consegue configurar tuas preferências em "~/.gtkrc-2.0":

cat > ~/.gtkrc-2.0 << "EOF"
include "/usr/share/themes/Glider/gtk-2.0/gtkrc"
gtk-icon-theme-name = "hicolor"
EOF

Existem muitos mais temas disponíveis em "Gnome-Look.org" e em outros lugares.

Depois que tiver definido os temas que gosta, você pode (como o(a) usuário(a) "root") torná-los o padrão em todo o sistema:

cat > /etc/gtk-2.0/gtkrc << "EOF"
include "/usr/share/themes/Clearlooks/gtk-2.0/gtkrc"
gtk-icon-theme-name = "elementary"
EOF

"LXAppearance-0.6.3" é um aplicativo "GTK+ 2" que pode ajudar a escolher os temas que você gosta.

Conteúdo

Aplicativos Instalados: gtk-builder-convert, gtk-demo, gtk-query-immodules-2.0 e gtk-update-icon-cache
Bibliotecas Instaladas: libgailutil.so, libgdk-x11-2.0.so e libgtk-x11-2.0.so
Diretórios Instalados: /etc/gtk-2.0, /usr/include/{gail-1.0,gtk-2.0,gtk-unix-print-2.0}, /usr/lib/gtk-2.0, /usr/share/doc/gtk+-2.24.33, /usr/share/gtk-2.0, /usr/share/gtk-doc/html/{gail-libgail-util,gdk2,gtk2} e /usr/share/themes/{Default,Emacs,Raleigh}

Descrições Curtas

gtk-builder-convert

converte arquivos "glade" em arquivos "XML" que podem ser carregados com "GtkBuilder"

gtk-demo

demonstra a funcionalidade do "GTK+ 2" e fornece código para os exemplos

gtk-query-immodules-2.0

coleta informações a respeito de módulos carregáveis de método de entrada gerada para "GTK+ 2" e as escreve na saída gerada padrão

gtk-update-icon-cache

cria arquivos de "cache" compatíveis com "mmap" para temas de ícones. Começando com o "gtk+-2.24.24", adicione um sinalizador --include-image-data a esse comando, se você desejar o comportamento anterior, com dados de imagem no "cache"

libgdk-x11-2.0.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-x11-2.0.so

contém funções que fornecem uma "API" para implementar interfaces gráficas de usuário(a)

GTK+-3.24.36

Introdução ao GTK+ 3

O pacote "GTK+ 3" contém bibliotecas usadas para criar interfaces gráficas de usuário(a) para aplicativos.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "GTK+ 3"

Exigidas

at-spi2-core-2.46.0, gdk-pixbuf-2.42.10, libepoxy-1.5.10 e Pango-1.50.12

Recomendadas
Recomendadas (Exigidas se construir o "GNOME")
Opcionais

colord-1.4.6, Cups-2.4.2, GTK-Doc-1.33.2, PyAtSpi2-2.46.0 (para testes), Tracker-3.4.2 e PAPI

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/gtk3

Instalação do GTK+ 3

Instale o "GTK+ 3" executando os seguintes comandos:

mkdir build &&
cd     build &&
meson setup --prefix=/usr           \
            --buildtype=release     \
            -Dman=true              \
            -Dbroadway_backend=true \
            .. &&
ninja

Para testar os resultados você precisa de uma sessão gráfica e, em seguida, emitir "ninja test". Dois testes possivelmente falhem porque a configuração do tempo limite é muito curta.

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 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

-Dbroadway_backend=true: Essa chave habilita a estrutura "HTML5" de retaguarda do "GTK".

-Dman=true: Essa chave permite gerar páginas de manual.

-Dgtk_doc=true: Essa chave habilita construir a documentação. Ela exige o "GTK-Doc-1.33.2".

-Dtracker3=true: Essa chave habilita a função de pesquisa baseada no "Tracker 3" na caixa de diálogo do seletor de arquivos do "GTK+-3". Ela exige o "Tracker-3.4.2".

Configurando o GTK+ 3

Arquivos de Configuração

~/.config/gtk-3.0/settings.ini e /etc/gtk-3.0/settings.ini

Informação de Configuração

Os temas do "GTK+ 3" mudam a aparência de um aplicativo "GTK+ 3". 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+ 3" (por exemplo, o tema "Adwaita" construído no "GTK+ 3"), um tema de ícone (como "oxygen-icons5-5.103.0") e (ou) uma fonte ("Fontes "Dejavu""), [então] 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 GTK+ 3. 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, [então] 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 exibição de aplicativos "GTK+ 3" em um navegador da "web", usando "HTML5" e soquetes da "web"

gtk3-demo

é um aplicativo simples que demonstra algumas das tarefas que conseguem ser feitas com o "GTK+ 3"

gtk3-demo-application

é um aplicativo simples do "GTK+ 3"

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 aplicativo para visualizar temas e pequenas engenhocas do "GTK+ 3"

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 "GTK+ 3" 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 "GTK+ 3" 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 "GTK+ 3"

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.8.3

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "GTK 4"

Exigidas

FriBidi-1.0.12, gdk-pixbuf-2.42.10, graphene-1.10.8, ISO Codes-4.12.0, libepoxy-1.5.10, libxkbcommon-1.5.0, Pango-1.50.12, PyGObject-3.42.2 e wayland-protocols-1.31

Recomendadas
Recomendadas (Exigidas se construir o "GNOME")
Opcionais

colord-1.4.6, Cups-2.4.2, docutils-0.19, FFmpeg-5.1.2 (construído com libvpx-1.13.0), Gi-DocGen-2023.1, Highlight-4.4 (tempo de execução, somente usado pelo "gtk4-demo" para realçamento de sintaxe do código fonte de demonstração), libcloudproviders-0.3.1, sassc-3.6.2, Tracker-3.4.2 e vulkan

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/gtk4

Instalação do GTK 4

Instale o "GTK 4" executando os seguintes comandos:

mkdir build &&
cd     build &&

meson setup --prefix=/usr           \
            --buildtype=release     \
            -Dbroadway-backend=true \
            .. &&
ninja

Se você tiver o "Gi-DocGen-2023.1" instalado e desejar construir a documentação da "API" para esse pacote, [então] emita:

sed "s@'doc'@& / 'gtk-4.8.3'@" -i ../docs/reference/meson.build &&
meson configure -Dgtk_doc=true                                   &&
ninja

Para executar os testes, emita: "meson test --setup x11". Se você estiver em uma sessão do "Wayland", [então] substitua "x11" por "wayland". Uns poucos testes possivelmente falhem.

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.

-Dbroadway-backend=true: Essa chave habilita a estrutura "HTML5" de retaguarda do "GDK".

-Dcloudproviders=enabled: Use essa chave se você tiver o "libcloudproviders-0.3.1" instalado e desejar habilitar o suporte para provedores de nuvem em uma janela de seleção de arquivos.

-Dsysprof=enabled: Use essa chave se você tiver o "sysprof-3.46.0" instalado e desejar habilitar o suporte de rastreamento para aplicativos baseados em "GTK4".

-Dtracker=enabled: Use essa chave se você tiver o "Tracker-3.4.2" instalado e desejar usar a funcionalidade de pesquisa ao executar um seletor de arquivos.

-Dcolord=enabled: Use essa chave se você tiver o "colord-1.4.6" instalado e desejar usar o "colord" com a estrutura de retaguarda de impressão do "CUPS".

-Dgtk_doc=true: Permite construir esse pacote sem "Gi-DocGen-2023.1" instalado. Se tiver "Gi-DocGen-2023.1" instalado e você desejar reconstruir e instalar a documentação da "API", [então] um comando "meson configure" reconfigurará essa opção.

-Dman-pages=true: Use essa chave se você tiver o "docutils-0.19" instalado e desejar gerar as páginas de manual.

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

Os temas do "GTK 4" mudam a aparência de um aplicativo "GTK 4". 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 ícone (como "oxygen-icons5-5.103.0") e (ou) uma fonte ("Fontes "Dejavu""), [então] 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)

GTK Engines-2.20.2

Introdução aos Motores do GTK

O pacote "GTK Engines" contém oito temas/mecanismos e dois motores adicionais para o "GTK2".

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências dos Motores do "GTK"

Exigidas

GTK+-2.24.33

Opcionais

Lua-5.4.4 e Which-2.21 (exigido para a suíte de teste)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/gtk-engines

Instalação dos Motores do GTK

Instale os Motores do "GTK" 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

--enable-lua --with-system-lua: Use essas chaves se você instalou o "Lua" e quer construir o mecanismo de temas do "Lua".

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: libclearlooks.so, libcrux-engine.so, libglide.so, libhcengine.so, libindustrial.so, libmist.so, libredmond95.so e libthinice.so (bibliotecas de motores do "GTK-2")
Diretórios Instalados: /usr/lib/gtk-2.0/2.10.0/engines, /usr/share/gtk-engines, /usr/share/themes/Clearlooks, /usr/share/themes/Crux, /usr/share/themes/Industrial, /usr/share/themes/Mist, /usr/share/themes/Redmond e /usr/share/themes/ThinIce
Temas Instalados: Clearlooks, Crux, Industrial, Mist, Redmond e ThinIce

Descrições Curtas

bibliotecas de motores

são sistemas gerenciadores para temas específicos

Gtkmm-3.24.7

Introdução ao Gtkmm

O pacote "Gtkmm" fornece uma interface "C++" para o "GTK+ 3".

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "Gtkmm"

Exigidas

Atkmm-2.28.3, GTK+-3.24.36 e Pangomm-2.46.3

Opcionais

Doxygen-1.9.6

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/gtkmm3

Instalação do Gtkmm

Instale o "Gtkmm" executando os seguintes comandos:

mkdir gtkmm3-build &&
cd     gtkmm3-build &&

meson --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.7

Explicações do Comando

-Dbuild-documentation=true: Se você tiver instalado o "Doxygen-1.9.6", [então] 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.7}

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"

gtk-vnc-1.3.1

Introdução ao Gtk VNC

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "Gtk VNC"

Exigidas

GnuTLS-3.8.0, GTK+-3.24.36 e libgcrypt-1.10.1

Recomendadas
Opcionais

Cyrus SASL-2.1.28 e PulseAudio-16.1

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/gtk-vnc

Instalação do Gtk VNC

Instale o "Gtk VNC" executando os seguintes comandos:

mkdir build &&
cd     build &&

meson --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

-Dwith-vala=false: Essa chave desabilita a 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "GtkSourceView"

Exigidas

GTK+-3.24.36

Recomendadas
Opcionais

Vala-0.56.4, Valgrind-3.20.0, GTK-Doc-1.33.2, itstool-2.0.7, fop-2.8 (ou dblatex) e Glade

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/gtksourceview

Instalação do GtkSourceView

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "GtkSourceView"

Exigidas

GTK+-3.24.36

Recomendadas
Opcionais

Vala-0.56.4, Valgrind-3.20.0, GTK-Doc-1.33.2, itstool-2.0.7, fop-2.8 (ou dblatex) e Glade

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/gtksourceview4

Instalação do GtkSourceView

Instale o "GtkSourceView" executando os seguintes comandos:

mkdir build &&
cd     build &&

meson --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

-Dgtk_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.6.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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "GtkSourceView"

Exigidas

GTK-4.8.3 e pcre2-10.42

Recomendadas
Opcionais

GTK-Doc-1.33.2, sysprof-3.46.0, Vala-0.56.4 e Valgrind-3.20.0

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/gtksourceview5

Instalação do GtkSourceView

Instale o "GtkSourceView" executando os seguintes comandos:

mkdir build &&
cd     build &&

meson --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

-Dgtk_doc=true: Use essa chave se você tiver o "GTK-Doc-1.33.2" instalado e desejar gerar a documentação da "API".

-Dsysprof=true: Use essa chave se você tiver o "sysprof-3.46.0" instalado e desejar construir com suporte ao 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.9.1

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "imlib2"

Exigidas

Bibliotecas do Xorg

Recomendadas
Opcionais

Doxygen-1.9.6 (para documentação da "API"), libpng-1.6.39, libjpeg-turbo-2.1.5.1, libtiff-4.5.0, x265-20230215 e libid3tag

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/imlib2

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.9.1/html &&
install -v -m644    doc/html/* /usr/share/doc/imlib2-1.9.1/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". O "Doxygen-1.9.6" precisa estar instalado.

Conteúdo

Aplicativos Instalados: imlib2_bumpmap, imlib2_colorspace, imlib2_conv, imlib2_grab, 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.9.1 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_poly

é testar a função "poly" da "imlib2"

imlib2_conv

converte imagens entre formatos

imlib2_grab

tira capturas de tela

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.2.0

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "kColorPicker"

Exigidas

CMake-3.25.2 e Qt-5.15.8

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/kcolorpicker

Instalação do kColorPicker

Instale o "kColorPicker" executando os seguintes comandos:

mkdir build &&
cd     build &&

cmake -DCMAKE_INSTALL_PREFIX=/usr \
      -DCMAKE_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)
Bibliotecas Instaladas: libkColorPicker.a
Diretórios Instalados: /usr/lib/cmake/kColorPicker

kImageAnnotator-0.6.0

Introdução ao kImageAnnotator

"kImageAnnotator" é uma ferramenta para anotar imagens.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "kImageAnnotator"

Exigidas

kcolorpicker-0.2.0

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/kimageannotator

Instalação do kImageAnnotator

Instale o "kImageAnnotator" executando os seguintes comandos:

mkdir build &&
cd     build &&

cmake -DCMAKE_INSTALL_PREFIX=/usr \
      -DCMAKE_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)
Bibliotecas Instaladas: libkImageAnnotator.a
Diretórios Instalados: /usr/include/kImageAnnotator, /usr/lib/cmake/kImageAnnotator e /usr/share/kImageAnnotator

keybinder-0.3.1

Introdução ao keybinder

O pacote "keybinder" contém uma biblioteca de utilitários registrando atalhos globais de teclado do "X".

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "keybinder"

Exigidas

GTK+-2.24.33

Recomendadas
Opcionais

GTK-Doc-1.33.2 e Lua-5.4.4 (atualmente quebrado porque uma versão mais antiga do "Lua" é exigida)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/keybinder

Instalação do keybinder

Instale o "keybinder" executando os seguintes comandos:

./configure --prefix=/usr --disable-lua &&
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-lua: Use essa chave para desabilitar vinculações do "Lua-5.4.4" (atualmente quebradas, porque uma versão mais antiga do "Lua" é exigida).

--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.so e /usr/lib/python2.7/site-packages/keybinder/_keybinder.so
Diretórios Instalados: /usr/lib/python2.7/site-packages/keybinder e /usr/share/gtk-doc/html/keybinder

Descrições Curtas

libkeybinder.so

é a biblioteca que registra atalhos globais de teclado do "X"

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "keybinder-3.0"

Exigidas

GTK+-3.24.36

Recomendadas
Opcionais

GTK-Doc-1.33.2

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/keybinder-3.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.2.2

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "libadwaita"

Exigidas

GTK-4.8.3

Recomendadas
Opcionais

Gi-DocGen-2023.1

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libadwaita

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 o "Gi-DocGen-2023.1" instalado e desejar construir a documentação da "API" para esse pacote, [então] emita:

sed "s/apiversion/'1.2.2'/" -i ../doc/meson.build &&
meson configure -Dgtk_doc=true                     &&
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.

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)

libdazzle-3.44.0

Introdução ao libdazzle

"libdazzle" é uma biblioteca complementar ao "GObject" e "GTK+" que adiciona "APIs" para efeitos especiais de gráfico.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "libdazzle"

Exigidas

GTK+-3.24.36

Recomendadas

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libdazzle

Instalação do libdazzle

Instale o "libdazzle" executando os seguintes comandos:

mkdir build &&
cd     build &&

meson --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: dazzle-list-counters
Biblioteca Instalada: libdazzle-1.0.so
Diretório Instalado: /usr/include/libdazzle-1.0

Descrições Curtas

dazzle-list-counters

lista contadores que estão em uso por um processo

libdazzle-1.0.so

contém funções de "API" para efeitos de gráfico

libhandy-1.8.1

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "libhandy"

Exigidas

GTK+-3.24.36

Recomendadas
Opcionais

GTK-Doc-1.33.2 e Glade

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libhandy1

Instalação do libhandy

Instale o "libhandy" executando os seguintes comandos:

mkdir build &&
cd     build &&

meson --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.

-Dgtk_doc=true: Use essa opção se você tiver o "GTK-Doc-1.33.2" 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.115

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://dri.freedesktop.org/libdrm/libdrm-2.4.115.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 5403981a20c964f4c893ff91393652bd

  • Tamanho da transferência: 459 KB

  • Espaço em disco estimado exigido: 8,6 MB (com os testes)

  • Tempo de construção estimado: menos que 0,1 UPC (com testes) com paralelismo=4

Dependências do "libdrm"

Recomendadas
Opcionais

Cairo-1.17.6 (para testes), CMake-3.25.2 (poderia ser usado para encontrar dependências sem arquivos do "pkgconfig"), docbook-xml-4.5, docbook-xsl-nons-1.79.2, docutils-0.19 e libxslt-1.1.37 (para construir páginas de manual), libatomic_ops-7.6.14 (exigido por arquiteturas sem operações atômicas nativas), Valgrind-3.20.0 e CUnit (para testes de "AMDGPU")

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libdrm

Instalação do Libdrm

Instale o "libdrm" executando os seguintes comandos:

mkdir build &&
cd     build &&

meson setup  --prefix=$XORG_PREFIX \
             --buildtype=release   \
             -Dudev=true           \
             -Dvalgrind=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.

-Dudev=true: Esse parâmetro habilita o suporte para usar o "Udev" em vez do "mknod".

-Dvalgrind=disabled: Esse parâmetro desabilita a construção da "libdrm" com suporte a "valgrind". Isso corrige a construção do "sysprof" e de outros pacotes que usam a "libdrm". Mude esse parâmetro para "enabled" (ou remova-o) se precisar de suporte para o "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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "libepoxy"

Exigidas

Mesa-22.3.5

Opcionais

Doxygen-1.9.6 (para documentação)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libepoxy

Instalação do libepoxy

Instale o "libepoxy" executando os seguintes comandos:

mkdir build &&
cd     build &&

meson --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.

-Ddocs=true: Se você tiver o "Doxygen-1.9.6" instalado, [então] 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"

libglade-2.6.4

Introdução ao libglade

O pacote "libglade" contém bibliotecas "libglade". Elas são úteis para carregar arquivos de interface do "Glade" em um aplicativo em tempo de execução.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "libglade"

Exigidas

libxml2-2.10.3 e GTK+-2.24.33

Opcionais

Python-2.7.18 e GTK-Doc-1.33.2

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libglade

Instalação do libglade

Instale o "libglade" executando os seguintes comandos:

sed -i '/DG_DISABLE_DEPRECATED/d' glade/Makefile.in &&
./configure --prefix=/usr --disable-static &&
make

Para testar os resultados, emita: "make check". Um dos testes, "test-convert", é conhecido por falhar.

Agora, como o(a) usuário(a) "root":

make install

Explicações do Comando

sed -i '/DG_DISABLE_DEPRECATED/d': Algumas das funções do "glib" que a "libglade" usa foram declaradas obsoletas no "glib-2.30". Esse "sed" remove o "CFLAG" "G_DISABLE_DEPRECATED".

--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: libglade-convert (exige o "python")
Biblioteca Instalada: libglade-2.0.so
Diretórios Instalados: /usr/{include/libglade-2.0/glade,share/{gtk-doc/html/libglade, xml/libglade}}

Descrições Curtas

libglade-convert

é usado para converter arquivos antigos da interface do "Glade" para os padrões do "Glade-2.0"

libglade-2.0.so

contém as funções necessárias para carregar os arquivos de interface do "Glade"

libnotify-0.8.1

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "libnotify"

Exigidas

GTK+-3.24.36

Opcionais (Exigidas se construir o "GNOME")

gobject-introspection-1.74.0

Opcionais

GTK-Doc-1.33.2 e xmlto-0.0.28

Exigidas (tempo de execução)

notification-daemon-3.20.0 ou xfce4-notifyd-0.8.1

Nota

"GNOME Shell" e "KDE KWin" fornecem os próprios processos de segundo plano de notificação deles.

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libnotify

Instalação do libnotify

Instale o "libnotify" executando os seguintes comandos:

mkdir build &&
cd     build &&

meson --prefix=/usr       \
      --buildtype=release \
      -Dgtk_doc=false     \
      -Dman=false .. &&
ninja

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

ninja install &&
mv -v /usr/share/doc/libnotify{,-0.8.1}

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.

-Dgtk_doc=false: Remova esse parâmetro se o "GTK-Doc" estiver instalado e você desejar reconstruir e instalar a documentação da "API".

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 adequadamente usando uma plataforma LFS 11.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.74.5, ISO Codes-4.12.0, libxml2-2.10.3 e Bibliotecas do Xorg

Recomendadas
Opcionais

GTK-Doc-1.33.2 e Vala-0.56.4

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libxklavier

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.50.12

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "Pango"

Exigidas

Fontconfig-2.14.2 (precisa ser construído com o "FreeType-2.13.0" usando o "HarfBuzz-7.0.0"), FriBidi-1.0.12 e GLib-2.74.5

Recomendadas
Opcionais

Fontes Cantarell (para testes), sysprof-3.46.0, Gi-DocGen-2023.1 (para gerar documentação), help2man e libthai

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/pango

Instalação do Pango

Instale o "Pango" executando os seguintes comandos:

mkdir build &&
cd     build &&

meson --prefix=/usr --buildtype=release --wrap-mode=nofallback .. &&
ninja

Se você tiver o "Gi-DocGen-2023.1" instalado e desejar construir a documentação da "API" para esse pacote, [então] emita:

sed "/docs_dir =/s@\$@ / 'pango-1.50.12'@" -i ../docs/meson.build &&
meson configure -Dgtk_doc=true                                     &&
ninja

Para testar os resultados, emita: "ninja test". Dois testes, "test-font" e "test-layout" são conhecidos por falharem.

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.

-Dintrospection=disabled: Use essa chave se não quiser usar o "gobject-introspection-1.74.0".

--wrap-mode=nofallback: Essa chave impede que o meson use substitutos de subprojeto para quaisquer declarações de dependência nos arquivos de construção, impedindo-o de baixar qualquer dependência opcional que não esteja instalada 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.50.12 (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.3

Introdução ao Pangomm

O pacote "Pangomm" fornece uma interface "C++" para o "Pango".

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "Pangomm"

Exigidas

libcairomm-1.14.0, GLibmm-2.66.5 e Pango-1.50.12

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/pangomm

Instalação do Pangomm

Instale o "Pangomm" executando os seguintes comandos:

mkdir build &&
cd     build &&

meson --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.3}

Descrições Curtas

libpangomm-1.4.so

contém as classes da "API" do "Pango"

Qt-5.15.8

Introdução ao Qt5

"Qt5" é uma estrutura de aplicação multiplataforma que é amplamente usada para desenvolver logiciário de aplicação com uma Interface Gráfica de Usuário(a) ("IGU") (casos nos quais o "Qt5" é classificado como um kit de ferramentas de pequena engenhoca) e também usado para desenvolver aplicativos não "IGU", como ferramentas de linha de comando e consoles para servidores. Um(a) dos(as) principais usuários(as) do "Qt" é o "KDE Frameworks 5 (KF5)".

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Transferências Adicionais

Dependências do "Qt5"

Exigidas

Bibliotecas do Xorg

Recomendadas
Opcionais

BlueZ-5.66 (para o "sdpscanner" e, em tempo de execução, para o módulo "QtConnectivity"), ibus-1.5.27, libinput-1.22.1, MariaDB-10.6.12 ou MySQL, pciutils-3.9.0, PostgreSQL-15.2, PulseAudio-16.1, SDL2-2.26.3, unixODBC-2.3.11, assimp, Flite, Firebird, FreeTDS, libproxy, OpenAL, speech-dispatcher, tslib e Vulkan

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/qt5

Configurando o prefixo da instalação

Instalando em "/opt/qt5"

Os(As) editores(as) do BLFS recomendam instalar o "Qt5" em um diretório diferente de "/usr", ou seja, "/opt/qt5". Para fazer isso, configure a seguinte variável de ambiente:

export QT5PREFIX=/opt/qt5

Dica

Ocasionalmente, os caminhos da instalação são rigidamente codificados em arquivos instalados. Essa é a razão pela qual "/opt/qt5" é usado como prefixo da instalação em vez de "/opt/qt-5.15.8". Para criar um diretório versionado do "Qt5" depois que a instalação estiver completa, você pode renomear o diretório e criar um link simbólico:

mkdir -pv /opt/qt-5.15.8
ln -sfnv qt-5.15.8 /opt/qt5

Mais tarde, você possivelmente quera instalar outras versões do "Qt5". Para fazer isso, apenas remova o link simbólico e use "/opt/qt5" como prefixo novamente. Qual versão do "Qt5" você usa depende somente de onde o link simbólico aponta.

Nota

Se o "qca-2.3.5" tiver sido instalado e você estiver reinstalando ou atualizando esse pacote, então o "qca" precisará ser reinstalado.

Instalação do Qt5

Atenção

Se o "Qt5" estiver sendo reinstalado no mesmo diretório de uma instância existente, [então] execute os comandos feitos pelo(a) "root", como "make install", a partir de um console ou gerenciador de janelas não baseado em "Qt5". Eles sobrescrevem bibliotecas do "Qt5" que não deveriam estar em uso durante o processo de instalação.

Cuidado

Se você não instalou alguma das dependências recomendadas, [então] examine a saída gerada de "./configure --help" para verificar como desabilitá-las ou usar versões internas incluídas no "tarball" do fonte.

Nota

O tempo de construção, e espaço, exigido para o "Qt5" completo é bastante longo. As instruções abaixo não constroem os tutoriais e exemplos. Remover-se a linha -nomake criará uma construção completa.

Nota

Os(As) editores(as) do BLFS não recomendam a instalação do "Qt5" na hierarquia "/usr" porque fica difícil encontrar componentes e atualizar para uma nova versão. Se você realmente deseja instalar o "Qt5" em "/usr", [então] os diretórios precisam ser especificados explicitamente. Nesse caso, configure "QT5PREFIX=/usr" e adicione o seguinte aos argumentos de configuração abaixo:

            -archdatadir    /usr/lib/qt5                 \
            -bindir         /usr/bin                    \
            -plugindir      /usr/lib/qt5/plugins        \
            -importdir      /usr/lib/qt5/imports        \
            -headerdir      /usr/include/qt5            \
            -datadir        /usr/share/qt5              \
            -docdir         /usr/share/doc/qt5          \
            -translationdir /usr/share/qt5/translations \
            -examplesdir    /usr/share/doc/qt5/examples

Primeiro aplique um remendo para obter as correções selecionadas pelo "KDE" para os aqueles módulos que sejam exigidos pelos pacotes mencionados neste livro:

patch -Np1 -i ../qt-everywhere-opensource-src-5.15.8-kf5-1.patch

O remendo é suposto de ser usado em um repositório "git", porque o comportamento do comando "configure" abaixo é mudado nesse caso. É suficiente criar um diretório ".git" no diretório "qmake", onde o conjunto de comandos sequenciais "configure" seja executado:

mkdir -pv qtbase/.git

Instale Qt5 executando os seguintes comandos:

./configure -prefix $QT5PREFIX                         \
            -sysconfdir /etc/xdg                      \
            -confirm-license                          \
            -opensource                               \
            -dbus-linked                              \
            -openssl-linked                           \
            -system-harfbuzz                          \
            -system-sqlite                            \
            -nomake examples                          \
            -no-rpath                                 \
            -journald                                 \
            -skip qtwebengine                         &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

make install

Remova referências ao diretório de construção dos arquivos de dependência de biblioteca ("prl") instalados executando o seguinte comando como o(a) usuário(a) "root":

find $QT5PREFIX/ -name \*.prl \
    -exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d' {} \;

Instale imagens e crie entradas de menu para aplicativos instalados. A variável "QT5BINDIR" é usada aqui para apontar para o diretório dos programas executáveis. Se você tiver mudado o "bindir" acima, [então] "QT5BINDIR" precisará ser ajustada abaixo. Certifique-se de que a variável "QT5BINDIR" esteja definida no ambiente do(a) "root" e como o(a) usuário(a) "root":

QT5BINDIR=$QT5PREFIX/bin

install -v -dm755 /usr/share/pixmaps/                  &&

install -v -Dm644 qttools/src/assistant/assistant/images/assistant-128.png \
                  /usr/share/pixmaps/assistant-qt5.png &&

install -v -Dm644 qttools/src/designer/src/designer/images/designer.png \
                  /usr/share/pixmaps/designer-qt5.png  &&

install -v -Dm644 qttools/src/linguist/linguist/images/icons/linguist-128-32.png \
                  /usr/share/pixmaps/linguist-qt5.png  &&

install -v -Dm644 qttools/src/qdbus/qdbusviewer/images/qdbusviewer-128.png \
                  /usr/share/pixmaps/qdbusviewer-qt5.png &&

install -dm755 /usr/share/applications &&

cat > /usr/share/applications/assistant-qt5.desktop << EOF
[Desktop Entry]
Name=Qt5 Assistant
Comment=Mostra documentação e exemplos do Qt5
Exec=$QT5BINDIR/assistant
Icon=assistant-qt5.png
Terminal=false
Encoding=UTF-8
Type=Application
Categories=Qt;Development;Documentation;
EOF

cat > /usr/share/applications/designer-qt5.desktop << EOF
[Desktop Entry]
Name=Qt5 Designer
GenericName=Interface Designer
Comment=Projetar GUIs para aplicativos do Qt5
Exec=$QT5BINDIR/designer
Icon=designer-qt5.png
MimeType=application/x-designer;
Terminal=false
Encoding=UTF-8
Type=Application
Categories=Qt;Development;
EOF

cat > /usr/share/applications/linguist-qt5.desktop << EOF
[Desktop Entry]
Name=Qt5 Linguist
Comment=Adicionar traduções a aplicativos do Qt5
Exec=$QT5BINDIR/linguist
Icon=linguist-qt5.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-qt5.desktop << EOF
[Desktop Entry]
Name=Qt5 QDbusViewer
GenericName=D-Bus Debugger
Comment=Depurar aplicativos do D-Bus
Exec=$QT5BINDIR/qdbusviewer
Icon=qdbusviewer-qt5.png
Terminal=false
Encoding=UTF-8
Type=Application
Categories=Qt;Development;Debugger;
EOF

Alguns pacotes, como o "VLC-3.0.18", procuram por certos executáveis com um sufixo "-qt5". Execute o seguinte comando como o(a) usuário(a) "root" para criar os links simbólicos necessários:

for file in moc uic rcc qmake lconvert lrelease lupdate; do
   ln -sfrvn $QT5BINDIR/$file /usr/bin/$file-qt5
done

Explicações do Comando

sed ...: Permite usar o "Python 3" em vez do "Python 2". Esse comando destrói a construção do "QtWebEngine", de forma que não o use se você remover a chave "-skip qtwebengine".

-confirm-license: Aceita a licença sem avisar o(a) usuário(a) durante a configuração.

-opensource: Instale a versão de fonte aberto do "Qt".

-nomake examples: Essa chave desabilita a construção dos aplicativos de exemplo incluídos no "tarball" do fonte. Remova-a se tu quiseres construí-los.

-system-sqlite: Essa chave habilita o uso da versão do sistema do "SQLite".

-dbus-linked -openssl-linked: Essas chaves habilitam a vinculação explícita das bibliotecas do "D-Bus" e do "OpenSSL" no "Qt5" em vez de abri-las via "dlopen()".

-journald: Essa chave permite enviar mensagens "Qt" para o sistema de registro "journald".

-skip qtwebengine: Essa chave desabilita a construção do "QtWebEngine". Os(As) editores(as) do BLFS optaram por construir o "qtwebengine-5.15.12" separadamente.

-system-harfbuzz: Essa chave habilita o uso da versão do sistema do "Harfbuzz".

Configurando o Qt5

Informação de Configuração

Se o "Sudo-1.9.13p1" estiver instalado, [então] "QT5DIR" 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 += QT5DIR
EOF
Se você instalou o "Qt5" em "/usr"

Se você instalou o "Qt5" em "/usr", [então] crie uma variável de ambiente necessária para certos pacotes. Como o(a) usuário(a) "root":

cat > /etc/profile.d/qt5.sh << "EOF"
# Inicia /etc/profile.d/qt5.sh

QT5DIR=/usr
export QT5DIR
pathappend $QT5DIR/bin

# Termina /etc/profile.d/qt5.sh
EOF
Se você não instalou o "Qt5" em "/usr"

Se instalou o "Qt5" em um local diferente de "/usr", [então] você necessita atualizar os seguintes arquivos de configuração, de forma que o "Qt5" 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/qt5/lib

# Termina adição do Qt
EOF

ldconfig

Como (a) usuário(a) "root", crie o arquivo "/etc/profile.d/qt5.sh":

cat > /etc/profile.d/qt5.sh << "EOF"
# Inicia /etc/profile.d/qt5.sh

QT5DIR=/opt/qt5

pathappend $QT5DIR/bin           PATH
pathappend $QT5DIR/lib/pkgconfig PKG_CONFIG_PATH

export QT5DIR

# Termina /etc/profile.d/qt5.sh
EOF

Conteúdo

Aplicativos Instalados: assistant, balsam, canbusutil, designer, fixqt4headers.pl, lconvert, linguist, lprodump, lrelease, lrelease-pro, lupdate, lupdate-pro, meshdebug, moc, pixeltool, qcollectiongenerator, qdbus, qdbuscpp2xml, qdbusviewer, qdbusxml2cpp, qdistancefieldgenerator, qdoc, qgltf, qhelpgenerator, qlalr, qmake, qml, qmlcachegen, qmleasing, qmlformat, qmlimportscanner, qmllint, qmlmin, qmlplugindump, qmlpreview, qmlprofiler, qmlscene, qmltestrunner, qmltime, qmltyperegistrar, qscxmlc, qtattributionscanner, qtdiag, qtpaths, qtplugininfo, qtwaylandscanner, qvkgen, rcc, repc, sdpscanner, syncqt.pl, tracegen, uic, xmlpatterns e xmlpatternsvalidator
Bibliotecas Instaladas: libQt53DAnimation.so, libQt53DCore.so, libQt53DExtras.so, libQt53DInput.so, libQt53DLogic.so, libQt53DQuick.so, libQt53DQuickAnimation.so, libQt53DQuickExtras.so, libQt53DQuickInput.so, libQt53DQuickRender.so, libQt53DQuickScene2D.so, libQt53DRender.so, libQt5AccessibilitySupport.a, libQt5Bluetooth.so, libQt5Bodymovin.so, libQt5Bootstrap.a, libQt5Charts.so, libQt5Concurrent.so, libQt5Core.so, libQt5DataVisualization.so, libQt5DBus.so, libQt5DesignerComponents.so, libQt5Designer.so, libQt5DeviceDiscoverySupport.a, libQt5EdidSupport.a, libQt5EglFSDeviceIntegration.so, libQt5EglFsKmsSupport.so, libQt5EglSupport.a, libQt5EventDispatcherSupport.a, libQt5FbSupport.a, libQt5FontDatabaseSupport.a, libQt5Gamepad.so, libQt5GlxSupport.a, libQt5Gui.so,libQt5Help.so, libQt5InputSupport.a, libQt5KmsSupport.a, libQt5LinuxAccessibilitySupport.a, libQt5Location.so, libQt5Multimedia.so, libQt5MultimediaGstTools.so, libQt5MultimediaQuick.so, libQt5MultimediaWidgets.so, libQt5Network.so, libQt5NetworkAuth.so, libQt5Nfc.so, libQt5OpenGLExtensions.a, libQt5OpenGL.so, libQt5PacketProtocol.a, libQt5PlatformCompositorSupport.a, libQt5Positioning.so, libQt5PositioningQuick.so, libQt5PrintSupport.so, libQt5Purchasing.so, libQt5Qml.so, libQt5QmlDebug.a, libQt5QmlDevTools.a, libQt5QmlModels.so, libQt5QmlWorkerScript.so, libQt5Quick.so, libQt5Quick3D.so, libQt5Quick3DAssetImport.so, libQt5Quick3DRender.so, libQt5Quick3DRuntimeRender.so, libQt5Quick3DUtils.so, libQt5QuickControls2.so, libQt5QuickParticles.so, libQt5QuickShapes.so, libQt5QuickTemplates2.so, libQt5QuickTest.so, libQt5QuickWidgets.so, libQt5RemoteObjects.so, libQt5Script.so, libQt5ScriptTools.so, libQt5Scxml.so, libQt5Sensors.so, libQt5SerialBus.so, libQt5SerialPort.so, libQt5ServiceSupport.a, libQt5Sql.so, libQt5Svg.so, libQt5Test.so, libQt5TextToSpeech.so, libQt5ThemeSupport.a, libQt5UiTools.a, libQt5VirtualKeyboard.so, libQt5WaylandClient.so, libQt5WaylandCompositor.so, libQt5WebChannel.so, libQt5WebSockets.so, libQt5WebView.so, libQt5Widgets.so, libQt5X11Extras.so, libQt5XcbQpa.so, libQt5XkbCommonSupport.a, libQt5Xml.so, libQt5XmlPatterns.so e vários "plugins" sob "/opt/qt5/{plugins,qml}"
Diretórios Instalados: /usr/include/qt5, /usr/lib/qt5, /usr/share/doc/qt5 e /usr/share/qt5 OU /opt/qt5 e /opt/qt-5.15.8

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

fixqt4headers.pl

é um conjunto de comandos sequenciais para substituir todas as inclusões de estilo do "Qt 4" pelas inclusões do "Qt 5"

lconvert

é parte da cadeia de ferramentas "Linguist" do "Qt5". Ela pode ser usada como uma ferramenta independente para converter e filtrar arquivos de dados de tradução

linguist

fornece suporte para tradução de 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

lrelease-pro

extrai informações do projeto a partir de projetos "qmake" e as passa para o "lrelease"

lupdate

encontra as sequências de caracteres traduzíveis nos arquivos especificados de fonte, cabeçalho e interface do "Qt Designer" e armazena as mensagens extraídas em arquivos de tradução para serem processadas pelo "lrelease"

lupdate-pro

lê um arquivo de projeto do "Qt" e passa as informações coletadas para o "lupdate"

meshdebug

exibe informações a respeito de arquivos de malha do "qtquick-3d"

moc

gera código de suporte de meta objeto do "Qt"

pixeltool

é um ampliador de área de trabalho e conforme você move o mouse pela tela ele mostrará o conteúdo ampliado na janela dele

qcollectiongenerator

processa e converte arquivos de ajuda do "Qt"

qdbuscpp2xml

pega um arquivo de fonte do "C++" e gera uma definição "XML" do "D-Bus" da interface

qdbus

lista serviços disponíveis, caminhos de objetos, métodos, sinais e propriedades de objetos em um barramento

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 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 logiciário

qgltf

importa uma variedade de formatos de modelos "3D" e exporta para ativos "glTF", otimizados e de carregamento rápido, incorporados em arquivos de recursos do "Qt"

qhelpgenerator

é uma ferramenta usada para gerar um arquivo comprimido de ajuda do "Qt"

qlalr

é uma ferramenta usada para gerar código a partir de especificações gramaticais

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"

qmlcachegen

suporta a criação de arquivos de "cache" em tempo de construção

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"

qmlimportscanner

é uma ferramenta usada para importar arquivos "QML" a partir de um diretório

qmllint

é um verificador de sintaxe para arquivos "QML"

qmlmin

remove comentários e caracteres de esquema de um arquivo "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 da aplicação estar completa

qmltestrunner

é uma ferramenta usada para fazer testes

qscxml

converte um arquivo "input.scxml" em um arquivo de cabeçalho e "cpp"

qtattributionsscanner

processa arquivos "qt_attribution.json" em fontes do "Qt"

qtdiag

é uma ferramenta para noticiar informações de diagnóstico a respeito do "Qt" e 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"

qtwaylandscanner

converte arquivos de especificações do "Wayland" em cabeçalhos "C++" e código necessário para o "QtWayland"

qvkgen

converte arquivos de especificações do "Vulkan" em cabeçalhos e código "C++"

rcc

é um compilador de recursos usado em conjunto com o projetista

repc

é o "Replica Compiler", que gera arquivos de cabeçalho "QObject" baseados em um arquivo de definição de "API"

sdpscanner

realiza uma varredura do "Session Description Protocol" em um dispositivo remoto, usando o servidor "SDP" representado pelo dispositivo local "Bluetooth"

syncqt.pl

é um conjunto de comandos sequenciais para criar os cabeçalhos de encaminhamento nos diretórios de inclusão. É uma ferramenta interna de desenvolvimento

tracegen

é um gerador de rastreamento para o "LTTng" ou o "ETW"

uic

é um compilador "Qt" de interface de usuário(a)

xmlpatterns

fornece suporte para validação de esquemas "XPath", "XQuery", "XSLT" e "XML"

xmlpatternsvalidator

é uma ferramenta usada para validar documentos "XML"

QtWebEngine-5.15.12

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" sempre tem preferido fazer lançamentos ao mesmo tempo que o resto do "Qt" (em vez de adicionar correções de emergência), mas com versões estáveis sendo lançadas depois da versão atual de desenvolvimento. Agora que eles(as) desejam migrar para o "Qt6", os lançamentos 5.15.3 e posteriores do "Qt-5.15" estão inicialmente disponíveis somente para clientes pagantes. "QtWebEngine" é uma exceção por causa da licença "LGPL" dele, mas levar os fontes "git" (com o submódulo bifurcado do "Chromium") para uma posição onde eles sejam construídos com sucesso em um sistema atual do BLFS pode exigir muito esforço e, portanto, atualizações para o livro possivelmente sejam atrasadas.

Parece provável que as futuras versões da série 5.15 também serão lançadas muito depois das vulnerabilidades do "Chromium" serem conhecidas, mas correções para o "QtWebEngine" podem ser encontradas no "git" e os(as) editores(as) consideram que as vulnerabilidades conhecidas nos navegadores deveriam ser corrigidas.

O "tarball" vinculado abaixo foi criado a partir da ramificação 5.15 do "git" e da "87-branch" do submódulo "chromium" (que é bifurcada a partir do "Chromium"). Veja-se o arquivo "GIT-VERSIONS" no "tarball" para detalhes dos "commits" mais recentes.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.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) núcleos e trinta e dois (32) GB de memória.

Para contornar isso, vejam-se as Explicações do Comando abaixo.

Nota

Se estiver atualizando e tiver instalado uma versão mais recente do "ICU-72.1" desde a última instalação do "Qt-5.15.8", [então] você precisará reinstalar o "Qt5" antes de atualizar, caso contrário, o link final desse pacote falhará com um aviso de que a versão das bibliotecas "icu" necessárias para "libQt5Core.so" possivelmente conflitem com a versão usada para esse pacote.

Excepcionalmente, o sistema de construção "GN" fornecido (usado para criar os arquivos "Ninja") exige uma "libstdc++.a" estática, embora as bibliotecas instaladas usem corretamente a versão compartilhada. Se essa biblioteca estática não estiver presente, [então] a construção falhará muito rapidamente. Por favor, observe que se você tentar construir o "webengine" como parte do "Qt" e a biblioteca estática não estiver disponível, [então] essa construção será, ou concluída sem instalar o "webengine" ou, do contrário, falhará durante a instalação (ambas as variantes foram observadas em 5.12 .0).

Informação do Pacote

Transferências Adicionais

Dependências do "qtwebengine"

Exigidas

nodejs-18.14.1, nss-3.88.1, pciutils-3.9.0 e Qt-5.15.8

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

libevent-2.1.12, MIT Kerberos V5-1.20.1, pipewire-0.3.66, Poppler-23.02.0, jsoncpp, libsrtp, snappy

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/qtwebengine

Instalação do qtwebengine

Aplique um remendo para corrigir vários problemas que podem impedir a construção de completar e para forçá-la a usar o "python3":

patch -Np1 -i ../qtwebengine-5.15.12-build_fixes-1.patch

Aplique um remendo que resolva problemas ao construir com o "ffmpeg-5":

patch -Np1 -i ../qtwebengine-5.15.12-ffmpeg5_fixes-1.patch

Embora o remendo "build_fixes" tenha garantido que o "git" não seja invocado durante a construção, o sistema de construção tem regras labirínticas de complexidade bizantina e, em particular, tentar construir sem dois diretórios ".git" o levará a eventualmente cair em código inesperado e não construível que referencia um cabeçalho privado que não foi criado. Evite isso criando os diretórios exigidos:

mkdir -pv .git src/3rdparty/chromium/.git

Como essa versão do "qtwebengine" se destina a um lançamento posterior aos lançamentos públicos atuais, mude-a para construir para "qt-5.15.8" usando um "sed":

sed -e '/^MODULE_VERSION/s/5.*/5.15.8/' -i .qmake.conf

Agora, certifique-se de que os cabeçalhos locais estejam disponíveis quando não construir como parte do "Qt-5.15.8" completo:

find -type f -name "*.pr[io]" |
   xargs sed -i -e 's|INCLUDEPATH += |&$$QTWEBENGINE_ROOT/include |'

Em seguida, permita que a biblioteca "pulseaudio" seja vinculada em tempo de construção, em vez de em tempo de execução. Isso também evita um problema com o "pulseaudio" mais recente:

sed -e '/link_pulseaudio/s/false/true/' \
     -i src/3rdparty/chromium/media/media_options.gni

A seguir, corrija as ferramentas de construção, de forma que elas possam ser executadas com "Python-3.11+":

sed -e 's/\^(?i)/(?i)^/' \
     -i src/3rdparty/chromium/tools/metrics/ukm/ukm_model.py &&
sed -e "s/'rU'/'r'/" \
     -i src/3rdparty/chromium/tools/grit/grit/util.py

Finalmente, corrija uma mudança no sistema de construção que permite que os(as) desenvolvedores(as) dele passem, por exemplo, "-j20" para o "make" (para testes rápidos de algumas áreas), mas quebra a construção com o uso do LFS da variável de ambiente "NINJAJOBS":

sed -i 's/NINJAJOBS/NINJA_JOBS/' src/core/gn_run.pro

Instale o "qtwebengine" executando os seguintes comandos:

mkdir build &&
cd     build &&
qmake .. -- -system-ffmpeg -proprietary-codecs -webengine-icu &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

make install

Remova referências ao diretório de construção dos arquivos instalados de dependência de biblioteca ("prl") executando os seguintes comandos como o(a) usuário(a) "root":

find $QT5DIR/ -name \*.prl \
    -exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d' {} \;

Explicações do Comando

qmake: Isso construirá a cópia incluída do "ninja" se ele já não estiver instalado e a usará para configurar a construção.

-- -system-ffmpeg -proprietary-codecs -webengine-icu: Se quaisquer opções forem passadas para o "qmake", [então] elas precisam vir depois de "--" que precisa seguir ".." que aponta para o diretório principal. As opções aqui fazem com que ele use o "ffmpeg" do sistema e o "icu" do sistema. A opção "-proprietary-codecs" permite que o "ffmpeg" decodifique os codificadores "H264" e "H265". Se construído como parte do "Qt5" completo, [então] o "icu" do sistema será usado automaticamente (somente) pelo "Qt5Core" se ele estiver disponível, mas, a menos que essa opção seja usada, o "webengine" sempre usará a cópia dele enviada do "icu", adicionando tempo e espaço à construção.

-webengine-jumbo-build 0: Se isso for adicionado ao comando "qmake", [então] fará com que o "Jumbo Build Merge Limit" seja informado como "no" em vez de oito (08). Isso desliga a construção "jumbo". Algumas distribuições fazem isso para obter uma construção menor em algumas arquiteturas como "MIPS". No "x86_64" pode economizar um pouco de espaço na construção, mas o tempo de construção aumentará muito.

-webengine-kerberos: Adicione isso se tiver instalado o "MIT Kerberos V5-1.20.1" e desejar se conectar a partir de um navegador usando o "QtWebEngine" a um servidor "web" que exija que você se conecte via "kerberos".

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 , (como acontece em alguns arquivos de unidade, para proteção), [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 --->
     [ ]     User namespace                    [CONFIG_USER_NS]
     [*]     PID namespace                     [CONFIG_PID_NS]

Conteúdo

Aplicativos Instalados: qtwebengine_convert_dict e QtWebEngineProcess (em $QT5DIR/libexec)
Bibliotecas Instaladas: libQt5Pdf.so, libQt5PdfWidgets.so, libQt5WebEngineCore.so, libQt5WebEngine.so e libQt5WebEngineWidgets.so
Diretórios Instalados: $QT5DIR/include/QtPdf, $QT5DIR/include/QtPdfWidgets, $QT5DIR/include/QtWebEngine, $QT5DIR/include/QtWebEngineCore, $QT5DIR/include/QtWebEngineWidgets, $QT5DIR/qml/QtWebEngine e $QT5DIR/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)

libQtWebEngine.so

fornece tipos "QML" para renderizar conteúdo da web dentro de um aplicativo "QML"

libQtWebEngineCore.so

fornece "API" pública compartilhada por "QtWebEngine" e "QtWebEngineWidgets"

libQtWebEngineWidgets.so

fornece um mecanismo de navegador da "web", bem como classes "C++" para renderizar e interagir com o conteúdo da "web"

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "startup-notification"

Exigidas

Bibliotecas do Xorg e xcb-util-0.4.1

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/startup-notification

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

Tepl-6.4.0

Introdução ao Tepl

O pacote "Tepl" contém uma biblioteca que facilita o desenvolvimento de editores de texto e "IDEs" baseados em "GtkSourceView".

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "Tepl"

Exigidas

amtk-5.6.1, gtksourceview4-4.8.4, ICU-72.1 e uchardet-0.0.8

Opcionais

GTK-Doc-1.33.2 (para documentação) e Valgrind-3.20.0

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/tepl

Instalação do Tepl

Instale o "Tepl" executando os seguintes comandos:

mkdir tepl-build &&
cd     tepl-build &&

meson setup --prefix=/usr       \
            --buildtype=release \
            -Dgtk_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.

-Dgtk_doc=false: Desabilita a construção da documentação da "API". Remova se você tiver o "GTK-Doc-1.33.2" instalado e desejar construir a documentação da "API".

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: libtepl-6.so
Diretórios Instalados: /usr/include/tepl-6 e /usr/share/gtk-doc/html/tepl-6.0

Descrições Curtas

libtepl-6.so

contém funções de conveniência para aplicativos baseados em "GtkSourceView4"

WebKitGTK-2.38.5

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://webkitgtk.org/releases/webkitgtk-2.38.5.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: de05d314a3ecb5fb3835e4d84f8f466d

  • Tamanho da transferência: 31 MB

  • Espaço em disco estimado exigido: 1,1 GB (174 MB instalado)

  • Tempo de construção estimado: 34 UPC (usando paralelismo = 4)

Dependências do "WebKitGTK"

Exigidas

Cairo-1.17.6, CMake-3.25.2, gst-plugins-base-1.22.0, gst-plugins-bad-1.22.0, GTK+-3.24.36, ICU-72.1, Little CMS-2.14, libgudev-237, libsecret-0.20.5, libsoup-3.2.2, libtasn1-4.19.0, libwebp-1.3.0, Mesa-22.3.5, OpenJPEG-2.5.0, Ruby-3.2.1, SQLite-3.40.1, Which-2.21 e wpebackend-fdo-1.14.0

Recomendadas
Opcionais

bubblewrap-0.7.0, Gi-DocGen-2023.1, GTK-4.8.3, HarfBuzz-7.0.0, Wayland-1.21.0, WOFF2-1.0.2, ccache, Hyphen, libavif, libmanette e xdg-dbus-proxy

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/webkitgtk

Instalação do WebKitGTK

Instalação do "WebKitGTK"

Instale o "WebKitGTK" executando os seguintes comandos:

mkdir -vp build &&
cd         build &&

cmake -DCMAKE_BUILD_TYPE=Release  \
      -DCMAKE_INSTALL_PREFIX=/usr \
      -DCMAKE_SKIP_RPATH=ON       \
      -DPORT=GTK                  \
      -DLIB_INSTALL_DIR=/usr/lib  \
      -DUSE_LIBHYPHEN=OFF         \
      -DENABLE_GAMEPAD=OFF        \
      -DENABLE_MINIBROWSER=ON     \
      -DENABLE_DOCUMENTATION=OFF  \
      -DUSE_WOFF2=OFF             \
      -DUSE_WPE_RENDERER=ON       \
      -DENABLE_BUBBLEWRAP_SANDBOX=OFF \
      -Wno-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

Como a opção "-DENABLE_DOCUMENTATION=OFF" é usada, a documentação não é reconstruída nem instalada agora. Se precisar da documentação, [então] você pode, ou instalar o "Gi-DocGen-2023.1" e remover essa opção do comando "cmake", ou instalar a documentação pré construída:

install -vdm755 /usr/share/gtk-doc/html/{jsc-glib,webkit2gtk{,-web-extension}}-4.1 &&
install -vm644  ../Documentation/jsc-glib-4.1/*               \
                /usr/share/gtk-doc/html/jsc-glib-4.1         &&
install -vm644  ../Documentation/webkit2gtk-4.1/*            \
                /usr/share/gtk-doc/html/webkit2gtk-4.1       &&
install -vm644  ../Documentation/webkit2gtk-web-extension-4.1/* \
                /usr/share/gtk-doc/html/webkit2gtk-web-extension-4.1

Explicações do Comando

-DUSE_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).

-DENABLE_DOCUMENTATION=OFF: Essa chave desabilita a regeneração da documentação. Remova essa chave se você tiver o "Gi-DocGen-2023.1" instalado e desejar gerar novamente a documentação.

-DENABLE_GAMEPAD=OFF: Essa chave desabilita o suporte ao "gamepad". Remova essa chave se você tiver o "libmanette" instalado e desejar ativá-lo.

-DENABLE_MINIBROWSER=ON: Essa chave habilita compilar e instalar o "MiniBrowser".

-DUSE_WPE_RENDERER=ON: Essa chave usa o renderizador "WPE", que é recomendado pelo(a) desenvolvedor(a).

-DENABLE_BUBBLEWRAP_SANDBOX=OFF: Remova essa chave se os pacotes opcionais "bubblewrap-0.7.0" e "xdg-dbus-proxy" estiverem instalados.

-DUSE_SYSTEM_MALLOC=ON: Essa chave habilita construir contra o "malloc" instalado no sistema.

-DENABLE_GEOLOCATION=OFF: Use essa chave se você não quiser instalar o "GeoClue-2.7.0".

-DUSE_WOFF2=ON: Use essa chave se o pacote opcional "WOFF2-1.0.2" estiver instalado. Isso adiciona suporte adicional para fontes.

Conteúdo

Aplicativo Instalado: WebKitWebDriver
Bibliotecas Instaladas: libjavascriptcoregtk-4.1.so e libwebkit2gtk-4.1.so
Diretórios Instalados: /usr/include/webkitgtk-4.1, /usr/lib{,exec}/webkit2gtk-4.1 e /usr/share/gtk-doc/html/{jsc-glib,webkit2gtk{,-web-extension}}-4.1

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"

libwebkit2gtk-4.1.so

contém as funções da "API" do "WebKit2"

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", "KDE", "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-43.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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "GDM"

Exigidas

AccountsService-22.08.8, GTK+-3.24.36, ISO Codes-4.12.0, itstool-2.0.7, libcanberra-0.30, libdaemon-0.14 e Linux-PAM-1.5.2

Opcionais

keyutils-1.6.1

Dependências de Tempo de Execução

gnome-session-43.0, gnome-shell-43.3 e Systemd-252

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/gdm

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:

mkdir build &&
cd     build &&

meson --prefix=/usr               \
      --buildtype=release         \
      -Dgdm-xsession=true         \
      -Drun-dir=/run/gdm ..
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.

-Dinitial-vt=7: Use essa chave para fazer o "GDM" iniciar no "VT7" em vez do primeiro" VT" livre.

-Ddefault-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".

-Dgdm-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".

Unidade do systemd

Para iniciar o processo de segundo plano "gdm" na inicialização, habilite a unidade do "systemd" instalada anteriormente executando o seguinte comando como o(a) usuário(a) "root":

systemctl enable gdm

Conteúdo

Aplicativos Instalados: gdm, gdmflexiserver e gdm-screenshot
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"

gdm-screenshot

é uma ferramenta de captura de tela para o "GDM"

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 adequadamente usando uma plataforma LFS 11.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.18.0 (para o saudador), libgcrypt-1.10.1, itstool-2.0.7, Linux-PAM-1.5.2 e Xorg-Server-21.1.7 (tempo de execução)

Recomendadas
Opcionais

AccountsService-22.08.8 (tempo de execução), at-spi2-core-2.46.0, GTK-Doc-1.33.2, Qt-5.15.8, libido e libindicator

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/lightdm

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

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.8.tar.gz &&
cd lightdm-gtk-greeter-2.0.8 &&

./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.8 &&
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}.conf

Unidade do systemd

Instale a unidade "lightdm.service" incluída no pacote "blfs-systemd-units-20220720":

make install-lightdm

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.8, /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

lxdm-0.5.3

Introdução ao LXDM

O "LXDM" é um Gerenciador de Tela leve para a área de trabalho do "LXDE". Ele também pode ser usado como uma alternativa a outros Gerenciadores de Tela como o "GDM" do "GNOME" ou o "LightDM".

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Nota

O gerenciador de tela "lxdm" não suporta gerenciadores de janela baseados em "wayland", como o "plasma-wayland" ou "gnome-wayland".

Informação do Pacote

  • Transferência (HTTP): https://downloads.sourceforge.net/lxdm/lxdm-0.5.3.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 061caae432634e6db38bbdc84bc6ffa0

  • Tamanho da transferência: 236 KB

  • Espaço em disco estimado exigido: 5,6 MB

  • Tempo de construção estimado: menos que 0,1 UPC

Dependências do "LXDM"

Exigidas

GTK+-2.24.33, ISO Codes-4.12.0 e librsvg-2.54.5 (tempo de execução, para plano de fundo do tema padrão)

Recomendadas
Opcionais

GTK+-3.24.36

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/lxdm

Instalação do LXDM

Primeiro, algumas correções.

cat > pam/lxdm << "EOF"
# Inicia /etc/pam.d/lxdm

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/lxdm
EOF

sed -i 's:sysconfig/i18n:profile.d/i18n.sh:g' data/lxdm.in &&
sed -i 's:/etc/xprofile:/etc/profile:g' data/Xsession &&
sed -e 's/^bg/#&/'        \
    -e '/reset=1/ s/# //' \
    -e 's/logou$/logout/' \
    -e "/arg=/a arg=$XORG_PREFIX/bin/X" \
    -i data/lxdm.conf.in

Instale o "LXDM" executando os seguintes comandos:

./configure --prefix=/usr      \
            --sysconfdir=/etc \
            --with-pam        \
            --with-systemdsystemunitdir=/lib/systemd/system &&
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

cat > pam/lxdm << "EOF" ...: Substitua o "/etc/pam.d/lxdm" padrão por outro apropriado para o BLFS.

sed -i ... data/lxdm.conf.in: Modificações na configuração padrão: (1) corrigir o plano de fundo para o padrão; (2) reiniciar o "X" quando a sessão for fechada; (3) erro de digitação; e (4) incluir "XORG_PREFIX", que pode ser diferente de "/usr".

sed -i ... data/Xsession: Carregar "/etc/profile", em vez de outro arquivo, de acordo com o padrão do BLFS.

sed -i ... data/lxdm.in: Corrija a localidade do saudador para especificação do BLFS.

--with-pam: Esse parâmetro habilita o uso da autenticação "PAM".

Configurando o LXDM

Arquivos de Configuração

/etc/lxdm/lxdm.conf

Unidade do systemd

Para iniciar o "LXDM" na inicialização, execute o seguinte comando como o(a) usuário(a) "root":

systemctl enable lxdm

Informação de Configuração

O arquivo de configuração do processo de segundo plano do "LXDM" ("/etc/lxdm/lxdm.conf") especifica opções que incluem "numlock" "on"/"off", imagem de plano de fundo ("bg"), sessão, etc. Você consegue configurar uma sessão padrão descomentando a linha: "session=/usr/bin/startlxde" e substituindo "startlxde" pela sessão da tua escolha. Para o "GNOME", "session=/usr/bin/gnome-session". Para o "OPENBOX", "session=/usr/bin/openbox-session" e para o "XFCE", "session=/usr/bin/startxfce4".

Também é possível configurar a sessão preferida por usuário(a) editando o arquivo "~/.dmrc" para cada usuário(a) e adicionando:

[Desktop]
         Session=xfce

Você pode substituir o rosto fictício padrão na tela de saudação por outra imagem representando teu(ua) usuário(a). Para isso, copie ou simbolicamente vincule a imagem desejada para o teu diretório inicial com o nome ".face".

Conteúdo

Aplicativos Instalados: lxdm, lxdm-binary e lxdm-config
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /etc/lxdm e /usr/share/lxdm

Descrições Curtas

lxdm

é um conjunto de comandos sequenciais para executar o "lxdm-binary"

lxdm-binary

é o atual Gerenciador de Tela; precisa ser executado com a opção "-d" para se tornar processo de segundo plano

lxdm-config

é um aplicativo gráfico de personalização

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".

A escolha de um Gerenciador de Janelas ou Ambiente de Área de Trabalho é altamente subjetiva. 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 Janela 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "Fluxbox"

Exigidas

um ambiente gráfico

Opcionais

dbus-1.14.6 (tempo de execução), FriBidi-1.0.12 e imlib2-1.9.1 (se você desejar usar outros formatos de imagem além do "XPM")

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/fluxbox

Instalação do Fluxbox

Primeiro, corrija uma falha de construção ao construir com o "gcc-11.1":

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 de teste funcional.

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-43.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-43.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, [então] 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.9.1" 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.3.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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "IceWM"

Exigidas

CMake-3.25.2, um ambiente gráfico e gdk-pixbuf-xlib-2.40.2

Opcionais

asciidoc-10.2.0 (para regerar a documentação "HTML"), FriBidi-1.0.12 (para idiomas escritos da direita para a esquerda), imlib2-1.9.1, librsvg-2.54.5, libao-1.2.0, libsndfile-1.2.0 e alsa-lib-1.2.8 (para o aplicativo experimental "icesound")

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/icewm

Instalação do IceWM

Instale o "IceWM" executando os seguintes comandos:

mkdir build &&
cd     build &&

cmake -DCMAKE_INSTALL_PREFIX=/usr \
      -DCMAKE_BUILD_TYPE=Release  \
      -DCFGDIR=/etc               \
      -DENABLE_LTO=ON             \
      -DCONFIG_GDK_PIXBUF_XLIB=ON \
      -DCONFIG_IMLIB2=OFF         \
      -DDOCDIR=/usr/share/doc/icewm-3.3.1  \
      .. &&
make

Esse pacote não tem uma suíte de teste funcional.

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

-DENABLE_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, [então] você precisará instalar um aplicativo como o "Rox-Filer-2.11" que fornece um quadro de avisos. Se fizer isso, [então] 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 "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.3.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 adequadamente usando uma plataforma LFS 11.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: 21 MB

  • Tempo de construção estimado: 0,3 UPC

Dependências do "Openbox"

Exigidas

um ambiente gráfico e Pango-1.50.12 (compilado com suporte para "libXft")

Opcionais

dbus-1.14.6 (tempo de execução), imlib2-1.9.1 (para habilitar ícones no menu do botão direito), ImageMagick-7.1.0-61 (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.54.5

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/openbox

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

Se você instalou somente o módulo "PyXDG" do "Python 3", [então] converta um dos conjuntos de comandos sequenciais para "Python 3":

2to3-3.11 -w data/autostart/openbox-xdg-autostart &&
sed 's/python/python3/' -i data/autostart/openbox-xdg-autostart

Instale o "Openbox" executando os seguintes comandos:

./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 o 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

"~/.config/openbox/menu.xml" pode ser editado com um editor de texto ou você pode instalar o "Obmenu" (exige "pyxml" e "PyGTK-2.24.0").

Para ter ícones em teu menu do botão direito, é exigido instalar o "imlib2-1.9.1" 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 o 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.14.6":

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"

sawfish-1.13.0

Introdução ao sawfish

O pacote "sawfish" contém um gerenciador de janelas. Isso é útil para organizar e exibir janelas onde todas as decorações das janelas são configuráveis e todas as políticas da interface de usuário(a) são controladas por intermédio da linguagem de extensão.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "sawfish"

Exigidas

gdk-pixbuf-xlib-2.40.2, rep-gtk-0.90.8.3 e Which-2.21

Opcionais

libnsl-2.0.0

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/sawfish

Instalação do sawfish

Instale o "sawfish" executando os seguintes comandos:

./configure --prefix=/usr --with-pango   &&
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 seis arquivos ".desktop" no diretório "/usr/share/xsessions/". Todos, exceto um, são necessários 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/sawfish-*.desktop

Configurando o sawfish

Informação de Configuração

Certifique-se de produzir uma cópia de segurança do teu ".xinitrc" atual antes de continuar.

cat >> ~/.xinitrc << "EOF"
exec sawfish
EOF

Opcionalmente, você pode usar um Gerenciador de Tela, como o "lxdm-0.5.3".

Oriundo dos(as) desenvolvedores(as): A ligação padrão do menu é um tanto obscura; você precisa clicar com o botão do meio no plano de fundo para abrir os menus. (Se você tiver um mouse de dois botões, [então] tente clicar nos dois botões simultaneamente). Você pode encontrar isso no "FAQ do sawfish".

Conteúdo

Aplicativos Instalados: sawfish, sawfish-about, sawfish-client, sawfish-config, sawfish-kde4-session, sawfish-kde5-session, sawfish-lumina-session, sawfish-mate-session e sawfish-xfce-session
Bibliotecas Instaladas: Vários módulos internos sob a árvore "/usr/lib/sawfish"
Diretório Instalado: /usr/include/sawfish, /usr/lib/sawfish, /usr/lib/rep/sawfish e /usr/share/sawfish

Descrições Curtas

sawfish

é o gerenciador de janelas extensível que usa uma linguagem de conjunto de comandos sequenciais baseada em "Lisp"

sawfish-about

é a janela "sobre" do "sawfish"

sawfish-client

permite que você se conecte a um processo gerenciador de janelas e avalie formulários arbitrários "Lisp"

sawfish-config

é o gerenciador de configuração do "sawfish"

sawfish-kde4-session

é um conjunto de comandos sequenciais para executar o "KDE4" usando o "sawfish"

sawfish-kde5-session

é um conjunto de comandos sequenciais para executar o "Plasma 5" usando o "sawfish"

sawfish-mate-session

é um conjunto de comandos sequenciais para executar o "mate" usando o "sawfish"

sawfish-lumina-session

é um conjunto de comandos sequenciais para executar o "Lumina" usando o "sawfish"

sawfish-xfce-session

é um conjunto de comandos sequenciais para executar o "xfce" usando o "sawfish"

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-43

Introdução ao Tema de Ícone Adwaita

O pacote "Tema de Ícone Adwaita" contém um tema de ícone para aplicativos "GTK+ 3" e "GTK 4".

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "Tema de Ícone Adwaita"

Opcionais

git-2.39.2, GTK+-2.24.33 ou GTK+-3.24.36 (se presente, [então] o "librsvg-2.54.5" também é exigido; e "gtk-update-icon-cache" e "gtk-encode-symbolic-svg" são executados depois da instalação), Inkscape-1.2.2 e Ferramentas de Ícone

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/adwaita-icon-theme

Instalação do Tema de Ícone Adwaita

Instale o "Tema de Ícone Adwaita" 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)
Biblioteca Instalada: Nenhum(a)
Diretório Instalado: /usr/share/icons/Adwaita

breeze-icons-5.103.0

Introdução ao Ícones Breeze

O pacote "Ícones Breeze" contém os ícones padrão para aplicativos "KDE Plasma 5", mas pode ser usado para outros ambientes de janela.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "Ícones Breeze"

Exigidas

extra-cmake-modules-5.103.0 e Qt-5.15.8

Opcionais

KDE Frameworks-5.103.0, libxml2-2.10.3 e lxml-4.9.2

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/breeze-icons

Instalação do Ícones Breeze

Instale o "Ícones Breeze" executando os seguintes comandos:

mkdir build &&
cd     build &&

cmake -DCMAKE_INSTALL_PREFIX=/usr \
      -DBUILD_TESTING=OFF         \
      -Wno-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

-DBUILD_TESTING=OFF: Esse parâmetro desabilita a construção da estrutura essencial de suporte de testes, a qual exige alguns módulos originários do "KDE Frameworks-5.103.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 Ícone 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "Tema de Ícone do GNOME"

Exigidas

GTK+-3.24.36 ou GTK+-2.24.33, hicolor-icon-theme-0.17 e icon-naming-utils-0.8.90

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/gnome-icon-theme

Instalação do Tema de Ícone 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 Ícone 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 adequadamente usando uma plataforma LFS 11.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.39.2 e Inkscape-1.2.2

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/gnome-icon-theme-extras

Instalação do Extras do Tema de Ícone 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 Simbólico do Tema de Ícone 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 adequadamente usando uma plataforma LFS 11.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.39.2 e Inkscape-1.2.2

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/gnome-icon-theme-symbolic

Instalação do Simbólico do Tema de Ícone 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "Extra dos Temas do GNOME"

Exigidas

GTK+-2.24.33 ou GTK+-3.24.36 com librsvg-2.54.5 ou ambos

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/gnome-themes-extra

Instalação do Extra dos Temas do GNOME

Instale o "Extra dos Temas 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

Explicações do Comando

--disable-gtk2-engine: Essa chave desabilita o mecanismo de tema do "GTK+-2".

--disable-gtk3-engine: Essa chave desabilita o mecanismo de tema do "GTK+-3".

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libadwaita.so
Diretórios Instalados: /usr/lib/gtk-2.0/2.10.0/engines, /usr/share/icons/HighContrast, /usr/share/themes/Adwaita, /usr/share/themes/Adwaita-dark e /usr/share/themes/HighContrast

Descrições Curtas

libadwaita.so

é o tema do mecanismo "Adwaita" do "GTK+-2"

hicolor-icon-theme-0.17

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/hicolor-icon-theme

Instalação do hicolor-icon-theme

Instale o "hicolor-icon-theme" 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/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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "icon-naming-utils"

Exigidas

XML-Simple-2.25

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/icon-naming-utils

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 Ícone 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "Tema de Ícone do LXDE"

Opcionais

GTK+-2.24.33 ou GTK+-3.24.36 (para o comando "gtk-update-icon-cache")

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/lxde-icon-theme

Instalação do Tema de Ícone 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-icons5-5.103.0

Introdução ao oxygen-icons5

O tema ícones de oxigênio 5 é um estilo de ícone foto realista, com um alto padrão de qualidade gráfica.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "oxygen-icons5"

Exigidas

extra-cmake-modules-5.103.0 e Qt-5.15.8

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/oxygen-icons5

Instalação do oxygen-icons5

Primeiro, habilite ícones escalonáveis:

sed -i '/( oxygen/ s/)/scalable )/' CMakeLists.txt

Instale o "oxygen-icons5" executando os seguintes comandos:

mkdir build &&
cd     build &&

cmake -DCMAKE_INSTALL_PREFIX=/usr -Wno-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 "KDE5" tem dois blocos principais: as bibliotecas, chamadas "KDE Frameworks 5" ou "KF5", as quais podem ser usadas em outros ambientes; e o ambiente de área de trabalho, chamado "KDE Plasma 5". A maioria dos aplicativos escritos pela equipe do "KDE" usa somente o "KF5", 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-5.103.0

Introdução ao Módulos Extras do Cmake

O pacote "Módulos Extras do Cmake" contém módulos extras do "CMake" usados pelo "KDE Frameworks 5" e outros pacotes.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "Módulos Extras do Cmake"

Exigidas

CMake-3.25.2

Opcionais

sphinx-6.1.3 (para construir documentação) e PyQt (suporte experimental para construir ligações "Python" do "KDE")

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/extra-cmake-modules

Instalação do 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 -DCMAKE_INSTALL_PREFIX=/usr .. &&
make

Esse pacote não vem com uma suíte de teste.

Nota

Ao contrário de outros pacotes "KF5", esse módulo é instalado em "/usr", pois ele pode ser usado por alguns pacotes não "KF5".

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/kf5" e falharia na construção 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.11.1

Introdução ao Phonon

"Phonon" é a "API" multimídia do "KDE". Ela substitui o antigo pacote "aRts". "Phonon" precisa ou do "GStreamer" ou da estrutura de retaguarda "VLC".

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "Phonon"

Exigidas

CMake-3.25.2, extra-cmake-modules-5.103.0, GLib-2.74.5 e Qt-5.15.8

Pelo menos um de "phonon-backend-gstreamer-4.10.0" ou "phonon-backend-vlc-0.11.3" precisa ser instalado posteriormente para operação multimídia no "KDE".

Opcionais

PulseAudio-16.1

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/phonon

Instalação do Phonon

Instale o "Phonon" executando os seguintes comandos:

mkdir build &&
cd     build &&

cmake -DCMAKE_INSTALL_PREFIX=/usr \
      -DCMAKE_BUILD_TYPE=Release  \
      .. &&
make

Agora, como o(a) usuário(a) "root":

make install

Explicações do Comando

-DCMAKE_BUILD_TYPE=Release: Essa chave é usada para aplicar um nível mais alto de otimização à compilação.

Conteúdo

Aplicativos Instalados: phononsettings
Bibliotecas Instaladas: libphonon4qt5.so e libphonon4qt5experimental.so
Diretórios Instalados: /usr/include/phonon4qt5, /usr/lib/cmake/phonon4qt5, /usr/lib/plugins/designer e /usr/share/phonon4qt5

Phonon-backend-gstreamer-4.10.0

Introdução ao Phonon-backend-gstreamer

Esse pacote fornece uma estrutura de retaguarda do "Phonon" que utiliza a estrutura essencial de suporte de mídia do "GStreamer".

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "Phonon-backend-gstreamer"

Exigidas

gstreamer-1.22.0, libxml2-2.10.3 e phonon-4.11.1

Recomendadas

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/phonon-backend-gstreamer

Instalação do Phonon-backend-gstreamer

Instale o "Phonon-backend-gstreamer" executando os seguintes comandos:

mkdir build &&
cd     build &&

cmake -DCMAKE_INSTALL_PREFIX=/usr    \
      -DCMAKE_BUILD_TYPE=Release     \
      .. &&
make

Agora, como o(a) usuário(a) "root":

make install

Explicações do Comando

-DCMAKE_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: phonon_gstreamer.so
Diretórios Instalados: /usr/lib/plugins/phonon4qt5_backend

Phonon-backend-vlc-0.11.3

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "Phonon-backend-vlc"

Exigidas

phonon-4.11.1 e VLC-3.0.18

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/phonon-backend-vlc

Instalação do Phonon-backend-vlc

Instale o "Phonon-backend-vlc" executando os seguintes comandos:

mkdir build &&
cd     build &&

cmake -DCMAKE_INSTALL_PREFIX=/usr \
      -DCMAKE_BUILD_TYPE=Release  \
      .. &&
make

Agora, como o(a) usuário(a) "root":

make install

Explicações do Comando

-DCMAKE_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.so
Diretório Instalado: /usr/lib/plugins/phonon4qt5_backend

Polkit-Qt-0.114.0

Introdução ao Polkit-Qt

"Polkit-Qt" fornece uma "API" para "PolicyKit" no ambiente "Qt".

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "Polkit-Qt"

Exigidas

CMake-3.25.2, Polkit-122 e Qt-5.15.8

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/polkit-qt

Instalação do Polkit-Qt

Instale o "Polkit-Qt" executando os seguintes comandos:

mkdir build &&
cd     build &&

cmake -DCMAKE_INSTALL_PREFIX=/usr \
      -DCMAKE_BUILD_TYPE=Release  \
      -Wno-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

-DCMAKE_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-qt5-agent-1.so, libpolkit-qt5-core-1.so e libpolkit-qt5-gui-1.so
Diretórios Instalados: "/usr/include/polkit-qt5-1 e /usr/lib/cmake/PolkitQt5-1

libdbusmenu-qt-0.9.3+16.04.20160218

Introdução ao libdbusmenu-qt

Essa biblioteca fornece uma implementação "Qt" da especificação "DBusMenu" que expõe menus via "DBus".

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "libdbusmenu-qt"

Exigidas

Qt-5.15.8

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libdbusmenu-qt

Instalação do libdbusmenu-qt

Instale o "libdbusmenu-qt" executando os seguintes comandos:

mkdir build &&
cd     build &&

cmake -DCMAKE_INSTALL_PREFIX=/usr \
      -DCMAKE_BUILD_TYPE=Release  \
      -DWITH_DOC=OFF              \
      -Wno-dev .. &&
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

-DCMAKE_BUILD_TYPE=Release: Essa chave é usada para construir sem símbolos de depuração e aplicar um nível mais alto de otimizações do compilador.

-DWITH_DOC=OFF: Essa opção está configurada para evitar tentar construir a documentação da "API", a qual exige "Qt4" obsoleta.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libdbusmenu-qt5.so
Diretório Instalado: /usr/lib/cmake/dbusmenu-qt5 e /usr/include/dbusmenu-qt5

Plasma-wayland-protocols-1.10.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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "Plasma-wayland-protocols"

Exigidas

extra-cmake-modules-5.103.0

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/plasma-wayland-protocols

Instalação do Plasma-wayland-protocols

Instale o "Plasma-wayland-protocols" executando os seguintes comandos:

mkdir build &&
cd     build &&

cmake -DCMAKE_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

kuserfeedback-1.2.0

Introdução ao Kuserfeedback

O pacote "kuserfeedback" contém uma estrutura essencial de suporte para coletar retroalimentação de usuário(a) a respeito de aplicativos por meio de telemetria e pesquisas.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "Kuserfeedback"

Exigidas

extra-cmake-modules-5.103.0 e Qt-5.15.8

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/kuserfeedback

Instalação do Kuserfeedback

Instale o "kuserfeedback" executando os seguintes comandos:

mkdir build &&
cd     build &&

cmake -DCMAKE_INSTALL_PREFIX=/usr \
      -DCMAKE_BUILD_TYPE=Release  \
      -DBUILD_TESTING=OFF         \
      -Wno-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)
Bibliotecas Instaladas: libKUserFeedbackCore.so e libKUserFeedbackWidgets.so
Diretórios Instalados: /usr/include/KUserFeedback, /usr/lib/qml/org/kde/userfeedback, /usr/lib/cmake/KUserFeedback, /usr/share/KDE/UserFeedbackConsole e /usr/share/qlogging-categories5

Capítulo 30. KDE Frameworks 5

Configuração da Pré-instalação do KDE Frameworks 5

O "KF5" pode ser instalado em "/usr" ou "/opt/kf5". Os(As) editores(as) do BLFS recomendam o último no ambiente do BLFS.

Instalando em /usr

Uma opção é a de instalar o "KDE Frameworks 5" na hierarquia "/usr". Isso cria uma configuração mais simples, mas torna mais difícil testar múltiplas versões do "KDE Frameworks".

export KF5_PREFIX=/usr

É uma boa ideia adicionar as seguintes variáveis ao teu sistema ou perfis pessoais:

cat >> /etc/profile.d/qt5.sh << "EOF"
# Inicia extensão do kf5 para /etc/profile.d/qt5.sh

pathappend /usr/lib/plugins        QT_PLUGIN_PATH
pathappend $QT5DIR/lib/plugins     QT_PLUGIN_PATH

pathappend /usr/lib/qt5/qml        QML2_IMPORT_PATH
pathappend $QT5DIR/lib/qml         QML2_IMPORT_PATH

# Termina extensão para /etc/profile.d/qt5.sh
EOF

cat > /etc/profile.d/kf5.sh << "EOF"
# Inicia /etc/profile.d/kf5.sh

export KF5_PREFIX=/usr

# Termina /etc/profile.d/kf5.sh
EOF

Nota

Se o "qt5" foi instalado em "/usr", [então] as partes "$QT5DIR/lib/" dos caminhos acima podem precisar serem mudadas para "$QT5DIR/lib/qt5/".

Adicionalmente, se o "Sudo-1.9.13p1" estiver instalado, [então] 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 += KF5_PREFIX
EOF

Instalando em /opt

Um método de construção de múltiplas versões instala o "KDE Frameworks 5" na hierarquia "/opt":

export KF5_PREFIX=/opt/kf5

Se você não estiver instalando o "KDE Frameworks 5" em "/usr", [então] você precisará fazer algumas mudanças adicionais de configuração. A melhor prática é a de adicioná-los ao teu perfil de sistema ou pessoal:

cat > /etc/profile.d/kf5.sh << "EOF"
# Inicia /etc/profile.d/kf5.sh

export KF5_PREFIX=/opt/kf5

pathappend $KF5_PREFIX/bin              PATH
pathappend $KF5_PREFIX/lib/pkgconfig    PKG_CONFIG_PATH

pathappend $KF5_PREFIX/etc/xdg          XDG_CONFIG_DIRS
pathappend $KF5_PREFIX/share            XDG_DATA_DIRS

pathappend $KF5_PREFIX/lib/plugins      QT_PLUGIN_PATH
pathappend $KF5_PREFIX/lib/plugins/kcms QT_PLUGIN_PATH

pathappend $KF5_PREFIX/lib/qml          QML2_IMPORT_PATH

pathappend $KF5_PREFIX/lib/python3.11/site-packages PYTHONPATH

pathappend $KF5_PREFIX/share/man        MANPATH
# Termina /etc/profile.d/kf5.sh
EOF

cat >> /etc/profile.d/qt5.sh << "EOF"
# Inicia mudanças do Qt5 para KF5

pathappend /usr/lib/plugins            QT_PLUGIN_PATH
pathappend $QT5DIR/plugins             QT_PLUGIN_PATH
pathappend $QT5DIR/qml                 QML2_IMPORT_PATH

# Termina mudanças do Qt5 para KF5
EOF

Expanda o teu arquivo "/etc/ld.so.conf":

cat >> /etc/ld.so.conf << "EOF"
# Inicia adição do KF5

/opt/kf5/lib

# Termina adição do KF5
EOF

Vários pacotes "KDE Frameworks 5" e "KDE Plasma 5" instalam arquivos nos diretórios do "D-Bus", do "Polkit" e do "systemd". Ao instalar o "KDE 5" em um local diferente de "/usr", o "D-Bus", o "Polkit" e o "systemd" 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            $KF5_PREFIX/{etc,share} &&
ln -sfv /etc/dbus-1         $KF5_PREFIX/etc         &&
ln -sfv /usr/share/dbus-1   $KF5_PREFIX/share       &&
ln -sfv /usr/share/polkit-1 $KF5_PREFIX/share       &&
install -v -dm755           $KF5_PREFIX/lib         &&
ln -sfv /usr/lib/systemd    $KF5_PREFIX/lib

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 evitar ter-se instalações múltiplas do "hicolor-icon-theme-0.17". Execute os seguintes comandos como o(a) usuário(a) "root":

install -v -dm755                 $KF5_PREFIX/share/icons &&
ln -sfv /usr/share/icons/hicolor $KF5_PREFIX/share/icons

Dica

Ocasionalmente, os caminhos de instalação são rigidamente codificados em arquivos instalados. Essa é a razão pela qual "/opt/kf5" é usado como prefixo de instalação em vez de "/opt/kf5-5.103.0". Depois de instalar o "KDE Frameworks", você pode renomear o diretório e criar um link simbólico:

mv /opt/kf5{,-5.103.0}
ln -sfv kf5-5.103.0 /opt/kf5

Mais tarde, você possivelmente queira instalar outras versões do "KDE Frameworks 5". Para fazer isso, basta remover o link simbólico e usar "/opt/kf5" como prefixo novamente. Qual versão do "KDE Frameworks 5" você usa depende somente de onde o link simbólico aponta. Nenhuma outra reconfiguração será necessária.

Construindo o KDE Frameworks 5 (KF5)

"KDE Frameworks 5" é uma coleção de bibliotecas baseadas em "Qt5" e "QML" derivadas das bibliotecas monolíticas do "KDE 4". Elas podem ser usadas independentemente do Ambiente de Exibição do "KDE" ("Plasma 5").

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.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/5.103

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: Veja-se Abaixo

  • Tamanho da transferência: 345 MB

  • Espaço em disco estimado exigido: 2,5 GB (247 MB instalado)

  • Tempo de construção estimado: 14 UPC (usando paralelismo = 4)

Dependências do "KF5"

Exigidas

Boost-1.81.0, extra-cmake-modules-5.103.0, docbook-xml-4.5, docbook-xsl-nons-1.79.2, giflib-5.2.1, libepoxy-1.5.10, libgcrypt-1.10.1, libical-3.0.16, libjpeg-turbo-2.1.5.1, libpng-1.6.39, libxslt-1.1.37, lmdb-0.9.29, qca-2.3.5, qrencode-4.1.1, phonon-4.11.1, plasma-wayland-protocols-1.10.0, shared-mime-info-2.2, URI-5.17 e Wget-1.21.3 (exigido para baixar os pacotes)

Recomendadas
Opcionais

BlueZ-5.66 (necessário para construir o "Bluez-Qt"), ModemManager-1.18.12 (necessário para construir o "ModemManager-Qt"), Datamatrix (considerado recomendado para o "Prison" pelo(a) desenvolvedor(a))

Dependência de tempo de execução para o "FrameworkIntegration"

Fontes Oxygen e Fontes Noto

Dependências adicionais recomendadas para o "kapidox"
Suporte a formatos adicionais de imagem no "KImageFormats"

JasPer-4.0.0 e OpenEXR

Dependências opcionais para o "KIO"

MIT Kerberos V5-1.20.1

Dependências opcionais para o "Solid"

UDisks-2.9.4, UPower-1.90.0 e media-player-info (tempo de execução)

Dependência opcional para o "KWallet"

GPGME-1.18.0, construído com ligações "C++" (o que é o padrão).

Estruturas de retaguarda opcionais de dicionário para o "Sonnet"

Hspell e Hunspell

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/kf5

Baixando o 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/5.103/
wget -r -nH -nd -A '*.xz' -np $url

As opções usadas aqui são:
  -r            recursar ao longo de diretórios filhos
  -nH           desabilitar a geração de diretórios com prefixo de dispositivo
  -nd           não crie uma hierarquia de diretórios
  -A '*.xz'     apenas obter os arquivos *.xz
  -np           não obtenha diretórios ancestrais

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-5.103.0.md5 << "EOF"
0a7b74df0877363cd2316c906e0694d5  attica-5.103.0.tar.xz
#ac7d7a883f8ecd2dab262a284981ad64  extra-cmake-modules-5.103.0.tar.xz
8588714c201f53bb20bc102a18c4f532  kapidox-5.103.0.tar.xz
59595c4bec0668230f4946db7214b52b  karchive-5.103.0.tar.xz
05e65495011a67947dfb2069fb3d535a  kcodecs-5.103.0.tar.xz
a8347f5ca9166c92617f83214beb652e  kconfig-5.103.0.tar.xz
2ab7a86490e7fbfd343d025186f216b0  kcoreaddons-5.103.0.tar.xz
4427e875afe3cd04b5715ec3bda26095  kdbusaddons-5.103.0.tar.xz
46fc8742d1ba4240c8552ac0d63faefc  kdnssd-5.103.0.tar.xz
1b0bc7da24e0475f105bad5d3c9bc465  kguiaddons-5.103.0.tar.xz
107b2cb6129ae111430659f9c55c6d6f  ki18n-5.103.0.tar.xz
d4f38229dd9d49a043ab630eb9a9a302  kidletime-5.103.0.tar.xz
d3b193a9d8c6f93186cf7ac8c888a3db  kimageformats-5.103.0.tar.xz
0f8cd4d3717ede9c56bce44ae095af67  kitemmodels-5.103.0.tar.xz
14f36528bb5441a692c7a97afaa2400c  kitemviews-5.103.0.tar.xz
763886cdcf3447e447a9418a0b5c867a  kplotting-5.103.0.tar.xz
a4e41e13aff26d5010d3a97852fb8342  kwidgetsaddons-5.103.0.tar.xz
8bf107f2ab437d4bbfdbe51ecbde43ae  kwindowsystem-5.103.0.tar.xz
2dff80cd51ffedcbd8626c533083f656  networkmanager-qt-5.103.0.tar.xz
65d98a483c5d3cbf5c8806c61e0241a9  solid-5.103.0.tar.xz
791b983979fe0c370429f35c62c2165b  sonnet-5.103.0.tar.xz
f6322ae074c4acdbc6e0396a93ce1eaa  threadweaver-5.103.0.tar.xz
6d28e58c5f1683063ad03dff6019cad3  kauth-5.103.0.tar.xz
a5b50adcd5ab994a2c9f51b745982672  kcompletion-5.103.0.tar.xz
50ed3e4f8f7534df5c57abda5c47559b  kcrash-5.103.0.tar.xz
283cdd8aba82a3f3c30fd5be85ed88b7  kdoctools-5.103.0.tar.xz
5a919ad09e721cfc2f631955b9ada6ae  kpty-5.103.0.tar.xz
8dd1fa39b1eca8563e6fb71a3bb2008e  kunitconversion-5.103.0.tar.xz
6a5b65a200747ac103f67ae903783757  kconfigwidgets-5.103.0.tar.xz
5e13babdfe4d58802331bdd21c469c55  kservice-5.103.0.tar.xz
99a74ee689e17751283a5af3194d7a55  kglobalaccel-5.103.0.tar.xz
e0efb5adb522325ebce49225584d16c7  kpackage-5.103.0.tar.xz
fed250966122f46b339ed5de4ca459a2  kdesu-5.103.0.tar.xz
e04acd0fc6e2702aa7c16b219603cdfa  kemoticons-5.103.0.tar.xz
bf0a9ec942b90a10386296ff716131dc  kiconthemes-5.103.0.tar.xz
1a7b5a3f3726b4cde11cb51b7c4d0f1e  kjobwidgets-5.103.0.tar.xz
a243f74fcae890ef7fbe4184a2cf7e05  knotifications-5.103.0.tar.xz
f644d4c8d27b67a3677fa23da532c514  ktextwidgets-5.103.0.tar.xz
9503487754af910a9e92f281d656acaa  kxmlgui-5.103.0.tar.xz
437e063410b1e740137d5e35c290a23e  kbookmarks-5.103.0.tar.xz
2d61f4f1421e025280438e0e1aa9f5e3  kwallet-5.103.0.tar.xz
bf91ba7c557268d302075b1d631e380c  kded-5.103.0.tar.xz
79dfc2d0657721dfb08991881dbde8a7  kio-5.103.0.tar.xz
ec12c7e1218f15c8b5a71277e83036e5  kdeclarative-5.103.0.tar.xz
da08e26fda501c382c1f2a5b40e6485d  kcmutils-5.103.0.tar.xz
bab6ca86a6d23f887536c080afa45a0c  kirigami2-5.103.0.tar.xz
c1398c8db035d559d07ce898a7219acc  syndication-5.103.0.tar.xz
1a405c48d435139c9e727bf124e5f038  knewstuff-5.103.0.tar.xz
829ac5e9cabd62189cd76ed3c894c707  frameworkintegration-5.103.0.tar.xz
43bb956b064091dff8f45a6840f53303  kinit-5.103.0.tar.xz
b25162d470f74445ca56128cac45e947  kparts-5.103.0.tar.xz
239889fc943eff526988f7c2720287d5  kactivities-5.103.0.tar.xz
#2b4832c41d364558e6d9b7065f0c4f39  kdewebkit-5.103.0.tar.xz
2126884ac8f908c4f8419675bd93e0c8  syntax-highlighting-5.103.0.tar.xz
fac3a6fc429a035979721b7424d05510  ktexteditor-5.103.0.tar.xz
f5707c6f02628db06093590de71cd321  kdesignerplugin-5.103.0.tar.xz
461d95ec8fa798c571321535f09b4c0f  kwayland-5.103.0.tar.xz
05213caf6c79942d888a8b12cea44329  plasma-framework-5.103.0.tar.xz
#51ad29be12b17417f384d67f76a5d1bd  modemmanager-qt-5.103.0.tar.xz
a1088a560a040c2dcfd554954a95069e  kpeople-5.103.0.tar.xz
a7dc8537a1ff824dac365eb14102d2c8  kxmlrpcclient-5.103.0.tar.xz
c637be6d9858f5ac7409f1b8fc726b45  bluez-qt-5.103.0.tar.xz
3bbbd6892b1abdfa1d4b0834e0846fea  kfilemetadata-5.103.0.tar.xz
4fec6b1553930567e729f1d65b941562  baloo-5.103.0.tar.xz
#60d0eadf3f9c87ee652e024d9623c551  breeze-icons-5.103.0.tar.xz
#951ccb7eb477b299712d16cc3eac354b  oxygen-icons5-5.103.0.tar.xz
34b4591e9df8d79c63d2a6eca5bcfe05  kactivities-stats-5.103.0.tar.xz
10447582aa0666d05d62431704f19b1c  krunner-5.103.0.tar.xz
ea4d0179cc74415c7a6d76f09209222e  prison-5.103.0.tar.xz
c5c910fd595bfd611ac8c4bda27ef652  qqc2-desktop-style-5.103.0.tar.xz
5b31937451c3300d4fc9d18d778e24a7  kjs-5.103.0.tar.xz
ca4de0327db13b3429ba9f3b721b4589  kdelibs4support-5.103.0.tar.xz
1263327a22ed1140b1029ad1b32c8531  khtml-5.103.0.tar.xz
01de79fa8e6e362c9af069fc29105d49  kjsembed-5.103.0.tar.xz
f0433658ef15bf36535565568269a118  kmediaplayer-5.103.0.tar.xz
8cea7e16ca6642b82d92de3d1ed4357f  kross-5.103.0.tar.xz
a70e20a82b9a92207907ed5a1f18ee44  kholidays-5.103.0.tar.xz
7b2ca5d2533594bb6183ff3557519b61  purpose-5.103.0.tar.xz
1b6f998185b59a55e0af5ff04ef8e039  kcalendarcore-5.103.0.tar.xz
e42e4b12faf2bec456780e1c67e4c79c  kcontacts-5.103.0.tar.xz
4a42631cfabeefeb6b6c1eef4bc210bc  kquickcharts-5.103.0.tar.xz
262cb6025c5f7d344463d6eea69b1ef3  knotifyconfig-5.103.0.tar.xz
4b3c77407fbfafaaf6cbdfa7d1340942  kdav-5.103.0.tar.xz
EOF

Na lista acima, observe que alguns arquivos foram comentados com um caractere cerquilha (#). A entrada "extra-cmake-modules" foi comentada porque foi construída anteriormente na Introdução ao KDE. Os pacotes de ícones são abordados separadamente em "breeze-icons-5.103.0" e "oxygen-icons5-5.103.0". O pacote "modemmanager-qt" pode ser construído se a dependência opcional dele tiver sido instalada. O "kdewebkit" pode ser construído se o pacote externo "QtWebkit" tiver sido construído.

Instalação do KDE Frameworks

Nota

Ao instalar-se múltiplos pacotes em um "script", a instalação precisa ser feita como o(a) usuário(a) "root". Existem três opções gerais que podem ser usadas para fazer isso:

  1. Executar o "script" inteiro como o(a) usuário(a) "root" (não recomendado).

  2. Usar o comando "sudo" oriundo do pacote Sudo-1.9.13p1.

  3. Usar su -c "argumentos do comando" (aspas exigidas) o qual solicitará a senha do(a) "root" para cada interação do "loop".

Uma maneira de se lidar com essa situação é a de criar uma função curta do "bash" que seleciona automaticamente o método apropriado. Tão logo o comando seja configurado no ambiente, ele não precisa ser novamente configurado.

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/kf5", seja como um diretório regular ou um link simbólico, [então] ele deveria ser reinicializado (como "root"):

mv -v /opt/kf5 /opt/kf5.old                          &&
install -v -dm755           $KF5_PREFIX/{etc,share} &&
ln -sfv /etc/dbus-1         $KF5_PREFIX/etc         &&
ln -sfv /usr/share/dbus-1   $KF5_PREFIX/share       &&
ln -sfv /usr/share/polkit-1 $KF5_PREFIX/share       &&
install -v -dm755           $KF5_PREFIX/lib         &&
ln -sfv /usr/lib/systemd    $KF5_PREFIX/lib

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

    # Obtenha o nome do arquivo, ignorando comentários e linhas em branco
    if $(echo $line | grep -E -q '^ *$|^#' ); then continue; fi
    file=$(echo $line | cut -d" " -f2)

    pkg=$(echo $file|sed 's|^.*/||')          # Remove diretório
    packagedir=$(echo $pkg|sed 's|\.tar.*||') # Diretório do pacote

    name=$(echo $pkg|sed 's|-5.*$||') # Isolar o nome do pacote

    tar -xf $file
    pushd $packagedir

      # "kapidox" é um módulo Python
      case $name in
        kapidox)
          pip3 wheel -w dist --no-build-isolation --no-deps $PWD
          as_root pip3 install --no-index --find-links dist --no-cache-dir --no-user kapidox
          popd
          rm -rf $packagedir
          continue
      esac

      mkdir build
      cd    build

      cmake -DCMAKE_INSTALL_PREFIX=$KF5_PREFIX \
            -DCMAKE_PREFIX_PATH=$QT5DIR        \
            -DCMAKE_BUILD_TYPE=Release         \
            -DBUILD_TESTING=OFF                \
            -Wno-dev ..
      make
      as_root make install
    popd

  as_root rm -rf $packagedir
  as_root /sbin/ldconfig

done < frameworks-5.103.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.

Ocasionalmente, os caminhos de instalação são rigidamente codificados em arquivos instalados. Se o diretório instalado não for "/usr", [então] renomeie o diretório e crie um link simbólico:

mv -v /opt/kf5 /opt/kf5-5.103.0
ln -sfvn kf5-5.103.0 /opt/kf5

Explicações do Comando

-DCMAKE_PREFIX_PATH=$QT5DIR: Essa chave é usada para permitir que o "cmake" encontre as bibliotecas "Qt" adequadas.

-DCMAKE_BUILD_TYPE=Release: Essa chave é usada para aplicar um nível mais alto de otimização à compilação.

-DBUILD_TESTING=OFF: Essa chave é usada para evitar a construção de 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, checkXML5, depdiagram-generate, depdiagram-generate-all, depdiagram-prepare, desktoptojson, gentrigrams, kactivities-cli, kapidox_generate, kate-syntax-highlighter, kbuildsycoca5, kcookiejar5, kdebugdialog5, kded5, kdeinit5, kdeinit5_shutdown, kdeinit5_wrapper, kf5-config, kf5kross, kgendesignerplugin, kglobalaccel5, kiconfinder5, kjs5, kjscmd5, kjsconsole, knewstuff-dialog, kpackagelauncherqml, kpackagetool5, kquitapp5, kreadconfig5, kshell5, ktelnetservice5, ktrash5, kwalletd5, kwallet-query, kwrapper5, kwriteconfig5, meinproc5, parsetrigrams, plasmapkg2, preparetips5, protocoltojson e solid-hardware5
Bibliotecas Instaladas: libkdeinit5_klauncher.so, libKF5Activities.so, libKF5ActivitiesStats.so, libKF5Archive.so, libKF5Attica.so, libKF5AuthCore.so, libKF5Auth.so, libKF5Baloo.so, libKF5BluezQt.so, libKF5Bookmarks.so, libKF5CalendarCore.so, libKF5CalendarEvents.so, libKF5Codecs.so, libKF5Completion.so, libKF5ConfigCore.so, libKF5ConfigGui.so, libKF5ConfigWidgets.so, libKF5Contacts.so, libKF5CoreAddons.so, libKF5Crash.so, libKF5DAV.so, libKF5DBusAddons.so, libKF5Declarative.so, libKF5DNSSD.so, libKF5DocTools.so, libKF5Emoticons.so, libKF5FileMetaData.so, libKF5GlobalAccel.so, libKF5GuiAddons.so, libKF5Holidays.so, libKF5I18n.so, libKF5IconThemes.so, libKF5IdleTime.so, libKF5ItemModels.so, libKF5ItemViews.so, libKF5JobWidgets.so, libKF5JSApi.so, libKF5JsEmbed.so, libKF5JS.so, libKF5KCMUtils.so, libKF5KDELibs4Support.so, libKF5KHtml.so, libKF5KIOCore.so, libKF5KIOFileWidgets.so, libKF5KIOGui.so, libKF5KIONTLM.so, libKF5KIOWidgets.so, libKF5Kirigami2.so, libKF5KrossCore.so, libKF5KrossUi.so, libKF5MediaPlayer.so, libKF5NetworkManagerQt.so, libKF5NewStuffCore.so, libKF5NewStuff.so, libKF5Notifications.so, libKF5NotifyConfig.so, libKF5Package.so, libKF5Parts.so, libKF5PeopleBackend.so, libKF5People.so, libKF5PeopleWidgets.so, libKF5PlasmaQuick.so, libKF5Plasma.so, libKF5Plotting.so, libKF5Prison.so, libKF5Pty.so, libKF5Purpose.so, libKF5PurposeWidgets.so, libKF5QuickAddons.so, libKF5Runner.so, libKF5Service.so, libKF5Solid.so, libKF5SonnetCore.so, libKF5SonnetUi.so, libKF5Style.so, libKF5Su.so, libKF5SyntaxHighlighting.so, libKF5TextEditor.so, libKF5TextWidgets.so, libKF5ThreadWeaver.so, libKF5UnitConversion.so, libKF5Wallet.so, libKF5WaylandClient.so, libKF5WaylandServer.so, libKF5WidgetsAddons.so, libKF5WindowSystem.so, libKF5XmlGui.so, libKF5XmlRpcClient.so e libkwalletbackend5.so
Diretórios Instalados: /opt/kf5 (link simbólico para /opt/kf5-5.103.0) se instalar em /opt

Descrições Curtas

checkXML5

é 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 todos 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"

kbuildsycoca5

reconstrói o "cache" de configuração do sistema de arquivos da área de trabalho "KService"

kcookiejar5

é 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"

kded5

consolida vários pequenos serviços em um processo

kdeinit5

é um iniciador de processos mais ou menos semelhante ao famoso "init" usado para inicializar o "UNIX"

kf5-config

é um aplicativo de linha de comando usado para recuperar informações a respeito da instalação do "KDE" ou caminhos de usuário(a)

kf5kross

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"

kglobalaccel5

é um processo de segundo plano usado para registrar as combinações de teclas e para ser notificado(a) quando a ação for deflagrada

kjs5

é o mecanismo "ECMAScript"/"JavaScript" do "KDE"

kjscmd5

é uma ferramenta para iniciar conjuntos de comandos sequenciais "KJSEmbed" a partir da linha de comando

kjsconsole

é um console para o "kjs5"

kpackagelauncherqml

é uma ferramenta de linha de comando para iniciar o aplicativo "QML" "kpackage"

kpackagetool5

é uma ferramenta de linha de comando do "kpackage"

kreadconfig5

é uma ferramenta de linha de comando para recuperar valores a partir dos arquivos de configuração do "KDE"

kshell5

inicia aplicativos via "kdeinit"

ktelnetservice5

é um serviço de "telnet"

ktrash5

é um aplicativo auxiliar para lidar com a lixeira do "KDE"

kwalletd5

é o processo de segundo plano do gerenciador de carteira

kwriteconfig5

é uma ferramenta de linha de comando para escrever valores nos arquivos de configuração do "KDE"

meinproc5

converte arquivos "DocBook" para "HTML"

plasmapkg2

é uma ferramenta para instalar, listar e remover pacotes "Plasma"

preparetips5

é um conjunto de comandos sequenciais para extrair o texto a partir de um arquivo de dicas

solid-hardware5

é uma ferramenta de linha de comando para investigar dispositivos disponíveis

Capítulo 31. Aplicativos Baseados no KDE Frameworks 5

Ark-22.12.2

Introdução ao Ark

O pacote "Ark" é uma ferramenta de arquivamento "KF5". 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "Ark"

Exigidas

KDE Frameworks-5.103.0 e libarchive-3.6.2

Recomendadas

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/ark5

Instalação do Ark

Instale o "Ark" executando os seguintes comandos:

mkdir build &&
cd     build &&

cmake -DCMAKE_INSTALL_PREFIX=$KF5_PREFIX \
      -DCMAKE_BUILD_TYPE=Release         \
      -DBUILD_TESTING=OFF                \
      -Wno-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: $KF5_PREFIX/lib/plugins/kerfuffle, $KF5_PREFIX/share/doc/HTML/*/ark e $KF5_PREFIX/share/kxmlgui5/ark

Descrições Curtas

ark

é um Gerenciador de Arquivamentos baseado em "KF5"

Kdenlive-22.12.2

Introdução ao Kdenlive

O pacote "Kdenlive" é um editor de vídeos baseado em "KF5".

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "Kdenlive"

Exigidas

KDE Frameworks-5.103.0, mlt-7.12.0 e v4l-utils-1.22.1 (tempo de execução)

Recomendadas

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/kdenlive5

Instalação do Kdenlive

Instale o "Kdenlive" executando os seguintes comandos:

mkdir build &&
cd     build &&

cmake -DCMAKE_INSTALL_PREFIX=$KF5_PREFIX \
      -DCMAKE_BUILD_TYPE=Release         \
      -DBUILD_TESTING=OFF                \
      -Wno-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: $KF5_PREFIX/share/doc/HTML/*/kdenlive, $KF5_PREFIX/share/kdenlive e $KF5_PREFIX/share/kxmlgui5/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-22.12.2

Introdução ao KMix

O pacote "KMix" contém um aplicativo Misturador de Som baseado em "KF5".

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "KMix"

Exigidas

KDE Frameworks-5.103.0

Recomendadas
Opcionais

libcanberra-0.30 e PulseAudio-16.1

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/kmix5

Instalação do KMix

Instale o "KMix" executando os seguintes comandos:

mkdir build &&
cd     build &&

cmake -DCMAKE_INSTALL_PREFIX=$KF5_PREFIX \
      -DCMAKE_BUILD_TYPE=Release         \
      -DBUILD_TESTING=OFF                \
      -Wno-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: $KF5_PREFIX/share/kmix, $KF5_PREFIX/share/kxmlgui5/kmix e $KF5_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

kio-extras-22.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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "kio-extras"

Exigidas

kdsoap-2.1.1 e KDE Frameworks-5.103.0

Opcionais

libtirpc-1.3.3, Samba-4.17.5, taglib-1.13, libmtp, libssh e OpenEXR

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/kio-extras

Instalação do kio-extras

Instale o "kio-extras" executando os seguintes comandos:

mkdir build &&
cd     build &&

cmake -DCMAKE_INSTALL_PREFIX=$KF5_PREFIX \
      -DCMAKE_BUILD_TYPE=Release         \
      -DBUILD_TESTING=OFF                \
      -Wno-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)
Bibliotecas Instaladas: libkioarchive.so e trinta e dois (32) "plugins"
Diretórios Instalados: Nenhum(a)

Khelpcenter-22.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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "Khelpcenter"

Exigidas

grantlee-5.3.1, KDE Frameworks-5.103.0, libxml2-2.10.3 e xapian-1.4.22

Recomendadas

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/khelpcenter

Instalação do Khelpcenter

Instale o "khelpcenter" executando os seguintes comandos:

mkdir build &&
cd     build &&

cmake -DCMAKE_INSTALL_PREFIX=$KF5_PREFIX \
      -DCMAKE_BUILD_TYPE=Release         \
      -DBUILD_TESTING=OFF                \
      -Wno-dev .. &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

make install   &&

mv -v $KF5_PREFIX/share/kde4/services/khelpcenter.desktop /usr/share/applications/ &&
rm -rv $KF5_PREFIX/share/kde4

Conteúdo

Aplicativo Instalado: khelpcenter
Bibliotecas Instaladas: libkdeinit5_khelpcenter.so
Diretórios Instalados: $KF5_PREFIX/share/khelpcenter, $KF5_PREFIX/share/kxmlgui5/khelpcenter e $KF5_PREFIX/share/doc/HTML/*/{khelpcenter,fundamentals,onlinehelp}

Descrições Curtas

khelpcenter

é o visualizador de ajuda para aplicativos do "KDE"

Konsole-22.12.2

Introdução ao Konsole

O pacote "Konsole" é um emulador de terminal baseado em "KF5".

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Transferências Adicionais

Dependências do "Konsole"

Exigidas

KDE Frameworks-5.103.0

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/konsole5

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, [então] aplique o remendo opcional ao pacote:

patch -Np1 -i ../konsole-22.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, [então] as cores podem ser mudadas a gosto editando-se o remendo.

Instale o "Konsole" executando os seguintes comandos:

mkdir build &&
cd     build &&

cmake -DCMAKE_INSTALL_PREFIX=$KF5_PREFIX \
      -DCMAKE_BUILD_TYPE=Release         \
      -DBUILD_TESTING=OFF                \
      -Wno-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: libkdeinit5_konsole.so e libkonsoleprivate.so
Diretórios Instalados: $KF5_PREFIX/share/doc/HTML/*/konsole, $KF5_PREFIX/share/konsole e $KF5_PREFIX/share/kxmlgui5/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

libkexiv2-22.12.2

Introdução ao libkexiv2

"Libkexiv2" é um invólucro do "KDE" em torno da biblioteca "Exiv2" para manipular metadados de imagens.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "libkexiv2"

Exigidas

KDE Frameworks-5.103.0 e Exiv2-0.27.6

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libkexiv2

Instalação do libkexiv2

Instale o "libkexiv2" executando os seguintes comandos:

mkdir build &&
cd     build &&

cmake -DCMAKE_INSTALL_PREFIX=$KF5_PREFIX \
      -DCMAKE_BUILD_TYPE=Release         \
      -DBUILD_TESTING=OFF                \
      -Wno-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: libKF5KExiv2.so
Diretórios Instalados: $KF5_PREFIX/include/KF5/KExiv2 e $KF5_PREFIX/lib/cmake/KF5KExiv2

Okular-22.12.2

Introdução ao Okular

"Okular" é um visualizador de documentos para o "KDE". Ele consegue visualizar documentos de muitos tipos, incluindo "PDF", "PostScript", "TIFF", "CHM" da Microsoft, "DjVu", "DVI", "XPS" e "ePub".

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "Okular"

Exigidas

KDE Frameworks-5.103.0

Recomendadas
Opcionais

qca-2.3.5, discount, DjVuLibre, kpimtextedit, libspectre (para suporte a "PostScript"), libchm, libepub e Mobipocket

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/okular5

Instalação do Okular

Instale o "Okular" executando os seguintes comandos:

Nota

Se quaisquer das dependências opcionais estiverem instaladas, [então] remova a referência associada na variável de ambiente "SKIP_OPTIONAL".

mkdir build &&
cd     build &&

SKIP_OPTIONAL='LibSpectre;CHM;LibZip;DjVuLibre;EPub;QMobipocket;Discount'

cmake -DCMAKE_INSTALL_PREFIX=$KF5_PREFIX \
      -DCMAKE_BUILD_TYPE=Release         \
      -DBUILD_TESTING=OFF                \
      -DFORCE_NOT_REQUIRED_DEPENDENCIES="$SKIP_OPTIONAL" \
      -Wno-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: libOkular5Core.so
Diretórios Instalados: $KF5_PREFIX/include/okular, $KF5_PREFIX/lib/cmake/Okular5, $KF5_PREFIX/lib/plugins/okular, $KF5_PREFIX/share/kxmlgui5/okular, $KF5_PREFIX/share/okular, $KF5_PREFIX/share/doc/HTML/*/okular

Descrições Curtas

okular

é um visualizador de documentos

libkdcraw-22.12.2

Introdução ao libkdcraw

"Libkdcraw" é um invólucro do "KDE" em torno da biblioteca "libraw-0.21.1" para manipular metadados de imagens.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "libkdcraw"

Exigidas

KDE Frameworks-5.103.0 e libraw-0.21.1

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libkdcraw

Instalação do libkdcraw

Instale o "libkdcraw" executando os seguintes comandos:

mkdir build &&
cd     build &&

cmake -DCMAKE_INSTALL_PREFIX=$KF5_PREFIX \
      -DCMAKE_BUILD_TYPE=Release         \
      -DBUILD_TESTING=OFF                \
      -Wno-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: libKF5KDcraw.so
Diretórios Instalados: $KF5_PREFIX/include/KF5/KDCRAW e $KF5_PREFIX/lib/cmake/KF5KDcraw

Gwenview-22.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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "Gwenview"

Exigidas

Exiv2-0.27.6, kimageannotator-0.6.0, KDE Frameworks-5.103.0 e Little CMS-2.14

Recomendadas
Opcionais

KF5Kipi

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/gwenview

Instalação do Gwenview

Instale o "Gwenview" executando os seguintes comandos:

mkdir build &&
cd     build &&

cmake -DCMAKE_INSTALL_PREFIX=$KF5_PREFIX \
      -DCMAKE_BUILD_TYPE=Release         \
      -DBUILD_TESTING=OFF                \
      -Wno-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: $KF5_PREFIX/share/{kxmlgui5/gvpart,gwenview,doc/HTML/*/gwenview}

Descrições Curtas

gwenview

é o visualizador de imagens do "KDE"

gwenview_importer

é um importador de Fotografias

libkcddb-22.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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "libkcddb"

Exigidas

KDE Frameworks-5.103.0 e libmusicbrainz-5.1.0

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libkcddb

Instalação do libkcddb

Instale o "libkcddb" executando os seguintes comandos:

mkdir build &&
cd     build &&

cmake -DCMAKE_INSTALL_PREFIX=$KF5_PREFIX \
      -DCMAKE_BUILD_TYPE=Release         \
      -DBUILD_TESTING=OFF                \
      -Wno-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)
Bibliotecas Instaladas: libKF5Cddb.so e kcm_cddb.so
Diretórios Instalados: $KF5_PREFIX/include/KF5/KCddb e $KF5_PREFIX/lib/cmake/KF5Cddb $KF5_PREFIX/share/doc/HTML/*/kcontrol

Descrições Curtas

libkcddb.so

contém funções usadas para recuperar metadados de "CD" de áudio a partir da Internet

k3b-22.12.2

Introdução ao K3b

O pacote "K3b" contém uma interface gráfica baseada em "KF5" 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do "K3b"

Exigidas

KDE Frameworks-5.103.0, libkcddb-22.12.2, libsamplerate-0.2.2 e shared-mime-info-2.2

A unidade de "CD"/"DVD" é detectada em tempo de execução usando o "UDisks-2.9.4", que precisa, por esse motivo, ser instalado antes de executar o "k3b".

Recomendadas
Tempo de Execução Opcional

FFmpeg-5.1.2

Opcionais

FLAC-1.4.2, LAME-3.100, libmad-0.15.1b, libsndfile-1.2.0, libvorbis-1.3.7, libmusicbrainz-2.1.5 e Musepack (libmpcdec)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/k3b

Instalação do K3b

Instale o "K3b" executando os seguintes comandos:

mkdir build &&
cd     build &&

cmake -DCMAKE_INSTALL_PREFIX=$KF5_PREFIX \
      -DCMAKE_BUILD_TYPE=Release         \
      -DBUILD_TESTING=OFF                \
      -Wno-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: $KF5_PREFIX/share/{,kxmlgui5/}k3b e $KF5_PREFIX/share/doc/HTML/*/k3b

Descrições Curtas

k3b

é o aplicativo gráfico de "CD"/"DVD"

Outros pacotes do KDE5

Esta seção não fornece instruções para todos os pacotes disponíveis na Compilação de Logiciário do "KDE5". Os pacotes incluídos foram selecionados com base 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 "KDE5" em https://download.kde.org/stable/release-service/22.12.2/src.

Observações de Usuário(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 aplicativo de mapas globais.

  • 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 -Wno-dev -L .

A maioria desses pacotes pode ser construída com as instruções padrão do "KDE5":

mkdir build &&
cd     build &&

cmake -DCMAKE_INSTALL_PREFIX=$KF5_PREFIX \
      -DCMAKE_BUILD_TYPE=Release         \
      -DBUILD_TESTING=OFF                \
      -Wno-dev .. &&
make

E como o(a) usuário(a) "root":

make install

Capítulo 32. Plasma 5 do KDE

"Plasma" 5 do "KDE" é um ambiente de área de trabalho construído usando o "Frameworks" 5 do "KDE" e "QML" que roda em cima de uma pilha de gráficos totalmente acelerada por "hardware" usando "Qt5", "QtQuick" 2 e um gráfico de cena "OpenGL(-ES)".

Nenhuma configuração adicional é necessária antes de construir o "Plasma" 5 do "KDE" porque ele usa a mesma configuração que o "Frameworks" 5 do "KDE" usa.

Construindo o Plasma 5

"Plasma" 5 do "KDE" é uma coleção de pacotes baseados no "Frameworks" 5 do "KDE" e "QML". Eles implementam o Ambiente de Exibição do "KDE" ("Plasma" 5).

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

As instruções abaixo constroem todos os pacotes do "Plasma" 5 em uma etapa usando um conjunto de comandos sequenciais do "Bash".

Informação do Pacote

  • Transferência (HTTP): https://download.kde.org/stable/plasma/5.26.5

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: Veja-se Abaixo

  • Tamanho da transferência: 192 MB

  • Espaço em disco estimado exigido: 1,7 GB (419 MB instalado)

  • Tempo de construção estimado: 18 UPC (usando paralelismo = 4)

Dependências do "Plasma" 5

Exigidas

GTK+-2.24.33, GTK+-3.24.36, KDE Frameworks-5.103.0, kuserfeedback-1.2.0, libpwquality-1.4.5, libqalculate-4.5.1, libxkbcommon-1.5.0, Mesa-22.3.5 construído com Wayland-1.21.0, NetworkManager-1.42.0, pipewire-0.3.66, PulseAudio-16.1, qca-2.3.5, sassc-3.6.2, taglib-1.13 e xcb-util-cursor-0.1.4

Recomendadas
Recomendadas (tempo de execução)
Opcionais

GLU-9.0.2, ibus-1.5.27, qtwebengine-5.15.12, Controlador Synaptics do Xorg-1.9.2, appstream-qt, KDevPlatform, libgps, libhybris, libraw1394, mockcpp, packagekit-qt, Qalculate, Qapt, SCIM e socat (para o "pam_kwallet")

Nota

"qtwebengine-5.15.12" é exigido para o "aura-browser", que ainda está em estágio de desenvolvimento beta. Também é opcional para dois outros pacotes: "libksysguard" e "kdeplasma-addons". Se o "QtWebEngine" for instalado posteriormente, [então] somente esses dois pacotes precisarão ser reconstruídos. Isso permite uma exibição mais completa no aplicativo de monitoramento do sistema.

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/kf5

Baixando o Plasma5 do KDE

A maneira mais fácil de obter os pacotes do "Plasma5" do "KDE" é a de usar um "wget" para buscá-los todos de uma vez:

url=https://download.kde.org/stable/plasma/5.26.5/
wget -r -nH -nd -A '*.xz' -np $url

As opções usadas aqui são:
  -r            recursar ao longo de diretórios descentes
  -nH           desabilitar a geração de diretórios com prefixo de dispositivo
  -nd           não crie uma hierarquia de diretórios
  -A '*.xz'     apenas obter os arquivos *.xz
  -np           não obtenha diretórios ancestrais

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-5.26.5.md5 << "EOF"
e436a039ec6b0016e5f52a71a5086ad8  kdecoration-5.26.5.tar.xz
ec10440342d3b227499b61bbf86c04ab  libkscreen-5.26.5.tar.xz
a7a235a4d105eaa37c9c9923f34b7019  libksysguard-5.26.5.tar.xz
65c2bc9680f8830b1fdfc231a2923fe7  breeze-5.26.5.tar.xz
b43a9abaa1dbf083fbac92febf06ee62  breeze-gtk-5.26.5.tar.xz
2a5c3f9ddb0dd1394574c85237c6a99d  layer-shell-qt-5.26.5.tar.xz
fbf3d2ff3dcfe2eb6770f18f0784b693  kscreenlocker-5.26.5.tar.xz
44db61e1b0c27d951cfc0dd45fa19947  oxygen-5.26.5.tar.xz
4a04fbf14eee03b81a5f95701758dadc  kinfocenter-5.26.5.tar.xz
6b2566e536949698fcb43ecb1cb331c8  kwin-5.26.5.tar.xz
9b5ddbc03683da742ac0c03c821d9084  plasma-workspace-5.26.5.tar.xz
4c118121937c0c92ab9630b28be83aab  plasma-disks-5.26.5.tar.xz
3440d7a273988cddb711ddd864ae85d7  bluedevil-5.26.5.tar.xz
75f668ce669e853565c375937ca6db3b  kde-gtk-config-5.26.5.tar.xz
6e8673a19904011d79d9b8fd69890443  khotkeys-5.26.5.tar.xz
7425d8cd9889bdb327b8a8b339274aa5  kmenuedit-5.26.5.tar.xz
6f600d487eda8fd2cddf3e13c322ce78  kscreen-5.26.5.tar.xz
def2d41c607309fdb622b270833b6078  kwallet-pam-5.26.5.tar.xz
ce7b641d174973be3b944f9279609eaf  kwayland-integration-5.26.5.tar.xz
eb2171403b7fbae6b257404f58fea865  kwrited-5.26.5.tar.xz
fc04856efefea7eba22064e7afdbddf7  milou-5.26.5.tar.xz
adb5371f4383332da2d7bdc643d1ba3d  plasma-nm-5.26.5.tar.xz
8a277824eec12d339b9b0cec40e141da  plasma-pa-5.26.5.tar.xz
5112039742fa249c6272196fd2ea9b8c  plasma-workspace-wallpapers-5.26.5.tar.xz
1319507df888d5d1d1584487c72bb41c  polkit-kde-agent-1-5.26.5.tar.xz
1636fa123a48123922c6bd9114601188  powerdevil-5.26.5.tar.xz
9c85a12b5fc4593ee3c9c3602b7c1fd7  plasma-desktop-5.26.5.tar.xz
297ae0e3b025e2d8a9a6b4301aed97b3  kgamma5-5.26.5.tar.xz
b34c0f8e8f00c881fa6636941a646cdf  ksshaskpass-5.26.5.tar.xz
#5310bb325acaacddd75cfcc9beb720ae  plasma-sdk-5.26.5.tar.xz
579e478775361bbb3499e1ec5b5011a1  sddm-kcm-5.26.5.tar.xz
4c5d0fd055f04e9104de1039fb3d19e4  discover-5.26.5.tar.xz
#4eddbae9f9e4add3637dd9fd99290047  breeze-grub-5.26.5.tar.xz
#ddbea7d8d6c6bc3953039075628de7ee  breeze-plymouth-5.26.5.tar.xz
7a85cf42b67ac38e490f0749cd25496e  kactivitymanagerd-5.26.5.tar.xz
235d1c02582787ff5dd825fae434e6f9  plasma-integration-5.26.5.tar.xz
a97a00137fcd4e446cbf849983bd1e64  plasma-tests-5.26.5.tar.xz
#d16a86f8aee8e7f0da084535cdccca7f  plymouth-kcm-5.26.5.tar.xz
49abaee061653e65afe9ba509c6aef41  xdg-desktop-portal-kde-5.26.5.tar.xz
8ea7332f06db75e41357cfe49d893042  drkonqi-5.26.5.tar.xz
e147fcf2d2cfc030c3a5e12373e8dc29  plasma-vault-5.26.5.tar.xz
a17305d04e3f43cd2c63870e58aa1002  plasma-browser-integration-5.26.5.tar.xz
d7bf771ac16efb7b8c3c4e6a34193002  kde-cli-tools-5.26.5.tar.xz
5c9d258caff107e2d668308fbdc1b88a  systemsettings-5.26.5.tar.xz
fb368c5c4ac28061a706c3558e4c4b66  plasma-thunderbolt-5.26.5.tar.xz
#ebe05c7b3b95d0dca235830ab17b8d57  plasma-nano-5.26.5.tar.xz
#cb64c2c61676c499f1807184928083c7  plasma-mobile-5.26.5.tar.xz
0ac0a579b57b76e664d172845ae06a07  plasma-firewall-5.26.5.tar.xz
d5c8bac2d756982328cd541649a7002b  plasma-systemmonitor-5.26.5.tar.xz
17608c1fb4b6503193a5769f35c7f9e5  qqc2-breeze-style-5.26.5.tar.xz
146cef26a5a9b3c82d46cabd6842a07c  ksystemstats-5.26.5.tar.xz
6943aba014019057384b47339bb8ed0a  oxygen-sounds-5.26.5.tar.xz
#7CF5ED434a6d21fd8458f89207986b9a  aura-browser-5.26.5.tar.xz
fc695034a7236fb6eab8a324216bc710  kdeplasma-addons-5.26.5.tar.xz
71fce4036d0f6a6fdc9bf5db3d47b9c9  kpipewire-5.26.5.tar.xz
26e7ae5887a56e971d2510262f9e0b55  plank-player-5.26.5.tar.xz
116e7d1a64ee17d5a31aed066709725a  plasma-bigscreen-5.26.5.tar.xz
d55d570e84840440f89233c8915e5872  plasma-remotecontrollers-5.26.5.tar.xz
EOF

Acerca de Pacotes Comentados

Os pacotes "breeze-grub", "breeze-plymouth" e "plymouth-kcm" acima são todos para suporte personalizado do "Plymouth", que foi projetado para ser executado em um disco "RAM" inicial durante a inicialização (veja-se “A respeito do initramfs”). O pacote "plasma-sdk" é opcional e usado para desenvolvimento de logiciário. O pacote "plasma-nano" é usado para sistemas embarcados e o "plasma-mobile" fornece funcionalidade de telefone para o "Plasma". O pacote "aura-browser" ainda está sob desenvolvimento beta e exige o "qtwebengine-5.15.12".

Instalação do Plasma5

Nota

Ao instalar-se múltiplos pacotes em um "script", a instalação precisa ser feita como o(a) usuário(a) "root". Existem três opções gerais que podem ser usadas para fazer isso:

  1. Executar o "script" inteiro como o(a) usuário(a) "root" (não recomendado).

  2. Usar o comando "sudo" oriundo do pacote Sudo-1.9.13p1.

  3. Usar su -c "argumentos do comando" (aspas exigidas) o qual solicitará a senha do(a) "root" para cada interação do "loop".

Uma maneira de se lidar com essa situação é a de criar uma função curta do "bash" que seleciona automaticamente o método apropriado. Tão logo o comando seja configurado no ambiente, ele não precisa ser novamente configurado.

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

    # Obtenha o nome do arquivo, ignorando comentários e linhas em branco
    if $(echo $line | grep -E -q '^ *$|^#' ); then continue; fi
    file=$(echo $line | cut -d" " -f2)

    pkg=$(echo $file|sed 's|^.*/||')          # Remove diretório
    packagedir=$(echo $pkg|sed 's|\.tar.*||') # Diretório do pacote

    tar -xf $file
    pushd $packagedir

       mkdir build
       cd    build

       cmake -DCMAKE_INSTALL_PREFIX=$KF5_PREFIX \
             -DCMAKE_BUILD_TYPE=Release         \
             -DBUILD_TESTING=OFF                \
             -Wno-dev ..  &&

        make
        as_root make install
    popd


    as_root rm -rf $packagedir
    as_root /sbin/ldconfig

done < plasma-5.26.5.md5

exit

Se você não configurou "$KF5_PREFIX" como "/usr", [então] crie links simbólicos para permitir que os gerenciadores de tela encontrem o "Plasma":

as_root install -dvm 755 /usr/share/xsessions               &&
cd /usr/share/xsessions/                                   &&
[ -e plasma.desktop ]                                      ||
as_root ln -sfv $KF5_PREFIX/share/xsessions/plasma.desktop &&
as_root install -dvm 755 /usr/share/wayland-sessions       &&
cd /usr/share/wayland-sessions/                            &&
[ -e plasmawayland.desktop ]                               ||
as_root ln -sfv $KF5_PREFIX/share/wayland-sessions/plasmawayland.desktop

Configurando o Plasma

Configuração do PAM do Linux

Se você construiu o "Plasma" com o suporte "Linux PAM" recomendado, [então] 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"
# Inicia /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

# Termina /etc/pam.d/kde
EOF

cat > /etc/pam.d/kde-np << "EOF"
# Inicia /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

# Termina /etc/pam.d/kde-np
EOF

cat > /etc/pam.d/kscreensaver << "EOF"
# Inicia /etc/pam.d/kscreensaver

auth    include system-auth
account include system-account

# Termina /etc/pam.d/kscreensaver
EOF

Iniciando o Plasma5

Você consegue iniciar o "Plasma5" a partir de um "TTY", usando o "xinit-1.4.2".

Para iniciar o "Plasma 5" usando o "xinit-1.4.2", execute os seguintes comandos:

cat > ~/.xinitrc << "EOF"
dbus-launch --exit-with-x11 $KF5_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 "vt" onde o "X" estava executando. Se você deseja ver essas mensagens, [então] pressione simultaneamente as teclas "Alt-F7" (assumindo que o "X" estava executando no "vt7").

Conteúdo

Aplicativos Instalados: Existem muitíssimos aplicativos do "Plasma" (sessenta e três (63) em "/opt/kf5/bin") para listar separadamente aqui.
Bibliotecas Instaladas: Existem muitíssimas bibliotecas do "Plasma" (quarenta (40) em "/opt/kf5/lib") para listar separadamente aqui.
Diretórios Instalados: Existem muitíssimos diretórios do "Plasma" (mais que mil (1000) em "/opt/kf5") 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.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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Gcr

Exigidas

GLib-2.74.5, libgcrypt-1.10.1 e p11-kit-0.24.1

Recomendadas
Opcionais

Gi-DocGen-2023.1 e Valgrind-3.20.0

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/gcr

Instalação do Gcr

Instale o Gcr executando os seguintes comandos:

sed -i 's:"/desktop:"/org:' schema/*.xml &&

mkdir build &&
cd     build &&

meson --prefix=/usr --buildtype=release -Dgtk_doc=false .. &&
ninja

Se você tiver o Gi-DocGen-2023.1 instalado e desejar construir a documentação da API para esse pacote, emita:

sed -e "/install_dir/s@,\$@ / 'gcr-3.41.1'&@" \
    -e "/fatal-warnings/d"                     \
    -i ../docs/*/meson.build                  &&
meson configure -Dgtk_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.

-Dgtk=false: Use essa chave se você não tiver instalado o GTK+-3.24.36. Observe que o gcr-viewer não será instalado se isso for passado para o meson.

-Dgtk_doc=true: Permite construir esse pacote sem "Gi-DocGen-2023.1" instalado. Se tiver "Gi-DocGen-2023.1" instalado e você desejar reconstruir e instalar a documentação da "API", [então] 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.0.0

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Gcr

Exigidas

GLib-2.74.5, libgcrypt-1.10.1 e p11-kit-0.24.1

Recomendadas
Opcionais

Gi-DocGen-2023.1 e Valgrind-3.20.0

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/gcr

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-43.3.

Instale o Gcr executando os seguintes comandos:

mkdir build &&
cd     build &&

meson --prefix=/usr --buildtype=release -Dgtk_doc=false .. &&
ninja

Se você tiver o Gi-DocGen-2023.1 instalado e desejar construir a documentação da API para esse pacote, emita:

sed -e "/install_dir/s@,\$@ / 'gcr-4.0.0'&@" \
    -e "/fatal-warnings/d"                    \
    -i ../docs/*/meson.build                 &&
meson configure -Dgtk_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.

-Dgtk=false: Use essa chave se você não tiver instalado o GTK-4.8.3. Observe que o gcr-viewer não será instalado se isso for passado para o meson.

-Dgtk_doc=true: Permite construir esse pacote sem "Gi-DocGen-2023.1" instalado. Se tiver "Gi-DocGen-2023.1" instalado e você desejar reconstruir e instalar a documentação da "API", [então] um comando "meson configure" reconfigurará essa opção.

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-43.0

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do GSettings Desktop Schemas

Exigidas

GLib-2.74.5 e gobject-introspection-1.74.0

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/gsettings-desktop-schemas

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 --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.20.5

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do libsecret

Exigidas

GLib-2.74.5

Recomendadas
Opcionais

Gi-DocGen-2023.1 e docbook-xml-4.5, docbook-xsl-nons-1.79.2, libxslt-1.1.37 (para construir páginas de manual) e Valgrind-3.20.0 (pode ser usado em testes)

Opcionais (exigidas para a suíte de teste)

D-Bus Python-1.3.2, Gjs-1.74.1, PyGObject-3.42.2 (módulo do Python 3) e tpm2-tss

Dependência de Tempo de Execução

gnome-keyring-42.1

Nota

Qualquer pacote que exija a libsecret espera que o GNOME Keyring esteja presente em tempo de execução.

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libsecret

Instalação do libsecret

Instale o libsecret executando os seguintes comandos:

mkdir bld &&
cd bld &&

meson --prefix=/usr --buildtype=release -Dgtk_doc=false .. &&
ninja

Se você tiver o Gi-DocGen-2023.1 instalado e desejar construir a documentação da API para esse pacote, emita:

sed "s/api_version_major/'0.20.5'/"             \
    -i ../docs/reference/libsecret/meson.build &&
meson configure -Dgtk_doc=true                 &&
ninja

Agora, como o(a) usuário(a) root:

ninja install

Para testar os resultados, emita: dbus-run-session ninja test.

Se o gi-docgen estiver instalado e o -Dgtk_doc=false tiver sido removido, como o(a) usuário(a) root, emita o seguinte comando para corrigir o nome do diretório de documentação instalado:

mv -v /usr/share/doc/libsecret-{1,0.20.5}

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.

-Dgtk_doc=false: Permite construir esse pacote sem "Gi-DocGen-2023.1" instalado. Se tiver "Gi-DocGen-2023.1" instalado e você desejar reconstruir e instalar a documentação da "API", [então] um comando "meson configure" reconfigurará essa opção.

-Dmanpage=false: Use essa chave se você não tiver instalado os pacotes libxslt-1.1.37 e DocBook.

-Dgcrypt=false: Use essa chave se você não tiver instalado a dependência recomendada da libgcrypt-1.10.1.

Conteúdo

Aplicativo Instalado: secret-tool
Biblioteca Instalada: libsecret-1.so
Diretórios Instalados: /usr/include/libsecret-1 e /usr/share/doc/libsecret-0.20.5

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 facilitar o uso remoto da API RESTful.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do rest

Exigidas

JSON-GLib-1.6.6, libsoup-3.2.2 e make-ca-1.12

Recomendadas
Opcionais

Gi-DocGen-2023.1, libadwaita-1.2.2 e gtksourceview5-5.6.2 (para construir a demonstração) e Vala-0.56.4

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/rest

Instalação do rest

Instale o rest executando os seguintes comandos:

mkdir build &&
cd     build &&

meson --prefix=/usr        \
      --buildtype=release  \
      -Dexamples=false     \
      -Dgtk_doc=false      .. &&
ninja

Se você tiver o Gi-DocGen-2023.1 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 -Dgtk_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.

-Dgtk_doc=false: Permite construir esse pacote sem "Gi-DocGen-2023.1" instalado. Se tiver "Gi-DocGen-2023.1" instalado e você desejar reconstruir e instalar a documentação da "API", [então] um comando "meson configure" reconfigurará essa opção.

-Dexamples=false: Remova essa opção se libadwaita-1.2.2 e gtksourceview5-5.6.2 estiverem instalados e você desejar construir o aplicativo de demonstração fornecido por esse pacote.

-Dvapi=true: Use essa chave se Vala-0.56.4 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Totem PL Parser

Recomendadas
Opcionais

CMake-3.25.2, GTK-Doc-1.33.2, Gvfs-1.50.3 (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

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/totem-pl-parser

Instalação do Totem PL Parser

Instale o Totem PL Parser executando os seguintes comandos:

mkdir build &&
cd     build &&

meson --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)
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.70.3

Introdução ao VTE

O pacote VTE contém uma implementação de arquivo termcap para emuladores de terminal.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://gitlab.gnome.org/GNOME/vte/-/archive/0.70.3/vte-0.70.3.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 86d2b49dcb1d05b489d228892b49c28a

  • Tamanho da transferência: 616 KB

  • Espaço em disco estimado exigido: 14 MB (com os testes)

  • Tempo de construção estimado: 0,4 UPC (usando paralelismo = 4; com os testes)

Dependências do VTE

Exigidas

GTK+-3.24.36, libxml2-2.10.3 e pcre2-10.42

Recomendadas
Opcionais

FriBidi-1.0.12, Gi-DocGen-2023.1 e GTK-4.8.3

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/vte

Instalação do VTE

Instale o VTE executando os seguintes comandos:

mkdir build &&
cd     build &&

meson --prefix=/usr --buildtype=release -Dfribidi=false .. &&
ninja

Se você tiver o Gi-DocGen-2023.1 instalado e desejar construir a documentação da API para esse pacote, emita:

sed -e "/docdir =/s@\$@/ 'vte-0.70.3'@" \
    -e "/fatal-warnings/d"               \
    -i ../doc/reference/meson.build     &&
meson configure -Ddocs=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.

-Dfribidi=false: Omita essa chave se você desejar habilitar recursos bidirecionais.

-Dgnutls=false: Adicione essa chave se você não quiser habilitar o suporte GnuTLS.

-Dvapi=false: Adicione essa chave se você não quiser habilitar ligações Vala.

-Dgtk4=true: Adicione essa chave para construir a pequena engenhoca GTK4.

Conteúdo

Aplicativo Instalado: vte-2.91
Biblioteca Instalada: libvte-2.91.so
Diretórios Instalados: /usr/include/vte-2.91 e (opcional) /usr/share/doc/vte-0.70.3

Descrições Curtas

vte-2.91

é um aplicativo de teste para as bibliotecas do VTE

libvte-2.91.so

é uma biblioteca que implementa uma pequena engenhoca de emulador de terminal para o GTK+ 3

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Yelp XSL

Exigidas

libxslt-1.1.37 e itstool-2.0.7

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/yelp-xsl

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

GConf-3.2.6

Introdução ao GConf

O pacote GConf contém um sistema de base de dados de configuração usado por muitos aplicativos GNOME.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do GConf

Exigidas

dbus-glib-0.112 e libxml2-2.10.3

Recomendadas
Opcionais

OpenLDAP-2.6.4

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/gconf

Instalação do GConf

Instale o GConf executando os seguintes comandos:

./configure --prefix=/usr \
             --sysconfdir=/etc \
             --disable-orbit \
             --disable-static &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install &&
ln -s gconf.xml.defaults /etc/gconf/gconf.xml.system

Explicações do Comando

--disable-orbit: Essa chave é exigida se ORBit2 não estiver instalado. ORBit2 é um pacote obsoleto.

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Conteúdo

Aplicativos Instalados: gconf-merge-tree, gconftool-2, gsettings-data-convert e gsettings-schema-convert
Bibliotecas Instaladas: libgconf-2.so e libgsettingsgconfbackend.so (Módulo GIO instalado em /usr/lib/gio/modules)
Diretórios Instalados: /etc/gconf, /usr/include/gconf, /usr/lib/GConf, /usr/share/gtk-doc/html/gconf e /usr/share/sgml/gconf

Descrições Curtas

gconf-merge-tree

mescla uma hierarquia de sistema de arquivos XML

gconftool-2

é uma ferramenta de linha de comando usada para manipular a base de dados do GConf

gsettings-data-convert

lê valores da base de dados de usuários(as) do GConf e os armazena em GSettings

gsettings-schemas-convert

converte entre os formatos de arquivo de esquema GConf e GSettings

libgconf-2.so

fornece as funções necessárias para manter a base de dados de configuração

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 permite fazer geocodificação (encontrar longitude e latitude a partir de um endereço) e geocodificação reversa (encontrar um endereço a partir de coordenadas).

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Geocode GLib

Exigidas

JSON-GLib-1.6.6 e libsoup-3.2.2

Recomendadas
Opcionais

GTK-Doc-1.33.2

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/geocode-glib

Instalação do Geocode GLib

Instale o Geocode GLib executando os seguintes comandos:

mkdir build                   &&
cd    build                   &&

meson --prefix /usr           \
      --buildtype=release     \
      -Denable-gtk-doc=false  \
      -Dsoup2=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.

-Denable-gtk-doc=false: Permite que esse pacote seja construído sem o GTK-Doc-1.33.2. Remova esse parâmetro se o GTK-Doc-1.33.2 estiver instalado e você desejar reconstruir e instalar a documentação da API.

-Dsoup2=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.74.1

Introdução ao Gjs

Gjs é um conjunto de ligações Javascript para GNOME.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Gjs

Exigidas

Cairo-1.17.6, dbus-1.14.6, gobject-introspection-1.74.0 e JS-102.8.0

Recomendadas (exigidas para GNOME)
Opcionais

sysprof-3.46.0, Valgrind-3.20.0 (para testes), DTrace, LCOV e Systemtap

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/gjs

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. Os testes GTK e Cairo falharão se não executarem em uma sessão do Xorg. Quatro testes são conhecidos por atingirem o tempo limite.

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 que o meson use substitutos de subprojeto para quaisquer declarações de dependência nos arquivos de construção, impedindo-o de baixar qualquer dependência opcional que não esteja instalada no sistema.

-Dprofiler=disabled: evita a construção da estrutura de retaguarda do perfilador, mesmo se o sysprof-3.46.0 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.3

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do gnome-autoar

Exigidas

libarchive-3.6.2 e GTK+-3.24.36

Recomendadas
Opcionais

GTK-Doc-1.33.2 (para construir documentação)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/gnome-autoar

Instalação do gnome-autoar

Instale o gnome-autoar executando os seguintes comandos:

mkdir build &&
cd    build &&

meson --prefix=/usr --buildtype=release -Dvapi=true -Dtests=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.

-Dgtk_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-43.2

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do GNOME Desktop

Exigidas

gsettings-desktop-schemas-43.0, GTK+-3.24.36, GTK-4.8.3, ISO Codes-4.12.0, itstool-2.0.7, libseccomp-2.5.4, libxml2-2.10.3 e xkeyboard-config-2.38

Recomendadas
Opcionais

GTK-Doc-1.33.2

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/gnome-desktop

Instalação do GNOME Desktop

Instale o GNOME Desktop executando os seguintes comandos:

mkdir build &&
cd    build &&

meson --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.

-Dgtk_doc=true: Use esse parâmetro se você desejar construir a documentação da API.

-Dinstalled_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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do GNOME Menus

Exigidas

GLib-2.74.5

Recomendadas

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/gnome-menus

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-video-effects-0.5.0

Introdução ao GNOME Video Effects

O pacote GNOME Video Effects contém uma coleção de efeitos GStreamer.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/gnome-video-effects

Instalação do GNOME Video Effects

Instale o GNOME Video Effects executando os seguintes comandos:

mkdir build &&
cd    build &&

meson --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/gnome-video-effects

gnome-online-accounts-3.46.0

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do GNOME Online Accounts

Exigidas

Gcr-3.41.1, JSON-GLib-1.6.6, rest-0.9.1, Vala-0.56.4 e WebKitGTK-2.38.5

Recomendadas
Opcionais

GTK-Doc-1.33.2, MIT Kerberos V5-1.20.1 e Valgrind-3.20.0

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/gnome-online-accounts

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 --prefix=/usr                                   \
      --buildtype=release                             \
      -Dkerberos=false                                \
      -Dgoogle_client_secret=5ntt6GbbkjnTVXx-MSxbmx5e \
      -Dgoogle_client_id=595013732528-llk8trb03f0ldpqq6nprjp1s79596646.apps.googleusercontent.com &&
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.

-Dgoogle_*: Essas chaves configuram o ID e o segredo do OAuth do BLFS para os serviços do Google.

-Dgtk_doc=true: Use essa chave se você tiver o GTK-Doc-1.33.2 instalado e desejar gerar a documentação da API.

-Dkerberos=true: Use essa chave se você tiver instalado o MIT Kerberos V5-1.20.1 e deseja usá-lo com o GNOME Online Accounts.

Conteúdo

Aplicativos Instalados: goa-daemon e goa-identity-service (executáveis de biblioteca)
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

goa-daemon

é o Processo de Segundo Plano do GNOME Online Accounts

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

Grilo-0.3.15

Introdução ao Grilo

Grilo é uma estrutura focada em facilitar a descoberta e navegação de mídia para aplicativos e desenvolvedores(as) de aplicativos.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Grilo

Exigidas

GLib-2.74.5 e libxml2-2.10.3

Recomendadas
Opcionais

DocBook-utils-0.6.14, liboauth-1.0.3 e GTK-Doc-1.33.2

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/grilo

Instalação do Grilo

Instale o Grilo executando os seguintes comandos:

mkdir build &&
cd    build    &&

meson --prefix=/usr       \
      --buildtype=release \
      -Denable-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.

-Denable-gtk-doc=false: Essa opção desabilita a geração de documentação. Se você tiver o GTK-Doc-1.33.2 instalado e desejar gerar documentação, remova essa opção.

Conteúdo

Aplicativos Instalados: grilo-test-ui-0.3, grl-inspect-0.3 e grl-launch-0.3
Bibliotecas Instaladas: libgrilo-0.3.so, libgrlnet-0.3.so e libgrlpls-0.3.so
Diretórios Instalados: /usr/include/grilo-0.3

Descrições Curtas

grilo-test-ui-0.3

é um aplicativo simples de recreio que você consegue usar para testar a estrutura essencial de suporte e plugins dela

grl-inspect-0.3

é uma ferramenta que imprime informações a respeito das fontes disponíveis Grilo

grl-launch-0.3

é uma ferramenta para executar operações Grilo a partir da linha de comando

libgrilo.so

fornece a estrutura essencial de suporte Grilo

libgrlnet.so

fornece ajudantes de rede de intercomunicação Grilo para plug-ins

libgrlpls.so

fornece funções de manuseio de lista de reprodução

libchamplain-0.12.21

Introdução ao libchamplain

O pacote libchamplain contém uma pequena engenhoca baseada em Clutter que é usada para exibir mapas ricos e interativos.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do libchamplain

Exigidas

clutter-gtk-1.8.4, GTK+-3.24.36, libsoup-3.2.2 e SQLite-3.40.1

Recomendadas
Opcionais

GTK-Doc-1.33.2 e libmemphis

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libchamplain

Instalação do libchamplain

Instale o libchamplain executando os seguintes comandos:

mkdir build &&
cd    build &&

meson --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: Nenhum(a)
Bibliotecas Instaladas: libchamplain-0.12.so e libchamplain-gtk-0.12.so
Diretórios Instalados: /usr/include/champlain-0.12 e /usr/share/gtk-doc/html/champlain-0.12

Descrições Curtas

libchamplain-0.12.so

contém as funções da API da libchamplain

libchamplain-gtk-0.12.so

contém as ligações GTK+ da libchamplain

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do libgdata

Exigidas

libsoup-2.74.3, gnome-online-accounts-3.46.0, GTK+-3.24.36, JSON-GLib-1.6.6 e Vala-0.56.4

Recomendadas
Opcionais

GTK-Doc-1.33.2 (para documentação), liboauth-1.0.3 (para suporte a OAuth v1) e uhttpmock-0.5.3 (exigido para testes)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libgdata

Instalação do libgdata

Instale o libgdata executando os seguintes comandos:

mkdir build &&
cd    build &&

meson --prefix=/usr                 \
      --buildtype=release           \
      -Dgtk_doc=false               \
      -Dalways_build_tests=false .. &&
ninja

Se você deseja executar a suíte de teste, certifique-se de que o uhttpmock-0.5.3 esteja instalado e remova -Dalways_build_tests=false na linha de comando do meson. Para testar os resultados, emita: ninja test. Observe que os testes precisam de acesso à rede de intercomunicaçã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.

-Dgtk_doc=false: Remova isso se você tiver o GTK-Doc-1.33.2 instalado e quiser reconstruir a documentação com ele.

-Doauth1=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.6

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do libgee

Exigidas

GLib-2.74.5

Recomendadas
Opcionais

Vala-0.56.4 (com Valadoc) e LCOV

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libgee

Instalação do libgee

Instale o libgee 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(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.40.0

Introdução ao libgtop

O pacote libgtop contém as principais bibliotecas do GNOME.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do libgtop

Exigidas

GLib-2.74.5 e Bibliotecas do Xorg

Recomendadas
Opcionais

GTK-Doc-1.33.2

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libgtop

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.2.0

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do libgweather

Exigidas

geocode-glib-3.26.4, GTK+-3.24.36, libsoup-3.2.2 e PyGObject-3.42.2

Recomendadas
Opcionais

Gi-DocGen-2023.1 (gi-docgen também é fornecido como um subprojeto meson, que será usado se -Dgtk_doc=false não for passado para meson), LLVM-15.0.7 (para formato clang) e pylint

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libgweather

Instalação do libgweather

Instale o libgweather executando os seguintes comandos:

mkdir build &&
cd    build &&

meson --prefix=/usr --buildtype=release -Dgtk_doc=false .. &&
ninja

Se você tiver o Gi-DocGen-2023.1 instalado e desejar construir a documentação da API para esse pacote, emita:

sed "s/libgweather_full_version/'libgweather-4.2.0'/" \
    -i ../doc/meson.build                             &&
meson configure -Dgtk_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. Um teste, o metar, é conhecido por falhar.

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.

-Dgtk_doc=false: Permite construir esse pacote sem "Gi-DocGen-2023.1" instalado. Se tiver "Gi-DocGen-2023.1" instalado e você desejar reconstruir e instalar a documentação da "API", [então] 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.34.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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do libpeas

Exigidas

gobject-introspection-1.74.0 e GTK+-3.24.36

Recomendadas
Opcionais

Gi-DocGen-2023.1, Glade, embed, LGI (para ligações LUA, construído com LUA-5.1), com ou luajit ou LUA-5.1

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libpeas

Instalação do libpeas

Instale o libpeas executando os seguintes comandos:

mkdir build &&
cd    build &&

meson --prefix=/usr --buildtype=release --wrap-mode=nofallback .. &&
ninja

Se você tiver o Gi-DocGen-2023.1 instalado e desejar construir a documentação da API para esse pacote, emita:

sed "/docs_dir =/s@\$@/ 'libpeas-1.34.0'@" \
    -i ../docs/reference/meson.build       &&
meson configure -Dgtk_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 que o meson use substitutos de subprojeto para quaisquer declarações de dependência nos arquivos de construção, impedindo-o de baixar qualquer dependência opcional que não esteja instalada no sistema.

-Dvapi=true: Adicione essa chave se você desejar gerar dados vapi (vala).

-Ddemos=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.0.3

Introdução ao libshumate

O pacote libshumate contém uma pequena engenhoca GTK-4 para exibir mapas.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do libshumate

Exigidas

GTK-4.8.3 e libsoup-3.2.2

Opcionais

Gi-DocGen-2023.1 e GTK-Doc-1.33.2

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libshumate

Instalação do libshumate

Instale o libshumate executando os seguintes comandos:

mkdir build &&
cd    build &&

meson --prefix=/usr --buildtype=release -Dgtk_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.

-Dgtk_doc=false: Essa chave desabilita a geração de documentação. Remova isso se você tiver GTK-Doc-1.33.2 e Gi-DocGen-2023.1 instalados e desejar gerar a documentação da API.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: libshumate-1.0.so
Diretórios Instalados: /usr/include/shumate-1.0

Descrições Curtas

libshumate-1.0.so

contém funções que fornecem uma pequena engenhoca GTK-4 para exibir mapas

libwnck-43.0

Introdução ao libwnck

O pacote libwnck contém o Window Navigator Construction Kit.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do libwnck

Exigidas

GTK+-3.24.36

Recomendadas
Opcionais

GTK-Doc-1.33.2

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libwnck

Instalação do libwnck

Instale o libwnck executando os seguintes comandos:

mkdir build &&
cd    build &&

meson --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.

-Dgtk_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

evolution-data-server-3.46.4

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Evolution Data Server

Exigidas

libical-3.0.16, libsecret-0.20.5, nss-3.88.1 e SQLite-3.40.1

Recomendadas
Opcionais

Base de Dados Berkeley-5.3.28, GTK-Doc-1.33.2, MIT Kerberos V5-1.20.1, um MTA (que forneça um comando sendmail), OpenLDAP-2.6.4 e libphonenumber

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/evolution-data-server

Instalação do Evolution Data Server

Instale o Evolution Data Server executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -DCMAKE_INSTALL_PREFIX=/usr    \
      -DSYSCONF_INSTALL_DIR=/etc     \
      -DENABLE_VALA_BINDINGS=ON      \
      -DENABLE_INSTALLED_TESTS=ON    \
      -DWITH_OPENLDAP=OFF            \
      -DWITH_KRB5=OFF                \
      -DENABLE_INTROSPECTION=ON      \
      -DENABLE_GTK_DOC=OFF           \
      -DWITH_LIBDB=OFF               \
      -DENABLE_OAUTH2_WEBKITGTK4=OFF \
      .. &&
make

Agora, como o(a) usuário(a) root:

make install

Para testar os resultados, emita: make test.

Explicações do Comando

-DENABLE_VALA_BINDINGS=ON: Essa chave permite construir as ligações Vala. Remova se você não tiver Vala-0.56.4 instalado.

-DENABLE_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.

-DWITH_LIBDB=OFF: Essa chave permite construir esse pacote sem Base de Dados Berkeley-5.3.28. Esse pacote somente usa Base de Dados Berkeley-5.3.28 para importar dados originários de lançamentos muito desatualizados. SQLite-3.40.1 é usado para operação normal.

-DENABLE_OAUTH2_WEBKITGTK4=OFF: Essa chave contorna um problema em que a versão gtk-4 do WebKit seria necessária para mostrar solicitações de login do OAuth2.

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

Tracker-3.4.2

Introdução ao Tracker

Tracker é o provedor de indexação e pesquisa de arquivos usado no ambiente de área de trabalho do GNOME.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Tracker

Exigidas

JSON-GLib-1.6.6, libseccomp-2.5.4 e Vala-0.56.4

Recomendadas
Opcionais

asciidoc-10.2.0, GTK-Doc-1.33.2, libsoup-2.74.3, bash-completion e libstemmer

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/tracker3

Instalação do Tracker

Instale o Tracker executando os seguintes comandos:

mkdir build &&
cd    build &&

meson --prefix=/usr       \
      --buildtype=release \
      -Ddocs=false        \
      -Dman=false ..      &&
ninja

Para testar os resultados, emita: ninja test. Os testes deveriam 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.

-Ddocs=false: Essa chave impede que o processo de construção gere documentação da API. Omita essa chave se você tiver o GTK-Doc-1.33.2 instalado e desejar gerar e instalar a documentação da API.

-Dman=false: Essa chave evita que o processo de construção gere páginas de manual. Omita essa chave se você tiver o asciidoc-10.2.0 instalado e desejar gerar e instalar as páginas de manual.

Conteúdo

Aplicativos Instalados: tracker3
Biblioteca Instalada: libtracker-sparql-3.0.so
Diretórios Instalados: /usr/{include,lib}/tracker-3.0, /usr/libexec/tracker3, /usr/share/tracker3 e /usr/share/gtk-doc/html/{libtracker-sparql,ontology}-3 (opcional)

Descrições Curtas

tracker3

é um aplicativo de controle para o indexador

libtracker-sparql-3.0.so

contém funções de gerenciamento de recursos e de base de dados

Tracker-miners-3.4.3

Introdução ao Tracker-miners

O pacote Tracker-miners contém um conjunto de extratores de dados para o Tracker.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Tracker-miners

Exigidas

gst-plugins-base-1.22.0, Tracker-3.4.2, Exempi-2.6.3 e gexiv2-0.14.0

Recomendadas
Opcionais

asciidoc-10.2.0, CMake-3.25.2, DConf-0.40.0, FFmpeg-5.1.2, libgsf-1.14.50, taglib-1.13, totem-pl-parser-3.26.6, UPower-1.90.0, libcue, libitpcdata, libosinfo e gupnp

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/tracker-miners

Instalação do Tracker-miners

Nota

Se você planeja executar os testes, alguns tempos limite são muito curtos ao usar discos giratórios. Existem dois locais onde os tempos limite são usados: primeiro, os 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 ao tempo da 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 a tua máquina):

sed -i s/120/200/ tests/functional-tests/meson.build

Instale o Tracker-miners executando os seguintes comandos:

mkdir build &&
cd    build &&

meson --prefix=/usr --buildtype=release -Dman=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 TRACKER_TESTS_AWAIT_TIMEOUT=20 ninja test &&
rm -rf ~/tracker-tests

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.

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.

-Dman=false: Essa chave evita que o processo de construção gere páginas de manual. Omita essa chave se você tiver asciidoc-10.2.0 instalado e desejar gerar e instalar as páginas de manual.

-Dseccomp=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 adequadamente e, como resultado, o tracker-miners será morto com um SIGSYS.

-Dminer_rss=false: Use essa opção se você não tiver instalado a dependência recomendada libgrss.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Vários módulos sob /usr/lib/tracker-miners-3.0
Diretórios Instalados: /usr/lib/tracker-miners-3.0, /usr/libexec/tracker3 e /usr/share/tracker3-miners

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do gsound

Exigidas

libcanberra-0.30

Recomendadas
Opcionais

GTK-Doc-1.33.2 (para gerar documentação)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/gsound

Instalação do GSound

Instale o gsound executando os seguintes comandos:

mkdir build &&
cd    build &&

meson --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

Componentes da Área de Trabalho do GNOME

DConf-0.40.0 / DConf-Editor-43.0

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.74.5 fornece funcionalidade semelhante na linha de comando.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Transferências Adicionais

Dependências do DConf

Exigidas

dbus-1.14.6, GLib-2.74.5, GTK+-3.24.36 (para o editor), libhandy-1.8.1 (para o editor) e libxml2-2.10.3 (para o editor)

Recomendadas
Opcionais

GTK-Doc-1.33.2 e bash-completion

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/dconf

Instalação do DConf

Instale o DConf executando os seguintes comandos:

mkdir build &&
cd    build &&

meson --prefix=/usr --buildtype=release -Dbash_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-43.0.tar.xz &&
cd dconf-editor-43.0                &&

mkdir build &&
cd    build &&

meson --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.

-Dgtk_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: 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-43.1

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/gnome-backgrounds

Instalação do GNOME Backgrounds

Instale o GNOME Backgrounds executando os seguintes comandos:

mkdir build &&
cd    build &&

meson --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.50.3

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Gvfs

Exigidas

dbus-1.14.6, GLib-2.74.5, libusb-1.0.26 e libsecret-0.20.5

Recomendadas
Opcionais

Apache-2.4.55, Avahi-0.8, BlueZ-5.66, Fuse-3.13.1, gnome-online-accounts-3.46.0, GTK-Doc-1.33.2, libarchive-3.6.2, libgcrypt-1.10.1, libxml2-2.10.3, libxslt-1.1.37, OpenSSH-9.2p1, Samba-4.17.5, libbluray, libgphoto2, libimobiledevice, libmtp, libnfs e Twisted

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/gvfs

Instalação do Gvfs

Instale o Gvfs executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup               \
      --prefix=/usr       \
      --buildtype=release \
      -Dfuse=false        \
      -Dgphoto2=false     \
      -Dafc=false         \
      -Dbluray=false      \
      -Dnfs=false         \
      -Dmtp=false         \
      -Dsmb=false         \
      -Ddnssd=false       \
      -Dgoa=false         \
      -Dgoogle=false      .. &&
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

--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.

-Dcdda=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.0

Introdução ao gexiv2

gexiv2 é um envolucrador baseado em GObject em torno da biblioteca Exiv2.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do gexiv2

Exigidas

Exiv2-0.27.6

Recomendadas
Opcionais

GTK-Doc-1.33.2 (para documentação)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/gexiv2

Instalação do gexiv2

Instale o gexiv2 executando os seguintes comandos:

mkdir build &&
cd    build &&

meson --prefix=/usr --buildtype=release .. &&
ninja

Para testar os resultados, execute 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-43.2

Introdução ao Nautilus

O pacote Nautilus contém o gerenciador de arquivos do GNOME.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Nautilus

Exigidas

bubblewrap-0.7.0, gexiv2-0.14.0, gnome-autoar-0.4.3, gnome-desktop-43.2, libadwaita-1.2.2, libcloudproviders-0.3.1, libnotify-0.8.1, libportal-0.6, libseccomp-2.5.4 e Tracker-3.4.2

Recomendadas
Opcionais

Gi-DocGen-2023.1

Recomendadas (tempo de execução)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/nautilus

Instalação do Nautilus

Corrija o local para instalar a documentação da API:

sed "/docdir =/s@\$@ / 'nautilus-43.2'@" -i meson.build

Instale o Nautilus executando os seguintes comandos:

mkdir build &&
cd    build &&

meson --prefix=/usr       \
      --buildtype=release \
      -Dselinux=false     \
      -Dpackagekit=false  \
      .. &&

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 tracker-miners-3.4.3 não estiver instalado.

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.

-Dselinux=false: Essa chave desabilita o uso do selinux que não é suportado pelo BLFS.

-Dpackagekit=false: Essa chave desabilita o uso do PackageKit que não é adequado para o BLFS.

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/gtk-doc/html/libnautilus-extension (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-42.5

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do GNOME Bluetooth

Exigidas

GTK-4.8.3, gsound-1.0.3, itstool-2.0.7, libnotify-0.8.1 e UPower-1.90.0

Recomendadas
Opcionais

GTK-Doc-1.33.2 e dbusmock-0.28.7

Dependências de Tempo de Execução

BlueZ-5.66 e Systemd-252

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/gnome-bluetooth

Instalação do GNOME Bluetooth

Instale o GNOME Bluetooth executando os seguintes comandos:

mkdir build &&
cd    build &&

meson --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-42.1

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do GNOME Keyring

Exigidas

dbus-1.14.6 e Gcr-3.41.1

Recomendadas
Opcionais

LCOV, libcap-ng, GnuPG-2.4.0 e Valgrind-3.20.0

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/gnome-keyring

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 &&
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.

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-43.0

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do GNOME Settings Daemon

Exigidas

alsa-lib-1.2.8, colord-1.4.6, Fontconfig-2.14.2, Gcr-4.0.0, GeoClue-2.7.0, geocode-glib-3.26.4, gnome-desktop-43.2, Little CMS-2.14, libcanberra-0.30, libgweather-4.2.0, libnotify-0.8.1, libwacom-2.6.0, PulseAudio-16.1, Systemd-252 e UPower-1.90.0

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.

Opcionais

gnome-session-43.0, Mutter-43.3, dbusmock-0.28.7, umockdev-0.17.16 e Xvfb (para testes, originário de Xorg-Server-21.1.7 ou Xwayland-22.1.8)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/gnome-settings-daemon

Instalação do GNOME Settings Daemon

Instale o Gnome Settings Daemon executando os seguintes comandos:

mkdir build &&
cd    build &&

meson --prefix=/usr --buildtype=release .. &&
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-43, /usr/lib/gnome-settings-daemon-43 e /usr/share/gnome-settings-daemon

gnome-control-center-43.4.1

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do GNOME Control Center

Exigidas

AccountsService-22.08.8, colord-gtk-0.3.0, gnome-online-accounts-3.46.0, gnome-settings-daemon-43.0, gsound-1.0.3, libgtop-2.40.0, libpwquality-1.4.5, MIT Kerberos V5-1.20.1, shared-mime-info-2.2 e UDisks-2.9.4

Recomendadas
Opcionais

Xvfb (originário de Xorg-Server-21.1.7 ou Xwayland-22.1.8) e dbusmock-0.28.7 (ambos para testes)

Dependências Opcionais em Tempo de Execução

cups-pk-helper-0.2.7 (painel de impressoras), gnome-color-manager-3.36.0 (painel de cores), gnome-shell-43.3 (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.

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/gnome-control-center

Instalação do GNOME Control Center

Nota

Se atualizar a partir do gnome-control-center-41 ou anterior, remova um arquivo da área de trabalho que resultaria em entradas duplicadas de menu. Como o(a) usuário(a) root:

rm -f /usr/share/applications/gnome-control-center.desktop

Instale o GNOME Control Center executando os seguintes comandos:

mkdir build &&
cd    build &&

meson --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.

-Dibus=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-43.3

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Mutter

Exigidas

gnome-settings-daemon-43.0, graphene-1.10.8, libxcvt-0.1.2, libxkbcommon-1.5.0 e pipewire-0.3.66

Recomendadas
Recomendadas (exigidas para construir o compositor Wayland)
Opcionais

dbusmock-0.28.7 (exigido para testes), Xorg-Server-21.1.7 (para sessões X11)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/mutter

Instalação do Mutter

Instale o Mutter executando os seguintes comandos:

mkdir build &&
cd    build &&

meson --prefix=/usr --buildtype=debugoptimized -Dtests=false .. &&
ninja

A suíte de teste exige que funções de depuração estejam habilitadas na construção e um aplicativo externo chamado xvfb-run. Se desejar executar os testes, você deveria baixá-lo e instalá-lo antes de executar o meson. Você pode obtê-lo a partir de xvfb-run e instalá-lo com permissões executáveis em /usr/bin. xvfb-run precisa de Xvfb em tempo de execução, e Xvfb pode ser instalado a partir de Xorg-Server-21.1.7 ou Xwayland-22.1.8. Você também deveria substituir -Dtests=false no comando meson por -Dtests=true. A suíte de teste exige que o esquema mutter esteja instalado no sistema, de forma que é melhor executar os testes depois de instalar o pacote.

Você também pode 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

Se você deseja executar os testes, remova a referência ao Zenity, que não faz parte do BLFS, de um teste:

sed 's/zenity --[a-z]*/gtk3-demo/' -i ../src/tests/x11-test.sh

Agora execute a suíte de teste:

HOME= ninja test

Os testes exigem uma sessão ativa do X ou wayland. O teste native-unit é conhecido por falhar. Muitos testes falharão se a renderização do opengl não for feita no hardware. Não faça nenhuma entrada de mouse ou teclado enquanto a suíte de teste estiver executando ou alguns testes poderão falhar.

Explicações do Comando

--buildtype=debugoptimized: Substitui o tipo de construção padrão (debug), o que produziria binários não otimizados. É usado em vez de --buildtype=release para contornar um problema que causa o travamento do gnome-shell.

-Dtests=false: Impede a construção dos testes e remove um requisito difícil em xvfb-run.

-Dprofiler=false: Use essa opção se o Sysprof não estiver instalado e você não quiser que o meson baixe o código fonte do Sysprof.

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-11.so
Diretórios Instalados: /usr/{lib,include,libexec/installed-tests,share/{,installed-tests}}/mutter-11

Descrições Curtas

mutter

é um gerenciador de janelas de composição GTK+ baseado em Clutter

libmutter-11.so

contém as funções da API do Mutter

gnome-shell-43.3

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do GNOME Shell

Exigidas

evolution-data-server-3.46.4, Gcr-4.0.0, Gjs-1.74.1, gnome-autoar-0.4.3, gnome-control-center-43.4.1, GTK-4.8.3, libgweather-4.2.0 (tempo de execução), Mutter-43.3, sassc-3.6.2, startup-notification-0.12 e Systemd-252

Recomendadas
Opcionais

GTK-Doc-1.33.2 e bash-completion

Dependências de Tempo de Execução

adwaita-icon-theme-43, DConf-0.40.0, GDM-43.0, gnome-backgrounds-43.1 e telepathy-mission-control-5.16.6

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/gnome-shell

Instalação do GNOME Shell

Instale o GNOME Shell executando os seguintes comandos:

mkdir build &&
cd    build &&

meson --prefix=/usr --buildtype=release -Dtests=false .. &&
ninja

Para testar os resultados, você precisa remover a chave -Dtests=false e ter o Mutter-43.3 compilado e instalado com testes também. Para executar os testes, emita: ninja test. Você precisa estar executando uma sessão do X para executar os testes. Alguns falharão se o GDM-43.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.

-Dtests=false: Remova essa chave se você quiser construir os testes. Mas, então, meson falhará se os testes Mutter-43.3 não estiverem instalados.

Conteúdo

Aplicativos Instalados: gnome-extensions, gnome-extensions-app, gnome-shell, gnome-shell-extension-prefs, gnome-shell-extension-tool e gnome-shell-perf-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 3

gnome-shell-extensions-43.1

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do GNOME Shell Extensions

Exigidas

libgtop-2.40.0

Opcionais

gnome-menus-3.36.0 (tempo de execução, para a extensão Applications Menu) e sassc-3.6.2

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/gnome-shell-extensions

Instalação do GNOME Shell Extensions

Instale o GNOME Shell Extensions executando os seguintes comandos:

mkdir build &&
cd    build &&

meson --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-43.0

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do GNOME Session

Exigidas

gnome-desktop-43.2, JSON-GLib-1.6.6, Mesa-22.3.5 , Systemd-252 e UPower-1.90.0

Opcionais

xmlto-0.0.28 e libxslt-1.1.37 com docbook-xml-4.5 e docbook-xsl-nons-1.79.2 (para construir a documentação)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/gnome-session

Instalação do GNOME Session

Ao executar o GNOME sob o Wayland-1.21.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 --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

Mova a documentação para um diretório versionado:

mv -v /usr/share/doc/gnome-session{,-43.0}

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

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-43.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-43.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.2, 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-43.0 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-40.10

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do GNOME Tweaks

Exigidas

GTK+-3.24.36, gsettings-desktop-schemas-43.0, libhandy-1.8.1, PyGObject-3.42.2 e sound-theme-freedesktop-0.8

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/gnome-tweaks

Instalação do GNOME Tweaks

Instale o GNOME Tweaks executando os seguintes comandos:

mkdir build &&
cd    build &&

meson --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.11/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-43.0

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do GNOME User Docs

Exigidas

itstool-2.0.7 e libxml2-2.10.3

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/gnome-user-docs

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Yelp

Exigidas

gsettings-desktop-schemas-43.0, WebKitGTK-2.38.5 e yelp-xsl-42.1

Recomendadas
Opcionais

GTK-Doc-1.33.2

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.

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/yelp

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. GNOME Applications

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-43.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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Baobab

Exigidas

adwaita-icon-theme-43, GTK-4.8.3, itstool-2.0.7, libadwaita-1.2.2 e Vala-0.56.4

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/baobab

Instalação do Baobab

Instale o Baobab executando os seguintes comandos:

mkdir build &&
cd    build &&

meson --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 CD/DVD 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Brasero

Exigidas

gst-plugins-base-1.22.0, itstool-2.0.7, libcanberra-0.30 e libnotify-0.8.1

Recomendadas
Opcionais

GTK-Doc-1.33.2

Recomendadas (tempo de execução)
Opcionais (tempo de execução)

Cdrdao-1.2.4, libdvdcss-1.4.3, Cdrtools-3.02a09 e VCDImager

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/brasero

Instalação do Brasero

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

Cheese-43.0

Introdução ao Cheese

Cheese é usado para tirar fotografias e vídeos com efeitos gráficos divertidos.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Cheese

Exigidas

clutter-gst-3.0.27, clutter-gtk-1.8.4, gnome-desktop-43.2, gst-plugins-bad-1.22.0, gst-plugins-good-1.22.0 (construído com v4l-utils-1.22.1), libcanberra-0.30 e libgudev-237

Recomendadas
Opcionais

GTK-Doc-1.33.2, libxslt-1.1.37, appstream-glib, LCOV e Nautilus SendTo

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/cheese

Configuração do Núcleo

Dependendo da tua câmera, habilite as opções apropriadas e recompile o núcleo se necessário:

Device Drivers  --->
  Multimedia support --->
    <*> Autoselect ancillary drivers (tuners, sensors, i2c, spi, frontends) [CONFIG_MEDIA_SUBDRV_AUTOSELECT]
    Media device types --->
      <*> Cameras/video grabbers support  [CONFIG_MEDIA_CAMERA_SUPPORT]
    Media drivers --->
      <*> Media USB Adapters  --->         [CONFIG_MEDIA_USB_SUPPORT]
                  Select device(s) as needed

Instalação do Cheese

Instale o Cheese executando os seguintes comandos:

mkdir build &&
cd    build &&

meson --prefix=/usr        \
      --buildtype=release  \
      -Dgtk_doc=false      \
      -Dtests=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.

-Dgtk_doc=false: Essa chave impede que o sistema de construção gere e instale a documentação da API. Omita essa chave se você tiver o GTK-Doc-1.33.2 instalado e desejar gerar e instalar a documentação da API. A construção da documentação está quebrada devido a uma incompatibilidade com gtk-doc.

-Dtests=true: Essa chave permite construir os testes, de forma que a suíte de teste possa ser executada. Remova essa chave se você não for executar os testes.

Conteúdo

Aplicativo Instalado: cheese
Biblioteca Instalada: libcheese.so e libcheese-gtk.so
Diretórios Instalados: /usr/{include,share/gtk-doc/html,share/help/*}/cheese

Descrições Curtas

cheese

é uma ferramenta de câmera de web com efeitos gráficos

libcheese.so

contém as funções da API do Cheese

libcheese-gtk.so

contém as pequenas engenhocas GTK+ do Cheese

EOG-43.2

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do EOG

Exigidas

adwaita-icon-theme-43, Exempi-2.6.3, gnome-desktop-43.2, itstool-2.0.7, libhandy-1.8.1, libjpeg-turbo-2.1.5.1, libpeas-1.34.0 e shared-mime-info-2.2

Recomendadas
Opcionais

GTK-Doc-1.33.2 e libportal-0.6

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/eog

Instalação do EOG

Instale o EOG executando os seguintes comandos:

mkdir build &&
cd    build &&

meson --prefix=/usr --buildtype=release -Dlibportal=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-43.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.

-Dlibportal=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.6 instalado e desejar ter suporte para portais flatpak.

-Dgtk_doc=true: Use essa opção se o GTK-Doc-1.33.2 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-43.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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Evince

Exigidas

adwaita-icon-theme-43, gsettings-desktop-schemas-43.0, GTK+-3.24.36, itstool-2.0.7, libhandy-1.8.1, libxml2-2.10.3 e OpenJPEG-2.5.0

Recomendadas
Opcionais

Cups-2.4.2 (para habilitar impressão se o suporte estiver construído no GTK+ 3), gnome-desktop-43.2, gspell-1.12.0, gst-plugins-base-1.22.0, Gi-DocGen-2023.1, GTK-Doc-1.33.2, libgxps-0.3.2, libtiff-4.5.0, texlive-20220321 (ou install-tl-unx), DjVuLibre, libspectre, Synctex e t1lib

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/evince

Instalação do Evince

Primeiro, certifique-se de que o meson possa encontrar o TeXLive se ele estiver instalado. Isso não tem efeito em sistemas sem o TeXLive instalado.

export CPPFLAGS="-I/opt/texlive/2022/include" &&
export LDFLAGS="$LDFLAGS -L/opt/texlive/2022/lib"

Instale o Evince executando os seguintes comandos:

mkdir build &&
cd    build &&

meson --prefix=/usr          \
      --buildtype=release    \
      -Dgtk_doc=false        \
      --wrap-mode=nodownload \
      ..                     &&
ninja

Se você tiver o Gi-DocGen-2023.1 instalado e desejar construir a documentação da API para esse pacote, emita:

sed "/fatal-warnings/d" -i ../help/reference/*/meson.build    &&
sed "/docs_dir/s@\$@ / 'evince-43.1'@" -i ../help/meson.build &&
meson configure -Dgtk_doc=true                                &&
ninja

Esse pacote não tem uma suíte de teste funcional.

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="..." LDFLAGS="$LDFLAGS ...": Se o TeXLive tiver sido instalado em /opt/texlive/2022, o conjunto de comandos sequenciais de configuração encontrará libkpathsea.so e habilitará a estrutura de retaguarda de DVI, mas sem essa adição a compilação falhará porque não consegue encontrar os cabeçalhos exigidos. Adicionar isso a um sistema onde o TeXLive não tenha sido instalado não quebra a construção.

--wrap-mode=nodownload: Essa chave desabilita a busca de qualquer dependência: o sistema de construção tenta buscar gi-docgen mesmo se -Dgtk_doc=false for passado.

-Dgtk_doc=false: Permite construir esse pacote sem "Gi-DocGen-2023.1" instalado. Se tiver "Gi-DocGen-2023.1" instalado e você desejar reconstruir e instalar a documentação da "API", [então] um comando "meson configure" reconfigurará essa opção.

-Dgspell=false: Essa chave desliga o suporte para o plugin de verificação ortográfica.

-Dintrospection=false: Use essa opção se você não tiver o gobject-introspection-1.74.0 instalado e não desejar ter suporte de introspecção integrado ao Evince.

-Dnautilus=false: Essa chave desabilita a construção do plug-in do Nautilus. Use essa chave se o Nautilus não estiver instalado.

-Dkeyring=false: Essa chave desabilita o uso da libsecret. Use essa chave se a libsecret não estiver instalada.

-Dps=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.46.4

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Evolution

Exigidas

adwaita-icon-theme-43, evolution-data-server-3.46.4, Gcr-4.0.0, gnome-autoar-0.4.3, itstool-2.0.7, shared-mime-info-2.2 e WebKitGTK-2.38.5

Recomendadas
Opcionais

clutter-gtk-1.8.4, GeoClue-2.7.0, geocode-glib-3.26.4 e libchamplain-0.12.21 (Plug-in de mapas de contato), GTK-Doc-1.33.2, cmark, Glade, libpst, libunity, libytnef

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/evolution

Instalação do Evolution

Instale o Evolution executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -DCMAKE_INSTALL_PREFIX=/usr \
      -DSYSCONF_INSTALL_DIR=/etc  \
      -DENABLE_INSTALLED_TESTS=ON \
      -DENABLE_PST_IMPORT=OFF     \
      -DENABLE_YTNEF=OFF          \
      -DENABLE_CONTACT_MAPS=OFF   \
      -DENABLE_MARKDOWN=OFF       \
      -DENABLE_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

-DENABLE_YTNEF=OFF: Essa chave é usada para desabilitar o uso da biblioteca yTNEF porque a libytnef não é parte do BLFS.

-DENABLE_PST_IMPORT=OFF: Essa chave é usada para desabilitar o plugin pst-import porque a libpst não é parte do BLFS.

-DENABLE_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.

-DENABLE_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.

-DENABLE_WEATHER=ON: Essa chave permite construir contra a libgweather-4.2.0.

-DWITH_OPENLDAP=OFF: Use essa chave se você não tiver instalado o OpenLDAP-2.6.4.

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-43.0

Introdução ao File Roller

File Roller é um gerenciador de arquivamentos para o GNOME com suporte para tar, bzip2, gzip, zip, jar, compress, lzop, zstd, dmg e muitos outros formatos de arquivamento.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.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+-3.24.36 e itstool-2.0.7

Recomendadas
Opcionais (para a documentação da API)

Gi-DocGen-2023.1

Opcionais (tempo de execução)

UnRar-6.2.6, UnZip-6.0 e Zip-3.0

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/file-roller

Instalação do File Roller

Instale o File Roller executando os seguintes comandos:

mkdir build &&
cd    build &&

meson --prefix=/usr --buildtype=release -Dpackagekit=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+-2.24.33 ou GTK+-3.24.36 instalado (para o cache de ícones) e o desktop-file-utils-0.26 (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.

-Dpackagekit=false: Essa chave desabilita o uso do PackageKit que não é adequado para o BLFS.

-Dapi_docs=enabled: Use essa chave se você tiver o Gi-DocGen-2023.1 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-43.0.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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do GNOME Calculator

Exigidas

gtksourceview5-5.6.2, itstool-2.0.7, libadwaita-1.2.2, libgee-0.20.6, libhandy-1.8.1 e libsoup-3.2.2

Recomendadas

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/gnome-calculator

Instalação do GNOME Calculator

Instale o GNOME Calculator executando os seguintes comandos:

mkdir build &&
cd    build &&

meson --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.0

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do GNOME Color Manager

Exigidas

colord-1.4.6, GTK+-3.24.36, itstool-2.0.7, Little CMS-2.14, libcanberra-0.30 e libexif-0.6.24

Recomendadas
Opcionais

appstream-glib e DocBook-utils-0.6.14 (atualmente faz com que a construção falhe)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/gnome-color-manager

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 --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-disk-utility-43.0

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do GNOME Disk Utility

Exigidas

gnome-settings-daemon-43.0, itstool-2.0.7, libdvdread-6.1.3, libhandy-1.8.1, libpwquality-1.4.5, libsecret-0.20.5 e UDisks-2.9.4

Opcionais

appstream-glib

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/gnome-disk-utility

Instalação do GNOME Disk Utility

Instale o GNOME Disk Utility executando os seguintes comandos:

mkdir build &&
cd    build &&

meson --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: 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-logs-43.0

Introdução ao GNOME Logs

O pacote GNOME Logs contém um visualizador de registros para o diário do systemd.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do GNOME Logs

Exigidas

GTK-4.8.3, gsettings-desktop-schemas-43.0, itstool-2.0.7 e libadwaita-1.2.2

Opcionais

desktop-file-utils-0.26 (para a suíte de teste) e docbook-xml-4.5, docbook-xsl-nons-1.79.2, libxslt-1.1.37 (para contruir páginas de manual), appstream-glib e dogtail

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/gnome-logs

Instalação do GNOME Logs

Instale o GNOME Logs executando os seguintes comandos:

mkdir build &&
cd    build &&

meson --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-logs
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/share/gnome-logs e /usr/share/help/*/gnome-logs

Descrições Curtas

gnome-logs

é um visualizador de registros do GNOME para o diário do systemd

gnome-maps-43.4

Introdução ao GNOME Maps

GNOME Maps é um aplicativo de mapas para o GNOME.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do GNOME Maps

Exigidas

clutter-gtk-1.8.4, desktop-file-utils-0.26, GeoClue-2.7.0, geocode-glib-3.26.4, Gjs-1.74.1, libadwaita-1.2.2, libshumate-1.0.3, libgweather-4.2.0 e rest-0.9.1

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/gnome-maps

Instalação do GNOME Maps

Instale o GNOME Maps 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: 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Transferências Adicionais

Dependências do GNOME Nettool

Exigidas

GTK+-3.24.36, itstool-2.0.7 e libgtop-2.40.0

Dependências de Tempo de Execução

Utilitários BIND-9.18.12, Nmap-7.93, Net-tools-2.10, Traceroute-2.1.2 e Whois-5.4.3

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/gnome-nettool

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 --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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do GNOME Power Manager

Exigidas

GTK+-3.24.36 e UPower-1.90.0

Opcionais

DocBook-utils-0.6.14 e appstream-glib

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/gnome-power-manager

Instalação do GNOME Power Manager

Instale o GNOME Power Manager executando os seguintes comandos:

mkdir build &&
cd    build &&

meson --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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do GNOME Screenshot

Exigidas

GTK+-3.24.36, libcanberra-0.30 (Compilado com suporte a GTK+3) e libhandy-1.8.1

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/gnome-screenshot

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 --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-42.0

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do GNOME System Monitor

Exigidas

adwaita-icon-theme-43, Gtkmm-3.24.7, itstool-2.0.7, libgtop-2.40.0 e librsvg-2.54.5

Opcionais

desktop-file-utils-0.26 e appstream-glib

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/gnome-system-monitor

Instalação do GNOME System Monitor

Instale o GNOME System Monitor executando os seguintes comandos:

mkdir build &&
cd    build &&

meson --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-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.46.8

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do GNOME Terminal

Exigidas

DConf-0.40.0, gnome-shell-43.3, gsettings-desktop-schemas-43.0, itstool-2.0.7, pcre2-10.42 e VTE-0.70.3

Recomendadas
Opcionais

desktop-file-utils-0.26 e appstream-glib

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/gnome-terminal

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 --prefix=/usr --buildtype=release .. &&
ninja

Para testar os resultados, emita: ninja test.

Agora, como o(a) usuário(a) root:

ninja install

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.

-Dsearch_provider=false: Essa chave desabilita o provedor gnome-shell de busca. Use essa opção se você não tiver o gnome-shell instalado.

-Dnautilus_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-43.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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do GNOME Weather

Exigidas

Gjs-1.74.1, libadwaita-1.2.2 e libgweather-4.2.0

Opcionais

appstream-glib

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/gnome-weather

Instalação do GNOME Weather

Instale o GNOME Weather executando os seguintes comandos:

mkdir build &&
cd    build &&

meson --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-15.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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Transferências Adicionais

Dependências do Gucharmap

Exigidas

desktop-file-utils-0.26, gsettings-desktop-schemas-43.0, GTK+-3.24.36, itstool-2.0.7, pcre2-10.42 e UnZip-6.0

Recomendadas
Opcionais

appstream-glib e GTK-Doc-1.33.2

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/gucharmap

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-15.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 --prefix=/usr         \
      --strip               \
      --buildtype=release   \
      -Ducd_path=./ucd      \
      -Ddocs=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.

-Ducd_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.

-Ddocs=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.

-Dgir=false: Use isso se você não tiver instalado o gobject-introspection-1.74.0.

-Dvapi=false: Use isso se você não tiver instalado o Vala-0.56.4.

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-43.0

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Seahorse

Exigidas

Gcr-3.41.1, GnuPG-2.4.0, GPGME-1.18.0, itstool-2.0.7, libhandy-1.8.1, libpwquality-1.4.5 e libsecret-0.20.5

Recomendadas
Opcionais

Avahi-0.8

Dependência de Tempo de Execução

gnome-keyring-42.1

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/seahorse

Instalação do Seahorse

Instale o Seahorse executando os seguintes comandos:

sed -i -r 's:"(/apps):"/org/gnome\1:' data/*.xml &&

sed -i "s/'2.3.0'/'2.3.0', '2.4.0'/" meson.build &&

mkdir build &&
cd    build &&

meson --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.

sed ... meson.build: Esse comando corrige a construção com o GnuPG-2.4 instalado.

-Dldap-support=false: Adicione essa chave se você não tiver instalado o openldap.

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

Vinagre-3.22.0

Introdução ao Vinagre

Vinagre é um cliente VNC para a Área de Trabalho do GNOME.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Vinagre

Exigidas

gtk-vnc-1.3.1, itstool-2.0.7 e libsecret-0.20.5

Recomendadas
Opcionais

Avahi-0.8, appstream-glib, FreeRDP (para conectar com áreas de trabalho do Windows) e Spice-GTK

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/vinagre

Instalação do Vinagre

Primeiro corrija um problema exposto pelo GCC-10:

sed -e '/_VinagreVnc/i gboolean scaling_command_line;' \
    -i plugins/vnc/vinagre-vnc-connection.c &&
sed -e '/scaling_/s/^/extern /' \
    -i plugins/vnc/vinagre-vnc-connection.h

Instale o Vinagre executando os seguintes comandos:

./configure --prefix=/usr \
            --enable-compile-warnings=minimum &&
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-compile-warnings=minimum: Essa chave desabilita os avisos do compilador que podem causar a construção falhar quando construída sob GCC6.

Conteúdo

Aplicativos Instalados: vinagre
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/share/help/*/vinagre e /usr/share/vinagre

Descrições Curtas

vinagre

é um visualizador de área de trabalho remota para a Área de Trabalho do GNOME

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.18.1

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do libxfce4util

Exigidas

GLib-2.74.5 e gobject-introspection-1.74.0

Recomendadas
Opcionais

GTK-Doc-1.33.2

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libxfce4util

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.18.0

Introdução ao Xfconf

Xfconf é o sistema de armazenamento de configuração para o Xfce.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Xfconf

Exigidas

libxfce4util-4.18.1

Opcionais

GTK-Doc-1.33.2 e Vala-0.56.4

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/xfconf

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.18.2

Introdução ao libxfce4ui

O pacote libxfce4ui contém pequenas engenhocas GTK+ 2 que são usadas por outros aplicativos do Xfce.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do libxfce4ui

Exigidas

GTK+-3.24.36 e Xfconf-4.18.0

Recomendadas
Opcionais

GTK-Doc-1.33.2, libgtop-2.40.0, libgudev-237 e Glade

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libxfce4ui

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.18.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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://archive.xfce.org/src/xfce/exo/4.18/exo-4.18.0.tar.bz2

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 9d0be4e885eaf991e12dbc14d3fc628d

  • Tamanho da transferência: 876 KB

  • Espaço em disco estimado exigido: 14 MB (com os testes)

  • Tempo de construção estimado: 0,2 UPC (com os testes)

Dependências do Exo

Exigidas

GTK+-3.24.36, libxfce4ui-4.18.2 e libxfce4util-4.18.1

Opcionais

GTK-Doc-1.33.2

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/exo

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.18.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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Garcon

Exigidas

libxfce4ui-4.18.2 e GTK+-3.24.36

Opcionais

GTK-Doc-1.33.2

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/garcon

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

xfce4-panel-4.18.2

Introdução ao Xfce4 Panel

O pacote Xfce4 Panel contém o Painel do Xfce4.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Xfce4 Panel

Exigidas

Cairo-1.17.6, Exo-4.18.0, Garcon-4.18.0 e libwnck-43.0

Opcionais

GTK-Doc-1.33.2 e libdbusmenu

Observações de Usuário(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.18.4

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Thunar

Exigidas

Exo-4.18.0

Exigidas (tempo de execução)

hicolor-icon-theme-0.17

Recomendadas
Opcionais

GTK-Doc-1.33.2 (para documentação), Gvfs-1.50.3 (para navegação remota e montagem automática), libexif-0.6.24 e tumbler-4.18.0 (tempo de execução)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/thunar

Instalação do Thunar

Instale o Thunar executando os seguintes comandos:

./configure --prefix=/usr \
            --sysconfdir=/etc \
            --docdir=/usr/share/doc/thunar-4.18.4 &&
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.18.4 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.18.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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Thunar Volume Manager

Exigidas

Exo-4.18.0 e libgudev-237

Recomendadas
Dependências Recomendadas de Tempo de Execução

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/thunar-volman

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.18.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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Tumbler

Exigidas

GLib-2.74.5

Opcionais

cURL-7.88.1, FreeType-2.13.0, gdk-pixbuf-2.42.10, gst-plugins-base-1.22.0, GTK-Doc-1.33.2, libjpeg-turbo-2.1.5.1, libgsf-1.14.50, libpng-1.6.39, Poppler-23.02.0, FFmpegThumbnailer, libgepub e libopenraw

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/tumbler

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

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.18.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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Xfce4 Appfinder

Exigidas

Garcon-4.18.0

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/xfce4-appfinder

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.18.1

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Xfce4 Power Manager

Exigidas

libnotify-0.8.1, UPower-1.90.0 e xfce4-panel-4.18.2

Opcionais

NetworkManager-1.42.0 e Polkit-122

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/xfce4-power-manager

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.18.2

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Xfce4 Settings

Exigidas

Exo-4.18.0 e Garcon-4.18.0

Exigidas (tempo de execução)

gnome-icon-theme-3.12.0 ou lxde-icon-theme-0.5.1

Recomendadas
Opcionais

colord-1.4.6, libinput-1.22.1 e UPower-1.90.0

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/xfce4-settings

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.18.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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Xfdesktop

Exigidas

Exo-4.18.0 e libwnck-43.0

Recomendadas

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/xfdesktop

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.18.0

Introdução ao Xfwm4

Xfwm4 é o gerenciador de janelas para o Xfce.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Xfwm4

Exigidas

libwnck-43.0 e libxfce4ui-4.18.2

Recomendadas
Opcionais

libxpresent

Observações de Usuário(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.18.1

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Xfce4 Session

Exigidas

libwnck-43.0 e libxfce4ui-4.18.2

Recomendadas
Exigidas Tempo de Execução

Xfdesktop-4.18.1

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/xfce4-session

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.14.6, GnuPG-2.4.0, hicolor-icon-theme-0.17 e OpenSSH-9.2p1

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 de um TTY usando o xinit-1.4.2 ou a partir de um gerenciador gráfico de tela, como o lightdm-1.32.0.

Para iniciar o Xfce4 usando o xinit-1.4.2, 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 vt7. Você pode 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 propósitos de depuração. Isso pode ser feito iniciando o X com:

startx &> ~/.x-session-errors

Ao desligar ou reinicializar, as mensagens de desligamento aparecem no vt onde o X estava executando. Se você deseja ver essas mensagens, pressione simultaneamente as teclas Alt-F7 (assumindo que o X estava executando no vt7).

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

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.0

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 adequadamente usando uma plataforma LFS 11.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

gst-plugins-base-1.22.0, gst-plugins-good-1.22.0 e libxfce4ui-4.18.2

Recomendadas
Opcionais

GTK-Doc-1.33.2

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/parole

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.0.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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Terminal do Xfce4

Exigidas

libxfce4ui-4.18.2 e VTE-0.70.3

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/xfce4-terminal

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.6.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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Xfburn

Exigidas

Exo-4.18.0, libburn-1.5.4, libisofs-1.5.4 e libxfce4ui-4.18.2

Opcionais

gst-plugins-base-1.22.0 e Cdrdao-1.2.4 (tempo de execução)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/xfburn

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.0

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Ristretto

Exigidas

libexif-0.6.24 e libxfce4ui-4.18.2

Opcionais

tumbler-4.18.0 (tempo de execução)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/ristretto

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-dev-tools-4.18.0

Introdução às Ferramentas de Desenvolvimento do Xfce4

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências das Ferramentas de Desenvolvimento do Xfce4

Exigidas

GLib-2.74.5

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/xfce4-dev-tools

Instalação das Ferramentas de Desenvolvimento do Xfce4

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: Nenhum(a)
Diretórios Instalados: Nenhum(a)

xfce4-notifyd-0.8.1

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Processo de Segundo Plano de Notificação do Xfce4

Exigidas

libnotify-0.8.1, libxfce4ui-4.18.2, xfce4-dev-tools-4.18.0 e xfce4-panel-4.18.2

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/xfce4-notifyd

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 &&
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.5

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Plugin Pulseaudio do Xfce4

Exigidas

dbus-glib-0.112, libnotify-0.8.1, PulseAudio-16.1 e xfce4-panel-4.18.2

Recomendadas

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/xfce4-pulseaudio-plugin

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. LXDE

Capítulo 37. Área de Trabalho do LXDE

LXDE é um ambiente de área de trabalho de desempenho extremamente rápido e de economia de eletricidade.

O LXDE vem com uma interface bonita, suporte a vários idiomas, atalhos padrão de teclado e recursos adicionais, como navegação em arquivos com guias. O LXDE usa menos CPU e menos RAM que outros ambientes. Ele é especialmente projetado para computadores em nuvem com especificações baixas de hardware, como netbooks, dispositivos móveis (por exemplo, MIDs) ou computadores mais antigos.

Construa os pacotes centrais do LXDE na ordem apresentada no livro para a mais fácil resolução de dependências.

lxmenu-data-0.1.5

Introdução ao LXMenu Data

O pacote LXMenu Data fornece os arquivos exigidos para construir menus de área de trabalho compatíveis com as especificações de menu da freedesktop.org para o LXDE.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/lxmenu-data

Instalação do LXMenu Data

Instale o LXMenu Data 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)
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /etc/xdg/menus e /usr/share/desktop-directories

libfm-extra-1.3.2

Introdução ao libfm-extra

O pacote libfm-extra contém uma biblioteca e outros arquivos exigidos pelo menu-cache-gen libexec do menu-cache-1.1.0.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.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.74.5

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libfm-extra

Instalação do libfm-extra

Instale o 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 o suporte para GTK+ porque ele 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 da API da libfm-extra

menu-cache-1.1.0

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 pela freedesktop.org.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Transferências Adicionais

Dependências do Menu Cache

Exigidas

libfm-extra-1.3.2

Opcionais

GTK-Doc-1.33.2 e xdg-utils-1.1.3

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/menu-cache

Instalação do Menu Cache

Primeiro, corrija um vazamento de memória e problemas de múltiplas definições:

patch -Np1 -i ../menu-cache-1.1.0-consolidated_fixes-1.patch

Instale o Menu Cache 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 essa opção se o 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 da API do menu-cache

libfm-1.3.2

Introdução ao libfm

O pacote libfm contém uma biblioteca usada para desenvolver gerenciadores de arquivos fornecendo alguns utilitários de gerenciamento de arquivos.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do libfm

Exigidas

GTK+-2.24.33 ou GTK+-3.24.36 (GTK+-2 recomendado já que o suporte GTK+-3 do LXDE ainda é experimental) e menu-cache-1.1.0

Recomendadas
Opcionais

GTK-Doc-1.33.2, dbus-glib-0.112 e Gvfs-1.50.3 ou udisks (para gerenciamento de volumes - experimental)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libfm

Instalação do libfm

Instale o libfm executando os seguintes comandos:

./configure --prefix=/usr     \
            --sysconfdir=/etc \
            --disable-static  &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--with-gtk=3: Essa opção seleciona a versão do gtk+ a usar. O padrão é gtk+-2.

--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: libfm-pref-apps e lxshortcut
Bibliotecas Instaladas: libfm.so, libfm-extra.so e libfm-gtk.so
Diretórios Instalados: /etc/xdg/libfm, /usr/lib/libfm, /usr/share/gtk-doc/html/libfm e /usr/share/libfm

Descrições Curtas

libfm-pref-apps

configura aplicativos preferenciais para aplicativos baseados em libfm

lxshortcut

é um pequeno aplicativo usado para editar atalhos de aplicativos

libfm.so

contém as funções da API do libfm

PCManFM-1.3.2

Introdução ao PCManFM

O pacote PCManFM contém um gerenciador de arquivos extremamente rápido, leve, mas rico em recursos, com navegação por guias.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do PCManFM

Exigidas

libfm-1.3.2

Recomendadas

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/pcmanfm

Instalação do PCManFM

Instale o PCManFM 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

--with-gtk=3: Seleciona a versão do GTK+ a usar. Você precisa usar essa chave se tiver construído libfm-1.3.2 com suporte GTK+3.

Conteúdo

Aplicativo Instalado: pcmanfm
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /etc/xdg/pcmanfm, /usr/lib/pcmanfm e /usr/share/pcmanfm

Descrições Curtas

pcmanfm

é um gerenciador de arquivos leve baseado em GTK+ para o Sistema de Janelas X

libwnck-2.30.7

Introdução ao libwnck

O pacote libwnck contém um kit de construção de navegador de janelas.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do libwnck

Exigidas

GTK+-2.24.33

Recomendadas
Opcionais

gobject-introspection-1.74.0 e GTK-Doc-1.33.2

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libwnck2

Instalação do libwnck

Instale o libwnck executando os seguintes comandos:

./configure --prefix=/usr \
            --disable-static \
            --program-suffix=-1 &&
make GETTEXT_PACKAGE=libwnck-1

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make GETTEXT_PACKAGE=libwnck-1 install

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

--program-suffix=-1: Essa opção adiciona -1 ao final dos nomes dos aplicativos instalados para evitar sobrescrever os aplicativos instalados por libwnck-43.0.

GETTEXT_PACKAGE=libwnck-1: Esse parâmetro adiciona -1 ao final dos nomes dos arquivos gettext instalados pelo pacote para evitar sobrescrever os arquivos instalados por libwnck-43.0.

--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: wnckprop-1 e wnck-urgency-monitor-1
Biblioteca Instalada: libwnck-1.so
Diretórios Instalados: /usr/include/libwnck-1.0 e /usr/share/gtk-doc/html/libwnck-1.0

Descrições Curtas

wnckprop-1

Imprime, modifica ou interage com as propriedades de uma tela/espaço de trabalho/janela

libwnck-1.so

contém funções para escrever paginadores e listas de tarefas

LXPanel-0.10.1

Introdução ao LXPanel

O pacote LXPanel contém um painel leve de área de trabalho do X11.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do LXPanel

Exigidas

gdk-pixbuf-xlib-2.40.2, keybinder-0.3.1, libwnck-2.30.7, lxmenu-data-0.1.5 e menu-cache-1.1.0

Recomendadas
Opcionais

libindicator (plugin indicador)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/lxpanel

Instalação do LXPanel

Instale o LXPanel 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: lxpanel e lxpanelctl
Bibliotecas Instaladas: liblxpanel.so e várias sob /usr/lib/lxpanel/plugins
Diretórios Instalados: /etc/xdg/lxpanel, /usr/include/lxpanel, /usr/lib/lxpanel e /usr/share/lxpanel

Descrições Curtas

lxpanel

é um painel leve baseado em GTK+ para a área de trabalho do LXDE

lxpanelctl

é um aplicativo que controla o lxpanel

LXAppearance-0.6.3

Introdução ao LXAppearance

O pacote LXAppearance contém um comutador de tema independente de área de trabalho para GTK+.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do LXAppearance

Exigidas

GTK+-2.24.33

Recomendadas
Opcionais

libxslt-1.1.37 com docbook-xml-4.5 e docbook-xsl-nons-1.79.2 (para construir páginas de manual)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/lxappearance

Instalação do LXAppearance

Instale o LXAppearance executando os seguintes comandos:

./configure --prefix=/usr     \
            --sysconfdir=/etc \
            --enable-dbus     &&
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-dbus: Essa chave habilita o suporte DBus no LXAppearance, o que é útil para comunicação com o LXSession. Remova-o se você não estiver construindo o LXDE ou não tiver instalado o dbus-glib-0.112.

--enable-man: Use essa chave se você tiver instalado dependências opcionais e desejar reconstruir as páginas de manual.

Conteúdo

Aplicativo Instalado: lxappearance
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/include/lxappearance e /usr/share/lxappearance

Descrições Curtas

lxappearance

é um aplicativo usado para mudar temas GTK+, temas de ícones e fontes usadas por aplicativos

LXSession-0.5.5

Introdução ao LXSession

O pacote LXSession contém o gerenciador padrão de sessão para o LXDE.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do LXSession

Exigidas

dbus-glib-0.112, libunique-1.1.6, Polkit-122 e Vala-0.56.4

Opcionais

lsb-tools-0.10 (pode ser usado em tempo de execução para exibir o lançamento da distribuição na caixa de diálogo de logout), GTK+-3.24.36 e libxslt-1.1.37 com docbook-xml-4.5 e docbook-xsl-nons-1.79.2 (para construir páginas de manual)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/lxsession

Instalação do LXSession

Instale o LXSession executando os seguintes comandos:

./configure --prefix=/usr --disable-man &&
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-man: Essa chave desabilita a construção das páginas de manual. Remova-a se você tiver instalado dependências opcionais e desejar construir as páginas de manual.

--enable-gtk3: Constrói contra o GTK+-3 em vez de GTK+-2, o que é exigido de qualquer maneira pela libunique.

Conteúdo

Aplicativos Instalados: lxclipboard, lxlock, lxpolkit, lxsession, lxsession-db, lxsession-default, lxsession-default-apps, lxsession-default-terminal, lxsession-edit, lxsession-logout, lxsession-xdg-autostart, lxsession-xsettings e lxsettings-daemon
Bibliotecas Instaladas: Nenhum(a)
Diretório Instalado: /usr/share/lxsession

Descrições Curtas

lxclipboard

é um utilitário de área de transferência para LXSession e LXDE

lxlock

trava a tela local do X até que uma senha seja digitada

lxpolkit

é um agente polkit

lxsession

é um gerenciador leve de sessões do X

lxsession-db

é usado para modificar a base de dados para gerenciar sessões no lxsession

lxsession-default

inicia aplicativos padrão configurados pelo LXsession

lxsession-default-apps

é um utilitário para configurar o lxsession e os aplicativos padrão dele

lxsession-default-terminal

inicia o terminal padrão configurado pelo LXSession

lxsession-edit

é o gerenciador padrão de edição de sessão usado pelo LXDE

lxsession-logout

é um aplicativo para sair do LXSession

lxsession-xdg-autostart

lida com as especificações de inicialização automática da freedesktop.org

lxsession-xsettings

é uma ferramenta para configurar temas gtk+, teclado e mouse para você na iniciação da sessão

lxsettings-daemon

é o processo de segundo plano de configurações para o LXsession

lxde-common-0.99.2

Introdução ao LXDE Common

O pacote LXDE Common fornece um conjunto de configurações padrão para o LXDE.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do LXDE Common

Exigidas

lxde-icon-theme-0.5.1, LXPanel-0.10.1, LXSession-0.5.5, openbox-3.6.1 (tempo de execução) e PCManFM-1.3.2

Recomendadas
Dependências Opcionais em Tempo de Execução

Um processo de segundo plano de notificação, como o notification-daemon-3.20.0 ou xfce4-notifyd-0.8.1, e um gerenciador de tela, como o lxdm-0.5.3 ou lightdm-1.32.0

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/lxde-common

Instalação do LXDE Common

Instale o LXDE 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 install

Se você tiver instalado as dependências recomendadas, execute os seguintes comandos como o(a) usuário(a) root:

update-mime-database /usr/share/mime &&
gtk-update-icon-cache -qf /usr/share/icons/hicolor &&
update-desktop-database -q

Iniciando o LXDE

Você pode iniciar o LXDE a partir do nível de execução 3, usando o xinit-1.4.2, ou a partir do nível de execução 5, usando um Gerenciador de Tela, como o lxdm-0.5.3.

Para iniciar o LXDE usando o xinit-1.4.2, execute os seguintes comandos:

cat > ~/.xinitrc << "EOF"
# Não precisa executar o dbus-launch, pois ele é executado pelo startlxde
startlxde
EOF

startx

A sessão do X inicia no primeiro terminal virtual não usado, normalmente vt7. Você pode 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, o que não apenas manterá o vt inicial organizado, mas também poderá ser usado para propósitos de depuração. Isso pode ser feito iniciando o X com:

startx &> ~/.x-session-errors

Ao desligar ou reinicializar, as mensagens de desligamento aparecem no vt onde o X estava executando. Se você desejar ver essas mensagens, pressione simultaneamente as teclas Alt-F7 (assumindo que o X estava executando no vt7).

Conteúdo

Aplicativos Instalados: lxde-logout, openbox-lxde e startlxde
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /etc/xdg/{lxpanel,lxsession,openbox,pcmanfm}/LXDE e /usr/share/lxde

Descrições Curtas

lxde-logout

é usado para sair da sessão da área de trabalho para o LXDE

openbox-lxde

é um conjunto de comandos sequenciais envolucradores que executam o Openbox com o arquivo de configuração específico do LXDE

startlxde

é usado para iniciar a sessão de área de trabalho para o LXDE

Capítulo 38. Aplicativos do LXDE

Esta é uma pequena coleção de aplicativos opcionais que adicionam recursos extras para a área de trabalho do LXDE.

GPicView-0.2.5

Introdução ao GPicView

O pacote GPicView contém um visualizador leve de imagens.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://downloads.sourceforge.net/lxde/gpicview-0.2.5.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 26be9b0c5a234f1afe7d83d02a4a33f4

  • Tamanho da transferência: 344 KB

  • Espaço em disco estimado exigido: 6,5 MB

  • Tempo de construção estimado: menos que 0,1 UPC

Dependências do GPicView

Exigidas

GTK+-2.24.33

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/gpicview

Instalação do GPicView

Instale o GPicView 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 &&
sed -i 's/Utility;//' /usr/share/applications/gpicview.desktop

Se tiver o xdg-utils-1.1.3 instalado, como o(a) usuário(a) root, você deveria executar o comando xdg-icon-resource forceupdate --theme hicolor, para que o ícone instalado seja exibido no item de menu.

Explicações do Comando

sed -i ...: Corrige o submenu para o GPicView.

Conteúdo

Aplicativo Instalado: gpicview
Bibliotecas Instaladas: Nenhum(a)
Diretório Instalado: /usr/share/gpicview

Descrições Curtas

gpicview

é um visualizador leve de imagens

lxappearance-obconf-0.2.3

Introdução ao LXAppearance OBconf

O pacote LXAppearance OBconf contém um plugin para o LXAppearance para configurar o OpenBox.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do LXAppearance OBconf

Exigidas

LXAppearance-0.6.3 e openbox-3.6.1

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/lxappearance-obconf

Instalação do LXAppearance OBconf

Instale o LXAppearance OBconf 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: /usr/lib/lxappearance/plugins/obconf.so
Diretórios Instalados: /usr/lib/lxappearance e /usr/share/lxappearance/obconf

LXInput-0.3.5

Introdução ao LXInput

O pacote LXInput contém um pequeno aplicativo usado para configurar teclado e mouse para o LXDE.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://downloads.sourceforge.net/lxde/lxinput-0.3.5.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 69680debaef053d540ae3a5f4b237150

  • Tamanho da transferência: 144 KB

  • Espaço em disco estimado exigido: 2,5 MB

  • Tempo de construção estimado: menos que 0,1 UPC

Dependências do LXInput

Exigidas

GTK+-2.24.33

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/lxinput

Instalação do LXInput

Instale o LXInput 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: lxinput
Bibliotecas Instaladas: Nenhum(a)
Diretório Instalado: /usr/share/lxinput

Descrições Curtas

lxinput

é um aplicativo usado para configurar teclado e mouse

LXRandR-0.3.2

Introdução ao LXRandR

O pacote LXRandR contém uma ferramenta de configuração de monitor para o LXDE.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://downloads.sourceforge.net/lxde/lxrandr-0.3.2.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 5101ab29d87fb2b56a5ec5bc8bc3f258

  • Tamanho da transferência: 132 KB

  • Espaço em disco estimado exigido: 1,8 MB

  • Tempo de construção estimado: menos que 0,1 UPC

Dependências do LXRandR

Exigidas

GTK+-2.24.33 e Aplicativos do Xorg

Opcionais

libxslt-1.1.37 com docbook-xml-4.5 e docbook-xsl-nons-1.79.2 (para construir páginas de manual)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/lxrandr

Instalação do LXRandR

Instale o LXRandR 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-man: Use essa chave se você tiver instalado dependências opcionais e desejar construir as páginas de manual.

Conteúdo

Aplicativo Instalado: lxrandr
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: Nenhum(a)

Descrições Curtas

lxrandr

é uma interface GTK+ para o XRandR

LXTask-0.1.10

Introdução ao LXTask

O pacote LXTask contém um gerenciador de tarefas leve e independente da área de trabalho.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://downloads.sourceforge.net/lxde/lxtask-0.1.10.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 27b5258847afc237a5b89666e7a8b45b

  • Tamanho da transferência: 136 KB

  • Espaço em disco estimado exigido: 3,5 MB

  • Tempo de construção estimado: menos que 0,1 UPC

Dependências do LXTask

Exigidas

GTK+-2.24.33

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/lxtask

Instalação do LXTask

Instale o LXTask 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: lxtask
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: Nenhum(a)

Descrições Curtas

lxtask

é um gerenciador de tarefas leve e independente da área de trabalho

Vte-0.28.2

Introdução ao Vte

Vte é uma biblioteca (libvte) que implementa uma pequena engenhoca de emulador de terminal para GTK+ 2 e um aplicativo mínimo de demonstração (vte) que usa a libvte.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Vte

Exigidas

GTK+-2.24.33

Opcionais

gobject-introspection-1.74.0, GTK-Doc-1.33.2 e PyGTK-2.24.0

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/vte2

Instalação do Vte

Instale o Vte executando os seguintes comandos:

./configure --prefix=/usr \
            --libexecdir=/usr/lib/vte \
            --disable-static  &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--libexecdir=/usr/lib/vte : tanto esse pacote quanto o VTE-0.70.3 instalam arquivos de mesmo nome. Essa chave garante que eles não se sobrescrevam se ambos forem instalados.

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Conteúdo

Aplicativo Instalado: vte
Biblioteca Instalada: libvte.so
Diretórios Instalados: /usr/include/vte-0.0, /usr/lib/vte, /usr/share/gtk-doc/html/vte-0.0 e /usr/share/vte

Descrições Curtas

vte

é um emulador simples de terminal

libvte.so

contém as funções da API da Vte

LXTerminal-0.4.0

Introdução ao LXTerminal

O pacote LXTerminal contém um emulador de terminal baseado em VTE para o LXDE com suporte para múltiplas guias.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do LXTerminal

Exigidas

Vte-0.28.2

Opcionais

libxslt-1.1.37 com docbook-xml-4.5 e docbook-xsl-nons-1.79.2 (para construir páginas de manual)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/lxterminal

Instalação do LXTerminal

Instale o LXTerminal 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-man: Use essa chave se você tiver instalado dependências opcionais e desejar construir as páginas de manual.

Conteúdo

Aplicativo Instalado: lxterminal
Bibliotecas Instaladas: Nenhum(a)
Diretório Instalado: /usr/share/lxterminal

Descrições Curtas

lxterminal

um emulador leve de terminal para a área de trabalho do LXDE

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://www.abisource.com/downloads/abiword/3.0.5/source/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.81.0, cURL-7.88.1, FriBidi-1.0.12, GOffice-0.10.55 e wv-1.2.9

Recomendadas
Opcionais

dbus-glib-0.112, evolution-data-server-3.46.4, gobject-introspection-1.74.0, libchamplain-0.12.21, libgcrypt-1.10.1, libical-3.0.16, libsoup-2.74.3, Redland-1.0.17, telepathy-glib-0.24.2, Valgrind-3.20.0, Aiksaurus, GtkMathView, libwmf, libwpd, libwpg, libwps, Analisador Link Grammar, Loudmouth, OTS e Psiconv

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 Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/abiword

Instalação do AbiWord

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.3.3.

--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 Link Grammar

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.26 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.1.3 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.55

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Gnumeric

Exigidas

GOffice-0.10.55 e itstool-2.0.7

Recomendadas Tempo de Execução
Opcionais

DConf-0.40.0 (para evitar algumas falhas de testes), gobject-introspection-1.74.0, PyGObject-3.42.2, Valgrind-3.20.0 (para alguns testes), dblatex (para documentos PDF), libgda, Mono, pxlib e Psiconv

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/gnumeric

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. Três testes são conhecidos por falharem relacionados ao valgrind.

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.55, 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.55

gnumeric-1.12.55

é 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-7.5.0

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência Central: https://download.documentfoundation.org/libreoffice/src/7.5.0/libreoffice-7.5.0.3.tar.xz

  • Soma de verificação MD5 da Transferência Central: 3e7066685b3e786af93ec581ca377496

  • Tamanho da Transferência Central: 254 MB

  • Espaço em disco estimado exigido: 7,1 GB incluindo os arquivos adicionais se baixados durante a construção (748 MB instalados). A instalação de todo o conjunto de idiomas exige mais que 25 GB (cerca de 3 GB instalados)

  • Tempo de construção estimado: 48 UPC com paralelismo=4 (com variação devido ao tempo de transferência)

Transferências Adicionais

Nota

Cerca de 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 3 minutos em uma conexão de fibra, provavelmente não muito mais que 10 minutos em uma conexão ADSL. Se você não tiver baixado um ou mais dos itens a seguir, eles também serão baixados durante a construção.

Dependências do LibreOffice

Exigidas

Archive-Zip-1.68, UnZip-6.0, Wget-1.21.3, Which-2.21 e Zip-3.0

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 o espaço em disco instalado e o tempo de construção.

Opcionais

Avahi-0.8, BlueZ-5.66, DConf-0.40.0, desktop-file-utils-0.26, Doxygen-1.9.6 (não relevante se usar --disable-odk), evolution-data-server-3.46.4, GDB-13.1, GnuTLS-3.8.0, KDE Frameworks-5.103.0, libpaper-1.1.24+nmu5, MariaDB-10.6.12 ou MySQL, MIT Kerberos V5-1.20.1, NASM-2.16.01, SANE-1.0.32, telepathy-glib-0.24.2, Valgrind-3.20.0, VLC-3.0.18, Codificador Apache Commons, Apache Commons HttpClient, Apache Commons Lang, Apache Commons Logging, BeanShell, box2d, CoinMP, Cppunit, Firebird, glyphy, Gnome VFS, hamcrest, Hunspell, Hyphen, iwyu, junit4, libabw, libcdr, libcmis, libebook, libepubgen, libetonyek, libexttextcat, libfreehand, liblangtag, libmspub, libmwaw, libnumbertext, libodfgen, libpagemaker, libqrcodegen, libqxp, librevenge (importador de documentos WordPerfect), 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 em download.lst (diretório do fonte).

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libreoffice

Instalação do LibreOffice

Importante

Ao contrário de outros pacotes, presumimos que você ainda não o tenha desempacotado. Isso é porque a chave --no-overwrite-dir é necessária caso você desempacote como o(a) usuário(a) root.

tar -xf libreoffice-7.5.0.3.tar.xz --no-overwrite-dir &&
cd libreoffice-7.5.0.3

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-7.5.0.3.tar.xz external/tarballs/ &&
ln -sv ../../../libreoffice-help-7.5.0.3.tar.xz         external/tarballs/ &&
ln -sv ../../../libreoffice-translations-7.5.0.3.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:

ln -sv src/libreoffice-help-7.5.0.3/helpcontent2/ &&
ln -sv src/libreoffice-dictionaries-7.5.0.3/dictionaries/ &&
ln -sv src/libreoffice-translations-7.5.0.3/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-7.5.0.3:

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 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

A versão mais recente do GPGME quebra a configuração devido a uma mudança na biblioteca. Corrija-o configurando a seguinte variável:

export ac_cv_lib_gpgmepp_progress_callback=yes

Prepare o LibreOffice para compilação executando os seguintes comandos:

sed -e "/gzip -f/d"   \
    -e "s|.1.gz|.1|g" \
    -i bin/distro-install-desktop-integration &&

sed -e "/distro-install-file-lists/d" -i Makefile.in &&

./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               \
             --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-icu           \
             --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-zlib

Construa o pacote:

make build

Agora, como o(a) usuário(a) root:

make distro-pack-install

Se instalado em /opt/libreoffice-7.5.0.3, 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 libreoffice-7.5.0.3 /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.26 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

sed -e ...: O primeiro sed evita a compressão das páginas de manual e o segundo impede a instalação de falhar.

--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 será baixado se usar apenas 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.

--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-*: 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.22.0.

--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.17.6 para renderizar em vez de skia.

--enable-gtk3-kde5: Essa chave permite que a Visual Class Library, que é responsável pelas pequenas engenhocas, seja construída com caixas de diálogo de arquivo KF5 se GTK+-3, Qt5 e Plasma estiverem todos disponíveis.

--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.

--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-kf5: Constrói com integração KDE/Plasma. Se o Qt-5.15.8 e (ou) o KDE Frameworks-5.103.0 não estiverem instalados em /usr, os diretórios de inclusão e biblioteca precisão ser especificados em QT5INC, QT5LIB, KF5INC e KF5LIB, respectivamente.

--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.

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-43.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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Epiphany

Exigidas

Gcr-3.41.1, gnome-desktop-43.2, ISO Codes-4.12.0, JSON-GLib-1.6.6, libnotify-0.8.1, libportal-0.6, Nettle-3.8.1 e WebKitGTK-2.38.5

Recomendadas
Opcionais

Appstream-Glib

Dependências de Tempo de Execução

gnome-keyring-42.1 (para armazenar senhas) e Seahorse-43.0 (para gerenciar senhas armazenadas)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/epiphany

Instalação do Epiphany

Instale o Epiphany executando os seguintes comandos:

mkdir build &&
cd    build &&

meson --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 LC_ALL=en_US.UTF-8 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-22.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).

Atenção

Falkon depende do QtWebEngine. Isso usa uma cópia bifurcada do chromium e, portanto, é vulnerável a muitos problemas encontrados lá. Os(As) desenvolvedores(as) do Qt tem sempre preferido fazer lançamentos ao mesmo tempo que o resto do Qt (em vez de adicionar correções emergenciais). Agora que eles(as) desejam migrar para o Qt6, os lançamentos 5.15.3 e posteriores do Qt-5.15 estão inicialmente disponíveis somente para clientes pagantes. QtWebEngine é uma exceção por causa da licença LGPL dele, mas levar os fontes git (com o submódulo bifurcado do chromium) a um ponto em que eles serão construídos com sucesso em um sistema BLFS atual pode exigir muito esforço. Esteja ciente de que futuras correções de vulnerabilidades podem demorar muito, a ponto de você desejar considerar usar um navegador diferente.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do falkon

Exigidas

extra-cmake-modules-5.103.0, KDE Frameworks-5.103.0 (para karchive) e qtwebengine-5.15.12

Nota

Estritamente falando, somente o karchive é exigido para construir o falkon, mas vários outros pacotes no KF5 podem ser usados se estiverem presentes. Para construir somente o karchive, baixe esse pacote a partir do diretório especificado em KDE Frameworks-5.103.0 e use as instruções de construção naquela página, mudando $KF5_PREFIX para /usr.

Opcionais

gnome-keyring-42.1, PySide2 e Shiboken2

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/falkon

Instalação do falkon

Instale o falkon executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -DCMAKE_INSTALL_PREFIX=/usr \
      -DCMAKE_BUILD_TYPE=Release  \
      .. &&

make

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.

Agora, como o(a) usuário(a) root:

make install

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.

Explicações do Comando

-DBUILD_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-102.8.0esr

Introdução ao Firefox

Firefox é um navegador autônomo baseado na base de código Mozilla.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Nota

O nome do diretório é firefox-102.8.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 esteja configurado, como o /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 termina 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 esteja 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

Autoconf-2.13, Cbindgen-0.24.3, dbus-glib-0.112, GTK+-3.24.36, libnotify-0.8.1, LLVM-15.0.7 (com clang, usado para bindgen mesmo se usar gcc), nodejs-18.14.1, PulseAudio-16.1 (ou alsa-lib-1.2.8 se você editar o mozconfig; agora obsoletado pelo Mozilla); em quaisquer casos, por favor, leia as Informações de Configuração, Python-3.11.2 (reconstruído depois de instalar o SQLite-3.40.1), startup-notification-0.12, UnZip-6.0, 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

cURL-7.88.1, Doxygen-1.9.6, FFmpeg-5.1.2 (tempo de execução, para reproduzir arquivos mov, mp3 ou mp4), liboauth-1.0.3, Valgrind-3.20.0, Wget-1.21.3, Wireless Tools-29, libproxy

Observações de Usuário(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 && ./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"
# Se você tiver uma máquina multi Elementos de Processamento, todos os Elementos de Processamento serão usados por padrão.

# Se você tiver instalado (ou instalará) o "wireless-tools" e desejar
# usar serviços de geolocalização da web, comente esta linha
ac_add_options --disable-necko-wifi

# Chaves de API para APIs de geolocalização - necko-wifi (acima) é exigido para MLS.
# Descomente a linha seguinte se desejar usar o Serviço de Localização do Mozilla
#ac_add_options --with-mozilla-api-keyfile=$PWD/mozilla-key

# Descomente a linha seguinte se desejar usar a API de geolocalização do Google
# (necessária para uso com mapas salvos com o Google Maps)
#ac_add_options --with-google-location-service-api-keyfile=$PWD/google-key

# notificação de inicialização é necessária desde o Firefox-78

# Descomente a seguinte opção se você não tiver instalado o PulseAudio
# e quiser usar o alsa
#ac_add_options --enable-audio-backends=alsa

# Comente as seguintes opções se você não tiver instalado
# as dependências recomendadas:
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

# Ao contrário do Thunderbird, embora usar o vinculador Gold possa
# economizar quatro megabytes no arquivo instalado, isso não torna
# a construção mais rápida.

# libdavid (decodificador av1) exige nasm. Descomente isto se o nasm
# não tiver sido instalado. Não descomente se você tiver o
# ffmpeg-5 instalado.
#ac_add_options --disable-av1

# Você não pode distribuir o binário se fizer isto
ac_add_options --enable-official-branding

# A remoção agora está habilitada por padrão. Descomente estas linhas
# se você precisar executar um depurador:
#ac_add_options --disable-strip
#ac_add_options --disable-install-strip

# Desabilitar os símbolos de depuração torna a construção muito menor e um pouco
# mais rápida. Comente isto se você precisar executar um depurador. Observação: Isto é
# exigido para compilação em i686.
ac_add_options --disable-debug-symbols

# Foi informado que o elf-hack causa instalações falhas (depois de construções bem-sucedidas)
# em algumas máquinas. Supõe-se que melhore o tempo de inicialização e reduza a libxul.so em
# alguns MB - comente isto se você souber que tua máquina não é afetada.
ac_add_options --disable-elf-hack

# Os(As) editores(as) do BLFS recomendam não mudar nada abaixo desta linha:
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

# O nível padrão de otimização novamente produz uma construção funcional com o gcc.
ac_add_options --enable-optimize

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

# Usar bibliotecas wasm em sandbox foi movido para todas as construções, em vez de
# apenas construções de automação do Mozilla. Exige pacotes extras llvm e foi
# informado que retarda seriamente a construção. Desative-o.
ac_add_options --without-wasm-sandboxed-libraries

# A opção seguinte desabilita o Informe de Telemetria. Com o Add-on Fiasco,
# constatou-se que a Mozilla estava coletando dados de usuário(a), incluindo senhas salvas
# e dados de formulários da web, sem o consentimento dos(as) usuários(as). Constatou-se, também,
# que a Mozilla estava enviando atualizações para sistemas sem o conhecimento ou permissão do(a)
# usuário(a). Como resultado disso, use o seguinte comando para desabilitar permanentemente
# os informes de telemetria no Firefox.
unset MOZ_TELEMETRY_REPORTING

mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/firefox-build-dir
EOF

Compile o Firefox emitindo os seguintes comandos:

Uma mudança em cbindgen-0.24.2 faz com que um símbolo seja agora gerado pelo cbindgen, mas ele já foi definido em um cabeçalho. Este sed evita que a compilação falhe:

sed -i '/ROOT_CLIP_CHAIN/d' gfx/webrender_bindings/webrender_ffi.h

Se as APIs de geolocalização forem necessárias:

Nota

As chaves de API do Google e Mozilla abaixo são específicas para o LFS. Se usar essas instruções para outra distribuição ou se 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 e https://location.services.mozilla.com/api respectivamente.

echo "AIzaSyDxKL42zsPjbke5O8_rPVpVrLrJ8aeE9rQ" > google-key
echo "613364a7-9418-4c86-bcee-57e32fd70c23" > mozilla-key

Nota

Se você estiver compilando esse pacote em chroot, você precisa fazer duas coisas. Primeiro, como o(a) usuário(a) root, certifique-se de que /dev/shm esteja montado. Se você não fizer isso, a configuração do Python falhará com um informe de rastreamento referenciando /usr/lib/pythonN.N/multiprocessing/synchronize.py. Execute:

mountpoint -q /dev/shm || mount -t tmpfs devshm /dev/shm

Segundo, como o(a) usuário(a) root exporte a variável de ambiente $SHELL usando export SHELL=/bin/sh ou, então, preceda SHELL=/bin/sh ao executar os comandos ./mach.

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 configure                                    &&
./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:

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 MOZBUILD_STATE_PATH

Explicações do Comando

export MOZBUILD_STATE_PATH=${PWD}/mozbuild: A construção agora deve te informar que pretende criar ~/.mozbuild e oferecer a você 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 identificador de telemetria (provavelmente aleatório). Criar isso no diretório de construção, e deletá-lo depois da instalação, evita que seja usado. Se você deseja participar da telemetria, exporte MOZBUILD_STATE_PATH para apontar para o diretório padrão dele e remova a entrada do mozconfig.

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 incluídos.

./mach configure: Isso valida as dependências fornecidas e o mozconfig.

./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-16.1) e reiniciar o firefox para verificar se está funcionando. Se agora funcionar, adicione o seguinte ao teu ~/.xinitrc: pulseaudio --verbose --log-target=journald& (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 compatível (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.15

Introdução ao SeaMonkey

SeaMonkey é uma suíte de navegadores, descendente do Netscape. Inclui o navegador, o compositor, os 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-102.8.0 e Thunderbird-102.8.0.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Nota

O tarball seamonkey-2.53.15.source.tar.xz desempacotará para o diretório seamonkey-2.53.15.

Dependências do SeaMonkey

Exigidas

Autoconf-2.13, Cbindgen-0.24.3, GTK+-3.24.36, Python-2.7.18, UnZip-6.0, 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.8, dbus-glib-0.112, GConf-3.2.6, startup-notification-0.12, Valgrind-3.20.0, Wget-1.21.3, Wireless Tools-29, Hunspell e Watchman

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/seamonkey

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 ./configure --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"
# Se você tiver uma máquina multi Elementos de Processamento, todos os Elementos de Processamento serão usados

# Se você tiver instalado o DBus-Glib, comente esta linha:
ac_add_options --disable-dbus

# Se você tiver instalado o dbus-glib e tiver instalado (ou instalará)
# o "wireless-tools" e deseja usar serviços de geolocalização da web,
# comente esta linha
ac_add_options --disable-necko-wifi

# Descomente estas linhas se você tiver instalado dependências opcionais:
#ac_add_options --enable-system-hunspell
#ac_add_options --enable-startup-notification

# Descomente a seguinte opção se você não tiver instalado o PulseAudio:
#ac_add_options --disable-pulseaudio
# e descomente esta se você instalou alsa-lib em vez de PulseAudio:
#ac_add_options --enable-alsa

# Comente a seguinte opção se você tiver o gconf instalado:
ac_add_options --disable-gconf

# Comente as seguintes opções se você não tiver instalado
# as dependências recomendadas:
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

# Desativar símbolos de depuração torna a construção muito menor e um pouco
# mais rápida. Comente isto se você precisar executar um depurador. Observação:
# Isto é necessário para compilação em i686.
ac_add_options --disable-debug-symbols

# Foi informado que o elf-hack causa instalações falhas (depois de construções bem-sucedidas)
# em algumas máquinas. Supõe-se que melhore o tempo de inicialização e reduza
# a libxul.so em alguns MB - comente isto se você souber que tua máquina não é afetada.
ac_add_options --disable-elf-hack

# Seamonkey tem alguns recursos adicionais que não estão ativados por padrão,
# como cliente IRC, calendário e Inspetor DOM. O Inspetor DOM auxilia no
# projeto de páginas da web. Comente estas opções se você não deseja
# esses recursos.
ac_add_options --enable-calendar
ac_add_options --enable-dominspector
ac_add_options --enable-irc

# Os(as) editores(as) do BLFS recomendam não mudar nada abaixo desta linha:
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

# Rust-simd não compila com versões recentes do Rust.
# Está desabilitado nas versões recentes do Firefox
ac_add_options --disable-rust-simd

ac_add_options --enable-optimize="-O2"
ac_add_options --enable-strip
ac_add_options --enable-install-strip
ac_add_options --enable-official-branding

# A opção de usar o Cairo do sistema foi removida em 2.53.9.
ac_add_options --enable-system-ffi
ac_add_options --enable-system-pixman

ac_add_options --with-system-bz2
ac_add_options --with-system-jpeg
ac_add_options --with-system-png
ac_add_options --with-system-zlib
EOF

Nota

Se você estiver compilando esse pacote em chroot, você precisa fazer duas coisas. Primeiro, como o(a) usuário(a) root, certifique-se de que /dev/shm esteja montado. Se você não fizer isso, a configuração do Python falhará com um informe de rastreamento referenciando /usr/lib/pythonN.N/multiprocessing/synchronize.py. Execute:

mountpoint -q /dev/shm || mount -t tmpfs devshm /dev/shm

Segundo, como o(a) usuário(a) root exporte a variável de ambiente $SHELL usando export SHELL=/bin/sh ou, então, preceda SHELL=/bin/sh ao executar os comandos ./mach.

Primeiro remova um sinalizador obsoleto no código Python, que foi removido em python-3.11:

grep -rl \"rU\" | xargs sed -i 's/"rU"/"r"/'

A seguir, contorne um problema no ambiente virtual Python:

sed -i "/if sys.executable !=/i\    open(join(bin_dir, 'pyvenv.cfg'), 'w').close()" \
    third_party/python/virtualenv/virtualenv.py

A seguir, contorne uma falha que ocorre durante a reprodução de áudio quando o Seamonkey é compilado com rustc-1.67 ou superior:

sed -i '/USE_PULSE_RUST/d' media/libcubeb/src/moz.build

Compile o SeaMonkey executando os seguintes comandos:

export CC=clang CXX=clang++          &&
./mach configure || ./mach configure &&
./mach build

Esse pacote não vem com uma suíte de teste.

Instale o SeaMonkey emitindo os seguintes comandos como o(a) usuário(a) root:

./mach install                  &&
chown -R 0:0 /usr/lib/seamonkey &&

cp -v $(find -name seamonkey.1 | head -n1) /usr/share/man/man1

Explicações do Comando

export CC=clang CXX=clang++: Com a introdução do gcc-12, muitos mais avisos são gerados ao compilar aplicativos Mozilla e isso resulta em uma construção muito mais lenta e maior. Além disso, construir com GCC no i?86 está atualmente quebrado. Embora o código de desenvolvedor(a) do 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 configure || ./mach configure: Isso valida as dependências fornecidas e o mozconfig. Isso é executado duas vezes porque problemas com mach farão com que ele falhe na primeira vez.

./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 o SeaMonkey

Para instalar vários complementos do SeaMonkey, consulte Complementos para Seamonkey.

Juntamente com usar o menu Preferências para configurar as 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 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 de preferências de configuração e informações relacionadas a cada uma delas. Você pode usar a barra Pesquisar: para inserir critérios de pesquisa e restringir os itens listados. A mudança de uma preferência pode ser feita usando dois métodos. Primeiro, se a preferência tiver um valor booleano (Verdadeiro/Falso), basta clicar duas vezes na preferência para alternar o valor; e dois, para outras preferências, basta clicar com o botão direito na linha desejada, escolher Modificar no menu e mudar o valor. A criação de novos itens de preferência é realizada da mesma maneira, exceto que escolha Novo no menu e forneça os dados desejados nos campos quando solicitado.

Se você usa um ambiente de área de trabalho, como Gnome ou KDE, você possivelmente deseje criar um arquivo seamonkey.desktop, de forma que o 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 adequadamente usando uma plataforma LFS 11.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, enchant-2.3.3, GMime-3.2.7, GPGME-1.18.0, GTK+-3.24.36 e libnotify-0.8.1

Exigidas (tempo de execução)

MTA (isso fornece um comando sendmail)

Opcionais

Compface-1.5.2, Gcr-3.41.1, gtksourceview-3.24.11, libcanberra-0.30, libsecret-0.20.5, MIT Kerberos V5-1.20.1, OpenLDAP-2.6.4, Procmail-3.22, SQLite-3.40.1, WebKitGTK-2.38.5, html2text, osmo, rubrica, yelp-tools

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/balsa

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.38.5 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.9.1

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://feh.finalrewind.org/feh-3.9.1.tar.bz2

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: d83f1731515d31069908d4bda5f3489b

  • Tamanho da transferência: 2,0 MB

  • Espaço em disco estimado exigido: 7,0 MB (com os testes)

  • Tempo de construção estimado: menos que 0,1 UPC (com testes)

Dependências do feh

Exigidas

libpng-1.6.39 e imlib2-1.9.1 (construído com suporta a giflib-5.2.1, para os testes)

Recomendadas
Opcionais

libexif-0.6.24

Opcionais (tempo de execução)

libjpeg-turbo-2.1.5.1 (para rotação de imagem sem perdas) e ImageMagick-7.1.0-61 (para carregar formatos não suportados)

Opcionais (suíte de teste)

Test-Command-0.11 (exigido)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/feh

Instalação do feh

Instale o feh executando os seguintes comandos:

sed -i "s:doc/feh:&-3.9.1:" 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.9.1:" 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.9.1 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do FontForge

Exigidas

libspiro-20220722 e libxml2-2.10.3

Recomendadas
Opcionais

giflib-5.2.1, git-2.39.2, libjpeg-turbo-2.1.5.1, libtiff-4.5.0, sphinx-6.1.3 (para construir documentação HTML) e WOFF2-1.0.2

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/fontforge

Instalação do FontForge

Instale o FontForge executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -DCMAKE_INSTALL_PREFIX=/usr \
      -DCMAKE_BUILD_TYPE=Release  \
      -Wno-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

-DCMAKE_BUILD_TYPE=Release: Essa chave é usada para criar um lançamento otimizado sem informações de depuração.

-Wno-dev: Essa chave é usada para suprimir avisos destinados para os(as) desenvolvedores(as) do pacote.

-DENABLE_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.11.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

Gimp-2.10.32

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://download.gimp.org/pub/gimp/v2.10/gimp-2.10.32.tar.bz2

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: fd99bd8336c0d3aa09598e68d6e4a4d9

  • Tamanho da transferência: 30 MB

  • Espaço em disco estimado exigido: 876 MB (194 MB instalado, adicionar 814 MB para testes)

  • Tempo de construção estimado: 1,9 UPC (Usando paralelismo=4; adicionar 0,5 UPC para testes)

Transferências Adicionais

Nota

A atualização dos arquivos de ajuda ainda é um trabalho em andamento, com grandes partes do texto para muitos idiomas ainda não traduzido. O arquivo abaixo é um instantâneo do git.

  • Transferência (HTTP): https://anduin.linuxfromscratch.org/BLFS/gimp/gimp-help-2021-03-30.tar.xz

  • Tamanho da transferência: 170 MB

  • Soma de verificação MD5 da transferência: df6acc812c829b610d621f8e6973a680

  • Espaço em disco estimado exigido: From 383 MB (en only) to 1.8 GB (all 17 languages)

  • Tempo de construção estimado: 1.8 SBU (en only), 14.0 SBU, with parallelism=4, for all languages

Dependências do Gimp

Exigidas

gegl-0.4.40, gexiv2-0.14.0, glib-networking-2.74.0, GTK+-2.24.33, HarfBuzz-7.0.0. libjpeg-turbo-2.1.5.1, libmypaint-1.6.1, librsvg-2.54.5, libtiff-4.5.0, Módulo "python2" libxml2-2.10.3 (para construir os arquivos de ajuda traduzidos), Little CMS-2.14, mypaint-brushes-1.3.1, Poppler-23.02.0 (incluindo poppler-data) e um ambiente gráfico

Recomendadas
Opcionais

AAlib-1.4rc5, alsa-lib-1.2.8, Gvfs-1.50.3 (para acessar a ajuda online), libmng-2.0.3, libunwind-1.6.2, libwebp-1.3.0, OpenJPEG-2.5.0, um MTA (isso fornece um aplicativo sendmail), GTK-Doc-1.33.2, appstream-glib, libbacktrace, libheif com libde265 (ambos necessários para ler imagens heic do macOS), libwmf e OpenEXR

Quando tiver executado o configure, você verá que o WebKit não foi encontrado - essa dependência é para o legado webkit-1.0 que nunca deveria ser usado em um sistema moderno exposto à Internet.

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 Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/gimp

Instalação do Gimp

Instale o Gimp executando os seguintes comandos:

./configure --prefix=/usr --sysconfdir=/etc &&
make

Para testar os resultados (exige um terminal janelado do X): make check.

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+-2.24.33 ou GTK+-3.24.36 instalado (para o cache de ícones) e o desktop-file-utils-0.26 (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. Devido aos problemas mencionados na observação acima, é recomendável usar a ajuda on-line, seja construindo-se contra o Gvfs-1.50.3, de forma que 'ajuda' possa abrir os arquivos XML mais recentes em teu navegador, ou então você pode abrir manualmente o HTML em teu navegador, acessando https://docs.gimp.org/2.10/en (mude o código do idioma, se desejado).

Se mesmo assim você desejar instalar cópias locais dos arquivos de ajuda para leitura offline, desempacote o tarball gimp-help e mude para a raiz da recém-criada árvore do fonte. Prepare para a construção com o seguinte comando:

ALL_LINGUAS="ca da de el en en_GB es fi fr it ja ko nn pt_BR ro ru zh_CN" \
./autogen.sh --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/2.0/help

Explicações do Comando

ALL_LINGUAS="ca da de el en en_GB ...": 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.

--disable-python: Essa opção é necessária se você não tiver instaladoou o PyGTK.

--enable-gtk-doc: Use esse parâmetro se GTK-Doc estiver instalado e você desejar reconstruir e instalar a documentação da API.

Configurando o Gimp

Arquivos de Configuração

/etc/gimp/2.0/* e ~/.gimp-2.8/gimprc

Conteúdo

Aplicativos Instalados: gimp (link simbólico), gimp-2.10, gimp-console (link simbólico), gimp-console-2.10, gimp-test-clipboard-2.0 e gimptool-2.0
Bibliotecas Instaladas: libgimp-2.0.so, libgimpbase-2.0.so, libgimpcolor-2.0.so, libgimpconfig-2.0.so, libgimpmath-2.0.so, libgimpmodule-2.0.so, libgimpthumb-2.0.so, libgimpui-2.0.so e libgimpwidgets-2.0.so
Diretórios Instalados: /etc/gimp, /usr/include/gimp-2.0, /usr/{lib,share}/gimp, /usr/share/gtk-doc/html/libgimp{,base,color,config} e /usr/share/gtk-doc/html/libgimp{math,module,thumb,widgets}

Descrições Curtas

gimp

é um link simbólico para gimp-2.10

gimp-2.10

é o GNU Image Manipulation Program. Ele funciona com uma variedade de formatos de imagem e oferece uma grande seleção de ferramentas

gimp-console

é um link simbólico para gimp-console-2.10

gimp-console-2.10

é um aplicativo de console que se comporta como se o Gimp fosse chamado com a opção de linha de comando --no-interface

gimptool-2.0

é uma ferramenta que pode construir plug-ins ou conjunto de comandos sequenciais e instalá-los se forem distribuídos em um arquivo fonte. gimptool-2.0 também pode ser usado por aplicativos que precisem saber com quais bibliotecas e caminhos de inclusão o Gimp foi compilado

libgimp-2.0.so

fornece ligações C para a Gimp's Procedural Database (PDB), as quais oferecem uma interface para funções centrais e para funcionalidades fornecidas por plug-ins

libgimpbase-2.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-2.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-2.0.so

contém funções C para ler e escrever informações de configuração

libgimpmath-2.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-2.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-2.0.so

fornece as funções C para manusear os objetos em miniatura do Gimp

libgimpui-2.0.so

contém as funções comuns de interface de usuário(a) do Gimp

libgimpwidgets-2.0.so

contém as funções de criação e manipulação de pequenas engenhocas do Gimp e do GTK

Gparted-1.5.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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://downloads.sourceforge.net/gparted/gparted-1.5.0.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 9adbd4b1cbcb7a7c76dcc0e9ffed9a7c

  • Tamanho da transferência: 5,2 MB

  • Espaço em disco estimado exigido: 75 MB (adicionar 75 MB para os testes)

  • Tempo de construção estimado: 0,3 UPC (usando paralelismo=4; adicionar 0,2 UPC para testes)

Dependências do Gparted

Exigidas

Gtkmm-3.24.7 e parted-3.5

Opcionais

btrfs-progs-6.1.3 (se usar um sistema de arquivos btrfs), exfatprogs e udftools

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/gparted

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 você usa atualmente): Hdparm-9.65 (exigido para exibir opcionalmente informações do número de série do dispositivo), btrfs-progs-6.1.3, dosfstools-4.2, e2fsprogs (instalado como parte do LFS), jfsutils-1.1.15, reiserfsprogs-3.6.27, xfsprogs-6.1.1, mtools (exigido para ler e escrever rótulos de volume FAT16/32 e UUIDs), hfsutils, hfsprogs, nilfs-utils e Reiser4progs.

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.2p1.

ssh-askpass

Para usar opcionalmente o ssh-askpass-9.2p1 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

HexChat-2.16.1

Introdução ao HexChat

HexChat é um aplicativo de bate-papo IRC. Ele permite que você se una a vários canais de IRC (salas de bate-papo) ao mesmo tempo, converse publicamente, tenha conversas privadas, etc. Transferências de arquivos também são possíveis.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://dl.hexchat.net/hexchat/hexchat-2.16.1.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 0af269d719c2c047310d44804bb31fdb

  • Tamanho da transferência: 1,3 MB

  • Espaço em disco estimado exigido: 22 MB

  • Tempo de construção estimado: menos que 0,1 UPC (usando paralelismo=4)

Dependências do HexChat

Exigidas

dbus-glib-0.112, GLib-2.74.5 e libnotify-0.8.1

Recomendadas
Opcionais

dbus-glib-0.112, ISO Codes-4.12.0, libnotify-0.8.1, pciutils-3.9.0, libproxy, luajit, se Python estiver habilitado, cffi e pycparser.

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/hexchat

Instalação do HexChat

Instale o HexChat executando os seguintes comandos:

mkdir build &&
cd    build &&

meson --prefix=/usr         \
      --buildtype=release   \
      -Dwith-lua=false      \
      -Dwith-python=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

-Dwith-lua=false: Por padrão, esse pacote procurará por luajit. No entanto, o suporte ao plugin Lua atualmente está quebrado e fará com que o aplicativo trave na inicialização.

-Dwith-python=false: Se a interface Python precisasse ser habilitada, remova essa chave ou configure-a como true. Ao habilitar o Python, dois módulos adicionais (cffi e pycparser) precisam ser instalados antes da instalação do Hexchat.

-Dwith-libcanberra=false: Use essa chave se você não tiver a libcanberra instalada.

Conteúdo

Aplicativo Instalado: hexchat
Bibliotecas Instaladas: Nenhum(a)
Diretório Instalado: /usr/lib/hexchat

Descrições Curtas

hexchat

é um cliente gráfico de Internet Relay Chat (IRC)

Inkscape-1.2.2

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://inkscape.org/gallery/item/37360/inkscape-1.2.2.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 490c40bbb3ce3441ceee88e61775bbf4

  • Tamanho da transferência: 38 MB

  • Espaço em disco estimado exigido: 911 MB (184 MB instalado)

  • Tempo de construção estimado: 4,7 UPC (com paralelismo=4)

Nota

O tarball inkscape-1.2.2.tar.xz extrairá para o diretório inkscape-1.2.2_2022-12-01_b0a8486541/.

Dependências do Inkscape

Exigidas

Boost-1.81.0, double-conversion-3.2.1, GC-8.2.2, Gsl-2.7.1, Gtkmm-3.24.7, libsoup-2.74.3, libxslt-1.1.37, Poppler-23.02.0, popt-1.19 e Wget-1.21.3 (para baixar as dependências de teste)

Recomendadas
Opcionais

Aspell-0.60.8, dbus-1.14.6 (para executar o inkscape a partir de conjuntos de comandos sequenciais), Doxygen-1.9.6, gspell-1.12.0, libcdr, libvisio, libwpg (ou libwpd)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/inkscape

Instalação do Inkscape

Instale o Inkscape executando os seguintes comandos:

mkdir build                       &&
cd    build                       &&

cmake -DCMAKE_INSTALL_PREFIX=/usr \
      -DCMAKE_BUILD_TYPE=Release  \
      ..                          &&
make

Nota

Esse pacote ocasionalmente possivelmente falhe ao construir com múltiplos processadores. Veja-se Usando Múltiplos Processadores para mais informações.

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+-2.24.33 ou GTK+-3.24.36 instalado (para o cache de ícones) e o desktop-file-utils-0.26 (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

-DCMAKE_BUILD_TYPE=Release: Essa chave é usada para construir a biblioteca de lançamento sem qualquer `assertiva` de depuração no código.

-DWITH_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: lib2geom.so e libinkscape_base.so (em /usr/lib/inkscape)
Diretórios Instalados: /usr/include/2geom-1.2.2, /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

Pidgin-2.14.12

Introdução ao Pidgin

Pidgin é um cliente de mensagens instantâneas Gtk+ 2 que pode se conectar a uma ampla variedade de redes de intercomunicação, incluindo Bonjour, ICQ, GroupWise, Jabber/XMPP, IRC, Gadu-Gadu, SILC, SIMPLE e Zephyr.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://downloads.sourceforge.net/pidgin/pidgin-2.14.12.tar.bz2

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: cfcf2ab67717e7c2884e4399864b877a

  • Tamanho da transferência: 7,8 MB

  • Espaço em disco estimado exigido: 270 MB (com testes e documentos)

  • Tempo de construção estimado: 0,5 UPC (usando paralelismo=4; com testes e documentos)

Dependências do Pidgin

Exigidas

GTK+-2.24.33

Recomendadas
Opcionais

Avahi-0.8 (exigido para o plugin Bonjour), Cyrus SASL-2.1.28, dbus-1.14.6, Doxygen-1.9.6, evolution-data-server-3.46.4, GConf-3.2.6, Graphviz-7.1.0, libidn-1.41 (exigido, se você desejar executar a suíte de teste), libnsl-2.0.0, NetworkManager-1.42.0, SQLite-3.40.1 (exigido para o plugin Contact Availability Prediction), startup-notification-0.12, Tk-8.6.13, Farstream (exigido para suporte de vídeo e voz), Gtkspell, libgadu, libgnt, Meanwhile (exigido para suporte de protocolo Sametime), Mono, Cliente SILC, kit de ferramentas SILC, Zephyr e MIT Kerberos V5-1.20.1 (exigido para suporte Kerberos no módulo Zephyr)

Opcionais (tempo de execução)

xdg-utils-1.1.3

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/pidgin

Instalação do Pidgin

Compile o Pidgin executando os seguintes comandos:

./configure --prefix=/usr        \
            --sysconfdir=/etc    \
            --with-gstreamer=1.0 \
            --disable-avahi      \
            --disable-gtkspell   \
            --disable-meanwhile  \
            --disable-idn        \
            --disable-nm         \
            --disable-tk         \
            --disable-vv         &&
make

Se você tiver o Doxygen-1.9.6 instalado (Graphviz-7.1.0 também pode ser usado) e desejar criar a documentação da API, emita:

make docs

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install &&
mkdir -pv /usr/share/doc/pidgin-2.14.12 &&
cp -v README doc/gtkrc-2.0 /usr/share/doc/pidgin-2.14.12

Se você criou a documentação da API, instale-a usando os seguintes comandos como o(a) usuário(a) root:

mkdir -pv /usr/share/doc/pidgin-2.14.12/api &&
cp -rv doc/html/* /usr/share/doc/pidgin-2.14.12/api

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+-2.24.33 ou GTK+-3.24.36 instalado (para o cache de ícones) e o desktop-file-utils-0.26 (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

--with-gstreamer=1.0: Remova essa chave e adicione --disable-gstreamer se você não tiver instalado o gstreamer-1.22.0.

--disable-avahi: Remova essa chave se você tiver instalado o Avahi-0.8.

--disable-gtkspell: Remova essa chave se você tiver instalado o Gtkspell e desejar habilitar o suporte à verificação ortográfica.

--disable-meanwhile: Remova essa chave se você tiver instalado o Meanwhile.

--disable-idn: Remova essa chave se você tiver instalado o libidn-1.41.

--disable-tk: Remova essa chave se você tiver instalado o Tk-8.6.13 e desejar usar as ligações TCL.

--disable-nm: Remova essa chave se você tiver instalado o NetworkManager-1.42.0.

--disable-vv: Remova essa chave se você tiver instalado o Farstream e desejar habilitar o suporte de comunicação de voz e vídeo. Você também deveria remover o sinalizador --disable-gstreamer.

--enable-cyrus-sasl: Use essa chave se você tiver instalado o Cyrus SASL-2.1.28 e desejar construir o Pidgin com suporte SASL.

--disable-gnutls: Use essa chave se você tiver o GnuTLS-3.8.0 e nss-3.88.1 instalados, mas quiser usar o nss-3.88.1 para o suporte SSL.

Configurando o Pidgin

Arquivos de Configuração

~/.purple/* e ~/.gtkrc-2.0

Informação de Configuração

A maior parte da configuração pode ser realizada usando-se as diversas configurações de preferência dentro dos aplicativos. Além disso, você pode criar um arquivo ~/.gtkrc-2.0 que pode armazenar configurações do tema gtk+-2 que afetam o Pidgin e outros aplicativos Gtk+ 2. Observe que um exemplo de arquivo gtkrc-2.0 foi instalado durante a instalação do pacote e pode ser usado como ponto de partida ou referência.

Conteúdo

Aplicativos Instalados: pidgin, purple-client-example, purple-remote, purple-send, purple-send-async e purple-url-handler
Biblioteca Instalada: libpurple.so e libpurple-client.so
Diretórios Instalados: /usr/include/libpurple, /usr/include/pidgin, /usr/lib/pidgin, /usr/lib/purple-2, /usr/share/doc/pidgin-2.14.12, /usr/share/pixmaps/pidgin, /usr/share/purple e /usr/share/sounds/purple

Descrições Curtas

pidgin

é um cliente de mensagens instantâneas GTK+ 2

purple-client-example

é um exemplo que demonstra como usar a biblioteca libpurple-client para se comunicar com purple

purple-remote

envia comandos remotos para Pidgin/Finch

purple-send

chama funções de API do purple usando DBus e imprime o valor de retorno

purple-send-async

chama funções de API do purple usando DBus. Ao contrário de purple-send, ele não imprime o valor de retorno

purple-url-handler

é um conjunto de comandos sequenciais Python para lidar com URLs com o purple

Rox-Filer-2.11

Introdução ao Rox-Filer

rox-filer é um gerenciador de arquivos gtk2 rápido e leve.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do rox-filer

Exigidas

libglade-2.6.4 e shared-mime-info-2.2

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/rox-filer

Configuração do Núcleo

Se você quiser que o rox-filer seja capaz de atualizar o conteúdo de um diretório quando mudanças forem feitas nos arquivos por outros aplicativos (por exemplo, se um conjunto de comandos sequenciais estiver executando), você precisará habilitar o suporte dnotify em teu núcleo. No make menuconfig:

File systems --->
  [*] Dnotify support   [CONFIG_DNOTIFY]

Salve o novo .config e então compile o núcleo.

Instalação do Rox-Filer

Compile o rox-filer com os seguintes comandos:

cd ROX-Filer                                                        &&
sed -i 's:g_strdup(getenv("APP_DIR")):"/usr/share/rox":' src/main.c &&
sed -i 's/gboolean/extern &/' src/session.h                     &&

mkdir build                        &&
pushd build                        &&
  ../src/configure LIBS="-lm -ldl" &&
  make                             &&
popd

Agora instale-o como o(a) usuário(a) root:

mkdir -p /usr/share/rox                              &&
cp -av Help Messages Options.xml ROX images style.css .DirIcon /usr/share/rox &&

cp -av ../rox.1 /usr/share/man/man1                  &&
cp -v  ROX-Filer /usr/bin/rox                        &&
chown -Rv root:root /usr/bin/rox /usr/share/rox      &&

cd /usr/share/rox/ROX/MIME                           &&
ln -sv text-x-{diff,patch}.png                       &&
ln -sv application-x-font-{afm,type1}.png            &&
ln -sv application-xml{,-dtd}.png                    &&
ln -sv application-xml{,-external-parsed-entity}.png &&
ln -sv application-{,rdf+}xml.png                    &&
ln -sv application-x{ml,-xbel}.png                   &&
ln -sv application-{x-shell,java}script.png          &&
ln -sv application-x-{bzip,xz}-compressed-tar.png    &&
ln -sv application-x-{bzip,lzma}-compressed-tar.png  &&
ln -sv application-x-{bzip-compressed-tar,lzo}.png   &&
ln -sv application-x-{bzip,xz}.png                   &&
ln -sv application-x-{gzip,lzma}.png                 &&
ln -sv application-{msword,rtf}.png

Explicações do Comando

sed -i 's:g_strdup(getenv("APP_DIR")):"/usr/share/rox":' src/main.c: Esse comando codifica rigidamente /usr/share/rox como o diretório para os arquivos privados do rox-filer. Sem esse sed, o rox precisa que a variável de ambiente ${APP_DIR} esteja configurada.

sed -i 's/gboolean/extern &/' src/session.h: Esse comando corrige uma definição múltipla sinalizada como um erro pelo GCC 10 e superior.

ln -sv application-...: Esses comandos duplicam os ícones para alguns tipos MIME comuns. Sem esses links, o rox-filer exibiria apenas o ícone padrão "blob binário desconhecido".

Configurando o RoxFiler

Informação de Configuração

A maior parte da configuração do rox-filer é obtida clicando-se com o botão direito em uma janela do rox-filer e escolhendo "Opções" a partir do menu. Ele armazena as configurações dele em ~/.config/rox.sourceforge.net.

Um recurso do rox-filer é que, se existir um arquivo executável chamado AppRun em um diretório, o rox-filer executará primeiro o AppRun antes de abrir a pasta.

Como exemplo de como isso pode ser usado, se você tiver acesso ssh a outro computador (talvez outro computador em tua rede local de intercomunicação) com ssh configurado para logins sem senha e tiver o sshfs-3.7.3 instalado, você poderá usar o AppRun para montar o computador remoto em uma pasta local usando o sshfs. Para que este exemplo de conjunto de comandos sequenciais AppRun funcione, a pasta precisa ter o mesmo nome que o nome do dispositivo do computador remoto:

cat > /path/to/hostname/AppRun << "HERE_DOC"
#!/bin/bash

MOUNT_PATH="${0%/*}"
HOST=${MOUNT_PATH##*/}
export MOUNT_PATH HOST
sshfs -o nonempty ${HOST}:/ ${MOUNT_PATH}
rox -x ${MOUNT_PATH}
HERE_DOC

chmod 755 /path/to/hostname/AppRun

Isso funciona bem para montagem, mas para desmontá-lo o comando fusermount -u ${MOUNTPOINT} é executado. Você poderia configurar isso como teu comando padrão de desmontagem em tuas preferências do rox, mas, então, não seria capaz de desmontar nenhum ponto de montagem normal (que precisasse de desmontagem). Um conjunto de comandos sequenciais é necessário que desmontará um ponto de montagem do Fuse com fusermount -u ${MOUNTPOINT} e todo o resto com umount. Como o(a) usuário(a) root:

cat > /usr/bin/myumount << "HERE_DOC" &&
#!/bin/bash
sync
if mount | grep "${@}" | grep -q fuse
then fusermount -u "${@}"
else umount "${@}"
fi
HERE_DOC

chmod 755 /usr/bin/myumount

Agora, para fazer o Rox usar esse conjunto de comandos sequenciais simples, abra uma janela do Rox, clique com o botão direito nela e escolha Opções a partir do menu. Na lista à esquerda escolha "Janelas de ação" e depois no lado direito, onde diz "Comando de desmontagem", mude umount para myumount.

Se você usa um ambiente de área de trabalho, como Gnome ou KDE, você possivelmente goste de criar um arquivo rox.desktop, de forma que o rox-filer apareça nos menus do painel. Como o(a) usuário(a) root:

ln -s ../rox/.DirIcon /usr/share/pixmaps/rox.png &&
mkdir -p /usr/share/applications &&

cat > /usr/share/applications/rox.desktop << "HERE_DOC"
[Desktop Entry]
Encoding=UTF-8
Type=Application
Name=Rox
Comment=O Gerenciador de Arquivos Rox
Icon=rox
Exec=rox
Categories=GTK;Utility;Application;System;Core;
StartupNotify=true
Terminal=false
HERE_DOC

Conteúdo

Aplicativos Instalados: rox
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/share/rox

Descrições Curtas

rox

é o gerenciador de arquivos rox

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 adequadamente usando uma plataforma LFS 11.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.10 (para imagens de plano de fundo) e startup-notification-0.12

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/rxvt-unicode

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 Perl matcher (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, configura uma cor de plano de fundo e de primeiro plano e carrega 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.26 e, pelo menos, um dos gnome-icon-theme-3.12.0, oxygen-icons5-5.103.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-102.8.0

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Thunderbird

Exigidas

Autoconf-2.13, Cbindgen-0.24.3, dbus-glib-0.112, GTK+-3.24.36, LLVM-15.0.7 incluindo clang, nodejs-18.14.1, PulseAudio-16.1 (ou alsa-lib-1.2.8 se você editar o mozconfig; embora esteja agora obsoletado pelo mozilla), Python-3.11.2 (reconstruído com o módulo sqlite), startup-notification-0.12, Zip-3.0 e UnZip-6.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

Wget-1.21.3, Wireless Tools-29 e watchman

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/Thunderbird

Instalação do Thunderbird

Nota

O processo de construção do Thunderbird pode usar mais de oito (08) GB 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 mozilla/configure --help. Crie o arquivo com o seguinte comando:

cat > mozconfig << "EOF"
# Se você tiver uma máquina com múltiplos elementos de processamento, todos os elementos de processamento serão usados.

# Se você tiver instalado o "wireless-tools", comente esta linha:
ac_add_options --disable-necko-wifi

# Descomente a seguinte opção se você não tiver instalado o "PulseAudio".
#ac_add_options --enable-audio-backends=alsa

# Comente as seguintes opções se você não tiver instalado
# as dependências recomendadas:
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-icu

# O "elf-hack" causa instalações falhas em algumas máquinas.
# Supõe-se que melhore o tempo de inicialização e reduza a libxul.so
# em alguns MB - comente isto se você sabe que a tua máquina não é afetada.
ac_add_options --disable-elf-hack

# Os(As) editores(as) do BLFS recomendam não mudar nada abaixo desta linha:
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

ac_add_options --enable-optimize=-O2
ac_add_options --enable-linker=gold
ac_add_options --enable-strip
ac_add_options --enable-install-strip

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

# O uso de bibliotecas wasm em sandbox foi movido para todas as construções,
# em vez de somente construções de automação do Mozilla. Exige pacotes llvm extras
# e foi informado que retarda seriamente a construção. Desative-o.
ac_add_options --without-wasm-sandboxed-libraries
EOF

Uma mudança em cbindgen-0.24.2 faz com que um símbolo seja agora gerado pelo cbindgen, mas ele já foi definido em um cabeçalho. Este sed evita que a construção eventualmente falhe:

sed -i '/ROOT_CLIP_CHAIN/d' gfx/webrender_bindings/webrender_ffi.h

Agora invoque o conjunto de comandos sequenciais Python mach para compilar o Thunderbird:

Nota

Se você estiver compilando esse pacote em chroot, você precisa fazer duas coisas. Primeiro, como o(a) usuário(a) root, certifique-se de que /dev/shm esteja montado. Se você não fizer isso, a configuração do Python falhará com um informe de rastreamento referenciando /usr/lib/pythonN.N/multiprocessing/synchronize.py. Execute:

mountpoint -q /dev/shm || mount -t tmpfs devshm /dev/shm

Segundo, como o(a) usuário(a) root exporte a variável de ambiente $SHELL usando export SHELL=/bin/sh ou, então, preceda SHELL=/bin/sh ao executar os comandos ./mach.

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=./mozbuild               &&
./mach configure                                    &&
./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 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 configure: Isso valida as dependências fornecidas e o mozconfig.

./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 Preferências 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.

O item de preferência de configuração que você precisa verificar, de forma que o Thunderbird use um navegador especificado, é o network.protocol-handler.app.http, que deveria ser configurado como o caminho do navegador desejado, por exemplo, /usr/bin/firefox.

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.13.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 adequadamente usando uma plataforma LFS 11.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.25.2, FLTK-1.3.8, GnuTLS-3.8.0, libgcrypt-1.10.1, libjpeg-turbo-2.1.5.1, Pixman-0.42.2, Systemd-252 (com Linux-PAM-1.5.2), Aplicativos do Xorg, xinit-1.4.2 e Fontes Legadas do "Xorg"

Recomendadas

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/tigervnc

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.13.0-configuration_fixes-1.patch

Instale o tigervnc executando os seguintes comandos:

# Coloque o código no lugar
mkdir -p unix/xserver &&
tar -xf ../xorg-server-21.1.6.tar.xz \
    --strip-components=1              \
    -C unix/xserver                   &&
( cd unix/xserver &&
  patch -Np1 -i ../xserver21.1.1.patch ) &&

# Construa o visualizador
cmake -G "Unix Makefiles"         \
      -DCMAKE_INSTALL_PREFIX=/usr \
      -DCMAKE_BUILD_TYPE=Release  \
      -Wno-dev . &&
make &&

# Construa o servidor
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:

# Instale o visualizador
make install &&

# Instale o servidor
( cd unix/xserver/hw/vnc && make install ) &&

[ -e /usr/bin/Xvnc ] || ln -svf $XORG_PREFIX/bin/Xvnc /usr/bin/Xvnc

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

Configuração do Servidor

Nos sistemas systemd, outro método de configuração está disponível. Esta configuração oferece o benefício adicional de tornar o tigervnc systemd ciente das sessões do VNC e permite que ambientes de área de trabalho, como GNOME, iniciem serviços automaticamente assim que a sessão do VNC for iniciada. Esta configuração também oferece o benefício adicional de iniciar Sessões do VNC na inicialização do sistema. Para configurar o servidor VNC dessa forma, siga estas instruções.

Primeiro, instale um arquivo Xsession rudimentar, de forma que o servidor VNC consiga inicializar adequadamente as sessões do X:

install -vdm755 /etc/X11/tigervnc &&
install -v -m755 ../Xsession /etc/X11/tigervnc

Em seguida, configure um mapeamento de usuário(a) em /etc/tigervnc/vncserver.users. Isso informa ao Servidor VNC qual sessão está alocada para um(a) usuário(a).

echo ":1=$(whoami)" >> /etc/tigervnc/vncserver.users

Em seguida, configure um arquivo de configuração para informar ao vncserver qual ambiente de área de trabalho deveria ser usado e qual geometria de tela deveria ser usada. Existem diversas outras opções que podem ser definidas neste arquivo, mas elas estão fora do escopo do BLFS.

install -vdm 755 ~/.vnc &&
cat > ~/.vnc/config << EOF
# Inicia ~/.vnc/config
# A sessão precisa corresponder a uma listada em /usr/share/xsessions.
# Garanta que não existam espaços ao final das linhas.

session=LXDE
geometry=1024x768

# Termina ~/.vnc/config
EOF

Para iniciar o Servidor VNC, execute o seguinte comando:

systemctl start vncserver@:1

Para iniciar o Servidor VNC quando o sistema inicializar, execute o seguinte comando:

systemctl enable vncserver@:1

Conteúdo

Aplicativos Instalados: Xvnc, vncconfig, vncpasswd, vncserver, vncviewer e x0vncserver
Bibliotecas Instaladas: libvnc.so
Diretórios Instalados: /usr/share/doc/tigervnc-1.13.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.1

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Transmission

Exigidas

cURL-7.88.1

Recomendadas
Recomendadas (para construir uma GUI)
Opcionais

nodejs-18.14.1 (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 Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/transmission

Instalação do Transmission

Instale o Transmission executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -DCMAKE_INSTALL_PREFIX=/usr \
      -DCMAKE_BUILD_TYPE=Release  \
      -DCMAKE_INSTALL_DOCDIR=/usr/share/doc/transmission-4.0.1 \
      .. &&

make

Agora, como o(a) usuário(a) root:

make install

Como o transmission.png parece estar ausente, crie-o a partir do svg::

rsvg-convert                                               \
   /usr/share/icons/hicolor/scalable/apps/transmission.svg \
   -o /usr/share/pixmaps/transmission.png

Explicações do Comando

-DENABLE_QT=OFF: Essa chave desabilita a construção do cliente Qt5. O padrão é o de construí-lo se o Qt-5.15.8 estiver instalado.

-DENABLE_GTK=OFF: Essa chave desabilita a construção do cliente GTK+-3 de CLI. O padrão é o de construí-lo se o Gtkmm-3.24.7 estiver instalado.

-DENABLE_WEB=OFF: Essa chave desabilita a construção do cliente web. O padrão é o de construí-lo se o nodejs-18.14.1 estiver instalado.

Conteúdo

Aplicativos Instalados: transmission-cli, transmission-create, transmission-daemon, transmission-edit, transmission-gtk ou transmission-qt, transmission-remote e transmission-show
Bibliotecas Instaladas: Nenhum(a)
Diretório Instalado: /usr/share/transmission (contém o cliente web, opcional) e /usr/share/doc/transmission-4.0.1

Descrições Curtas

transmission-cli

é um cliente BitTorrent leve de linha de comando com recursos de conjunto de comandos sequenciais

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

é um utilitário de linha de comando para modificar URLs de anúncio de arquivos .torrent

transmission-gtk

é um cliente bittorrent GTK+

transmission-qt

é um cliente bittorrent 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.20

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 adequadamente usando uma plataforma LFS 11.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+-2.24.33 ou GTK+-3.24.36

Opcionais (tempo de execução)

cpio-2.13, LZO-2.10, p7zip-17.04, UnRar-6.2.6, UnZip-6.0 e Zip-3.0

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/xarchiver

Instalação do xarchiver

Instale o xarchiver executando os seguintes comandos:

./configure  --prefix=/usr               \
             --libexecdir=/usr/lib/xfce4 \
             --docdir=/usr/share/doc/xarchiver-0.5.4.20 &&
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+-2.24.33 ou GTK+-3.24.36 instalado (para o cache de ícones) e o desktop-file-utils-0.26 (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.18.4 estiver instalado.

--disable-gtk3: Essa chave permite construir contra o GTK+2 ou usar --disable-gtk2 para forçar a construção contra GTK+3 quando GTK+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.20 e /usr/share/pixmaps/xarchiver

Descrições Curtas

xarchiver

é um gerenciador GTK+ de arquivamentos

xdg-utils-1.1.3

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).

Atenção

Uma vulnerabilidade de segurança existe em todas as versões do xdg-utils a partir da versão 1.1.0rc1 ao lidar com mailto: URIs. Um(a) invasor(a) poderia potencialmente enviar para a vítima um URI que anexasse automaticamente um arquivo confidencial a uma nova mensagem eletrônica. Se um(a) usuário(a) vítima não perceber que um anexo foi adicionado e enviar a mensagem eletrônica, isso poderia resultar na divulgação de informações confidenciais.

Para mitigar essa falha, ou não use links mailto de jeito nenhum ou sempre verifique duas vezes na interface de usuário(a) se não existem anexos indesejados antes de enviar mensagens eletrônicas, especialmente quando a mensagem eletrônica se originar a partir de um clique em um link mailto.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://portland.freedesktop.org/download/xdg-utils-1.1.3.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 902042508b626027a3709d105f0b63ff

  • Tamanho da transferência: 296 KB

  • Espaço em disco estimado exigido: 3,2 MB (com os testes)

  • Tempo de construção estimado: 0,3 UPC (com os testes)

Dependências do xdg-utils

Exigidas

xmlto-0.0.28 com um de Lynx-2.8.9rel.1, Links-2.28 ou W3m

Exigidas (tempo de execução)

Aplicativos do Xorg

Opcionais (tempo de execução)

dbus-1.14.6

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/xdg-utils

Instalação do xdg-utils

Compile o xdg-utils com os seguintes comandos:

./configure --prefix=/usr --mandir=/usr/share/man &&
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.06

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://www.jwz.org/xscreensaver/xscreensaver-6.06.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 7e9437089cc8162a3cf9ff335633faed

  • Tamanho da transferência: 25 MB

  • Espaço em disco estimado exigido: 255 MB

  • Tempo de construção estimado: 0,3 UPC (Usando paralelismo=4)

Dependências do XScreenSaver

Exigidas

GTK+-3.24.36, libglade-2.6.4 e Aplicativos do Xorg

Recomendadas
Opcionais

GDM-43.0, Linux-PAM-1.5.2, MIT Kerberos V5-1.20.1 e GLE

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/xscreensaver

Instalação do XScreenSaver

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 de PAM do Linux

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-1.2.7

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, o firmware e as bibliotecas de compatibilidade OSS.

alsa-lib-1.2.8

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do ALSA Library

Opcionais

Doxygen-1.9.6, Python-2.7.18 e alsa-ucm-conf

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/alsa-lib

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 --->                  [CONFIG_SOUND]
    <*/M> Advanced Linux Sound Architecture ---> [CONFIG_SND]
            Select settings and drivers appropriate for your hardware.

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:

make install

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.8/html/search &&
install -v -m644 doc/doxygen/html/*.* \
                /usr/share/doc/alsa-lib-1.2.8/html &&
install -v -m644 doc/doxygen/html/search/* \
                /usr/share/doc/alsa-lib-1.2.8/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.8

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.7.1

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do ALSA Plugins

Exigidas

alsa-lib-1.2.8

Opcionais

FFmpeg-5.1.2, libsamplerate-0.2.2, PulseAudio-16.1, Speex-1.2.1, JACK, libavtp e maemo

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/alsa-plugins

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.8

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do ALSA Utilities

Exigidas

alsa-lib-1.2.8

Opcionais

docutils-0.19, fftw-3.3.10, libsamplerate-0.2.2, xmlto-0.0.28 e Dialog

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/alsa-utils

Instalação do ALSA Utilities

Instale o ALSA Utilities executando os seguintes comandos:

./configure --disable-alsaconf \
            --disable-bat   \
            --disable-xmlto \
            --with-curses=ncursesw &&
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-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.28 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

Observe que todos os canais da tua placa de som estão silenciados por padrão. Você pode 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).

Todos os dispositivos de som não são acessíveis para nenhum(a) usuário(a), exceto root e membros(as) do grupo audio. Adicione quaisquer usuários(as) que possam usar os dispositivos de som a esse grupo:

usermod -a -G audio <nome_usuário(a)>

Nota

Você possivelmente necessite sair e entrar novamente para atualizar tuas associações ao grupo. 'su <nome_usuário(a)>' também deveria funcionar.

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

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.5

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do ALSA Tools

Exigidas

alsa-lib-1.2.8

Opcionais

GTK+-2.24.33 (para construir echomixer, envy24control e rmedigicontrol), GTK+-3.24.36 (para construir hdajackretask) e FLTK-1.3.8 (para construir hdspconf e hdspmixer)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/alsa-tools

Instalação do ALSA Tools

Nota

Ao instalar-se múltiplos pacotes em um "script", a instalação precisa ser feita como o(a) usuário(a) "root". Existem três opções gerais que podem ser usadas para fazer isso:

  1. Executar o "script" inteiro como o(a) usuário(a) "root" (não recomendado).

  2. Usar o comando "sudo" oriundo do pacote Sudo-1.9.13p1.

  3. Usar su -c "argumentos do comando" (aspas exigidas) o qual solicitará a senha do(a) "root" para cada interação do "loop".

Uma maneira de se lidar com essa situação é a de criar uma função curta do "bash" que seleciona automaticamente o método apropriado. Tão logo o comando seja configurado no ambiente, ele não precisa ser novamente configurado.

as_root()
{
  if   [ $EUID = 0 ];        then $*
  elif [ -x /usr/bin/sudo ]; then sudo $*
  else                            su -c \\"$*\\"
  fi
}

export -f as_root

Primeiro, inicie um subshell que terminará em caso de erro:

bash -e

Agora, remova uma ferramenta que precisa de Qt2 ou 3 e dois arquivos desnecessários (para as instruções do BLFS abaixo):

rm -rf qlo10k1 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, echomixer, envy24control, hda-verb, hdajackretask, hdajacksensetest, hdspconf, hdsploader, hdspmixer, hwmixvolume, init_audigy, init_audigy_eq10, init_live, lo10k1, ld10k1, ld10k1d, mixartloader, pcxhrloader, rmedigicontrol, 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

echomixer

é o equivalente Linux do aplicativo de console Echoaudio proveniente da Echoaudio. Ele é uma ferramenta para controlar todos os recursos de qualquer placa de som Echoaudio. Isso inclui fontes de relógio, ganhos de entrada e saída, misturadores, etc

envy24control

é uma ferramenta de controle para placas de som baseadas em Envy24 (ice1712)

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, por que não, faça as duas saídas de linha e conecte-as ao teu receptor de envolver

hda-verb

é um pequeno aplicativo 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 aplicativo auxiliar para carregar os binários de firmware nos controladores de som da placa miXart do Digigram. Os seguintes módulos exigem esse aplicativo: snd-mixart. Esses controladores não funcionam corretamente até que determinados firmwares sejam carregados, ou seja, nenhum PCM ou dispositivo de mixagem aparecerá

pcxhrloader

é um aplicativo auxiliar para carregar os binários de firmware nos controladores de som da placa compatíveis com pcxhr da Digigram. Os seguintes módulos exigem esse aplicativo: snd-pcxhr. Esses controladores não funcionam corretamente até que certos firmwares sejam carregados, ou seja, nenhum PCM ou dispositivo de mixagem aparecerá

rmedigicontrol

é uma ferramenta de controle para placas de som RME Digi32 e RME Digi96. Ela fornece uma interface gráfica para todos os controles e interruptores da placa de som

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 aplicativo auxiliar para carregar os binários de firmware nos controladores de som da placa VX do Digigram. Os seguintes módulos exigem esse aplicativo: snd-vx222, snd-vxpocket, snd-vxp440. Esses controladores não funcionam corretamente até que determinados firmwares sejam carregados, ou seja, nenhum PCM ou dispositivo de mixagem aparecerá

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do ALSA Firmware

Exigidas

alsa-tools-1.2.5

Opcionais

AS31 (para reconstruir o firmware a partir do fonte)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/alsa-firmware

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

alsa-oss-1.1.8

Introdução ao alsa-oss

O pacote alsa-oss contém a biblioteca de compatibilidade alsa-oss. Isso é usado por aplicativos que desejem usar a interface de som alsa-oss.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do ALSA OSS

Exigidas

alsa-lib-1.2.8

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/alsa-oss

Instalação do ALSA OSS

Instale o ALSA OSS executando os seguintes comandos:

./configure --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: aoss
Bibliotecas Instaladas: libalsatoss.so, libaoss.so e libossredir.a
Diretórios Instalados: Nenhum(a)

Descrições Curtas

aoss

é um conjunto de comandos sequenciais envolucrador simples que facilita o uso da biblioteca de compatibilidade oss do ALSA. Ele apenas configura o caminho LD_PRELOAD apropriado e então executa o comando

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Transferências Adicionais

Dependências do AudioFile

Exigidas

alsa-lib-1.2.8

Recomendadas
Opcionais

asciidoc-10.2.0 e Valgrind-3.20.0

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/audiofile

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_30

Introdução ao FAAC

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 no 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://github.com/knik0/faac/archive/1_30/faac-1_30.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 8d61e6d55088e599aa91532d5e6995b0

  • Tamanho da transferência: 240 KB

  • Espaço em disco estimado exigido: 4,7 MB

  • Tempo de construção estimado: menos que 0,1 UPC

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/faac

Instalação do FAAC

Instale o 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.8:

./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.10.1 e reproduza o arquivo decodificado (exige o aplicativo aplay originário do pacote alsa-utils-1.2.8:

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 em taxas de bits baixas por meio do uso da tecnologia de replicação de banda espectral. Existem os seguintes aplicativos alternativos para produzir fluxos AAC e HE-AAC:

  • Nero AAC Codec: disponíveis somente no formato binário, os codificadores de linha de comando AAC e HE-AAC para Linux estão no mesmo arquivamento que o aplicativo do Windows.

  • 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 possivelmente não seja o padrão no Nero AAC Encoder e 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.10.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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Transferências Adicionais

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/faad2

Instalação do FAAD2

Instale o FAAD2 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 decodificando-se o arquivo AAC de amostra:

./frontend/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.8):

aplay sample.wav

O 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

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

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.2

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/fdk-aac

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.4.2

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://downloads.xiph.org/releases/flac/flac-1.4.2.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: ca9140f37b286d2571e37d66aae50f92

  • Tamanho da transferência: 1,0 MB

  • Espaço em disco estimado exigido: 21 MB (adicionais 165 MB para executar a suíte de teste)

  • Tempo de construção estimado: 0,2 UPC (adicionais 0,6 UPC para executar a suíte de teste)

Dependências do FLAC

Opcionais

libogg-1.3.5, DocBook-utils-0.6.14, Doxygen-1.9.6 e Valgrind-3.20.0

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/flac

Instalação do FLAC

Instale o FLAC executando os seguintes comandos:

./configure --prefix=/usr                                \
            --disable-thorough-tests                     \
            --docdir=/usr/share/doc/flac-1.4.2          &&
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.4.2

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Frei0r-plugins

Recomendadas

gavl-1.4.0

Opcionais

Doxygen-1.9.6 e opencv-4.7.0

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/frei0r

Instalação do Frei0r-plugins

Instale o Frei0r executando os seguintes comandos:

mkdir -vp build &&
cd        build &&

cmake -DCMAKE_INSTALL_PREFIX=/usr \
      -DCMAKE_BUILD_TYPE=Release  \
      -Wno-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

-DWITHOUT_OPENCV=TRUE: Essa opção instrui o procedimento make a desabilitar a construção de plugins dependentes do opencv.

-DWITHOUT_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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Gavl

Exigidas

libpng-1.6.39

Opcionais

Doxygen-1.9.6

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/gavl

Instalação do Gavl

Instale o Gavl executando os seguintes comandos:

LIBS=-lm                      \
./configure --prefix=/usr     \
            --without-doxygen \
            --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.

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.22.0

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.22.0 e um dos plugins Good, Bad, Ugly ou Libav.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://gstreamer.freedesktop.org/src/gstreamer/gstreamer-1.22.0.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: fb69587308e03e15c1b9a026a7b591d6

  • Tamanho da transferência: 1,7 MB

  • Espaço em disco estimado exigido: 46 MB (com os testes)

  • Tempo de construção estimado: 0,3 UPC (Usando paralelismo=4; com testes)

Dependências do gstreamer

Exigidas

GLib-2.74.5

Recomendadas
Opcionais

GTK+-3.24.36 (para exemplos), Gsl-2.7.1 (usado por um teste, se instalado), libunwind-1.6.2, Valgrind-3.20.0, bash-completion, hotdoc e libdw

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/gstreamer10

Instalação do gstreamer

Instale o gstreamer executando os seguintes comandos:

mkdir build &&
cd    build &&

meson  --prefix=/usr       \
       --buildtype=release \
       -Dgst_debug=false   \
       -Dpackage-origin=https://www.linuxfromscratch.org/blfs/view/11.3-systemd/ \
       -Dpackage-name="GStreamer 1.22.0 BLFS" &&
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.22.0

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do GStreamer Base Plug-ins

Exigidas

gstreamer-1.22.0

Recomendadas
Opcionais

graphene-1.10.8, GTK+-3.24.36 (para exemplos), Opus-1.3.1, Qt-5.15.8 (para exemplos), SDL-1.2.15, SDL2-2.26.3, Valgrind-3.20.0, hotdoc, libvisual, Orc e Tremor

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/gst10-plugins-base

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  --prefix=/usr       \
       --buildtype=release \
       -Dpackage-origin=https://www.linuxfromscratch.org/blfs/view/11.3-systemd/ \
       -Dpackage-name="GStreamer 1.22.0 BLFS"    \
       --wrap-mode=nodownload &&
ninja

Para testar os resultados, emita: ninja test. Os testes exigem um terminal do X em execução ou todos os testes GL falharão. Cinco testes possivelmente produzam pausas em alguns sistemas, dependendo do hardware gráfico e da velocidade desses.

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.22.0

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do GStreamer Good Plug-ins

Exigidas

gst-plugins-base-1.22.0

Recomendadas
Opcionais

AAlib-1.4rc5, OSS-1.1.8 do ALSA, GTK+-3.24.36 (para exemplos), libdv-1.0.0, Qt-5.15.8, Speex-1.2.1, taglib-1.13, Valgrind-3.20.0, v4l-utils-1.22.1, Wayland-1.21.0, hotdoc, JACK, libcaca, libavc1394, libiec61883, libraw1394, libshout, Orc, TwoLame e WavPack

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/gst10-plugins-good

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  --prefix=/usr       \
       --buildtype=release \
       -Dpackage-origin=https://www.linuxfromscratch.org/blfs/view/11.3-systemd/ \
       -Dpackage-name="GStreamer 1.22.0 BLFS" &&
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.22.0

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do GStreamer Bad Plug-ins

Exigidas

gst-plugins-base-1.22.0

Recomendadas
Opcionais

BlueZ-5.66, cURL-7.88.1, FAAC-1_30, FAAD2-2.10.1, fdk-aac-2.0.2, GTK+-3.24.36 (para exemplos), gst-plugins-good-1.22.0 (para um teste), Little CMS-2.14, libass-0.17.0, libexif-0.6.24 (para um teste), librsvg-2.54.5, libsoup-2.74.3 (para um teste), libsndfile-1.2.0, libssh2-1.10.0, libusb-1.0.26, libva-2.17.0, libwebp-1.3.0, libxkbcommon-1.5.0, neon-0.32.5, Nettle-3.8.1 ou libgcrypt-1.10.1 (para suporte SSL no plugin hls; se ambos não estiverem instalados, o OpenSSL será usado), opencv-4.7.0 (com módulos adicionais), OpenJPEG-2.5.0, Opus-1.3.1, SBC-2.0, SDL-1.2.15, Valgrind-3.20.0, Wayland-1.21.0 (GTK+-3.24.36 precisa ter sido compilado com suporte a wayland), wpebackend-fdo-1.14.0, x265-20230215, aom, bs2b, Chromaprint, dssim, Flite, FluidSynth, Game Music Emu, GSM, hotdoc, LADSPA, libavtp, libdc1394-2, libdca, libde265, libkate, libmfx, libmms, libmodplug, libnice, libofa, libopenmpt, libopenni, libsrtp, lilv, LRDF, ltc-tools, microdns, Ferramentas MJPEG, OpenAL, OpenEXR, OpenH264, Orc, rtmpdump, spandsp, Srt, svthevcenc, VO AAC, VO AMRWB, Vulkan, WildMidi, WPE-WebKit, ZBAR, ZVBI e zxing

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/gst10-plugins-bad

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  --prefix=/usr       \
       --buildtype=release \
       -Dgpl=enabled       \
       -Dpackage-origin=https://www.linuxfromscratch.org/blfs/view/11.3-systemd/ \
       -Dpackage-name="GStreamer 1.22.0 BLFS" &&
ninja

Para testar os resultados, emita: ninja test. Vários testes necessitam de um emulador de terminal em uma sessão gráfica. Dois testes, elements_vapostproc e elements_vacompositor são conhecidos por falharem. Se o gst-plugins-good-1.22.0 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.

-Dgpl=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, libgstbadaudio-1.0.so, libgstbasecamerabinsrc-1.0.so, libgstcodecparsers-1.0.so, libgstcodecs-1.0.so, libgstinsertbin-1.0.so, libgstisoff-1.0.so, libgstmpegts-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,codecparsers}, /usr/include/gstreamer-1.0/gst/{insertbin,interfaces,isoff,mpegts}, /usr/include/gstreamer-1.0/gst/{play,player,sctp,transcoder} e /usr/include/gstreamer-1.0/gst/{uridownloader,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.22.0

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do GStreamer Ugly Plug-ins

Exigidas

gst-plugins-base-1.22.0

Recomendadas
Opcionais

libmpeg2-0.5.1, libcdio-2.1.0 (para acesso à unidade de CD-ROM), Valgrind-3.20.0, hotdoc, libsidplay, OpenCore AMR, Orc e TwoLame

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/gst10-plugins-ugly

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  --prefix=/usr       \
       --buildtype=release \
       -Dgpl=enabled       \
       -Dpackage-origin=https://www.linuxfromscratch.org/blfs/view/11.3-systemd/ \
       -Dpackage-name="GStreamer 1.22.0 BLFS" &&
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.

-Dgpl=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.22.0

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do GStreamer Libav

Exigidas

FFmpeg-5.1.2 e gst-plugins-base-1.22.0

Recomendadas
Opcionais

hotdoc

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/gst10-libav

Instalação do GStreamer Libav

Instale o GStreamer Libav executando os seguintes comandos:

mkdir build &&
cd    build &&

meson  --prefix=/usr       \
       --buildtype=release \
       -Dpackage-origin=https://www.linuxfromscratch.org/blfs/view/11.3-systemd/ \
       -Dpackage-name="GStreamer 1.22.0 BLFS" &&
ninja

Os testes não são recomendados. O teste 6 de 6 pausa depois de 3 minutos. Para executar os testes de qualquer maneira, 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 no diretório /usr/lib/gstreamer-1.0
Diretório Instalado: Nenhum(a)

gstreamer-vaapi-1.22.0

Introdução ao gstreamer-vaapi

O pacote gstreamer-vaapi contém um plugin gstreamer para decodificação/codificação de vídeo acelerada por hardware para os padrões de codificação predominantes atualmente (MPEG-2, MPEG-4 ASP/H.263, MPEG-4 AVC/H.264 e VC-1/VMW3).

Nota

Em sistemas sem aceleração por hardware (principalmente máquinas virtuais sob o qemu-7.2.0), esse pacote possivelmente cause falha no servidor X. A equipe do BLFS recomenda não instalar esse pacote nesse caso.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do gstreamer-vaapi

Exigidas

GTK+-3.24.36, gstreamer-1.22.0, gst-plugins-base-1.22.0, gst-plugins-bad-1.22.0 e libva-2.17.0

Opcionais

hotdoc

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/gstreamer10-vaapi

Instalação do gstreamer-vaapi

Instale o gstreamer-vaapi executando os seguintes comandos:

mkdir build &&
cd    build &&

meson  --prefix=/usr       \
       --buildtype=release \
       -Dpackage-origin=https://www.linuxfromscratch.org/blfs/view/11.3-systemd/ &&
ninja

Esse pacote não vem com uma suíte de teste funcional do vi.

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: libgstvaapi.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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Transferências Adicionais

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/id3lib

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)

Liba52-0.7.4

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://liba52.sourceforge.net/files/a52dec-0.7.4.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: caa9f5bc44232dc8aeea773fea56be80

  • Tamanho da transferência: 236 KB

  • Espaço em disco estimado exigido: 2,5 MB

  • Tempo de construção estimado: menos que 0,1 UPC

Opcionais

djbfft

Observações de Usuário(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 -O2} $([ $(uname -m) = x86_64 ] && echo -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.7.4/liba52.txt

Explicações do Comando

CFLAGS="-g -O2 ...: Isso configura CFLAGS como -g -O2 (que é o padrão), mas, então, em x86_64 adiciona -fPIC. Isso é necessário para compilar a liba52 em x86_64.

--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.7.4

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 adequadamente usando uma plataforma LFS 11.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-1.2.7 e PulseAudio-16.1

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libao

Instalação do Libao

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

libass-0.17.0

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do libass

Exigidas

FreeType-2.13.0, FriBidi-1.0.12 e NASM-2.16.01

Recomendadas
Opcionais

HarfBuzz-7.0.0 e libunibreak

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libass

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Transferências Adicionais

Dependências do libcanberra

Exigidas

libvorbis-1.3.7

Recomendadas
Opcionais

GTK+-2.24.33, PulseAudio-16.1 e tdb

Tema de Som Recomendado (tempo de execução)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libcanberra

Instalação do libcanberra

Primeiramente, aplique um remendo para corrigir um problema que causa o travamento de alguns aplicativos no ambiente de área de trabalho baseado 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-gtk: desabilita o suporte opcional ao GTK+ 2

--disable-gtk3: desabilita o suporte opcional ao GTK+ 3

Conteúdo

Aplicativos Instalados: canberra-boot e canberra-gtk-play
Bibliotecas Instaladas: libcanberra-gtk.so, 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-gtk.so

contém as ligações libcanberra para GTK+ 2

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 adequadamente usando uma plataforma LFS 11.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 os testes)

  • Tempo de construção estimado: 0,2 UPC (com os testes)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libcddb

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

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Transferências Adicionais

Dependências do libcdio

Opcionais

libcddb-1.3.2

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libcdio

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.1.tar.bz2 &&
cd libcdio-paranoia-10.2+2.0.1 &&

./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

libdiscid-0.6.2

Introdução ao libdiscid

O pacote libdiscid contém uma biblioteca para criar IDs de Disco do MusicBrainz a partir de CDs de áudio. Ela lê o índice de conteúdo (TOC) de um CD e gera um identificador que pode ser usado para pesquisar o CD no MusicBrainz (https://musicbrainz.org). Além disso, fornece um URL de envio para adicionar o ID do Disco à base de dados.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Opcionais

Doxygen-1.9.6

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libdiscid

Instalação do libdiscid

Instale o libdiscid 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: libdiscid.so
Diretório Instalado: /usr/include/discid

Descrições Curtas

libdiscid.so

contém as funções da API do ID do Disco

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do libdvdcss

Opcionais (para criar documentação)

Doxygen-1.9.6

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libdvdcss

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libdvdread

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, como menus de DVD, reprodução multiângulo e até jogos interativos de DVD.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Libdvdnav

Exigidas

libdvdread-6.1.3

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libdvdnav

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 adequadamente usando uma plataforma LFS 11.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, SDL-1.2.15 e um ambiente gráfico

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libdv

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

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Transferências Adicionais

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libmad

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do libmpeg2

Opcionais

um ambiente gráfico e SDL-1.2.15

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libmpeg2

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-2.1.5

Introdução ao libmusicbrainz

O pacote libmusicbrainz contém uma biblioteca que te permite acessar os dados mantidos no servidor MusicBrainz. Isso é útil para adicionar recursos de pesquisa do MusicBrainz a outros aplicativos.

MusicBrainz é uma meta base de dados comunitário de música que tenta criar um sítio abrangente de informações musicais. Você pode usar os dados do MusicBrainz navegando no sítio da web ou pode acessar os dados a partir de um aplicativo cliente — por exemplo, um aplicativo reprodutor de CD pode usar o MusicBrainz para identificar CDs e fornecer informações a respeito do CD, acerca do(a) artista ou outras informações relacionadas.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Transferências Adicionais

Dependências do libmusicbrainz

Opcionais para Construir as Ligações Python

Python-2.7.18

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libmusicbrainz

Instalação do libmusicbrainz

Instale o libmusicbrainz executando os seguintes comandos:

patch -Np1 -i ../libmusicbrainz-2.1.5-missing-includes-1.patch &&

CXXFLAGS="${CXXFLAGS:--O2 -g} -std=c++98" \
./configure --prefix=/usr --disable-static &&
make

Se o Python estiver instalado, construa as ligações com os seguintes comandos:

(cd python && python2 setup.py build)

Esse pacote não vem com uma suíte de teste independente (para testar você precisa ter o Python instalado e realizar o teste depois que o pacote estiver instalado).

Agora, como o(a) usuário(a) root:

make install &&
install -v -m644 -D docs/mb_howto.txt \
    /usr/share/doc/libmusicbrainz-2.1.5/mb_howto.txt

Para testar as ligações do Python, emita o seguinte: (cd python && python2 setup.py test).

Se você construiu as ligações Python, emita os seguintes comandos como o(a) usuário(a) root para instalá-las:

(cd python && python2 setup.py 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: libmusicbrainz.so
Diretórios Instalados: /usr/include/musicbrainz e /usr/share/doc/libmusicbrainz-2.1.5

Descrições Curtas

libmusicbrainz.so

contém funções de API para acessar a base de dados MusicBrainz, tanto para consultar dados quanto para submeter novos dados

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Transferências Adicionais

Dependências do libmusicbrainz

Exigidas

CMake-3.25.2, libxml2-2.10.3 e neon-0.32.5

Opcionais

Doxygen-1.9.6

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libmusicbrainz5

Instalação do libmusicbrainz

Primeiro, corrija um problema causado pelo CMake-3.18.0:

patch -Np1 -i ../libmusicbrainz-5.1.0-cmake_fixes-1.patch

Instale o libmusicbrainz executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release .. &&
make

Se você tiver instalado o Doxygen-1.9.6, 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 adequadamente usando uma plataforma LFS 11.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 os testes)

  • Tempo de construção estimado: menos que 0,1 UPC (com testes)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libogg

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

libquicktime-1.2.4

Introdução ao libquicktime

O pacote libquicktime contém a biblioteca libquicktime, vários plugins e codificadores, juntamente com utilitários gráficos e de linha de comando usados para codificar e decodificar arquivos QuickTime. Isso é útil para ler e escrever arquivos no formato QuickTime. O objetivo do projeto é o de aprimorar e ao mesmo tempo fornecer compatibilidade com a biblioteca Quicktime 4 Linux.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://downloads.sourceforge.net/libquicktime/libquicktime-1.2.4.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 81cfcebad9b7ee7e7cfbefc861d6d61b

  • Tamanho da transferência: 1,0 MB

  • Espaço em disco estimado exigido: 20 MB

  • Tempo de construção estimado: 0,7 UPC (inclui construir todos os módulos de codificadores)

Dependências do libquicktime

Opcionais

alsa-lib-1.2.8, Doxygen-1.9.6, FAAC-1_30, FAAD2-2.10.1, GTK+-2.24.33, LAME-3.100, libdv-1.0.0, libjpeg-turbo-2.1.5.1, libpng-1.6.39, libvorbis-1.3.7, x264-20230215, Bibliotecas do Xorg e Schroedinger

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libquicktime

Instalação do libquicktime

Instale o libquicktime executando os seguintes comandos:

./configure --prefix=/usr     \
            --enable-gpl      \
            --without-doxygen \
            --without-ffmpeg  \
            --docdir=/usr/share/doc/libquicktime-1.2.4
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/libquicktime-1.2.4 &&
install -v -m644    README doc/{*.txt,*.html,mainpage.incl} \
                    /usr/share/doc/libquicktime-1.2.4

Explicações do Comando

--enable-gpl: Muda a licença para GPL. Isso habilita alguns plugins extras, como FAAC, FAAD2 e x264.

--without-doxygen: Isso é necessário se você não tiver o Doxygen; omita isso se estiver ele estiver instalado e você desejar que a documentação da API seja instalada.

--without-ffmpeg: Essa chave desabilita o suporte ao FFmpeg porque é incompatível com o FFmpeg-5.

--with-libdv: Construa com suporte a libdv. Não habilitado por padrão.

Conteúdo

Aplicativos Instalados: libquicktime_config, lqtplay, lqtremux, lqt_transcode, qt2text, qtdechunk, qtdump, qtinfo, qtrechunk, qtstreamize e qtyuv4toyuv
Bibliotecas Instaladas: libquicktime.so e várias bibliotecas de plugin de codificadores
Diretórios Instalados: /usr/include/lqt, /usr/lib/libquicktime e /usr/share/doc/libquicktime-1.2.4

Descrições Curtas

libquicktime_config

é uma estrutura gráfica de interação direta com o(a) usuário(a) para examinar e configurar os codificadores disponíveis de áudio e vídeo da libquicktime

lqtplay

é um reprodutor simples de filmes QuickTime para o Sistema de Janelas X

lqt_transcode

é um aplicativo de linha de comando usado para codificar arquivos de vídeo e (ou) áudio de um formato para outro

qt2text

é usado para despejar todas as sequências de caracteres de texto a partir de um arquivo quicktime

qtdechunk

pode pegar filmes contendo quadros RGB e escrevê-los como imagens ppm

qtdump

exibe o conteúdo analisado do arquivo fornecido

qtinfo

imprime vários pedaços de metadados analisados pela biblioteca libquicktime para o arquivo fornecido

qtrechunk

concatena quadros de entrada em um filme QuickTime

qtstreamize

é usado para tornar um arquivo transmissível colocando o cabeçalho moov no início do arquivo

qtyuv4toyuv

é usado para escrever um filme codificado em YUV4 como um arquivo YUV 4:2:0 planar

libquicktime.so

é uma biblioteca para leitura e escrita de arquivos QuickTime. Ela fornece acesso conveniente a arquivos QuickTime com uma variedade de codificadores suportados. A biblioteca contém novas funções integradas com todas as funções originais da biblioteca QuickTime 4 Linux usadas para codificar e decodificar arquivos QuickTime

libsamplerate-0.2.2

Introdução ao libsamplerate

libsamplerate é um conversor de taxa de amostragem para áudio.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do libsamplerate

Opcionais

alsa-lib-1.2.8, libsndfile-1.2.0 e fftw-3.3.10 (para testes)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libsamplerate

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.0

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do libsndfile

Recomendadas
Opcionais

alsa-lib-1.2.8, LAME-3.100, mpg123-1.31.2, Speex-1.2.1 e SQLite-3.40.1

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libsndfile

Instalação do libsndfile

Instale o libsndfile executando os seguintes comandos:

./configure --prefix=/usr    \
            --docdir=/usr/share/doc/libsndfile-1.2.0 &&
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.0

Descrições Curtas

sndfile-cmp

compara dois arquivos de áudio

sndfile-concat

concatena dois ou mais arquivos de áudio

sndfile-convert

converte arquivos 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 4G de comprimento

libsndfile.so

contém as funções da API da libsndfile

libtheora-1.1.1

Introdução ao libtheora

libtheora é uma implementação de referência do formato de compressão de vídeo Theora que está sendo desenvolvido pela Fundação Xiph.Org.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://downloads.xiph.org/releases/theora/libtheora-1.1.1.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 9eeabf1ad65b7f41533854a59f7a716d

  • Tamanho da transferência: 1,4 MB

  • Espaço em disco estimado exigido: 13,4 MB (sem bibliotecas estáticas ou documentos de API e sem instalar os exemplos)

  • Tempo de construção estimado: 0,2 UPC

Dependências do libtheora

Exigidas

libogg-1.3.5

Recomendadas
Opcionais

SDL-1.2.15 e libpng-1.6.39 (ambos para construir os reprodutores de exemplo), Doxygen-1.9.6, texlive-20220321 (ou install-tl-unx), BibTex e Transfig (todos os quatro para construir a documentação da API) e Valgrind-3.20.0

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/Libtheora

Instalação do libtheora

Instale o libtheora executando os seguintes comandos:

sed -i 's/png_\(sizeof\)/\1/g' examples/png2theora.c &&
./configure --prefix=/usr --disable-static &&
make

Se você desejar executar os testes, emita: make check.

Agora, como o(a) usuário(a) root:

make install

Se você desejar instalar os exemplos (de forma que consiga hackear o theora), instale-os como o(a) usuário(a) root:

cd examples/.libs &&
for E in *; do
  install -v -m755 $E /usr/bin/theora_${E}
done

Explicações do Comando

sed -i 's/png_\(sizeof\)/\1/g' examples/png2theora.c: Esse sed corrige a construção com a libpng 1.6.

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Conteúdo

Aplicativos Instalados: Nenhum(a), a menos que você tenha instalado os exemplos
Bibliotecas Instaladas: libtheora.so, libtheoraenc.so e libtheoradec.so
Diretórios Instalados: /usr/include/theora e /usr/share/doc/libtheora-1.1.1

Descrições Curtas

libtheora*.so

contém as funções para ler e escrever arquivos de vídeo

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do libvorbis

Exigidas

libogg-1.3.5

Opcionais

Doxygen-1.9.6 e texlive-20220321 (ou install-tl-unx) (especificamente, pdflatex e htlatex) para construir a documentação PDF

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/Libvorbis

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.13.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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://github.com/webmproject/libvpx/archive/v1.13.0/libvpx-1.13.0.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: d5fd45a806a65a57d6635f9e7a98a1b2

  • Tamanho da transferência: 5,2 MB

  • Espaço em disco estimado exigido: 63 MB (adicionar 1,5 GB para os testes)

  • Tempo de construção estimado: 0,5 UPC (Usando paralelismo=4; adicionar aproximadamente 15 UPC para testes usando paralelismo=4, incluindo tempo de download)

Dependências do libvpx

Recomendadas
Opcionais

cURL-7.88.1 (para baixar arquivos de teste) e Doxygen-1.9.6 (para construir documentação)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libvpx

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 a construção de suporte ao codificador VP8.

--disable-vp9: Essa chave impede a construção de suporte ao 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.12.0

Introdução ao MLT

O pacote MLT é o Media Lovin Toolkit. Ele é uma estrutura multimídia de fonte aberto, projetada e desenvolvida para transmissão televisiva. Ela fornece um kit de ferramentas para emissoras, editores de vídeo, reprodutores de mídia, transcodificadores, transmissores da web e muitos outros tipos de aplicativos.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do MLT

Exigidas

frei0r-plugins-1.8.0 e Qt-5.15.8

Opcionais

Doxygen-1.9.6, fftw-3.3.10, libexif-0.6.24, SDL-1.2.15, SDL2-2.26.3, JACK, MOVEit, SoX e vid.stab

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/mlt

Instalação do MLT

Instale o MLT executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -DCMAKE_INSTALL_PREFIX=/usr \
      -DCMAKE_BUILD_TYPE=Release  \
      -Wno-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 ./src/melt/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 o MLT

Opus-1.3.1

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://archive.mozilla.org/pub/opus/opus-1.3.1.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: d7c07db796d21c9cf1861e0c2b0c0617

  • Tamanho da transferência: 1,0 MB

  • Espaço em disco estimado exigido: 26 MB (com os testes)

  • Tempo de construção estimado: 0,8 UPC (com os testes)

Opcionais

Doxygen-1.9.6 e texlive-20220321 (ou install-tl-unx)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/Opus

Instalação do Opus

Instale o Opus executando os seguintes comandos:

./configure --prefix=/usr    \
            --disable-static \
            --docdir=/usr/share/doc/opus-1.3.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: Nenhum(a)
Biblioteca Instalada: libopus.so
Diretório Instalado: /usr/include/opus e /usr/share/doc/opus-1.3.1

Descrições Curtas

libopus.so

fornece as funções usadas para ler e escrever no formato Opus

Pipewire-0.3.66

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Pipewire

Recomendadas
Opcionais

alsa-lib-1.2.8, Avahi-0.8, BlueZ-5.66, fdk-aac-2.0.2, FFmpeg-5.1.2, libcanberra-0.30, libdrm-2.4.115 (para um exemplo e suporte a libcamera), libxcb-1.15, libsndfile-1.2.0, libusb-1.0.26, Opus-1.3.1, SDL2-2.26.3 (para alguns exemplos), Valgrind-3.20.0, Bibliotecas do Xorg, Doxygen-1.9.6 e Graphviz-7.1.0 (para documentação), JACK, ldacBT, libcamera, Vulkan, WirePlumber (tempo de execução, para executar o processo de segundo plano Pipewire) e xmltoman

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/pipewire

Instalação do Pipewire

Instale o pipewire executando os seguintes comandos:

mkdir build &&
cd    build &&

meson --prefix=/usr --buildtype=release -Dsession-managers= .. &&
ninja

Para testar o resultado, emita: ninja test. Um teste chamado test-support é 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.

-Dsession-managers=: Essa chave impede o download automático de dependências externas.

-Ddocs=true: Essa chave habilita a geração de documentação HTML. As dependências opcionais para documentação precisam estar instaladas para isso funcionar.

-Dman=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.

-Dffmpeg=enabled: Essa chave habilita usar FFmpeg para conversão de áudio como uma estrutura de retaguarda SPA.

Conteúdo

Aplicativos Instalados: pipewire, pipewire-avb, pipewire-pulse, pw-cat, pw-cli, 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 pw-dsdplay, pw-midiplay, pw-midirecord, pw-play e pw-record (links simbólicos para pw-cat)
Bibliotecas Instaladas: libpipewire-0.3.so e cinquenta e seis (56) 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-media-session

é um serviço que permite que um ambiente de área de trabalho saiba quando arquivos de mídia estão sendo reproduzidos por intermédio do pipewire

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-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-16.1

Introdução ao PulseAudio

PulseAudio é um sistema de som para Sistemas Operacionais POSIX, o que significa que é um proxy para aplicativos de som. Ele permite que você execute operações avançadas em teus dados de som à medida que eles passam entre teu aplicativo e teu hardware. Coisas 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 alcançadas usando um servidor de som.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do PulseAudio

Exigidas

libsndfile-1.2.0

Recomendadas
Opcionais

Avahi-0.8, BlueZ-5.66, Doxygen-1.9.6 (para documentação), fftw-3.3.10, GTK+-3.24.36, libsamplerate-0.2.2, SBC-2.0 (suporte a Bluetooth), Valgrind-3.20.0, JACK, libasyncns, LIRC, ORC, soxr, TDB e WebRTC AudioProcessing

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/pulseaudio

Instalação do PulseAudio

Instale o PulseAudio executando os seguintes comandos:

mkdir build &&
cd    build &&

meson --prefix=/usr       \
      --buildtype=release \
      -Ddatabase=gdbm     \
      -Ddoxygen=false     \
      -Dbluez5=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 -fv /etc/dbus-1/system.d/pulseaudio-system.conf

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.

-Dbluez5=disabled: Essa chave evita um erro de tempo de execução se dbus-1.14.6 e SBC-2.0 estiverem instalados, mas BlueZ-5.66 não estiver instalado. Remova isso se você tiver instalado todos os três pacotes.

-Ddoxygen=false: Isso permite que o pacote compile se Doxygen-1.9.6 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-16.1.so, libpulsecore-16.1.so e libpulsedsp.so
Diretórios Instalados: /etc/pulse, /usr/include/pulse, /usr/lib/cmake/PulseAudio, /usr/lib/{pulseaudio,pulse-16.1}, /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 aos dispositivos de áudio, para permitir 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 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 adequadamente usando uma plataforma LFS 11.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.0

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/sbc

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.0.

--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

SDL-1.2.15

Introdução ao SDL

A Simple DirectMedia Layer (abreviadamente SDL) é uma biblioteca multiplataforma projetada para facilitar escrever software multimídia, como jogos e emuladores.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://www.libsdl.org/release/SDL-1.2.15.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 9d96df8417572a2afb781a7c4c811a85

  • Tamanho da transferência: 3,8 MB

  • Espaço em disco estimado exigido: 40 MB

  • Tempo de construção estimado: 0,6 UPC

Dependências do SDL

Recomendadas
Opcionais

AAlib-1.4rc5, ALSA-1.2.7, GLU-9.0.2, NASM-2.16.01, PulseAudio-16.1, Pth-2.0.7, um ambiente gráfico, DirectFB, GGI, libcaca, PicoGUI e SVGAlib

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/sdl

Instalação do SDL

Instale o SDL executando os seguintes comandos:

sed -e '/_XData32/s:register long:register _Xconst long:' \
    -i src/video/x11/SDL_x11sym.h &&

./configure --prefix=/usr --disable-static &&

make

Agora, como o(a) usuário(a) root:

make install &&

install -v -m755 -d /usr/share/doc/SDL-1.2.15/html &&
install -v -m644    docs/html/*.html \
                    /usr/share/doc/SDL-1.2.15/html

Testando a SDL

Se desejar, teste a instalação do SDL usando os aplicativos de teste incluídos. Não é exigido instalar nenhum dos binários resultantes para validar a instalação. Emita os seguintes comandos para construir os aplicativos de teste:

cd test &&
./configure &&
make

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.

Explicações do Comando

sed -e ...: Esse comando corrige a compilação com a libX11-1.6.0 e posterior.

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

--disable-alsa-shared: Essa chave desabilita o carregamento dinâmico de bibliotecas compartilhadas ALSA.

--disable-sdl-dlopen: Essa chave desabilita usar dlopen para carregamento de objetos compartilhados. Carregar bibliotecas de estruturas de retaguarda de imagens, como libpng, dinamicamente em tempo real não funciona.

--disable-x11-shared: Essa chave desabilita o carregamento dinâmico de bibliotecas compartilhadas do X11.

Configurando a SDL

Informação de Configuração

Como acontece com a maioria das bibliotecas, não existe configuração a se fazer, exceto o diretório da biblioteca, ou seja, /opt/lib ou /usr/local/lib deveria aparecer em /etc/ld.so.conf de forma que o ldd consiga encontrar as bibliotecas compartilhadas. Depois de verificar se esse é o caso, /sbin/ldconfig deveria ser executado enquanto logado(a) como root.

Conteúdo

Aplicativo Instalado: sdl-config
Bibliotecas Instaladas: libSDL.so e libSDLmain.a
Diretórios Instalados: /usr/include/SDL e /usr/share/doc/SDL-1.2.15

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 acesso de baixo nível a áudio, teclado, mouse, joystick, hardware 3D via OpenGL e Frame Buffer 2D em múltiplas plataformas

SDL2-2.26.3

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://www.libsdl.org/release/SDL2-2.26.3.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 6ff7cbe9f77fc5afa79d54895dc6becc

  • Tamanho da transferência: 7,7 MB

  • Espaço em disco estimado exigido: 186 MB (com documentos)

  • Tempo de construção estimado: 0,5 UPC (usando paralelismo=4; com documentos)

Dependências do SDL2

Recomendadas
Opcionais

ALSA-1.2.7, Doxygen-1.9.6 (para criar documentação), ibus-1.5.27, NASM-2.16.01, PulseAudio-16.1, libsamplerate-0.2.2, um ambiente gráfico, DirectFB, fcitx e jack

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/sdl

Instalação do SDL2

Instale o SDL2 executando os seguintes comandos:

./configure --prefix=/usr &&
make

Se você tiver o Doxygen-1.9.6 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.26.3/html &&
cp -Rv  docs/output/html/* /usr/share/doc/SDL2-2.26.3/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.

--disable-alsa-shared: Essa chave desabilita o carregamento dinâmico de bibliotecas compartilhadas ALSA.

--disable-sdl-dlopen: Essa chave desabilita usar dlopen para carregamento de objetos compartilhados. Carregar bibliotecas de estrutura de retaguarda de imagens, como a libpng, dinamicamente em tempo real não funciona.

--disable-x11-shared: Essa chave desabilita o carregamento dinâmico de bibliotecas compartilhadas do X11.

Configurando a SDL2

Informação de Configuração

Como acontece com a maioria das bibliotecas, não existe configuração a se fazer, exceto o diretório da biblioteca, ou seja, /opt/lib ou /usr/local/lib deveria aparecer em /etc/ld.so.conf de forma que o ldd consiga encontrar as bibliotecas compartilhadas. Depois de verificar se esse é o caso, /sbin/ldconfig deveria ser executado enquanto logado(a) como root.

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.26.3

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 Frame Buffer 2D em múltiplas 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/sound-theme-freedesktop

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.2

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://www.surina.net/soundtouch/soundtouch-2.3.2.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 058db201df6151e3cbd07dc8929885c4

  • Tamanho da transferência: 572 KB

  • Espaço em disco estimado exigido: 7,5 MB

  • Tempo de construção estimado: 0,1 UPC

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/soundtouch

Instalação do SoundTouch

Nota

O tarball se expande para 'soundtouch' em vez do esperado 'soundtouch-2.3.2'

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.2 &&
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.2

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 adequadamente usando uma plataforma LFS 11.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.20.0

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/speex

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-1.13

Introdução ao Taglib

Taglib é uma biblioteca usada para ler, escrever e manipular rótulos de arquivos de áudio e é usada por aplicativos como Amarok e VLC.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://taglib.org/releases/taglib-1.13.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 0b75619b67b9149cfcbbe5c127df6395

  • Tamanho da transferência: 1,3 MB

  • Espaço em disco estimado exigido: 13 MB

  • Tempo de construção estimado: 0,3 UPC

Dependências do Taglib

Exigidas

CMake-3.25.2

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/taglib

Instalação do Taglib

Instale o Taglib executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -DCMAKE_INSTALL_PREFIX=/usr \
      -DCMAKE_BUILD_TYPE=Release  \
      -DBUILD_SHARED_LIBS=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: 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.22.1

Introdução ao v4l-utils

v4l-utils fornece uma série de utilitários para dispositivos de mídia, permitindo lidar com os formatos proprietários disponíveis na maioria das câmeras de web (libv4l), e fornecendo ferramentas para testar dispositivos V4L.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do v4l-utils

Exigidas

LLVM-15.0.7 (com alvo BPF)

Recomendadas
Opcionais

Doxygen-1.9.6 e SDL2-2.26.3

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/v4l-utils

Instalação do v4l-utils

Instale o v4l-utils 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 -j1 install

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 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

v4l2-sysfs-path

verifica os dispositivos de mídia instalados em uma máquina e os correspondentes nós de dispositivos

x264-20230215

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do x264

Recomendadas
Opcionais

ffms2, gpac ou liblsmash

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/x264

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-20230215

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do x265

Exigidas

CMake-3.25.2

Recomendadas
Opcionais

numactl

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/x265

Instalação do x265

Instale o x265 executando os seguintes comandos:

mkdir bld &&
cd    bld &&

cmake -DCMAKE_INSTALL_PREFIX=/usr \
      -DGIT_ARCHETYPE=1           \
      -Wno-dev ../source          &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install &&
rm -vf /usr/lib/libx265.a 

Explicações do Comando

-DGIT_ARCHETYPE=1: o(a) Desenvolvedor(a) não mais fornece lançamentos. O BLFS está usando um instantâneo git, mas se o construtor não tiver instalado o git, a construção não instalará a biblioteca compartilhada ou o arquivo pkgconfig sem essa chave.

-Wno-dev: Essa chave é usada para suprimir avisos destinados para os(as) desenvolvedores(as) do pacote.

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Xine Libraries

Exigidas

um ambiente gráfico, FFmpeg-5.1.2, e, pelo menos, um de: ALSA-1.2.7, PulseAudio-16.1 ou JACK

Recomendadas
Opcionais

AAlib-1.4rc5, FAAD2-2.10.1, FLAC-1.4.2, gdk-pixbuf-2.42.10, GLU-9.0.2, ImageMagick-7.1.0-61, liba52-0.7.4, libdvdcss-1.4.3, libmad-0.15.1b, libmng-2.0.3, libnsl-2.0.0, libtheora-1.1.1, libva-2.17.0 (exige GLU-9.0.2), libvdpau-1.5, libvorbis-1.3.7, libvpx-1.13.0, Mesa-22.3.5, Samba-4.17.5, SDL-1.2.15, Speex-1.2.1, Doxygen-1.9.6 (para criar a documentação da API), v4l-utils-1.22.1 DirectFB, libbluray, libcaca, libdca, libFAME, libmodplug, musepack, VCDImager e WavPack,

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/xine-lib

Instalação do Xine Libraries

Primeiro, corrija a construção desse pacote com binutils-2.39:

sed -e '/xine_set_flags/s/XINE_PROTECTED//' -i include/xine.h

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.17.0 estiver instalado e GLU-9.0.2 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 adequadamente usando uma plataforma LFS 11.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.01

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/xvid

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.2

Introdução ao Audacious

Audacious é um reprodutor de áudio.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://distfiles.audacious-media-player.org/audacious-4.2.tar.bz2

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 3f76597aa1d2ea1501a93456b46d870f

  • Tamanho da transferência: 600 KB

  • Espaço em disco estimado exigido: 72 MB (com interface Qt de usuário(a))

  • Tempo de construção estimado: 0,8 UPC (com interface Qt de usuário(a))

Transferências Adicionais

Plugins Exigidos

Dependências do Audacious

Exigidas

GTK+-2.24.33 ou Qt-5.15.8 (ou ambos), libxml2-2.10.3 (plugins), Ambiente de construção do "Xorg" (plugins) e um ambiente gráfico (tempo de execução)

Recomendadas

ALSA-1.2.7 e dbus-1.14.6; também gnome-icon-theme-3.12.0 (tempo de execução)

Opcionais

libarchive-3.6.2 e Valgrind-3.20.0

Recomendadas (para Plugins)
Opcionais (para Plugins)

cURL-7.88.1, FAAD2-2.10.1, FFmpeg-5.1.2, FLAC-1.4.2, LAME-3.100, libcdio-2.1.0 (para identificar e reproduzir CDs), libnotify-0.8.1, libsamplerate-0.2.2, libsndfile-1.2.0, libvorbis-1.3.7, PulseAudio-16.1, SDL-1.2.15, 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

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/audacious

Instalação do Audacious

Instalação do Aplicativo Principal Audacious

Instale o Audacious executando os seguintes comandos (você possivelmente queira mudar o carimbo para outra sequência de caracteres):

TPUT=/bin/true ./configure --prefix=/usr \
                           --with-buildstamp="BLFS" &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Instalação dos Plugins do Audacious

Instale o pacote exigido de plugins emitindo os seguintes comandos:

tar -xf ../audacious-plugins-4.2.tar.bz2                &&
cd audacious-plugins-4.2                                &&
TPUT=/bin/true ./configure --prefix=/usr --disable-wavpack &&
make

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+-2.24.33 ou GTK+-3.24.36 instalado (para o cache de ícones) e o desktop-file-utils-0.26 (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

TPUT=/bin/true: o padrão é para make gerar texto em cores. Isso é bom se você estiver construindo em um terminal, mas se você automatizar o processo de construção e canalizar a saída gerada a partir do make para um arquivo de registro, então os caracteres de controle usados para colorir o texto poderão tornar o arquivo de registro ilegível. Essa opção evita que make colora o texto.

--with-buildstamp: Essa chave anexa o texto fornecido à sequência de caracteres da versão.

--disable-wavpack: Essa chave é exigida, a menos que o pacote opcional WavPack esteja instalado.

--enable-gtk: Use isso para habilitar o suporte a GTK+.

--disable-qt: Use isso para desabilitar o suporte qt.

--disable-mp3: Use isso para os plugins se você não tiver instalado o mpg123 e não desejar reproduzir arquivos mp3.

--enable-valgrind: Permite melhores verificações do Valgrind de vazamento.

--disable-neon: Use isso para os plugins se você não tiver instalado o neon e não desejar usar o transporte HTTP/HTTPS.

Configurando o Audacious

Se você preferir a interface antiga e menor do Winamp/XMMS, clique em Exibir> Interface> Interface Clássica do Winamp.

Se você construiu com interfaces Gtk e Qt de usuário(a), a versão Qt pode ser executada a partir de um terminal, emitindo audacious --qt. Se você desejar que uma entrada de menu da área de trabalho execute essa versão do Qt, emita os seguintes comandos como o(a) usuário(a) root:

cp -v /usr/share/applications/audacious{,-qt}.desktop &&

sed -e '/^Name/ s/$/ Qt/' \
    -e '/Exec=/ s/audacious/& --qt/' \
    -i /usr/share/applications/audacious-qt.desktop

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

é uma portagem Qt do XMMS baseada no Beep Media Player

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Transferências Adicionais

Observações de Usuário(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-22.12.2

Introdução ao KWave

O pacote KWave contém um aplicativo Editor de Som baseado em KF5.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.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-5.103.0

Recomendadas
Opcionais

Doxygen-1.9.6

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/kwave

Instalação do KWave

Instale o KWave executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -DCMAKE_INSTALL_PREFIX=$KF5_PREFIX \
      -DCMAKE_BUILD_TYPE=Release         \
      -DBUILD_TESTING=OFF                \
      -Wno-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 vinte e nove (29) plugins
Diretórios Instalados: $KF5_PREFIX/lib/plugins/kwave, $KF5_PREFIX/share/kwave, $KF5_PREFIX/share/doc/HTML/*/kwave

Descrições Curtas

kwave

é um editor de som construído na Frameworks 5 do KDE

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 adequadamente usando uma plataforma LFS 11.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.0 e NASM-2.16.01

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/lame

Instalação do LAME

Instale o LAME executando os seguintes comandos:

./configure --prefix=/usr --enable-mp3rtp --disable-static &&
make

Para testar os resultados, emita: 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: Habilite o uso de NASM-2.16.01 para compilar rotinas otimizadas de montagem para x86 de 32 bits. Essa opção 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

bibliotecas fornecem as funções necessárias para converter arquivos brutos PCM e WAV em arquivos MP3

mpg123-1.31.2

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://downloads.sourceforge.net/mpg123/mpg123-1.31.2.tar.bz2

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 7aa9b41b70826fe8edd743202e488433

  • Tamanho da transferência: 1,0 MB

  • Espaço em disco estimado exigido: 16 MB (com os testes)

  • Tempo de construção estimado: 0,2 UPC (com os testes)

Dependências do mpg123

Recomendadas
Opcionais

PulseAudio-16.1, SDL-1.2.15, JACK, OpenAL e PortAudio

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/mpg123

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-5.0

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do pavucontrol

Exigidas

Gtkmm-3.24.7, JSON-GLib-1.6.6, libcanberra-0.30, libsigc++-2.12.0 e PulseAudio-16.1

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/pavucontrol

Instalação do pavucontrol

Instale o pavucontrol executando os seguintes comandos:

./configure --prefix=/usr --docdir=/usr/share/doc/pavucontrol-5.0 &&
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
Bibliotecas Instaladas: Nenhum(a)
Diretório Instalado: /usr/share/pavucontrol e /usr/share/doc/pavucontrol-5.0

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Pnmixer

Exigidas

alsa-utils-1.2.8, GTK+-3.24.36 e libnotify-0.8.1

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/pnmixer

Instalação do Pnmixer

Instale o Pnmixer executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -DCMAKE_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 adequadamente usando uma plataforma LFS 11.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-7.88.1, FLAC-1.4.2, Speex-1.2.1 e libkate

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/vorbistools

Instalação do Vorbis Tools

Instale o Vorbis Tools executando os seguintes comandos:

./configure --prefix=/usr \
            --enable-vcut \
            --without-curl &&
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.

--without-curl: Esse parâmetro desabilita a transmissão HTTP em ogg123. Remova esse parâmetro se você tiver o cURL instalado.

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-5.1.2

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://ffmpeg.org/releases/ffmpeg-5.1.2.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: fa847c43407315c27231b9f883e62c0e

  • Tamanho da transferência: 9,5 MB

  • Espaço em disco estimado exigido: 184 MB (adicionar 1,7 GB para a suíte/testes FATE; adicionar 766 MB para documentação)

  • Tempo de construção estimado: 1,3 UPC (usando paralelismo=4; adicionar 3,7 UPC (com THREADS=4) para executar a suíte FATE depois que arquivos de amostra forem baixados; adicionar 0,3 UPC para documentos doxygen)

Transferências Adicionais

Dependências do FFmpeg

Recomendadas
Recomendadas para uso de área de trabalho
Opcionais

Doxygen-1.9.6, Fontconfig-2.14.2, FriBidi-1.0.12, frei0r-plugins-1.8.0, libcdio-2.1.0 (para identificar e reproduzir CDs), libdrm-2.4.115 (para entrada kmsgrab), libwebp-1.3.0, opencv-4.7.0, OpenJPEG-2.5.0, GnuTLS-3.8.0, PulseAudio-16.1, Samba-4.17.5, Speex-1.2.1, texlive-20220321 (ou install-tl-unx) para documentação PDF e PS, v4l-utils-1.22.1, XviD-1.3.7, um ambiente gráfico, Flite, GSM, libaacplus, libbluray, libcaca, libcelt, libdc1394, libdca, libiec61883, libilbc, libmodplug, libnut (Check-out do Git), librtmp, libssh, OpenAL, OpenCore AMR, Srt, Schroedinger, TwoLAME, vo-aaenc, vo-amrwbenc e ZVBI

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/ffmpeg

Instalação do FFmpeg

Nota

Alguns avisos inofensivos possivelmente sejam emitidos pelo processo de construção em relação à documentação HTML. Isso é devido a uma incompatibilidade com o Texinfo-7.0 e superior.

Primeiro, aplique um remendo que adicione uma API necessária para alguns pacotes construírem:

patch -Np1 -i ../ffmpeg-5.1.2-chromium_method-1.patch

Instale o FFmpeg executando os seguintes comandos:

sed -i 's/-lflite"/-lflite -lasound"/' configure &&

./configure --prefix=/usr        \
            --enable-gpl         \
            --enable-version3    \
            --enable-nonfree     \
            --disable-static     \
            --enable-shared      \
            --disable-debug      \
            --enable-libass      \
            --enable-libfdk-aac  \
            --enable-libfreetype \
            --enable-libmp3lame  \
            --enable-libopus     \
            --enable-libtheora   \
            --enable-libvorbis   \
            --enable-libvpx      \
            --enable-libx264     \
            --enable-libx265     \
            --enable-openssl     \
            --docdir=/usr/share/doc/ffmpeg-5.1.2 &&

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-20220321 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.9.6 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-5.1.2 &&
install -v -m644    doc/*.txt /usr/share/doc/ffmpeg-5.1.2

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-5.1.2 &&
install -v -m644 doc/*.ps  /usr/share/doc/ffmpeg-5.1.2

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-5.1.2/api                     &&
cp -vr doc/doxy/html/* /usr/share/doc/ffmpeg-5.1.2/api                  &&
find /usr/share/doc/ffmpeg-5.1.2/api -type f -exec chmod -c 0644 \{} \; &&
find /usr/share/doc/ffmpeg-5.1.2/api -type d -exec chmod -c 0755 \{} \;

Para testar a instalação corretamente, você precisa ter o rsync-3.2.7 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

sed -i ... configure: Esse comando adiciona a biblioteca ALSA à variável LDFLAGS do Flite e habilita o descoberta do Flite.

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-libass: Habilita a renderização do formato de legenda ASS/SSA via libass.

--enable-libdrm: Use essa chave, se o libdrm-2.4.115 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-libtheora: Habilita a codificação de vídeo Theora via libvorbis e libtheora.

--enable-libvorbis --enable-libvpx: Habilita a 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.

--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.9.6 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 a saída gerada a partir de ./configure --help para informações completas a respeito de 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-5.1.2 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

MPlayer-1.5

Introdução ao MPlayer

MPlayer é um poderoso reprodutor de áudio/vídeo controlado por meio da linha de comando ou de uma interface gráfica que é capaz de reproduzir quase todos os formatos populares de arquivos de áudio e vídeo. Com hardware de vídeo suportado e controladores adicionais, o MPlayer consegue reproduzir arquivos de vídeo sem um Sistema de Janelas X instalado.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Transferências Adicionais

Temas

Nota

Temas são necessários somente para a finalidade de usar a interface de usuário(a) do Gtk+ 2.

Dependências do MPlayer

Exigidas

yasm-1.3.0

Recomendadas
Controladores e Bibliotecas Opcionais de Entrada

CDParanoia-III-10.2, libcdio-2.1.0 (para identificar e reproduzir CDs), libdvdread-6.1.3, libdvdnav-6.1.1, libdvdcss-1.4.3, Samba-4.17.5, libbluray, LIVE555 Streaming Media, RTMPDump, Cliente TiVo vstream e XMMS

Controladores e Bibliotecas Opcionais de Saída de Áudio

ALSA-1.2.7, PulseAudio-16.1, SDL-1.2.15, JACK, NAS e OpenAL

Controladores e Bibliotecas Opcionais de Saída de Vídeo

AAlib-1.4rc5, giflib-5.2.1, libjpeg-turbo-2.1.5.1, libmng-2.0.3, libpng-1.6.39, OpenJPEG1 DirectFB, libcaca e SVGAlib

CODECs Opcionais

FAAC-1_30, FAAD2-2.10.1, LAME-3.100, liba52-0.7.4, libdv-1.0.0, libmad-0.15.1b, libmpeg2-0.5.1, libtheora-1.1.1, libvpx-1.13.0, LZO-2.10, mpg123-1.31.2, Speex-1.2.1, XviD-1.3.7, x264-20230215, CrystalHD, Dirac, GSM, iLBC, libdca, libnut, libmpcdec, Taxa Múltipla Adaptável OpenCore, Schroedinger, Tremor e TwoLAME

Dependências Opcionais Diversas

Fontconfig-2.14.2, FreeType-2.13.0, FriBidi-1.0.12, GnuTLS-3.8.0, Opus-1.3.1 e UnRar-6.2.6; libxslt-1.1.37, docbook-xml-4.5 e docbook-xsl-nons-1.79.2 (todos três exigidos para construir a documentação HTML); e Enca, libbs2b e LIRC (e Processo de Segundo Plano Cliente LIRC)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/mplayer

Instalação do MPlayer

Instalação Principal do MPlayer

Nota

Os(As) mantenedores(as) do pacote recomendam construir sem quaisquer otimizações.

Você possivelmente deseje examinar a saída gerada proveniente de ./configure --help para descobrir quais parâmetros adicionais para configure são necessários para incluir as dependências que você tem instaladas em teu sistema.

Instale o MPlayer executando os seguintes comandos:

./configure --prefix=/usr                 \
            --confdir=/etc/mplayer        \
            --enable-dynamic-plugins      \
            --disable-libmpeg2-internal   \
            --disable-ffmpeg_a            \
            --enable-menu                 \
            --enable-runtime-cpudetection \
            --enable-gui                  &&
make

Se você desejar construir a documentação HTML, emita o seguinte comando:

make doc

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install  &&
ln -svf ../icons/hicolor/48x48/apps/mplayer.png \
        /usr/share/pixmaps/mplayer.png

Para instalar a documentação HTML, emita os seguintes comandos como o(a) usuário(a) root:

install -v -m755 -d /usr/share/doc/mplayer-1.5 &&
install -v -m644    DOCS/HTML/en/* \
                    /usr/share/doc/mplayer-1.5

Você só precisará do codecs.conf se quiser mudar as propriedades dele, pois o binário principal contém uma cópia interna dele. Certifique-se de que quaisquer mudanças que você fizer no codecs.conf obtenham os resultados desejados, pois entradas incorretas nesse arquivo tem sido conhecidas por causarem erros e tornarem o reprodutor não usável. Se necessário, crie o arquivo como o(a) usuário(a) root:

install -v -m644 etc/codecs.conf /etc/mplayer

Alternativamente, você pode querer copiar todos os arquivos padrão de configuração para /etc/mplayer para referência futura ou maior capacidade de personalização. Como o(a) usuário(a) root:

install -v -m644 etc/*.conf /etc/mplayer

Instalação do Tema (Opcional)

Para habilitar a estrutura Gtk+ 2 de interação direta com o(a) usuário(a) do MPlayer, você precisará instalar pelo menos um tema. Extraia o tema desejado e crie o local padrão (como o(a) usuário(a) root):

tar -xvf  ../Clearlooks-2.0.tar.bz2 \
    -C    /usr/share/mplayer/skins &&
ln  -sfvn Clearlooks /usr/share/mplayer/skins/default

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+-2.24.33 ou GTK+-3.24.36 instalado (para o cache de ícones) e o desktop-file-utils-0.26 (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

--enable-gui: Essa opção constrói a interface GUI no mplayer.

--enable-menu: Essa opção é configurada para habilitar a exibição na tela.

--enable-runtime-cpudetection: Essa opção faz com que o MPlayer execute com um tipo genérico de CPU, evitando otimizações que possivelmente causem problemas em tempo de execução.

--disable-ffmpeg_a: Você pode usar essa opção se tiver instalado o FFmpeg-5.1.2. A vinculação dinâmica a um FFmpeg instalado no sistema torna o MPlayer e o Mencoder cerca de 9 MB menores.

--disable-libmpeg2-internal: Essa opção faz o MPlayer executar com uma versão de sistema da libmpeg2.

--language-doc="<idioma>": Essa chave configura o idioma usado para a documentação. Use ./configure --help para mais informações.

--language-man="<idioma>": Essa chave configura o idioma usado para as páginas de manual. Use ./configure --help para mais informações.

--language-msg="<idioma>": Essa chave configura o idioma usado para mensagens e a GUI. Use ./configure --help para mais informações

--language="<idioma>": Essa chave configura o idioma padrão usado. Use ./configure --help para mais informações.

Nota

Opções específicas substituem --language. Você pode passar uma lista de idiomas separados por espaços em branco ou vírgulas em vez de um idioma. Traduções inexistentes serão eliminadas de cada lista. Todas as traduções de documentação e páginas de manual disponíveis na lista serão instaladas; para as mensagens, a primeira tradução disponível será usada. O valor "all" ativará todas as traduções. A variável de ambiente LINGUAS é respeitada. Em todos os casos, o substituto é o inglês. Os valores listados por ./configure --help não estão todos disponíveis, como normalmente seria esperado. Você precisa construir o teste.

Configurando o MPlayer

Arquivos de Configuração

/etc/mplayer/* e ~/.mplayer/*

Nota

Para reproduzir um DVD, possivelmente seja útil garantir que um dispositivo /dev/dvd seja criado. Você possivelmente precise configurar isso conforme descrito em “Dispositivos para Unidades de DVD”.

Informação de Configuração

Tipicamente, não existe nenhuma configuração exigida para os arquivos abrangentes a todo o sistema em /etc/mplayer (na verdade, esse diretório é vazio, a menos que você copiou os arquivos padrão conforme mencionado acima). A configuração pode ser realizada escolhendo-se o botão de configuração localizado na GUI do MPlayer. Quaisquer mudanças de configuração feitas na GUI serão salvas no diretório ~/.mplayer do(a) usuário(a).

Conteúdo

Aplicativos Instalados: gmplayer, mplayer e mencoder
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /etc/mplayer, /usr/share/doc/mplayer-1.5 e /usr/share/mplayer

Descrições Curtas

gmplayer

é um link simbólico para mplayer que traz a estrutura GTK+ 2 de interação direta com o(a) usuário(a) do MPlayer

mplayer

é o reprodutor principal de vídeo MPlayer

mencoder

é uma poderosa ferramenta, de linha de comando, de decodificação, codificação e filtragem de vídeo que é útil para (entre outras coisas) copiar DVDs para arquivos em teu disco rígido (veja-se /usr/share/doc/mplayer-1.5/mencoder.html)

Transcode-1.1.7

Introdução ao Transcode

Transcode era um conversor de áudio/vídeo tudo para tudo rápido, versátil e baseado em linha de comando, focado principalmente na produção de arquivos de vídeo AVI com áudio MP3, mas também incluindo um aplicativo para ler todos os fluxos de vídeo e áudio a partir de um DVD.

Embora desatualizado e não mais mantido, ele ainda pode ser usado para extrair itens a partir de um DVD usando somente as dependências exigidas e recomendadas ou para recodificar para arquivos AVI.

Sujeito aos comentários abaixo, esse pacote é conhecido por construir e funcionar minimamente usando a atual plataforma LFS.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Transferências Adicionais

Dependências do Transcode

Recomendadas
Opcionais

FAAC-1_30, FreeType-2.13.0, ImageMagick-6, liba52-0.7.4, libdv-1.0.0, libjpeg-turbo-2.1.5.1, libogg-1.3.5, libquicktime-1.2.4, libtheora-1.1.1, libvorbis-1.3.7, libxml2-2.10.3, LZO-2.10, SDL-1.2.15, v4l-utils-1.22.1, x264-20230215, XviD-1.3.7 Ferramentas MJPEG e PVM3,

Opcionais (em tempo de execução)

lsdvd

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/transcode

Instalação do Transcode

Nota

O suporte para a maioria dos pacotes de dependência exige usar opções passadas para o conjunto de comandos sequenciais configure. Visualize o arquivo INSTALL e a saída gerada a partir de ./configure --help para informações completas acerca de habilitar pacotes de dependência.

Instale o Transcode executando os seguintes comandos:

sed -i 's|doc/transcode|&-$(PACKAGE_VERSION)|' \
       $(find . -name Makefile.in -exec grep -l 'docsdir =' {} \;) &&

patch -Np1 -i ../transcode-1.1.7-gcc10_fix-1.patch &&

./configure --prefix=/usr     \
            --enable-alsa     \
            --enable-libmpeg2 \
            --disable-ffmpeg  &&
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 ...: Corrige o local de instalação para documentação.

--disable-ffmpeg: Essa chave desabilita o suporte para FFmpeg porque a libavresample foi removida no ffmpeg-5.x.

Conteúdo

Aplicativos Instalados: avifix, aviindex, avimerge, avisplit, avisync, tccat, tcdecode, tcdemux, tcextract, tcmodinfo, tcmp3cut, tcprobe, tcscan, tcxmlcheck, tcxpm2rgb, tcyait e transcode
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/lib/transcode e /usr/share/doc/transcode-1.1.7

Descrições Curtas

avifix

corrige o cabeçalho de um arquivo AVI

aviindex

escreve um arquivo de texto descrevendo o índice de um arquivo AVI

avimerge

mescla arquivos AVI do mesmo formato. Não tente mesclar arquivos AVI de formatos diferentes; isso provavelmente resultará em erros (e formato significa mesmas taxas de bits, também!)

avisplit

divide arquivos AVI em vários arquivos

avisync

pode deslocar áudio em arquivos AVI para melhor sincronização do sinal de dados de áudio e vídeo

tccat

concatena arquivos de entrada usando os plugins de entrada do Transcode. Isso é útil para extrair arquivos Video OBject (VOB), seja para um DVD inteiro ou para títulos ou capítulos selecionados, os quais podem então serem reproduzidos ou recodificados

tcdecode

é usado para decodificar arquivos de entrada para fluxos de vídeo bruto e áudio PCM

tcdemux

demultiplexa (separa) a entrada de áudio/vídeo que contém vários fluxos, por exemplo, arquivos VOB

tcextract

captura fluxos únicos a partir de um arquivo contendo vários fluxos

tcmodinfo

carrega um módulo de filtro do Transcode fornecido e imprime os parâmetros dele

tcmp3cut

é uma ferramenta que pode cortar fluxos de MP3 em posições de milissegundos

tcprobe

imprime informações a respeito do formato do arquivo de entrada

tcscan

realiza diversas medições nos dados de entrada fornecidos

tcxmlcheck

verifica informações em um arquivo de entrada SMIL

transcode

é a interface de usuário(a) do codificador que lida com os plugins e outros aplicativos, sendo a cola entre os módulos. Existem vários exemplos de uso bem documentados, tanto na página inicial quanto na documentação incluída no pacote

VLC-3.0.18

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://download.videolan.org/vlc/3.0.18/vlc-3.0.18.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: f3c031357c0eeffb41e928eca220a803

  • Tamanho da transferência: 25 MB

  • Espaço em disco estimado exigido: 700 MB

  • Tempo de construção estimado: 1,7 UPC (usando paralelismo = 4)

Dependências do VLC

Recomendadas
Recursos e pacotes opcionais

dbus-1.14.6, libidn-1.41 e libssh2-1.10.0

Plugins opcionais de entrada

libarchive-3.6.2, libcddb-1.3.2, libdv-1.0.0, libdvdcss-1.4.3, libdvdread-6.1.3, libdvdnav-6.1.1, opencv-4.7.0, Samba-4.17.5, v4l-utils-1.22.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.10.1, FLAC-1.4.2, libass-0.17.0, libmpeg2-0.5.1, libpng-1.6.39, libtheora-1.1.1, libva-2.17.0, libvorbis-1.3.7, Opus-1.3.1, Speex-1.2.1, libvpx-1.13.0, x264-20230215, aom, aribb24, dav1d, Dirac, FluidLite, FluidSynth, libdca, libkate, OpenMAX, Schroedinger, Shine, SoX, Tremor, Twolame e Zapping VBI

Plugins opcionais de vídeo

AAlib-1.4rc5, Fontconfig-2.14.2, FreeType-2.13.0, FriBidi-1.0.12, librsvg-2.54.5, libvdpau-1.5, SDL-1.2.15 (com SDL_image), libcaca e libmfx

Plugins opcionais de áudio

PulseAudio-16.1, libsamplerate-0.2.2, spatialaudio e JACK

Plugins opcionais de interface

Qt-5.15.8 (exigido para a interface gráfica de usuário(a)), libtar, libvncclient, LIRC e freerdp

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.0, libnotify-0.8.1, libxml2-2.10.3, taglib-1.13, xdg-utils-1.1.3 (tempo de execução), AtmoLight, libmicrodns, protobuf e Srt

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/vlc

Instalação do VLC

Instale o VLC executando os seguintes comandos:

export LUAC=/usr/bin/luac5.2                          &&
export LUA_LIBS="$(pkg-config --libs lua52)"          &&
export CPPFLAGS="$(pkg-config --cflags lua52)"        &&

BUILDCC=gcc ./configure --prefix=/usr --disable-libva &&

make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make docdir=/usr/share/doc/vlc-3.0.18 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+-2.24.33 ou GTK+-3.24.36 instalado (para o cache de ícones) e o desktop-file-utils-0.26 (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

export ...: Esses comandos garantem construir com Lua-5.2.4. O(A) desenvolvedor(a) ainda não suporta lua 5.4.

--disable-libva: Essa chave é exigida para desabilitar a aceleração de vídeo no VLC, pois ela é incompatível com ffmpeg-5 e o(a) desenvolvedor(a) não tem planos de portá-la devido à complexidade.

--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.10.0 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, qvlc, 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.18

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

qvlc

é um conjunto de comandos sequenciais para executar o VLC com a interface Qt

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 adequadamente usando uma plataforma LFS 11.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.2

Opcionais

cURL-7.88.1, AAlib-1.4rc5, LIRC e libcaca

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/xine-ui

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+-2.24.33 ou GTK+-3.24.36 instalado (para o cache de ícones) e o desktop-file-utils-0.26 (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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Cdrdao

Recomendadas

Observações de Usuário(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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Cdrtools

Exigidas

alsa-lib-1.2.8

Observações de Usuário(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:

export GMAKE_NOWARN=true &&
make -j1 INS_BASE=/usr DEFINSUSR=root DEFINSGRP=root

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

export GMAKE_NOWARN=true &&
make INS_BASE=/usr MANSUFF_LIB=3cdr DEFINSUSR=root DEFINSGRP=root 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 no gravador DVD+/-RW BTC DRW1008. Por favor, tenha cuidado com esse aplicativo

cdda2wav

converte áudio de CD em arquivos de som WAV

cdrecord

grava CDs de áudio ou dados

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do dvd+rw-tools

Exigidas

Cdrtools-3.02a09 (tempo de execução)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/dvd+rw-tools

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.4

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do libburn

Opcionais

Doxygen-1.9.6 (para gerar documentação HTML)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libburn

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.4 &&
install -v -m644 doc/html/* /usr/share/doc/libburn-1.5.4

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.4

Introdução ao libisoburn

libisoburn é uma interface para bibliotecas libburn e libisofs que habilita criar e expandir sistemas de arquivos ISO-9660 em 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://files.libburnia-project.org/releases/libisoburn-1.5.4.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5: da transferência b14473e8ec31a8ebd8d1c8b1b191908c

  • Tamanho da transferência: 1,6 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.4 e libisofs-1.5.4

Opcionais

Doxygen-1.9.6 (para gerar documentação HTML), Tk-8.6.13 (para xorriso-tcltk) e libjte

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libisoburn

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.4 &&
install -v -m644 doc/html/* /usr/share/doc/libisoburn-1.5.4

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

--enable-pkg-check-modules: Habilite pkg-config verificar se existe 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.4

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.4

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do libisofs

Opcionais

Doxygen-1.9.6 (para gerar documentação HTML) e libjte

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libisofs

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.4 &&
install -v -m644 doc/html/* /usr/share/doc/libisofs-1.5.4

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.2

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Cups

Exigidas

GnuTLS-3.8.0

Recomendadas
Opcionais

Avahi-0.8, libpaper-1.1.24+nmu5, MIT Kerberos V5-1.20.1, PHP-8.2.3 e Python-2.7.18

Exigidas (pós instalação)

cups-filters-1.28.16

Opcionais (pós instalação)

Gutenprint-5.3.4 e hplip (impressoras HP)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/cups

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  --->                          [CONFIG_USB_SUPPORT]
    <*/M>  OHCI HCD (USB 1.1) support            [CONFIG_USB_OHCI_HCD]
    <*/M>  UHCI HCD (most Intel and VIA) support [CONFIG_USB_UHCI_HCD]
    <*/M>  USB Printer support                   [CONFIG_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  --->    [CONFIG_PARPORT]
    <*/M> PC-style hardware            [CONFIG_PARPORT_PC]
  Character devices  --->
    <*/M> Parallel printer support     [CONFIG_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.1.3, 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-system-groups=lpadmin \
            --with-docdir=/usr/share/cups/doc-2.4.2 &&
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". Um teste, httpAddrGetList, é conhecido por falhar.

Agora, como o(a) usuário(a) root:

make install &&
ln -svnf ../cups/doc-2.4.2 /usr/share/doc/cups-2.4.2

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+-2.24.33 ou GTK+-3.24.36 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

sed ... configure: Esse sed remove uma opção de compilador que não mais é suportada. Deixando essa mudança de fora, a compilação executará, mas um aviso acerca de uma opção inválida de aviso será emitido em cada invocação do compilador.

CC=gcc CXX=g++: Configure-as se você preferir usar o gcc em vez do clang, que agora é preferido pelo(a) desenvolvedor(a).

--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.26, 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.00.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.00.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

Unidade do systemd

Para iniciar o processo de segundo plano cupsd quando algo tentar acessá-lo, habilite as unidades do systemd instaladas anteriormente executando o seguinte comando como o(a) usuário(a) root:

systemctl enable cups

Conteúdo

Aplicativos Instalados: cancel, cupsaccept, cups-config, cupsctl, cupsd, cupsdisable, cupsenable, cupsfilter, cupsreject, cupstestppd, ippeveprinter, 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.2 e /var/{cache,log,run,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

parar impressoras e classes

cupsenable

iniciar 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

rejeitar tarefas enviadas para um destino

cupstestppd

testa a conformidade de arquivos PPD

ippeveprinter

é uma impressora IPP Everywhere para CUPS

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-filters-1.28.16

Introdução ao CUPS Filters

O pacote CUPS Filters contém estruturas de retaguarda, filtros e outros softwares que já fizeram parte da distribuição principal do CUPS, mas não mais são mantidos pela Apple Inc.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do CUPS Filters

Exigidas

Cups-2.4.2, GLib-2.74.5, ghostscript-10.00.0, Little CMS-2.14, Poppler-23.02.0 e Qpdf-11.2.0

Recomendadas
Opcionais

Avahi-0.8 (exigido para construir a estrutura de retaguarda DNSSD do processo de segundo plano cups-browsed, o qual é necessário para operar algumas impressoras de rede de intercomunicação), OpenLDAP-2.6.4, PHP-8.2.3 (o uso disso pode estar quebrado), Liblouis (Braille) e Liblouisutdml (Braille)

Controladores opcionais de impressora (tempo de execução)

Gutenprint-5.3.4 (para impressoras suportadas) ou outros controladores de impressora, tais como hplip

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/cups-filters

Instalação do CUPS Filters

Instale o CUPS Filters executando os seguintes comandos:

./configure --prefix=/usr        \
            --sysconfdir=/etc    \
            --localstatedir=/var \
            --without-rcdir      \
            --disable-static     \
            --disable-avahi      \
            --docdir=/usr/share/doc/cups-filters-1.28.16 &&
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

Instale a unidade do systemd executando o seguinte comando como o(a) usuário(a) root:

install -v -m644 utils/cups-browsed.service /lib/systemd/system/cups-browsed.service

Explicações do Comando

--disable-avahi: Essa chave é necessária se o opcional Avahi-0.8 não estiver instalado. Remova-o se o avahi estiver instalado e você precisar de recursos de descoberta de impressoras de rede de intercomunicação.

--without-rcdir: Essa chave desabilita a instalação do conjunto incluído de comandos sequenciais de inicialização, o qual não é compatível com o BLFS.

--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 tem o /usr/share/fonts/dejavu/DejaVuSans.ttf padrão, use essa chave para especificar onde a DejaVuSans.ttf (ou talvez alguma outra fonte TTF de texto - não testada) está localizada.

Configurando o CUPS Filters

Unidades do systemd

Para iniciar o processo de segundo plano cups-browsed na inicialização, habilite a unidade do systemd instalada anteriormente executando o seguinte comando como o(a) usuário(a) root:

systemctl enable cups-browsed

Conteúdo

Aplicativos Instalados: cups-browsed, driverless, driverless-fax e foomatic-rip
Bibliotecas Instaladas: libcupsfilters.so e libfontembed.so
Diretórios Instalados: /usr/include/{cupsfilters,fontembed}, /usr/lib/cups/{backend,driver,filter}, /usr/share/cups/{braille,charsets}, /usr/share/doc/cups-filters-1.28.16 e /usr/share/ppd/cupsfilters

Descrições Curtas

cups-browsed

é um processo de segundo plano para navegar nas difusões Bonjour e CUPS de impressoras CUPS remotas e compartilhadas

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

libcupsfilters.so

contém funções de API do CUPS Filters

ghostscript-10.00.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 adequadamente usando uma plataforma LFS 11.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.17.6, GTK+-3.24.36, libidn-1.41, libpaper-1.1.24+nmu5 e um ambiente gráfico

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/gs

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.36. Ela é usada somente por aplicativos externos, como asymptote-2.85, dvisvgm-3.0.3 e ImageMagick-7.1.0-61.

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ê quiser a biblioteca compartilhada também:

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.00.0 /usr/share/doc/ghostscript-10.00.0  &&
rm -rfv /usr/share/doc/ghostscript &&
cp -r examples/ /usr/share/ghostscript/10.00.0/

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.00.0/examples . Para fazer isso, execute o seguinte comando (em uma tela do Janelas X):

gs -q -dBATCH /usr/share/ghostscript/10.00.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.5.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.00.0 /usr/share/doc/ghostscript-10.00.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.2 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.00.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.2 e o GIMP-2.0. Veja-se uma lista de impressoras suportadas em https://gutenprint.sourceforge.net/p_Supported_Printers.php.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do Gutenprint

Recomendadas
Recomendadas (em tempo de execução)
Opcionais (para regenerar documentação)

ImageMagick-7.1.0-61, texlive-20220321 (ou install-tl-unx), Doxygen-1.9.6 e DocBook-utils-0.6.14

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/gutenprint

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  --->                          [CONFIG_USB_SUPPORT]
    <*/M>  OHCI HCD (USB 1.1) support            [CONFIG_USB_OHCI_HCD]
    <*/M>  UHCI HCD (most Intel and VIA) support [CONFIG_USB_UHCI_HCD]
    <*/M>  USB Printer support                   [CONFIG_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 &&
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.

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):

systemctl restart cups

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

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.0.32

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 adequadamente usando uma plataforma LFS 11.3.

Informações do Pacote de Estruturas de Retaguarda

Transferências Adicionais (Estruturas de Interação Direta com o(a) Usuário(a))

Nota

O local de desenvolvedor(a) para esses arquivos está em https://gitlab.com/sane-project, mas os URLs dos arquivos usam md5sums incorporados. Por conveniência, os pacotes foram copiados para o local acima.

Dependências do SANE

Opcionais (Estruturas de Retaguarda)

Avahi-0.8, Cups-2.4.2, libjpeg-turbo-2.1.5.1, libtiff-4.5.0, libusb-1.0.26, v4l-utils-1.22.1, Net-SNMP, libieee1284, libgphoto2 e texlive-20220321 (ou install-tl-unx)

Opcionais (Estruturas de Interação Direta com o(a) Usuário(a))

um ambiente gráfico, GTK+-2.24.33 e Gimp-2.10.32

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/sane

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.26. 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 das Estrutura de Retaguarda do SANE

O processo de segundo plano do SANE deveria executar com o próprio grupo dele. Crie esse grupo emitindo os seguintes comandos como o(a) usuário(a) root:

groupadd -g 70 scanner

Nota

O 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. Portanto, o(a) usuário(a) construindo o pacote deveria ser adicionado(a) ao grupo scanner. 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.26, inclua a chave de configuração --enable-libusb_1_0. Instale as estruturas de retaguarda do SANE executando os seguintes comandos:

sg scanner -c "                  \
./configure --prefix=/usr        \
            --sysconfdir=/etc    \
            --localstatedir=/var \
            --with-group=scanner \
            --with-lockdir=/run/lock \
            --docdir=/usr/share/doc/sane-backends-1.0.32" &&
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.

Instalação das Estruturas do SANE de Interação Direta com o(a) Usuário(a)

O pacote de estruturas do SANE de interação direta com o(a) usuário(a) inclui as estruturas gráficas de interação direta com o(a) usuário(a) xscanimage e xcam, e uma estrutura de linha de comando de interação direta com o(a) usuário(a) scanadf. Você não precisa desse pacote se pretende usar uma das estruturas gráficas de interação direta com o(a) usuário(a) mais avançadas, como XSane-0.999. Para uma lista de pacotes de estruturas de interação direta com o(a) usuário(a), veja-se http://www.sane-project.org/sane-frontends.html.

Para instalar as estruturas do SANE de interação direta com o(a) usuário(a), use os seguintes comandos:

tar -xf ../sane-frontends-1.0.14.tar.gz &&
cd sane-frontends-1.0.14                &&

sed -i -e "/SANE_CAP_ALWAYS_SETTABLE/d" src/gtkglue.c &&
./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 -m644 doc/sane.png xscanimage-icon-48x48-2.png \
    /usr/share/sane

Se o GIMP foi vinculado na construção e você desejar que o GIMP use o xscanimage como um plugin de digitalização, emita o seguinte comando como o(a) usuário(a) root:

ln -v -s ../../../../bin/xscanimage /usr/lib/gimp/2.0/plug-ins

Nota

Se o plugin xscanimage estiver desabilitado no menu do GIMP, para a finalidade de habilitá-lo, "crie" uma imagem em branco usando o menu ou Ctrl-N. Depois disso, ele estará habilitado.

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.

--sysconfdir=/etc: Essa chave instala os arquivos de configuração em /etc/sane.d em vez de /usr/etc/sane.d.

--with-group=scanner: Esse parâmetro faz com que o diretório criado para os arquivos de travagem seja de titularidade de propriedade de grupo pelo grupo scanner, em vez do grupo padrão uucp.

exit: Esse comando é usado para sair do shell criado pelo comando su.

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) desejados(as) 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, abaixo):

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.

Configuração da Estrutura de Interação Direta com o(a) Usuário(a)

Se você usa um ambiente de área de trabalho, como Gnome ou KDE, você possivelmente deseje criar um arquivo xscanimage.desktop, de forma que o xscanimage apareça nos menus do painel. Como o(a) usuário(a) root:

mkdir -pv /usr/share/{applications,pixmaps}               &&

cat > /usr/share/applications/xscanimage.desktop << "EOF" &&
[Desktop Entry]
Encoding=UTF-8
Name=Digitalização - XScanImage
Comment=Adquirir imagens a partir de uma digitalizadora
Exec=xscanimage
Icon=xscanimage
Terminal=false
Type=Application
Categories=Application;Graphics
EOF

ln -svf ../sane/xscanimage-icon-48x48-2.png /usr/share/pixmaps/xscanimage.png
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

Estruturas de Retaguarda:
Aplicativos Instalados: gamma4scanimage, sane-config, saned, sane-find-scanner e scanimage
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.0.32
Estruturas de Interação Direta com o(a) Usuário(a):
Aplicativos Instalados: scanadf, xcam e xscanimage
Biblioteca Instalada: Plugin do GIMP incorporado ao xscanimage
Diretórios Instalados: Nenhum(a)

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

scanadf

é uma interface de linha de comando para controlar dispositivos de aquisição de imagens equipados com um alimentador automático de documentos (ADF)

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

xcam

é uma interface de câmera gráfica para interação direta com o(a) usuário(a) para SANE

xscanimage

é uma interface gráfica de usuário(a) para digitalização

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

XSane-0.999

Introdução ao XSane

XSane é outra estrutura de interação direta com o(a) usuário(a) para SANE-1.0.32. Ela tem recursos adicionais para melhorar a qualidade da imagem e facilidade de uso comparado com o xscanimage.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do XSane

Exigidas

GTK+-2.24.33 e SANE-1.0.32 (estruturas de retaguarda)

Opcionais

Little CMS-1.19 e Gimp-2.10.32

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/xsane

Instalação do XSane

Instale o XSane executando os seguintes comandos:

sed -i -e 's/png_ptr->jmpbuf/png_jmpbuf(png_ptr)/' src/xsane-save.c &&
./configure --prefix=/usr                                           &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make xsanedocdir=/usr/share/doc/xsane-0.999 install &&
ln -v -s ../../doc/xsane-0.999 /usr/share/sane/xsane/doc

Um navegador da tua escolha pode ser usado para conseguir ajuda remota, usando o seguinte comando, como o(a) usuário(a) root:

ln -v -s <navegador> /usr/bin/netscape

Nota

Certifique-se de substituir <navegador> pelo navegador da tua escolha em teu sistema.

Alternativamente, se a variável de ambiente BROWSER estiver configurada para o navegador que você quer usar, por exemplo, BROWSER="/usr/bin/firefox", na primeira vez que você executar o xsane, ele será registrado em ~/.sane/xsane/xsane.rc. Se desejar mudá-lo, edite esse arquivo, ou remova-o, e use as instruções acima, de forma que um novo seja criado.

Se o GIMP estiver instalado, emita o seguinte comando como o(a) usuário(a) root:

ln -v -s /usr/bin/xsane /usr/lib/gimp/2.0/plug-ins/

Explicações do Comando

ln -v -s ../../doc/xsane-0.999 /usr/share/sane/xsane/doc: Esse link simbólico é criado para garantir que qualquer aplicativo que procure pela documentação do XSane no local padrão a encontrará, pois a documentação está instalada em um local alternativo especificado no comando make install.

ln -v -s /usr/bin/xsane /usr/lib/gimp/2.0/plug-ins/: Isso cria um link no diretório plug-ins do GIMP abrangente a todo o sistema, de forma que os(as) usuários(as) consigam acessar o XSane diretamente a partir do GIMP. O GIMP precisa estar disponível antes de se construir o XSane para isso funcionar. Alternativamente, crie o link em ~/.gimp-2.0/plug-ins/ para fornecer acesso individual de usuário(a). man xsane para informações adicionais.

Conteúdo

Aplicativo Instalado: xsane
Bibliotecas Instaladas: Nenhum(a)
Diretório Instalado: /usr/share/doc/xsane-0.999 e /usr/share/sane/xsane

Descrições Curtas

xsane

é uma interface gráfica de usuário(a) para controlar um dispositivo de aquisição de imagem, como uma digitalizadora de mesa

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Transferências Adicionais

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/sgml-common

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 adequadamente usando uma plataforma LFS 11.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

sgml-common-0.6.3 e UnZip-6.0

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/sgml-dtd-3

Instalação do DocBook-3.1 SGML DTD

Nota

O fonte do pacote é distribuído no formato zip e exige o unzip. 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 adequadamente usando uma plataforma LFS 11.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

sgml-common-0.6.3 e UnZip-6.0

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/sgml-dtd

Instalação do DocBook-4.5 SGML DTD

Nota

O fonte do pacote é distribuído no formato zip e exige o unzip. 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do OpenSP

Exigidas

sgml-common-0.6.3

Opcionais

libnsl-2.0.0 e xmlto-0.0.28

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/opensp

Instalação do OpenSP

Instale o OpenSP executando os seguintes comandos:

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Transferência Adicional

Dependências do OpenJade

Exigidas

OpenSP-1.5.2

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/openjade

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 adequadamente usando uma plataforma LFS 11.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

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/docbook-dsssl

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 adequadamente usando uma plataforma LFS 11.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

Opcionais (dependências somente de tempo de execução)

SGMLSpm-1.1 (para conversão para man e texinfo) e Lynx-2.8.9rel.1 ou Links-2.28 ou W3m (para conversão para texto ASCII)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/docbook-utils

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.21 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 adequadamente usando uma plataforma LFS 11.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

libxml2-2.10.3, sgml-common-0.6.3 e UnZip-6.0

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/docbook-xml

Instalação do DocBook-4.5 XML DTD

Nota

O fonte do pacote é distribuído no formato zip e exige o unzip. 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 &&
chown -R root:root . &&
cp -v -af 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 adequadamente usando uma plataforma LFS 11.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

libxml2-2.10.3, sgml-common-0.6.3 e UnZip-6.0

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/docbook5-xml

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

Crie (ou atualize) e povoe o arquivo de catálogo /etc/xml/docbook-5.0 executando os seguintes comandos como o(a) usuário(a) root:

if [ ! -e /etc/xml/docbook-5.0 ]; then
    xmlcatalog --noout --create /etc/xml/docbook-5.0
fi &&

xmlcatalog --noout --add "public" \
  "-//OASIS//DTD DocBook XML 5.0//EN" \
  "file:///usr/share/xml/docbook/schema/dtd/5.0/docbook.dtd" \
  /etc/xml/docbook-5.0 &&
xmlcatalog --noout --add "system" \
  "http://www.oasis-open.org/docbook/xml/5.0/dtd/docbook.dtd" \
  "file:///usr/share/xml/docbook/schema/dtd/5.0/docbook.dtd" \
  /etc/xml/docbook-5.0 &&
xmlcatalog --noout --add "system" \
  "http://docbook.org/xml/5.0/dtd/docbook.dtd" \
  "file:///usr/share/xml/docbook/schema/dtd/5.0/docbook.dtd" \
  /etc/xml/docbook-5.0 &&

xmlcatalog --noout --add "uri" \
  "http://www.oasis-open.org/docbook/xml/5.0/rng/docbook.rng" \
  "file:///usr/share/xml/docbook/schema/rng/5.0/docbook.rng" \
  /etc/xml/docbook-5.0 &&
xmlcatalog --noout --add "uri" \
  "http://docbook.org/xml/5.0/rng/docbook.rng" \
  "file:///usr/share/xml/docbook/schema/rng/5.0/docbook.rng" \
  /etc/xml/docbook-5.0 &&
xmlcatalog --noout --add "uri" \
  "http://www.oasis-open.org/docbook/xml/5.0/rng/docbookxi.rng" \
  "file:///usr/share/xml/docbook/schema/rng/5.0/docbookxi.rng" \
  /etc/xml/docbook-5.0 &&
xmlcatalog --noout --add "uri" \
  "http://docbook.org/xml/5.0/rng/docbookxi.rng" \
  "file:///usr/share/xml/docbook/schema/rng/5.0/docbookxi.rng" \
  /etc/xml/docbook-5.0 &&
xmlcatalog --noout --add "uri" \
  "http://www.oasis-open.org/docbook/xml/5.0/rnc/docbook.rnc" \
  "file:///usr/share/xml/docbook/schema/rng/5.0/docbook.rnc" \
  /etc/xml/docbook-5.0 &&
xmlcatalog --noout --add "uri" \
  "http://docbook.org/xml/5.0/rng/docbook.rnc" \
  "file:///usr/share/xml/docbook/schema/rng/5.0/docbook.rnc" \
  /etc/xml/docbook-5.0 &&
xmlcatalog --noout --add "uri" \
  "http://www.oasis-open.org/docbook/xml/5.0/rnc/docbookxi.rnc" \
  "file:///usr/share/xml/docbook/schema/rng/5.0/docbookxi.rnc" \
  /etc/xml/docbook-5.0 &&
xmlcatalog --noout --add "uri" \
  "http://docbook.org/xml/5.0/rng/docbookxi.rnc" \
  "file:///usr/share/xml/docbook/schema/rng/5.0/docbookxi.rnc" \
  /etc/xml/docbook-5.0 &&

xmlcatalog --noout --add "uri" \
  "http://www.oasis-open.org/docbook/xml/5.0/xsd/docbook.xsd" \
  "file:///usr/share/xml/docbook/schema/xsd/5.0/docbook.xsd" \
  /etc/xml/docbook-5.0 &&
xmlcatalog --noout --add "uri" \
  "http://docbook.org/xml/5.0/xsd/docbook.xsd" \
  "file:///usr/share/xml/docbook/schema/xsd/5.0/docbook.xsd" \
  /etc/xml/docbook-5.0 &&
xmlcatalog --noout --add "uri" \
  "http://www.oasis-open.org/docbook/xml/5.0/xsd/docbookxi.xsd" \
  "file:///usr/share/xml/docbook/schema/xsd/5.0/docbookxi.xsd" \
  /etc/xml/docbook-5.0 &&
xmlcatalog --noout --add "uri" \
  "http://docbook.org/xml/5.0/xsd/docbookxi.xsd" \
  "file:///usr/share/xml/docbook/schema/xsd/5.0/docbookxi.xsd" \
  /etc/xml/docbook-5.0 &&
xmlcatalog --noout --add "uri" \
  "http://www.oasis-open.org/docbook/xml/5.0/xsd/xi.xsd" \
  "file:///usr/share/xml/docbook/schema/xsd/5.0/xi.xsd" \
  /etc/xml/docbook-5.0 &&
xmlcatalog --noout --add "uri" \
  "http://docbook.org/xml/5.0/xsd/xi.xsd" \
  "file:///usr/share/xml/docbook/schema/xsd/5.0/xi.xsd" \
  /etc/xml/docbook-5.0 &&
xmlcatalog --noout --add "uri" \
  "http://www.oasis-open.org/docbook/xml/5.0/xsd/xlink.xsd" \
  "file:///usr/share/xml/docbook/schema/xsd/5.0/xlink.xsd" \
  /etc/xml/docbook-5.0 &&
xmlcatalog --noout --add "uri" \
  "http://docbook.org/xml/5.0/xsd/xlink.xsd" \
  "file:///usr/share/xml/docbook/schema/xsd/5.0/xlink.xsd" \
  /etc/xml/docbook-5.0 &&
xmlcatalog --noout --add "uri" \
  "http://www.oasis-open.org/docbook/xml/5.0/xsd/xml.xsd" \
  "file:///usr/share/xml/docbook/schema/xsd/5.0/xml.xsd" \
  /etc/xml/docbook-5.0 &&
xmlcatalog --noout --add "uri" \
  "http://docbook.org/xml/5.0/xsd/xml.xsd" \
  "file:///usr/share/xml/docbook/schema/xsd/5.0/xml.xsd" \
  /etc/xml/docbook-5.0 &&

xmlcatalog --noout --add "uri" \
  "http://www.oasis-open.org/docbook/xml/5.0/sch/docbook.sch" \
  "file:///usr/share/xml/docbook/schema/sch/5.0/docbook.sch" \
  /etc/xml/docbook-5.0 &&
xmlcatalog --noout --add "uri" \
  "http://docbook.org/xml/5.0/sch/docbook.sch" \
  "file:///usr/share/xml/docbook/schema/sch/5.0/docbook.sch" \
  /etc/xml/docbook-5.0

Enquanto novamente 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
    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-xml-5.1

Introdução ao DocBook XML Schemas 5.1

O pacote DocBook XML Schemas-5.1 contém arquivos de esquema e regras Schematron para verificação de arquivos de dados XML em relação ao conjunto de regras do DocBook. Eles 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://docbook.org/xml/5.1/docbook-v5.1-os.zip

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: d8bea8ddfc5743578a31cb18f9ae1f5a

  • Tamanho da transferência: 752 KB

  • Espaço em disco estimado exigido: 8,5 MB

  • Tempo de construção estimado: menos que 0,1 UPC

Dependências do DocBook XML Schemas 5.1

Exigidas

libxml2-2.10.3, sgml-common-0.6.3 e UnZip-6.0

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/docbook51-xml

Instalação do DocBook XML Schemas 5.1

Nota

O fonte do pacote é distribuído no formato zip e exige o unzip. 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 Schemas executando os seguintes comandos como o(a) usuário(a) root:

install -vdm755 /usr/share/xml/docbook/schema/{rng,sch}/5.1         &&
install -m644   schemas/rng/* /usr/share/xml/docbook/schema/rng/5.1 &&
install -m644   schemas/sch/* /usr/share/xml/docbook/schema/sch/5.1 &&
install -m755   tools/db4-entities.pl /usr/bin                      &&
install -vdm755 /usr/share/xml/docbook/stylesheet/docbook5          &&
install -m644   tools/db4-upgrade.xsl \
                /usr/share/xml/docbook/stylesheet/docbook5

Crie (ou atualize) e povoe o arquivo de catálogo /etc/xml/docbook-5.1 executando os seguintes comandos como o(a) usuário(a) root:

if [ ! -e /etc/xml/docbook-5.1 ]; then
  xmlcatalog --noout --create /etc/xml/docbook-5.1
fi &&

xmlcatalog --noout --add "uri" \
  "http://www.oasis-open.org/docbook/xml/5.1/rng/docbook.rng" \
  "file:///usr/share/xml/docbook/schema/rng/5.1/docbook.rng" \
  /etc/xml/docbook-5.1 &&
xmlcatalog --noout --add "uri" \
  "http://docbook.org/xml/5.1/rng/docbook.rng" \
  "file:///usr/share/xml/docbook/schema/rng/5.1/docbook.rng" \
  /etc/xml/docbook-5.1 &&
xmlcatalog --noout --add "uri" \
  "http://www.oasis-open.org/docbook/xml/5.1/rng/docbookxi.rng" \
  "file:///usr/share/xml/docbook/schema/rng/5.1/docbookxi.rng" \
  /etc/xml/docbook-5.1 &&
xmlcatalog --noout --add "uri" \
  "http://docbook.org/xml/5.1/rng/docbookxi.rng" \
  "file:///usr/share/xml/docbook/schema/rng/5.1/docbookxi.rng" \
  /etc/xml/docbook-5.1 &&
xmlcatalog --noout --add "uri" \
  "http://www.oasis-open.org/docbook/xml/5.1/rnc/docbook.rnc" \
  "file:///usr/share/xml/docbook/schema/rng/5.1/docbook.rnc" \
  /etc/xml/docbook-5.1 &&
xmlcatalog --noout --add "uri" \
  "http://docbook.org/xml/5.1/rng/docbook.rnc" \
  "file:///usr/share/xml/docbook/schema/rng/5.1/docbook.rnc" \
  /etc/xml/docbook-5.1 &&
xmlcatalog --noout --add "uri" \
  "http://www.oasis-open.org/docbook/xml/5.1/rnc/docbookxi.rnc" \
  "file:///usr/share/xml/docbook/schema/rng/5.1/docbookxi.rnc" \
  /etc/xml/docbook-5.1 &&
xmlcatalog --noout --add "uri" \
  "http://docbook.org/xml/5.1/rng/docbookxi.rnc" \
  "file:///usr/share/xml/docbook/schema/rng/5.1/docbookxi.rnc" \
  /etc/xml/docbook-5.1 &&

xmlcatalog --noout --add "uri" \
  "http://www.oasis-open.org/docbook/xml/5.1/sch/docbook.sch" \
  "file:///usr/share/xml/docbook/schema/sch/5.1/docbook.sch" \
  /etc/xml/docbook-5.1 &&
xmlcatalog --noout --add "uri" \
  "http://docbook.org/xml/5.1/sch/docbook.sch" \
  "file:///usr/share/xml/docbook/schema/sch/5.1/docbook.sch" \
  /etc/xml/docbook-5.1

Enquanto novamente como o(a) usuário(a) root, crie os catálogos individuais:

xmlcatalog --noout --create /usr/share/xml/docbook/schema/rng/5.1/catalog.xml &&

xmlcatalog --noout --add "uri" \
  "http://docbook.org/xml/5.1/schemas/rng/docbook.schemas/rng" \
  "docbook.schemas/rng" /usr/share/xml/docbook/schema/rng/5.1/catalog.xml &&
xmlcatalog --noout --add "uri" \
  "http://www.oasis-open.org/docbook/xml/5.1/schemas/rng/docbook.schemas/rng" \
  "docbook.schemas/rng" /usr/share/xml/docbook/schema/rng/5.1/catalog.xml &&
xmlcatalog --noout --add "uri" \
  "http://docbook.org/xml/5.1/schemas/rng/docbookxi.schemas/rng" \
  "docbookxi.schemas/rng" /usr/share/xml/docbook/schema/rng/5.1/catalog.xml &&
xmlcatalog --noout --add "uri" \
  "http://www.oasis-open.org/docbook/xml/5.1/schemas/rng/docbookxi.schemas/rng" \
  "docbookxi.schemas/rng" /usr/share/xml/docbook/schema/rng/5.1/catalog.xml &&
xmlcatalog --noout --add "uri" \
  "http://docbook.org/xml/5.1/schemas/rng/docbook.rnc" \
  "docbook.rnc" /usr/share/xml/docbook/schema/rng/5.1/catalog.xml &&
xmlcatalog --noout --add "uri" \
  "http://www.oasis-open.org/docbook/xml/5.1/schemas/rng/docbook.rnc" \
  "docbook.rnc" /usr/share/xml/docbook/schema/rng/5.1/catalog.xml &&
xmlcatalog --noout --add "uri" \
  "http://docbook.org/xml/5.1/schemas/rng/docbookxi.rnc" \
  "docbookxi.rnc" /usr/share/xml/docbook/schema/rng/5.1/catalog.xml &&
xmlcatalog --noout --add "uri" \
  "http://www.oasis-open.org/docbook/xml/5.1/schemas/rng/docbookxi.rnc" \
  "docbookxi.rnc" /usr/share/xml/docbook/schema/rng/5.1/catalog.xml
xmlcatalog --noout --create /usr/share/xml/docbook/schema/sch/5.1/catalog.xml &&

xmlcatalog --noout --add "uri" \
  "http://docbook.org/xml/5.1/schemas/sch/docbook.schemas/sch" \
  "docbook.schemas/sch" /usr/share/xml/docbook/schema/sch/5.1/catalog.xml &&
xmlcatalog --noout --add "uri" \
  "http://www.oasis-open.org/docbook/xml/5.1/schemas/sch/docbook.schemas/sch" \
  "docbook.schemas/sch" /usr/share/xml/docbook/schema/sch/5.1/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
  xmlcatalog --noout --create /etc/xml/catalog
fi &&
xmlcatalog --noout --add "delegatePublic" \
  "-//OASIS//DTD DocBook XML 5.1//EN" \
  "file:///usr/share/xml/docbook/schema/dtd/5.1/catalog.xml" \
  /etc/xml/catalog &&
xmlcatalog --noout --add "delegateSystem" \
  "http://docbook.org/xml/5.1/dtd/" \
  "file:///usr/share/xml/docbook/schema/dtd/5.1/catalog.xml" \
  /etc/xml/catalog &&
xmlcatalog --noout --add "delegateURI" \
  "http://docbook.org/xml/5.1/dtd/" \
  "file:///usr/share/xml/docbook/schema/dtd/5.1/catalog.xml" \
  /etc/xml/catalog &&
xmlcatalog --noout --add "delegateURI" \
  "http://docbook.org/xml/5.1/rng/"  \
  "file:///usr/share/xml/docbook/schema/rng/5.1/catalog.xml" \
  /etc/xml/catalog &&
xmlcatalog --noout --add "delegateURI" \
  "http://docbook.org/xml/5.1/sch/"  \
  "file:///usr/share/xml/docbook/schema/sch/5.1/catalog.xml" \
  /etc/xml/catalog &&
xmlcatalog --noout --add "delegateURI" \
  "http://docbook.org/xml/5.1/xsd/"  \
  "file:///usr/share/xml/docbook/schema/xsd/5.1/catalog.xml" \
  /etc/xml/catalog

Configurando os Esquemas 5.1 de XML do DocBook

Arquivos de Configuração

/etc/xml/catalog e /etc/xml/docbook-5.1

Conteúdo

Aplicativos Instalados: db4-entities.pl
Arquivos Instalados: Arquivos RNC, RNG, SCH e XSL
Diretórios Instalados: /etc/xml, /usr/share/xml/docbook/stylesheets e /usr/share/xml/docbook/schema/{rng,sch}/5.1

Descrições Curtas

db4-entities.pl

é um conjunto de comandos sequenciais para converter arquivos 4.x do DocBook para 5.1 do DocBook

Arquivos RNC, RNG e SCH

contém as definições de esquema 5.1 RelaxNG, RelaxNG Compact e Schematron do Docbook

db4-upgrade.xsl

é uma folha de estilo XSL para auxiliar na conversão de arquivos 4.x do DocBook para 5.1 do DocBook

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 adequadamente usando uma plataforma LFS 11.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.13 (para produzir documentos do webhelp), libxslt-1.1.37 (ou qualquer outro processador de XSLT), para processar documentos do Docbook - os módulos do Python2 libxml2 e libxslt podem ser usados; Python-2.7.18 (em tempo de execução), Ruby-3.2.1 (para utilizar as folhas de estilo de epub), Zip-3.0 (para produzir documentos epub3) e Saxon6 e Xerces2 Java (usado com o apache-ant-1.10.13 para produzir documentos do webhelp)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/docbook-xsl

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

Nota

Se você estiver instalando a versão atual do docbook-xsl-nons sobre uma versão anterior do docbook-xsl, então remova as entradas reescritas antigas no catálogo como o(a) usuário(a) root:

sed -i '/rewrite/d' /etc/xml/catalog

Crie (ou anexe) e povoe o arquivo de catálogo XML usando os seguintes comandos como o(a) usuário(a) root:

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" \
           "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" \
           "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" \
           "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" \
           "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

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 adequadamente usando uma plataforma LFS 11.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

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/itstool

Instalação do itstool

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.28

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://releases.pagure.org/xmlto/xmlto-0.0.28.tar.bz2

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 93bab48d446c826399d130d959fe676f

  • Tamanho da transferência: 128 KB

  • Espaço em disco estimado exigido: 1,5 MB (com os 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.37

Opcionais (para pós-processamento da estrutura de retaguarda de DVI, PDF e PostScript)

fop-2.8, dblatex e PassiveTeX

Opcionais (para pós-processamento do estrutura de retaguarda de texto)

Um de Links-2.28, Lynx-2.8.9rel.1, W3m ou ELinks

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/xmlto

Instalação do xmlto

Instale o xmlto executando os seguintes comandos:

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 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; nesse caso, remova-a.

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 adequadamente usando uma plataforma LFS 11.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.7.1, em vez de Enscript, para converter texto codificado em UTF-8 para PostScript.

Informação do Pacote

Dependências do Enscript

Opcionais

texlive-20220321 (ou install-tl-unx)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/Enscript

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-20220321 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-0.1.8

Introdução ao ePDFView

ePDFView é um visualizador de documentos PDF leve e independente que usa as bibliotecas Poppler e GTK+. É um bom substituto para o Evince, pois não depende das bibliotecas do GNOME.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Transferências Adicionais

Dependências do ePDFView

Exigidas

GTK+-2.24.33 e Poppler-23.02.0

Recomendadas (principalmente para ambientes de área de trabalho)
Opcionais

Cups-2.4.2

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/epdfview

Instalação do ePDFView

Instale o ePDFView executando os seguintes comandos:

patch -Np1 -i ../epdfview-0.1.8-fixes-2.patch &&
./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

Para usuários(as) de Ambiente de Área de Trabalho, instruções adicionais (opcionais) são necessárias para exibir corretamente epdfview.desktop no menu. Como usuário(a) root:

for size in 24 32 48; do
  ln -svf ../../../../epdfview/pixmaps/icon_epdfview-$size.png \
          /usr/share/icons/hicolor/${size}x${size}/apps
done &&
unset size &&

update-desktop-database &&
gtk-update-icon-cache -t -f --include-image-data /usr/share/icons/hicolor

Explicações do Comando

patch -Np1 -i ../epdfview-0.1.8-fixes-2.patch O remendo faz quatro coisas: corrige a compilação com glib-2.32 ou superior; corrige o vermelho aparecendo como azul com versões recentes do poppler; permite que o aplicativo compile quando Cups-2.4.2 tenha sido instalado; e corrige a exibição de imagens png incorporadas.

Conteúdo

Aplicativo Instalado: epdfview
Bibliotecas Instaladas: Nenhum(a)
Diretório Instalado: /usr/share/epdfview

Descrições Curtas

epdfview

é um aplicativo Gtk+-2 para visualizar documentos PDF

fop-2.8

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://archive.apache.org/dist/xmlgraphics/fop/source/fop-2.8-src.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 610bfd7797755d744b2c4f61422478cf

  • Tamanho da transferência: 22 MB

  • Espaço em disco estimado exigido: 517 MB (incluindo arquivos baixados para o diretório do(a) usuário(a))

  • Tempo de construção estimado: 0,6 UPC

Transferências Adicionais

Transferências Adicionais Exigidas:

Pacotes recomendados

Dependências do fop

Exigidas

apache-ant-1.10.13

Opcionais

um ambiente gráfico (para executar testes), Ferramentas de E/S de Imagens JAI e JEuclid

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/fop

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.8.6-bin.tar.gz -C /tmp

Instalando Componentes fop

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

O arquivo build.xml chama uma versão antiga dos componentes PDFBox que não mais estão disponíveis. Copie os componentes atualizados do PDFBox para a árvore do fonte:

cp ../{pdf,font}box-2.0.27.jar fop/lib

Compile o fop executando os seguintes comandos:

cd fop &&

LC_ALL=en_US.UTF-8                     \
PATH=$PATH:/tmp/apache-maven-3.8.6/bin \
ant all 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.8 &&
cp -vR build conf examples fop* javadocs lib /opt/fop-2.8 &&
chmod a+x /opt/fop-2.8/fop                                &&
ln -v -sfn fop-2.8 /opt/fop

A última coisa a fazer é limpar o que fizemos:

rm -rf /tmp/apache-maven-3.8.6

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.8 /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.8

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.21.1

Introdução ao MuPDF

MuPDF é um visualizador leve de PDF e XPS.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Dependências do MuPDF

Exigidas

GLU-9.0.2 e Bibliotecas do Xorg

Recomendadas
Opcionais

xdg-utils-1.1.3 (tempo de execução), jbig2dec e MuJS

Exigidas (tempo de execução)

um ambiente gráfico

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/mupdf

Instalação do MuPDF

Primeiro, corrija o Makefile para se vincular corretamente com a biblioteca compartilhada:

sed -i '/MU.*_EXE. :/{
        s/\(.(MUPDF_LIB)\)\(.*\)$/\2 | \1/
        N
        s/$/ -lmupdf -L$(OUT)/
        }' Makefile

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 # não usada sem HAVE_JPEGXR
USE_SYSTEM_LCMS2 := no # necessária bifurcação lcms2-art
USE_SYSTEM_LIBJPEG := yes
USE_SYSTEM_MUJS := no # construção precisa de fonte de qualquer maneira
USE_SYSTEM_OPENJPEG := yes
USE_SYSTEM_ZLIB := yes
USE_SYSTEM_GLUT := no # necessária bifurcação freeglut2-art
USE_SYSTEM_CURL := yes
USE_SYSTEM_GUMBO := no
EOF

export XCFLAGS=-fPIC                               &&
make build=release shared=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.21.1 \
     install                            &&

chmod 755 /usr/lib/libmupdf.so          &&
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.21.1

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.7.1

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://downloads.sourceforge.net/paps/paps-0.7.1.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: b058bcc7d958fb53408942088cc1f365

  • Tamanho da transferência: 140 KB

  • Espaço em disco estimado exigido: 1 MB

  • Tempo de construção estimado: menos que 0,1 UPC

Dependências do paps

Exigidas

Pango-1.50.12

Opcionais

Doxygen-1.9.6

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/Paps

Instalação do paps

Instale o paps 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

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-20220321, 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-2.85, biber-2.18 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/2022.

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

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
# Inicia configuração do texlive
TEXLIVE_PREFIX=/opt/texlive/2022
export TEXLIVE_PREFIX

pathappend \$TEXLIVE_PREFIX/texmf-dist/doc/man  MANPATH
pathappend \$TEXLIVE_PREFIX/texmf-dist/doc/info INFOPATH
pathappend \$TEXLIVE_PREFIX/bin/$TEXARCH

# Termina configuração do texlive
EOF

unset TEXARCH

Nota

Os caminhos padrão de MANPATH e INFOPATH são especificados acima para garantir que sejam incluídos. Se eles já estiverem configurados no procedimento do conjunto de comandos sequenciais de inicialização, a função pathappend garantirá que as duplicatas sejam removidas, de forma que incluí-las aqui não causará danos.

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-20220321 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, ConTeXt, 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 2022/.

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 LaTeX2e, ConTeXt, etc), ou você deseja usar o tlmgr para obter atualizações enquanto essa versão for suportada (tipicamente, até abril 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.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.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,6 MB

  • Espaço em disco estimado exigido: 118 MB para TeX e latex básicos; 7,1 GB se tudo for 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)

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.

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/tl-installer

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.

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 esquema completo de instalação exigirá cerca de 4,9 gigabytes de espaço em disco. O tempo para concluir a transferência dependerá da velocidade da tua conexão de Internet e do número de pacotes selecionados.

Foi estabelecido pelo Debian que os conjuntos de comandos sequenciais do python em latex-make funcionarão com python3, de forma que atualize-os para invocar isso executando o seguinte comando como o(a) usuário(a) root:

for F in /opt/texlive/2022/texmf-dist/scripts/latex-make/*.py ; do
  test -f $F && sed -i 's%/usr/bin/env python%/usr/bin/python3%' $F || true
done

Explicações do Comando

test -f $F && sed ...: em uma instalação pequena esses arquivos podem não estar presentes, de forma que teste se eles existem e se não retornam 'true' para evitar qualquer erro se esse comando tiver sido copiado em um de teus próprios conjuntos de comandos sequenciais de instalação.

./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 2022/texmf-dist/. Usar texdoc pdflatex (substitua pdflatex pelo nome do comando) também possivelmente seja útil

texlive-20220321-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 Chemntiz, 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/2022 ou systems/texlive/2022 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

Transferências Adicionais Exigidas

Grande parte 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 fornecidos por uma instalação completa da versão binária; não existe uma maneira realista de restringir quais partes serão instaladas.

Devido ao tamanho desse pacote, é improvável que seja espelhado por espelhos do BLFS. Em caso de dificuldade, vá até http://www.ctan.org/mirrors/ para encontrar um espelho mais acessível.

A partir do ano de 2019, a base de dados tlpdb dos pacotes do texlive não mais é instalada com o fonte. Mas, o 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

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/texlive

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, biber, dvisvgm ou xindy) tenham sido instalados, você precisará reinstalá-los, bem como corrigir teu PATH para $TEXLIVE_PREFIX.

As bibliotecas compartilhadas serão instaladas em um diretório do texlive. Como o(a) usuário(a) root, adicione-o ao teu /etc/ld.so.conf:

cat >> /etc/ld.so.conf << EOF
# Inicia adição do texlive

$TEXLIVE_PREFIX/lib

# Termina adição do texlive
EOF

Nota

Uma instalação bem-sucedida requer 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.

Agora, como um(a) usuário(a) normal:

export TEXARCH=$(uname -m | sed -e 's/i.86/i386/' -e 's/$/-linux/') &&

mkdir texlive-build &&
cd    texlive-build &&

../configure                                      \
    --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 check.

Agora, como o(a) usuário(a) root:

make install-strip &&
/sbin/ldconfig     &&
make texlinks      &&
mkdir -pv                                $TEXLIVE_PREFIX/tlpkg/TeXLive/ &&
install -v -m644 ../texk/tests/TeXLive/* $TEXLIVE_PREFIX/tlpkg/TeXLive/ &&
tar -xf ../../texlive-20220325-tlpdb-full.tar.gz -C $TEXLIVE_PREFIX/tlpkg

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-20220321-texmf.tar.xz -C $TEXLIVE_PREFIX --strip-components=1

Foi estabelecido pelo Debian que os conjuntos de comandos sequenciais do python em latex-make funcionarão com o python3, de forma que atualize-os para invocar isso executando o seguinte comando como o(a) usuário(a) root:

for F in $TEXLIVE_PREFIX/texmf-dist/scripts/latex-make/*.py ; do
  sed -i 's%/usr/bin/env python%/usr/bin/python3%' $F
done

Ainda como o(a) usuário(a) root, inicialize o novo sistema (os comandos fmtutil-sys --all e mtxrun --generate produzirão um monte de saída gerada):

mktexlsr &&
fmtutil-sys --all &&
mtxrun --generate

Agora você pode prosseguir para asymptote-2.85, biber-2.18, dvisvgm-3.0.3 e (ou) xindy-2.5.1 se desejar instalá-los.

Explicações do Comando

--prefix=, --bindir=, --datarootdir=, --infodir=, --mandir= ... : 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.

--without-x: use isso se você não tiver o Xorg instalado.

/sbin/ldconfig: isso tem que ser executado aqui, de forma que make texlinks possa usar kpsewhich.

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-20220321-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.

mtxrun --generate: Isso inicializa o sistema ConTeXt.

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 2022/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-2.85

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 tipograficamente compostos com o 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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://downloads.sourceforge.net/asymptote/asymptote-2.85.src.tgz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 063786b8914f718d3bccf9d9168458f1

  • Tamanho da transferência: 15 MB

  • Espaço em disco estimado exigido: 222 MB (55 MB instalado, com todas as dependências que estão dentro do BLFS)

  • Tempo de construção estimado: 1,3 UPC (usando paralelismo = 4)

Dependências do asymptote

Exigidas

ghostscript-10.00.0 e texlive-20220321

Recomendadas
Recomendadas em tempo de execução
Opcionais

fftw-3.3.10, Gsl-2.7.1, libsigsegv-2.14, ambos Boost-1.81.0 e rapidjson para usar LSP, que pode ser usada com emacs e eigen

Opcionais (em tempo de execução)

ImageMagick-7.1.0-61 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 do Qt-5.15.8) para usar xasy.

Observações de Usuário(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=, --infodir=, --mandir= ... : 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 repidjson 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 serão instalados nos diretórios do texlive em vez de criar um diretório texmf-local para eles.

Conteúdo

Aplicativos Instalados: asy, xasy
Bibliotecas Instaladas: Nenhum(a)
Diretório Instalado: $TEXLIVE_PREFIX/texmf-dist/asymptote, $TEXLIVE_PREFIX/doc/asymptote, $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.18

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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://github.com/plk/biber/archive/v2.18/biber-2.18.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 5a503052bf88aff12dcef7a2d8a8e4f2

  • Tamanho da transferência: 1,5 MB

  • Espaço em disco estimado exigido: 14 MB

  • 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/2022 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.

Transferência Adicional Exigida

Dependências do Biber

Exigidas

autovivification-0.18 Business-ISBN-3.007 Business-ISMN-1.202 Business-ISSN-1.005 Class-Accessor-0.51 Data-Compare-1.27 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.03 File-Slurper-0.014 IO-String-1.08 IPC-Run3-0.048 Lingua-Translit-0.29 List-AllUtils-0.19 List-MoreUtils-0.430 Log-Log4perl-1.57 LWP-Protocol-https-6.10 Module-Build-0.4232 Parse-RecDescent-1.967015 PerlIO-utf8_strict-0.010 Regexp-Common-2017060201 Sort-Key-1.33 Text-BibTeX-0.89 Text-CSV-2.02 Text-Roman-3.5 Unicode-Collate-1.31 Unicode-LineBreak-2019.001 XML-LibXML-Simple-1.01 XML-LibXSLT-2.002001 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.4232, 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.

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/biber

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

A versão correspondente do biblatex é um projeto separado. O tarball é pré empacotado para desempacotar no diretório texmf-dist. Instale-o como o(a) usuário(a) root:

tar -C $TEXLIVE_PREFIX/texmf-dist -xf ../biblatex-3.18b.tds.tgz

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.0.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 adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://github.com/mgieseki/dvisvgm/releases/download/3.0.3/dvisvgm-3.0.3.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: e3de28609b74a61ea496c85b3e0f0ef1

  • Tamanho da transferência: 2,9 MB

  • Espaço em disco estimado exigido: 310 MB (44 MB instalado; adicionar 962 MB para os testes)

  • Tempo de construção estimado: 0,8 UPC (adicionar 0,6 UPC para os testes, ambos usando paralelismo=4)

Dependências do dvisvgm

Exigidas

Brotli-1.0.9, ghostscript-10.00.0 e Potrace-1.16

Recomendadas
Opcionais

asciidoc-10.2.0 com xmlto-0.0.28 e libxslt-1.1.37 (vejam-se as explicações do comando), dblatex (com o acima) e xxHash (a versão atual está incluída no tarball)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/dvisvgm

Instalação do dvisvgm

Para habilitar que o sistema de construção se vincule a libkpathsea.so, como o(a) usuário(a) root, crie um link simbólico a partir de /usr/lib:

ln -svf $TEXLIVE_PREFIX/lib/libkpathsea.so /usr/lib

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

ln -svf $TEXLIVE_PREFIX/lib/libkpathsea.so /usr/lib: Sem isso, o aplicativo não se vinculará corretamente,

--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 adequadamente usando uma plataforma LFS 11.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-20220321

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/xindy

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=, --infodir=, --mandir= ... : 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-20220321 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-2023 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)

Contents 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

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

  • AAlib:
  • AbiWord:
  • AccountsService:
  • acpid:
  • adwaita-icon-theme:
  • alabaster:
  • Algorithm::Diff:
  • Alien::Build:
  • Alien::Build::Plugin::Download::GitLab:
  • Alien::Libxml2:
  • alsa-firmware:
  • alsa-lib:
  • alsa-oss:
  • alsa-plugins:
  • alsa-tools:
  • alsa-utils:
  • amtk:
  • Apache:
  • Apache Ant:
  • Apr:
  • Apr-Util:
  • Archive::Zip:
  • Ark:
  • asciidoc:
  • asciidoctor:
  • Aspell:
  • asymptote:
  • at:
  • at-spi2-core:
  • Atkmm:
  • attrs:
  • Audacious:
  • AudioFile:
  • Autoconf213:
  • Autofs:
  • autovivification:
  • Avahi:
  • B::COW:
  • B::Hooks::EndOfScope:
  • Babel:
  • Babl:
  • Balsa:
  • Baobab:
  • Base de Dados Berkeley:
  • Biber:
  • BIND:
  • Utilitários BIND:
  • Unidades Systemd do BLFS:
  • 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:
  • cbindgen:
  • CDParanoia:
  • Cdrdao:
  • Cdrtools:
  • chardet:
  • charset-normalizer:
  • Cheese:
  • cifs-utils:
  • Class::Accessor:
  • Class::Data::Inheritable:
  • Class::Inspector:
  • Class::Singleton:
  • Class:Tiny:
  • Clisp:
  • Clone:
  • clucene:
  • Clutter:
  • clutter-gst:
  • clutter-gtk:
  • CMake:
  • Cogl:
  • 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-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:
  • DHCP:
  • 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:
  • DTD e Esquemas 5.0 de XML do DocBook:
  • Esquemas 5.1 de XML do DocBook:
  • docutils:
  • dos2unix:
  • ferramentas, sistemas de arquivos, dos:
  • double-conversion:
  • Dovecot:
  • Doxygen:
  • doxypypy:
  • doxyqml:
  • duktape:
  • dvd+rw-tools:
  • dvisvgm:
  • Ed:
  • editables:
  • efibootmgr:
  • efivar:
  • 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::Find::Rule:
  • File::Listing:
  • File-Roller:
  • File::ShareDir:
  • File::ShareDir::Install:
  • File::Slurper:
  • File::Which:
  • Firefox:
  • FLAC:
  • flit_core:
  • FLTK:
  • Fluxbox:
  • Fontconfig:
  • FontForge:
  • fop:
  • Freeglut:
  • FreeType:
  • frei0r:
  • FriBidi:
  • Fuse 3:
  • Garcon:
  • Gavl:
  • GC:
  • GCC-12.2.0:
  • GConf:
  • Gcr:
  • Gcr:
  • GDB:
  • gdk-pixbuf:
  • gdk-pixbuf-xlib:
  • GDM:
  • Gedit:
  • Gegl:
  • GeoClue:
  • geocode-glib:
  • gexiv2:
  • Ghostscript:
  • gi-docgen:
  • giflib:
  • Gimp:
  • Git:
  • Gjs:
  • GLEW:
  • glib-networking:
  • GLib2:
  • GLibmm:
  • GLM:
  • GLU:
  • GMime 3:
  • gnome-autoar:
  • gnome-backgrounds:
  • gnome-bluetooth:
  • gnome-calculator:
  • gnome-color-manager:
  • gnome-control-center:
  • gnome-desktop:
  • gnome-disk-utility:
  • gnome-icon-theme:
  • gnome-icon-theme-extras:
  • gnome-icon-theme-symbolic:
  • gnome-keyring:
  • gnome-logs:
  • 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-video-effects:
  • gnome-weather:
  • Gnumeric:
  • GnuPG:
  • GnuTLS:
  • gobject-introspection:
  • GOffice:
  • Gparted:
  • GPGME:
  • GPicView:
  • GPM:
  • gptfdisk:
  • grantlee:
  • graphene:
  • Graphite2:
  • Graphviz:
  • Grilo:
  • grub-efi:
  • gsettings-desktop-schemas:
  • Gsl:
  • gsound:
  • gspell:
  • gst-libav:
  • gst-plugins-bad:
  • gst-plugins-base:
  • gst-plugins-good:
  • gst-plugins-ugly:
  • gstreamer:
  • gstreamer-vaapi:
  • Motores do GTK:
  • GTK+2:
  • GTK+3:
  • GTK-Doc:
  • gtk-vnc:
  • GTK-4:
  • Gtkmm:
  • gtksourceview:
  • gtksourceview4:
  • gtksourceview5:
  • Gucharmap:
  • Guile:
  • Gutenprint:
  • Gvfs:
  • Gwenview:
  • HarfBuzz:
  • hatchling:
  • hatch_vcs:
  • Hdparm:
  • Heirloom mailx:
  • HexChat:
  • Hicolor-icon-theme:
  • Highlight:
  • HTML::Parser:
  • HTML::Tagset:
  • HTTP::Cookies:
  • HTTP::Daemon:
  • HTTP::Date:
  • HTTP::Message:
  • HTTP::Negotiate:
  • ibus:
  • icewm:
  • Icon-naming-utils:
  • ICU:
  • id3lib:
  • idna:
  • ImageMagick:
  • imagesize:
  • imlib2:
  • Importer:
  • iniconfig:
  • inih:
  • Inkscape:
  • install-tl-unx:
  • Intel-gmmlib:
  • intel-media-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:
  • js102:
  • JSON:
  • JSON-C:
  • JSON-GLib:
  • K3b:
  • Kate:
  • kcolorpicker:
  • KDE Frameworks:
  • Plasma 5 do KDE:
  • Kdenlive:
  • kdsoap:
  • keybinder2:
  • keybinder-3.0:
  • keyutils:
  • khelpcenter:
  • kimageannotator:
  • kio-extras:
  • KMix:
  • Konsole:
  • kuserfeedback:
  • kwave:
  • LAME:
  • ldns:
  • Liba52:
  • libadwaita:
  • libaio:
  • Libao:
  • libarchive:
  • libass:
  • libassuan:
  • libatasmart:
  • libatomic_ops:
  • libblockdev:
  • libburn:
  • libbytesize:
  • libcairomm-1.0:
  • libcanberra:
  • libcap:
  • libcddb:
  • libcdio:
  • libchamplain:
  • libcloudproviders:
  • libdaemon:
  • libdazzle:
  • libdbusmenu-qt:
  • libdiscid:
  • libdrm:
  • Libdv:
  • libdvdcss:
  • Libdvdnav:
  • Libdvdread:
  • libepoxy:
  • Fontes Liberation:
  • libevdev:
  • libevent:
  • libexif:
  • libfm:
  • libfm-extra:
  • libgcrypt:
  • libgdata:
  • libgee:
  • Libglade:
  • libgpg-error:
  • libgrss:
  • libgsf:
  • libgtop:
  • libgudev:
  • libgusb:
  • libgweather:
  • libgxps:
  • libhandy1:
  • libical:
  • libidn:
  • libidn2:
  • libinput:
  • libiodbc:
  • libisoburn:
  • libisofs:
  • libjpeg-turbo:
  • libkcddb:
  • libkdcraw:
  • libkexiv2:
  • libksba:
  • liblinear:
  • Libmad:
  • libmbim:
  • Libmng:
  • libmnl:
  • libmpeg2:
  • libmusicbrainz:
  • libmusicbrainz:
  • libmypaint:
  • libndp:
  • libnl:
  • libnma:
  • libnotify:
  • libnsl:
  • biblioteca oauth:
  • Libogg:
  • libpaper:
  • libpcap:
  • libpeas:
  • libpng:
  • libportal:
  • libpsl:
  • libptytty:
  • biblioteca pwquality:
  • libqalculate:
  • libqmi:
  • libqrencode:
  • libquicktime:
  • libraw:
  • LibreOffice:
  • Librep:
  • librsvg:
  • libsamplerate:
  • libseccomp:
  • libsecret:
  • libshumate:
  • libsigc++:
  • libsigsegv:
  • libslirp:
  • libsndfile:
  • libsoup:
  • libsoup3:
  • libspiro:
  • libssh2:
  • libstatgrab:
  • libtasn1:
  • Libtheora:
  • libtiff:
  • libtirpc:
  • libunique:
  • libunistring:
  • libunwind:
  • liburcu:
  • libusb:
  • libuv:
  • libva:
  • libvdpau:
  • libvdpau-va-gl:
  • Libvorbis:
  • libvpx:
  • libwacom:
  • libwebp:
  • libwnck 2:
  • libwnck 3:
  • libwpe:
  • libwww-perl:
  • libXau:
  • libxcb:
  • libxcvt:
  • libXdmcp:
  • libxfce4ui:
  • libxfce4util:
  • libxkbcommon:
  • libxklavier:
  • libxml2:
  • libxml2:
  • libxslt:
  • libyaml:
  • lightdm:
  • Lingua::Translit:
  • Links:
  • Linux-PAM:
  • List::AllUtils:
  • List::MoreUtils:
  • List::MoreUtils::XS:
  • List::SomeUtils:
  • List::SomeUtils::XS:
  • List::UtilsBy:
  • Little CMS:
  • Little CMS2:
  • LLVM:
  • lmdb:
  • lm_sensors:
  • Log::Log4perl:
  • logrotate:
  • LSB-Tools:
  • lsof:
  • Lua:
  • Lua:
  • LVM2:
  • LWP::MediaTypes:
  • LWP::Protocol::https:
  • LXAppearance:
  • lxappearance-obconf:
  • lxde-common:
  • lxde-icon-theme:
  • lxdm:
  • LXInput:
  • lxmenu-data:
  • lxml:
  • LXPanel:
  • LXRandR:
  • LXSession:
  • lxshortcut:
  • LXTask:
  • LXTerminal:
  • Lynx:
  • LZO:
  • make-ca:
  • Mako:
  • mandoc:
  • MariaDB:
  • Markdown:
  • MC:
  • mdadm:
  • menu-cache:
  • mercurial:
  • Mesa:
  • meson_python:
  • MIME::Charset:
  • MIT Kerberos V5:
  • MLT:
  • ModemManager:
  • Module::Build:
  • Module::Implementation:
  • Module::Pluggable:
  • Module::Runtime:
  • Mousepad:
  • mpg123:
  • MPlayer:
  • MRO::Compat:
  • msgpack:
  • mtdev:
  • 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:
  • Noto Sans CJK:
  • NPth:
  • NSPR:
  • NSS:
  • ntfs-3g:
  • ntp:
  • Number::Compare:
  • numpy:
  • Okular:
  • Openbox:
  • opencv:
  • OpenJade:
  • OpenJDK:
  • OpenJPEG:
  • OpenLDAP:
  • OpenSP:
  • OpenSSH:
  • Opus:
  • Fontes Oxygen:
  • oxygen-icons5:
  • p11-kit:
  • p7zip:
  • Package::Stash:
  • packaging:
  • Pango:
  • Pangomm:
  • paps:
  • Params::Validate:
  • Params::ValidationCompiler:
  • Parole:
  • Parse::RecDescent:
  • Parse::Yapp:
  • Parted:
  • patchelf:
  • Path::Tiny:
  • pathspec:
  • pavucontrol:
  • pax:
  • pciutils:
  • PCManFM:
  • PCRE:
  • PCRE2:
  • Dependências de Módulos "Perl":
  • Módulos Perl:
  • PerlIO::utf8_strict:
  • phonon:
  • phonon-backend-gstreamer:
  • phonon-backend-vlc:
  • PHP:
  • Pidgin:
  • PIN-Entry:
  • pipewire:
  • Pixman:
  • plasma-wayland-protocols:
  • pluggy:
  • pm-utils:
  • pnmixer:
  • Polkit:
  • polkit-gnome:
  • polkit-qt:
  • Poppler:
  • Popt:
  • Postfix:
  • PostgreSQL:
  • Potrace:
  • Procmail:
  • Proftpd:
  • psftools:
  • Pth:
  • PulseAudio:
  • py:
  • Py3c:
  • PyAtSpi2:
  • PyCairo:
  • PyCairo2:
  • pycryptodome:
  • Pygments:
  • PyGObject:
  • PyGObject3:
  • PyGTK:
  • pyparsing:
  • pyproject-metadata:
  • pyserial:
  • pytest:
  • Dependências do "Python":
  • Módulos "Python":
  • Python2:
  • Python3:
  • pytz:
  • PyXDG:
  • PyYAML:
  • qca:
  • qemu:
  • Qpdf:
  • Qt:
  • qtwebengine:
  • Raptor:
  • Rasqal:
  • recommonmark:
  • Redland:
  • Regexp::Common:
  • aplicativos do reiserfs:
  • Rep-gtk:
  • requests:
  • rest:
  • Ristretto:
  • Role::Tiny:
  • rox-filer:
  • rpcbind:
  • rpcsvc-proto:
  • rsync:
  • Ruby:
  • Rust:
  • rxvt-unicode:
  • Samba:
  • SANE:
  • sassc:
  • Sawfish:
  • SBC:
  • SCons:
  • Scope::Guard:
  • scour:
  • Screen:
  • SDL:
  • SDL2:
  • Seahorse:
  • SeaMonkey:
  • sendmail:
  • Serf:
  • setuptools_scm:
  • sg3_utils:
  • SGML Common:
  • SGMLSpm:
  • Shadow:
  • shared-mime-info:
  • Sharutils:
  • six:
  • slang:
  • smartmontools:
  • smartypants:
  • snowballstemmer:
  • 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:
  • SQLite:
  • ssh-askpass:
  • sshfs:
  • startup-notification:
  • stunnel:
  • Sub::Exporter::Progressive:
  • Sub::Identify:
  • Sub::Info:
  • Sub::Quote:
  • Sub::Uplevel:
  • Subversion:
  • Sudo:
  • SUPER:
  • SWIG:
  • sysprof:
  • Sysstat:
  • systemd:
  • Taglib:
  • Talloc:
  • Tcsh:
  • telepathy-glib:
  • telepathy-mission-control:
  • tepl:
  • Term::Table:
  • fonte-terminus:
  • Test::Command:
  • Test::Deep:
  • Test::Differences:
  • Test::Exception:
  • Test::Fatal:
  • Test::File:
  • Test::File::ShareDir:
  • Test::LeakTrace:
  • Test::MockModule:
  • Test::Needs:
  • Test::Requires:
  • Test::RequiresInternet:
  • Test::utf8:
  • Test::Warnings:
  • Test::Without::Module:
  • Test2::Plugin::NoWarnings:
  • Test2::Suite:
  • 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:
  • Tk:
  • totem-pl-parser:
  • Traceroute:
  • Tracker3:
  • tracker3-miners:
  • Transcode:
  • Transmission:
  • tree:
  • Tripwire:
  • Try::Tiny:
  • Fontes TTF e OTF:
  • Tumbler:
  • twm:
  • typing_extensions:
  • typogrify:
  • uchardet:
  • UDisks2:
  • uhttpmock:
  • umockdev:
  • Unbound:
  • Unicode::Collate:
  • Unicode::LineBreak:
  • unixODBC:
  • UnRar:
  • UnZip:
  • UPower:
  • URI:
  • urllib3:
  • usbutils:
  • util-macros:
  • v4l-utils:
  • Vala:
  • Valgrind:
  • Variable::Magic:
  • Vim:
  • Vinagre:
  • VLC:
  • VL Gothic:
  • volume_key:
  • Ferramentas Vorbis:
  • vsftpd:
  • VTE:
  • Vte:
  • Wayland:
  • protocolos-wayland:
  • WebKitGTK:
  • WenQuanYi Zen Hei:
  • Wget:
  • Which:
  • Whois:
  • Wireless Tools:
  • Wireshark:
  • woff2:
  • wpa_supplicant:
  • wpebackend-fdo:
  • Wv:
  • WWW::RobotRules:
  • x264:
  • x265:
  • xapian:
  • xarchiver:
  • xbitmaps:
  • xcb-proto:
  • xcb-util:
  • xcb-util-cursor:
  • xcb-util-image:
  • xcb-util-keysyms:
  • xcb-util-renderutil:
  • xcb-util-wm:
  • xclock:
  • xcursor-themes:
  • xdg-user-dirs:
  • xdg-utils:
  • 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-amdgpu-driver:
  • xorg-ati-driver:
  • xorg-evdev-driver:
  • xorg-fbdev-driver:
  • xorg-intel-driver:
  • xorg-libinput-driver:
  • xorg-nouveau-driver:
  • xorg-server:
  • xorg-synaptics-driver:
  • xorg-vmware-driver:
  • xorg-wacom-driver:
  • Xorg:
  • Aplicativos do Xorg-7:
  • xorg7-driver:
  • Fontes do Xorg:
  • Legado do Xorg:
  • Bibliotecas do Xorg:
  • xorgproto:
  • XSane:
  • XScreenSaver:
  • xterm:
  • XviD:
  • xwayland:
  • yasm:
  • Yelp:
  • yelp-xsl:
  • Zip:
  • zsh:

  • 7z:
  • 7za:
  • 7zr:
  • a2x:
  • a52dec:
  • aafire:
  • aainfo:
  • aalib-config:
  • aasavefont:
  • aatest:
  • aaxine:
  • ab:
  • abiword:
  • accounts-daemon:
  • aconnect:
  • acountry:
  • acpid:
  • acpi_listen:
  • acyclic:
  • addgnupghome:
  • adig:
  • adwaita-1-demo:
  • ahost:
  • alsactl:
  • alsaloop:
  • alsamixer:
  • alsatplg:
  • alsaucm:
  • amidi:
  • amixer:
  • analyze-build:
  • animate:
  • ant:
  • antRun:
  • antRun.pl:
  • aoss:
  • apachectl:
  • aplay:
  • aplaymidi:
  • applygnupgdefaults:
  • 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:
  • autoconf2.13:
  • autoheader2.13:
  • automount:
  • autoreconf2.13:
  • autoscan2.13:
  • autoupdate2.13:
  • 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:
  • avifix:
  • aviindex:
  • avimerge:
  • avisplit:
  • avisync:
  • axfer:
  • balsa:
  • balsa-ab:
  • balsam:
  • baobab:
  • batch:
  • bcomps:
  • bdftopcf:
  • bdftruncate:
  • bf_compact:
  • bf_copy:
  • bf_tar:
  • biber:
  • biblex:
  • bibparse:
  • blkdeactivate:
  • blocks:
  • bluefish:
  • bluemoon:
  • bluetooth-sendto:
  • bluetoothctl:
  • bluetoothd:
  • bogofilter:
  • bogolexer:
  • bogotune:
  • bogoupgrade:
  • bogoutil:
  • brasero:
  • brctl:
  • broadwayd:
  • brotli:
  • bscalc:
  • bsdcat:
  • bsdcpio:
  • bsdtar:
  • bssh:
  • btcflash:
  • btmon:
  • btrfs:
  • btrfs-convert:
  • btrfs-find-root:
  • btrfs-map-logical:
  • btrfs-select-super:
  • btrfstune:
  • bugpoint:
  • bundle:
  • bundler:
  • 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:
  • checkXML5:
  • cheese:
  • cifs.idmap:
  • cifs.upcall:
  • cifscreds:
  • cifsdd:
  • cifsiostat:
  • circo:
  • cjpeg:
  • clang:
  • clang-check:
  • clang-extdef-mapping:
  • clang-format:
  • clang-linker-wrapper:
  • clang-nvlink-wrapper:
  • clang-offload-bundler:
  • clang-offload-packager:
  • clang-offload-wrapper:
  • clang-refactor:
  • clang-rename:
  • clang-scan-deps:
  • 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:
  • cons.saver:
  • convert:
  • 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:
  • dazzle-list-counters:
  • db2*:
  • db4-entities.pl:
  • dbmmanage:
  • dbus-binding-tool:
  • dbwrap_tool:
  • db_archive:
  • db_checkpoint:
  • db_deadlock:
  • db_dump:
  • db_hotbackup:
  • db_load:
  • db_log_verify:
  • db_printlog:
  • db_recover:
  • db_replicate:
  • db_stat:
  • db_tuner:
  • db_upgrade:
  • db_verify:
  • dconf:
  • dconf-editor:
  • dcraw_emu:
  • dcraw_half:
  • ddns-confgen:
  • depuração do reiserfs:
  • decode_tm6000:
  • delv:
  • depdiagram-generate:
  • depdiagram-generate-all:
  • depdiagram-prepare:
  • derb:
  • designer:
  • desktop-file-edit:
  • desktop-file-install:
  • desktop-file-validate:
  • desktoptojson:
  • devdump:
  • dhclient:
  • dhclient-script:
  • dhcpcd:
  • dhcpd:
  • dhcrelay:
  • diagtool:
  • diffimg:
  • diffpp:
  • dig:
  • dijkstra:
  • dirmngr:
  • dirmngr-client:
  • disable-paste:
  • display:
  • display-buttons:
  • display-coords:
  • djpeg:
  • dl10k1:
  • dltest:
  • dmeventd:
  • dmsetup:
  • dnssec-cds:
  • dnssec-checkds:
  • dnssec-coverage:
  • dnssec-dsfromkey:
  • dnssec-importkey:
  • dnssec-keyfromlabel:
  • dnssec-keygen:
  • dnssec-keymgr:
  • dnssec-revoke:
  • dnssec-settime:
  • dnssec-signzone:
  • dnssec-verify:
  • docbook2*:
  • docutils:
  • dos2unix:
  • dot:
  • dot2gxl:
  • doveadm:
  • doveconf:
  • dovecot:
  • dovecot-sysreport:
  • doxygen:
  • doxyindexer:
  • doxypypy:
  • doxyqml:
  • doxysearch.cgi:
  • doxywizard:
  • drill:
  • driverless:
  • driverless-fax:
  • dropdb:
  • dropuser:
  • drv_libxml2.py para Python2:
  • dsymutil:
  • dsync:
  • dubdv:
  • dumpcap:
  • dumpmscat:
  • dumpnames:
  • dumpsexp:
  • dvb-fe-tool:
  • dvb-format-convert:
  • dvbv5-scan:
  • dvbv5-zap:
  • dvconnect:
  • dvisvgm:
  • dwebp:
  • ebrowse:
  • echomixer:
  • ecpg:
  • ed:
  • edgepaint:
  • editcap:
  • editmap:
  • efibootdump:
  • efibootmgr:
  • efisecdb:
  • efivar:
  • elf2dmp:
  • emacs:
  • emacsclient:
  • enchant-2:
  • enchant-lsmod-2:
  • encodedv:
  • enscript:
  • envy24control:
  • eog:
  • epdfview:
  • epiphany:
  • erb:
  • escapesrc:
  • escputil:
  • etags:
  • eventlogadm:
  • evince:
  • evince-previewer:
  • evince-thumbnailer:
  • evolution:
  • exempi:
  • exicyclog:
  • exigrep:
  • exim:
  • exim-4.96-2:
  • eximon:
  • eximon.bin:
  • eximstats:
  • exim_checkaccess:
  • exim_dbmbuild:
  • exim_dumpdb:
  • exim_fixdb:
  • exim_lock:
  • exim_tidydb:
  • 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:
  • feh:
  • fetchmail:
  • fetchmailconf:
  • ffmpeg:
  • ffplay:
  • ffprobe:
  • fftw-wisdom:
  • fftw-wisdom-to-conf:
  • file-roller:
  • FileCheck:
  • findrule:
  • firefox:
  • fix-qdf:
  • fixparts:
  • fixqt4headers.pl:
  • flac:
  • flea:
  • fltk-config:
  • fluid:
  • fluxbox:
  • fluxbox-generate_menu:
  • fluxbox-remote:
  • fluxbox-update_configs:
  • fontforge:
  • fontimage:
  • fontlint:
  • foomatic-rip:
  • fop:
  • formail:
  • freetype2-config:
  • fribidi:
  • fsadm:
  • fsck.btrfs:
  • fsck.jfs:
  • fsck.xfs:
  • fsck.fat:
  • ftpasswd:
  • ftpcount:
  • ftpdctl:
  • ftpmail:
  • ftpquota:
  • ftpscrub:
  • ftpshut:
  • ftptop:
  • ftpwho:
  • funzip:
  • 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:
  • gconf-merge-tree:
  • gconftool-2:
  • gcore:
  • gcr-viewer:
  • gcr-viewer-gtk4:
  • gdb-prog:
  • gdbserver:
  • gdbus:
  • gdbus-codegen:
  • gdisk:
  • gdk-pixbuf-csource:
  • gdk-pixbuf-pixdata:
  • gdk-pixbuf-query-loaders:
  • gdk-pixbuf-thumbnailer:
  • gdm:
  • gdm-control:
  • gdm-screenshot:
  • gedit:
  • gegl:
  • gegl-imgcmp:
  • gem:
  • genbrk:
  • genccode:
  • gencfu:
  • gencmn:
  • gencnval:
  • gendict:
  • genl-ctrl-list:
  • gennorm2:
  • genrb:
  • gensprep:
  • gentest:
  • get-versions:
  • getcifsacl:
  • gfortran:
  • gi-docgen:
  • gif2rgb:
  • gif2webp:
  • gifbuild:
  • gifclrmp:
  • giffix:
  • giftext:
  • giftool:
  • gimp:
  • gimp-2.10:
  • gimp-console:
  • gimp-console-2.10:
  • gimptool-2.0:
  • gio:
  • gio-querymodules:
  • git:
  • git-clang-format:
  • git-cvsserver:
  • git-receive-pack:
  • git-shell:
  • git-upload-archive:
  • git-upload-pack:
  • gitk:
  • gjs-console:
  • glewinfo:
  • glib-compile-resources:
  • glib-compile-schemas:
  • glib-genmarshal:
  • glib-gettextize:
  • glib-mkenums:
  • glxgears:
  • glxinfo:
  • gml2gv:
  • gmplayer:
  • gnome-calculator:
  • gnome-control-center:
  • gnome-disk-image-mounter:
  • gnome-disks:
  • gnome-keyring-daemon:
  • gnome-logs:
  • 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.55:
  • gnutls-cli:
  • gnutls-cli-debug:
  • gnutls-serv:
  • go:
  • goa-daemon:
  • 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:
  • gpicview:
  • gpm:
  • gpm-root:
  • gr2fonttest:
  • graphml2gv:
  • gresource:
  • grilo-test-ui:
  • grl-inspect:
  • grl-launch:
  • growisofs:
  • gs:
  • gsettings:
  • gsettings-data-convert:
  • gsettings-schemas-convert:
  • 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:
  • gtester:
  • gtester-report:
  • gtf:
  • gtk-builder-convert:
  • gtk-builder-tool:
  • gtk-demo:
  • gtk-encode-symbolic-svg:
  • gtk-launch:
  • gtk-query-immodules-2.0:
  • gtk-query-immodules-3.0:
  • gtk-query-settings:
  • gtk-update-icon-cache:
  • 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:
  • hexchat:
  • hg:
  • highlight:
  • highlight-gui:
  • hltest:
  • hmac256:
  • hmaptool:
  • homectl:
  • host:
  • hoststat:
  • htcacheclean:
  • htdbm:
  • htdigest:
  • htpasswd:
  • httpd:
  • httxt2dbm:
  • hwmixvolume:
  • ibus-daemon:
  • ibus-setup:
  • icc2ps:
  • icclink:
  • icctrans:
  • 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:
  • idle:
  • idle3:
  • idn:
  • idn2:
  • iecset:
  • ifnames2.13:
  • ifrename:
  • img2webp:
  • imgcmp:
  • imginfo:
  • imlib2_bumpmap:
  • imlib2_colorspace:
  • imlib2_conv:
  • imlib2_grab:
  • imlib2_poly:
  • imlib2_show:
  • imlib2_test:
  • imlib2_view:
  • import:
  • initdb:
  • init_audigy*:
  • init_live:
  • inkscape:
  • inkview:
  • innochecksum:
  • install-catalog:
  • integritysetup:
  • intel-virtual-output:
  • intercept-build:
  • iodbc-config:
  • iodbcadm:
  • iodbctest:
  • iostat:
  • ip6tables:
  • ipmaddr:
  • ippeveprinter:
  • 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:
  • jpegicc:
  • jpegtran:
  • jpgicc:
  • jpico:
  • jps:
  • jrunscript:
  • js102:
  • js102-config:
  • jshell:
  • json-glib-format:
  • json-glib-validate:
  • jstack:
  • jstar:
  • jstat:
  • jstatd:
  • jw:
  • jwebserver:
  • k3b:
  • k5srvutil:
  • kacpimon:
  • kadmin:
  • kadmin.local:
  • kadmind:
  • kate:
  • kbuildsycoca5:
  • kbxutil:
  • kcookiejar5:
  • kdb5_ldap_util:
  • kdb5_util:
  • kded5:
  • kdeinit5:
  • kdenlive:
  • kdenlive_render:
  • kdestroy:
  • key.dns_resolver:
  • keyctl:
  • keytool:
  • kf5-config:
  • kf5kross:
  • kgendesignerplugin:
  • kglobalaccel5:
  • khelpcenter:
  • kinit:
  • kjs5:
  • kjscmd5:
  • kjsconsole:
  • klist:
  • kmix:
  • kmixctrl:
  • kmixremote:
  • koi8rxterm:
  • konsole:
  • konsoleprofile:
  • kpackagelauncherqml:
  • kpackagetool5:
  • kpasswd:
  • kprop:
  • kpropd:
  • kproplog:
  • krb5-send-pr:
  • krb5-config:
  • krb5kdc:
  • kreadconfig5:
  • kshell5:
  • ksu:
  • kswitch:
  • ktelnetservice5:
  • ktrash5:
  • ktutil:
  • kvno:
  • kwalletd5:
  • kwave:
  • kwrite:
  • kwriteconfig5:
  • 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:
  • libassuan-config:
  • libevdev-tweak-device:
  • libfm-pref-apps:
  • libgcrypt-config:
  • libglade-convert:
  • libinput:
  • libndp:
  • libnewt:
  • libpng-config:
  • libquicktime_config:
  • libreoffice-suite:
  • librest-demo:
  • libwacom-list-devices:
  • libwacom-list-local-devices:
  • libwacom-show-stylus:
  • libwacom-update-db:
  • libxml2.py para Python2:
  • 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-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-reduce:
  • llvm-remark-size-diff:
  • llvm-rtdyld:
  • llvm-size:
  • llvm-split:
  • llvm-stress:
  • llvm-strings:
  • llvm-symbolizer:
  • llvm-tblgen:
  • llvm-tli-checker:
  • llvm-undname:
  • llvm-xray:
  • lo10k1:
  • lobase:
  • localc:
  • lockfile:
  • locktest:
  • lodraw:
  • logresolve:
  • logrotate:
  • loimpress:
  • lomath:
  • loweb:
  • lowntfs-3g:
  • lowriter:
  • lp:
  • lpadmin:
  • lpc:
  • lpinfo:
  • lpmove:
  • lpoptions:
  • lpq:
  • lpr:
  • lprm:
  • lpstat:
  • lqtplay:
  • lqt_transcode:
  • lrelease-pro:
  • lrelease:
  • lsb_release:
  • install_initd:
  • remove_initd:
  • lsof:
  • lspci:
  • lsusb:
  • lsusb.py:
  • lua:
  • lua5.2:
  • luac:
  • luac5.2:
  • luit:
  • lupdate-pro:
  • lupdate:
  • lvm:
  • lvm-cache-stats:
  • lvmdump:
  • lwp-download:
  • lwp-dump:
  • lwp-mirror:
  • lwp-request:
  • lxappearance:
  • lxclipboard:
  • lxde-logout:
  • lxdm:
  • lxdm:
  • lxdm-binary:
  • lxinput:
  • lxlock:
  • lxpanel:
  • lxpanelctl:
  • lxpolkit:
  • lxrandr:
  • lxsession:
  • lxsession-db:
  • lxsession-default:
  • lxsession-default-apps:
  • lxsession-default-terminal:
  • lxsession-edit:
  • lxsession-logout:
  • lxsession-xdg-autostart:
  • lxsession-xsettings:
  • lxsettings-daemon:
  • lxtask:
  • lxterminal:
  • lynx:
  • mac2unix:
  • magick:
  • Magick-config:
  • mail:
  • mailq:
  • mailq:
  • mailstat:
  • mailstats:
  • mailx:
  • make-ca:
  • makeconv:
  • makemap:
  • mako-render:
  • mandoc:
  • 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:
  • mc-tool:
  • mc-wait-for-name:
  • mcdiff:
  • mcedit:
  • mcview:
  • mdadm:
  • mdig:
  • mdmon:
  • mdsearch:
  • media-ctl:
  • meinproc5:
  • melt:
  • mem_image:
  • mencoder:
  • mergecap:
  • meshdebug:
  • metaflac:
  • mev:
  • mii-tool:
  • mission-control-5:
  • mixartloader:
  • mkafmmap:
  • mkbitmap:
  • mkfontdir:
  • mkfontscale:
  • mkfs.btrfs:
  • mkfs.jfs:
  • mkfs.ntfs:
  • mkfs.xfs:
  • mkfs.fat:
  • mkhomedir_helper:
  • mkhybrid:
  • mkisofs:
  • mkntfs:
  • mkpasswd:
  • mkreiserfs:
  • mm2gv:
  • mmc-tool:
  • mmcli:
  • moc:
  • 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-qt5:
  • mp3rtp:
  • mpeg2dec:
  • mpg123:
  • mpg123-id3dump:
  • mpg123-strip:
  • out123:
  • mpicalc:
  • mplayer:
  • mpstat:
  • 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:
  • obxprop:
  • ferramenta ocsp:
  • odbcinst:
  • odbc_config:
  • ogg123:
  • oggdec:
  • oggenc:
  • ogginfo:
  • oid2name:
  • okular:
  • oLschema2ldif:
  • omshell:
  • onsgmls:
  • on_ac_power:
  • openbox:
  • openbox-gnome-session:
  • openbox-kde-session:
  • openbox-lxde:
  • 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:
  • paperconf:
  • paperconfig:
  • paplay:
  • paps:
  • parec:
  • parecord:
  • parole:
  • parted:
  • partprobe:
  • pasuspender:
  • patchelf:
  • patchwork:
  • pavucontrol:
  • pax:
  • pax11publish:
  • pcmanfm:
  • pcre-config:
  • pcre2-config:
  • pcre2grep:
  • pcre2:
  • pcregrep:
  • pcretest:
  • 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:
  • pidgin:
  • pidstat:
  • pinentry:
  • pinentry-curses:
  • pinentry-emacs:
  • pinentry-fltk:
  • pinentry-gnome3:
  • pinentry-gtk-2:
  • pinentry-qt:
  • pinentry-tty:
  • pipewire:
  • pipewire-media-session:
  • pipewire-pulse:
  • pixeltool:
  • pk12util:
  • pkaction:
  • pkcheck:
  • pkcs1-conv:
  • pkexec:
  • pkgdata:
  • pkttyagent:
  • 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:
  • postmaster:
  • postmulti:
  • postprocessing_benchmark:
  • postqueue:
  • postsuper:
  • potrace:
  • ppdc:
  • ppdhtml:
  • ppdi:
  • ppdmerge:
  • ppdpo:
  • ppm2tiff:
  • praliases:
  • precat:
  • preparetips5:
  • preunzip:
  • prezip:
  • prezip-bin:
  • procmail:
  • profiles:
  • proftpd:
  • prune:
  • prxs:
  • psicc:
  • ferramenta psk:
  • psl:
  • pspell-config:
  • psql:
  • pth-config:
  • pulseaudio:
  • purgestat:
  • purple-client-example:
  • purple-remote:
  • purple-send:
  • purple-send-async:
  • purple-url-handler:
  • pw-cat:
  • pw-cli:
  • 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:
  • pydoc:
  • pydo3c:
  • pygmentize:
  • pygtk-codegen-2.0:
  • pygtk-demo:
  • pyserial-miniterm:
  • pyserial-ports:
  • pytest:
  • python:
  • python2.7:
  • python3:
  • python3.11:
  • qalc:
  • qcatool-qt5:
  • qcollectiongenerator-qt5:
  • 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:
  • qgltf:
  • qhelpgenerator:
  • qlalr:
  • qmake:
  • qmi-firmware-update:
  • qmi-network:
  • qmicli:
  • qml:
  • qmlcachegen:
  • qmleasing:
  • qmlformat:
  • qmlimportscanner:
  • qmllint:
  • qmlmin:
  • qmlplugindump:
  • qmlpreview:
  • qmlprofiler:
  • qmlscene:
  • qmltestrunner:
  • qpaeq:
  • qpdf:
  • zlib-flate:
  • qrencode:
  • qscxmlc:
  • qt-faststart:
  • qt2text:
  • qtattributionsscanner:
  • qtdechunk:
  • qtdiag:
  • qtdump:
  • qtinfo:
  • qtpaths:
  • qtplugininfo:
  • qtrechunk:
  • qtstreamize:
  • qtwaylandscanner:
  • QtWebEngineProcess:
  • qtwebengine_convert_dict:
  • qtyuv4toyuv:
  • quest:
  • qv4l2:
  • qvidcap:
  • qvkgen:
  • qvlc:
  • rake:
  • randpkt:
  • rapper:
  • rarp:
  • rasqal-config:
  • half_mt:
  • raw2tiff:
  • rawshark:
  • rcc:
  • rctest:
  • rdbg:
  • rdfproc:
  • rdjpgcom:
  • rdoc:
  • rds-ctl:
  • readcd:
  • red:
  • redland-config:
  • redland-db-upgrade:
  • regdiff:
  • regpatch:
  • regshell:
  • regtree:
  • reindexdb:
  • reiserfsck:
  • ajuste do reiserfs:
  • reordercap:
  • rep:
  • repc:
  • replace:
  • request-key:
  • rescan-scsi-bus.sh:
  • resize:
  • resize_reiserfs:
  • resolveip:
  • resolve_stack_dump:
  • rgview:
  • ri:
  • ristretto:
  • rjoe:
  • rmedigicontrol:
  • rmiregistry:
  • rnano:
  • rndc:
  • rndc-confgen:
  • roqet:
  • rotatelogs:
  • route:
  • rox-filer:
  • 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-regedit:
  • samba-tool:
  • sancov:
  • sane-config:
  • sane-find-scanner:
  • saned:
  • sanstats:
  • sar:
  • saslauthd:
  • sasldblistusers2:
  • saslpasswd2:
  • sassc:
  • sawfish:
  • sawfish-about:
  • sawfish-client:
  • sawfish-config:
  • sawfish-kde4-session:
  • sawfish-kde5-session:
  • sawfish-lumina-session:
  • sawfish-mate-session:
  • sawfish-xfce-session:
  • sbcdec:
  • sbcenc:
  • sbcinfo:
  • sbiload:
  • scalar:
  • scan-build:
  • scan-build-py:
  • scan-view:
  • scanadf:
  • scanimage:
  • sccmap:
  • scgcheck:
  • sclient:
  • scmp_sys_resolver:
  • scons:
  • scons-configure-cache:
  • sconsign:
  • scour:
  • scp:
  • screen:
  • scsi_logging_level:
  • scsi_mandat:
  • scsi_readcap:
  • scsi_ready:
  • scsi_satl:
  • scsi_start:
  • scsi_stop:
  • scsi_temperature:
  • sdl-config:
  • sdl2-config:
  • sdpscanner:
  • seahorse:
  • seamonkey:
  • secret-tool:
  • sendmail:
  • sendmail:
  • sensord:
  • sensors:
  • sensors-conf-convert:
  • sensors-detect:
  • serialver:
  • sessreg:
  • setcifsacl:
  • setpci:
  • setxkbmap:
  • sexp-conv:
  • sfconvert:
  • sfddiff:
  • sfdp:
  • sfinfo:
  • 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:
  • 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:
  • smtpd.py:
  • sndfile-cmp:
  • sndfile-concat:
  • sndfile-convert:
  • sndfile-deinterleave:
  • sndfile-info:
  • sndfile-interleave:
  • sndfile-metadata-get:
  • sndfile-metadata-set:
  • sndfile-play:
  • sndfile-salvage:
  • sntp:
  • solid-hardware5:
  • 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:
  • split-file:
  • 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:
  • startlxde:
  • startx:
  • 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:
  • syncqt.pl:
  • syndaemon:
  • sysprof:
  • sysprof-agent:
  • sysprof-cli:
  • systemd-cryptenroll:
  • tab2space:
  • taglib-config:
  • tapestat:
  • tccat:
  • tcdecode:
  • tcdemux:
  • tcextract:
  • tcmodinfo:
  • tcmp3cut:
  • tcprobe:
  • tcscan:
  • tcsh:
  • tcxmlcheck:
  • tdbbackup:
  • tdbdump:
  • tdbrestore:
  • tdbtool:
  • 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:
  • tiffdiff:
  • tiffdither:
  • tiffdump:
  • tiffgt:
  • tifficc:
  • tiffinfo:
  • tiffmedian:
  • tiffset:
  • tiffsplit:
  • tificc:
  • time:
  • tjbench:
  • Aplicativos do TeX Live:
  • toc2cddb:
  • toc2cue:
  • toc2mp3:
  • touchpad-edge-detector:
  • tracegen:
  • traceroute:
  • traceroute6:
  • tracker3:
  • transcode:
  • transicc:
  • translit:
  • transmission-cli:
  • 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:
  • uic:
  • 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:
  • uninstall_ndiff:
  • uninstall_zenmap:
  • uniproc:
  • unix2dos:
  • unix2mac:
  • unix_chkpwd:
  • unix_update:
  • unopkg:
  • unprocessed_raw:
  • unrar:
  • unshar:
  • unzip:
  • unzipfsx:
  • atualiza-certificados-ac:
  • update-desktop-database:
  • update-leap:
  • update-mime-database:
  • update-pciids:
  • update-smart-drivedb:
  • upower:
  • urxvt:
  • urxvtc:
  • urxvtd:
  • us428control:
  • usb-devices:
  • usbhid-dump:
  • userdbctl:
  • usx2yloader:
  • uuclient:
  • uudecode:
  • uuencode:
  • uuserver:
  • uxterm:
  • v4l2-compliance:
  • v4l2-ctl:
  • v4l2-dbg:
  • v4l2-sysfs-path:
  • vacation:
  • vacuumdb:
  • vacuumlo:
  • vala-gen-introspect:
  • valac:
  • valadoc:
  • valgrind:
  • valgrind-di-server:
  • valgrind-listener:
  • vapigen:
  • vcut:
  • verify-uselistorder:
  • veritysetup:
  • vgdb:
  • vgimportclone:
  • vimdot:
  • vinagre:
  • visualinfo:
  • visudo:
  • vlc:
  • vlc-wrapper:
  • vncconfig:
  • vncpasswd:
  • vncserver:
  • vncviewer:
  • volume_key:
  • vorbiscomment:
  • vpxdec:
  • vpxenc:
  • vsftpd:
  • vte:
  • vte-2.91:
  • vwebp:
  • vxloader:
  • watchgnupg:
  • wayland-scanner:
  • wbinfo:
  • WebKitWebDriver:
  • webpinfo:
  • webpmux:
  • wget:
  • which:
  • whiptail:
  • whois:
  • winbindd:
  • wireshark:
  • wish:
  • wish8.6:
  • wnckprop:
  • wnckprop-1:
  • word-list-compress:
  • wpa_cli:
  • wpa_gui:
  • wpa_passphrase:
  • wpa_supplicant:
  • wrjpgcom:
  • wtpt:
  • wv:
  • X:
  • x0vncserver:
  • x11perf:
  • x11perfcomp:
  • xapian-check:
  • xapian-compact:
  • xapian-config:
  • xapian-delve:
  • xapian-metadata:
  • xapian-pos:
  • xapian-progsrv:
  • xapian-replicate:
  • xapian-replicate-server:
  • xapian-tcpsrv:
  • xarchiver:
  • xasy:
  • xauth:
  • xbacklight:
  • xbm2xface.pl:
  • xcam:
  • xclock:
  • xcmsdb:
  • xcursorgen:
  • 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:
  • 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_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:
  • xmlpatterns:
  • xmlpatternsvalidator:
  • xmlto:
  • xmodmap:
  • Xnest:
  • Xorg:
  • xorrecord:
  • xorriso:
  • xorriso-dd-target:
  • xorriso-tcltk:
  • xorrisofs:
  • xpr:
  • xprop:
  • xpstojpeg:
  • xpstopdf:
  • xpstopng:
  • xpstops:
  • xpstosvg:
  • xrandr:
  • xrdb:
  • xrefresh:
  • xsane:
  • xscanimage:
  • 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:
  • zipgrep:
  • zipinfo:
  • zipnote:
  • zipsplit:
  • zsh:
  • 4channels:

  • amdgpu_drv.so:
  • ant-*.jar:
  • ati_drv.so:
  • c-ares.so:
  • udev.so:
  • libduktape.so:
  • evdev_drv.so:
  • fbdev_drv.so:
  • fop.jar:
  • Bibliotecas Glib:
  • intel_drv.so:
  • libkeybinder.so:
  • libkeybinder-3.0.so:
  • liba52.so:
  • libaa.so:
  • libabiword-3.0.so:
  • libaccountsservice.so:
  • libadwaita.so:
  • libadwaita-1.so:
  • libaio.so:
  • libamtk-5.so:
  • libao.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:
  • libatomic_ops.so:
  • libatopology.so:
  • libatspi.so:
  • libaudiofile.so:
  • libavcodec.so:
  • libavdevice.so:
  • libavfilter.so:
  • libavformat.so:
  • libavresample:
  • libavutil.so:
  • libbabl-0.1.so:
  • libbluetooth.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:
  • libcamel-1.2.so:
  • libcanberra.so:
  • libcanberra-gtk.so:
  • libcanberra-gtk3.so:
  • libcdda_interface:
  • libcdda_paranoia:
  • libcdio.so:
  • libcdt.so:
  • libcgraph.so:
  • libchamplain-0.12.so:
  • libchamplain-gtk-0.12.so:
  • libcheese.so:
  • libcheese-gtk.so:
  • libcloudproviders.so:
  • libclutter-1.0.so:
  • libclutter-gst-3.0.so:
  • libclutter-gtk-1.0.so:
  • libcogl.so:
  • libcogl-gles2.so:
  • libcogl-pango.so:
  • libcolord-gtk.so:
  • libcolord-gtk2.so:
  • libcolord-gtk4.so:
  • libcolord.so:
  • libcolordcompat.so:
  • libcolordprivate.so:
  • libcolorhug.so:
  • libcompface.{so,a}:
  • libcord.so:
  • libcrack.so:
  • libcups.so:
  • libcupsfilters.so:
  • libcurl.so:
  • libdaemon.so:
  • libdazzle-1.0.so:
  • libdbus-glib-1.so:
  • libdconf.so:
  • libdevmapper.so:
  • libdiscid.so:
  • libdmx.so:
  • libdouble-conversion.so:
  • libdrm.so:
  • libdrm_amdgpu.so:
  • libdrm_intel.so:
  • libdrm_nouveau.so:
  • libdrm_radeon.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:
  • libefiboot.so:
  • libefisec.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:
  • libfftw3.so:
  • libfftw3f.so:
  • libfftw3f_threads.so:
  • libfftw3l.so:
  • libfftw3l_threads.so:
  • libfftw3_threads.so:
  • libFLAC{,++}.so:
  • libfltk.so:
  • libfm.so:
  • libfm-extra.so:
  • libfontconfig.so:
  • libfontenc.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:
  • libgconf-2.so:
  • libgcr-4.so:
  • libgcrypt.so:
  • libgctba.so:
  • libgdata.so:
  • libgdk-3.so:
  • libgdk-x11-2.0.so:
  • libgdkmm-3.0.so:
  • libgdk_pixbuf-2.0.so:
  • libgdk_pixbuf_xlib-2.0.so:
  • libgee-0.8.so:
  • libgegl-0.4.so:
  • libgegl-npd-0.4.so:
  • libgegl-sc-0.4.so:
  • libgeocode-glib-2.so:
  • libgexiv2.so:
  • libgif.so:
  • libgimp-2.0.so:
  • libgimpbase-2.0.so:
  • libgimpcolor-2.0.so:
  • libgimpconfig-2.0.so:
  • libgimpmath-2.0.so:
  • libgimpmodule-2.0.so:
  • libgimpthumb-2.0.so:
  • libgimpui-2.0.so:
  • libgimpwidgets-2.0.so:
  • libgiomm-2.4.so:
  • libgirepository-1.0.so:
  • libgjs.so:
  • libEGL.so:
  • libGL.so:
  • libglade-2.0.so:
  • libGLES2.so:
  • libGLESv1_CM.so:
  • libGLEW.so:
  • libglibmm-2.4.so:
  • libGLU.so:
  • libglut.so:
  • libgmime-3.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:
  • libgoffice-0.10.so:
  • libgpg-error.so:
  • libgpgme.so:
  • libgpgmepp.so:
  • libgpm.so:
  • libgport.a:
  • libGrantlee_Templates.so:
  • libGrantlee_TextDocument.so:
  • libgraphene-1.0.so:
  • libgraphite2.so:
  • libgrilo.so:
  • libgrlnet.so:
  • libgrlpls.so:
  • libgrss.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:
  • libgstnet-1.0.so:
  • libgstreamer-1.0.so:
  • libgtk-3.so:
  • libgtk-4.so:
  • libgtk-vnc-2.0.so:
  • libgtk-x11-2.0.so:
  • libgtkmm-3.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:
  • 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:
  • libinkscape_base.so:
  • libinput.so:
  • libinput_drv.so:
  • libisoburn.so:
  • libisofs.so:
  • libiw.so:
  • libjansson.so:
  • libjasper.so:
  • libjavascriptcoregtk-4.1.so:
  • libjpeg.so:
  • libjson-c.so:
  • libjson-glib-1.0.so:
  • libkadm5clnt.so:
  • libkadm5srv.so:
  • libkcddb.so:
  • libkdb5.so:
  • libkeyutils.so:
  • libkpathsea.so:
  • libkrad.so:
  • libkrb5.so:
  • libksba.{so,a}:
  • liblber.so:
  • liblcms.so:
  • liblcms2.so:
  • libldap.so:
  • libldns.so:
  • liblinear.so:
  • liblua.so:
  • liblua5.2.so:
  • liblzo2.so:
  • libmad.so:
  • libMagick++-7.Q16HDRI.so:
  • libMagickCore-7.Q16HDRI.so:
  • libMagickWand-7.Q16HDRI.so:
  • libmbim-glib.so:
  • libmenu-cache.so:
  • libmission-control-plugins.so:
  • libmm-glib.so:
  • libmng.so:
  • libmnl.so:
  • libmozjs-102.so:
  • libmp3lame.so:
  • libmp4v2.so:
  • libmpeg2.so:
  • libmpeg2convert.so:
  • libmpg123.so:
  • libmtdev.so:
  • libmupdf.so:
  • libmusicbrainz.{so,a}:
  • libmusicbrainz5.so:
  • libmutter-11.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:
  • liboauth.so:
  • libobrender.so:
  • libobt.so:
  • libogg.so:
  • libopus.so:
  • libosp.so:
  • libout123.so:
  • libp11-kit.so:
  • libpam.so:
  • libpango-1.0.so:
  • libpangomm-1.4.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-svg.so:
  • libpixman-1.so:
  • libplc4.so:
  • libplds4.so:
  • libpng.so:
  • libpolkit-agent-1.so:
  • libpolkit-gobject-1.so:
  • libpoppler.so:
  • libpoppler-cpp.so:
  • libpoppler-glib.so:
  • libpoppler-qt5.so:
  • libpopt.so:
  • libportal.so:
  • libportal-gtk3.so:
  • libportal-gtk4.so:
  • libportal-qt5.so:
  • libpostproc.so:
  • libpotrace.so:
  • libpq.{so,a}:
  • libpsl.so:
  • libpspell.so:
  • libptexenc.so:
  • libpth.so:
  • libptytty.so:
  • libpwquality.so:
  • libqalculate.so:
  • libqca-qt5.so:
  • libqgpgme.so:
  • libqmi-glib.so:
  • libqpdf.so:
  • libqrencode.so:
  • libQtWebEngine.so:
  • libQtWebEngineCore.so:
  • libQtWebEngineWidgets.so:
  • libquicktime.so:
  • libraptor2.so:
  • librep.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:
  • 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:
  • libspreadsheet.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:
  • libsysprof-4.so:
  • libsysprof-capture-4.a:
  • libsysprof-memory-4.so:
  • libsysprof-speedtrack-4.so:
  • libsysprof-ui-4.so:
  • libtalloc.so:
  • libtasn1.so:
  • libtelepathy-glib.so:
  • libtepl-6.so:
  • libtexlua52.so:
  • libtexluajit.so:
  • libtheora*.so:
  • libthunarx-3.so:
  • libtidy.so:
  • libtiff.so:
  • libtiffxx.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-0.0.so:
  • libumockdev.so:
  • libunbound.so:
  • libunique-1.0.so:
  • libunistring.so:
  • libupower-glib.so:
  • libusb-1.0.so:
  • libuv.so:
  • libva.so:
  • libvala-0.56.so:
  • libvdpau.so:
  • libvdpau.so:
  • libvorbis.so:
  • libvpx.so:
  • libvte.so:
  • libvte-2.91.so:
  • libwacom.so:
  • libwayland-client.so:
  • libwayland-cursor.so:
  • libwayland-egl.so:
  • libwayland-server.so:
  • libwbclient.so:
  • libwebkit2gtk-4.1.so:
  • libwebp.so:
  • libwireshark.so:
  • libwiretap.so:
  • libwnck-1.so:
  • libwnck-3.so:
  • libwoff2common.so:
  • libwoff2enc.so:
  • libwoff2dec.so:
  • libwpe-1.0.so:
  • libWPEBackend-fdo-1.0.so:
  • libwv-1.2.so:
  • libX11.so:
  • libx264.so:
  • libx265.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:
  • libxml2mod.so:
  • libXmu.so:
  • libXmuu.so:
  • libXpm.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:
  • Ligações "Lisp":
  • modesetting_drv.so:
  • mod_authz_svn.so:
  • mod_dav_svn.so:
  • nouveau_drv.so:
  • p11-kit-proxy.so:
  • pam_pwquality.so:
  • pam_systemd.so:
  • radeon_drv.so:
  • synaptics_drv.so:
  • vmware_drv.so:
  • volume_key.so:
  • wacom_drv.so:

  • Ponte Avançada de Rede de Intercomunicação:
  • ALSA:
  • Automounter:
  • bluez:
  • Utilitários de Ponte:
  • Aplicativos BTRFS:
  • Capturando pacotes de rede de intercomunicação :
  • cheese:
  • cifs-utils:
  • cryptsetup:
  • cups:
  • DHCP:
  • Aplicativos Dosfstools:
  • escputil para impressoras usb:
  • Fuse 3:
  • gpm:
  • iptables:
  • Dispositivos sem fios:
  • Utilitários JFS:
  • libevdev:
  • libinput:
  • lm_sensors:
  • lvm2:
  • mdadm:
  • NetworkManager:
  • Utilitários do NFS:
  • ntfs-3g:
  • Suporte de leitura e gravação NTFS no núcleo:
  • parted:
  • pm-utils:
  • qemu:
  • qtwebengine:
  • Aplicativos Reiserfs:
  • rox-filer:
  • Dispositivos de digitalização:
  • upower:
  • Suporte para USB do Lado do Anfitrião:
  • Dispositivos sem fios:
  • wpa_supplicant:
  • Aplicativos XFS:
  • xorg-amdgpu-driver:
  • xorg-amdgpu-firmware:
  • xorg-ati-driver:
  • xorg-ati-firmware:
  • xorg-intel-driver:
  • xorg-nouveau-driver:
  • xorg-vmware-driver:
  • 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/.mc/*:
  • ~/.cshdirs:
  • ~/.cshrc:
  • ~/.dircolors:
  • ~/.profile:
  • ~/.enchant:
  • ~/.fetchmailrc:
  • ~/.fluxbox/init:
  • ~/.fluxbox/keys:
  • ~/.fluxbox/menu:
  • ~/.fonts:
  • ~/.foprc:
  • ~/.g/GIMP/2.10/*:
  • ~/.gitconfig:
  • ~/.gpm-root:
  • ~/.gtkrc-2.0:
  • ~/.gtkrc-2.0:
  • ~/.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:
  • ~/.mplayer/*:
  • ~/.muttrc:
  • ~/.my.cnf:
  • ~/.nanorc:
  • ~/.ncftp/*:
  • ~/.ogg123rc:
  • ~/.pangorc:
  • ~/.procmailrc:
  • ~/.profile:
  • ~/.purple/*:
  • ~/.config/openbox/rc.xml:
  • ~/.screenrc:
  • ~/.slshrc:
  • ~/.ssh/*:
  • ~/.subversion/config:
  • ~/.tcshrc:
  • ~/.vimrc:
  • ~/.vimrc:
  • ~/.wgetrc:
  • ~/.wireshark/*:
  • ~/.xine/config:
  • ~/.xinitrc:
  • ~/.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/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/nfs-utils:
  • /etc/default/useradd:
  • /etc/dhcp/dhclient.conf:
  • /etc/dhcp/dhcpd.conf:
  • /etc/dhcpcd/dhcpcd.conf:
  • /etc/dircolors:
  • /etc/dovecot/conf.d/*:
  • /etc/dovecot/dovecot.conf:
  • /etc/dovecot/local.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/2.0/*:
  • /etc/gitconfig:
  • /etc/gpm-root.conf:
  • /etc/group:
  • /etc/gtk-2.0/gtkrc:
  • /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/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/lvm/lvm.conf:
  • /etc/lxdm/lxdm.conf:
  • /etc/lynx/lynx.cfg:
  • /etc/mail/*:
  • /etc/make-ca.conf:
  • /etc/mercurial/hgrc:
  • /etc/mime.types:
  • /etc/mplayer/*:
  • /etc/Muttrc:
  • /etc/mysql/my.cnf:
  • /etc/nail.rc:
  • /etc/named.conf:
  • /etc/namedb/pz/127.0.0.0:
  • /etc/namedb/root.hints:
  • /etc/nanorc:
  • /etc/ncftp.*:
  • /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/sysstat:
  • /etc/sysconfig/sysstat.ioconf:
  • /etc/tripwire/*:
  • /etc/udev/rules.d:
  • /etc/unbound/unbound.conf:
  • /etc/unixODBC/*:
  • /etc/vimrc:
  • /etc/vimrc:
  • /etc/vsftpd.conf:
  • /etc/wgetrc:
  • /etc/wireshark.conf:
  • /etc/wpa_supplicant/wpa_supplicant-*.conf:
  • /etc/X11/app-defaults/XScreenSaver:
  • /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/xml/docbook-5.1:
  • /etc/zsh/zlogin:
  • /etc/zsh/zlogout:
  • /etc/zsh/zprofile:
  • /etc/zsh/zshenv:
  • /etc/zsh/zshrc:
  • /etc/lightdm/keys.conf:
  • /lib/firmware:
  • /etc/lightdm/lightdm-gtk-greeter.conf:
  • /etc/lightdm/users.conf:
  • /usr/share/enchant/enchant.ordering:
  • /usr/share/fontconfig/conf.avail/*:
  • /usr/share/fonts:
  • /usr/share/graphviz/config:
  • /usr/share/gtk-2.0/gtkrc:
  • /usr/share/gtk-4.0/settings.ini:
  • /var/lib/alsa/asound.state:
  • /var/lib/krb5kdc/kdc.conf:

  • Informação Geral:
  • accounts-daemon:
  • acpid:
  • apache:
  • at:
  • autofs:
  • avahi:
  • bind:
  • bluetooth:
  • cups:
  • cups-browsed:
  • dhclient@.service:
  • dhcpcd:
  • dhcpd:
  • dovecot:
  • exim:
  • fcron:
  • gdm:
  • gitserve:
  • gpm:
  • iptables:
  • krb5:
  • lightdm:
  • lxdm:
  • ModemManager:
  • mysql:
  • NetworkManager:
  • nfs-client:
  • ntpd.service:
  • php:
  • postfix:
  • postgresql:
  • proftpd:
  • samba:
  • saslauthd:
  • sendmail:
  • slapd:
  • smartd:
  • sshd:
  • stunnel:
  • svnserve:
  • sysstat:
  • unbound:
  • upower:
  • winbindd:
  • zenmap:

  • Descrição do ALSA:
  • Configurando o Xorg:
  • Image::Magick:
  • Introdução ao KDE Frameworks:
  • Arquivos de arquivamento de biblioteca (.la):
  • bibliotecas: estáticas ou compartilhadas:
  • 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:
  • Arquivos de esquema de XML:
  • Regras Schematron de XML:
  • Folas de estilo XSL:
  • Folhas de Estilo XSL: