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

Versão 12.0

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-09-01

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

Resumo

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


Dedicação

Este livro é dedicado para a comunidade do LFS

Índice

Prefácio

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

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

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

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

Divirta-se usando o BLFS.

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

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

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

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

O projeto BLFS é uma progressão natural do LFS. Juntos, esses projetos fornecem um recurso único para a Comunidade do Fonte Aberto. Eles tiram o mistério do processo de construir um sistema de software funcional e completo a partir do código fonte contribuído por muitos(as) indivíduos(as) talentosos(as) 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 acerca da Configuração Pós LFS e Software Extra é onde a maioria das pessoas vai querer ir em seguida. Isso trata não apenas de configuração, mas também de Segurança (Capítulo 4, Segurança), Sistemas de Arquivos (Capítulo 5, Sistemas de Arquivos e Gerenciamento de Disco - incluindo "GRUB" para "UEFI"), Editores de Texto (Capítulo 6, Editores de Texto) e "Shells" (Capítulo 7, Shells). Na verdade, você possivelmente deseje consultar algumas partes desse capítulo (especialmente as seções relativas a Editores de Texto e Sistemas de Arquivos) enquanto constrói teu sistema LFS.

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

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

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

Os próximos doze capítulos tratam de sistemas de área de trabalho. Essa parte do livro começa com uma parte falando a respeito de Componentes Gráficos. Essa parte também trata de algumas bibliotecas genéricas baseadas no "X" (Capítulo 25, Bibliotecas Gráficas de Ambiente). Depois disso, KDE, GNOME, Xfce e 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.17

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

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

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

<TEXTO SUBSTITUÍDO>

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

root

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

 

Convenções Usadas para Dependências de Pacote

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

Dependências Exigidas

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

Dependências Recomendadas

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

Dependências Opcionais

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

 

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

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

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

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

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

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

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

 

Valores da UPC no BLFS

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

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

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

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

Versão do Livro

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

Sítios Espelhos

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

Obtendo os Pacotes Fonte

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

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

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

Registro das Mudanças

Lançamento atual: 12.0 – 1º de setembro de 2023

Entradas do Registro das Mudanças:

  • 1º de setembro de 2023

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

  • 31 de agosto de 2023

    • [renodr] - Atualização para Thunderbird-115.2.0 (atualização de segurança). Corrige #18479.

  • 30 de agosto de 2023

    • [renodr] - Arquivar LXDM devido a problemas com PAM e elogind.

    • [pierre] - Atualização para blocaled-0.5. Corrige #18480.

  • 29 de agosto de 2023

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

    • [ken] - Atualização para firefox-115.2.0 (Atualização de Segurança). Corrige #18468.

  • 28 de agosto de 2023

    • [renodr] - Atualização para libreoffice-7.6.0.3. Corrige #18435.

  • 24 de agosto de 2023

    • [bdubbs] - Atualização para kf5-apps-23.08.0, kate, kwave, falkon. Corrige #18152.

  • 23 de agosto de 2023

    • [renodr] - Atualização para Thunderbird-115.1.1 (Atualização de Segurança). Corrige #18323.

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

    • [bdubbs] - Atualização para qemu-8.1.0. Corrige #18408.

    • [bdubbs] - Atualização para plasma5-5.27.7. Corrige #18189.

    • [bdubbs] - Atualização para kf5-109.0. Corrige #18164.

  • 22 de agosto de 2023

    • [renodr] - Atualização para gnome-bluetooth-42.6. Corrige #18414.

    • [renodr] - Atualização para samba-4.18.6. Corrige #18416.

    • [bdubbs] - Atualização para xfce4-terminal-1.1.0. Corrige #18443.

    • [bdubbs] - Atualização para xfce4-appfinder-4.18.1. Corrige #18444.

    • [bdubbs] - Atualização para fop-2.9. Corrige #18441.

    • [bdubbs] - Atualização para apache-ant-1.10.14. Corrige #18433.

    • [renodr] - Atualização para WebKitGTK+-2.41.91. Corrige #18432.

  • 21 de agosto de 2023

    • [ken]- Atualização para mutt-2.2.11. Corrige #18431.

    • [bdubbs] - Falha do MPlayer-1.5 ao construir a partir do fonte com binutils-2.41. Corrige #18381.

  • 20 de agosto de 2023

    • [bdubbs] - Atualização para imlib2-1.12.0. Corrige #18428.

    • [renodr] - Mover Kea do capítulo Rede de Intercomunicação para o capítulo Servidores Principais.

  • 19 de agosto de 2023

    • [bdubbs] - Atualização para ImageMagick-7.1.1-15. Endereça #16962.

    • [bdubbs] - Atualização para php-8.2.9 (atualização de segurança). Corrige #18423.

  • 17 de agosto de 2023

    • [bdubbs] - Atualização para xwayland-23.2.0. Corrige #18415.

    • [bdubbs] - Atualização para mesa-23.1.6. Corrige #18417.

    • [bdubbs] - Atualização para libxcb-1.16. Corrige #18419.

    • [bdubbs] - Atualização para xcb-proto-1.16.0. Corrige #18418.

    • [renodr] - Atualização para screen-4.9.1. Corrige #18425.

    • [renodr] - Atualização para krb5-1.21.2 (atualização de segurança). Corrige #18420.

    • [renodr] - Atualização para bind-9.18.18. Corrige #18424.

    • [renodr] - Documentar um teste que é conhecido por travar em alguns sistemas em Rustc.

    • [renodr] - Desabilitar a criação do diretório /tmp/hsperfdata_[nomeusuário(a)] em Java. Em um sistema BLFS, esse diretório normalmente não é necessário.

  • 16 de agosto de 2023

    • [renodr] - Arquivar o módulo SUPER do Perl. Anteriormente, ele era usado somente por Archive::TestMockModule, que acabou de ser arquivado.

    • [renodr] - Arquivar Test::MockModule. Anteriormente ele era usado somente em Archive::Zip, mas não mais é usado lá.

    • [renodr] – Atualização para blfs-systemd-units-20230816. Isso corrige avisos ao usar o serviço sendmail.

  • 14 de agosto de 2023

    • [renodr] - Atualização para vala-0.56.11. Corrige #18412.

    • [renodr] - Atualização para VIM-9.0.1677 (sincronizar com o LFS).

    • [renodr] - Atualização para libsndfile-1.2.2. Corrige #18411.

    • [renodr] - Atualização para mc-4.8.30. Corrige #18410.

    • [renodr] - Atualização para libadwaita-1.3.4. Corrige #18409.

    • [timtas] - Atualização para openldap-2.6.6. Corrige #18361.

  • 13 de agosto de 2023

    • [thomas] - Atualização para openssh-9.4p1 e ssh-askpass-9.4p1. Corrige #18397.

    • [renodr] - Atualização para gtkmm-3.24.8. Corrige #18402.

    • [renodr] - Atualização para libcloudproviders-0.3.2. Corrige #18399.

    • [renodr] - Atualização para cmake-3.27.2. Corrige #18400.

    • [renodr] - Atualização para JSON-C-0.17. Corrige #18407.

    • [renodr] - Atualização para libsecret-0.21.0. Corrige #18406.

    • [renodr] - Atualização para Text-CSV-2.03 (módulo Perl). Corrige #18405.

    • [renodr] - Atualização para Text-CSV_XS-1.51 (módulo Perl). Corrige #18405.

    • [renodr] - Atualização para boost-1.83.0. Corrige #18404.

  • 12 de agosto de 2023

    • [ken] - mudar a observação de contexto no fonte do texlive para dizer que a correção para 'mkiv' será removida quando o texlive exigir uma atualização. Endereça #18349.

    • [renodr] - Atualização para WebKitGTK+-2.41.90. Corrige #18403.

  • 11 de agosto de 2023

    • [renodr] - Atualização para node.js-18.17.1 (atualização de segurança). Corrige #18395.

    • [renodr] - Atualização para postgresql-15.4 (atualização de segurança). Corrige #18401.

    • [renodr] - Atualização para NetworkManager-1.44.0. Corrige #18396.

    • [renodr] - Atualização para intel-gmmlib-22.3.10. Corrige #18398.

  • 9 de agosto de 2023

    • [renodr] - Atualização para unixODBC-2.3.12. Corrige #18394.

    • [renodr] - Atualização para fuse-3.16.1. Corrige #18393.

  • 8 de agosto de 2023

    • [renodr] - Habilitar a sandbox bubblewrap no WebKitGTK+. Isso deveria reduzir o impacto de futuras vulnerabilidades de segurança nesse pacote. Corrige #18391.

    • [renodr] - Adicionar xdg-user-proxy para suporte à permissão de sandbox no WebKitGTK+.

    • [ken] - Corrigir falha do fontforge ao construir a partir do fonte com gettext-0.22. Corrige #18392.

    • [renodr] - Atualização para mercurial-6.5.1. Corrige #18389.

    • [bdubbs] - Atualização para gtk-4.12.0. Corrige #18386.

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

  • 7 de agosto de 2023

    • [renodr] - Atualização para gvfs-1.50.6. Corrige #18387.

    • [renodr] - Atualização para vala-0.56.10. Corrige #18385.

    • [renodr] - Atualização para Pygments-2.16.1 (Módulo Python). Corrige #18384.

    • [renodr] - Atualização para gedit-46.1. Corrige #18383.

    • [renodr] - Atualização para rustc-1.71.1 (atualização de segurança). Corrige #18382.

    • [ken] - Atualização para qtwebengine-5.15.15 (correções de segurança). Corrige #18331.

  • 6 de agosto de 2023

    • [renodr] - Atualização para gnome-terminal-3.48.2. Corrige #18378.

    • [renodr] - Corrigir vulnerabilidades de segurança no WebKitGTK+ e problemas de tempo de execução em VMs. Corrige #18375.

    • [bdubbs] - Adicionar um remendo originário do(a) desenvolvedor(a) que permite que o ffmpeg-6.0 seja construído com binutils-2.41. Corrige #18367.

  • 5 de agosto de 2023

    • [bdubbs] - Atualização para pipewire-0.3.77. Corrige #18379.

    • [bdubbs] - Atualização para mesa-23.1.5. Corrige #18372.

  • 4 de agosto de 2023

    • [bdubbs] - Atualização para gnutls-3.8.1. Corrige #18377.

    • [bdubbs] - Atualização para SDL2-2.28.2. Corrige #18373.

    • [bdubbs] - Atualização para to unrar-6.2.10. Corrige #18371.

    • [bdubbs] - Atualização para sg3_utils-1.48. Corrige #18370.

    • [bdubbs] - Atualização para LVM2.2.03.22. Corrige #18369.

    • [renodr] - Atualização para seamonkey-2.53.17 (atualização de segurança). Corrige #18362.

    • [renodr] - Atualização para mariadb-10.11.4 (atualização de segurança). Corrige #18374.

  • 3 de agosto de 2023

    • [bdubbs] - Atualização para polkit-123. Corrige #18345.

    • [renodr] - Atualização para poppler-23.08.0. Corrige #18364.

    • [renodr] - Atualização para smartmontools-7.4. Corrige #18363.

    • [renodr] - Atualização para harfbuzz-8.1.1. Corrige #18359.

    • [renodr] - Atualização para emacs-29.1. Corrige #18356.

    • [renodr] - Atualização para sphinx-7.1.2. Corrige #18365.

  • 2 de agosto de 2023

    • [renodr] - Atualização para gedit-46.0. Corrige #18350.

    • [renodr] - Atualização para tepl-6.8.0. Corrige #18357.

    • [renodr] - Atualização para libgedit-amtk-5.8.0. Corrige #18366.

    • [renodr] - Atualização para libgedit-gtksourceview-299.0.4. Corrige #18353.

  • 1º de agosto de 2023

    • [renodr] - Atualização para epiphany-44.6. Corrige #18352.

    • [renodr] - Atualização para libarchive-3.7.1. Corrige #18351.

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

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

    • [renodr] - Documentar alguns dos comportamentos do GDM com GPUs da NVIDIA e uma possível solução alternativa se os(as) usuários(as) desejarem experimentá-lo. Corrige #18266.

    • [ken] - Atualização para firefox-115.1.0esr (atualização de segurança). Corrige #18310.

  • 31 de julho de 2023

    • [ken] - Atualização para Net-HTTP-6.23 (módulo Perl). Corrige #18358.

  • 30 de julho de 2023

    • [ken] - Atualização para dvisvgm-3.1. Corrige #18265.

    • [bdubbs] - Atualização para pipewire-0.3.76. Corrige #18348.

    • [bdubbs] - Atualização para mlt-7.18.0. Corrige #18347.

    • [bdubbs] - Atualização para gspell-1.12.2. Corrige #18346.

    • [bdubbs] - Atualização para gcc-13.2.0. Corrige #18341.

  • 28 de julho de 2023

    • [xry111] - Atualização para systemd-254 (sincronização com o LFS). Corrige #18344.

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

    • [renodr] - Atualização para nss-3.92. Corrige #18339.

    • [renodr] - Atualização para sphinx-7.1.1 (módulo Python). Corrige #18343.

    • [renodr] - Atualização para python-dbusmock-0.29.1 (módulo Python). Corrige #18342.

  • 27 de julho de 2023

    • [bdubbs] - Atualização para umockdev-0.17.18. Corrige #18338.

  • 26 de julho de 2023

    • [renodr] - Atualização para gexiv2-0.14.2. Corrige #18337.

    • [renodr] - Atualização para cmake-3.27.1. Corrige #18336.

    • [renodr] - Atualização para curl-8.2.1 (atualização de segurança). Corrige #18315.

  • 25 de julho de 2023

    • [bdubbs] - Atualização para qca-2.3.7. Corrige #18334.

    • [bdubbs] - Atualização para sudo-1.9.14p3. Corrige #18333.

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

  • 24 de julho de 2023

    • [bdubbs] - Atualização para inkscape-1.3. Corrige #18332.

  • 23 de julho de 2023

    • [renodr] - Atualização para pipewire-0.3.75. Corrige #18330.

    • [renodr] - Atualização para icewm-3.4.1. Corrige #18329.

    • [renodr] - Atualização para glu-9.0.3. Corrige #18328.

    • [renodr] - Atualização para mesa-23.1.4. Corrige #18325.

    • [bdubbs] - Atualização para libreoffice-7.5.5.2. Corrige #18322.

    • [renodr] - Atualização de gstreamer e plugins para 1.22.5 (atualização de segurança). Corrige #18318.

    • [renodr] - Atualização para librsvg-2.56.3 (atualização de segurança). Corrige #18327.

    • [renodr] - Atualização para libblockdev-3.0.2. Corrige #18319.

    • [renodr] - Atualização para talloc-2.4.1. Corrige #18320.

    • [renodr] - Atualização para libshumate-1.0.5. Corrige #18321.

    • [renodr] - Atualização para unrar-6.2.9. Corrige #18324.

  • 22 de julho de 2023

    • [renodr] - Atualização para OpenJDK-20.0.2 (atualização de segurança). Corrige #18317.

  • 21 de julho de 2023

    • [renodr] - Atualização para WebKitGTK+-2.41.6 (atualização de segurança). Corrige #18255.

    • [renodr] - Atualização para samba-4.18.5 (atualização de segurança). Corrige #18257.

    • [renodr] - Atualização para dhcpcd-10.0.2. Corrige #18314.

    • [renodr] - Atualização para fuse3-3.15.1. Corrige #18306.

    • [rahul] - Adicionar o remendo TearFree ao xorg-server. Corrige #18316.

  • 20 de julho de 2023

    • [bdubbs] - Atualização para bind-9.18.17. Corrige #18313.

    • [bdubbs] - Atualização para xfsprogs-6.4.0. Corrige #18312.

    • [bdubbs] - Atualização para openssh-9.3p2 (atualização de segurança). Corrige #18311.

    • [bdubbs] - Atualização para cmake-3.27.0. Corrige #18309.

    • [bdubbs] - Atualização para node-18.17.0. Corrige #18308.

  • 19 de julho de 2023

    • [bdubbs] - Atualização para libarchive-3.7.0. Corrige #18307.

    • [bdubbs] - Atualização para PyYAML-6.0.1. Corrige #18304.

    • [bdubbs] - Atualização para highlight-4.7. Corrige #18302.

    • [bdubbs] - Atualização para sudo-1.9.14p2. Corrige #18300.

    • [bdubbs] - Atualização para stunnel-5.70. Corrige #18296.

    • [bdubbs] - Atualização para nghttp2-1.55.1 (atualização de segurança). Corrige #18295.

    • [bdubbs] - Atualização para wireshark-4.0.7 (atualização de segurança). Corrige #18294.

    • [bdubbs] - Atualização para libva-2.19.0. Corrige #18293.

  • 18 de julho de 2023

    • [bdubbs] - Atualização para LWP (libwww-perl-6.72). Corrige #18305.

    • [bdubbs] - Atualização para krb5-1.21.1 (atualização de segurança). Corrige #18288.

    • [bdubbs] - Adicionar capítulos de Área de Trabalho e Aplicativos do LXQt.

    • [bdubbs] - Adicionar página do sddm (gerenciador de tela).

    • [bdubbs] - Adicionar páginas qt-alternate e qt-components do sddm.

    • [renodr] - Atualização para cheese-44.1. Corrige #18301.

    • [renodr] - Atualização para epiphany-44.5. Corrige #18263.

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

    • [renodr] - Atualização para intel-gmmlib-22.3.9. Corrige #18298.

  • 17 de julho de 2023

    • [bdubbs] - Atualização para liblinear-247. Corrige #18281.

    • [bdubbs] - Atualização para libbytesize-2.9. Corrige #18259.

    • [bdubbs] - Atualização para libblockdev-3.0.1. Corrige #18256.

    • [bdubbs] - Atualização para gnupg-2.4.3. Corrige #18250.

    • [xry111] - Arquivar xf86-video-*. Corrige #18267.

    • [bdubbs] - Atualização para LMDB_0.9.31. Corrige #18290.

    • [bdubbs] - Atualização para qpdf-11.5.0. Corrige #18282.

    • [bdubbs] - Atualização para harfbuzz-8.0.1. Corrige #18278.

    • [bdubbs] - Atualização para xapian-core-1.4.23. Corrige #18270.

    • [bdubbs] - Atualização para exempi-2.6.4. Corrige #18269.

  • 15 de julho de 2023

    • [xry111] - Atualização para rustc-1.71.0. Corrige #18297.

  • 12 de julho de 2023

    • [timtas] - Atualização para thunderbird-115.0. Corrige #18275.

    • [pierre] - Atualização para mercurial-6.5. Corrige #18261.

    • [pierre] - Atualização para glib-2.76.4. Corrige #18291.

    • [pierre] - Atualização para sudo-1.9.14p1. Corrige #18289.

    • [pierre] - Atualização para graphviz-8.1.0. Corrige #18271.

    • [pierre] - Atualização para gpgme-1.21.0. Corrige #18268.

    • [pierre] - Atualização para pipewire-0.3.74. Corrige #18264.

    • [pierre] - Atualização para inih-57. Corrige #18260.

    • [ken] - Atualização para firefox-115.0.2esr (correção de segurança). Corrige #18276.

  • 11 de julho de 2023

    • [renodr] - Atualização para libgudev-238. Corrige #18287.

    • [rahul] - Atualização para upower-1.90.2. Corrige #18251.

    • [pierre] - Atualização para qemu-8.0.3. Corrige #18277.

    • [rahul] - Atualização para libshumate-1.0.4. Corrige #18284.

    • [timtas] - Atualização para openldap-2.6.5. Corrige #18285.

    • [thomas] - Atualização para xterm-384. Corrige #18286.

    • [thomas] - Atualização para php-8.2.8. Corrige #18262.

  • 10 de julho de 2023

    • [renodr] - Atualização para LWP-Protocol-https-6.11 (módulo Perl, atualização de segurança). Corrige #18283.

    • [renodr] - Atualização para Test-Differences-0.70 (módulo Perl). Corrige #18272.

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

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

    • [renodr] - Atualização para Cython-0.29.36 (módulo Python). Corrige #18252.

  • 9 de julho de 2023

    • [pierre] - Atualização para mutter-44.3. Corrige #18274.

    • [pierre] - Atualização para gnome-shell-44.3. Corrige #18273.

  • 8 de julho de 2023

    • [thomas] - Adicionar ISC-Kea DHCP Server 2.4.0 (e a dependência dele, log4cplus) o qual é o sucessor do ISC dhcpd. Corrige #18160.

  • 6 de julho de 2023

    • [renodr] - Atualização para gnome-maps-44.3. Corrige #18239.

    • [renodr] - Atualização para evince-44.3. Corrige #18238.

    • [renodr] - Atualização para eog-44.3. Corrige #18237.

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

    • [renodr] - Atualização para gvfs-1.50.5. Corrige #18235.

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

    • [renodr] - Atualização para epiphany-44.4. Corrige #18228.

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

    • [renodr] - Atualização para tepl-6.6.0. Corrige #18226.

    • [renodr] - Atualização para opencv-4.8.0. Corrige #18213.

    • [renodr] - Atualização para gstreamer e plugins 1.22.4 (atualização de segurança). Corrige #18190.

    • [renodr] - Atualização para jdk-20.0.1 (atualização de segurança). Corrige #18192.

  • 5 de julho de 2023

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

    • [ken] - Atualização para ImageMagick-7.1.1-12 (correção de segurança). Corrige #18204.

  • 4 de julho de 2023

    • [ken] - Atualização para JS-102.13.0 (correção de segurança). Corrige #18248.

    • [ken] - Atualização para firefox-115.0esr (correção de segurança). Corrige #18220. Por favor, leia esse tíquete ou as Observações de Editor(a) para informações relativas às dependências mínimas se atualizar-se sistemas mais antigos.

    • [timtas] - Atualização para xfce4-settings-4.18.3. Corrige #18249.

    • [renodr] - Corrigir construção do xfsprogs-6.3.0 com gettext-0.22.

    • [bdubbs] - Atualização para wayland-protocols-1.32. Corrige #18247.

    • [bdubbs] - Atualização para libqalculate-4.7.0. Corrige #18246.

    • [bdubbs] - Atualização para vala-0.56.9. Corrige #18245.

    • [bdubbs] - Atualização para poppler-23.07.0. Corrige #18244.

    • [bdubbs] - Atualização para libjpeg-turbo-3.0.0. Corrige #18243.

  • 3 de julho de 2023

    • [bdubbs] - Atualização para taglib-1.13.1. Corrige #18234.

    • [bdubbs] - Atualização para SDL2-2.28.1. Corrige #18233.

    • [bdubbs] - Atualização para bluez-5.68. Corrige #18229.

    • [bdubbs] - Atualização para libuv-v1.46.0. Corrige #18225.

    • [bdubbs] - Atualização para libpaper-2.1.1. Corrige #18224.

    • [bdubbs] - Atualização para p11-kit-0.25.0. Corrige #18219.

    • [bdubbs] - Atualização para glib-networking-2.76.1. Corrige #18217.

    • [bdubbs] - Atualização para NetworkManager-1.42.8. Corrige #18215.

  • 1º de julho de 2023

    • [xry111] - Atualização para librsvg-2.56.2. Corrige #18231.

    • [timtas] - Atualização para nss-3.91. Corrige #18218.

  • 30 de junho de 2023

    • [bdubbs] - Atualização para udisks-2.10.0. Corrige #18214.

    • [bdubbs] - Atualização para libblockdev-3.0. Corrige #18216.

    • [bdubbs] - Adicionar libnvme-1.5 em suporte da libblockdev.

  • 29 de junho de 2023

    • [bdubbs] - Atualização para libwebp-1.3.1. Corrige #18212.

    • [bdubbs] - Atualização para xterm-383. Corrige #18210.

    • [timtas] - Mencionar como construir samba sem dbus.

    • [timtas] - Atualização para sudo-1.9.14. Corrige #18209.

  • 27 de junho de 2023

    • [renodr] - Corrigir construção de gexiv2 em sistemas i686. Corrige #18208.

    • [renodr] - Atualização do tarball systemd-units para 20230627.

    • [bdubbs] - Atualização para pipewire-0.3.72. Corrige #18207.

  • 26 de junho de 2023

    • [bdubbs] - Atualização para gedit-45.0. Corrige #18202.

    • [bdubbs] - Atualização para tepl-6.5.1 em suporte de gedit.

    • [bdubbs] - Adicionar libgedit-gtksourceview em suporte de tepl e gedit.

    • [bdubbs] - Atualização para flac-1.4.3. Corrige #18201.

    • [bdubbs] - Atualização para mercurial-6.4.5. Corrige #18196.

    • [renodr] - Atualização para ghostscript-10.01.2. Corrige #18194.

    • [renodr] - Atualização para libpng-1.6.40. Corrige #18195.

    • [renodr] - Atualização para freetype-2.13.1. Corrige #18203.

    • [renodr] - Atualização para pytest-7.4.0 (módulo Python). Corrige #18200.

    • [rahul] - Atualização para gegl-0.4.46. Corrige #18206.

  • 25 de junho de 2023

    • [renodr] - Corrigir construção do ncftp com GCC-13/clang-16. Corrige #18205.

    • [timtas] - Atualização para mesa-23.1.3. Corrige #18197.

  • 23 de junho de 2023

    • [renodr] - Atualização para BIND-9.18.16 (atualização de segurança). Corrige #18193.

    • [renodr] - Atualização para node.js-18.16.1 (atualização de segurança). Corrige #18187.

    • [renodr] - Atualização para cups-2.4.6 (atualização de segurança). Corrige #18198.

    • [ken] - Remover dependência obsoleta opcional exiv2 do gegl-0.4.44. Corrige #18199.

    • [thomas] - Atualização para libburn-1.5.6, libisofs-1.5.6 e libisoburn-1.5.6. Corrige #18191.

  • 22 de junho de 2023

    • [renodr] - Atualização para libksba-1.6.4. Corrige #18185.

    • [renodr] - Atualização para libassuan-2.5.6. Corrige #18184.

    • [renodr] - Atualização para libwww-perl-6.71 (módulo Perl). Corrige #18188.

    • [renodr] - Atualização para pycairo-1.24.0 (módulo Python). Corrige #18186.

    • [renodr] - Atualização para SDL2-2.28.0. Corrige #18172.

  • 19 de junho de 2023

    • [renodr] - Atualização para evince-44.2. Corrige #18183.

    • [renodr] - Atualização para pyparsing-3.1.0 (módulo Python). Corrige #18182.

    • [renodr] - Atualização para NumPy-1.25.0 (módulo Python). Corrige #18181.

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

  • 17 de junho de 2023

    • [renodr] - Atualização para gnome-video-effects-0.6.0. Corrige #18171.

    • [renodr] - Atualização para tiff-4.5.1. Corrige #18170.

    • [renodr] - Corrigir CVE-2023-24805 em cups-filters. Corrige #18180.

    • [pierre] - Atualização para mupdf-1.22.2. Corrige #18178

    • [pierre] - Atualização para xorgproto-2023.2. Corrige #18177

    • [pierre] - Atualização para gjs-1.76.2. Corrige #18175

  • 16 de junho de 2023

    • [rahul] - Atualização para libX11 to 1.8.6 (atualização de segurança). Corrige #18174

  • 15 de junho de 2023

    • [renodr] - Atualização para Thunderbird-102.12.0 (atualização de segurança). Corrige #18036.

    • [renodr] - Atualização para WebKitGTK+-2.41.5 para corrigir problemas de oscilação da tela em GPUs da Intel. Corrige #18051.

  • 14 de junho de 2023

    • [bdubbs] - Atualização para cups-2.4.5. Corrige #18169.

    • [bdubbs] - Atualização para icu4c-73_2. Corrige #18168.

  • 13 de junho de 2023

    • [ken] - Atualização para asymptote-2.86. Corrige #18148.

    • [pierre] - Atualização para qt5-5.15.10. Corrige #18144.

  • 12 de junho de 2023

    • [bdubbs] - Atualização para gjs-1.76.1. Corrige #18166.

    • [bdubbs] - Atualização para xkeyboard-config-2.39. Corrige #18165.

    • [bdubbs] - Atualização para pytest-7.3.2 (módulo Python). Corrige #18162.

    • [bdubbs] - Atualização para libreoffice-7.5.4.2. Corrige #18153.

  • 11 de junho de 2023

    • [renodr] - Atualização para fuse-3.15.0. Corrige #18159.

    • [renodr] - Atualização para libadwaita-1.3.3. Corrige #18163.

  • 10 de junho de 2023

    • [bdubbs] - Atualização para libgusb-0.4.6. Corrige #18155.

    • [bdubbs] - Atualização para mesa-23.1.2. Corrige #18154.

    • [bdubbs] - Atualização para cachecontrol-0.13.1. Corrige #18151.

    • [bdubbs] - Atualização para php-8.2.7. Corrige #18150.

    • [bdubbs] - Atualização para mercurial-6.4.4. Corrige #18149.

    • [bdubbs] - Atualização para nghttp2-1.54.0. Corrige #18147.

    • [thomas] - Adicionar um sed ao poppler para corrigir um problema de construção em sistemas de 32 bits.

  • 9 de junho de 2023

    • [bdubbs] - Atualização para python3-3.11.4. Corrige #18145.

    • [bdubbs] - Atualização para dbus-1.14.8. Corrige #18141.

    • [renodr] - Atualização para intel-gmmlib-22.3.7. Corrige #18140.

    • [renodr] - Atualização para sendmail-8.17.2. Corrige #18131.

    • [renodr] - Atualização para gucharmap-15.0.4. Corrige #17815.

    • [renodr] - Atualização para gnome-weather-44.0. Corrige #17840.

    • [renodr] - Atualização para gnome-terminal-3.48.1. Corrige #17814.

    • [renodr] - Adicionar um remendo ao Desktop File Utils para manusear a tecla SingleMainWindow. Corrige #17925.

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

    • [renodr] - Atualização para gnome-maps-44.2. Corrige #17827.

    • [renodr] - Atualização para gnome-disk-utility-44.0. Corrige #17802.

    • [renodr] - Atualização para gnome-calculator-44.0. Corrige #17812.

    • [renodr] - Atualização para evolution-3.48.3. Corrige #17808.

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

    • [renodr] - Atualização para evince-44.1. Corrige #17826.

    • [renodr] - Atualização para eog-44.2. Corrige #17825.

    • [renodr] - Atualização para cheese-44.0.1. Corrige #17920.

    • [renodr] - Atualização para baobab-44.0. Corrige #17839.

    • [renodr] - Atualização para gdm-44.1. Corrige #18013.

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

    • [renodr] - Atualização para gnome-session-44.0. Corrige #18157.

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

    • [renodr] - Atualização para gnome-shell-44.2. Corrige #17836.

    • [renodr] - Atualização para mutter-44.2. Corrige #17835.

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

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

  • 8 de junho de 2023

    • [bdubbs] - Atualização para sphinx_rtd_theme-1.2.2. Corrige #18146.

    • [bdubbs] - Atualização para gtk-4.10.4. Corrige #18143.

    • [bdubbs] - Atualização para xwayland-23.1.2. Corrige #18142.

    • [bdubbs] - Atualização para krb5-1.21. Corrige #18139.

    • [bdubbs] - Atualização para poppler-23.06.0. Corrige #18137.

    • [bdubbs] - Atualização para xorgproto-2023.1. Corrige #18136.

    • [bdubbs] - Atualização para nss-3.90. Corrige #18135.

    • [bdubbs] - Atualização para icewm-3.4.0. Corrige #18134.

    • [bdubbs] - Atualização para bluefish-2.2.14. Corrige #18129.

    • [bdubbs] - Atualização para cups-2.4.4. Corrige #18125.

    • [timtas] - Atualização para nettle-3.9.1. Corrige #18119.

    • [thomas] - Atualização para postfix-3.8.1. Corrige #18138.

  • 7 de junho de 2023

    • [bdubbs] - Atualização para librsvg-2.56.1. Corrige #18118.

    • [bdubbs] - Atualização para rustc-1.70.0. Corrige #18122.

    • [bdubbs] - Atualização para llvm-16.0.5. Corrige #18127.

    • [renodr] - Atualização para nautilus-44.2.1. Corrige #17810.

    • [renodr] - Atualização para gvfs-1.50.4. Corrige #17809.

    • [renodr] - Atualização para gnome-backgrounds-44.0. Corrige #17833.

  • 6 de junho de 2023

    • [bdubbs] - Atualização para vte-0.70.2. Corrige #18124.

    • [bdubbs] - Atualização para ntp-4.2.8p17. Corrige #18123.

    • [bdubbs] - Atualização para tree-2.1.1. Corrige #18117.

    • [bdubbs] - Atualização para cachecontrol-0.13.0.tar.gz (módulo Python). Corrige #18115.

    • [bdubbs] - Atualização para unrar-6.2.8. Corrige #18114.

    • [ken] - Atualização para firefox-102.12.0 (atualização de segurança) e JS-102.12.0. Corrige #18110.

  • 5 de junho de 2023

    • [bdubbs] - Atualização para serf-1.3.10. Corrige #18113.

    • [bdubbs] - Atualização para gnupg-2.4.2. Corrige #18106.

    • [bdubbs] - Atualização para gc-8.2.4. Corrige #18103.

    • [bdubbs] - Atualização para xfce4-pulseaudio-plugin-0.4.7. Corrige #18111.

    • [bdubbs] - Atualização para xfce4-session-4.18.3. Corrige #18100.

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

  • 4 de junho de 2023

    • [bdubbs] - Atualização para xwd-1.0.9 (aplicativo do Xorg). Corrige #18133.

    • [bdubbs] - Atualização para xrdb-1.2.2 (aplicativo do Xorg). Corrige #18132.

    • [bdubbs] - Deletar a biblioteca obsoleta do Xorg libdmx. Corrige #18128.

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

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

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

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

    • [bdubbs] - Atualização para xterm-382. Corrige #18107.

    • [bdubbs] - Atualização para curl-8.1.2. Corrige #18104.

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

  • 2 de junho de 2023

    • [timtas] - Atualização para git-2.41.0. Corrige #18121.

  • 1º de junho de 2023

    • [timtas] - Atualização para qemu-8.0.2. Corrige #18102.

    • [renodr] - Atualização para tracker-miners-3.5.2. Corrige #17832.

    • [renodr] - Atualização para tracker-3.5.3. Corrige #17832.

    • [renodr] - Atualização para evolution-data-server-3.48.2. Corrige parcialmente #17808.

    • [renodr] - Atualização para libpeas-1.36.0. Corrige #17807.

    • [xry111] - Atualização para libssh2-1.11.0. Corrige #18105.

  • 31 de maio de 2023

    • [timtas] - Atualização para xfce4-power-manager-4.18.2. Corrige #18108.

    • [timtas] - Atualização para samba-4.18.3. Corrige #18109.

    • [pierre] - Corrigir construção de gwenview e libkexiv2 em relação a exiv2-0.28.

  • 30 de maio de 2023

    • [bdubbs] - Atualização para webkitgtk-2.40.2. Corrige #18099.

  • 29 de maio de 2023

    • [pierre] - Atualização para at-spi2-core-2.48.3. Corrige #18098.

    • [pierre] - Atualização para xterm-381. Corrige #18097.

    • [pierre] - Atualização para gdb-13.2. Corrige #18096.

    • [pierre] - Atualização para epiphany-44.3. Corrige #18095.

    • [pierre] - Atualização para vala-0.56.8. Corrige #18094.

    • [bdubbs] - Atualização para vim-9.0.1503. Endereça #12241.

  • 28 de maio de 2023

    • [bdubbs] - Atualização para glib-2.76.3. Corrige #18092.

    • [bdubbs] - Atualização para mesa-23.1.1. Corrige #18091.

  • 27 de maio de 2023

    • [pierre] - Atualização para gexiv2-0.14.1 (com um remendo para exiv2-0.28). Corrige #18020.

  • 26 de maio de 2023

    • [bdubbs] - Atualização para sdl12-compat-release-1.2.64. Corrige #18090.

    • [bdubbs] - Atualização para exiv2-0.28.0. Corrige #18093.

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

    • [ken] - Atualização de como listar todas as opções de configuração para Firefox e Thunderbird.

  • 25 de maio de 2023

    • [bdubbs] - Atualização para wireshark-4.0.6 (correção de segurança). Corrige #18088.

  • 24 de maio de 2023

    • [renodr] - Atualização para grilo-0.3.16. Corrige #18035.

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

    • [renodr] - Atualização para gnome-desktop-44.0. Corrige #17831.

    • [renodr] - Atualização para gnome-autoar-0.4.4. Corrige #17805.

    • [bdubbs] - Atualização para sphinx_rtd_theme-1.2.1. Corrige #18087.

    • [bdubbs] - Atualização das dependências do sphinx do Python para sphinxcontrib-jquery-4.1, sphinxcontrib-applehelp-1.0.4 e sphinxcontrib-htmlhelp-2.0.1.

    • [pierre] - Atualização para requests-2.31.0 (módulo Python, atualização de segurança). Corrige #18084.

    • [pierre] - Atualização para enchant-2.5.0. Corrige #18082.

    • [pierre] - Atualização para xfsprogs-6.3.0. Corrige #18081.

    • [pierre] - Atualização para nmap-7.94. Corrige #18076.

    • [pierre] - Atualização para qpdf-11.4.0. Corrige #18075.

    • [bdubbs] - Atualização para highlight-4.6. Corrige #18086.

  • 23 de maio de 2023

    • [bdubbs] - Atualização para curl-8.1.1. Corrige #18085.

    • [bdubbs] - Atualização para gtk+3-3.24.38. Corrige #18083.

    • [timtas] - Atualização para xfce4-panel-4.18.4. Corrige #18079.

    • [timtas] - Atualização para libxfce4ui-4.18.4. Corrige #18078.

    • [bdubbs] - Atualização para gstreamer-1.22.3 e gst-plugins. Corrige #18073.

  • 22 de maio de 2023

    • [bdubbs] - Atualização para libuv-1.45.0. Corrige #18074.

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

    • [bdubbs] - Atualização para double-conversion-3.3.0. Corrige #18071.

    • [ken] - Atualização para c-ares-1.19.1 (correção de segurança). Corrige #18077.

    • [bdubbs] - Atualização para icewm-3.3.5. Corrige #18068.

    • [bdubbs] - Atualização para doxygen-1.9.7. Corrige #18068.

    • [ken] - módulos Perl - adicionar Test::Deep, Test::Requires e URI como dependências de teste para HTTP::CookieJar. Corrige #18080.

  • 21 de maio de 2023

    • [bdubbs] - Atualização para cmake-3.26.4. Corrige #18067.

    • [bdubbs] - Atualização para libwacom-2.7.0. Corrige #18066.

    • [bdubbs] - Atualização para pipewire-0.3.71. Corrige #18065.

    • [bdubbs] - Atualização para bind e utilitários do bind 9.18.15. Corrige #18063.

    • [bdubbs] - Atualização para llvm-16.0.4. Corrige #18061.

  • 19 de maio de 2023

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

    • [bdubbs] - Atualização para dos2unix-7.5.0. Corrige #18060.

    • [bdubbs] - Atualização para asciidoctor-2.0.20. Corrige #18059.

    • [bdubbs] - Atualização para docutils-0.20.1 (módulo Python). Corrige #18057.

    • [bdubbs] - Atualização para libcap-2.69. Corrige #18054.

    • [bdubbs] - Atualização para fribidi-1.0.13. Corrige #18055.

    • [bdubbs] - Atualização para unrar-6.2.7. Corrige #18049.

    • [bdubbs] - Atualização para lua-5.4.6. Corrige #18048.

    • [bdubbs] - Atualização para setxkbmap-1.3.4 (aplicativo do Xorg). Corrige #18047.

  • 17 de maio de 2023

    • [bdubbs] - Atualização para nettle-3.9. Corrige #18046.

    • [bdubbs] - Atualização para at-spi2-core-2.48.2. Corrige #18041.

    • [bdubbs] - Atualização para php-8.2.6. Corrige #18039.

    • [timtas] - Atualização para curl-8.1.0. Corrige #18058.

    • [xry111] - Atualização para sqlite-autoconf-3420000 (3.42.0). Corrige #18056.

  • 16 de maio de 2023

    • [pierre] - Atualização para sphinx-7.0.1 (módulo Python). Corrige #18043.

    • [pierre] - Atualização para mupdf-1.22.1. Corrige #18038.

    • [pierre] - Atualização para docutils-0.20 (módulo Python). Corrige #18050.

  • 15 de maio de 2023

    • [bdubbs] - Atualização para mesa-23.1.0. Corrige #18034.

    • [timtas] - Atualização para ristretto-0.13.1. Corrige #18045.

  • 14 de maio de 2023

    • [bdubbs] - Atualização para plasma-5.27.5. Corrige #17685.

    • [bdubbs] - Atualização para kf5-gear-23.04.1 incluindo kate, kwave e falkon. Corrige #17741.

    • [bdubbs] - Atualização para kf5-5.106.0. Corrige #17778.

    • [xry111] - Atualização para llvm-16.0.3. Corrige #17861.

  • 13 de maio de 2023

    • [pierre] - Adicionar HTTP::CookieJar-0.014 (dependência de módulo Perl) necessário para libwww-perl-6.70.

    • [pierre] - Atualização para Business::ISBN::Data-20230426.001 (dependência de módulo Perl) porque uma versão mais recente é necessária para Business::ISBN-3.008. Corrige #18044.

  • 12 de maio de 2023

    • [ken] - Atualização para qtwebengine-5.15.14 (correções de segurança). Corrige #18024.

    • [timtas] - Atualização para postgresql-15.3. Corrige #18040.

    • [bdubbs] - Atualização para libaom-3.6.1. Corrige #18037.

    • [bdubbs] - Atualização para rpcsvc-proto-1.4.4. Corrige #18033.

    • [bdubbs] - Atualização para nghttp2-1.53.0. Corrige #18032.

    • [bdubbs] - Atualização para wget-1.21.4. Corrige #18031.

  • 11 de maio de 2023

    • [bdubbs] - Atualização para xterm-380. Corrige #18030.

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

    • [bdubbs] - Atualização para harfbuzz-7.3.0. Corrige #18028.

  • 9 de maio de 2023

    • [timtas] - Atualização para Linux-PAM-1.5.3. Corrige #18025.

    • [ken] - Atualização para firefox-102.11.0 (com um sed para GCC-13) e JS-102.11.0 (ambos são correções de segurança). Corrige #18022.

    • [ken] - Usar um sed para corrigir falha do libvdpau-va-gl-0.4.0 ao construir a partir do fonte com GCC-13. Corrige #18027.

    • [ken] - Remendar fonte do texlive para uma correção de segurança. #18006.

    • [bdubbs] - Atualização para libxslt-1.1.38. Corrige #18026.

  • 8 de maio de 2023

    • [ken] - Usar um sed para corrigir falha do pango-1.50.14 ao construir a partir do fonte com GCC-13. Corrige #18023.

    • [bdubbs] - Atualização para mlt-7.16.0. Corrige #18021.

  • 7 de maio de 2023

    • [pierre] - Usar um sed para corrigir falha do QT5 ao construir a partir do fonte com GCC-13. Corrige #18019.

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

    • [bdubbs] - Atualização para nss-3.89.1. Corrige #18017.

    • [bdubbs] - Atualização para graphviz-8.0.5. Corrige #18015.

    • [bdubbs] - Atualização para babl-0.1.106. Corrige #18014.

    • [bdubbs] - Atualização para mercurial-6.4.3. Corrige #18007.

    • [bdubbs] - Atualização para libreoffice-7.5.3.2. Corrige #18011.

  • 6 de maio de 2023

    • [bdubbs] - Atualização para libevdev-1.13.1 (controlador do Xorg). Corrige #18010.

    • [bdubbs] - Atualização para libXi-1.8.1 (biblioteca do Xorg). Corrige #18009.

    • [timtas] - Atualização para intel-media-23.2.1. Corrige #18016.

  • 5 de maio de 2023

    • [bdubbs] - Atualização para requests-2.30.0 (módulo Python). Corrige #18008.

    • [bdubbs] - Atualização para urllib3-2.0.2 (módulo Python). Exigido para requests-2.30.0.

    • [timtas] - Atualização para alsa-lib alsa-utils 1.2.9. Corrige #18012.

    • [timtas] - Atualização para xarchiver-0.5.4.21. Corrige #18005.

  • 4 de maio de 2023

    • [bdubbs] - Atualização para icewm-3.3.4. Corrige #18004.

  • 3 de maio de 2023

    • [bdubbs] - Atualização para imlib2-1.11.1. Corrige #18003.

    • [bdubbs] - Atualização para poppler-23.05.0. Corrige #18002.

    • [bdubbs] - Atualização para qca-2.3.6. Corrige #18001.

    • [bdubbs] - Atualização para pciutils-3.10.0. Corrige #18000.

    • [bdubbs] - Atualização para cpio-2.14. Corrige #17999.

    • [bdubbs] - Atualização para libsoup3-3.4.2. Corrige #17998.

    • [bdubbs] - Atualização para gspell-1.12.1. Corrige #17997.

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

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

  • 2 de maio de 2023

    • [bdubbs] - Atualização para iso-codes-4.15.0. Corrige #17992.

    • [bdubbs] - Atualização para valgrind-3.21.0. Corrige #17990.

    • [bdubbs] - Atualização para gnupg-2.4.1. Corrige #17989.

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

  • 1º de maio de 2023

    • [bdubbs] - Atualização para gcc-13.1. Corrige #17983.

  • 30 de abril de 2023

    • [timtas] - Atualização para thunar-4.18.6. Corrige #17996.

  • 29 de abril de 2023

    • [timtas] - Atualização para thunar-4.18.5. Corrige #17991.

  • 28 de abril de 2023

    • [bdubbs] - Atualização para xinput-1.6.4 (aplicativo do Xorg). Corrige #17987.

    • [bdubbs] - Atualização para xdpyinfo-1.3.4 (aplicativo do Xorg). Corrige #17986.

    • [timtas] - Atualização para git-2.40.1. Corrige #17980.

  • 27 de abril de 2023

    • [ken] - em texlive (fonte) criar config.cache. Isso economiza um tempo significativo em uma construção paralela.

    • [renodr] - Atualização para xf86-video-ati-22.0.0 (controlador do Xorg). Corrige #17981.

    • [bdubbs] - Atualização para harfbuzz-7.2.0. Corrige #17984.

    • [bdubbs] - Atualização para requests-2.29.0 (módulo Python). Corrige #17985.

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

  • 24 de abril de 2023

    • [timtas] - Atualização para thunderbird-102.10.1. Corrige #17979.

    • [bdubbs] - Atualização para glib-2.76.2. Corrige #17978.

  • 23 de abril de 2023

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

    • [renodr] - Atualização para gsettings-desktop-schemas-44.0. Corrige #17830.

    • [renodr] - Atualização para vte-0.72.1. Corrige #17804.

    • [bdubbs] - Atualização para rustc-1.69.0. Corrige #17965.

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

    • [renodr] - Atualização para libadwaita-1.3.2. Corrige #17976.

    • [renodr] - Atualização para gtk-4.10.3. Corrige #17975.

    • [renodr] - Atualização para NetworkManager-1.42.6. Corrige #17967.

    • [renodr] - Adicionar webp-pixbuf-loader em suporte do EOG. Corrige #17923.

  • 22 de abril de 2023

    • [bdubbs] - Atualização para LVM2.2.03.21. Corrige #17973.

    • [bdubbs] - Atualização para libsoup-3.4.1. Corrige #17972.

    • [bdubbs] - Atualização para Data-Compare-1.29 (módulo Perl). Corrige #17971.

    • [bdubbs] - Atualização para gpgme-1.20.0. Corrige #17970.

  • 21 de abril de 2023

    • [renodr] - Atualização para epiphany-44.2. Corrige #17816.

    • [renodr] - Atualização para WebKitGTK+-2.40.1 (atualização de segurança). Corrige #17801.

    • [bdubbs] - Atualização para pipewire-0.3.70. Corrige #17969.

    • [bdubbs] - Atualização para dhcpcd-10.0.1. Corrige #17966.

    • [timtas] - Atualização para mesa-23.0.3. Corrige #17968.

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

    • [bdubbs] - Atualização para babl-0.1.104. Corrige #17963.

  • 20 de abril de 2023

    • [bdubbs] - Atualização para qemu-8.0.0. Corrige #17962.

    • [bdubbs] - Atualização para bind9 e bind 9.18.14. Corrige #17961.

    • [bdubbs] - Atualização para nfs-utils-2.6.3. Corrige #17960.

    • [bdubbs] - Atualização para vala-0.56.7. Corrige #17959.

    • [renodr] - Adicionar libavif em suporte do WebKitGTK+. Corrige #17952.

    • [renodr] - Adicionar libaom em suporte do libavif. Corrige #17953.

  • 19 de abril de 2023

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

    • [bdubbs] - Atualização para libqalculate-4.6.1. Corrige #17950.

    • [renodr] - Adicionar unifdef ao livro. Corrige #17924.

    • [renodr] - Atualização para gtksourceview5-5.8.0. Corrige #17817.

    • [renodr] - Atualização para libadwaita-1.3.1. Corrige #17818.

    • [renodr] - Atualização para sysprof-3.48.0. Corrige #17820.

    • [renodr] - Atualização para libsoup-3.4.0. Corrige #17821.

    • [renodr] - Atualização para gjs-1.76.0. Corrige #17824.

    • [renodr] - Atualização para pygobject-3.44.1 (módulo Python). Corrige #17841.

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

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

    • [renodr] - Atualização da pilha do gstreamer para 1.22.2. Inclui o pacote básico e todos os plugins. Corrige #17921.

    • [timtas] - Atualização para transmission-4.0.3. Corrige #17937.

    • [renodr] - Atualização para network-manager-applet-1.32.0. Corrige #17951.

    • [renodr] - Atualização para samba-4.18.2. Corrige #17958.

  • 18 de abril de 2023

    • [pierre] - Remendar qtwebengine para ICU-73. Corrige #17941.

    • [bdubbs] - Atualização para libXpm-3.5.16 (biblioteca do Xorg). Corrige #17949.

    • [bdubbs] - Atualização para libXft-2.3.8 (biblioteca do Xorg). Corrige #17948.

    • [bdubbs] - Atualização para umockdev-0.17.17. Corrige #17945.

    • [bdubbs] - Atualização para apr-1.7.4. Corrige #17944.

    • [bdubbs] - Atualização para postfix-3.8.0. Corrige #17943.

    • [bdubbs] - Atualização para graphviz-8.0.3. Corrige #17942.

    • [timtas] - Atualização para tumbler-4.18.1. Corrige #17947.

    • [timtas] - Atualização para xfconf-4.18.1. Corrige #17946.

  • 17 de abril de 2023

    • [bdubbs] - Atualização para php-8.2.5. Corrige #17935.

    • [bdubbs] - Atualização para mercurial-6.4.2. Corrige #17934.

  • 15 de abril de 2023

    • [bdubbs] - Atualização para dhcpcd-10.0.0. Corrige #17940.

    • [bdubbs] - Atualização para boost-1.82.0. Corrige #17939.

    • [bdubbs] - Atualização para mupdf-1.22.0. Corrige #17938.

    • [bdubbs] - Atualização para node-18.16.0. Corrige #17928.

    • [bdubbs] - Atualização para libpaper-2.1.0. Corrige #17927.

    • [bdubbs] - Atualização para icu4c-73.1. Corrige #17926.

    • [bdubbs] - Atualização para tcsh-6.24.10. Corrige #17933.

    • [bdubbs] - Atualização para pipewire-0.3.69. Corrige #17932.

    • [bdubbs] - Atualização para pytest-7.3.1 (módulo Python). Corrige #17936.

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

  • 14 de abril de 2023

    • [bdubbs] - Atualização para Python-3.11.3. Corrige #17895.

  • 13 de abril de 2023

    • [renodr] - Atualização para Wireshark-4.0.5 (atualização de segurança). Corrige #17930.

    • [renodr] - Atualização para libxml2-2.10.4 (atualização de segurança). Corrige #17922.

    • [renodr] - Atualização para Thunderbird-102.10.0 (atualização de segurança). Corrige #17931.

  • 11 de abril de 2023

    • [ken] - Remover mtxrun --generate desnecessário do texlive. Corrige #17919.

    • [ken] - Atualização para firefox-102.10.0 e JS-102.10.0 (ambos são correções de segurança). Corrige #17913.

    • [ken] - Remendar libwebp-1.0.3 (correção de segurança). Corrige #17918.

  • 10 de abril de 2023

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

    • [bdubbs] - Atualização para graphviz-8.0.2. Corrige #17916.

    • [bdubbs] - Atualização para tcsh-6.24.08. Corrige #17915.

    • [bdubbs] - Atualização para parted-3.6. Corrige #17914.

  • 10 de abril de 2023

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

    • [bdubbs] - Atualização para xwininfo-1.1.6 (aplicativo do Xorg). Corrige #17911.

    • [bdubbs] - Atualização para libXfixes-6.0.1 (biblioteca do Xorg). Corrige #17910.

    • [bdubbs] - Atualização para libXt-1.3.0 (biblioteca do Xorg). Corrige #17909.

    • [bdubbs] - Atualização para icewm-3.3.3. Corrige #17908.

    • [pierre] - Atualização para Qt-5.15.9. Corrige #17900.

    • [renodr] - Atualização para xf86-input-wacom-1.2.0 (controlador do Xorg). Corrige #17897.

    • [renodr] - Atualização para vala-0.56.6. Corrige #17896.

    • [renodr] - Atualização para graphviz-8.0.1. Corrige #17885.

    • [renodr] - Atualização para wayland-1.22.0. Corrige #17892.

    • [renodr] – Corrigir vários defeitos e incompatibilidades com núcleos mais recentes no pm-utils.

  • 9 de abril de 2023

    • [bdubbs] - Atualização para libgcrypt-1.10.2. Corrige #17903.

    • [bdubbs] - Atualização para mesa-23.0.2. Corrige #17906.

    • [bdubbs] - Atualização para libpcap-1.10.4. Corrige #17905.

    • [bdubbs] - Atualização para pytest-7.3.0 (módulo Python). Corrige #17907.

  • 8 de abril de 2023

    • [renodr] - Atualização para libreoffice-7.5.2.2. Corrige #17883.

    • [renodr] - Atualização para libva-2.18.0. Corrige #17879.

  • 7 de abril de 2023

    • [bdubbs] - Atualização para pipewire-0.3.68. Corrige #17902.

    • [timtas] - Atualização para httpd-2.4.57. Corrige #17899.

    • [bdubbs] - Atualização para libgpg-error-1.47. Corrige #17904.

    • [bdubbs] - Atualização para feh-3.10. Corrige #17901.

    • [renodr] - Atualização para Seamonkey-2.53.16 (atualização de segurança). Corrige #17884.

    • [bdubbs] - Mudar SDL-1.2 para sdl12-compat-release-1.2.60. Corrige #17898.

  • 6 de abril de 2023

    • [renodr] - Atualização para ruby-3.2.2 (atualização de segurança). Corrige #17887.

    • [pierre] - Atualização para accountsservice-23.13.9. Corrige #17789.

    • [bdubbs] - Atualização para SDL2-2.26.5. Corrige #17894.

    • [bdubbs] - Atualização para xf86-input-libinput-1.3.0 (controlador do Xorg). Corrige #17893.

    • [pierre] - Remendar firefox para ffmpeg-6.0

  • 4 de abril de 2023

    • [bdubbs] - Atualização para poppler-23.04.0. Corrige #17890.

    • [bdubbs] - Atualização para cracklib-2.9.11. Corrige #17889.

    • [bdubbs] - Atualização para cmake-3.26.3. Corrige #17886.

  • 3 de abril de 2023

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

    • [bdubbs] - Atualização para libatomic_ops-7.8.0. Corrige #17876.

    • [bdubbs] - Atualização para libcap-2.68. Corrige #17865.

    • [bdubbs] - Atualização para libbytesize-2.8. Corrige #17854.

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

    • [bdubbs] - Atualização para sqlite-autoconf-3410200 (3.41.2). Corrige #17849.

    • [bdubbs] - Atualização para Business-ISBN-3.008 (módulo Perl). Corrige #17855.

    • [bdubbs] - Atualização para SCons-4.5.2. Corrige #17848.

    • [bdubbs] - Atualização para links-2.29. Corrige #17847.

    • [renodr] - Corrigir construção do Thunderbird com rustc-1.68.x.

  • 2 de abril de 2023

    • [bdubbs] - Atualização para wpebackend-fdo-1.14.2. Corrige #17846.

    • [bdubbs] - Atualização para adwaita-icon-theme-44.0. Corrige #17838.

    • [bdubbs] - Atualização para mpg123-1.31.3. Corrige #17828.

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

    • [ken] - Atualização para mutt-2.2.10. Corrige #17863.

    • [ken] - Atualização para biber-2.19. Corrige #17757.

    • [ken] - Atualização para dvisvgm-3.0.4. Corrige #17775.

    • [ken] - Adicionar uma solução alternativa para suportar o ConText (mkiv) no texlive-2023. Endereça #17843.

    • [ken] - Atualização para texlive-2023 e install-tl-unx de 2023. Corrige #17823.

    • [ken] - Mover a criação do link simbólico para libkpathsea da pré-configuração no dvisvgm para o final do texlive (desde o fonte), de forma que um evince existente vinculado ao texlive do ano anterior tenha a chance de funcionar.

  • 1º de abril de 2023

    • [pierre] - Remover flit_core das dependências do Python; ele agora está no LFS.

    • [bdubbs] - Atualização para gpgme-1.19.0. Corrige #17803.

    • [bdubbs] - Atualização para glib-networking-2.76.0. Corrige #17800.

    • [bdubbs] - Atualização para php-8.2.4. Corrige #17798.

    • [bdubbs] - Atualização para gtk-4.10.1. Corrige #17792.

    • [timtas] - Atualização para apr-1.7.3. Corrige #17888.

  • 31 de março de 2023

    • [pierre] - Atualização para glib-2.76.1. Corrige #17779.

  • 30 de março de 2023

    • [renodr] - Atualização para rustc-1.68.2. Corrige #17877.

    • [renodr] - Atualização para Thunderbird-102.9.1 (atualização de segurança). Corrige #17880.

    • [renodr] - Atualização para xorg-server-21.1.8 (atualização de segurança). Corrige #17882.

    • [renodr] - Atualização para xfce4-pulseaudio-plugins-0.4.6. Corrige #17875.

    • [renodr] - Atualização para vala-0.56.5. Corrige #17868.

    • [renodr] - Atualização para gegl-0.4.44. Corrige #17867.

    • [renodr] - Atualização para fuse-3.14.1. Corrige #17866.

    • [renodr] - Atualização para gobject-introspection-1.76.1. Corrige #17853.

    • [renodr] - Atualização para Samba-4.18.1 (atualização de segurança). Corrige #17881.

    • [renodr] - Atualização para gimp-2.10.34 e o novo gimp-help associado que foi lançado junto com ele. Corrige #17776.

    • [renodr] - Atualização para NetworkManager-1.42.4. Corrige #17771.

    • [timtas] - Realmente corrigir o webclient do transmission-4.0.2.

    • [timtas] - Atualização para transmission-4.0.2. Corrige #17795.

    • [pierre] - Atualização para libinput-1.23.0. Corrige #17869.

    • [pierre] - Atualização para btrfs-progs-6.2.2. Corrige #17862.

    • [pierre] - Atualização para xfsprogs-6.2.0. Corrige #17858.

    • [pierre] - Atualização para ghostscript-10.01.1 (atualização de segurança). Corrige #17851.

    • [pierre] - Atualização para xwayland-23.1.0. Corrige #17850.

    • [pierre] - Atualização para lvm2-2.03.19. Corrige #17844.

    • [pierre] - Atualização para mesa-23.0.1. Corrige #17740.

  • 28 de março de 2023

    • [ken] - A versão binária do asy tem sido compilada em relação à libGLX desde 2020 - contorne isso caso alguém deseje usá-la no futuro. Endereça parcialmente #17823.

  • 27 de março de 2023

    • [timtas] - Atualização para libxfce4ui-4.18.3. Corrige #17872.

    • [timtas] - Atualização para garcon-4.18.1. Corrige #17873.

    • [timtas] - Atualização para xfce4-panel-4.18.3. Corrige #17874.

    • [timtas] - Atualização para xfce4-session-4.18.2. Corrige #17871.

    • [renodr] - Atualização para curl-8.0.1 (atualização de segurança). Corrige #17829.

  • 26 de março de 2023

    • [renodr] - Atualização para mercurial-6.4. Corrige #17857.

    • [renodr] - Atualização para librsvg-2.56.0. Corrige #17819.

    • [renodr] - Atualização para rust-1.68.1. Corrige #17860.

    • [renodr] - Atualização para Thunderbird-102.9.0 (atualização de segurança). Corrige #17794.

    • [renodr] - Corrigir travamentos no gdb ao depurar aplicativos rust. Corrige #17864.

  • 25 de março de 2023

    • [renodr] - Reverter para LLVM-15. Ainda deixa modificações de página para LLVM-16, apenas comentadas para facilitar a atualização de volta para LLVM-16. A reversão se deve a defeitos do LLVM que levam a erros de compilação no Thunderbird e no Firefox. Corrige #17859.

  • 24 de março de 2023

    • [thomas] - Atualização para cmake-3.26.1. Corrige #17856.

  • 23 de março de 2023

    • [renodr] - Corrigir construção do Seamonkey com LLVM-16. Corrige #17852.

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

    • [renodr] - Atualização para intel-gmmlib-22.3.5. Corrige #17845.

  • 19 de março de 2023

    • [renodr] - Corrigir construção do Firefox com LLVM-16.

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

    • [xry111] - Atualização para rustc-1.68.0. Corrige #17822.

    • [xry111] - Atualização para llvm-16.0.0. Corrige #17799.

  • 17 de março de 2023

    • [bdubbs] - Atualização para openssh-9.3p1. Corrige #17796.

    • [bdubbs] - Atualização para Business-ISMN-1.203 (módulo Perl). Corrige #17797.

    • [bdubbs] - Atualização para kImageAnnotator-0.6.1. Corrige #17793.

    • [bdubbs] - Atualização para libXaw-1.0.15 (biblioteca Xorg). Corrige #17791.

    • [bdubbs] - Atualização para highlight-4.5. Corrige #17788.

    • [bdubbs] - Atualização para gobject-introspection-1.76.0. Corrige #17787.

    • [bdubbs] - Atualização para cracklib-2.9.10. Corrige #17748.

  • 16 de março de 2023

    • [bdubbs] - Atualização para cmake-3.26.0. Corrige #17785.

    • [bdubbs] - Atualização para git-2.40.0. Corrige #17783.

    • [bdubbs] - Atualização para icewm-3.3.2. Corrige #17784.

    • [bdubbs] - Atualização para Data-Compare-1.28 (módulo Perl). Corrige #17786.

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

    • [bdubbs] - Atualização para imlib2-1.11.0. Corrige #17777.

    • [bdubbs] - Atualização para pipewire-0.3.67. Corrige #17772.

  • 14 de março de 2023

    • [ken] - Atualização para firefox-102.9.0esr e JS-102.9.0esr (ambos contém correções de segurança). Corrige #17781.

    • [thomas] - Atualização para sqlite-3.41.1. Corrige #17774.

  • 13 de março de 2023

    • [timtas] - Atualização para samba-4.18.0. Corrige #17767.

  • 12 de março de 2023

    • [ken] - Atualização para nss-3.89. Corrige #17773.

  • 9 de março de 2023

    • [ken] - Atualização para qtwebengine-5.15.13 (atualização de segurança). Corrige #17769.

    • [bdubbs] - Atualização para libpaper-2.0.10. Corrige #17770.

    • [bdubbs] - Atualização para cmake-3.25.3. Corrige #17766.

  • 8 de março de 2023

    • [bdubbs] - Atualização para node-18.15.0. Corrige #17765.

    • [pierre] - Atualização para btrfs-progs-6.2.1. Corrige #17734.

    • [thomas] - Adicionar um remendo para corrigir sequência de caracteres de versão do gcc-go (parte do gcc-12.2.0).

  • 7 de março de 2023

    • [renodr] - Atualização para SCons-4.5.1. Corrige #17752.

    • [renodr] - Atualização para httpd-2.4.56 (atualização de segurança). Corrige #17764.

    • [bdubbs] - Atualização para mlt-7.14.0. Corrige #17760.

    • [bdubbs] - Atualização para libqalculate-4.6.0. Corrige #17763.

    • [bdubbs] - Atualização para SDL2-2.26.4. Corrige #17761.

    • [bdubbs] - Atualização para gcr4-4.1.0. Corrige #17758.

    • [bdubbs] - Remover uso do ffmpeg externo do mplayer. Corrige #17751.

    • [thomas] - Atualização para sudo-1.9.13p3. Corrige #17762.

    • [thomas] - Atualização para tigervnc-1.13.1. Corrige #17759.

  • 6 de março de 2023

    • [xry111] - Atualização para systemd-253. Corrige #17659.

    • [bdubbs] - Atualização para gstreamer-1.22.1 e plugins. Corrige #17747.

    • [renodr] - Atualização para libhandy-1.8.2. Corrige #17755.

    • [renodr] - Atualização para libadwaita-1.2.3. Corrige #17754.

    • [renodr] - Atualização para SCons-4.5.0. Corrige #17752.

    • [renodr] - Atualização para xfburn-0.7.0. Corrige #17446.

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

    • [bdubbs] - Atualização para gtk-4.10.0. Corrige #17753.

    • [bdubbs] - Atualização para stunnel-5.69. Corrige #17749.

  • 5 de março de 2023

    • [bdubbs] - Atualização para wpebackend-fdo-1.14.1. Corrige #17750.

    • [bdubbs] - Atualização para pango-1.50.14. Corrige #17745.

    • [bdubbs] - Atualização para gtk+-3.24.37. Corrige #17744.

    • [bdubbs] - Atualização para pytest-7.2.2 (módulo Python). Corrige #17743.

    • [bdubbs] - Atualização para mercurial-6.3.3. Corrige #17738.

    • [bdubbs] - Atualização para harfbuzz-7.1.0. Corrige #17737.

  • 4 de março de 2023

    • [bdubbs] - Atualização para libreoffice-7.5.1.2. Corrige #17742.

  • 3 de março de 2023

    • [bdubbs] - Atualização para ffmpeg-6.0. Corrige #17729.

    • [bdubbs] - Atualização para raptor2-2.0.16. Corrige #17736.

    • [bdubbs] - Atualização para poppler-23.03.0. Corrige #17735.

    • [bdubbs] - Atualização para qpdf-11.3.0. Corrige #17710.

    • [bdubbs] - Atualização para node.js-18.14.2. Corrige #17694.

    • [bdubbs] - Atualização para LVM2.2.03.19. Corrige #17693.

    • [thomas] - Atualização para wireshark-4.0.4. Corrige #17739.

    • [timtas] - Atualização para v4l-utils-1.24.1. Corrige #17705.

  • 2 de março de 2023

    • [timtas] - Atualização para xfce4-notifyd-0.8.2. Corrige #17732.

    • [timtas] - Atualização para v4l-utils-1.24.0. Corrige #17705.

    • [timtas] - Atualização para libnotify-0.8.2. Corrige #17678.

    • [bdubbs] - Atualização para sudo-1.9.13p2. Corrige #17727.

    • [bdubbs] - Atualização para pango-1.50.13. Corrige #17688.

    • [bdubbs] - Atualização para ibus-1.5.28. Corrige #17686.

    • [bdubbs] - Atualização para gegl-0.4.42. Corrige #17682.

    • [bdubbs] - Atualização para babl-0.1.102. Corrige #17681.

    • [bdubbs] - Atualização para enchant-2.3.4. Corrige #17680.

    • [bdubbs] - Atualização para liblinear-246. Corrige #17676.

    • [renodr] - Atualização para glib-2.74.6. Corrige #17709.

    • [renodr] - Atualização para fetchmail-6.4.37. Corrige #17711.

    • [renodr] - Atualização para libass-0.17.1. Corrige #17712.

    • [renodr] - Atualização para bubblewrap-0.8.0. Corrige #17730.

    • [renodr] - Atualização para iso-codes-4.13.0. Corrige #17731.

    • [renodr] - Atualização para fuse-3.14.0. Corrige #17675.

    • [renodr] - Atualização para NetworkManager-1.42.2. Corrige #17703.

    • [renodr] - Atualização para gjs-1.74.2. Corrige #17704.

    • [renodr] - Atualização para bluefish-2.2.13. Corrige #17706.

    • [renodr] - Atualização para font-adobe-utopia-type1-1.0.5 (fonte do Xorg). Corrige #17715.

    • [renodr] - Atualização para font-alias-1.0.5 (fonte do Xorg). Corrige #17716.

    • [renodr] - Atualização para encodings-1.0.7 (fonte do Xorg). Corrige #17717.

    • [renodr] - Atualização para font-bh-ttf-1.0.4 (fonte do Xorg). Corrige #17718.

    • [renodr] - Atualização para font-bh-type1-1.0.4 (fonte do Xorg). Corrige #17719.

    • [renodr] - Atualização para font-ibm-type1-1.0.4 (fonte do Xorg). Corrige #17720.

    • [renodr] - Atualização para font-misc-ethiopic-1.0.5 (fonte do Xorg). Corrige #17725.

    • [renodr] - Atualização para font-xfree86-type1-1.0.5 (fonte do Xorg). Corrige #17726.

    • [renodr] - Atualização para bdftopcf-1.1.1 (legado do Xorg). Corrige #17708.

    • [renodr] - Atualização para font-adobe-100dpi-1.0.4 (legado do Xorg). Corrige #17713.

    • [renodr] - Atualização para font-adobe-75dpi-1.0.4 (legado do Xorg). Corrige #17714.

    • [renodr] - Atualização para font-isas-misc-1.0.4 (legado do Xorg). Corrige #17721.

    • [renodr] - Atualização para font-jis-misc-1.0.4 (legado do Xorg). Corrige #17722.

    • [renodr] - Atualização para font-daewoo-misc-1.0.4 (legado do Xorg). Corrige #17723.

    • [renodr] - Atualização para font-misc-misc-1.1.3 (legado do Xorg). Corrige #17724.

    • [renodr] - Atualização para xbitmaps-1.1.3. Corrige #17702.

    • [renodr] - Atualização para xcursor-themes-1.0.7. Corrige #17701.

    • [renodr] - Atualização para harfbuzz-7.0.1. Corrige #17683.

    • [renodr] - Atualização para libwww-perl-6.68 (módulo Perl). Corrige #17728.

    • [renodr] - Arquivar libdiscird. Corrige #17733.

    • [renodr] - Atualização para HTTP-Daemon-6.16 (módulo Perl). Corrige #17707.

    • [timtas] - Atualização para mesa-22.3.6. Corrige #17697.

    • [thomas] - Atualização para sqlite-3.41.0. Corrige #17687.

  • 1º março 2023

    • [xry111] - Separar o intel-vaapi-driver da libva na própria seção dele e esclarecer que ele é usado para GPUs "antigas" da Intel.

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

Listas de Discussão

O servidor linuxfromscratch.org está hospedando um número de listas de discussão que são usadas para o desenvolvimento do livro BLFS. Essas listas incluem, entre outras, as listas principais de desenvolvimento e de suporte.

Para mais informação acerca de quais listas estão disponíveis, como assiná-las, locais de arquivamento, etc., visite https://www.linuxfromscratch.org/mail.html.

Observações do(a) Editor(a)

O Projeto BLFS criou um Wiki para editores(as) comentarem acerca das páginas e das instruções em https://wiki.linuxfromscratch.org/blfs/wiki.

Quando observações do(a) editor(a) estiverem presentes, um link aparece no formato https://wiki.linuxfromscratch.org/blfs/wiki/pkgname logo abaixo da lista de dependências. A ideia por trás das observações do(a) editor(a) é a de fornecer informações adicionais acerca do pacote e (ou) das instruções de construção dele, armadilhas comuns ou talvez configurações ainda mais sofisticadas para casos especiais de uso.

A maioria dos pacotes não tem observações do(a) editor(a).

Nota

As observações do(a) editor(a) podem estar desatualizadas. Mesmo que as páginas devam ser revisadas quando um pacote é atualizado, pode acontecer que existam observações referentes a uma versão obsoleta e, portanto, as observações possam estar desatualizadas. Verifique sempre a data das observações e, mais importante, a versão do pacote a que as observações se referem.

Pedindo Ajuda e as Perguntas Frequentes

Se você encontrar um problema enquanto usar este livro e o seu problema não estiver listado nas Perguntas Frequentes (https://www.linuxfromscratch.org/faq), [então] você achará que a maioria das pessoas no Internet Relay Chat (IRC) e nas listas de discussão está disposta a ajudar você. Uma visão geral das listas de discussão do LFS pode ser encontrada em Listas de discussão. Para nos auxiliar a diagnosticar e solucionar o seu problema, inclua tanta informação relevante quanto for possível na sua solicitação por ajuda.

Coisas a Verificar Antes do Pedido

Antes de pedir ajuda, você deveria rever os seguintes itens:

  • O suporte ao hardware está compilado internamente ao núcleo ou está disponível como um módulo para o núcleo? Se for um módulo, [então] está configurado adequadamente no modprobe.conf e foi carregado? Você deveria usar o lsmod como o(a) usuário(a) root para ver se está carregado. Verifique o arquivo sys.log ou execute modprobe <controlador> para rever qualquer mensagem de erro. Se carregar adequadamente, [então] você possivelmente precise adicionar o comando modprobe aos seus scripts de inicialização.

  • As suas permissões estão adequadamente configuradas, especialmente para dispositivos? O LFS usa grupos para tornar mais fáceis essas configurações, porém também adiciona o passo de adicionar usuários(as) a grupos para permitir o acesso. Um simples usermod -G audio <usuário(a)> possivelmente seja tudo o que é necessário para que esse(a) usuário(a) tenha acesso ao sistema de som. Qualquer pergunta que inicie com Funciona como root, porém não como ... exige uma revisão minuciosa das permissões antes de perguntar.

  • O BLFS usa generosamente /opt/<pacote>. A objeção principal a isso gira em torno da necessidade de expandir as suas variáveis de ambiente para cada pacote colocado lá (por exemplo, PATH=$PATH:/opt/kde/bin). Na maioria dos casos, as instruções do pacote guiarão você ao longo das mudanças, porém algumas não guiarão. A seção chamada Indo Além do BLFS está disponível para ajudar você a verificar.

Coisas a Mencionar

Além de uma breve explicação do problema que você está enfrentando, as coisas essenciais a se incluir na sua solicitação são:

  • a versão do livro que você está usando (sendo 12.0),

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

Embora possa manter os arquivos do fonte onde quiser, presumimos que você desempacotou o pacote e mudou para o diretório criado pelo processo de desempacotamento (o diretório do fonte). Também presumimos que você descomprimiu quaisquer remendos exigidos e que eles estão no diretório imediatamente acima do diretório do fonte.

Nós não podemos enfatizar fortemente o suficiente que você deveria iniciar a partir de uma árvore limpa do fonte a cada vez. Isso significa que, se você tiver tido um erro durante a configuração ou a compilação, [então] geralmente é melhor deletar a árvore do fonte e desempacotá-la outra vez antes de tentar novamente. Isso, obviamente, não se aplica se você for um(a) usuário(a) avançado(a) habituado(a) a hackear Makefiles e código C; porém, se em dúvida, [então] inicie a partir de uma árvore limpa.

Construindo Software como um(a) Usuário(a) Não Privilegiado(a) (não root)

A regra de ouro da Administração do Sistema Unix é a de usar os seus super poderes somente quando necessário. Assim, o BLFS recomenda que você construa software como um(a) usuário(a) não privilegiado(a) e somente se torne o(a) usuário(a) root quando instalar o software. Essa filosofia é seguida em todos os pacotes neste livro. A menos que especificado de outra maneira, todas as instruções deveriam ser executadas como um(a) usuário(a) não privilegiado(a). O livro alertará você acerca de instruções que precisarem de privilégios do(a) root.

Desempacotando o Software

Se um arquivo estiver no formato .tar e comprimido, [então] ele é desempacotado executando-se um dos seguintes comandos:

tar -xvf nome_arquivo.tar.gz
tar -xvf nome_arquivo.tgz
tar -xvf nome_arquivo.tar.Z
tar -xvf nome_arquivo.tar.bz2

Nota

Você possivelmente omita o uso do parâmetro v nos comandos mostrados acima e abaixo se você desejar suprimir a listagem verbosa de todos os arquivos no arquivamento conforme eles forem extraídos. Isso pode ajudar a acelerar a extração, bem como torna quaisquer erros produzidos durante a extração mais óbvios para você.

Você também pode usar um método ligeiramente diferente:

bzcat nome_arquivo.tar.bz2 | tar -xv

Finalmente, ocasionalmente, temos um arquivo de remendo comprimido no formato .patch.gz ou .patch.bz2. A melhor maneira de aplicar o remendo é a de canalizar a saída gerada do descompressor para o utilitário patch. Por exemplo:

gzip -cd ../patchname.patch.gz | patch -p1

Ou para um remendo comprimido com bzip2:

bzcat ../nome_remendo.patch.bz2 | patch -p1

Averiguando a Integridade do Arquivo

Geralmente, para se averiguar se o arquivo transferido está completo, muitos(as) mantenedores(as) de pacote também distribuem somas de verificação md5 dos arquivos. Para averiguar a soma de verificação md5 dos arquivos transferidos, transfira ambos, o arquivo e o arquivo correspondente de soma de verificação md5, para o mesmo diretório (preferencialmente a partir de locais diferentes online) e (assumindo que arquivo.md5sum seja o arquivo de soma de verificação md5 transferido) execute o seguinte comando:

md5sum -c arquivo.md5sum

Se existirem quaisquer erros, [então] eles serão informados. Observe que o livro BLFS inclui somas de verificação md5 para todos os arquivos de fonte também. Para usar as somas de verificação md5 fornecidas pelo BLFS, você pode criar um arquivo.md5sum (coloque os dados da soma de verificação md5 e o nome exato do arquivo transferido na mesma linha de um arquivo, separados por espaço em branco) e executar o comando mostrado acima. Alternativamente, simplesmente execute o comando mostrado abaixo e compare a saída gerada para os dados da soma de verificação md5 mostrada no livro BLFS.

md5sum <nome_do_arquivo_transferido>

MD5 não é seguro criptograficamente, de forma que as somas de verificação md5 são fornecidas somente para se detectar mudanças não maliciosas para o conteúdo do arquivo. Por exemplo, um erro ou truncamento introduzido durante a transferência de rede de comunicação; ou uma atualização furtiva para o pacote oriunda do(a) desenvolvedor(a) (atualizando o conteúdo de um tarball liberado em vez de fazer um lançamento novo adequadamente).

Não existe maneira 100% segura de garantir a genuinidade dos arquivos do fonte. Assumindo que o(a) desenvolvedor(a) esteja gerenciando corretamente o sítio da web dele(a) (a chave privada não vazou e o domínio não esteja sequestrado); e que as âncoras de confiança tenham sido configuradas corretamente usando make-ca-1.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.3 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

mas para ninja, o número padrão de tarefas é N + 2, se o número de processadores lógicos N for maior que 2; ou N + 1 se N for 1 ou 2. A razão para usar um número de tarefas ligeiramente maior que o número de processadores lógicos é a de manter todos os processadores lógicos ocupados, mesmo que algumas tarefas estejam realizando operações de E/S.

Geralmente o número de processos não deveria exceder muito o número de elementos de processamento suportados pela CPU. Para listar os processadores em teu sistema, emita: grep processor /proc/cpuinfo.

Em alguns casos, usar múltiplos processos possivelmente resulte em uma condição de 'corrida' onde o sucesso da construção depende da ordem dos comandos executados pelo aplicativo make. Por exemplo, se um executável precisar do Arquivo A e do Arquivo B, [então] tentar-se vincular o aplicativo antes que um dos componentes dependentes esteja disponível resultará em uma falha. Essa condição geralmente surge, pois o(a) desenvolvedor(a) do aplicativo não designou adequadamente todos os pré requisitos necessários para realizar uma etapa no Makefile.

Se isso ocorrer, a melhor maneira de se proceder é a de se voltar para uma construção de processador único. Adicionar -j1 a um comando make substituirá a configuração semelhante na variável de ambiente MAKEFLAGS.

Importante

Outro problema possivelmente ocorra com CPUs modernas, as quais tem um monte de núcleos. Cada trabalho iniciado consome memória e, se a soma da memória necessária para cada trabalho exceder da memória disponível, [então] você possivelmente encontre, ou uma interrupção de kernel Out of Memory (OOM), ou troca intensa, que retardará a construção além de limites razoáveis.

Algumas compilações com o g++ possivelmente consumam até 2,5 GB de memória, de forma que, para estar seguro(a), você deveria restringir o número de trabalhos a (Memória Total em GB)/2,5, ao menos para pacotes grandes, tais como o LLVM; o WebKitGtk; o QtWebEngine; ou o Libreoffice.

Procedimentos Automatizados de Construção

Existem ocasiões onde automatizar a construção de um pacote pode vir a calhar. Todo mundo tem razões próprias para querer automatizar a construção e todo mundo faz isso de maneira própria. Criar Makefiles; scripts do Bash; scripts do Perl; ou, simplesmente, uma lista de comandos usados para recortar e colar, são apenas alguns dos métodos que você pode usar para automatizar a construção de pacotes do BLFS. Detalhar como e fornecer exemplos das muitas maneiras que você pode automatizar a construção de pacotes está além do escopo desta seção. Esta seção exporá você ao uso do redirecionamento de arquivo e do comando yes para ajudar a fornecer ideias acerca do como automatizar suas construções.

Redirecionamento de Arquivo para Automatizar a Entrada Gerada

Você achará ocasiões ao longo da sua jornada BLFS quando você se deparará com um pacote que tenha um comando solicitando informação. Essa informação poderia ser detalhes de configuração; um caminho de diretório; ou uma resposta a um acordo de licença. Isso pode apresentar um desafio para automatizar a construção desse pacote. Ocasionalmente, você será consultado(a) para diferentes informações em uma série de perguntas. Um método para automatizar esse tipo de cenário exige colocar as respostas desejadas em um arquivo e usar redirecionamento, de forma que o aplicativo use os dados no arquivo como as respostas para as perguntas.

Isso, efetivamente, faz com que a suíte de teste use as respostas no arquivo como a entrada gerada para as perguntas. Ocasionalmente você possivelmente termine fazendo um bocado de tentativa e erro para determinar o formato exato do seu arquivo de entrada gerada para algumas coisas, porém, tão logo determinado e documentado, você consegue usar isso para automatizar a construção do pacote.

Usando o yes para Automatizar a Entrada Gerada

Ocasionalmente você somente precisará fornecer uma resposta ou fornecer a mesma resposta para muitas solicitações. Para tais instâncias, o comando yes funciona realmente bem. O comando yes pode ser usado para fornecer uma resposta (a mesma) para uma ou mais instâncias de perguntas. Ele pode ser usado para simular o pressionamento apenas da tecla Enter; informar a tecla Y; ou informar uma sequência de caracteres de texto. Talvez a maneira mais fácil de mostrar o uso dele é em um exemplo.

Primeiro, crie um script curto do Bash informando os seguintes comandos:

cat > blfs-yes-test1 << "EOF"
#!/bin/bash

echo -n -e "\n\nPor favor, digite algo (ou nada) e pressione Enter ---> "

read A_STRING

if test "$A_STRING" = ""; then A_STRING="Apenas a tecla Enter foi pressionada"
else A_STRING="Você informou '$A_STRING'"
fi

echo -e "\n\n$A_STRING\n\n"
EOF
chmod 755 blfs-yes-test1

Agora execute o script emitindo ./blfs-yes-test1 a partir da linha de comando. Ele aguardará por uma resposta, que pode ser algo (ou nada) seguida pela tecla Enter. Depois de informar alguma coisa, o resultado será ecoado para a tela. Agora use o comando yes para automatizar a entrada de uma resposta:

yes | ./blfs-yes-test1

Perceba que canalizar o próprio yes para o script resulta em y sendo passada para o script. Agora tente com uma sequência de caracteres de texto:

yes 'Este é algum texto' | ./blfs-yes-test1

A sequência exata de caracteres foi usada como a resposta para o script. Finalmente, tente usando uma sequência de caracteres vazia (nula):

yes '' | ./blfs-yes-test1

Perceba que isso resulta na passagem apenas do pressionamento da tecla Enter para o script. Isso é útil para ocasiões quando a resposta padrão para a solicitação for suficiente. Essa sintaxe é usada nas instruções do Net-tools para aceitar todos os padrões para as muitas solicitações durante a etapa de configuração. Você possivelmente agora remova o script de teste, se desejado.

Redirecionamento de Arquivo para Automatizar a Saída Gerada

Para a finalidade de automatizar a construção de alguns pacotes, especialmente aqueles que exigem que você leia um acordo de licença em uma página por vez, exige-se usar um método que evite ter que pressionar uma tecla para exibir cada página. Redirecionar a saída gerada para um arquivo pode ser usado nessas instâncias para auxiliar com a automação. A seção anterior nesta página tocou na criação de arquivos de registro da saída gerada da construção. O método de redirecionamento mostrado lá usou o comando tee para redirecionar a saída gerada para um arquivo enquanto também exibia a saída gerada na tela. Aqui, a saída gerada somente será enviada para um arquivo.

Novamente, a maneira mais fácil para demonstrar a técnica é de mostrar um exemplo. Primeiro, emita o comando:

ls -l /usr/bin | less

Certamente, você será exigido(a) a visualizar a saída gerada uma página por vez, pois o filtro less foi usado. Agora tente o mesmo comando, porém, dessa vez, redirecione a saída gerada para um arquivo. O arquivo especial /dev/null pode ser usado em vez do nome de arquivo mostrado, porém você não terá arquivo de registro para examinar:

ls -l /usr/bin | less > redirect_test.log 2>&1

Perceba que, dessa vez, o comando imediatamente retornou ao prompt do shell sem ter que paginar ao longo da saída gerada. Você agora possivelmente remova o arquivo de registro.

O último exemplo usará o comando yes em combinação com o redirecionamento da saída gerada para desviar-se de ter que paginar ao longo da saída gerada e, então, fornecerá um y para uma solicitação. Essa técnica poderia ser usada em instâncias quando, de outra maneira, você teria que paginar ao longo da saída gerada de um arquivo (como um acordo de licença) e, então, responder à pergunta de você aceita o acima?. Para esse exemplo, outro script curto do Bash é exigido:

cat > blfs-yes-test2 << "EOF"
#!/bin/bash

ls -l /usr/bin | less

echo -n -e "\n\nVocê curtiu ler isso? (y,n) "

read A_STRING

if test "$A_STRING" = "y"; then A_STRING="Você informou a tecla 'y'"
else A_STRING="Você NÃO informou a tecla 'y'"
fi

echo -e "\n\n$A_STRING\n\n"
EOF
chmod 755 blfs-yes-test2

Esse script pode ser usado para simular um aplicativo que exige que você leia um acordo de licença, então responda apropriadamente que aceita o acordo antes do aplicativo instalar qualquer coisa. Primeiro, execute o script sem quaisquer técnicas de automação emitindo ./blfs-yes-test2.

Agora emita o seguinte comando que usa duas técnicas de automação, tornando-o adequado para uso em um script automatizado de construção:

yes | ./blfs-yes-test2 > blfs-yes-test2.log 2>&1

Se desejado, emita tail blfs-yes-test2.log para ver o final da saída gerada paginada e a confirmação de que y foi passada ao longo para o script. Tão logo satisfeito que ele funciona como deveria, você possivelmente remova o script e o arquivo de registro.

Finalmente, tenha em mente que existem muitas maneiras de automatizar e (ou) roteirizar os comandos de construção. Não existe maneira única correta para fazê-lo. Sua imaginação é o único limite.

Dependências

Para cada pacote descrito, o BLFS lista as dependências conhecidas. Essas são listadas sob vários títulos, cujo significado é como segue:

  • Exigida significa que o pacote alvo não pode ser construído corretamente sem que a dependência tenha sido instalada primeiro, exceto se a dependência for considerada de tempo de execução, o que significa que o pacote alvo pode ser construído, mas não pode funcionar sem ela.

    Observe que um pacote alvo pode começar a funcionar de muitas maneiras sutis: um arquivo de configuração instalado pode fazer o sistema init, o processo de segundo plano cron ou o processo de segundo plano de barramento executar um aplicativo automaticamente; outro pacote usando o pacote alvo como dependência pode executar um aplicativo oriundo do pacote alvo no sistema de construção; e as seções de configuração no livro BLFS também podem executar um aplicativo a partir de um pacote recém-instalado. Portanto, se estiver instalando o pacote alvo sem uma dependência Exigida (tempo de execução) instalada, você deveria instalar a dependência o mais rápido possível depois da instalação do pacote alvo.

  • Recomendada significa que o BLFS sugere fortemente que esse pacote seja instalado primeiro (exceto se for considerada tempo de execução, veja-se abaixo) para uma construção limpa e livre de problemas, que não terá problemas durante o processo de construção ou em tempo de execução. As instruções no livro assumem que esses pacotes estão instalados. Algumas mudanças ou soluções alternativas podem ser exigidas se esses pacotes não estiverem instalados. Se uma dependência recomendada for considerada tempo de execução, isso significa que o BLFS sugere fortemente que essa dependência seja instalada antes de usar o pacote, para obter funcionalidade completa.

  • Opcional significa que esse pacote pode ser instalado para funcionalidade adicional. Frequentemente, o BLFS descreverá a dependência para explicar a funcionalidade adicional resultante. Uma dependência opcional pode ser selecionada automaticamente pelo pacote alvo se a dependência estiver instalada, mas outra dependência opcional também pode precisar de opções adicionais de configuração para habilitá-las quando o pacote alvo for construído. Essas opções adicionais frequentemente estão documentadas no livro BLFS. Se uma dependência opcional for considerada de tempo de execução, significa que você pode instalar a dependência depois de instalar o pacote alvo, para suportar alguns recursos opcionais do pacote alvo se precisar desses recursos.

    Uma dependência opcional pode estar fora do BLFS. Se você precisar de uma tal dependência opcional externa para alguns recursos necessários, leia Indo Além do BLFS para as dicas gerais acerca de instalar um pacote fora do BLFS.

Usando os Fontes Mais Atuais de Pacote

Ocasionalmente você possivelmente se encontre em uma situação no livro onde um pacote não construirá ou não funcionará adequadamente. Apesar dos(as) Editores(as) tentarem garantir que cada pacote no livro construa e funcione adequadamente, ocasionalmente um pacote tenha sido negligenciado ou não foi testado com esta versão particular do BLFS.

Se você descobrir que um pacote não construirá ou não funcionará adequadamente, [então] você deveria ver se existe uma versão mais recente do pacote. Tipicamente isso significa você ir ao sítio da web do(a) mantenedor(a) e transferir o tarball mais recente e tentar construir o pacote. Se você não conseguir determinar o sítio da web do(a) mantenedor(a) olhando para os URLs de transferência, [então] use o Google e consulte o nome do pacote. Por exemplo, na barra de pesquisa do Google, digite: 'nome_do_pacote download' (omita as aspas) ou algo semelhante. Ocasionalmente, digitar: 'nome_do_pacote home page' resultará em você encontrar o sítio da web do(a) mantenedor(a).

Despojando Mais Uma Vez

No LFS, a remoção de símbolos de depuração e entradas desnecessárias na tabela de símbolos foi discutida algumas vezes. Ao construir pacotes BLFS, geralmente não existem instruções especiais que discutam a remoção novamente. A remoção pode ser feita durante a instalação de um pacote ou posteriormente.

Despojando enquanto se Instala um Pacote

Existem várias maneiras de se despojar executáveis instalados por um pacote. Elas dependem do sistema de construção usado (veja-se abaixo a seção acerca de sistemas de construção), de modo que somente algumas generalidades podem ser listadas aqui:

Nota

Os métodos a seguir que usam o recurso de um sistema de construção ("autotools", "meson" ou "cmake") não despojarão bibliotecas estáticas, se alguma estiver instalada. Felizmente não existem muitas bibliotecas estáticas no BLFS, e uma biblioteca estática sempre pode ser despojada com segurança executando strip --strip-unneeded nela manualmente.

  • Os pacotes que usam "Autotools" geralmente tem um alvo install-strip nos arquivos Makefile gerados deles. Portanto, instalar executáveis despojados é apenas uma questão de usar make install-strip em vez de make install.

  • Os pacotes que usam o sistema de construção "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 local, o que possivelmente quebre alguma coisa que os usem se estiverem carregados na memória. Observe que se um arquivo estiver em uso, mas recém removido do disco (ou seja, não sobrescrito nem modificado), isso não será um problema, pois o núcleo consegue usar arquivos deletados. Veja-se /proc/*/maps e é provável que você veja algumas entradas (deleted). O mv apenas remove o arquivo de destino a partir do diretório, mas não toca no conteúdo dele, de modo que satisfaça a condição para o núcleo usar o arquivo antigo (deletado). Porém, essa abordagem pode desanexar links rígidos em cópias duplicadas, causando um inchaço que, obviamente, é indesejado, pois estamos despojando para reduzir o tamanho do sistema. Se dois arquivos em um mesmo sistema de arquivos compartilharem o mesmo número de inode, eles serão links rígidos entre eles e deveríamos reconstruir o link. O conjunto de comandos sequenciais abaixo é apenas um exemplo. Ele deveria ser executado como o(a) usuário(a) root:

cat > /usr/sbin/strip-all.sh << "EOF"
#!/usr/bin/bash

if [ $EUID -ne 0 ]; then
  echo "Precisa ser root"
  exit 1
fi

last_fs_inode=
last_file=

{ find /usr/lib -type f -name '*.so*' ! -name '*dbg'
  find /usr/lib -type f -name '*.a'
  find /usr/{bin,sbin,libexec} -type f
} | xargs stat -c '%m %i %n' | sort | while read fs inode file; do
       if ! readelf -h $file >/dev/null 2>&1; then continue; fi
       if file $file | grep --quiet --invert-match 'not stripped'; then continue; fi

       if [ "$fs $inode" = "$last_fs_inode" ]; then
         ln -f $last_file $file;
         continue;
       fi

       cp --preserve $file    ${file}.tmp
       strip --strip-unneeded ${file}.tmp
       mv ${file}.tmp $file

       last_fs_inode="$fs $inode"
       last_file=$file
done
EOF
chmod 744 /usr/sbin/strip-all.sh

Se você instalar aplicativos em outros diretórios, como /opt ou /usr/local, você possivelmente queira despojar os arquivos lá também . Basta adicionar outros diretórios a escanear na lista composta de comandos find entre chaves.

Para mais informações acerca de despojamento, veja-se https://www.technovelty.org/linux/stripping-shared-libraries.html.

Trabalhando com diferentes sistemas de construção

Existem, agora, três sistemas de construção em uso comum para converter código fonte C ou C++ em aplicativos ou bibliotecas compilados e os detalhes deles (particularmente, descobrir acerca de opções disponíveis e os valores padrão delas) diferem. Possivelmente seja mais fácil entender os problemas causados por algumas escolhas (tipicamente, execução lenta; ou uso inesperado de, ou omissão de, otimizações) iniciando-se com as variáveis de ambiente CFLAGS, CXXFLAGS e LDFLAGS. Também existem alguns aplicativos que usam Rust.

A maioria dos(as) construtores(as) do LFS e do BLFS provavelmente está ciente dos básicos de CFLAGS e CXXFLAGS para alterar como um aplicativo é compilado. Tipicamente, alguma forma de otimização é usada pelos(as) desenvolvedores(as) de aplicativos (-O2 ou -O3), ocasionalmente com a criação de símbolos de depuração (-g), como padrões.

Se existirem sinalizadores contraditórios (por exemplo, múltiplos valores -O), o último valor será usado. Ocasionalmente, isso significa que os sinalizadores especificados em variáveis de ambiente serão escolhidos antes dos valores codificados rigidamente no Makefile, e, portanto, ignorados. Por exemplo, onde um(a) usuário(a) especificar -O2 e isso for seguido por -O3, a construção usará -O3.

Existem várias outras coisas que podem ser passadas em CFLAGS ou em CXXFLAGS, tais como permitir-se usar as extensões de conjunto de instruções disponíveis com uma microarquitetura específica (por exemplo, -march=amdfam10 ou -march=native) ajustar o código gerado para uma microarquitetura específica (por exemplo, -mtune=tigerlake ou -mtune=native; se -mtune= não for usada, a microarquitetura oriunda da configuração -march= será usada) ou especificar-se um padrão específico para C ou C++ (-std=c++17, por exemplo). Porém, uma coisa que agora veio à tona é que os(as) programadores(as) poderiam incluir asserções de depuração no código deles(as), esperando que sejam desabilitadas em lançamentos usando-se -DNDEBUG. Especificamente, se o Mesa-23.1.6 for construído com essas asserções habilitadas, algumas atividades, tais como o carregamento de níveis dos jogos, podem tomar tempos extremamente longos, mesmo em placas de vídeo de alta qualidade.

Autotools com Make

Essa combinação frequentemente é descrita como CMMI (configure; make; make install) e é usada aqui também para cobrir os poucos pacotes que tenham um conjunto de comandos sequenciais de configuração que não seja gerado por autotools.

Ocasionalmente, executar-se ./configure --help produzirá opções úteis acerca de chaves que poderiam ser usadas. Em outras ocasiões, depois de olhar para a saída gerada a partir do configure, você possivelmente precise olhar para os detalhes do script para descobrir pelo que ele estava procurando atualmente.

Muitos scripts de configuração escolherão quaisquer CFLAGS ou CXXFLAGS a partir do ambiente, porém os pacotes CMMI variam acerca do como esses serão misturados com quaisquer sinalizadores que, de outra maneira, seriam usados (variadamente: ignorados; usados para substituir a sugestão do(a) programador(a); usados antes da sugestão do(a) programador(a); ou usados depois da sugestão do(a) programador(a)).

Na maioria dos pacotes CMMI, executar-se make listará cada comando e o executará, intercalado com quaisquer avisos. Porém, alguns pacotes tentam ser silenciosos e mostram somente qual arquivo eles estão compilando ou vinculando em vez de mostrar a linha de comando. Se você precisar inspecionar o comando, seja por causa de um erro, seja apenas para ver quais opções e sinalizadores estão sendo usados, adicionar V=1 à invocação do make possivelmente ajude.

CMake

O CMake funciona de uma maneira muito diferente e ele tem duas estruturas de retaguarda que conseguem ser usadas no BLFS: make e ninja. A estrutura de retaguarda padrão é o make, porém o ninja pode ser mais rápido sobre pacotes grandes com múltiplos processadores. Para usar o ninja, especifique -G Ninja no comando cmake. Entretanto, existem alguns pacotes que criam erros fatais nos arquivos ninja deles, porém constroem com sucesso usando o padrão dos Makefiles do Unix.

A parte mais difícil do usar-se o CMake é saber quais opções você poderia desejar especificar. A única maneira de se obter uma lista do que o pacote conhece é a de executar cmake -LAH e olhar para a saída gerada para esta configuração padrão.

Talvez a coisa mais importante acerca do CMake é que ele tem uma variedade de valores CMAKE_BUILD_TYPE e esses afetam os sinalizadores. O padrão é o de que isso não seja configurado e nenhum sinalizador seja gerado. Quaisquer CFLAGS ou CXXFLAGS no ambiente serão usadas. Se o(a) programador(a) tiver codificado quaisquer asserções de depuração, essas estarão habilitadas, a menos que -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 grandes e lentos, de forma que nós deveríamos substitui-lo no BLFS.

  • depuração otimizada : -O2 -g : isso é o padrão, especificado no meson.build, de alguns pacotes.

  • lançamento : -O3 (ocasionalmente um pacote forçará -O2 aqui) - esse é o tipo de construção que usamos para a maioria dos pacotes com sistema de construção Meson no BLFS.

O sinalizador -DNDEBUG é implícito pelo tipo de construção de lançamento para alguns pacotes (por exemplo Mesa-23.1.6). Também pode ser fornecido explicitamente 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 baixarão conforme necessário. Esses pacotes são construídos usando-se cargo --release. Na teoria, você consegue manipular a RUSTFLAGS para mudar o nível de otimização (padrão para --release é 3, isto é, -Copt-level=3, semelhante a -03) ou para forçá-lo a construir para a máquina na qual está sendo compilado, usando -Ctarget-cpu=native; porém, na prática, isso parece não fazer uma diferença significante.

Se você estiver compilando um aplicativo Rust independente (como um arquivo .rs desempacotado) executando rustc diretamente, você deveria especificar -O (a abreviatura de -Copt-level=2) ou -Copt-level=3, caso contrário ele fará uma compilação não otimizada e executará muito mais lento. Se estiver compilando o aplicativo para depurá-lo, substitua as opções -O ou -Copt-level= por -g para produzir um aplicativo não otimizado com informações de depuração.

Semelhante ao ninja, por padrão cargo usa todos os processadores lógicos. Isso frequentemente pode ser contornado, seja exportando-se CARGO_BUILD_JOBS=<N> seja passando-se --jobs <N> para cargo. Para compilar o próprio rustc, especificar-se --jobs <N> para invocações do x.py (juntamente com a variável de ambiente CARGO_BUILD_JOBS=, que se parece com uma abordagem cinto e suspensórios, porém parece ser necessária) funciona na maioria. A exceção é a de executar-se os testes quando construir-se o rustc; alguns deles, ainda assim, usarão todas as CPUs online, pelo menos desde o rustc-1.42.0.

Otimizando a construção

Muitas pessoas preferirão otimizar compilações como acharem melhor, fornecendo CFLAGS ou CXXFLAGS. Para uma introdução às opções disponíveis com o gcc e com o g++, veja-se https://gcc.gnu.org/onlinedocs/gcc-13.2.0/gcc/Optimize-Options.html. O mesmo conteúdo também pode ser encontrado em info gcc.

Alguns pacotes são padronizados como -O2 -g, outros como -O3 -g, e se CFLAGS ou CXXFLAGS forem fornecidas, elas podem ser adicionadas aos padrões do pacote, substituir os padrões do pacote ou até mesmo serem ignoradas. Existem detalhes acerca de alguns pacotes de área de trabalho que estavam mais atualizados em abril de 2019 em https://www.linuxfromscratch.org/~ken/tuning/ - em particular, README.txt, tuning-1-packages-and-notes.txt e tuning-notes-2B.txt. A coisa específica a lembrar é que se quiser experimentar alguns dos sinalizadores mais interessantes, você possivelmente precise forçar construções detalhadas para confirmar o que está sendo usado.

Claramente, se estiver otimizando teu próprio aplicativo, você pode gastar tempo para perfilá-lo e, talvez, recodificar algo dele, se ele estiver lento demais. Porém, para construir um sistema inteiro, essa abordagem é impraticável. No geral, -O3 geralmente produz aplicativos mais rápidos que -O2. Especificar-se -march=native também é benéfico, porém significa que você não pode mover os binários para uma máquina incompatível - isso também pode se aplicar a máquinas mais novas, não apenas às máquinas mais antigas. Por exemplo, os aplicativos compilados para amdfam10 executam em Phenoms antigos; Kaveris; e Ryzens; porém, os aplicativos compilados para um Kaveri não executarão em um Ryzen, pois certos códigos de operação não estão presentes. Similarmente, se você construir para um Haswell, nem tudo executará em um SandyBridge.

Nota

Atente-se que o nome de uma configuração -march nem sempre corresponde à linha de base da microarquitetura com o mesmo nome. Por exemplo, os processadores Intel Celeron baseados em Skylake não suportam AVX, mas -march=skylake assume AVX e até mesmo AVX2.

Quando uma biblioteca compartilhada é construída pelo GCC, um recurso chamado interposição semântica é habilitado por padrão. Quando a biblioteca compartilhada se refere a um nome de símbolo com ligação externa e visibilidade padrão, se o símbolo existir tanto na biblioteca compartilhada quanto no executável principal, a interposição semântica garante que o símbolo no executável principal sempre seja usado. Esse recurso foi inventado na tentativa de tornar o comportamento de vincular uma biblioteca compartilhada e vincular uma biblioteca estática o mais semelhante possível. Hoje, somente um pequeno número de pacotes ainda depende da interposição semântica, mas o recurso ainda está ativado por padrão do GCC, fazendo com que muitas otimizações sejam desabilitadas para bibliotecas compartilhadas porque entram em conflito com a interposição semântica. A opção -fno-semantic-interposition pode ser passada para gcc ou g++ para desabilitar a interposição semântica e habilitar mais otimizações para bibliotecas compartilhadas. Essa opção é usada como padrão de alguns pacotes (por exemplo Python-3.11.4) e também é o padrão do Clang.

Existem também várias outras opções que algumas pessoas alegam que são benéficas. Na pior das hipóteses, você consegue recompilar e testar e, então, descobrir que, em seu uso, as opções não fornecem um benefício.

Se construir módulos Perl ou Python, em geral as CFLAGS e CXXFLAGS usadas são aquelas que foram usadas por esses pacotes ancestrais.

Para LDFLAGS, existem três opções que podem ser usadas para otimização. Elas são bastante seguras de usar e o sistema de construção de alguns pacotes usa algumas dessas opções como padrão.

Com -Wl,-O1, o vinculador otimizará a tabela de resumo para acelerar a vinculação dinâmica. Observe que -Wl,-O1 não tem nenhuma relação com o sinalizador de otimização do compilador -O1.

Com -Wl,--as-needed, o vinculador desconsiderará opções -lfoo desnecessárias da linha de comando, ou seja, a biblioteca compartilhada libfoo só será vinculada se um símbolo em libfoo realmente estiver referenciado pelo executável ou biblioteca compartilhada sendo vinculado. Às vezes, isso pode atenuar os problemas de dependências excessivas de bibliotecas compartilhadas causados pela libtool.

Com -Wl,-z,pack-relative-relocs, o vinculador gera uma forma mais compactada das entradas relativas de realocação para PIEs e bibliotecas compartilhadas. Ele reduz o tamanho do PIE vinculado ou da biblioteca compartilhada e acelera o carregamento do PIE ou da biblioteca compartilhada.

O prefixo -Wl, é necessário porque, apesar da variável ser chamada LDFLAGS, o conteúdo dela é na verdade passado para o gcc (ou g++, clang, etc.) durante o estágio de ligação, não passado diretamente para o ld.

Opções para fortalecer a construção

Mesmo em sistemas de área de trabalho, existe ainda um monte de vulnerabilidades exploráveis. Para muitas dessas, o ataque vem via javascript em um navegador. Frequentemente, uma série de vulnerabilidades é usada para ganhar acesso a dados (ou, às vezes, para pwn, isto é, dominar, a máquina e instalar rootkits). A maioria das distribuições comerciais aplicará várias medidas de fortalecimento.

No passado, existia o "LFS Reforçado", onde o "GCC" (uma versão muito mais antiga) era forçado a usar 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.1-15, usam uma função do libtool, lt_dlopen, para carregar bibliotecas conforme necessárias durante a execução e resolver as dependências deles em tempo de execução. Nesse caso, os arquivos .la deveriam permanecer.

O script abaixo remove todos os arquivos .la desnecessários e os salva em um diretório, /var/local/la-files, por padrão, não no caminho normal de biblioteca. Ele também procura em todos os arquivos pkg-config (.pc) por referências embutidas a arquivos .la e os corrige para serem referências convencionais de biblioteca necessárias quando uma aplicação ou biblioteca for construída. Ele pode ser executado conforme necessário para limpar os diretórios que possivelmente estejam causando problemas.

cat > /usr/sbin/remove-la-files.sh << "EOF"
#!/bin/bash

# /usr/sbin/remove-la-files.sh
# Escrito para o Beyond Linux From Scratch
# por Bruce Dubbs <bdubbs@linuxfromscratch.org>

# Certifique-se de que estamos executando com privilégios de "root"
if test "${EUID}" -ne 0; then
    echo "Erro: $(basename ${0}) precisa ser executado como o(a) usuário(a) root! Saindo..."
    exit 1
fi

# Certifique-se de que PKG_CONFIG_PATH esteja definido se descartado pelo "sudo"
source /etc/profile

OLD_LA_DIR=/var/local/la-files

mkdir -p $OLD_LA_DIR

# Pesquise somente diretórios em /opt, mas não links simbólicos para diretórios
OPTDIRS=$(find /opt -mindepth 1 -maxdepth 1 -type d)

# Mova todos os arquivos ".la" encontrados para um diretório fora do caminho
find /usr/lib $OPTDIRS -name "*.la" ! -path "/usr/lib/ImageMagick*" \
  -exec mv -fv {} $OLD_LA_DIR \;
###############

# Corrija quaisquer arquivos ".pc" que possam ter referências ".la"

STD_PC_PATH='/usr/lib/pkgconfig
             /usr/share/pkgconfig
             /usr/local/lib/pkgconfig
             /usr/local/share/pkgconfig'

# Para cada diretório que pode conter arquivos ".pc"
for d in $(echo $PKG_CONFIG_PATH | tr : ' ') $STD_PC_PATH; do

  # Para cada arquivo "pc"
  for pc in $d/*.pc ; do
    if [ $pc == "$d/*.pc" ]; then continue; fi

    # Verifique cada palavra em uma linha com uma referência ".la"
    for word in $(grep '\.la' $pc); do
      if $(echo $word | grep -q '.la$' ); then
        mkdir -p $d/la-backup
        cp -fv  $pc $d/la-backup

        basename=$(basename $word )
        libref=$(echo $basename|sed -e 's/^lib/-l/' -e 's/\.la$//')

        # Corrige o arquivo ".pc"
        sed -i "s:$word:$libref:" $pc
      fi
    done
  done
done

EOF

chmod +x /usr/sbin/remove-la-files.sh

Bibliotecas: Estáticas ou compartilhadas?

Bibliotecas: Estáticas ou compartilhadas?

As bibliotecas originais eram simplesmente um arquivamento de rotinas a partir do qual as rotinas necessárias eram extraídas e vinculadas ao aplicativo executável. Elas são descritas como bibliotecas estáticas, com nomes no formato libfoo.a em sistemas operacionais do tipo UNIX. Em alguns sistemas operacionais antigos elas são o único tipo disponível.

Em quase todas as plataformas Linux também existem bibliotecas compartilhadas (ou equivalentemente dinâmicas) (com nomes no formato libfoo.so) – uma cópia da biblioteca é carregada na memória virtual e compartilhada por todos os aplicativos que chamam alguma das funções dela. Isso é eficiente em termos de espaço.

No passado, aplicativos essenciais, como um "shell", frequentemente eram vinculados estaticamente, de forma que existisse alguma forma de sistema mínimo de recuperação, mesmo se bibliotecas compartilhadas, como libc.so, se tornassem danificadas (por exemplo, movidas para lost+found depois de fsck após um desligamento incorreto). Hoje em dia, a maioria das pessoas usa uma instalação alternativa de sistema ou um pendrive se precisar se recuperar. Os sistemas de arquivos com registro em diário também reduzem a probabilidade desse tipo de problema.

Dentro do livro, existem vários locais onde chaves de configuração, tais como --disable-static, são empregadas; e outros locais onde a possibilidade de usar versões de sistema das bibliotecas em vez das versões inclusas em outro pacote é discutida. A razão principal para isso é a de simplificar as atualizações de bibliotecas.

Se um pacote for vinculado a uma biblioteca dinâmica, [então] a atualização para uma versão mais recente da biblioteca é automática tão logo a biblioteca mais recente seja instalada e o aplicativo for (re)iniciado (condicionada a que a versão maior da biblioteca não seja modificada, por exemplo, indo de libfoo.so.2.0 para libfoo.so.2.1. Ir para libfoo.so.3 exigirá recompilação – o ldd pode ser usado para encontrar quais aplicativos usam a versão antiga). Se um aplicativo for vinculado a uma biblioteca estática, [então] o aplicativo sempre tem de ser recompilado. Se você souber quais aplicativos estão vinculados a uma biblioteca estática em particular, [então] isso é meramente um aborrecimento. Entretanto, normalmente você não saberá quais aplicativos recompilar.

Uma forma de identificar quando uma biblioteca estática é usada é a de tratar disso ao final da instalação de cada pacote. Escreva um script para achar todas as bibliotecas estáticas em /usr/lib ou onde quer que você esteja instalando, e, ou mova-as para outro diretório, de forma que não mais sejam encontradas pelo vinculador; ou renomeie-as, de forma que libfoo.a se torne, por exemplo. libfoo.a.oculta. A biblioteca estática pode então ser restaurada temporariamente se for efetivamente necessária, e o pacote que precisa dela pode ser identificado. Isso não deveria ser feito às cegas, pois muitas bibliotecas existem somente em uma versão estática. Por exemplo, algumas bibliotecas originárias dos pacotes glibc e gcc deveriam sempre estar presentes no sistema (libc_nonshared.a, libg.a, libpthread_nonshared.a, libssp_nonshared. a, libsupc++.a desde "glibc-2.36" e "gcc-12.2").

Se você usar essa abordagem, [então] você possivelmente descubra que mais pacotes que o que estava esperando usam uma biblioteca estática. Esse foi o caso com o nettle-2.4 na configuração padrão somente estática dele: Ele era exigido pelo GnuTLS-3.0.19, porém vinculado também em pacote(s) que usa(m) o GnuTLS, tais como o glib-networking-2.32.3.

Muitos pacotes colocam algumas das funções comuns deles em uma biblioteca estática que somente é usada pelos aplicativos dentro do pacote e, crucialmente, a biblioteca não é instalada como uma biblioteca independente. Essas bibliotecas internas não são um problema – se o pacote tiver de ser reconstruído para corrigir um defeito ou uma vulnerabilidade, [então] nada mais é vinculado a elas.

Quando o BLFS menciona bibliotecas de sistema, significa versões compartilhadas de bibliotecas. Alguns pacotes como Firefox-115.2.0 e ghostscript-10.01.2 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.40, se usada pelo Firefox-115.2.0). De vez em quando, um pacote envia uma biblioteca antiga e não mais pode se vincular à versão atual, porém pode se vincular a uma versão mais antiga. Nesse caso, o BLFS normalmente usará apenas a versão enviada. De quando em quando, a biblioteca inclusa não mais é desenvolvida separadamente; ou o(a) desenvolvedor(a) dela é o(a) mesmo(a) que o desenvolvedor(a) do pacote e você não tem outros pacotes que a usarão. Nesses casos, você será levado(a) a usar a biblioteca inclusa, mesmo se geralmente preferir usar as bibliotecas do sistema.

Problemas Relacionados à Localidade

Esta página contém informações acerca de problemas e de consequências relacionados à localidade. Nos parágrafos seguintes você encontrará uma visão geral das coisas que podem surgir ao configurar o seu sistema para várias localidades. Muitos (mas, não todos) problemas existentes relacionados à localidade podem ser classificados e enquadrados sob um dos títulos abaixo. As avaliações de gravidade abaixo usam o seguinte critério:

  • Crítica: O aplicativo não realiza a função principal dele. A correção seria muito invasiva; é melhor procurar por uma substituição.

  • Alta: Parte da funcionalidade que o aplicativo fornece não é utilizável. Se essa funcionalidade for exigida, [então] é melhor procurar por uma substituição.

  • Baixa: O aplicativo funciona em todos os casos típicos de uso, porém carece de alguma funcionalidade normalmente fornecida pelos equivalentes dele.

Se existir uma solução alternativa conhecida para um pacote específico, ela aparecerá na página desse pacote. Para as informações mais recentes relativas a problemas relacionados à localidade para pacotes individuais, verifique as Observações de Editor 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.29. 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.3.1.

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.76.4, 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.4p1). 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 teu país, se existir uma) - o fonte estará em "tarballs" ".tar.gz" (ou o fonte original .orig do(a) desenvolvedor(a); ou, do contrário, um dfsg contendo aquelas partes que cumprem as diretrizes de software livre do "Debian") acompanhado por adições versionadas ".diff.gz" ou ".tar.gz". Essas adições frequentemente mostram como o pacote é construído e possivelmente contenham remendos. Nas versões ".diff.gz", quaisquer remendos criam arquivos em debian/patches.

    • O fonte do pacote do Fedora é reorganizado de tempos em tempos. No momento, o fonte do pacote para rpms está em https://src.fedoraproject.org/projects/rpms/%2A e, a partir de lá, você pode tentar colocando um nome de pacote na caixa de busca. Se o pacote for encontrado, [então] você pode olhar nos arquivos ("specfile" para controlar a construção; vários remendos) ou nos commits. Se isso falhar, [então] você pode baixar um srpm (source rpm) e usar o rpm2cpio (veja-se a Dica ao final da página). Para rpms, vá para https://dl.fedoraproject.org/pub/fedora/linux/ e, então, escolha qual repositório deseja olhar - development/rawhide é o desenvolvimento mais recente; ou, escolha "releases", para o que foi embarcado em um lançamento; "updates", para as atualizações para um lançamento; ou, "updates/testing", para as atualizações mais recentes, que poderiam funcionar ou poderiam ter problemas.

    • "Gentoo" - Primeiro use um mecanismo de busca para encontrar um "ebuild" que pareça resolver o problema, ou pesquise em https://packages.gentoo.org/ - use o campo de busca. Observe onde o pacote reside na hierarquia do "portage", por exemplo, app-alguma_coisa/. Em geral você pode tratar o "ebuild" como uma espécie de combinação de pseudocódigo/shell com algumas funções que você pode arriscar, como dodoc. Se a correção for apenas um sed, [então] tente. No entanto, na maioria dos casos, a correção usará um remendo. Para encontrar o remendo, use um espelho "gentoo-portage": Dois links para espelhos nos Estados Unidos da América do Norte que parecem estar atualizados são https://mirror.rackspace.com/gentoo-portage/ e https://mirror.steadfast.net/gentoo-portage/. Navegue pela árvore até o pacote e depois até o diretório files/ para procurar o remendo. Às vezes um espelho do "portage" ainda não foi atualizado, especialmente para um novo remendo recente. Em alguns casos, o "Gentoo" agrupa os remendos em um "tarball" e o "ebuild" terá um link no formato https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${P}-patches-${PATCH_VER }.tar.xz : aqui, procure "PATCH_DEV" e "PATCH_VER" na construção e formate o "URL" completo em seu navegador ou para o "wget" : lembre-se do "~" antes do "ID" do(a) desenvolvedor(a) e observe que tentar pesquisar os níveis anteriores do "URL" em um navegador possivelmente te levará para www.gentoo.org ou retornará 403 (proibido).

    • O "openSUSE" fornece um lançamento contínuo; algumas versões de pacote estão em https://download.opensuse.org/source/tumbleweed/repo/oss/src/, porém outras estão em ../update/openSUSE-current/src - o fonte parece somente estar disponível em "source rpms".

    • "Slackware" - o navegador de pacote oficial atualmente está quebrado. O sítio em https://slackbuilds.org/ tem versões atuais e anteriores no repositório não oficial delas com links para páginas iniciais, transferências e alguns arquivos individuais, particularmente os arquivos .SlackBuild.

    • "Ubuntu" ftp://ftp.ubuntu.com/ubuntu/pool/ - vejam-se as observações "Debian" acima.

    Se tudo o mais falhar, [então] tente a lista de discussão "blfs-support".

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.

Acerca das Fontes do Console

Um sistema LFS pode ser usado sem uma área de trabalho gráfica e, a menos ou até que instale o um ambiente gráfico, você terá que trabalhar no console. A maioria, se não todos, dos PCs inicializa com uma fonte 8x16 - qualquer que seja o tamanho atual da tela. Existem umas poucas coisas que você pode fazer para alterar a exibição no console. A maioria delas envolve mudar a fonte, porém a primeira altera a linha de comando usada pelo GRUB.

Configurando 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/12.0-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 conseguem cobrir mais que quinhentos e doze (512) pontos de código ('caracteres'), com graus variantes de fidelidade: Unicode contém vários pontos de código de espaço em branco os quais podem todos serem mapeados para um espaço; variedades de traços podem ser mapeados para um sinal de menos; aspas inteligentes podem ser mapeadas para as aspas ASCII regulares em vez de para o que é usado para "ponto de código não presente ou inválido"; e aquelas letras cirílicas ou gregas que se parecem com letras latinas podem ser mapeadas nelas, de forma que 'A' também pode cumprir o dever para o A cirílico e grego Alfa; e 'P' também pode cumprir o dever para o cirílico ER e grego RHO. Infelizmente, onde uma fonte tenha sido criada a partir de um arquivo BDF (o método no terminus e no console-setup do Debian) tal mapeamento dos pontos de código adicionais em um glifo existente nem sempre é feito, apesar das fontes ter-vXXn do terminus fazerem isso bem.

Existem mais que cento e vinte (120) combinações de fonte e tamanho no kbd: frequentemente uma fonte é fornecida em vários tamanhos de caracteres; e, de vez em quando, as variedades cobrem subconjuntos diferentes do Unicode. A maioria é da largura de oito (08) pixeis, em alturas de oito (08) até dezesseis (16) pixeis; porém, existem umas poucas que são da largura de nove (09) pixeis; algumas outras são 12x22; e mesmo uma, (latarcyrheb-sun32.psfu), que foi escalada até 16x32. Usar uma fonte maior é outra maneira de tornar o texto mais fácil de ler em uma tela grande.

Testando fontes diferentes

Você consegue testar as fontes como um(a) usuário(a) normal. Se tiver uma fonte que não tenha sido instalada, [então] você consegue carregá-la com:

setfont /caminho/para/sua_fonte.ext

Para as fontes já instaladas você precisa somente do nome; assim, usando gr737a-9x16.psfu.gz como um exemplo:

setfont gr737a-9x16

Para ver os glifos na fonte, use:

showconsolefont

Se a fonte aparentar como se pudesse ser útil, você pode então ir em frente para testá-la mais minuciosamente.

Quando você encontrar uma fonte que desejar usar, como o(a) usuário(a) root edite o /etc/vconsole.conf conforme descrito na seção 9.6 do LFS ../../../../lfs/view/12.0-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.41.0 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 NICs sem fios. Esses dispositivos não são exigidos para o PC inicializar, porém precisam do firmware antes que esses dispositivos possam ser usados.

Nota

Apesar de não necessárias para carregar um blob de firmware, as seguintes ferramentas possivelmente sejam úteis para determinar, obter ou preparar o firmware necessário para a finalidade de carregá-lo no sistema: cpio-2.14; git-2.41.0; pciutils-3.10.0; e Wget-1.21.4

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 da Intel. Isso precisa ser feito navegando-se até https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files/releases/ e baixando-se o arquivo mais recente lá. Ao tempo da escrita deste texto, a versão mais segura do microcódigo era microcode-20230808. 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 Tigerlake (descrito como CPU Intel(R) Core(TM) i5-11300H), os valores relevantes são "cpu family 6", "model 140", "stepping 1", de modo que, nesse caso, a identificação exigida é "06-8c-01". A observação de lançamento diz que o microcódigo mais recente para ele é versionado "0xac". Se o valor do campo microcode em /proc/cpuinfo for "0xac" ou superior, isso 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
                                                           ...  [BLK_DEV_INITRD]

Processor type and features --->
  [*] CPU microcode loading support                                  [MICROCODE]
  [*]   Intel microcode loading support                        [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
                                                           ...  [BLK_DEV_INITRD]

Processor type and features --->
  [*] CPU microcode loading support                                  [MICROCODE]
  [*]   AMD microcode loading support                            [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.14 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 Tigerlake) com carregamento antecipado:

[    0.000000] microcode: microcode updated early: 0x86 -> 0xac, date = 2023-02-27
[    0.000000] Linux version 6.4.7 (root@stargazer) (gcc (GCC) 13.2.0, GNU ld (GNU Binutils) 2.41) #1 SMP PREEMPT_DYNAMIC Wed Aug  2 19:08:46 CST 2023
[    0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-6.4.7 root=PARTUUID=<CLASSIFIED> ro
[    0.424002] 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.10.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 <TEUS_BLOBS> /lib/firmware/radeon

Construir o controlador amdgpu do núcleo como um módulo é recomendado porque os arquivos de firmware precisam estar acessíveis ao tempo que ele for carregado. Se você estiver construindo-o como parte da imagem do núcleo por qualquer motivo, você precisará incluir os arquivos de firmware no initramfs (leia-se “A respeito do initramfs” para detalhes) ou incluí-los na própria imagem do núcleo (leia-se “Incluir Blobs de Firmware na Imagem do Núcleo” para detalhes).

"Firmware" para chips de vídeo "amdgpu" "AMD"/"ATI"

Todos os controladores de vídeo que usam o controlador "amdgpu" do núcleo exigem "firmware", se você estará usando o controlador "amdgpu" do "Xorg", o controlador "modesetting" do "xserver" ou apenas o "modesetting" do núcleo para obter um "framebuffer" do console maior que "80x25".

Instale pciutils-3.10.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.

Construir o controlador amdgpu do núcleo como um módulo é recomendado porque os arquivos de firmware precisam estar acessíveis ao tempo que ele for carregado. Se você estiver construindo-o como parte da imagem do núcleo por qualquer motivo, você precisará incluir os arquivos de firmware no initramfs (leia-se “A respeito do initramfs” para detalhes) ou incluí-los na própria imagem do núcleo (leia-se “Incluir Blobs de Firmware na Imagem do Núcleo” para detalhes).

Firmware para chips de vídeo Nvidia

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/VideoAcceleration.html.

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, execute os seguintes comandos:

wget https://anduin.linuxfromscratch.org/BLFS/nvidia-firmware/extract_firmware.py
wget https://us.download.nvidia.com/XFree86/Linux-x86/340.32/NVIDIA-Linux-x86-340.32.run
sh NVIDIA-Linux-x86-340.32.run --extract-only
python3 extract_firmware.py
mkdir -p /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 Base de Dados Regulatória de Dispositivos Sem Fio

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 tua 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. Observe que ou o controlador cfg80211 precisa ser selecionado como um médulo para os arquivos regulatory.* serem carregados ou esses arquivos precisam serem incluídos como firmware no núcleo, conforme explicado acima em “Firmware para Placas de Vídeo”.

O ponto de acesso (AP) enviaria um código de país para tua NIC sem fio e wpa_supplicant-2.10 diria ao núcleo para carregar a regulação desse país a partir de regulatory.db, e aplicá-la. Observe que vários AP não enviam esse código de país, de forma que você possivelmente fique bloqueado(a) para um uso bastante restrito (especialmente se quiser usar tua interface como um AP).

Firmware Aberto de Som

Alguns sistemas (especialmente laptops econômicos) utilizam um DSP fornecido com a CPU para conexão com o codificador de áudio. O Firmware Aberto de Som precisa ser carregado no DSP para torná-lo funcional. Esses arquivos de firmware podem ser baixados a partir de https://github.com/thesofproject/sof-bin/releases. Extraia o tarball e mude para o diretório extraído e, em seguida, como o(a) usuário(a) root instale o firmware:

install -vdm755 /usr/lib/firmware/intel       &&
cp -av -T --no-preserve=ownership sof-v*      \
   /usr/lib/firmware/intel/sof                &&
cp -av -T --no-preserve=ownership sof-tplg-v* \
   /usr/lib/firmware/intel/sof-tplg

alsa-lib-1.2.9 também precisa de arquivos de configuração do Use Case Manager para os sistemas que usam Firmware Aberto de Som. Os arquivos de configuração UCM do ALSA podem ser baixados a partir de https://github.com/alsa-project/alsa-ucm-conf/tags. Extraia o tarball e mude para o diretório extraído e, em seguida, como o(a) usuário(a) root instale os arquivos de configuração:

install -vdm755 /usr/share/alsa &&
cp -av -T --no-preserve=ownership ucm2 /usr/share/alsa/ucm2

Assim que o firmware for carregado (você possivelmente precise de uma reinicialização, de forma que o núcleo os carregue) e os arquivos de configuração do UCM forem instalados, siga “Configurando o ALSA Utilities” para configurar tua placa de som para ALSA apropriadamente.

Firmware para Outros Dispositivos

Identificar o firmware correto tipicamente exigirá que você instale o pciutils-3.10.0 e, então, use o lspci para identificar o dispositivo. Você deveria então procurar online para verificar qual módulo ele usa; qual firmware; e onde obter o firmware — nem todos eles estão no linux-firmware.

Se possível, você deveria iniciar usando uma conexão com fios quando inicializar pela primeira vez o teu sistema LFS. Para usar uma conexão sem fios, você precisará usar ferramentas de rede de comunicação, tais como iw-5.19, Wireless Tools-29 or wpa_supplicant-2.10.

Firmware possivelmente também seja necessário para outros dispositivos, tais como alguns controladores SCSI; adaptadores bluetooth; ou gravadores de TV. Os mesmos princípios se aplicam.

Incluir Blobs de Firmware na Imagem do Núcleo

Alguns controladores, principalmente os controladores para GPU ATI ou AMD, exigem os arquivos de firmware acessíveis no momento em que são carregados. O método mais fácil de lidar com esses controladores é o de construí-los como um módulo do núcleo. Um método alternativo é o de criar um initramfs (leia-se “A respeito do initramfs” para detalhes) incluindo os arquivos de firmware. Se não quiser usar nenhum dos métodos, você pode incluir os arquivos de firmware na própria imagem do núcleo. Instale os arquivos de firmware necessários em /lib/firmware primeiro, depois configure a seguinte configuração do núcleo e reconstrua o núcleo:

Device Drivers --->
  Generic Driver Options --->
    Firmware loader --->
      <*>                   Firmware loading facility                [FW_LOADER]
      (xx/aa.bin xx/bb.bin)   Build named firmware blobs into the kernel binary
                                                           ...  [EXTRA_FIRMWARE]
      (/lib/firmware)           Firmware blobs root directory
                                                       ...  [EXTRA_FIRMWARE_DIR]

Substitua xx/aa.bin xx/bb.bin por uma lista de caminhos separados por espaços em branco para os arquivos de firmware necessários, relativos a /lib/firmware. Um método mais fácil que digitar manualmente a lista (ele possivelmente seja longa) é o de executar o seguinte comando:

echo CONFIG_EXTRA_FIRMWARE='"'$({ cd /lib/firmware; echo amdgpu/* })'"' >> .config
make oldconfig

Substitua amdgpu/* por um padrão de shell que corresponda aos arquivos de firmware necessários.

Atenção

Não distribua uma imagem do núcleo contendo o firmware para terceiros(as) ou você possivelmente viole a GPL.

Acerca de Dispositivos

Apesar da maioria dos dispositivos necessitados pelos pacotes no BLFS e além serem configurados adequadamente pelo udev usando as regras padrão instaladas pelo LFS em /etc/udev/rules.d, existem casos onde as regras precisam ser modificadas ou estendidas.

Múltiplas Placas de Som

Se existirem múltiplas placas de som em um sistema, [então] a placa de som "padrão" se torna aleatória. O método para estabelecer a ordem da placa de som depende se os controladores são módulos ou não. Se os controladores da placa de som forem compilados internamente no núcleo, [então] o controle é via parâmetros de linha de comando do núcleo em /boot/grub/grub.cfg. Por exemplo, se um sistema tiver ambas, uma placa FM801 e uma placa PCI SoundBlaster, [então] o seguinte pode ser acrescentado à linha de comando:

snd-fm801.index=0 snd-ens1371.index=1

Se os controladores da placa de som forem construídos como módulos, [então] a ordem pode ser estabelecida no arquivo /etc/modprobe.conf com:

options snd-fm801 index=0
options snd-ens1371 index=1

Consequências do Dispositivo USB

Os dispositivos USB geralmente tem dois tipos de nós de dispositivo associados com eles.

O primeiro tipo é criado pelos controladores específicos do dispositivo (por exemplo, usb_storage/sd_mod ou usblp) no núcleo. Por exemplo, um dispositivo USB de armazenamento em massa seria /dev/sdb; e uma impressora USB seria /dev/usb/lp0. Esses nós de dispositivo existem somente quando o controlador específico do dispositivo estiver carregado.

O segundo tipo de nós de dispositivo (/dev/bus/usb/BBB/DDD, onde BBB é o número do barramento e DDD é o número do dispositivo) é criado mesmo se o dispositivo não tiver um controlador de núcleo. Ao usar esses nós de dispositivo USB "crus", um aplicativo consegue trocar pacotes USB arbitrários com o dispositivo, isto é, contornar o possivelmente existente controlador de núcleo.

O acesso a nós de dispositivo USB brutos é necessário quando um aplicativo do espaço do(a) usuário(a) estiver atuando como um controlador de dispositivo. Entretanto, para o aplicativo abrir o dispositivo com sucesso, as permissões tem de ser configuradas corretamente. Por padrão, devido a motivos de segurança, todos os dispositivos USB brutos são de propriedade do(a) usuário(a) root e do grupo root, e tem permissões 0664 (o acesso de leitura é necessário, por exemplo, para o lsusb funcionar e para os aplicativos acessarem hubs USB). Os pacotes (tais como SANE e libgphoto2) contendo controladores de dispositivo USB do espaço do(a) usuário(a) também enviam regras do Udev que mudam as permissões dos dispositivos USB brutos controlados. Isto é, as regras instaladas pelo SANE mudam as permissões para escaneadores conhecidos, porém não para impressoras. Se um(a) mantenedor(a) de pacote se esqueceu de escrever uma regra para o teu dispositivo, informe um defeito para ambos, o BLFS (se o pacote estiver lá) e o(a) desenvolvedor(a), e você precisará escrever tua própria regra.

Antes do Linux-2.6.15, o acesso de dispositivo USB bruto era realizado não com nós de dispositivo /dev/bus/usb/BBB/DDD, mas com pseudo arquivos /proc/bus/usb/BBB/DDD. Alguns aplicativos ainda usam somente essa técnica obsoleta e não conseguem usar os novos nós de dispositivo. Eles não conseguem funcionar com a versão 3.5 ou mais recente do núcleo Linux. Se você precisar executar tal aplicativo, contacte o(a) desenvolvedor(a) dele para uma correção.

Atributos de Dispositivo do Udev

O ajuste fino dos atributos de dispositivo, tais como nome e permissões do grupo, é possível criando-se regras extras do udev, casando com algo como isto. O fornecedor e produto pode ser encontrado procurando-se nas entradas do diretório /sys/devices ou usando-se o udevadm info depois que o dispositivo tenha sido anexado. Veja-se a documentação no diretório atual do udev do /usr/share/doc para detalhes.

SUBSYSTEM=="usb_device", SYSFS{idVendor}=="05d8", SYSFS{idProduct}=="4002", \
  GROUP:="scanner", MODE:="0660"

Nota

A linha acima é usada somente para propósitos descritivos. As regras do udev da escaneadora são colocadas no lugar quando se instalar o SANE-1.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 Editor(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.

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 corretamente usando uma plataforma LFS 12.0.

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.25.0 (tempo de execução, construído depois do libtasn1-4.19.0, exigido nas instruções a seguir para gerar armazenamentos de certificados a partir de âncoras de confiança, e a cada vez que make-ca for executado)

Opcional (tempo de execução)

nss-3.92 (para gerar um NSSDB compartilhado)

Instalação do make-ca e Geração dos Armazenamentos de Certificados de AC

O script make-ca baixará e processará os certificados incluídos no arquivo certdata.txt para uso como âncoras de confiança para o módulo de confiança p11-kit-0.25.0. 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

Nota

Tecnicamente, esse pacote já está instalado neste ponto. Mas, a maioria dos pacotes que listam make-ca como uma dependência na verdade exige o armazenamento de certificados do sistema configurado por esse pacote, em vez de exigir o próprio programa make-ca. Portanto, as instruções para usar make-ca para configurar o armazenamento de certificados do sistema estão incluídas nesta seção. Você deveria certificar-se de que a dependência de tempo de execução exigida para make-ca esteja satisfeita agora e continuar seguindo as instruções.

Como o(a) usuário(a) root, baixe o fonte do certificado e apronte para uso do sistema com o seguinte comando:

Nota

Se executar-se o script uma segunda vez com a mesma versão do certdata.txt, por exemplo, para atualizar as lojas quando o make-ca for atualizado; ou para acrescentar lojas adicionais conforme o software solicitante for instalado, [então] substitua a chave -g pela chave -r na linha de comando. Se empacotando, [então] execute make-ca --help para ver todas as opções de linha de comando disponíveis.

/usr/sbin/make-ca -g

Você deveria atualizar periodicamente a loja com o comando acima, seja manualmente, ou via um 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.92. Transferências adicionais do(a) desenvolvedor(a) estão disponíveis nos links inclusos em /etc/make-ca/make-ca.conf.dist. Simplesmente copie o arquivo para /etc/make-ca.conf e edite conforme apropriado.

Acerca de Argumentos de Confiança

Existem três tipos de confiança que são reconhecidos pelo script make-ca, SSL/TLS, S/Mime e assinatura de código. Para o OpenSSL, esses são serverAuth; emailProtection; e codeSigning, respectivamente. Se um dos três argumentos de confiança for omitido, [então] o certificado nem é acreditado, nem é rejeitado para aquela função. Os clientes que usarem o OpenSSL ou o NSS encontrando esse certificado apresentarão um aviso para o(a) usuário(a). Os clientes usando o GnuTLS sem o suporte ao p11-kit não estão cientes dos certificados confiáveis. Para incluir essa AC nos arquivos ca-bundle.crt, email-ca-bundle.crt ou objsign-ca-bundle.crt (os pacotes legados do GnuTLS), precisa ter os argumentos confiáveis adequados.

Acrescentando Certificados Adicionais de AC

O diretório /etc/ssl/local está disponível para acrescentar certificados adicionais de AC à loja de confiança do sistema. Esse diretório também é usado para armazenar certificados que foram acrescentados a ou modificados na loja de confiança do sistema pelo p11-kit-0.25.0, de forma que os valores de confiança sejam mantidos ao longo de atualizações. Os arquivos nesse diretório precisam estar no formato de certificado confiável do OpenSSL. Os certificados importados usando o utilitário trust originário do p11-kit-0.25.0 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.4 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.25.0 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.11

Introdução ao CrackLib

O pacote CrackLib contém uma biblioteca usada para impor senhas fortes comparando senhas selecionadas pelo(a) usuário(a) a palavras em listas de palavras escolhidas.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Transferências Adicionais

Lista de palavras recomendadas para países de idioma inglês:

Existem listas adicionais de palavras disponíveis para download, por exemplo, em https://wiki.skullsecurity.org/index.php/Passwords. O CrackLib consegue utilizar o máximo ou o mínimo possível das listas de palavras que você escolher instalar.

Importante

Os(As) usuários(as) tendem a basear as senhas deles(as) em palavras comuns do idioma falado e os crackers sabem disso. CrackLib destina-se a filtrar essas senhas ruins na fonte usando um dicionário criado a partir de listas de palavras. Para conseguir isso, a(s) lista(s) de palavras para uso com CrackLib precisa ser uma lista exaustiva de palavras e combinações de teclas baseadas em palavras que provavelmente serão escolhidas pelos(as) usuários(as) do sistema como senhas (adivinháveis).

A lista de palavras padrão recomendada acima para download atende principalmente a essa função em países de língua inglesa. Em outras situações, possivelmente seja necessário baixar (ou mesmo criar) listas adicionais de palavras.

Observe que as listas de palavras adequadas para verificação ortográfica não podem ser usadas como listas de palavras do CrackLib em países com alfabetos não latinos, devido às combinações de teclas baseadas em palavras que tornam as senhas incorretas .

Instalação do CrackLib

Instale o CrackLib executando os seguintes comandos:

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.11.xz \
                         /usr/share/dict/cracklib-words.xz    &&

unxz -v                  /usr/share/dict/cracklib-words.xz    &&
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.3, você pode desconsiderar essa observação, pois o Shadow será reinstalado depois da instalação do Linux-PAM.

Explicações do Comando

autoreconf -fiv: O conjunto de comandos sequenciais 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, cracklib-update e create-cracklib-dict
Bibliotecas Instaladas: libcrack.so e o _cracklib.so (módulo Python)
Diretórios Instalados: /usr/lib/cracklib, /usr/share/dict e /usr/share/cracklib

Descrições Curtas

cracklib-check

é usado para determinar se uma senha é forte

cracklib-format

é usado para formatar arquivos de texto (minuscula todas as palavras, remove caracteres de controle e ordena as listas)

cracklib-packer

cria uma base de dados com palavras lidas a partir da entrada gerada padrão

cracklib-unpacker

exibe na saída gerada padrão a base de dados especificada

create-cracklib-dict

é usado para criar o dicionário CrackLib a partir da(s) lista(s) fornecida(s) de palavras

libcrack.so

fornece um método rápido de pesquisa de dicionário para imposição de senha forte

cryptsetup-2.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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do cryptsetup

Exigidas

JSON-C-0.17, LVM2-2.03.22 e popt-1.19

Opcionais

libpwquality-1.4.5, argon2, libssh e passwdqc

Configuração do Núcleo

Dispositivos de bloco encriptados exigem suporte de núcleo. Para usá-lo, os parâmetros apropriados de configuração do núcleo precisam estar configurados:

Device Drivers --->
  [*] Multiple devices driver support (RAID and LVM) --->                   [MD]
    <*/M> Device mapper support                                     [BLK_DEV_DM]
    <*/M>   Crypt target support                                      [DM_CRYPT]

-*- Cryptographic API --->                                              [CRYPTO]
  Block ciphers --->
    <*/M> AES (Advanced Encryption Standard)                        [CRYPTO_AES]
    # For tests:
    <*/M> Twofish                                               [CRYPTO_TWOFISH]
  Length-preserving ciphers and modes --->
    <*/M> XTS (XOR Encrypt XOR with ciphertext stealing)            [CRYPTO_XTS]
  Hashes, digests, and MACs --->
    <*/M> SHA-224 and SHA-256                                    [CRYPTO_SHA256]
  Userspace interface --->
    <*/M> Symmetric key cipher algorithms             [CRYPTO_USER_API_SKCIPHER]

Instalação do cryptsetup

Instale cryptsetup executando os seguintes comandos:

./configure --prefix=/usr --disable-ssh-token &&
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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do Cyrus SASL

Recomendada
Opcionais

Linux-PAM-1.5.3, MIT Kerberos V5-1.21.2, MariaDB-10.11.4 ou MySQL, OpenLDAP-2.6.6, PostgreSQL-15.4, sphinx-7.1.2, SQLite-3.42.0, krb4, Dmalloc e Pod::POM::View::Restructured

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-20230816 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.3

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Transferências Adicionais

Dependências do GnuPG 2

Exigidas

libassuan-2.5.6, libgcrypt-1.10.2, libksba-1.6.4, npth-1.6 e OpenLDAP-2.6.6

Recomendadas
Opcionais

cURL-8.2.1, Fuse-3.16.1, ImageMagick-7.1.1-15 (para o utilitário convert, usado para gerar a documentação), libusb-1.0.26, um MTA, SQLite-3.42.0, texlive-20230313 (ou install-tl-unx), fig2dev (para gerar a documentação) e GNU adns

Instalação do GnuPG

Primeiro, corrija um problema de compatibilidade com o emacs:

patch -Np1 -i ../gnupg-2.4.3-emacs-1.patch

Instale GnuPG executando os seguintes comandos:

mkdir build &&
cd    build &&

../configure --prefix=/usr          \
             --localstatedir=/var    \
             --sysconfdir=/etc       \
             --docdir=/usr/share/doc/gnupg-2.4.3 &&
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-20230313 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.3/html           &&
install -v -m644    doc/gnupg_nochunks.html \
                    /usr/share/doc/gnupg-2.4.3/html/gnupg.html &&
install -v -m644    ../doc/*.texi doc/gnupg.txt \
                    /usr/share/doc/gnupg-2.4.3 &&
install -v -m644    doc/gnupg.html/* \
                    /usr/share/doc/gnupg-2.4.3/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.3

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.3: Essa chave muda o diretório padrão da documentação para /usr/share/doc/gnupg-2.4.3.

--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.3 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.1

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do GnuTLS

Exigida

Nettle-3.9.1

Recomendadas
Opcionais

Brotli-1.0.9, Doxygen-1.9.7, 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-20230313 ou install-tl-unx, Unbound-1.17.1 (para construir a biblioteca DANE), Valgrind-3.21.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.

Instalação do GnuTLS

Instale GnuTLS executando os seguintes comandos:

./configure --prefix=/usr \
           --docdir=/usr/share/doc/gnutls-3.8.1 \
           --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.25.0 não estiver instalado.

--with-default-trust-store-file=/etc/pki/tls/certs/ca-bundle.crt: Essa chave informa ao configure onde encontrar o pacote legado de certificados da AC e usá-lo em vez do módulo PKCS #11 por padrão. Use isso se p11-kit-0.25.0 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.1

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.21.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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do GPGME

Exigida

libassuan-2.5.6

Opcionais

Doxygen-1.9.7 e Graphviz-8.1.0 (para documentação da API), GnuPG-2.4.3 (exigido se Qt ou SWIG estiverem instalados; usado durante a suíte de teste), Clisp-2.49, (Qt-5.15.10 ou qt-alternate-5.15.10) e (ou) SWIG-4.1.1 (para vinculações de idioma)

Instalação do GPGME

Instale GPGME executando os seguintes comandos:

./configure --prefix=/usr --disable-gpg-test &&
make

Para testar os resultados, você deveria ter GnuPG-2.4.3 instalado e remover o --disable-gpg-test acima. Emita: make -k check. Um teste, TestRemarks, é conhecido por falhar.

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.3. Esse parâmetro não é necessário se GnuPG-2.4.3 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/python2.7/site-packages/gpg, /usr/lib/python3.11/site-packages/gpg-1.21.0-py3.11-linux-<arch>.egg 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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do iptables

Opcionais

libpcap-1.10.4 (exigido para suporte ao compilador BPF ou nfsynproxy), bpf-utils (exigido para suporte ao Berkeley Packet Filter), libnfnetlink (exigido para suporte ao connlabel), libnetfilter_conntrack (exigido para suporte ao connlabel) e nftables

Configuração do Núcleo

Um firewall no Linux é realizado por meio da interface netfilter. Para usar o iptables para configurar a netfilter, os seguintes parâmetros de configuração do núcleo são exigidos:

[*] Networking support --->                                                [NET]
  Networking options --->
    [*] Network packet filtering framework (Netfilter) --->          [NETFILTER]
      [*] Advanced netfilter configuration                  [NETFILTER_ADVANCED]
      Core Netfilter Configuration --->
        <*/M> Netfilter connection tracking support               [NF_CONNTRACK]
        <*/M> Netfilter Xtables support (required for ip_tables)
                                                        ...  [NETFILTER_XTABLES]
        <*/M>   LOG target support                     [NETFILTER_XT_TARGET_LOG]
      IP: Netfilter Configuration --->
        <*/M> IP tables support (required for filtering/masq/NAT)
                                                           ...  [IP_NF_IPTABLES]

Inclua quaisquer protocolos de rastreamento de conexão que serão usados, bem como quaisquer protocolos que você desejar usar para corresponder ao suporte sob a seção "Configuração Central da Netfilter". As opções acima são suficientes para se executar o Criando um Firewall Pessoal Com o iptables abaixo.

Instalação do iptables

Nota

A instalação abaixo não inclui a construção de algumas bibliotecas de extensão especializadas que exigem os cabeçalhos crus no código fonte do Linux. Se desejar construir as extensões adicionais (se não tiver certeza, então provavelmente não deseja), [então] você pode olhar no arquivo INSTALL para ver um exemplo do como mudar o parâmetro KERNEL_DIR= para apontar para o código fonte do Linux. Observe que, se atualizar a versão do núcleo, [então] possivelmente precisará também recompilar o iptables e isso a equipe do BLFS não testou usando os cabeçalhos crus do núcleo.

Instale iptables executando os seguintes comandos:

./configure --prefix=/usr     \
            --disable-nftables \
            --enable-libipq    &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--disable-nftables: Essa chave desabilita a construção da compatibilidade do nftables.

--enable-libipq: Essa chave habilita a construção da libipq.so a qual pode ser usada por alguns pacotes fora do BLFS.

--enable-nfsynproxy: Essa chave habilita a instalação da ferramenta de configuração do SYNPROXY nfsynproxy.

Configurando iptables

Nota

Nas seguintes configurações de exemplo, LAN1 é usada para a interface interna da LAN e WAN1 é usada para a interface externa conectada com a Internet. Você precisará substituir esses valores por nomes apropriados de interface para o seu sistema.

Firewall Pessoal

Um Firewall Pessoal é projetado para permitir que você acesse todos os serviços oferecidos na Internet enquanto mantém o seu computador seguro e os seus dados privados.

Abaixo está uma versão ligeiramente modificada da recomendação do Rusty Russell oriunda do Linux 2.4 Packet Filtering HOWTO. Ela ainda é aplicável aos núcleos Linux 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 acerca de endereços dinâmicos de IP (não necessário no caso de IP estático)
echo 2 > /proc/sys/net/ipv4/ip_dynaddr

# Desabilita a Notificação Explícita de Congestão
# roteadores demais ainda são ignorantes
echo 0 > /proc/sys/net/ipv4/tcp_ecn

# Configura um estado conhecido
iptables -P INPUT   DROP
iptables -P FORWARD DROP
iptables -P OUTPUT  DROP

# Estas linhas estão aqui no caso das regras já estiverem no lugar e o script for mesmo
# reexecutado em tempo real.  Nós queremos remover todas as regras e cadeias preexistentes
# definidas por usuário(a) antes de implementarmos novas regras.
iptables -F
iptables -X
iptables -Z

iptables -t nat -F

# Permite conexões locais 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-20230816.

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.69 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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do libcap

Exigida

Linux-PAM-1.5.3

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

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 corretamente usando uma plataforma LFS 12.0.

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

Nota

Shadow-4.13 e Systemd-254 precisa ser reinstalado e reconfigurado depois de instalar e de configurar o 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.3-docs.tar.xz --strip-components=1

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.3 &&
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.

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" &&
# Inicia /etc/pam.d/system-account

account   required    pam_unix.so

# Termina /etc/pam.d/system-account
EOF

cat > /etc/pam.d/system-auth << "EOF" &&
# Inicia /etc/pam.d/system-auth

auth      required    pam_unix.so

# Termina /etc/pam.d/system-auth
EOF

cat > /etc/pam.d/system-session << "EOF" &&
# Inicia /etc/pam.d/system-session

session   required    pam_unix.so

# Termina /etc/pam.d/system-session
EOF

cat > /etc/pam.d/system-password << "EOF"
# Inicia /etc/pam.d/system-password

# Use resumo 'yescrypt' para encriptação; use sombra e tente usar
# qualquer token de autenticação previamente definido (senha escolhida)
# configurado por qualquer módulo anterior.
password  required    pam_unix.so       yescrypt shadow try_first_pass

# Termina /etc/pam.d/system-password
EOF

Se você deseja ativar o suporte a senhas fortes, [então] instale libpwquality-1.4.5 e siga as instruções naquela página para configurar o módulo PAM pam_pwquality com suporte a senhas fortes.

Em seguida, adicione um arquivo de configuração /etc/pam.d/other restritivo. Com esse arquivo, os aplicativos que reconhecem o PAM não serão executados, a menos que exista um arquivo de configuração específico para esse aplicativo.

cat > /etc/pam.d/other << "EOF"
# Início /etc/pam.d/other

auth        required        pam_warn.so
auth        required        pam_deny.so
account     required        pam_warn.so
account     required        pam_deny.so
password    required        pam_warn.so
password    required        pam_deny.so
session     required        pam_warn.so
session     required        pam_deny.so

# Fim /etc/pam.d/other
EOF

A página de manual do PAM (man pam) fornece um bom ponto de partida para aprender a respeito dos diversos campos e entradas permitidas. O Guia do(a) Administrador(a) do Sistema Linux-PAM é recomendado para informação adicional.

Importante

Você deveria agora reinstalar os pacotes Systemd-254 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.3

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Transferências Adicionais

Dependências do liboauth

Exigida

cURL-8.2.1

Opcionais

nss-3.92 e Doxygen-1.9.7 (para construir a documentação)

Instalação do liboauth

Aplique um remendo para a versão atual do OpenSSL:

patch -Np1 -i ../liboauth-1.0.3-openssl-1.1.0-3.patch

Instale liboauth executando os seguintes comandos:

./configure --prefix=/usr --disable-static &&
make

Se você deseja construir a documentação (precisa do Doxygen-1.9.7), 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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do libpwquality

Exigida

CrackLib-2.9.11

Recomendadas

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"
# Inicia /etc/pam.d/system-password

# verifique a força das novas senhas (man pam_pwquality)
password  required    pam_pwquality.so   authtok_type=UNIX retry=1 difok=1 \
                                         minlen=8 dcredit=0 ucredit=0 \
                                         lcredit=0 ocredit=0 minclass=1 \
                                         maxrepeat=0 maxsequence=0 \
                                         maxclassrepeat=0 gecoscheck=0 \
                                         dictcheck=1 usercheck=1 \
                                         enforcing=1 badwords="" \
                                         dictpath=/usr/lib/cracklib/pw_dict

# use resumo yescrypt para encriptação; use sombra e tente usar algum
# token de autenticação previamente definido (senha escolhida) configurado
# por algum módulo anterior.
password  required    pam_unix.so        yescrypt shadow try_first_pass

# Termina /etc/pam.d/system-password
EOF

Conteúdo

Aplicativos Instalados: pwscore e pwmake
Bibliotecas Instaladas: pam_pwquality.so e libpwquality.so
Diretórios Instalados: 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.21.2

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP): https://kerberos.org/dist/krb5/1.21/krb5-1.21.2.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 97d5f3a48235c53f6d537c877290d2af

  • Tamanho da transferência: 8,2 MB

  • Espaço em disco estimado exigido: 130 MB (adicionar 10 MB para testes)

  • Tempo de construção estimado: 0,3 UPC (Usando paralelismo=4; adicionar 1,0 UPC para testes)

Dependências do MIT Kerberos V5

Opcionais

Utilitários BIND-9.18.18, GnuPG-2.4.3 (para autenticar o pacote), keyutils-1.6.1, OpenLDAP-2.6.6, Valgrind-3.21.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.8p17) é necessário, pois o Kerberos não autenticaria se houvesse uma diferença de horário entre um cliente kerberizado e o servidor KDC.

Instalação do MIT Kerberos V5

Construa MIT Kerberos V5 executando os seguintes comandos:


cd src &&

sed -i -e '/eq 0/{N;s/12 //}'    plugins/kdb/db2/libdb2/test/run.test &&


./configure --prefix=/usr            \
            --sysconfdir=/etc        \
            --localstatedir=/var/lib \
            --runstatedir=/run       \
            --with-system-et         \
            --with-system-ss         \
            --with-system-verto=no   \
            --enable-dns-for-realm &&
make

Para testar a construção, emita: make -j1 -k check. Alguns testes possivelmente falhem com a versão mais recente de dejagnu e glibc. Alguns testes possivelmente travem por um tempo longo e falhem se o sistema não estiver conectado a uma rede de comunicação. Um teste, t_kadm5srv, é conhecido por falhar.

Agora, como o(a) usuário(a) root:

make install &&
cp -vfr ../doc -T /usr/share/doc/krb5-1.21.2

Explicações do Comando

O comando sed remove um teste que é conhecido por falhar.

--localstatedir=/var/lib: Essa opção é usada de forma que os dados variáveis de tempo de execução do Kerberos estejam localizados em /var/lib em vez de /usr/var.

--runstatedir=/run: Essa opção é usada de forma que a informação de estado em tempo de execução do Kerberos esteja localizada em /run em vez do obsoleto /var/run.

--with-system-et: Essa chave faz com que a construção use as versões instaladas do sistema do software de suporte à tabela de erros.

--with-system-ss: Essa chave faz com que a construção use as versões instaladas do sistema do software de interface de linha de comando do subsistema.

--with-system-verto=no: Essa chave corrige um defeito no pacote: ele não reconhece a própria biblioteca verto dele instalada anteriormente. Isso não é um problema, se reinstalar-se a mesma versão; mas, se estiver atualizando, [então] a biblioteca antiga é usada como a do sistema, ao invés de instalar a nova versão.

--enable-dns-for-realm: Essa chave permite que os domínios sejam resolvidos usando o servidor DNS.

--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.11. Observe que somente um arquivo pode ser usado, mas você pode concatenar muitos arquivos em um. O arquivo de configuração mostrado abaixo assume que você tenha instalado um dicionário em /usr/share/dict/words.

Crie o arquivo de configuração do Kerberos com os seguintes comandos emitidos pelo(a) usuário(a) root:

cat > /etc/krb5.conf << "EOF"
# Início /etc/krb5.conf

[libdefaults]
    default_realm = <EXAMPLE.ORG>
    encrypt = true

[realms]
    <EXAMPLE.ORG> = {
        kdc = <belgarath.example.org>
        admin_server = <belgarath.example.org>
        dict_file = /usr/share/dict/words
    }

[domain_realm]
    .<example.org> = <EXAMPLE.ORG>

[logging]
    kdc = SYSLOG:INFO:AUTH
    admin_server = SYSLOG:INFO:AUTH
    default = SYSLOG:DEBUG:DAEMON

# Fim /etc/krb5.conf
EOF

Você precisará substituir seu domínio e nome adequado do dispositivo para as ocorrências dos nomes <belgarath> e <example.org>.

default_realm deveria ser o nome do seu domínio mudado para TUDO EM MAIÚSCULAS. Isso não é obrigatório, mas tanto o Heimdal quanto o MIT o recomendam.

encrypt = true fornece encriptação de todo o tráfego entre clientes e servidores kerberizados. Não é necessário e pode ser deixado de lado. Se você deixá-lo desativado, [então] consegue encriptar todo o tráfego procedente do cliente para o servidor usando uma chave no aplicativo cliente.

Os parâmetros [realms] dizem aos aplicativos clientes onde procurar pelos serviços de autenticação do KDC.

A seção [domain_realm] mapeia um domínio para um reino.

Crie a base de dados do KDC:

kdb5_util create -r <EXEMPLO.ORG> -s

Agora você deveria povoar a base de dados com principais (usuários(as)). Por enquanto, apenas use seu nome normal de login ou root.

kadmin.local
kadmin.local: add_policy dict-only
kadmin.local: addprinc -policy dict-only <nome_login>

O servidor KDC e qualquer máquina executando processos de segundo plano de servidor kerberizados precisam ter uma chave de dispositivo instalada:

kadmin.local: addprinc -randkey host/<belgarath.exemplo.org>

Depois de escolher os padrões quando solicitado, você terá que exportar os dados para um arquivo de tabela de chave:

kadmin.local: ktadd host/<belgarath.exemplo.org>

Isso deveria ter criado um arquivo em /etc chamado krb5.keytab (Kerberos 5). Esse arquivo deveria ter permissões 600 (somente leitura e escrita por root). Manter os arquivos de tabela de chave do acesso público é crucial para a segurança geral da instalação do Kerberos.

Saia do aplicativo kadmin (use quit ou exit) e retorne ao prompt do shell. Inicie o processo de segundo plano KDC manualmente, apenas para testar a instalação:

/usr/sbin/krb5kdc

Tente obter um tíquete com o seguinte comando:

kinit <nome_login>

Você será solicitado(a) a fornecer a senha que criou. Depois de obter seu tíquete, você consegue listá-lo com o seguinte comando:

klist

Informação a respeito do tíquete deveriam ser exibidas na tela.

Para testar a funcionalidade do arquivo de tabela de chave, emita o seguinte comando como o(a) usuário(a) root:

ktutil
ktutil: rkt /etc/krb5.keytab
ktutil: l

Isso deveria despejar uma lista do principal do dispositivo, juntamente com os métodos de encriptação usados para acessar o principal.

Crie um arquivo ACL vazio que possa ser modificado posteriormente:

touch /var/lib/krb5kdc/kadm5.acl

Neste ponto, se tudo deu certo até agora, [então] você pode se sentir bastante confiante na instalação e configuração do pacote.

Informação Adicional

Para informação adicional, consulte a documentação para krb5-1.21.2 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-20230816 usando o seguinte comando:

make install-krb5

Conteúdo

Aplicativos Instalados: gss-client, gss-server, k5srvutil, kadmin, kadmin.local, kadmind, kdb5_ldap_util (opcional), kdb5_util, kdestroy, kinit, klist, kpasswd, kprop, kpropd, kproplog, krb5-config, krb5-send-pr, krb5kdc, ksu, kswitch, ktutil, kvno, sclient, sim_client, sim_server, sserver, uuclient e uuserver
Bibliotecas Instaladas: libgssapi_krb5.so, libgssrpc.so, libk5crypto.so, libkadm5clnt_mit.so, libkadm5clnt.so, libkadm5srv_mit.so, libkadm5srv.so, libkdb_ldap.so (opcional), libkdb5.so, libkrad.so, libkrb5.so, libkrb5support.so, libverto.so e alguns plugins sob a árvore /usr/lib/krb5
Diretórios Instalados: /usr/include/{gssapi,gssrpc,kadm5,krb5}, /usr/lib/krb5, /usr/share/{doc/krb5-1.21.2,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.9.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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do Nettle

Opcionais

Valgrind-3.21.0 (opcional para os testes)

Instalação do Nettle

Instale Nettle executando os seguintes comandos:

./configure --prefix=/usr --disable-static &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install &&
chmod   -v   755 /usr/lib/lib{hogweed,nettle}.so &&
install -v -m755 -d /usr/share/doc/nettle-3.9.1 &&
install -v -m644 nettle.{html,pdf} /usr/share/doc/nettle-3.9.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.9.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.92

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP): https://archive.mozilla.org/pub/security/nss/releases/NSS_3_92_RTM/src/nss-3.92.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 589167c3be81d09b9e332ff17d46ebca

  • Tamanho da transferência: 69 MB

  • Espaço em disco estimado exigido: 299 MB (adicionar 261 MB para testes)

  • Tempo de construção estimado: 1,2 UPC (com paralelismo=4; adicionar 15 UPC para 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 Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/nss

Instalação do NSS

Instale NSS executando os seguintes comandos:

patch -Np1 -i ../nss-3.92-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 longo para executar. Se desejado, existe informação no conjunto de comandos sequenciais all.sh relativa a executar subconjuntos da suíte total de teste.

  • Ao interromper os testes, a suíte de teste falha ao desligar os servidores de teste que estão executando. Isso leva a um loop infinito nos testes em que a suíte de teste tenta matar um servidor que não mais existe porque extrai o PID errado.

  • Os resultados da suíte de teste (em formato HTML!) podem ser encontrados em ../../test_results/security/localhost.1/results.html

  • Uns poucos testes podem falhar em algumas máquinas Intel por razões desconhecidas.

Agora, como o(a) usuário(a) root:

cd ../dist                                                          &&

install -v -m755 Linux*/lib/*.so              /usr/lib              &&
install -v -m644 Linux*/lib/{*.chk,libcrmf.a} /usr/lib              &&

install -v -m755 -d                           /usr/include/nss      &&
cp -v -RL {public,private}/nss/*              /usr/include/nss      &&

install -v -m755 Linux*/bin/{certutil,nss-config,pk12util} /usr/bin &&

install -v -m644 Linux*/lib/pkgconfig/nss.pc  /usr/lib/pkgconfig

Explicações do Comando

BUILD_OPT=1: Essa opção é passada para make de modo que a construção seja realizada sem símbolos de depuração embutidos nos binários e as otimizações padrão do compilador sejam usadas.

NSPR_INCLUDE_DIR=/usr/include/nspr: Essa opção configura o local dos cabeçalhos nspr.

USE_SYSTEM_ZLIB=1: Essa opção é passada para make para garantir que a biblioteca libssl3.so esteja vinculada ao zlib instalado do sistema em vez da versão em árvore.

ZLIB_LIBS=-lz: Essa opção fornece os sinalizadores de vinculador necessários para vincular ao zlib do sistema.

$([ $(uname -m) = x86_64 ] && echo USE_64=1): A opção USE_64=1 é exigida em x86_64, caso contrário, make tentará (e falhará) criar objetos de 32 bits. O teste [ $(uname -m) = x86_64 ] garante que não tenha efeito em um sistema de 32 bits.

([ -f /usr/include/sqlite3.h ] && echo NSS_USE_SYSTEM_SQLITE=1): Isso testa se o sqlite está instalado e, se estiver, echo a opção NSS_USE_SYSTEM_SQLITE=1 para make, de modo que libsoftokn3.so vinculará à versão do sistema do sqlite.

NSS_DISABLE_GTESTS=1: Se você não precisa executar a suíte de teste NSS, anexe essa opção ao comando make, para evitar a compilação dos testes e economizar algum tempo de construção.

Configurando NSS

Se p11-kit-0.25.0 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.4p1

Introdução ao OpenSSH

O pacote OpenSSH contém clientes ssh e o processo de segundo plano sshd. Isso é útil para encriptar a autenticação e o tráfego subsequente em uma rede de comunicação. Os comandos ssh e scp são implementações seguras do telnet e do rcp respectivamente.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP): https://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.4p1.tar.gz

  • Soma de verificação MD5 da transferência: 4bbd56a7ba51b0cd61debe8f9e77f8bb

  • Tamanho da transferência: 1,7 MB

  • Espaço em disco estimado exigido: 45 MB (adicionar 22 MB para testes)

  • Tempo de construção estimado: 0.2 SBU (Using parallelism=4; running the tests takes about 20 minutes, irrespective of processor speed)

Dependências do OpenSSH

Opcionais

GDB-13.2 (para testes), Linux-PAM-1.5.3, Aplicativos do Xorg (ou Ambiente de construção do "Xorg", vejam-se Explicações do Comando), MIT Kerberos V5-1.21.2, Which-2.21 (para testes), libedit, LibreSSL Portável, 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 Editor(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 -g sys -m700 -d /var/lib/sshd &&

groupadd -g 50 sshd        &&
useradd  -c 'sshd PrivSep' \
         -d /var/lib/sshd  \
         -g sshd           \
         -s /bin/false     \
         -u 50 sshd

Instale o OpenSSH executando os seguintes comandos:

./configure --prefix=/usr                           \
            --sysconfdir=/etc/ssh                    \
            --with-privsep-path=/var/lib/sshd        \
            --with-default-path=/usr/bin             \
            --with-superuser-path=/usr/sbin:/usr/bin \
            --with-pid-dir=/run                      &&
make

Para testar os resultados, emita: make -j1 tests.

Agora, como o(a) usuário(a) root:

make install &&
install -v -m755   contrib/ssh-copy-id /usr/bin     &&

install -v -m644    contrib/ssh-copy-id.1 \
                    /usr/share/man/man1              &&
install -v -m755 -d /usr/share/doc/openssh-9.4p1     &&
install -v -m644    INSTALL LICENCE OVERVIEW README* \
                    /usr/share/doc/openssh-9.4p1

Explicações do Comando

--sysconfdir=/etc/ssh: Isso evita que os arquivos de configuração sejam instalados em /usr/etc.

--with-default-path=/usr/bin e --with-superuser-path=/usr/sbin:/usr/bin: Esses configuram PATH consistente com o pacote Shadow do LFS e do BLFS.

--with-pid-dir=/run: Isso evita que OpenSSH se refira ao obsoleto /var/run.

--with-pam: Esse parâmetro habilita o suporte Linux-PAM na construção.

--with-xauth=$XORG_PREFIX/bin/xauth: Configure o local padrão para o binário xauth para autenticação do X. A variável de ambiente XORG_PREFIX deveria estar configurada seguindo Ambiente de construção do "Xorg". Isso também pode ser controlado a partir de sshd_config com a palavra-chave XAuthLocation. Você pode omitir essa chave se o Xorg já estiver instalado.

--with-kerberos5=/usr: Essa opção é usada para incluir suporte a Kerberos 5 na construção.

--with-libedit: Essa opção habilita a edição de linha e recursos de histórico para o sftp.

Configurando o OpenSSH

Arquivos de Configuração

~/.ssh/*, /etc/ssh/ssh_config e /etc/ssh/sshd_config

Não existem mudanças exigidas para nenhum desses arquivos. No entanto, você possivelmente deseje visualizar os arquivos do /etc/ssh/ e fazer quaisquer mudanças apropriadas para a segurança do teu sistema. Uma mudança recomendada é a de desabilitar o login do(a) root via ssh. Execute o seguinte comando como o(a) usuário(a) root para desabilitar o login do(a) root via ssh:

echo "PermitRootLogin no" >> /etc/ssh/sshd_config

Se quiser estar apto(a) a se logar sem digitar tua senha, crie primeiro ~/.ssh/id_rsa e ~/.ssh/id_rsa.pub com o ssh-keygen e depois copie ~/.ssh /id_rsa.pub para ~/.ssh/authorized_keys no computador remoto no qual deseja se logar. Você precisará mudar NOME_USUARIO(A)_REMOTO e NOME_DISPOSITIVO_REMOTO para o nome de usuário(a) e nome do dispositivo do computador remoto e também precisará inserir tua senha para que o comando ssh-copy-id seja bem-sucedido:

ssh-keygen &&
ssh-copy-id -i ~/.ssh/id_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-20230816.

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.4p1 e /var/lib/sshd

Descrições Curtas

scp

é um aplicativo de cópia de arquivo que age como rcp, exceto que usa um protocolo encriptado

sftp

é um aplicativo do tipo FTP que funciona ao longo dos protocolos SSH1 e SSH2

ssh

é um aplicativo cliente do tipo rlogin/rsh, exceto que usa um protocolo encriptado

sshd

é um processo de segundo plano que escuta solicitações de login do ssh

ssh-add

é uma ferramenta que adiciona chaves ao ssh-agent

ssh-agent

é um agente de autenticação que consegue armazenar chaves privadas

ssh-copy-id

é um conjunto de comandos sequenciais que habilita logins em máquinas remotas usando chaves locais

ssh-keygen

é uma ferramenta de geração de chave

ssh-keyscan

é um utilitário para coletar chaves públicas de dispositivo a partir de vários dispositivos

p11-kit-0.25.0

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do p11-kit

Recomendadas
Recomendadas (tempo de execução)
Opcionais

GTK-Doc-1.33.2, libxslt-1.1.38 e nss-3.92 (tempo de execução)

Instalação do p11-kit

Corrija um problema causante de alguns módulos PKCS 11 falharem para carregar:

sed 's/if (gi/& \&\& gi != C_GetInterface/' \
    -i p11-kit/modules.c

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 setup ..            \
      --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.38 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-123

Introdução ao Polkit

Polkit é um kit de ferramentas para definir e para manusear autorizações. Ele é usado para permitir que processos não privilegiados se comuniquem com processos privilegiados.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do Polkit

Exigidas

GLib-2.76.4

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.13.0 (pode ser usado no lugar de duktape) e dbusmock-0.29.1 (para os testes)

Dependências Exigidas em Tempo de Execução

Systemd-254

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.27.7 para KDE, o agente construído em gnome-shell-44.3 para GNOME3, polkit-gnome-0.105 para XFCE e lxpolkit em LXSession-0.5.5 para LXDE

Nota

Se libxslt-1.1.38 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.38, mas não deseja instalar nenhum dos pacotes DocBook mencionados, [então] você precisará usar -Dman=false nas instruções abaixo.

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

Se usar JS-102.13.0, faça a seguinte mudança (veja-se as Explicações dos Comandos abaixo para mais informações):

sed -e 's/JS_Init/JS::DisableJitBackend(); &/' \
    -i src/polkitbackend/polkitbackendjsauthority.cpp

Instale o Polkit executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup ..                            \
      --prefix=/usr                       \
      --buildtype=release                 \
      -Dman=true                          \
      -Dsession_tracking=libsystemd-login \
      -Dtests=true                        &&
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.29.1 estejam instalados. Em seguida, execute ninja test.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

sed -e 's/JS_Init/JS::DisableJitBackend(); &/' ... : A compilação JIT do JS102 precisa do mapeamento W+X, o que é perigoso e não é permitido pelo arquivo de unidade do systemd fornecido com o pacote polkit. Esse comando não é estritamente necessário em sistemas baseados em sysvinit, mas ainda melhora a segurança. Ele não tem efeito se construir-se o polkit com o mecanismo Javascript duktape-2.7.0 recomendado.

--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=mozjs: Essa chave permite usar o mecanismo JavaScript JS-102.13.0 em vez do mecanismo JavaScript duktape-2.7.0.

-Dos_type=lfs: Use essa chave se você não criou o arquivo /etc/lfs-release ou a detecção automática da distribuição falhará e você estará inapto(a) a usar o Polkit.

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

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Transferências Adicionais

Dependências do Polkit GNOME

Exigidas

AccountsService-23.13.9, GTK+-3.24.38 e Polkit-123

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do Shadow

Exigida

Linux-PAM-1.5.3 ou CrackLib-2.9.11

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 YESCRYPT@' \
    -e 's@/var/spool/mail@/var/mail@'                   \
    -e '/PATH=/{s@/sbin:@@;s@/bin:@@}'                  \
    -i etc/login.defs                                   &&

./configure --sysconfdir=/etc               \
            --disable-static                \
            --with-{b,yes}crypt             \
            --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 YESCRYPT@' -e 's@/var/spool/mail@/var/mail@' -e '/PATH=/{s@/sbin:@@;s@/bin:@@}' -i etc/login.defs: Em vez de usar o método padrão 'DES ', esse comando modifica a instalação para usar o método muito mais seguro 'YESCRYPT' de resumo de senhas, que também permite senhas maiores que oito caracteres. O comando também muda o local obsoleto /var/spool/mail para caixas de correio de usuário(a) que Shadow usa por padrão para o local /var/mail. Ele também muda o caminho padrão para estar consistente com aquele configurado no LFS.

--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.3 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 a mensagem do dia - Desabilitado por padrão
#session   optional    pam_motd.so

# Verifica mensagens eletrônicas para o(a) usuário(a) - Desabilitado por padrão
#session   optional    pam_mail.so      standard quiet

# inclui configurações da sessão e senha do sistema
session   include     system-session
password  include     system-password

# Fim /etc/pam.d/login
EOF
'passwd'
cat > /etc/pam.d/passwd << "EOF"
# Início /etc/pam.d/passwd

password  include     system-password

# Fim /etc/pam.d/passwd
EOF
'su'
cat > /etc/pam.d/su << "EOF"
# Início /etc/pam.d/su

# Sempre permitir root
auth      sufficient  pam_rootok.so

# Permite que usuários(as) do grupo wheel executem su sem uma senha
# Desabilitado por padrão
#auth      sufficient  pam_wheel.so trust use_uid

# Inclui configurações de autenticação do sistema
auth      include     system-auth

# Limita su a usuários(as) no grupo wheel
# Desabilitado por padrão
#auth      required    pam_wheel.so use_uid

# Inclui configurações de conta do sistema
account   include     system-account

# Configura variáveis padrão de ambiente para o(a) usuário(a) do serviço
session   required    pam_env.so

# Inclui configurações de sessão do sistema
session   include     system-session

# Fim /etc/pam.d/su
EOF
'chpasswd' e 'newusers'
cat > /etc/pam.d/chpasswd << "EOF"
# Início /etc/pam.d/chpasswd

# Sempre permitir root
auth      sufficient  pam_rootok.so

# Inclui configurações do sistema de autenticação e de conta
auth      include     system-auth
account   include     system-account
password  include     system-password

# Fim /etc/pam.d/chpasswd
EOF

sed -e s/chpasswd/newusers/ /etc/pam.d/chpasswd >/etc/pam.d/newusers
'chage'
cat > /etc/pam.d/chage << "EOF"
# Início /etc/pam.d/chage

# Sempre permitir root
auth      sufficient  pam_rootok.so

# Inclui configurações do sistema de autenticação e de conta
auth      include     system-auth
account   include     system-account

# Fim /etc/pam.d/chage
EOF
Outros utilitários de sombra
for PROGRAM in chfn chgpasswd chsh groupadd groupdel \
              groupmems groupmod useradd userdel usermod
do
    install -v -m644 /etc/pam.d/chage /etc/pam.d/${PROGRAM}
    sed -i "s/chage/$PROGRAM/" /etc/pam.d/${PROGRAM}
done

Atenção

Neste ponto, você deveria fazer um teste simples para ver se o Shadow está funcionando conforme o esperado. Abra outro terminal e se logue como root e, em seguida, execute login e se logue como outro(a) usuário(a). Se não vir nenhum erro, então está tudo bem e você deveria prosseguir com o restante da configuração. Se você recebeu erros, [então] pare agora e verifique duplamente os arquivos de configuração acima manualmente. Qualquer erro é o sinal de um erro no procedimento acima. Você também pode executar a suíte de teste proveniente do pacote Linux-PAM para ajudá-lo(a) a determinar o problema. Se não conseguir localizar e corrigir o erro, [então] você deveria recompilar o Shadow adicionando a chave --without-libpam ao comando configure nas instruções acima (também mova o arquivo de cópia de segurança /etc/login.defs.orig para /etc/login.defs). Se falhar em fazer isso e os erros persistirem, [então] você não conseguirá se logar no seu sistema.

Configurando Acesso de Login

Em vez de usar o arquivo /etc/login.access para controlar o acesso ao sistema, o Linux-PAM usa o módulo pam_access.so juntamente com o arquivo /etc/security/access.conf. Renomeie o arquivo /etc/login.access usando o seguinte comando:

if [ -f /etc/login.access ]; then mv -v /etc/login.access{,.SEMUSO}; fi
Configurando Limites de Recurso

Em vez de usar o arquivo /etc/limits para limitar o uso dos recursos do sistema, o Linux-PAM usa o módulo pam_limits.so junto com o arquivo /etc/security/limits.conf. Renomeie o arquivo /etc/limits usando o seguinte comando:

if [ -f /etc/limits ]; then mv -v /etc/limits{,.SEMUSO}; fi

Cuidado

Certifique-se de testar os recursos de login do sistema antes de se deslogar. Erros na configuração podem causar um bloqueio permanente exigindo uma inicialização a partir de uma fonte externa para corrigir o problema.

Conteúdo

Uma lista dos arquivos instalados, juntamente com as descrições curtas deles, pode ser encontrada em ../../../../lfs/view/12.0-systemd/chapter08/shadow.html#contents-shadow.

ssh-askpass-9.4p1

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do ssh-askpass

Exigidas

GTK+-3.24.38, Sudo-1.9.14p3 (tempo de execução), Bibliotecas do Xorg e um ambiente gráfico (tempo de execução)

Observações de Editor(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.14p3 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.70

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP):

  • Transferência (FTP): ftp://ftp.stunnel.org/stunnel/archive/5.x/stunnel-5.70.tar.gz

  • Soma de verificação MD5 da transferência: 4246f65d556b9ec51e94f80744ce0eda

  • Tamanho da transferência: 864 KB

  • Espaço em disco estimado exigido: 6,9 MB

  • Tempo de construção estimado: menos que 0,1 UPC

Dependências do stunnel

Opcionais

libnsl-2.0.0, netcat (exigido para os testes), tcpwrappers e TOR

Instalação do stunnel

O processo de segundo plano stunnel será executado em uma jaula chroot por um(a) usuário(a) sem privilégios. Crie o(a) novo(a) usuário(a) e grupo usando os seguintes comandos como o(a) usuário(a) root:

groupadd -g 51 stunnel &&
useradd -c "Processo de segundo plano stunnel" -d /var/lib/stunnel \
        -g stunnel -s /bin/false -u 51 stunnel

Nota

Um certificado SSL assinado e uma chave privada é necessário(a) para executar o processo de segundo plano stunnel. Depois que o pacote estiver instalado, existem instruções para gerá-lo(a). No entanto, se você é dono(a) ou já criou um Certificado SSL assinado que deseja usar, [então] copie-o para /etc/stunnel/stunnel.pem antes de iniciar a construção (certifique-se de que somente o(a) root tenha acesso de leitura e gravação). O arquivo .pem precisa ser formatado conforme mostrado:

-----BEGIN PRIVATE KEY-----
<muitas linhas encriptadas da chave privada>
-----END PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
<muitas linhas encriptadas do certificado>
-----END CERTIFICATE-----
-----BEGIN DH PARAMETERS-----
<linhas encriptadas dos parâmetros dh>
-----END DH PARAMETERS-----

Instale stunnel executando os seguintes comandos:

./configure --prefix=/usr       \
            --sysconfdir=/etc    \
            --localstatedir=/var &&
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.70 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.70

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.14p3

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do Sudo

Opcionais

Linux-PAM-1.5.3, MIT Kerberos V5-1.21.2, OpenLDAP-2.6.6, MTA (que fornece um comando sendmail), AFS, FWTK e Opie

Observações de Editor(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.14p3 \
            --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 para configurar o caminho para o(a) superusuário(a) e para permitir que os(as) membros(as) do grupo wheel executem todos os comandos depois de fornecerem as próprias credenciais deles(as). Use os seguintes comandos para criar o arquivo de configuração /etc/sudoers.d/00-sudo como o(a) usuário(a) root:

cat > /etc/sudoers.d/00-sudo << "EOF"
Defaults secure_path="/usr/sbin:/usr/bin"
%wheel ALL=(ALL) ALL
EOF

Nota

Em instalações muito simples onde existe somente um(a) usuário(a), possivelmente seja mais fácil apenas editar o arquivo /etc/sudoers diretamente. Nesse caso, a entrada secure_path possivelmente não seja necessária e usar sudo -E ... pode importar o ambiente completo do(a) usuário(a) não privilegiado(a) para a sessão privilegiada.

Os arquivos no diretório /etc/sudoers.d são analisados em ordem léxica classificada. Tenha cuidado para que as entradas em um arquivo adicionado não sobrescrevam as entradas anteriores.

Para detalhes, veja-se man sudoers.

Nota

Os(As) desenvolvedores(as) do Sudo recomendam enfaticamente usar o aplicativo visudo para editar o arquivo sudoers. Isso fornecerá verificação básica de sanidade, como análise de sintaxe e permissão de arquivo, para evitar alguns possíveis erros que poderiam levar a uma configuração vulnerável.

Se o PAM estiver instalado no sistema, [então] Sudo será construído com suporte a PAM. Nesse caso, emita o seguinte comando como o(a) usuário(a) root para criar o arquivo de configuração do PAM:

cat > /etc/pam.d/sudo << "EOF"
# Início /etc/pam.d/sudo

# Inclui as configurações padrão de autenticação
auth      include     system-auth

# Inclui as configurações padrão de conta
account   include     system-account

# Configura variáveis padrão de ambiente para o(a) usuário(a) do serviço
session   required    pam_env.so

# Inclui padrões de sessão do sistema
session   include     system-session

# Fim /etc/pam.d/sudo
EOF
chmod 644 /etc/pam.d/sudo

Conteúdo

Aplicativos Instalados: cvtsudoers, sudo, sudo_logsrvd, sudo_sendlog, sudoedit (link simbólico), sudoreplay e visudo
Bibliotecas Instaladas: audit_json.so, group_file.so, libsudo_util.so, 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.14p3 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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do Tripwire

Opcionais

Um MTA

Instalação do Tripwire

Compile Tripwire executando os seguintes comandos:

sed -e '/^CLOBBER/s/false/true/'        \
    -e 's|TWDB="${prefix}|TWDB="/var|'   \
    -e '/TWMAN/ s|${prefix}|/usr/share|' \
    -e '/TWDOCS/s|${prefix}/doc/tripwire|/usr/share/doc/tripwire-2.4.3.7|' \
    -i installer/install.cfg                               &&

find . -name Makefile.am | xargs                           \
    sed -i 's/^[[:alpha:]_]*_HEADERS.*=/noinst_HEADERS =/' &&

sed '/dist/d' -i man/man?/Makefile.am                      &&
autoreconf -fi                                             &&

./configure --prefix=/usr --sysconfdir=/etc/tripwire       &&
make CPPFLAGS=-std=c++11

Nota

A configuração padrão é a de usar um MTA local. Se você não teiver um MTA instalado e não desejar instalar um, [então] modifique install/install.cfg para usar um servidor SMTP. Caso contrário, a instalação falhará.

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install &&
cp -v policy/*.txt /usr/share/doc/tripwire-2.4.3.7

Nota

Durante o make install, várias perguntas são feitas, incluindo senhas. Se você deseja criar um script, [então] tem de aplicar um sed antes de executar make install:

sed -i -e 's@installer/install.sh@& -n -s <senha_do_sítio> -l <senha_local>@' Makefile

Claro, você deveria fazer isso com senhas fictícias e mudá-las posteriormente.

Outro problema ao criar scripts é o de que o instalador sai quando a entrada padrão não é um terminal. Você consegue desativar esse comportamento com o seguinte sed:

sed '/-t 0/,+3d' -i installer/install.sh

Explicações do Comando

sed ... installer/install.cfg: Esse comando informa ao pacote para instalar a base de dados do aplicativo e informa em /var/lib/tripwire e configura o local adequado para páginas de manual e documentação.

find ..., sed ... e autoreconf -fi: O sistema de construção é inutilizável como está e tem de ser modificado para que a construção tenha sucesso.

CPPFLAGS=-std=c++11: Configurar os sinalizadores do pré-processador C++ para a versão 11 é necessário para evitar um conflito com a versão padrão que é c++17 na versão recente do GCC.

make install: Esse comando cria as chaves de segurança do Tripwire assim como instala os binários. Existem duas chaves: uma chave do sítio e uma chave local que são armazenadas em /etc/tripwire/.

cp -v policy/*.txt /usr/doc/tripwire-2.4.3.7: Esse comando instala os arquivos de 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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do volume_key

Exigidas

cryptsetup-2.4.3, GLib-2.76.4, GnuPG-2.4.3, GPGME-1.21.0 e nss-3.92

Recomendada

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

Outras Dependências em Tempo de Execução

LVM2-2.03.22 e(ou) mdadm-4.2 precisam ser instalados antes de gerar o initramfs, se a partição do sistema os usar.

Para construir um initramfs, execute o seguinte como o(a) usuário(a) root:

mkinitramfs [VERSÃO DO NÚCLEO]

O argumento opcional é o diretório onde os módulos apropriados do núcleo estão localizados. Esse precisa ser um subdiretório de /lib/modules. Se nenhum módulo for especificado, então o initramfs é nomeado initrd.img-no-kmods. Se uma versão do núcleo for especificada, [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.3.3

Introdução ao btrfs-progs

O pacote btrfs-progs contém ferramentas de administração e de depuração para o sistema de arquivos B-tree (btrfs).

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP): https://www.kernel.org/pub/linux/kernel/people/kdave/btrfs-progs/btrfs-progs-v6.3.3.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 1b5705b3e9503f09a9598dad1e7bfbc8

  • Tamanho da transferência: 3,0 MB

  • Espaço em disco estimado exigido: 62 MB (arquivos temporários criados durante os testes precisam de até 10 GB)

  • Tempo de construção estimado: 0,2 UPC (adicionar 3,8 UPC para testes, até 80 UPC em discos lentos se reiserfsprogs estiver instalado)

Dependências do Btrfs-progs

Exigidas

LZO-2.10

Opcionais

LVM2-2.03.22 (dmsetup é usado em testes), reiserfsprogs-3.6.27 (para os testes) e sphinx-7.1.2 (exigido para construir a documentação)

Configuração do Núcleo

Habilite a seguinte opção na configuração do núcleo e recompile o núcleo:

File systems --->
  <*/M> Btrfs filesystem support                                      [BTRFS_FS]

Além do acima e das opções exigidas para LVM2-2.03.22 e reiserfsprogs-3.6.27, as seguintes opções precisam ser habilitadas para execução de testes:

File systems --->
  <*/M> Reiserfs support (deprecated)                              [REISERFS_FS]
  [*]     ReiserFS extended attributes                       [REISERFS_FS_XATTR]
  [*]       ReiserFS POSIX Access Control Lists          [REISERFS_FS_POSIX_ACL]
  <*/M> Btrfs filesystem support                                      [BTRFS_FS]
  [*]     Btrfs POSIX Access Control Lists                  [BTRFS_FS_POSIX_ACL]

Instalação do btrfs-progs

Instale o btrfs-progs executando os seguintes comandos:

./configure --prefix=/usr           \
            --disable-static        \
            --disable-documentation &&
make

Nota

Alguns testes exigem grep construído com expressões regulares perl. Para obter isso, reconstrua o grep com as instruções do Capítulo 8 do LFS depois de instalar o pcre2-10.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
   sed 's/,orphan_file//' /etc/mke2fs.conf >./custom_mke2fs.conf &&
   export MKE2FS_CONFIG=$PWD/custom_mke2fs.conf                  &&
   ./convert-tests.sh
   unset MKE2FS_CONFIG && rm custom_mke2fs.conf
   ./misc-tests.sh
   ./fuzz-tests.sh
popd

Nota

Se as opções do núcleo mencionadas acima não estiverem habilitadas, alguns testes falharão e impedirão todos os testes restantes de executarem, porque a imagem de teste do disco não foi desmontada corretamente.

Instale o pacote como o(a) usuário(a) root:

make install

Se você tiver passado --disable-documentation para configure e precisar das páginas de manual, instale-as executando, como o(a) usuário(a) root:

for i in 5 8; do
   install Documentation/*.$i /usr/share/man/man$i
done

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

--disable-documentation: Essa chave desabilita reconstruir as páginas de manual, porque isso exige sphinx-7.1.2.

sed 's/,orphan_file//" ...: Nessa versão do btrfs-progs, o aplicativo btrfs-convert produz um sistema de arquivos btrfs contendo erros, se converter a partir de um sistema de arquivos ext4 criado com o recurso orphan_file. Esse comando cria um arquivo de configuração personalizado que impede criar um sistema de arquivos com esse recurso.

Usando o Aplicativo btrfs-convert

Essa versão do btrfs-progs não converte corretamente sistemas de arquivos ext4 para btrfs, se o recurso orphan_file do ext4 estiver ativado. Se acontecer de você converter esse sistema de arquivos, você precisa primeiro executar:

tune2fs -O ^orphan_file /dev/sdxx

onde /dev/sdxx é a partição do sistema de arquivos que você quer converter.

Conteúdo

Aplicativos Instalados: btrfs, btrfs-convert, btrfs-find-root, btrfs-image, btrfs-map-logical, btrfs-select-super, btrfsck (link para btrfs), btrfstune, fsck.btrfs e mkfs.btrfs
Bibliotecas Instaladas: libbtrfs.so e libbtrfsutil.so
Diretórios Instalados: /usr/include/btrfs

Descrições Curtas

btrfs

é a interface principal para as operações do sistema de arquivos btrfs

btrfs-convert

converte a partir de um sistema de arquivos ext2/3/4 ou reiserfs para btrfs (veja-se “Usando o Aplicativo btrfs-convert” acima)

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Configuração do Núcleo

Habilite a seguinte opção na configuração do núcleo e recompile o núcleo se você precisar montar um sistema de arquivos da família FAT:

File systems --->
  DOS/FAT/EXFAT/NT Filesystems --->
    < /*/M> MSDOS fs support                                          [MSDOS_FS]
    <*/M>   VFAT (Windows-95) fs support                               [VFAT_FS]

Observe que CONFIG_MSDOS_FS deliberadamente não suporta nomes longos de arquivos. CONFIG_VFAT_FS deveria ser usada em vez disso, a menos que você realmente queira impor os nomes de arquivo 8.3 no estilo DOS.

Você pode montar um sistema de arquivos da família FAT assim que o núcleo o suportar. Se não precisar criar, verificar ou rotular novamente um sistema da família FAT, você pode ignorar esse pacote.

Instalação do dosfstools

Instale dosfstools executando os seguintes comandos:

./configure --prefix=/usr           \
            --enable-compat-symlinks \
            --mandir=/usr/share/man  \
            --docdir=/usr/share/doc/dosfstools-4.2 &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--enable-compat-symlinks: Essa chave cria os links simbólicos dosfsck, dosfslabel, fsck.msdos, fsck.vfat, mkdosfs, mkfs.msdos e mkfs.vfat exigidos por alguns aplicativos.

Conteúdo

Aplicativos Instalados: fatlabel, fsck.fat e mkfs.fat

Descrições Curtas

fatlabel

configura ou obtém um rótulo do sistema de arquivos MS-DOS a partir de um dado dispositivo

fsck.fat

verifica e repara sistemas de arquivos MS-DOS

mkfs.fat

cria um sistema de arquivos MS-DOS sob o Linux

Fuse-3.16.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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do Fuse

Opcionais

Doxygen-1.9.7 (para reconstruir a documentação da API), pytest-7.4.0 (exigido para testes) e looseversion (para testes)

Configuração do Núcleo

Habilite as seguintes opções na configuração do núcleo e recompile o núcleo, se necessário:

File systems --->
  <*/M> FUSE (Filesystem in Userspace) support                         [FUSE_FS]

Os dispositivos de caracteres no espaço do usuário(a) também deveriam ser habilitados para executar os testes:

File systems --->
  <*/M> FUSE (Filesystem in Userspace) support                         [FUSE_FS]
  <*/M>   Character device in Userspace support                           [CUSE]

Instalação do Fuse

Instale Fuse executando os seguintes comandos:

sed -i '/^udev/,$ s/^/#/' util/meson.build &&

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

A documentação da API está incluída no pacote, mas se você tiver o Doxygen-1.9.7 instalado e quiser reconstruí-la, [então] emita:

pushd .. &&
  doxygen doc/Doxyfile &&
popd

Para testar os resultados, emita os seguintes comandos (como o(a) usuário(a) root):

python3 -m venv --system-site-packages testenv &&
source testenv/bin/activate                    &&
pip3 install looseversion                      &&
python3 -m pytest                              &&
deactivate

O módulo Python pytest-7.4.0 é exigido para os testes. Um teste chamado test_cuse falhará se o item de configuração CONFIG_CUSE não foi habilitado quando o núcleo foi construído. Um teste, test/util.py, gerará um aviso devido ao uso de uma marca desconhecida no pytest. Um teste chamado test_notify_inval_entry[True-expire_entries] possivelmente falhe sub certas circunstâncias.

Agora, como o(a) usuário(a) root:

ninja install                  &&
chmod u+s /usr/bin/fusermount3 &&

cd ..                          &&
cp -Rv doc/html -T /usr/share/doc/fuse-3.16.1 &&
install -v -m644   doc/{README.NFS,kernel.txt} \
                   /usr/share/doc/fuse-3.16.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.16.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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Transferências Adicionais

Configuração do Núcleo

Habilite a seguinte opção na configuração do núcleo e recompile o núcleo:

File systems --->
  <*/M> JFS filesystem support                                          [JFS_FS]

Instalação do jfsutils

Primeiro, corrija alguns problemas expostos pelo GCC 10 e posteriores:

patch -Np1 -i ../jfsutils-1.1.15-gcc10_fix-1.patch

Instale jfsutils executando os seguintes comandos:

sed -i "/unistd.h/a#include <sys/types.h>"    fscklog/extract.c &&
sed -i "/ioctl.h/a#include <sys/sysmacros.h>" libfs/devices.c   &&

./configure &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

sed ...: Corrige a construção com a glibc 2.28.

Conteúdo

Aplicativos Instalados: fsck.jfs, jfs_debugfs, jfs_fsck, jfs_fscklog, jfs_logdump, jfs_mkfs, jfs_tune e mkfs.jfs
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: Nenhum(a)

Descrições Curtas

fsck.jfs

é usado para reproduzir o registro de transações do JFS, verificar um dispositivo formatado do JFS para erros e corrigir quaisquer erros encontrados

jfs_fsck

é um link rígido para fsck.jfs

mkfs.jfs

constrói um sistema de arquivos JFS

jfs_mkfs

é um link rígido para mkfs.jfs

jfs_debugfs

é um aplicativo que pode ser usado para realizar várias ações de baixo nível em um dispositivo formatado do JFS

jfs_fscklog

extrai um registro de serviço fsck do JFS em um arquivo e(ou) formata e exibe o arquivo extraído

jfs_logdump

despeja o conteúdo do registro do diário a partir do dispositivo formatado com JFS especificado no arquivo de saída gerada ./jfslog.dmp

jfs_tune

ajusta os parâmetros ajustáveis do sistema de arquivos em sistemas de arquivos JFS

LVM2-2.03.22

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP): https://sourceware.org/ftp/lvm2/LVM2.2.03.22.tgz

  • Transferência (FTP): ftp://sourceware.org/pub/lvm2/LVM2.2.03.22.tgz

  • Soma de verificação MD5 da transferência: a97cf533222a5760225dbd26c3982ca6

  • Tamanho da transferência: 2,6 MB

  • Espaço em disco estimado exigido: 38 MB (adicionar 20 MB para testes; arquivos transitórios podem crescer até cerca de 300 MB no diretório /tmp durante testes)

  • Tempo de construção estimado: 0,1 UPC (usando paralelismo = 4; adicionar 9 a 48 UPC para testes, dependendo da velocidade do disco e de se o dispositivo de bloco de RAM estiver habilitado no núcleo)

Dependências do LVM2

Exigida

libaio-0.3.113

Opcionais

mdadm-4.2, reiserfsprogs-3.6.27, Valgrind-3.21.0, Which-2.21, xfsprogs-6.4.0 (todos os cinco podem ser usados, porém não são exigidos, para os testes), thin-provisioning-tools e vdo

Configuração do Núcleo

Habilite as seguintes opções na configuração do núcleo e recompile o núcleo:

Nota

Existem várias outras opções do Device Mapper no núcleo além das listadas abaixo. Para obter resultados razoáveis ao executar os testes de regressão, todas precisam ser habilitadas, seja internamente ou como um módulo. Todos os testes expirarão se a chave Magic SysRq não estiver habilitada.

Device Drivers --->
  [*] Block devices --->                                               [BLK_DEV]
    <*/M> RAM block device support                                 [BLK_DEV_RAM]
  [*] Multiple devices driver support (RAID and LVM) --->                   [MD]
    <*/M> Device mapper support                                     [BLK_DEV_DM]
    <*/M>   Crypt target support                                      [DM_CRYPT]
    <*/M>   Snapshot target                                        [DM_SNAPSHOT]
    <*/M>   Thin provisioning target                      [DM_THIN_PROVISIONING]
    <*/M>   Cache target (EXPERIMENTAL)                               [DM_CACHE]
    <*/M>   Mirror target                                            [DM_MIRROR]
    <*/M>   Zero target                                                [DM_ZERO]
    <*/M>   I/O delaying target                                       [DM_DELAY]

Kernel hacking --->
  Generic Kernel Debugging Instruments --->
    [*] Magic SysRq key                                            [MAGIC_SYSRQ]

Instalação do LVM2

Instale LVM2 executando os seguintes comandos:

PATH+=:/usr/sbin               \
./configure --prefix=/usr       \
            --enable-cmdlib     \
            --enable-pkgconfig  \
            --enable-udev_sync  &&
make

Os testes usam udev para sincronização de volume lógico, de forma que as regras LVM do udev e alguns utilitários precisam ser instalados antes de se executar os testes. Se você estiver instalando o LVM2 pela primeira vez e não quiser instalar o pacote completo antes de executar os testes, [então] o conjunto mínimo de utilitários pode ser instalado executando as seguintes instruções como o(a) usuário(a) root:

make -C tools install_tools_dynamic &&
make -C udev  install              &&
make -C libdm install

Para testar os resultados, emita, como o(a) usuário(a) root:

LC_ALL=en_US.UTF-8 make check_local

Alguns testes possivelmente travem. Nesse caso, eles podem ser pulados adicionando-se S=<nome_do_teste> ao comando make. Outros alvos estão disponíveis e podem ser listados com make -C test help. Os tempos de teste são muito dependentes da velocidade do(s) disco(s) e do número de opções de núcleo habilitadas.

Os testes não implementam a possibilidade de falha esperada e um pequeno número de falhas de teste é esperado pelo(a) desenvolvedor(a). Mais falhas possivelmente acontecam porque algumas opções do núcleo estão ausentes. Por exemplo, a falta do alvo do mapeador de dispositivos dm-delay explica algumas falhas. Alguns testes possivelmente falhem se existir espaço livre insuficiente disponível na partição com o diretório /tmp. Pelo menos um teste falha se 16 TB não estiver disponível. Alguns testes são sinalizados como avisados se thin-provisioning-tools não estiver instalado. Uma solução alternativa é a de adicionar os seguintes sinalizadores a configure:

     --with-thin-check=    \
     --with-thin-dump=    \
     --with-thin-repair=   \
     --with-thin-restore=  \
     --with-cache-check=   \
     --with-cache-dump=    \
     --with-cache-repair=  \
     --with-cache-restore= \

Alguns testes possivelmente travem. Eles podem ser removidos se necessário, por exemplo: rm test/shell/lvconvert-raid-reshape.sh. Os testes geram um monte de mensagens do núcleo, que possivelmente sobrecarreguem seu terminal. Você consegue desabilitá-los emitindo dmesg -D antes de executar os testes (não se esqueça de emitir dmesg -E quando os testes forem concluídos).

Nota

As verificações criam nós de dispositivo no diretório /tmp. Os testes falharão se /tmp for montado com a opção nodev.

Agora, como o(a) usuário(a) root:

make install
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.22 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.6, para definir as partições necessárias para a matriz. Normalmente, existirá uma partição em cada unidade participante da matriz RAID, mas isso não é estritamente necessário. Para este exemplo, existirão quatro unidades de disco: /dev/sda, /dev/sdb, /dev/sdc e /dev/sdd. Eles serão particionados como segue:

Tamanho da partição     Tipo                Uso
sda1:     100 MB   fd Linux raid auto  /boot    (RAID 1) /dev/md0
sda2:      10 GB   fd Linux raid auto  /        (RAID 1) /dev/md1
sda3:       2 GB   83 Linux swap       swap
sda4      300 GB   fd Linux raid auto  /home    (RAID 5) /dev/md2

sdb1:     100 MB   fd Linux raid auto  /boot    (RAID 1) /dev/md0
sdb2:      10 GB   fd Linux raid auto  /        (RAID 1) /dev/md1
sdb3:       2 GB   83 Linux swap       swap
sdb4      300 GB   fd Linux raid auto  /home    (RAID 5) /dev/md2

sdc1:      12 GB   fd Linux raid auto  /usr/src (RAID 0) /dev/md3
sdc2:     300 GB   fd Linux raid auto  /home    (RAID 5) /dev/md2

sdd1:      12 GB   fd Linux raid auto  /usr/src (RAID 0) /dev/md3
sdd2:     300 GB   fd Linux raid auto  /home    (RAID 5) /dev/md2 

Nesse arranjo, uma partição separada de inicialização é criada como a primeira matriz RAID pequena e um sistema de arquivos raiz como a segunda matriz RAID, ambas espelhadas. A terceira partição é uma matriz grande (cerca de 1 TB) para o diretório /home. Isso fornece uma capacidade de distribuir dados entre vários dispositivos, melhorando a velocidade de leitura e de gravação de arquivos grandes. Por fim, uma quarta matriz é criada que concatena duas partições em um dispositivo maior.

Nota

Todos os comandos mdadm precisam ser executados como o(a) usuário(a) root.

Para criar essas matrizes RAID, os comandos são:

/sbin/mdadm -Cv /dev/md0 --level=1 --raid-devices=2 /dev/sda1 /dev/sdb1
/sbin/mdadm -Cv /dev/md1 --level=1 --raid-devices=2 /dev/sda2 /dev/sdb2
/sbin/mdadm -Cv /dev/md3 --level=0 --raid-devices=2 /dev/sdc1 /dev/sdd1
/sbin/mdadm -Cv /dev/md2 --level=5 --raid-devices=4 \
       /dev/sda4 /dev/sdb4 /dev/sdc2 /dev/sdd2 

Os dispositivos criados podem ser examinados por dispositivo. Por exemplo, para ver os detalhes de /dev/md1, use /sbin/mdadm --detail /dev/md1:

        Version : 1.2
  Creation Time : Tue Feb  7 17:08:45 2012
     Raid Level : raid1
     Array Size : 10484664 (10.00 GiB 10.74 GB)
  Used Dev Size : 10484664 (10.00 GiB 10.74 GB)
   Raid Devices : 2
  Total Devices : 2
    Persistence : Superblock is persistent

    Update Time : Tue Feb  7 23:11:53 2012
          State : clean
 Active Devices : 2
Working Devices : 2
 Failed Devices : 0
  Spare Devices : 0

           Name : core2-blfs:0  (local to host core2-blfs)
           UUID : fcb944a4:9054aeb2:d987d8fe:a89121f8
         Events : 17

    Number   Major   Minor   RaidDevice State
       0       8        1         0      active sync   /dev/sda1
       1       8       17        1      active sync   /dev/sdb1

A partir deste ponto, as partições podem ser formatadas com o sistema de arquivos de sua escolha (por exemplo, ext3, ext4, xfsprogs-6.4.0, 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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do mdadm

Opcionais

Um MTA

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) --->                   [MD]
    <*/M>   RAID support                                            [BLK_DEV_MD]
    [*]       Autodetect RAID arrays during kernel boot          [MD_AUTODETECT]
    # Only the RAID types desired are required:
    < /*/M>   RAID-0 (striping) mode                                  [MD_RAID0]
    < /*/M>   RAID-1 (mirroring) mode                                 [MD_RAID1]
    < /*/M>   RAID-10 (mirrored striping) mode                       [MD_RAID10]
    < /*/M>   RAID-4/RAID-5/RAID-6 mode                             [MD_RAID456]

Instalação do mdadm

Construa o mdadm executando o seguinte comando:

make

Esse pacote não vem com uma suíte de teste funcional.

Agora, como o(a) usuário(a) root:

make BINDIR=/usr/sbin install

Explicações do Comando

make everything: Esse alvo opcional cria aplicativos extras, particularmente uma versão vinculada estaticamente do mdadm. Isso precisa ser instalado manualmente.

--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 --->
  DOS/FAT/EXFAT/NT Filesystems --->
    <*/M> NTFS Read-Write file system support                         [NTFS3_FS]

Para garantir que o comando mount use NTFS3 para partições NTFS, crie um script vinculador:

cat > /usr/sbin/mount.ntfs << "EOF" &&
#!/bin/sh
exec mount -t ntfs3 "$@"
EOF
chmod -v 755 /usr/sbin/mount.ntfs

Com o suporte do núcleo disponível, o ntfs-3g é necessário somente se você precisar dos utilitários oriundos dele (por exemplo, para criar sistemas de arquivos NTFS).

O pacote Ntfs-3g contém um controlador estável, de leitura e gravação e de código aberto para partições NTFS. As partições NTFS são usadas pela maioria dos sistemas operacionais da Microsoft. O Ntfs-3g permite que você monte partições NTFS no modo de leitura e gravação a partir do seu sistema Linux. Ele usa o módulo do núcleo FUSE para poder implementar o suporte NTFS no espaço do(a) usuário(a). O pacote também contém vários utilitários úteis para manipular partições NTFS.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do Ntfs-3g

Opcional

fuse 2.x (isso desabilita as montagens do(a) usuário(a))

Configuração do Núcleo

Habilite as seguintes opções na configuração do núcleo e recompile o núcleo, se necessário:

File systems --->
  <*/M> FUSE (Filesystem in Userspace) support                         [FUSE_FS]

Observe que isso só é necessário para montar partições NTFS com ntfs-3g. Se, ao invés, você usará o controlador NTFS3 intra núcleo para montar partições NTFS (como os(as) editores(as) do BLFS recomendam), você pode ignorar esse item de configuração.

Instalação do Ntfs-3g

Instale Ntfs-3g executando os seguintes comandos:

./configure --prefix=/usr       \
            --disable-static     \
            --with-fuse=internal \
            --docdir=/usr/share/doc/ntfs-3g-2022.10.3 &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install &&

É recomendável usar o controlador NTFS3 interno ao núcleo para montar sistemas de arquivos NTFS, em vez do ntfs-3g (veja-se a observação no início desta página). No entanto, se você quiser, de qualquer maneira, usar o ntfs-3g para montar os sistemas de arquivos NTFS, [então] crie um link simbólico para o comando mount:

ln -sv ../bin/ntfs-3g /usr/sbin/mount.ntfs &&
ln -sv ntfs-3g.8 /usr/share/man/man8/mount.ntfs.8

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

--with-fuse=internal: Essa chave força dinamicamente o ntfs-3g a usar uma cópia interna da biblioteca fuse-2.x. Isso é exigido se você deseja permitir que os(as) usuários(as) montem partições NTFS.

--disable-ntfsprogs: Desabilita a instalação de vários utilitários usados para manipular partições NTFS.

chmod -v 4755 /usr/bin/ntfs-3g: Tornar mount.ntfs setuid root permite que usuários(as) não root montem partições NTFS.

Usando o Ntfs-3g

Para montar uma partição do Windows em tempo de inicialização, coloque uma linha como esta em /etc/fstab:

/dev/sda1 /mnt/windows auto defaults 0 0

Para permitir que os(as) usuários(as) montem um pendrive com um sistema de arquivos NTFS nele, coloque uma linha semelhante a esta (mude sdc1 para o que um pendrive seria em seu sistema) em /etc/fstab:

/dev/sdc1 /mnt/usb auto user,noauto,umask=0,utf8 0 0

Para que um(a) usuário(a) possa montar o pendrive, ele(a) precisará ser capaz de escrever em /mnt/usb; portanto, como o(a) usuário(a) root:

chmod -v 777 /mnt/usb

Conteúdo

Aplicativos Instalados: lowntfs-3g, mkfs.ntfs, mkntfs, mount.lowntfs-3g, mount.ntfs, mount.ntfs-3g, ntfs-3g, ntfs-3g.probe, ntfscat, ntfsclone, ntfscluster, ntfscmp, ntfscp, ntfsfix, ntfsinfo, ntfslabel, ntfsls, ntfsresize e ntfsundelete
Biblioteca Instalada: libntfs-3g.so
Diretórios Instalados: /usr/include/ntfs-3g e /usr/share/doc/ntfs-3g

Descrições Curtas

lowntfs-3g

é semelhante ao ntfs-3g, mas usa a interface de baixo nível Fuse

mkfs.ntfs

é um link simbólico para mkntfs

mkntfs

cria um sistema de arquivos NTFS

mount.lowntfs-3g

é um link simbólico para lowntfs-3g

mount.ntfs

monta um sistema de arquivos NTFS

mount.ntfs-3g

é um link simbólico para ntfs-3g

ntfs-3g

é um controlador NTFS, que consegue criar, remover, renomear, mover arquivos, diretórios, links rígidos e fluxos. Ele também consegue ler e gravar arquivos, incluindo fluxos, arquivos esparsos e arquivos comprimidos de forma transparente. Ele também consegue lidar com arquivos especiais, como links simbólicos, dispositivos e FIFOs; além disso, fornece gerenciamento padrão de propriedade e de permissões de arquivos, incluindo ACLs POSIX

ntfs-3g.probe

testa se um volume NTFS é montável somente leitura ou leitura/gravação e sai com um valor de status correspondente. O volume pode ser um dispositivo de bloco ou arquivo de imagem

ntfscluster

identifica arquivos em uma região especificada de um volume NTFS

ntfscp

copia um arquivo para um volume NTFS

ntfsfix

corrige erros comuns e força o Windows a verificar uma partição NTFS

ntfsls

lista o conteúdo do diretório em um sistema de arquivos NTFS

ntfscat

imprime arquivos e fluxos NTFS na saída gerada padrão

ntfsclone

clona um sistema de arquivos NTFS

ntfscmp

compara dois sistemas de arquivos NTFS e mostra as diferenças

ntfsinfo

despeja os atributos de um arquivo

ntfslabel

exibe ou muda o rótulo em um sistema de arquivos NTFS

ntfsresize

redimensiona um sistema de arquivos NTFS sem perda de dados

ntfsundelete

recupera um arquivo deletado a partir de um volume NTFS

libntfs-3g.so

contém as funções da API do Ntfs-3g

gptfdisk-1.0.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 corretamente usando uma plataforma LFS 12.0.

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

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

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP): https://ftp.gnu.org/gnu/parted/parted-3.6.tar.xz

  • Transferência (FTP): ftp://ftp.gnu.org/gnu/parted/parted-3.6.tar.xz

  • Soma de verificação MD5 da transferência: 93d2d8f22baebc5eb65b85da05a79e4e

  • Tamanho da transferência: 1,8 MB

  • Espaço em disco estimado exigido: 29 MB (adicionais 3 MB para os testes e adicionais 2 MB para a documentação opcional PDF e Postscript)

  • Tempo de construção estimado: 0,3 UPC (3,6 UPC adicionais para os testes)

Dependências do Parted

Recomendada
Opcionais

dosfstools-4.2, Pth-2.0.7, texlive-20230313 (ou install-tl-unx) e Digest::CRC (para testes)

Configuração Opcional do Núcleo para Testes

Cerca de 20% mais testes são executados se o seguinte módulo do núcleo for construído:

Device Drivers --->
  SCSI device support --->
    [*] SCSI low-level drivers --->                              [SCSI_LOWLEVEL]
      <M> SCSI debugging host and device simulator                  [SCSI_DEBUG]

Instalação do parted

Instale Parted executando os seguintes comandos:

./configure --prefix=/usr --disable-static &&
make &&

make -C doc html                                      &&
makeinfo --html      -o doc/html       doc/parted.texi &&
makeinfo --plaintext -o doc/parted.txt doc/parted.texi

Se você tiver texlive-20230313 instalado e desejar criar documentação em PDF e Postscript, [então] emita os seguintes comandos:

cp build-aux/texinfo.tex doc               &&
texi2pdf -o doc/parted.pdf doc/parted.texi &&
texi2dvi -o doc/parted.dvi doc/parted.texi &&
dvips    -o doc/parted.ps  doc/parted.dvi

Para testar os resultados, emita, como o(a) usuário(a) root:

make check

Nota

Muitos testes são pulados se não executados como o(a) usuário(a) root.

Agora, como o(a) usuário(a) root:

make install &&
install -v -m755 -d /usr/share/doc/parted-3.6/html &&
install -v -m644    doc/html/* \
                   /usr/share/doc/parted-3.6/html &&
install -v -m644    doc/{FAT,API,parted.{txt,html}} \
                    /usr/share/doc/parted-3.6

Instale a documentação opcional PDF e Postscript emitindo o seguinte comando como o(a) usuário(a) root:

install -v -m644 doc/FAT doc/API doc/parted.{pdf,ps,dvi} \
                   /usr/share/doc/parted-3.6

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

--disable-device-mapper: Essa opção desabilita o suporte a mapeador de dispositivos. Adicione esse parâmetro se você não tiver instalado o LVM2.

Conteúdo

Aplicativos Instalados: parted e partprobe
Bibliotecas Instaladas: libparted.so e libparted-fs-resize.so
Diretórios Instalados: /usr/include/parted e /usr/share/doc/parted-3.6

Descrições Curtas

parted

é um aplicativo de manipulação de partição

partprobe

informa o Sistema Operacional a respeito de mudanças da tabela de partição

libparted.so

contém as funções da API do Parted

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Configuração do Núcleo

Habilite a seguinte opção na configuração do núcleo e recompile o núcleo:

File systems --->
  <*/M> Reiserfs support (deprecated)                              [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.4

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do smartmontools

Opcionais (tempo de execução)

cURL-8.2.1 ou Lynx-2.8.9rel.1 ou Wget-1.21.4 (ferramentas de transferência) e GnuPG-2.4.3 (discos rígidos encriptados)

Instalação do smartmontools

Instale smartmontools executando os seguintes comandos:

./configure --prefix=/usr          \
            --sysconfdir=/etc       \
            --docdir=/usr/share/doc/smartmontools-7.4 &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

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.4 e /etc/smartd_warning.d

Descrições Curtas

smartctl

é o utilitário de controle e de monitoramento para Discos SMART

smartd

é o processo de segundo plano de monitoramento de disco SMART

update-smart-drivedb

é a ferramenta de atualização para a base de dados de unidade smartmontools

sshfs-3.7.3

Introdução 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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do Sshfs

Exigidas

Fuse-3.16.1, GLib-2.76.4 e OpenSSH-9.4p1.

Opcionais

docutils-0.20.1 (exigido para construir a página de manual)

Instalação do Sshfs

Instale Sshfs executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

ninja install

Usando o Sshfs

Para montar um servidor SSH, você precisa estar apto(a) a se logar no servidor. Por exemplo, para montar sua pasta "home" remota no ~/caminho_de_exemplo local (o diretório precisa existir e você precisa ter permissões para gravar nele):

sshfs exemplo.com:/home/userid ~/caminho_de_exemplo

Quando tiver terminado o trabalho e quiser desmontá-lo novamente:

fusermount3 -u ~/exemplo

Você também consegue montar um sistema de arquivos sshfs na inicialização adicionando uma entrada semelhante à seguinte no arquivo /etc/fstab:

id_de_usuario@exemplo.com:/caminho /media/caminho fuse.sshfs _netdev,IdentityFile=/home/id_de_usuario/.ssh/id_rsa 0 0

Veja-se man 1 sshfs e man 8 mount.fuse3 para todas as opções disponíveis de montagem.

Conteúdo

Aplicativo Instalado: sshfs
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: Nenhum(a)

Descrições Curtas

sshfs

monta um servidor ssh como um sistema de arquivos local

xfsprogs-6.4.0

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do xfsprogs

Exigidas

inih-57 e liburcu-0.14.0

Opcionais

ICU-73.2 (para escaneamento de nome Unicode em xfs_scrub)

Configuração do Núcleo

Habilite as seguintes opções na configuração do núcleo e recompile o núcleo:

File systems --->
  <*/M> XFS filesystem support                                          [XFS_FS]

Instalação do xfsprogs

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.4.0 install    &&
make PKG_DOC_DIR=/usr/share/doc/xfsprogs-6.4.0 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.4.0

Descrições Curtas

fsck.xfs

simplesmente sai com um status zero, pois as partições XFS são verificadas ao tempo da montagem

mkfs.xfs

constrói um sistema de arquivos XFS

xfs_admin

muda os parâmetros de um sistema de arquivos XFS

xfs_bmap

imprime o mapeamento de bloco para um arquivo XFS

xfs_copy

copia o conteúdo de um sistema de arquivos XFS para um ou mais destinos em paralelo

xfs_estimate

para cada argumento de diretório, estima o espaço que o diretório ocuparia se fosse copiado para um sistema de arquivos XFS (não cruza os pontos de montagem)

xfs_db

é usado para depurar um sistema de arquivos XFS

xfs_freeze

suspende o acesso a um sistema de arquivos XFS

xfs_fsr

aplicável somente a sistemas de arquivos XFS, melhora a organização de sistemas de arquivos montados; o algoritmo de reorganização opera sobre um arquivo por vez, compactando ou, do contrário, melhorando o esquema das extensões de arquivo (blocos contíguos de dados de arquivo)

xfs_growfs

expande um sistema de arquivos XFS

xfs_info

é equivalente a invocar xfs_growfs, mas especificando que nenhuma mudança no sistema de arquivos é para ser feita

xfs_io

é uma ferramenta de depuração, como xfs_db, mas tem como objetivo examinar o caminho regular de Entrada/Saída de arquivo em vez do próprio volume cru XFS

xfs_logprint

imprime o registro de um sistema de arquivos XFS

xfs_mdrestore

restaura uma imagem do meta despejo XFS para uma imagem do sistema de arquivos

xfs_metadump

copia os metadados do sistema de arquivos XFS para um arquivo

xfs_mkfile

cria um arquivo XFS, preenchido com zeros por padrão

xfs_ncheck

gera nomes de caminhos a partir de números de "inode" para um sistema de arquivos XFS

xfs_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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Transferências Adicionais

Dependências do efivar

Exigidas

mandoc-1.14.6

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 ERRORS=

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

ERRORS=: Essa opção substitui o -Werror passado para o GCC por padrão, de forma que o pacote não falhe ao construir com o aviso -Wenum-int-mismatch introduzido no GCC 13.

LIBDIR=/usr/lib: Essa opção substitui o diretório padrão da biblioteca do pacote (/usr/lib64, que não é usado pelo LFS).

Conteúdo

Aplicativos Instalados: efisecdb e efivar
Bibliotecas Instaladas: libefiboot.so, libefisec.so e libefivar.so
Diretórios Instalados: /usr/include/efivar

Descrições Curtas

efisecdb

é um utilitário para gerenciar listas de assinatura UEFI

efivar

é uma ferramenta para manipular variáveis UEFI

libefiboot.so

é uma biblioteca usada pelo efibootmgr

libefisec.so

é uma biblioteca para gerenciar listas de assinatura UEFI

libefivar.so

é uma biblioteca para a manipulação de variáveis EFI

efibootmgr-18

Introdução ao efibootmgr

O pacote efibootmgr fornece ferramentas e bibliotecas para manipular variáveis EFI.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do efibootmgr

Exigidas

efivar-38 e popt-1.19

Instalação do efibootmgr

Construa o efibootmgr com os seguintes comandos:

make EFIDIR=LFS EFI_LOADER=grubx64.efi

Esse pacote não tem uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install EFIDIR=LFS

Explicações do Comando

EFIDIR=LFS: Essa opção especifica o nome do subdiretório da distribuição sob /boot/efi/EFI. O sistema de construção desse pacote precisa que essa seja configurada explicitamente.

EFI_LOADER=grubx64.efi: Essa opção especifica o nome do carregador padrão de inicialização EFI. Ele é 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 corretamente usando uma plataforma LFS 12.0.

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: 183 MB

  • Tempo de construção estimado: 0,4 UPC (no LFS de 64 bits, usando paralelismo=4)

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)

  • Consulte a página GCC-13.2.0 para informações de transferência.

Dependências do GRUB

Recomendadas
Opcionais

LVM2-2.03.22

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.06.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-13.2.0.tar.xz
    mkdir gcc-13.2.0/build
    pushd gcc-13.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.1 não estiver instalada, é possível omitir essa opção e construir o GRUB. No entanto, se grub-mkfont não for construído ou os dados da fonte Unicode não estiverem disponíveis ao tempo que o GRUB for construído, 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 ou em uma região menor na tela.

--with-platform=efi: Garante a construção do GRUB com EFI habilitado.

--target=x86_64: Garante a construção do GRUB para x86_64, mesmo se construir em um sistema LFS de 32 bits. A maioria do firmware EFI em x86_64 não suporta carregadores de inicialização de 32 bits.

--target=i386: Algumas plataformas x86 de 32 bits tem suporte EFI. E algumas plataformas x86_64 tem uma implementação EFI de 32 bits, mas são muito antigas e raras. Use isso ao invés de --target=x86_64 se você estiver absolutamente seguro(a) de que o LFS está executando em tal sistema.

Configurando o GRUB

Usar o GRUB para tornar o sistema LFS inicializável na plataforma UEFI será discutido em Usando o GRUB para Configurar o Processo de Inicialização com UEFI.

Conteúdo

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.

Configuração do Núcleo para Suporte a UEFI

Habilite as seguintes opções na configuração do núcleo e recompile o núcleo, se necessário:

Processor type and features --->
  [*] EFI runtime service support                                          [EFI]

-*- Enable the block layer --->                                          [BLOCK]
  Partition Types --->
    [ /*] Advanced partition selection                      [PARTITION_ADVANCED]
    [*]     EFI GUID Partition support                           [EFI_PARTITION]

Device Drivers --->
  Firmware Drivers --->
    [*] Mark VGA/VBE/EFI FB as generic system framebuffer       [SYSFB_SIMPLEFB]
  Graphics support --->
    <*> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) --->
                                                                      ...  [DRM]
    [*] Enable legacy fbdev support for your modesetting driver
                                                      ...  [DRM_FBDEV_EMULATION]
    <*> Simple framebuffer driver                                [DRM_SIMPLEDRM]
    Frame buffer Devices --->
      <*> Support for frame buffer devices --->                             [FB]
    Console display driver support --->
      -*- Framebuffer Console support                      [FRAMEBUFFER_CONSOLE]

File systems --->
  DOS/FAT/EXFAT/NT Filesystems --->
    <*/M> VFAT (Windows-95) fs support                                 [VFAT_FS]
  Pseudo filesystems --->
    <*/M> EFI Variable filesystem                                    [EFIVAR_FS]
  -*- Native language support --->                                         [NLS]
    <*/M> Codepage 437 (United States, Canada)                [NLS_CODEPAGE_437]
    <*/M> NLS ISO 8859-1  (Latin 1; Western European Languages)  [NLS_ISO8859_1]

O significado das opções de configuração:

CONFIG_PARTITION_ADVANCED

Se não estiver habilitado, CONFIG_EFI_PARTITION será habilitado automaticamente. Mas quando estiver habilitado, você precisa configurar CONFIG_EFI_PARTITION como habilitado também.

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 núcleo, a menos que um initramfs seja usado.

Criar um Disco de Inicialização de Emergência

Garanta que um disco de inicialização de emergência esteja pronto para resgatar o sistema no caso do sistema se tornar não inicializável. Para produzir um disco de inicialização de emergência com o GRUB para um sistema baseado em EFI, encontre uma unidade flash USB sobressalente e crie um sistema de arquivos vfat nela. Instale o dosfstools-4.2 primeiro, então, como o(a) usuário(a) root:

Atenção

O comando a seguir apagará todos os diretórios e arquivos na partição. Certifique-se de que sua unidade flash USB não contém dados que serão necessários e mude sdx1 para o nó de dispositivo correspondente à primeira partição da unidade flash USB. Seja cuidado(a) para não sobrescrever sua unidade rígida com um erro de digitação!

mkfs.vfat /dev/sdx1

Ainda como o(a) usuário(a) root, use o utilitário fdisk para configurar a primeira partição da unidade flash USB para ser uma partição do sistema EFI (mude sdx para o nó de dispositivo correspondente à sua unidade flash USB):

fdisk /dev/sdx

Welcome to fdisk (util-linux 2.39.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): t
Partition number (1-9, default 9): 1
Partition type or alias (type L to list all): uefi
Changed type of partition 'Linux filesystem' to 'EFI System'.

Command (m for help): w
The partition table has been altered.
Syncing disks.

Ainda como o(a) usuário(a) root, crie um ponto de montagem para a partição EFI na unidade flash USB e monte-o:

mount --mkdir -v -t vfat /dev/sdx1 -o codepage=437,iocharset=iso8859-1 \
      /mnt/rescue

Instale o GRUB para EFI na partição:

grub-install --target=x86_64-efi --removable \
             --efi-directory=/mnt/rescue --boot-directory=/mnt/rescue

Desmonte a partição:

umount /mnt/rescue

Agora, a unidade flash USB pode ser usada como um disco de inicialização de emergência em qualquer plataforma UEFI x86-64. 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.

Encontrar ou Criar a Partição do Sistema EFI

Em sistemas baseados em EFI, os carregadores de inicialização são instalados em uma partição especial FAT32 chamada EFI System Partition (ESP). Se o seu sistema suportar EFI e uma versão recente de alguma distribuição Linux ou Windows estiver pré-instalada, [então] é provável que o ESP já tenha sido criada. Como o(a) usuário(a) root, liste todas as partições em sua unidade rígida (substitua sda pelo dispositivo correspondente à unidade rígida apropriada):

fdisk -l /dev/sda

A coluna Type da ESP deveria ser EFI System.

Se o sistema ou a unidade rígida for novo(a) ou essa for a primeira instalação de um Sistema Operacional inicializado por UEFI no sistema, a ESP possivelmente não exista. Nesse caso, instale dosfstools-4.2 primeiro. Em seguida, crie uma nova partição, produza um sistema de arquivos vfat nela e configure o tipo de partição como EFI system. Vejam-se as instruções para o dispositivo de inicialização de emergência acima como uma referência.

Atenção

Algumas (antigas) implementações UEFI possivelmente exijam que a ESP seja a primeira partição no disco.

Agora, como o(a) usuário(a) root, crie o ponto de montagem para a ESP e monte-a (substitua sda1 pelo nó de dispositivo correspondente à ESP):

mount --mkdir -v -t vfat /dev/sda1 -o codepage=437,iocharset=iso8859-1 \
      /boot/efi

Se você quiser montar a ESP automaticamente durante a inicialização do sistema, como o(a) usuário(a) root, adicione uma entrada para a ESP em /etc/fstab:

cat >> /etc/fstab << EOF
/dev/sda1 /boot/efi vfat codepage=437,iocharset=iso8859-1 0 1
EOF

Configuração Mínima de Inicialização com GRUB e EFI

Em sistemas baseados em UEFI, o GRUB funciona instalando um aplicativo EFI (um tipo especial de executável) na ESP. O firmware EFI pesquisará carregadores de inicialização em aplicativos EFI a partir de entradas de inicialização registradas em variáveis EFI e, adicionalmente, um caminho rigidamente codificado, EFI/BOOT/BOOTX64.EFI. Normalmente, um carregador de inicialização deveria ser instalado em um caminho personalizado e o caminho deveria ser registrado nas variáveis EFI. O uso do caminho codificado rigidamente deveria ser evitado, se possível. No entanto, em alguns casos, temos que usar o caminho codificado rigidamente:

  • O sistema não foi inicializado com EFI ainda, tornando as variáveis EFI inacessíveis.

  • O firmware EFI é de 64 bits, mas o sistema LFS é de 32 bits, tornando as variáveis EFI inacessíveis porque o núcleo não consegue invocar serviços de tempo de execução EFI com um comprimento diferente de endereço virtual.

  • O LFS é construído para um Live USB, de forma que não podemos confiar nas variáveis EFI, as quais são armazenadas em NVRAM ou em EEPROM na máquina local.

  • Você não consegue ou não quer instalar o efibootmgr para manipular entradas de inicialização em variáveis EFI.

Nesses casos, siga estas instruções para instalar o aplicativo EFI do GRUB no caminho codificado rigidamente e faça uma configuração mínima de inicialização. Caso contrário, é melhor pular à frente e definir a configuração de inicialização normalmente.

Para instalar o GRUB com o aplicativo EFI no caminho rigidamente codificado EFI/BOOT/BOOTX64.EFI, primeiro certifique-se de que a partição de inicialização esteja montada em /boot e de que a ESP esteja montada em /boot/efi. Então, como o(a) usuário(a) root, execute o comando:

Nota

Este comando sobrescreverá /boot/efi/EFI/BOOT/BOOTX64.EFI. Ele possivelmente quebre um carregador de inicialização já instalado lá. Produza uma cópia de segurança dele se não tiver certeza.

grub-install --target=x86_64-efi --removable

Esse comando instalará o aplicativo EFI do GRUB no caminho rigidamente codificado /boot/efi/EFI/BOOT/BOOTX64.EFI, de forma que o firmware EFI consiga achá-lo e carregá-lo. Os arquivos restantes do GRUB são instalados no diretório /boot/grub e serão carregados pelo BOOTX64.EFI durante a inicialização do sistema.

Nota

O firmware EFI geralmente prefere os aplicativos EFI com um caminho armazenado em variáveis EFI ao aplicativo EFI no caminho codificado rigidamente. Portanto, você possivelmente precise invocar o menu de seleção de inicialização ou a interface de configuração de firmware para selecionar manualmente o GRUB recém-instalado na próxima inicialização. Leia-se o manual da sua placa-mãe ou laptop para aprender como.

Se você tiver seguido as instruções nesta seção e configurou uma configuração mínima de inicialização, agora pule à frente para Criando o Arquivo de Configuração do GRUB.

Montar o Sistema de Arquivos de Variáveis EFI

A instalação do GRUB em uma plataforma UEFI exige que o sistema de arquivos de Variáveis EFI, efivarfs, esteja montado. Como o(a) usuário(a) root, monte-o se já não estiver montado:

mountpoint /sys/firmware/efi/efivars || mount -v -t efivarfs efivarfs /sys/firmware/efi/efivars

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
# Inicia /boot/grub/grub.cfg
set default=0
set timeout=5

insmod part_gpt
insmod ext2
set root=(hd0,2)

insmod all_video
if loadfont /boot/grub/fonts/unicode.pf2; then
  terminal_output gfxterm
fi

menuentry "GNU/Linux, Linux 6.4.10-lfs-12.0"  {
  linux   /boot/vmlinuz-6.4.10-lfs-12.0 root=/dev/sda2 ro
}

menuentry "Firmware Setup" {
  fwsetup
}
EOF

Consulte-se o livro LFS para o conhecimento básico acerca do arquivo grub.cfg. (hd0,2), sda2 e 6.4.10-lfs-12.0 precisam corresponderem à tua configuração.

A diretiva insmod all_video carrega vários módulos para suporte de vídeo. Ela é necessária para inicializar o framebuffer EFI para o núcleo imprimir mensagens corretamente antes da inicialização do controlador GPU de núcleo.

A diretiva terminal_output gfxterm muda a resolução da tela do menu do GRUB para corresponder ao teu dispositivo de exibição. Isso quebrará a renderização se o arquivo de dados da fonte unicode.pf2 não estiver carregado, de forma que ele é protegido por uma diretiva if.

Nota

Da perspectiva do GRUB, os arquivos são relativos às partições usadas. Se você usou uma partição /boot separada, [então] remova /boot dos caminhos acima (para o núcleo e para unicode.pf2). Você também precisará mudar a linha "set root" para apontar para a partição de inicialização.

A entrada Firmware Setup pode ser usada para entrar na interface de configuração fornecida pelo firmware (às vezes chamada de Configuração do BIOS).

Inicialização Dupla com o Windows

Adicione uma entrada de menu para o Windows no grub.cfg:

cat >> /boot/grub/grub.cfg << EOF
# Início da adição do Windows

menuentry "Windows 11" {
  insmod fat
  insmod chain
  set root=(hd0,1)
  chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}
EOF

(hd0,1) deveria ser substituído pelo nome designado pelo GRUB para a ESP. A diretiva chainloader pode ser usada para dizer ao GRUB para executar outro executável EFI, nesse caso o Windows Boot Manager. Você pode colocar mais ferramentas utilizáveis no formato de executável EFI (por exemplo, um shell EFI) na ESP e, também, criar entradas do GRUB para elas.

Capítulo 6. Editores de Texto

Este capítulo é referenciado no livro LFS para aqueles(as) que desejam usar outros editores no sistema LFS deles(as). Você também verá como alguns aplicativos instalados do LFS se beneficiam de serem recompilados depois que bibliotecas GUI tenham sido instaladas.

Bluefish-2.2.14

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do Bluefish

Exigidas

GTK+-2.24.33 ou GTK+-3.24.38 (se ambos estiverem instados, [então] configure, por padrão, usa GTK+ 3)

Recomendada
Opcionais

enchant-2.5.0 (para verificação ortográfica), Gucharmap-15.0.4, PCRE-8.45 e Jing

Instalação do Bluefish

Instale Bluefish executando os seguintes comandos:

./configure --prefix=/usr --docdir=/usr/share/doc/bluefish-2.2.14 &&
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.14 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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do Ed

Exigido para descomprimir o tarball

libarchive-3.7.1 (para bsdtar)

Instalação do Ed

Instale Ed executando os seguintes comandos:

./configure --prefix=/usr &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: ed e red
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: Nenhum(a)

Descrições Curtas

ed

é um editor de texto orientado a linhas

red

é um ed restrito—somente pode editar arquivos no diretório atual e não consegue executar comandos do shell

Emacs-29.1

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do Emacs

Recomendadas
Opcionais

um ambiente gráfico, alsa-lib-1.2.9, Cairo-1.17.6, dbus-1.14.8, GConf-3.2.6, gobject-introspection-1.76.1, gsettings-desktop-schemas-44.0, GPM-1.20.7, GTK+-2.24.33 ou GTK+-3.24.38, ImageMagick-7.1.1-15, Little CMS-2.14, libjpeg-turbo-3.0.0, libpng-1.6.40, librsvg-2.56.3, libseccomp-2.5.4, libwebp-1.3.1, libxml2-2.10.4, MIT Kerberos V5-1.21.2, SQLite-3.42.0, Valgrind-3.21.0, intlfonts, libungif, libotf e m17n-lib - para exibir corretamente conjuntos de comandos sequenciais complexos, tais como Indic e Khmer, e também para conjuntos de comandos sequenciais que exigem suporte a modelagem de Árabe (Arabic e Farsi), mailutils e libXaw3d

Instalação do Emacs

Instale Emacs executando os seguintes comandos:

./configure --prefix=/usr &&
make

Esse pacote não vem com uma suíte de teste. Se o "make" for bem-sucedido, [então] você consegue testar o resultado executando src/emacs -Q, que é o aplicativo que será instalado, com os arquivos auxiliares dele. Isso deveria iniciar e exibir a tela de abertura do aplicativo.

Agora, como o(a) usuário(a) root:

make install &&
chown -v -R root:root /usr/share/emacs/29.1

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.38 instalado e emitir o seguinte comando como o(a) usuário(a) root:

gtk-update-icon-cache -qtf /usr/share/icons/hicolor

Explicações do Comando

--with-imagemagick: Use isso se você tiver instalado o ImageMagick-7.1.1-15 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.1.

--with-gnutls=no: Use isso se você não tiver instalado GnuTLS-3.8.1.

--without-harfbuzz: Use isso se você não tiver instalado o HarfBuzz-8.1.1.

--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-29.1, 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-46.1

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do Gedit

Exigidas

gsettings-desktop-schemas-44.0, itstool-2.0.7, libpeas-1.36.0, libgeditsourceview-299.0.4 e tepl-6.8.0

Recomendadas
Opcionais

GTK-Doc-1.33.2, Vala-0.56.11 e zeitgeist

Instalação do Gedit

Primeiro mude o conjunto de comandos sequenciais meson.build, de forma que ele consiga aceitar uma construção release.

sed -i s/plain/release/ meson.build

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

-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-46.so
Diretórios Instalados: /usr/include/gedit-46 e /usr/{lib,share,share/help/*}/gedit

Descrições Curtas

gedit

é um editor de texto leve integrado com a área de trabalho GNOME

JOE-4.6

Introdução ao "JOE"

JOE (Joe's Own Editor) é um pequeno editor de texto capaz de emular WordStar, Pico e Emacs.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Instalação do "JOE"

Instale JOE executando os seguintes comandos:

./configure --prefix=/usr    \
            --sysconfdir=/etc \
            --docdir=/usr/share/doc/joe-4.6 &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install &&

install -vm 755 joe/util/{stringify,termidx,uniproc} /usr/bin

Configurando o "JOE"

Arquivos de Configuração

/etc/joe/jmacsrc, /etc/joe/joerc, /etc/joe/jpicorc, /etc/joe/jstarrc, /etc/joe/rjoerc e ~/.joerc

Conteúdo

Aplicativos Instalados: jmacs, joe, jpico, jstar, rjoe, stringify, termidx e uniproc
Bibliotecas Instaladas: 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-23.08.0

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do Kate

Exigida

KDE Frameworks-5.109.0

Opcional

libgit2

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 corretamente usando uma plataforma LFS 12.0.

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

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 corretamente usando uma plataforma LFS 12.0.

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

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

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP): https://anduin.linuxfromscratch.org/BLFS/vim/vim-9.0.1677.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 65e6b09ef0628a2d8eba79f1d1d5a564

  • Tamanho da transferência: 16 MB

  • Espaço em disco estimado exigido: 127 MB (adicionar 67 MB para testes)

  • Tempo de construção estimado: 0,5 UPC (com paralelismo=4; adicionar 3,0 UPC para testes)

Dependências do Vim

Recomendadas
Opcionais

GPM-1.20.7, Lua-5.4.6, rsync-3.2.7 e Ruby-3.2.2

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.1677, tornando-o consistente com o local da documentação para outros pacotes:

ln -snfv ../vim/vim90/doc /usr/share/doc/vim-9.0.1677

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.1677" -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.1677 emita o seguinte comando:

:help version-9.0.1677

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do Dash

Opcionais

libedit (biblioteca do editor de linha de comando)

Instalação do Dash

Instale Dash executando os seguintes comandos:

./configure --bindir=/bin --mandir=/usr/share/man &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Se você gostaria de tornar dash o sh padrão, [então] recrie o link simbólico /bin/sh como o(a) usuário(a) root:

Nota

Se criar o link simbólico do dash para sh, [então] você precisará reconfigurar o link para bash para construir o LFS.

ln -svf dash /bin/sh

Explicações do Comando

--bindir=/bin: Esse parâmetro coloca o binário dash no sistema de arquivos raiz.

--with-libedit: Para compilar Dash com suporte a libedit.

Configurando Dash

Arquivos de Configuração

Dash carrega /etc/profile e ~/.profile

Informação de Configuração

Atualize /etc/shells para incluir o shell Dash emitindo o seguinte comando como o(a) usuário(a) root:

cat >> /etc/shells << "EOF"
/bin/dash
EOF

Conteúdo

Aplicativo Instalado: dash
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: Nenhum(a)

Descrições Curtas

dash

é um shell compatível com POSIX

Tcsh-6.24.10

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

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 corretamente usando uma plataforma LFS 12.0.

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

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-20230313 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-8.1.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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP): https://download.qemu.org/qemu-8.1.0.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5: 7dd9ff5a92cf81cfce6cda1f6e271f3a

  • Tamanho da transferência: 118 MB

  • Espaço em disco estimado exigido: 2,1 GB (366 MB instalado)

  • Tempo de construção estimado: 1,2 UPC (adicionar 0,8 UPC para testes, ambos usando paralelismo=4)

Dependências do Qemu

Exigidas

GLib-2.76.4

Recomendadas
Opcionais

Dependendo do sistema de som, vários pacotes em ALSA-1.2.7, Python-3.11.4, PulseAudio-16.1, BlueZ-5.68, cURL-8.2.1, Cyrus SASL-2.1.28, GnuTLS-3.8.1, GTK+-2.24.33, GTK+-3.24.38, libusb-1.0.26, libgcrypt-1.10.2, libssh2-1.11.0, LZO-2.10, Nettle-3.9.1, Mesa-23.1.6, VTE-0.72.2 ou Vte-0.28.2 e libcacard

Opcionais (tempo de execução)

Systemd-254

Opcional (para construir a documentação)

sphinx_rtd_theme-1.2.2

Nota

Esta lista de dependências opcionais não está completa. Veja-se a saída gerada de ./configure --help para uma lista mais completa.

Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/qemu

Prerrequisitos KVM

Antes de construir o qemu, verifique para ver se o seu processador suporta a tecnologia de virtualização ("VT"):

grep -E '^flags.*(vmx|svm)' /proc/cpuinfo

Se obtiver alguma saída gerada, [então] você tem a tecnologia "VT" ("vmx" para processadores Intel e "svm" para processadores AMD). Você, então, precisa entrar no BIOS do seu sistema e garantir que ela esteja habilitada. Depois de habilitar, reinicialize de volta para sua instância LFS.

Configuração do Núcleo

Habilite as seguintes opções na configuração do núcleo e recompile o núcleo, se necessário:

[*] Virtualization --->                                         [VIRTUALIZATION]
  <*/M>   Kernel-based Virtual Machine (KVM) support                       [KVM]
  # Enable the option for your CPU:
  < /*/M>   KVM for Intel (and compatible) processors support        [KVM_INTEL]
  < /*/M>   KVM for AMD processors support                             [KVM_AMD]

As configurações Intel ou AMD não são ambas exigidas, mas a que corresponder ao processador do seu sistema é exigida.

Para usar o dispositivo de rede de comunicação bridge, conforme explicado abaixo, verifique se bridge-utils-1.7.1 está instalado e se as seguintes opções na configuração do núcleo estão habilitadas:

[*] Networking support --->                                                [NET]
  Networking options --->
    <*/M> 802.1d Ethernet Bridging                                      [BRIDGE]

Device Drivers --->
  [*] Network device support --->                                   [NETDEVICES]
    [*]   Network core driver support                                 [NET_CORE]
    <*/M>   Universal TUN/TAP device driver support                        [TUN]

Instalação do qemu

A regra de udev do LFS permite somente que o(a) usuário(a) root, os(as) usuários(as) proprietários(as) de uma sessão local de login suportada pela dependência opcional de tempo de execução Systemd-254 ou os(as) usuários(as) no grupo kvm usem o dispositivo KVM. Como o(a) usuário(a) root, adicione quaisquer usuários(as) não root que poderiam usar o dispositivo KVM, mesmo sem o Systemd-254 instalado ou remotamente (por meio de uma conexão SSH), ao grupo kvm:

usermod -a -G kvm <nome_de_usuário(a)>

Instale o qemu executando os seguintes comandos:

Nota

O qemu é capaz de executar muitos alvos. O processo de construção também é capaz de construir vários alvos de uma vez em uma lista delimitada por vírgulas atribuída a --target-list. Execute ./configure --help para obter uma lista completa dos alvos disponíveis.

if [ $(uname -m) = i686 ]; then
   QEMU_ARCH=i386-softmmu
else
   QEMU_ARCH=x86_64-softmmu
fi


mkdir -vp build &&
cd        build &&

../configure --prefix=/usr               \
             --sysconfdir=/etc           \
             --localstatedir=/var        \
             --target-list=$QEMU_ARCH    \
             --audio-drv-list=alsa       \
             --disable-pa                \
             --enable-slirp              \
             --docdir=/usr/share/doc/qemu-8.1.0 &&

unset QEMU_ARCH &&

make

qemu usa ninja como um subprocesso ao construir. Para executar os testes, emita: ninja test. Um teste, bios-tables-test, é conhecido por falhar.

Agora, como o(a) usuário(a) root:

make install

Mude as permissões e a propriedade de um script auxiliar, que é necessário ao usar o dispositivo de rede de comunicação bridge (veja-se abaixo). Novamente, como o(a) usuário(a) root, emita:

Nota

Você precisa adicionar quaisquer usuários(as) que possam usar o dispositivo de rede de intercomunicação bridge ao grupo kvm, mesmo se o Systemd-254 estiver instalado.

chgrp kvm  /usr/libexec/qemu-bridge-helper &&
chmod 4750 /usr/libexec/qemu-bridge-helper

Nota

Por conveniência, você possivelmente deseje criar um link simbólico para executar o aplicativo instalado. Por exemplo (como o(a) usuário(a) root):

ln -sv qemu-system-`uname -m` /usr/bin/qemu

Explicações do Comando

--audio-drv-list=alsa --disable-pa: Essa chave configura o controlador de áudio para o ALSA. Veja-se abaixo para habilitar outros controladores de áudio.

--enable-slurp: Essa chave força o sistema de construção a verificar Libslirp-4.7.0. Remova-a se você não precisar do suporte -netdev user.

--audio-drv-list=pa --disable-alsa: Essa chave configura o controlador de áudio para o pulseaudio. Para outros controladores, vejam-se as opções da --audio-drv-list na saída gerada de ./configure --help. O controlador padrão de áudio é o OSS. Para habilitar o suporte para ambos, ALSA e pulseaudio, use --audio-drv-list=alsa,pa.

Usando o Qemu

Como usar o qemu significa usar um computador virtual, as etapas para configurar a máquina virtual estão em estreita analogia com aquelas para configurar um computador real. Você precisará 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-8.1.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.

-drive if=pflash,format=raw,readonly=on,file=/usr/share/qemu/edk2-x86_64-code.fd: Carrega um firmware EDK2 UEFI pré construído, em vez do BIOS padrão do PC. Use essa opção se você quiser inicializar o Sistema Operacional convidado com UEFI.

-drive file=<nome_do_arquivo>,if=virtio: Fornece 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

Para configurar a resolução da tela emulada para um servidor Xorg executando no sistema Linux convidado, leia-se “Configurações de Ajuste Fino de Exibição”.

Rede de comunicação

A solução acima para rede de 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: Nenhum(a)
Diretórios Instalados: /usr/share/qemu e /usr/share/doc/qemu-8.1.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.4

Introdução à Apr

O Apache Portable Runtime (APR) é uma biblioteca de suporte para o servidor web Apache. Ela fornece um conjunto de interfaces de programação de aplicativos (APIs) que mapeiam para o sistema operacional (SO) subjacente. Onde o sistema operacional não suportar uma função específica, o APR fornecerá uma emulação. Assim, os(as) programadores(as) conseguem usar a APR para tornar um aplicativo portátil em diferentes plataformas.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Instalação da APR

Instale Apr executando os seguintes comandos:

./configure --prefix=/usr    \
            --disable-static \
            --with-installbuilddir=/usr/share/apr-1/build &&
make

Para testar os resultados, emita: make test.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Conteúdo

Aplicativo Instalado: apr-1-config
Biblioteca Instalada: libapr-1.so
Diretórios Instalados: /usr/include/apr-1 e /usr/share/apr-1

Descrições Curtas

apr-1-config

é um script de shell usado para recuperar informação a respeito da biblioteca APR no sistema. É normalmente usado para compilar e vincular à biblioteca

libapr-1.so

é a biblioteca Apache Portable Runtime

Apr-Util-1.6.3

Introdução à Apr Util

A Apache Portable Runtime Utility Library fornece uma interface previsível e consistente para as interfaces subjacentes da biblioteca do cliente. Essa interface de programação de aplicativo garante comportamento previsível, se não idêntico, independentemente de quais bibliotecas estão disponíveis em uma determinada plataforma.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências da Apr Util

Exigida

Apr-1.7.4

Opcionais

Base de Dados Berkeley-5.3.28, FreeTDS, MariaDB-10.11.4 ou MySQL, OpenLDAP-2.6.6, PostgreSQL-15.4, SQLite-3.42.0 e unixODBC-2.3.12

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.6, [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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Transferências Adicionais

Você precisará baixar pelo menos um dicionário. O dicionário do inglês é fornecido como um exemplo abaixo. Dicionários em muitos outros idiomas podem ser encontrados em https://ftp.gnu.org/gnu/aspell/dict.

Dependências de Aspell

Exigida

Which-2.21 (para os dicionários)

Instalação do Aspell

Instale Aspell executando os seguintes comandos:

./configure --prefix=/usr &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install &&
ln -svfn aspell-0.60 /usr/lib/aspell &&

install -v -m755 -d /usr/share/doc/aspell-0.60.8/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.5.0.

Configurando Aspell

Informação de Configuração

Depois que Aspell estiver instalado, você precisa configurar pelo menos um dicionário. Instale o dicionário do inglês executando os seguintes comandos:

tar xf ../aspell6-en-2020.12.07-0.tar.bz2 &&
cd aspell6-en-2020.12.07-0                &&

./configure &&
make

Agora, como o(a) usuário(a) root:

make install

Outros dicionários podem ser instalados com as mesmas instruções.

Conteúdo

Aplicativos Instalados: aspell, aspell-import, precat, preunzip, prezip, prezip-bin, pspell-config, run-with-aspell, word-list-compress e, opcionalmente, ispell e spell.
Bibliotecas Instaladas: libaspell.so e libpspell.so
Diretórios Instalados: /usr/include/pspell e /usr/lib/aspell-0.60

Descrições Curtas

aspell

é um utilitário que consegue funcionar como substituto do ispell -a, como um verificador ortográfico independente, como um utilitário de teste para testar os recursos do Aspell e como um utilitário para gerenciar dicionários

ispell

é um amarrador em torno de aspell para invocá-lo no modo compatível com ispell

spell

é um amarrador em torno de aspell para invocá-lo no modo compatível com spell

aspell-import

importa dicionários pessoais antigos para Aspell

precat

descomprime um arquivo prezip para a saída gerada padrão

preunzip

descomprime um arquivo prezip

prezip

é um compressor de prefixo delta, usado para comprimir listas de palavras classificadas ou outros arquivos de texto semelhantes

prezip-bin

é chamado pelos vários scripts amarradores para realizar a atual compressão e descompressão

pspell-config

exibe informação a respeito da instalação do libpspell, principalmente para uso em scripts de construção

run-with-aspell

é um script para ajudar a usar Aspell como substituto de ispell

word-list-compress

comprime ou descomprime listas de palavras classificadas para uso com o verificador ortográfico Aspell

libaspell.so

contém funções da API de verificação ortográfica

libpspell.so

é uma interface para a biblioteca libaspell. Toda a funcionalidade de verificação ortográfica agora está em libaspell, mas essa biblioteca está incluída para compatibilidade com versões anteriores

Boost-1.83.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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências de Boost

Recomendada
Opcionais

ICU-73.2 e Open MPI

Observações de Editor(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.6.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 os testes de regressão do Boost.Build, emita pushd tools/build/test; python3 test_all.py; popd.

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_numpy311.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_url.so, libboost_wave.so e libboost_wserialization.so
Diretório Instalado: /usr/include/boost

brotli-1.0.9

Introdução ao Brotli

Brotli fornece um algoritmo de compressão sem perdas de propósito geral que comprime dados usando uma combinação de uma variante moderna do algoritmo LZ77, codificação Huffman e modelagem de contexto de segunda ordem. As bibliotecas dele são usadas principalmente para fontes WOFF2 em páginas da web.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

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 ligações python3)

Dependências do Brotli

Recomendadas

Instalação do Brotli

Primeiro, corrija um problema nos arquivos pkg-config:

sed -i 's@-R..libdir.@@' scripts/*.pc.in

Instale o 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órios Instalados: /usr/include/brotli e /usr/lib/python3.11/site-packages/Brotli-1.0.9.dist-info (se você construiu e instalou as ligações Python3)

Descrições Curtas

brotli

consegue comprimir ou descomprimir arquivos ou testar a integridade de arquivos comprimidos

libbrotlicommon{-static.a,.so}

é a biblioteca de dicionário comum Brotli

libbrotlidec{-static.a,.so}

é a biblioteca do decodificador Brotli

libbrotlienc{-static.a,.so}

é a biblioteca do codificador comum Brotli

CLucene-2.3.3.4

Introdução 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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Transferências Adicionais

Dependências de CLucene

Exigida

CMake-3.27.2

Recomendada

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências da GLib do D-Bus

Exigidas

dbus-1.14.8 e GLib-2.76.4

Opcionais

GTK-Doc-1.33.2

Instalação da GLib do D-Bus

Instale D-Bus GLib executando os seguintes comandos:

./configure --prefix=/usr     \
            --sysconfdir=/etc \
            --disable-static &&
make

Para testar os resultados, emita: make check. Observe que testes mais abrangentes podem ser executados seguindo o mesmo método usado nas instruções do D-Bus, o que exige construir o pacote duas vezes.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

--enable-gtk-doc: Use esse parâmetro se GTK-Doc estiver instalado e você desejar reconstruir e instalar a documentação da API.

Conteúdo

Aplicativo Instalado: dbus-binding-tool
Biblioteca Instalada: libdbus-glib-1.so
Diretórios Instalados: /usr/share/gtk-doc/html/dbus-glib

Descrições Curtas

dbus-binding-tool

é uma ferramenta usada para interagir com a API do D-Bus

libdbus-glib-1.so

contém funções de interface GLib para a API do D-Bus

Double-conversion-3.3.0

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências de Double-conversion

Exigida

CMake-3.27.2

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP): https://duktape.org/duktape-2.7.0.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: b3200b02ab80125b694bae887d7c1ca6

  • Tamanho da transferência: 1003 KB

  • Espaço em disco estimado exigido: 25 MB

  • Tempo de construção estimado: 0,3 UPC

Instalação 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.5.0

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências de enchant

Exigida

GLib-2.76.4

Recomendada
Opcionais

dbus-glib-0.112, Doxygen-1.9.7, Hspell, Hunspell, Nuspell, Voikko e unittest-cpp (exigido para os testes)

Instalação de enchant

Instale enchant executando os seguintes comandos:

./configure --prefix=/usr    \
            --disable-static \
            --docdir /usr/share/doc/enchant-2.5.0 &&
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, /usr/share/enchant e /usr/share/doc/enchant-2.5.0

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

Introdução a Exempi

Exempi é uma implementação do XMP (Extensible Metadata Platform da Adobe).

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP): https://libopenraw.freedesktop.org/download/exempi-2.6.4.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: c2bd12b5773f35c3832dcd1169fac3dc

  • Tamanho da transferência: 2,7 MB

  • Espaço em disco estimado exigido: 288 MB (adicionar 236 MB para testes)

  • Tempo de construção estimado: 0,4 UPC (adicionar 0,6 UPC para testes; ambos usando paralelismo=4)

Dependências de Exempi

Exigida

Boost-1.83.0

Opcionais

Valgrind-3.21.0

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

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

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Transferências Adicionais

Dependências de GLib

Recomendada
Opcionais

dbus-1.14.8 (para alguns testes), Fuse-3.16.1 e bindfs (ambos necessários para um teste), GDB-13.2 (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.76.1 (para alguns testes, porém isso é uma dependência circular) e sysprof-3.48.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.

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.38, emitem numerosos avisos quando executados a partir da linha de comando. Esse remendo habilita o uso de uma variável de ambiente, GLIB_LOG_LEVEL, que suprime mensagens indesejadas. O valor da variável é um dígito que corresponde a:

1 Alerta
2 Crítico
3 Erro
4 Aviso
5 Informe

Por exemplo, export GLIB_LOG_LEVEL=4 pulará a saída gerada de mensagens Warning e Notice (e mensagens de Informação/Depuração se estiverem ativadas). Se GLIB_LOG_LEVEL não estiver definida, a saída gerada normal de mensagem não será afetada.

patch -Np1 -i ../glib-skip_warnings-1.patch

Atenção

Se uma versão anterior da glib estiver instalada, [então] mova os cabeçalhos para fora do caminho, de modo que os pacotes posteriores não encontrem conflitos:

if [ -e /usr/include/glib-2.0 ]; then
    rm -rf /usr/include/glib-2.0.old &&
    mv -vf /usr/include/glib-2.0{,.old}
fi

Instale GLib executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup ..            \
      --prefix=/usr       \
      --buildtype=release \
      -Dman=true          &&
ninja

Nota

Se libxslt-1.1.38 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.76.4 &&
cp -r ../docs/reference/{gio,glib,gobject} /usr/share/doc/glib-2.76.4

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:gio / file é 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/gio, /usr/lib/glib-2.0, /usr/share/glib-2.0, /usr/share/doc/{glib-2.0,glib-2.76.4} 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 ao GLibmm

O pacote GLibmm é um conjunto de ligações C++ para a GLib.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do GLibmm

Exigidas

GLib-2.76.4 e libsigc++-2.12.0

Opcionais

Doxygen-1.9.7, glib-networking-2.76.1 (para os testes), GnuTLS-3.8.1 (para os testes), libxslt-1.1.38 e mm-common

Instalação do GLibmm

Instale o GLibmm executando os seguintes comandos:

mkdir bld &&
cd    bld &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Para testar os resultados, emita: ninja test.

Agora, como o(a) usuário(a) root:

ninja install

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: libgiomm-2.4.so, libglibmm-2.4.so e libglibmm_generate_extra_defs-2.4.so
Diretórios Instalados: /usr/lib/g{io,lib}mm-2.4 e /usr/include/g{io,lib}mm-2.4

Descrições Curtas

libgiomm-2.4.so

contém as classes da API do GIO

libglibmm-2.4.so

contém as classes da API 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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências de GMime

Exigidas

GLib-2.76.4 e libgpg-error-1.47

Recomendadas
Opcionais

DocBook-utils-0.6.14, GPGME-1.21.0, GTK-Doc-1.33.2, libnsl-2.0.0, Vala-0.56.11 e Gtk# (exige Mono)

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

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do GObject Introspection

Exigida

GLib-2.76.4

Opcionais

Cairo-1.17.6 (exigido para os testes), Gjs-1.76.2 (para satisfazer um teste), GTK-Doc-1.33.2, Mako-1.2.4 e Markdown-3.4.1

Instalação do GObject Introspection

Instale o GObject Introspection executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Para testar os resultados, emita: ninja test.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

-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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do Gsl

Opcional

sphinx_rtd_theme-1.2.2

Instalação do Gsl

Instale Gsl executando os seguintes comandos:

./configure --prefix=/usr --disable-static &&
make

Se você tiver sphinx_rtd_theme-1.2.2 instalado, [então] construa a documentação com:

make html

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install

Se você construiu a documentação, [então] instale-a (como root) com:

mkdir                   /usr/share/doc/gsl-2.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.2

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do gspell

Exigidas

enchant-2.5.0, ICU-73.2 e GTK+-3.24.38

Opcionais

gobject-introspection-1.76.1, GTK-Doc-1.33.2, Vala-0.56.11 e Valgrind-3.21.0

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

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.

Atenção

Atualizar esse pacote para uma nova versão principal (por exemplo, da 72.1 para a 73.2) exigirá a reconstrução de muitos outros pacotes. Se alguns pacotes que usam as bibliotecas construídas por icu4c-73 forem reconstruídos, eles usarão as novas bibliotecas enquanto os pacotes atuais usarão as bibliotecas anteriores. Se o carregador de aplicativos do Linux (/usr/lib/ld-linux-x86-64.so.2) determinar que as bibliotecas antiga e nova são necessárias, e um símbolo (nome do dado ou função) existir em ambas as versões da biblioteca, todas as referências ao símbolo serão resolvidas para a versão que aparece anteriormente na sequência em largura do gráfico de dependência. Isso pode resultar na falha do aplicativo se a definição dos dados ou o comportamento da função referida pelo símbolo diferir em duas versões. Para evitar o problema, os(as) usuários(as) precisarão reconstruir todos os pacotes vinculados a uma biblioteca do ICU o mais rápido possível, assim que o ICU for atualizado para uma nova versão principal.

Para determinar quais bibliotecas externas são necessárias (direta ou indiretamente) por um aplicativo ou biblioteca, execute:

ldd <aplicativo ou biblioteca> 

ou para ver somente as bibliotecas diretamente necessárias:

readelf -d <aplicativo ou biblioteca> | grep NEEDED

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do ICU

Opcionais

LLVM-16.0.5 (com o Clang) e Doxygen-1.9.7 (para a documentação)

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

Introdução ao inih

Esse pacote é um analisador simples de arquivo ".INI" escrito em C.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP): https://github.com/benhoyt/inih/archive/r57/inih-r57.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 07aa33593487633519fb3a0e55546c09

  • Tamanho da transferência: 19 KB

  • Espaço em disco estimado exigido: 808 KB

  • Tempo de construção estimado: menos que 0,1 UPC

Instalação do inih

Instale o inih executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

ninja install

Conteúdo

Aplicativo Instalado: Nenhum(a)
Bibliotecas Instaladas: libinih.so e libINIReader.so
Diretórios Instalados: Nenhum(a)

Descrições Curtas

libinih.so

é a biblioteca principal do inih

libINIReader.so

é a biblioteca do analisador inih

Intel-gmmlib-22.3.10

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Nota

O tarball intel-gmmlib-22.3.10.tar.gz extrairá para o diretório gmmlib-intel-gmmlib-22.3.10.

Dependências do Intel-gmmlib

Exigida

CMake-3.27.2

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

A suíte de teste normalmente é executada por make a menos que -DRUN_TEST_SUITE=NO seja passado para cmake.

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Instalação do Jansson

Primeiro corrija um dos testes:

sed -e "/DT/s;| sort;| sed 's/@@libjansson.*//' &;" \
    -i test/suites/api/check-exports

Instale jansson executando os seguintes comandos:

./configure --prefix=/usr --disable-static &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libjansson.so
Diretórios Instalados: Nenhum(a)

Descrições Curtas

libjansson.so

contém uma API para codificação, decodificação e manipulação de dados JSON

JS-102.13.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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do JS102

Exigidas

ICU-73.2, rustc-1.71.1 e Which-2.21

Recomendada

Importante

Se você estiver construindo esse pacote em um sistema de 32 bits e o Clang não estiver instalado ou você estiver substituindo a escolha padrão do compilador com a variável de ambiente CXX, por favor, leia primeiro a seção Explicações do Comando.

Instalação do JS

Nota

Ao contrário da maioria dos outros pacotes no BLFS, as instruções abaixo exigem que você descompacte firefox-102.13.0esr.tar.xz e mude para a pasta firefox-102.13.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.

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

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do JSON-C

Exigida

CMake-3.27.2

Opcionais (para documentação)

Doxygen-1.9.7 e Graphviz-8.1.0 (para ferramenta dot)

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

Se tiver instalado Doxygen-1.9.7 e Graphviz-8.1.0, você consegue construir a documentação executando o seguinte comando:

doxygen doc/Doxyfile

Para testar os resultados, emita: make test.

Agora, como o(a) usuário(a) root:

make install

Se você construiu a documentação, instale-a executando os seguintes comandos como o(a) usuário(a) root:

install -d -vm755 /usr/share/doc/json-c-0.17 &&
install -v -m644 doc/html/* /usr/share/doc/json-c-0.17

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do JSON-GLib

Exigida

GLib-2.76.4

Opcionais (Exigidas se construir GNOME)

gobject-introspection-1.76.1

Opcionais

GTK-Doc-1.33.2

Instalação do JSON GLib

Instale o JSON GLib executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Para testar os resultados, emita: ninja test.

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=disabled: Adicione essa opção se você tiver GTK-Doc-1.33.2 instalado e não desejar gerar a documentação da API.

Conteúdo

Aplicativos Instalados: json-glib-format e json-glib-validate
Biblioteca Instalada: libjson-glib-1.0.so
Diretórios Instalados: /usr/{include,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 corretamente usando uma plataforma LFS 12.0.

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

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Instalação do libaio

Primeiro, desabilite a instalação da biblioteca estática:

sed -i '/install.*libaio.a/s/^/#/' src/Makefile

Construa a libaio executando o seguinte comando:

make

Para testar os resultados, emita: make partcheck.

Agora, instale o pacote como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libaio.so
Diretórios Instalados: Nenhum(a)

Descrições Curtas

libaio.so

é a biblioteca "libaio"

libarchive-3.7.1

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do libarchive

Opcionais

libxml2-2.10.4, LZO-2.10 e Nettle-3.9.1

Observações de Editor(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

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, bsdtar e bsdunzip
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

bsdunzip

é uma ferramenta similar a unzip do Info-ZIP

libarchive.so

é uma biblioteca que consegue criar e ler vários formatos de arquivamento de fluxo

libassuan-2.5.6

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do libassuan

Exigida

libgpg-error-1.47

Opcionais

texlive-20230313 (ou install-tl-unx)

Instalação do libassuan

Instale libassuan executando os seguintes comandos:

./configure --prefix=/usr &&
make                   &&

make -C doc html                                                       &&
makeinfo --html --no-split -o doc/assuan_nochunks.html doc/assuan.texi &&
makeinfo --plaintext       -o doc/assuan.txt           doc/assuan.texi

Os comandos acima constroem a documentação nos formatos html e texto simples. Se você deseja construir formatos alternativos da documentação, [então] você precisa ter texlive-20230313 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.6/html &&
install -v -m644 doc/assuan.html/* \
                    /usr/share/doc/libassuan-2.5.6/html &&
install -v -m644 doc/assuan_nochunks.html \
                    /usr/share/doc/libassuan-2.5.6      &&
install -v -m644 doc/assuan.{txt,texi} \
                    /usr/share/doc/libassuan-2.5.6

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

Conteúdo

Aplicativo Instalado: libassuan-config
Biblioteca Instalada: libassuan.so
Diretório Instalado: /usr/share/doc/libassuan-2.5.6

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP): https://0pointer.de/public/libatasmart-0.19.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 53afe2b155c36f658e121fe6def33e77

  • Tamanho da transferência: 248 KB

  • Espaço em disco estimado exigido: 3 MB

  • Tempo de construção estimado: menos que 0,1 UPC

Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/libatasmart

Instalação do libatasmart

Instale libatasmart executando os seguintes comandos:

./configure --prefix=/usr --disable-static &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make docdir=/usr/share/doc/libatasmart-0.19 install

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Conteúdo

Aplicativos Instalados: skdump e sktest
Biblioteca Instalada: libatasmart.so
Diretório Instalado: /usr/share/doc/libatasmart-0.19

Descrições Curtas

skdump

é um utilitário que informa a situação do disco

sktest

é um utilitário para emitir testes de discos

libatasmart.so

contém as funções da API S.M.A.R.T do ATA

libatomic_ops-7.8.0

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Instalação do libatomic_ops

Instale libatomic_ops executando os seguintes comandos:

./configure --prefix=/usr  \
            --enable-shared  \
            --disable-static \
            --docdir=/usr/share/doc/libatomic_ops-7.8.0 &&
make

Para verificar os resultados, emita make check.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--enable-shared: Essa chave habilita construir as bibliotecas compartilhadas libatomic_ops.

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: libatomic_ops.so e libatomic_ops_gpl.so
Diretório Instalado: /usr/include/libatomic_ops e /usr/share/doc/libatomic_ops-7.8.0

Descrições Curtas

libatomic_ops.so

contém funções para operações atômicas de memória

libblockdev-3.0.2

Introdução ao libblockdev

libblockdev é uma biblioteca C que suporta GObject Introspection para manipulação de dispositivos de bloco. Ela tem uma arquitetura baseada em plug-in onde cada tecnologia (como LVM, Btrfs, MD RAID, Swap,...) é implementada em um plug-in separado, possivelmente com várias implementações (por exemplo, usando CLI do LVM ou a nova API DBus do LVM).

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do libblockdev

Exigidas

GLib-2.76.4

Recomendadas
Opcionais

btrfs-progs-6.3.3, GTK-Doc-1.33.2, mdadm-4.2, parted-3.6, volume_key-0.3.12, ndctl e targetcli (para testes)

Instalação do libblockdev

Instale o libblockdev executando os seguintes comandos:

./configure --prefix=/usr      \
            --sysconfdir=/etc  \
            --with-python3     \
            --without-escrow   \
            --without-gtk-doc  \
            --without-lvm      \
            --without-lvm_dbus \
            --without-nvdimm   \
            --without-tools    &&
make

A suíte de teste exige targetcli, que não é parte do BLFS.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--without-escrow: Essa chave permite construir libblockdev sem volume_key-0.3.12 instalado. Remova-a se você tiver instalado volume_key-0.3.12.

--without-lvm --without-lvm_dbus --without-tools: A combinação dessas chaves permite construir libblockdev sem parted-3.6 instalado. Remova-a se você tiver instalado parted-3.6 e desejar construir os utilitários lvm-cache-stats ou vfat-resize, ou desejar que libblockdev suporte volumes lógicos.

--without-btrfs --without-mdraid --without-tools: A combinação dessas chaves permite construir libblockdev sem libbytesize-2.9 instalado. A opção --without-mdraid quebrará UDisks-2.10.0, de forma que não a use, a menos que você realmente saiba o que está fazendo.

--without-crypto: Essa chave permite construir libblockdev sem cryptsetup-2.4.3 ou keyutils-1.6.1 instalado. Essa chave quebrará UDisks-2.10.0, de forma que não a use, a menos que você realmente saiba o que está fazendo.

--without-dm --without-lvm --without-lvm_dbus --without-mpath: A combinação dessas chaves permite construir libblockdev sem LVM2-2.03.22 instalado. As opções --without-dm e --without-mpath não estão nas instruções fornecidas pelo livro, porque LVM2-2.03.22 é exigido para cryptsetup-2.4.3 e cryptsetup-2.4.3 é uma dependência recomendada de libblockdev de qualquer maneira.

--without-nvme: Essa chave permite construir libblockdev sem libnvme-1.5 instalado. Essa chave quebrará UDisks-2.10.0, de forma que não a use, a menos que você realmente saiba o que está fazendo.

Conteúdo

Aplicativos Instalados: lvm-cache-stats e vfat-resize (ambos opcionais)
Bibliotecas Instaladas: libbd_btrfs.so, libbd_crypto.so, libbd_dm.so, libbd_fs.so, libbd_loop.so, libbd_lvm.so (opcional), libbd_lvm-dbus.so (opcional), libbd_mdraid.so, libbd_mpath.so, libbd_nvme.so, libbd_part.so, libbd_swap.so, libbd_utils.so e libblockdev.so
Diretórios Instalados: /etc/libblockdev, /usr/include/blockdev e /usr/share/gtk-doc/html/libblockdev (opcional)

Descrições Curtas

lvm-cache-stats

imprime estatísticas relativas a caches relativos a Volumes Lógicos do LVM

vfat-resize

redimensiona sistemas de arquivos vfat

libbytesize-2.9

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do libbytesize

Exigidas

pcre2-10.42 e Pygments-2.16.1

Recomendada
Opcionais

GTK-Doc-1.33.2, pocketlint (módulo Python para um teste) e polib (módulo Python para um teste)

Instalação do libbytesize

Instale libbytesize executando os seguintes comandos:

./configure --prefix=/usr &&
make

Se você tiver os módulos opcionais Python instalados, [então] os testes de regressão podem ser executados com: make check.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: bscalc
Biblioteca Instalada: libbytesize.so
Diretórios Instalados: /usr/include/bytesize e /usr/lib/python3.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.2

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do libcloudproviders

Exigidas

gobject-introspection-1.76.1 e Vala-0.56.11

Opcionais

GTK-Doc-1.33.2

Instalação do libcloudproviders

Instale libcloudproviders executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

-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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do libdaemon

Opcionais

Doxygen-1.9.7 e Lynx-2.8.9rel.1

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

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do libgcrypt

Exigida

libgpg-error-1.47

Opcionais

Pth-2.0.7 e texlive-20230313 (ou install-tl-unx)

Instalação do libgcrypt

Instale libgcrypt executando os seguintes comandos:

./configure --prefix=/usr &&
make                      &&

make -C doc html                                                       &&
makeinfo --html --no-split -o doc/gcrypt_nochunks.html doc/gcrypt.texi &&
makeinfo --plaintext     -o doc/gcrypt.txt           doc/gcrypt.texi

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install &&
install -v -dm755  /usr/share/doc/libgcrypt-1.10.2 &&
install -v -m644    README doc/{README.apichanges,fips*,libgcrypt*} \
                    /usr/share/doc/libgcrypt-1.10.2 &&

install -v -dm755   /usr/share/doc/libgcrypt-1.10.2/html &&
install -v -m644 doc/gcrypt.html/* \
                    /usr/share/doc/libgcrypt-1.10.2/html &&
install -v -m644 doc/gcrypt_nochunks.html \
                    /usr/share/doc/libgcrypt-1.10.2      &&
install -v -m644 doc/gcrypt.{txt,texi} \
                    /usr/share/doc/libgcrypt-1.10.2

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

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

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Instalação do libgpg-error

Instale libgpg-error executando os seguintes comandos:

./configure --prefix=/usr &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install &&
install -v -m644 -D README /usr/share/doc/libgpg-error-1.47/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.47

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Transferências Adicionais

Dependências do libgrss

Exigida

libsoup-2.74.3

Recomendada

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do libgsf

Exigidas

GLib-2.76.4 e libxml2-2.10.4

Recomendada
Opcionais

gobject-introspection-1.76.1 e GTK-Doc-1.33.2

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

Introdução a libgudev

O pacote libgudev contém ligações GObject para a libudev.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Exigida

GLib-2.76.4

Opcionais

gobject-introspection-1.76.1 (para gir-data, necessário para o GNOME), GTK-Doc-1.33.2 e umockdev-0.17.18 (para testar)

Instalação do libgudev

Instale libgudev executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Para testar os resultados, emita: ninja test.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

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

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 corretamente usando uma plataforma LFS 12.0.

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

Instalação do libgusb

Instale libgusb executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup ..            \
      --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.6'/" -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 você tiver o Gi-DocGen-2023.1 instalado e desejar reconstruir e instalar a documentação da API, um comando meson configure reconfigurará essa opção.

Conteúdo

Aplicativos Instalados: gusbcmd
Biblioteca Instalada: libgusb.so
Diretórios Instalados: /usr/include/gusb-1 e /usr/share/doc/libgusb-0.4.6 (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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do libical

Exigida

CMake-3.27.2

Recomendadas
Opcionais

Base de Dados Berkeley-5.3.28, Doxygen-1.9.7 (para a documentação da API), Graphviz-8.1.0 (para a documentação da API), GTK-Doc-1.33.2 (para a documentação da API), ICU-73.2 e PyGObject-3.44.1 (para alguns testes)

Instalação do libical

Instale libical executando os seguintes comandos:

Nota

Esse pacote pode ocasionalmente falhar 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.7, Graphviz-8.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.11.

-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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do libidn

Opcionais

Pth-2.0.7, Emacs-29.1, GTK-Doc-1.33.2, OpenJDK-20.0.2, Valgrind-3.21.0 e Mono

Instalação do libidn

Instale libidn executando os seguintes comandos:

./configure --prefix=/usr --disable-static &&
make

Para testar os resultados, execute:

pushd tests &&
  make check &&
popd 

Agora, como o(a) usuário(a) root:

make install &&

find doc -name "Makefile*" -delete           &&
rm -rf -v doc/{gdoc,idn.1,stamp-vti,man,texi} &&
mkdir -v       /usr/share/doc/libidn-1.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-20.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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do libidn2

Recomendadas
Opcionais

git-2.41.0 e GTK-Doc-1.33.2

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do libiodbc

Recomendada

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

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do Libksba

Exigida

libgpg-error-1.47

Opcional

Valgrind-3.21.0

Instalação do Libksba

Instale Libksba executando os seguintes comandos:

./configure --prefix=/usr &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativo Instalado: Nenhum
Biblioteca Instalada: libksba.so
Diretório Instalado: Nenhum

Descrições Curtas

libksba.{so,a}

contém as funções criptográficas da API

liblinear-247

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 corretamente usando uma plataforma LFS 12.0.

Nota

Depois de atualizar esse pacote a partir de liblinear-1.96 ou anterior, você precisa reinstalar o Nmap-7.94, para a finalidade de vincular à nova biblioteca.

Informação do Pacote

Instalação do liblinear

Instale liblinear executando os seguintes comandos:

make lib

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

install -vm644 linear.h /usr/include &&
install -vm755 liblinear.so.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 corretamente usando uma plataforma LFS 12.0.

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

Instalação do libmbim

Instale libmbim executando os seguintes comandos:

./configure --prefix=/usr --disable-static &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

--enable-gtk-doc: Use esse parâmetro se GTK-Doc estiver instalado e você desejar reconstruir e instalar a documentação da API.

Conteúdo

Aplicativos Instalados: mbimcli e mbim-network
Bibliotecas Instaladas: libmbim-glib.so
Diretórios Instalados: /usr/include/libmbim-glib e /usr/share/gtk-doc/html/libmbim-glib

Descrições Curtas

mbimcli

é um utilitário usado para controlar dispositivos "MBIM"

mbim-network

é um utilitário usado para gerenciamento simples de rede dos dispositivos "MBIM"

libmbim-glib.so

contém funções API para comunicação com modems "WWAN" e dispositivos que falam o protocolo "Mobile Interface Broadband Model" (MBIM)

libnvme-1.5

Introdução ao libnvme

O pacote libnvme é uma biblioteca que fornece definições de tipo para estruturas de especificação NVMe, enumerações e campos de bits, funções auxiliares para construir, despachar e decodificar comandos e cargas úteis e utilitários para conectar, escanear e gerenciar dispositivos NVMe em um sistema Linux.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do libnvme

Opcionais

JSON-C-0.17, keyutils-1.6.1 e SWIG-4.1.1

Instalação do libnvme

Instale o libnvme executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release -Dlibdbus=auto .. &&
ninja

Para executar os testes, emita: ninja test.

Agora, como o(a) usuário(a) root:

ninja install

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libnvme.so e libnvme-mi.so
Diretórios Instalados: /usr/include/nvme e /usr/lib/python3.11/site-packages/libnvme

Descrições Curtas

libnvme.so

contém funções usadas para lidar com operações relacionadas a dispositivos NVMe.

libpaper-2.1.1

Introdução ao libpaper

Esse pacote destina-se a fornecer uma maneira simples para os aplicativos executarem ações baseadas em um sistema ou tamanho de papel especificado pelo(a) usuário(a).

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Instalação do libpaper

Instale o libpaper executando os seguintes comandos:

./configure --prefix=/usr        \
            --sysconfdir=/etc    \
            --disable-static     \
            --enable-relocatable \
            --docdir=/usr/share/doc/libpaper-2.1.1 &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

--enable-relocatable: Essa opção é necessária para executar os testes.

Configurando o libpaper

Informação de Configuração

O tamanho do papel é determinado automaticamente a partir da localidade do sistema; veja-se LC_PAPER em locale(7). Se você quiser substituí-lo, crie um arquivo papersize no diretório de configuração do(a) usuário(a). Por exemplo:

mkdir -pv ~/.config &&
echo "a4" > ~/.config/papersize

Se você quiser substituir o tamanho do papel globalmente (para todos(as) os(as) usuários(as)), configure a variável de ambiente PAPERSIZE. Por exemplo:

echo "PAPERSIZE=a4" > /etc/profile.d/libpaper.sh

Você pode usar um tamanho de papel diferente, como letter.

Conteúdo

Aplicativos Instalados: paper e paperconf
Biblioteca Instalada: libpaper.so
Diretórios Instalados: /usr/share/doc/libpaper-2.1.1

Descrições Curtas

paper

imprime informação de configuração de papel

paperconf

imprime informação de configuração de papel em um modo de compatibilidade

libpaper.so

contém funções para interrogar a biblioteca de papéis

libportal-0.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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do libportal

Exigida

gobject-introspection-1.76.1

Recomendadas
Opcionais

Gi-DocGen-2023.1 e Vala-0.56.11

Instalação do libportal

Atenção

Se uma versão anterior do "libportal" estiver instalada, [então] mova os cabeçalhos para fora do caminho, de forma que os pacotes posteriores não encontrem conflitos (como o(a) usuário(a) root):

if [ -e /usr/include/libportal ]; then
   rm -rf /usr/include/libportal.old &&
   mv -vf /usr/include/libportal{,.old}
fi

Instale libportal executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release -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 você tiver o Gi-DocGen-2023.1 instalado e desejar reconstruir e instalar a documentação da API, 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 corretamente usando uma plataforma LFS 12.0.

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

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

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do libqalculate

Exigidas

cURL-8.2.1, ICU-73.2 e libxml2-2.10.4

Opcionais

Doxygen-1.9.7

Instalação do libqalculate

Instale libqalculate executando os seguintes comandos:

./configure --prefix=/usr   \
            --disable-static \
            --docdir=/usr/share/doc/libqalculate-4.7.0 &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Conteúdo

Aplicativos Instalados: qalc
Biblioteca Instalada: libqalculate.so
Diretórios Instalados: /usr/include/libqalculate, /usr/share/doc/libqalculate-4.7.0 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 corretamente usando uma plataforma LFS 12.0.

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.76.4 e libgudev-238

Recomendadas
Opcionais

GTK-Doc-1.33.2, help2man e libqrtr-glib

Instalação do libqmi

Instale libqmi executando os seguintes comandos:

PYTHON=python3 ./configure --prefix=/usr --disable-static &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

--enable-gtk-doc: Use esse parâmetro se GTK-Doc estiver instalado e você desejar reconstruir e instalar a documentação da API.

--disable-mbim-qmux: Essa chave desabilita o suporte para usar um dispositivo de controle MBIM para mensagens QMI. Use essa chave se você não instalou o libmbim.

Conteúdo

Aplicativos Instalados: qmicli, qmi-firmware-update e qmi-network
Bibliotecas Instaladas: libqmi-glib.so
Diretórios Instalados: /usr/include/libqmi-glib e /usr/share/gtk-doc/html/libqmi-glib

Descrições Curtas

qmicli

é um utilitário usado para controlar dispositivos QMI

qmi-firmware-update

é um utilitário usado para realizar atualizações de firmware em dispositivos QMI

qmi-network

é um utilitário usado para gerenciamento simples de rede de comunicação de dispositivos QMI

libqmi-glib.so

contém funções de API para comunicação com modems WWAN e dispositivos que falam o protocolo Qualcomm MSM Interface (QMI)

libseccomp-2.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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do libseccomp

Opcionais

Which-2.21 (necessitado para os testes), Valgrind-3.21.0 e LCOV

Instalação do libseccomp

Instale libseccomp executando os seguintes comandos:

./configure --prefix=/usr --disable-static &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do libsigc++

Recomendadas
Opcionais

DocBook-utils-0.6.14, docbook-xml-5.0, Doxygen-1.9.7 e mm-common

Instalação do libsigc++

Instale libsigc++ executando os seguintes comandos:

mkdir bld &&
cd   bld &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Para testar os resultados, emita: ninja test.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

-Dbuild-documentation=true: Use essa chave se Doxygen-1.9.7 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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

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.11.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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP): https://www.libssh2.org/download/libssh2-1.11.0.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: a01d543fd891ca48fe47726540d50b17

  • Tamanho da transferência: 1,1 MB

  • Espaço em disco estimado exigido: 13 MB (com os testes)

  • Tempo de construção estimado: 0,2 UPC (com os testes)

Dependências do libssh2

Opcionais

CMake-3.27.2 (pode ser usado em vez do conjunto de comandos sequenciais configure), libgcrypt-1.10.2 (pode ser usado em vez do OpenSSL), OpenSSH-9.4p1 (para alguns testes) e Docker (para alguns testes)

Instalação do libssh2

Se você quiser testar o pacote, exclua os testes que exigem uma biblioteca estática:

sed -E '/^DOCKER_TEST/,/^SSHD_TEST/s/test_(auth_keyboard_info.* |hostkey |simple)/$(NOTHING)/' \
    -i tests/Makefile.inc &&
autoreconf -fi

Instale libssh2 executando os seguintes comandos:

./configure --prefix=/usr          \
            --disable-docker-tests \
            --disable-static       &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--disable-docker-tests: Desabilita os testes que exigem Docker, o qual está além do escopo do BLFS. Remova essa chave se você tiver instalado o Docker e desejar executar a suíte de teste.

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Conteúdo

Aplicativos Instalados: Nenhum
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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências da libstatgrab

Opcionais

log4cplus-2.1.0

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do libtasn1

Opcionais

GTK-Doc-1.33.2 e Valgrind-3.21.0

Instalação do libtasn1

Instale libtasn1 executando os seguintes comandos:

./configure --prefix=/usr --disable-static &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install

Se não passou o parâmetro --enable-gtk-doc para o script configure, [então] você consegue instalar a documentação da API usando o seguinte comando como o(a) usuário(a) root:

make -C doc/reference install-data-local

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

--enable-gtk-doc: Esse parâmetro normalmente é usado se o GTK-Doc estiver instalado e você desejar reconstruir e instalar a documentação da API. Ele está quebrado para esse pacote devido ao uso de um aplicativo gtk-doc há muito obsoleto que não mais está disponível.

Conteúdo

Aplicativos Instalados: asn1Coding, asn1Decoding e asn1Parser
Biblioteca Instalada: libtasn1.so
Diretório Instalado: /usr/share/gtk-doc/html/libtasn1

Descrições Curtas

asn1Coding

é um codificador de DER ASN.1

asn1Decoding

é um decodificador de DER ASN.1

asn1Parser

é um gerador de árvore de sintaxe ASN.1 para a libtasn1

libtasn1.so

é uma biblioteca para manipulação de Abstract Syntax Notation One (ASN.1) e de Distinguish Encoding Rules (DER)

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 corretamente usando uma plataforma LFS 12.0.

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

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do libunistring

Opcionais

texlive-20230313 (ou install-tl-unx) (para reconstruir a documentação)

Instalação do libunistring

Instale libunistring executando os seguintes comandos:

./configure --prefix=/usr   \
            --disable-static \
            --docdir=/usr/share/doc/libunistring-1.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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do libunwind

Opcionais

texlive-20230313 (para "latex2man")

Instalação do libunwind

Instale libunwind executando os seguintes comandos:

./configure --prefix=/usr --disable-static &&
make

Para testar os resultados, emita: make check. 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 corretamente usando uma plataforma LFS 12.0.

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)

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do libusb

Opcionais

Doxygen-1.9.7

Configurando Libusb

Para acessar dispositivos brutos USB (aqueles não tratados como um disco pelo controlador de armazenamento em massa), o suporte apropriado precisa estar disponível no núcleo. Verifique a configuração do seu núcleo:

Device Drivers --->
  [*] USB support --->                                             [USB_SUPPORT]
    <*/M>   Support for Host-side USB                                      [USB]
    # These are most common USB controller drivers for PC-like systems.
    # For modern systems often [USB_XHCI_HCD] is the only one needed
    # even if the system has USB 2.0 ports:
    < /*/M> xHCI HCD (USB 3.0) support                            [USB_XHCI_HCD]
    < /*/M> EHCI HCD (USB 2.0) support                            [USB_EHCI_HCD]
    < /*/M> OHCI HCD (USB 1.1) support                            [USB_OHCI_HCD]

Para mais detalhes a respeito do como configurar dispositivos USB, veja-se “Consequências do Dispositivo USB”.

Instalação do libusb

Instale libusb executando os seguintes comandos:

./configure --prefix=/usr --disable-static &&
make

Se o Doxygen estiver instalado e você desejar construir a documentação da API, [então] emita os seguintes comandos:

pushd doc               &&
  doxygen -u doxygen.cfg &&
  make docs              &&
popd

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Se você construiu a documentação da API, [então] instale-a usando os seguintes comandos como o(a) usuário(a) root:

install -v -d -m755 /usr/share/doc/libusb-1.0.26/apidocs &&
install -v -m644   doc/api-1.0/* \
                    /usr/share/doc/libusb-1.0.26/apidocs

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

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP): https://dist.libuv.org/dist/v1.46.0/libuv-v1.46.0.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: fa56dafe664d21f9568adebc428d2d64

  • Tamanho da transferência: 1,2 MB

  • Espaço em disco estimado exigido: 14 MB (adicionar 14 MB para testes)

  • Tempo de construção estimado: menos que 0,1 UPC (adicionar 0,5 UPC para testes)

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 corretamente usando uma plataforma LFS 12.0.

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.39 (tempo de execução)

Recomendadas
Opcionais

Doxygen-1.9.7

Instalação do libxkbcommon

Instale libxkbcommon executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup ..            \
      --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.7 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.4

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP): https://download.gnome.org/sources/libxml2/2.10/libxml2-2.10.4.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 76808c467a58c31e2dbd511e71d5fd13

  • Tamanho da transferência: 2,5 MB

  • Espaço em disco estimado exigido: 106 MB (com testes)

  • Tempo de construção estimado: 0,4 UPC (Usando paralelismo=4; com os testes)

Transferências Adicionais

Dependências do libxml2

Opcionais

ICU-73.2 (veja-se abaixo) e Valgrind-3.21.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.4.

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.4 &&
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.21.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-73.2, para melhor suporte a Unicode.

Nota

Se a chave --with-icu for usada, os(as) editores(as) do BLFS recomendam remover referências desnecessárias para as bibliotecas ICU. Isso impedirá muitos pacotes que usam libxml2 de desnecessariamente se vincularem às bibliotecas ICU. Isso, por sua vez, evitará a necessidade de reconstruir muitos pacotes ao atualizar o ICU para uma nova versão principal. Depois de instalar a libxml2, como o(a) usuário(a) root, emita:

rm -vf /usr/lib/libxml2.la &&
sed '/libs=/s/xml2.*/xml2"/' -i /usr/bin/xml2-config

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.4 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.38

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do libxslt

Exigida

libxml2-2.10.4

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

Instalação do libxslt

Instale libxslt executando os seguintes comandos:

./configure --prefix=/usr                         \
            --disable-static                       \
            --docdir=/usr/share/doc/libxslt-1.1.38 \
            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.38 e /usr/share/doc/libxslt-python-1.1.38

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.7.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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do libwacom

Exigida

libgudev-238

Recomendada
Opcionais

Doxygen-1.9.7, git-2.41.0, librsvg-2.56.3, Valgrind-3.21.0 (opcional para alguns testes), pytest-7.4.0 com python-libevdev e pyudev

Instalação do libwacom

Instale libwacom executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup ..            \
      --prefix=/usr       \
      --buildtype=release \
      -Dtests=disabled    &&
ninja

Para testar os resultados, emita: ninja test. Para executar testes adicionais, instale pytest-7.4.0, "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.4.0 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 corretamente usando uma plataforma LFS 12.0.

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

Opcionais

hotdoc

Instalação do libwpe

Instale libwpe executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

Conteúdo

Aplicativos Instalados: 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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do libyaml

Opcionais

Doxygen-1.9.7

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"

log4cplus-2.1.0

Introdução ao log4cplus

log4cplus é uma API de registro C++20 simples de usar, que fornece controle de camada segura, flexível e arbitrariamente granular sobre gerenciamento e configuração de registro. Ela é modelado depois da API log4j do Java.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do log4cplus

Opcionais

Qt-5.15.10

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/log4cplus

Instalação do log4cplus

Construa o log4cplus executando o seguinte comando:

./configure --prefix=/usr &&
make

Para testar os resultados, emita: make check.

Agora, instale o pacote como o(a) usuário(a) root:

make install

Explicações do Comando

--with-qt5: Essa opção habilita a compilação de uma biblioteca compartilhada separada (liblog4cplusqt5debugappender) que implementa Qt5DebugAppender. Ela exige que Qt5 e pkg-config estejam disponíveis.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: log4cplus.so
Diretórios Instalados: Nenhum(a)

Descrições Curtas

log4cplus.so

é a biblioteca log4cplus

LZO-2.10

Introdução 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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Instalação do LZO

Instale LZO executando os seguintes comandos:

./configure --prefix=/usr                   \
            --enable-shared                  \
            --disable-static                 \
            --docdir=/usr/share/doc/lzo-2.10 &&
make

Para testar os resultados, emita: make check. Todas as verificações deveriam passar. Agora emita make test para executar a suíte completa de testes.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Conteúdo

Aplicativos Instalados: Nenhum
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 corretamente usando uma plataforma LFS 12.0.

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

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.17.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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP): https://nodejs.org/dist/v18.17.1/node-v18.17.1.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: cfadecca2649bb74daba89d60fbd02e5

  • Tamanho da transferência: 39 MB

  • Espaço em disco estimado exigido: 992 MB (adicionar 25 MB para testes)

  • Tempo de construção estimado: 13 UPC (adicionar 3,3 UPC para testes: ambos usando paralelismo=8 e 8 CPUs online; partes dos testes usarão todas as CPUs online)

Dependências do Node.js

Exigida

Which-2.21

Recomendadas
Opcionais

http-parser e npm (uma cópia interna do npm será instalada se não presente)

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. Vários testes são conhecidos por falharem devido a diferenças de comportamento entre OpenSSL-3.0 e OpenSSL-3.1.

Agora, como o(a) usuário(a) root:

make install &&
ln -sf node /usr/share/doc/node-18.17.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.17.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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

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 Editor(a) para nss em https://wiki.linuxfromscratch.org/blfs/wiki/nss

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

sed -ri '/^RELEASE/s/^/#/' pr/src/misc/Makefile.in: Esse "sed" desabilita a instalação de dois scripts desnecessários.

sed -i 's#$(LIBRARY) ##' config/rules.mk: Esse "sed" desabilita a instalação das bibliotecas estáticas.

--with-mozilla: Esse parâmetro adiciona suporte Mozilla às bibliotecas (exigido se você quiser construir quaisquer outros produtos Mozilla e vinculá-los a essas bibliotecas).

--with-pthreads: Esse parâmetro força o uso da biblioteca "pthread" do sistema.

$([ $(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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do PCRE

Opcionais

Valgrind-3.21.0

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

--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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do PCRE2

Opcionais

Valgrind-3.21.0 e libedit

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do popt

Opcionais

Doxygen-1.9.7 (para gerar documentação)

Instalação do Popt

Instale popt executando os seguintes comandos:

./configure --prefix=/usr --disable-static &&
make

Se você tiver Doxygen-1.9.7 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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do Pth

Opcionais

GCC-13.2.0 (para gfortran) e libnsl-2.0.0

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

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP): https://download.kde.org/stable/qca/2.3.7/qca-2.3.7.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 0e50817de610e145c83ca012f79f18f5

  • Tamanho da transferência: 732 KB

  • Espaço em disco estimado exigido: 43 MB

  • Tempo de construção estimado: 0,4 UPC (usando paralelismo=4; adicionar 0,1 UPC para testes)

Dependências do Qca

Exigidas

make-ca-1.12, CMake-3.27.2, Qt-5.15.10 e Which-2.21

Opcionais

Cyrus SASL-2.1.28, GnuPG-2.4.3, libgcrypt-1.10.2, libgpg-error-1.47, nss-3.92, NSPR-4.35, p11-kit-0.25.0, Doxygen-1.9.7, Which-2.21 e Botan

Instalação do Qca

Corrija o local dos certificados de AC:

sed -i 's@cert.pem@certs/ca-bundle.crt@' CMakeLists.txt

Instale Qca executando os seguintes comandos:

mkdir build &&
cd   build &&

cmake -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.1

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP): https://www.samba.org/ftp/talloc/talloc-2.4.1.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: b0f40831552f8dca770048f7040fefe1

  • Tamanho da transferência: 664 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.38 (para gerar páginas de manual), GDB-13.2, git-2.41.0, libnsl-2.0.0, libtirpc-1.3.3, Valgrind-3.21.0 e xfsprogs-6.4.0

Instalação do Talloc

Instale Talloc executando os seguintes comandos:

./configure --prefix=/usr &&
make

Para verificar os resultados, emita make check.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: Nenhum
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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "Telepathy GLib"

Exigidas

dbus-glib-0.112 e libxslt-1.1.38

Recomendadas
Opcionais

GTK-Doc-1.33.2

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.11 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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do Uchardet

Exigida

CMake-3.27.2

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

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do Umockdev

Exigidas

libgudev-238, libpcap-1.10.4 e Vala-0.56.11

Opcionais

GTK-Doc-1.33.2 e libgphoto2 (opcional para os testes)

Instalação do Umockdev

Instale Umockdev executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Para testar os resultados, emita: ninja test. Um teste precisa ser executado em uma sessão do X.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

-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.22.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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências de Wayland

Exigida

libxml2-2.10.4

Opcionais

Doxygen-1.9.7, Graphviz-8.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.38 (para construir as páginas de manual)

Instalação de Wayland

Instale Wayland executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup ..            \
      --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.32

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências de Wayland-protocols

Exigida

Wayland-1.22.0

Instalação de Wayland-protocols

Instale Wayland-protocols executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release &&
ninja

Para testar os resultados, emita: ninja test.

Agora, como o(a) usuário(a) root:

ninja install

Conteúdo

Aplicativos Instalados: Nenhum
Bibliotecas Instaladas: Nenhum
Diretórios Instalados: /usr/share/wayland-protocols

wpebackend-fdo-1.14.2

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências de wpebackend-fdo

Exigidas

libepoxy-1.5.10, libwpe-1.14.1 e wayland-protocols-1.32

Instalação de wpebackend-fdo

Instale wpebackend-fdo executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release ..
ninja

Agora, como o(a) usuário(a) root:

ninja install

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências de wv

Exigidas

libgsf-1.14.50 e libpng-1.6.40

Opcionais

libwmf

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

Introdução a xapian

Xapian é uma biblioteca de mecanismo de pesquisa de fonte aberto.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP): https://oligarchy.co.uk/xapian/1.4.23/xapian-core-1.4.23.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 241273b1fcde4c3fd12f0d0586e6bb6c

  • Tamanho da transferência: 2,9 MB

  • Espaço em disco estimado exigido: 144 MB (adicionar 163 MB para testes)

  • Tempo de construção estimado: 0,4 UPC (usando paralelismo=4; adicionar 11 UPC para testes)

Dependências de Xapian

Opcionais

Valgrind-3.21.0 (para os testes)

Instalação de Xapian

Instale Xapian executando os seguintes comandos:

./configure --prefix=/usr    \
            --disable-static \
            --docdir=/usr/share/doc/xapian-core-1.4.23 &&
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.23 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 corretamente usando uma plataforma LFS 12.0.

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

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

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP): https://download.gimp.org/pub/babl/0.1/babl-0.1.106.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: f0932832cdc4cf9b09c0f97ff48fea07

  • 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

Instalação do Babl

Instale Babl executando os seguintes comandos:

mkdir bld &&
cd    bld &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja 

Para testar os resultados, emita: ninja test.

Agora, como o(a) usuário(a) root:

ninja install &&

install -v -m755 -d                        /usr/share/gtk-doc/html/babl/graphics &&
install -v -m644 docs/*.{css,html}          /usr/share/gtk-doc/html/babl          &&
install -v -m644 docs/graphics/*.{html,svg} /usr/share/gtk-doc/html/babl/graphics

Explicações do Comando

install -v -m755 -d /usr/share/gtk-doc/html/babl/graphics: Esse e os comandos subsequentes instalam a documentação html da biblioteca sob /usr /share/gtk-doc/html onde outros pacotes gtk colocam a documentação orientada para o(a) programador(a).

Conteúdo

Aplicativos Instalados: Nenhum
Bibliotecas Instaladas: libbabl-0.1.so e bibliotecas em /usr/lib/babl-0.1
Diretórios Instalados: /usr/{include,lib}/babl-0.1 e /usr/share/gtk-doc/html/babl

Descrições Curtas

libbabl-0.1.so

contém funções para acessar "BablFishes" para converter entre formatos

Exiv2-0.28.0

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do Exiv2

Exigida

CMake-3.27.2

Recomendada
Opcional

libssh

Opcionais para documentação

Doxygen-1.9.7, Graphviz-8.1.0 e libxslt-1.1.38

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.

-DEXIV2_ENABLE_INIH=no: Use essa chave se você não tiver instalado inih-57.

-DEXIV2_ENABLE_BROTLI=no: Use essa chave se você não tiver instalado Brotli-1.0.9.

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

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP): https://downloads.sourceforge.net/freetype/freetype-2.13.1.tar.xz

  • Soma de verificação MD5 da transferência: e4c3f0d8453a2a7993ae784912d6f19a

  • Tamanho da transferência: 2,4 MB

  • Espaço em disco estimado exigido: 49 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.56.3

Opcional (para documentação)

docwriter

Instalação do FreeType2

Se você baixou a documentação adicional, [então] desempacote-a na árvore do fonte usando o seguinte comando:

tar -xf ../freetype-doc-2.13.1.tar.xz --strip-components=2 -C docs

Instale FreeType2 executando os seguintes comandos:

sed -ri "s:.*(AUX_MODULES.*valid):\1:" modules.cfg &&

sed -r "s:.*(#.*SUBPIXEL_RENDERING) .*:\1:" \
   -i include/freetype/config/ftoption.h  &&

./configure --prefix=/usr --enable-freetype-config --disable-static &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Se você baixou a documentação opcional, [então] instale-a como o(a) usuário(a) root:

cp -v -R docs -T /usr/share/doc/freetype-2.13.1 &&
rm -v /usr/share/doc/freetype-2.13.1/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.1

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do Fontconfig

Exigida

FreeType-2.13.1

Opcionais

bubblewrap-0.8.0 (usado por alguns testes), cURL-8.2.1 e UnZip-6.0 (ambos usados por alguns testes para baixar e extrair arquivos de teste), JSON-C-0.17, DocBook-utils-0.6.14 e libxml2-2.10.4, texlive-20230313 (ou install-tl-unx)

Nota

Uma conexão com a Internet é necessária para alguns testes desse pacote.

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-20230313 instalado também, ou a construção do Fontconfig falhará.

Instalação do Fontconfig

Instale Fontconfig executando os seguintes comandos:

./configure --prefix=/usr       \
            --sysconfdir=/etc    \
            --localstatedir=/var \
            --disable-docs       \
            --docdir=/usr/share/doc/fontconfig-2.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.13

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do FriBidi

Opcionais

c2man (para construir páginas de manual)

Instalação do FriBidi

Instale FriBidi executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Para testar os resultados, emita: ninja test.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

Conteúdo

Aplicativo Instalado: fribidi
Biblioteca Instalada: libfribidi.so
Diretório Instalado: /usr/include/fribidi

Descrições Curtas

fribidi

é uma interface de linha de comando para a biblioteca libfribidi e pode ser usada para converter uma sequência lógica de caracteres para saída gerada visual

libfribidi.so

contém funções usadas para implementar o Algoritmo Bidirecional Unicode

gegl-0.4.46

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP): https://download.gimp.org/pub/gegl/0.4/gegl-0.4.46.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 241bde22f9204515121e5fb03a2b9fbd

  • Tamanho da transferência: 5,6 MB

  • Espaço em disco estimado exigido: 103 MB (Adicionar 4 MB para testes)

  • Tempo de construção estimado: 0,9 UPC (Usando paralelismo=4; adicionar 0,4 para testes)

Dependências do gegl

Exigidas

babl-0.1.106, JSON-GLib-1.6.6, libjpeg-turbo-3.0.0 e libpng-1.6.40

Recomendadas
Opcionais

asciidoc-10.2.0, Cairo-1.17.6, FFmpeg-6.0, gdk-pixbuf-2.42.10, gexiv2-0.14.2, GTK-Doc-1.33.2, JasPer-4.0.0, Little CMS-2.14, libraw-0.21.1, librsvg-2.56.3, libtiff-4.5.1, libwebp-1.3.1, Pango-1.50.14, Poppler-23.08.0, Ruby-3.2.2, SDL2-2.28.2, v4l-utils-1.24.1, Vala-0.56.11, libspiro-20220722, LuaJIT, lensfun, LuaJIT, libnsgif, libumfpack, maxflow, MRG, OpenCL, OpenEXR, poly2tri-c, source-highlight e w3m

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

Instale gegl executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Para executar os testes, emita: ninja test. 7 testes na parte gegl:ff-load-save da suíte de teste são conhecidos por falharem devido a incompatibilidades com ffmpeg-6.0.

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

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 corretamente usando uma plataforma LFS 12.0.

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

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do Graphite2

Exigida

CMake-3.27.2

Opcionais

FreeType-2.13.1, silgraphite para construir a ferramenta de teste e avaliação comparativa comparerender e, se isso estiver presente, e HarfBuzz-8.1.1 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.7, texlive-20230313 (ou install-tl-unx) e dblatex (para documentos "PDF")

Para executar a suíte de teste, você precisará de FontTools (módulo Python 3), caso contrário, os testes "cmp" falham.

Opcional (em tempo de execução)

Você precisará de pelo menos uma fonte grafite adequada para que o pacote seja útil.

Instalação do Graphite2

Alguns testes falham se o FontTools (módulo Python 3) não estiver instalado. Esses testes podem ser removidos com:

sed -i '/cmptest/d' tests/CMakeLists.txt

Instale Graphite2 executando os seguintes comandos:

mkdir build &&
cd   build &&

cmake -DCMAKE_INSTALL_PREFIX=/usr .. &&
make

Se você deseja construir a documentação, emita:

make docs

Para testar os resultados, emita: make test. Um teste chamado nametabletest é conhecido por falhar.

Agora, como o(a) usuário(a) root:

make install

Se você construiu a documentação, [então] instale, como o(a) usuário(a) root:

install -v -d -m755 /usr/share/doc/graphite2-1.3.14 &&

cp     -v -f    doc/{GTF,manual}.html \
                    /usr/share/doc/graphite2-1.3.14 &&
cp      -v -f    doc/{GTF,manual}.pdf \
                    /usr/share/doc/graphite2-1.3.14

Explicações do Comando

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

Introdução a Harfbuzz

O pacote HarfBuzz contém um mecanismo de modelagem de texto "OpenType".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

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.41.0, GTK-Doc-1.33.2, FontTools (módulo Python 3, para a suíte de teste), ragel e wasm-micro-runtime

Atenção

As dependências recomendadas não são estritamente necessárias para construir o pacote. No entanto, você pode não obter os resultados esperados no tempo de execução se não os instalar. Por favor, não informe defeitos com esse pacote se você não tiver instalado as dependências recomendadas.

Instalação do HarfBuzz

Instale HarfBuzz executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup ..            \
      --prefix=/usr       \
      --buildtype=release \
      -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-20230313 ou o LibreOffice-7.6.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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do JasPer

Exigida

CMake-3.27.2

Recomendada
Opcionais

Freeglut-3.4.0 (necessário para jiv), Doxygen-1.9.7 (necessário para gerar documentação html) e texlive-20230313 ( necessário para regerar a documentação em pdf)

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-20230313 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 corretamente usando uma plataforma LFS 12.0.

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.1, libjpeg-turbo-3.0.0 e Python-2.7.18 (com SWIG-4.1.1 também)

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do Little CMS2

Opcionais

libjpeg-turbo-3.0.0 e libtiff-4.5.1

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"

libavif-0.11.1

Introdução ao libavif

O pacote libavif contém uma biblioteca usada para codificar e decodificar arquivos AVIF.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do libavif

Exigidas

libaom-3.6.1

Recomendadas
Opcionais

gtest, libdav1d, libyuv, rav1e e svt-av1

Instalação do libavif

Instale o libavif executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -DCMAKE_INSTALL_PREFIX=/usr \
      -DCMAKE_BUILD_TYPE=Release  \
      -DAVIF_CODEC_AOM=ON         \
      -DAVIF_BUILD_GDK_PIXBUF=ON  \
      -G Ninja .. &&
ninja

Esse pacote vem com uma suíte de teste, mas ela exige gtest, que não é parte do BLFS.

Agora, como o(a) usuário(a) root:

ninja install

O formato AV1 precisa ser adicionado ao cache dos carregadores. Como o(a) usuário(a) root:

gdk-pixbuf-query-loaders --update-cache

Explicações do Comando

-DAVIF_CODEC_AOM=ON: Essa chave habilita usar o codificador AOM. Esse pacote é inútil sem pelo menos um codificador integrado.

-DAVIF_BUILD_GDK_PIXBUF=ON: Essa chave constrói o carregador AVIF para aplicativos que usam gdk-pixbuf. Remova-a se você não tiver instalado o gdk-pixbuf-2.42.10.

-DAVIF_CODEC_DAV1D=ON: Use essa chave se você tiver instalado libdav1d e desejar usá-lo como um codificador.

-DAVIF_CODEC_RAV1E=ON: Use essa chave se você tiver instalado o rav1e e desejar usá-lo como um codificador.

-DAVIF_CODEC_SVT=ON: Use essa chave se você tiver instalado svt-av1 e desejar usá-lo como um codificador.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: libavif.so e libpixbbufloader-avif.so (em /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders)
Diretórios Instalados: /usr/include/avif

Descrições Curtas

libavif.so

contém funções que fornecem uma implementação C portável do formato de imagem AV1

libpixbufloader-avif.so

permite que aplicativos que usam gdk-pixbuf leiam imagens AVIF

libexif-0.6.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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "libexif"

Opcional (para construir a documentação)

Doxygen-1.9.7 e Graphviz-8.1.0

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do Libgxps

Exigidas

GTK+-3.24.38, Little CMS-2.14, libarchive-3.7.1, libjpeg-turbo-3.0.0, libtiff-4.5.1 e libxslt-1.1.38

Opcionais

git-2.41.0 e GTK-Doc-1.33.2

Instalação do Libgxps

Instale Libgxps executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

Conteúdo

Aplicativos Instalados: xpstojpeg, xpstopdf, xpstopng, xpstops e xpstosvg
Biblioteca Instalada: libgxps.so
Diretórios Instalados: /usr/include/libgxps

Descrições Curtas

xpstojpeg

converte documentos "XPS" em uma imagem "JPEG"

xpstopdf

converte documentos "XPS" para o formato "PDF"

xpstopng

converte documentos "XPS" em uma imagem "PNG"

xpstops

converte documentos "XPS" em "PostScript"

xpstosvg

converte documentos "XPS" em imagens "SVG"

libgxps.so

contém funções de API para manipular documentos "XPS"

libjpeg-turbo-3.0.0

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do libjpeg-turbo

Exigida

CMake-3.27.2

Recomendadas

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-3.0.0 \
      -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-3.0.0

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do libmng

Exigidas

libjpeg-turbo-3.0.0 e Little CMS-2.14

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do libmypaint

Exigida

JSON-C-0.17

Recomendadas
Opcionais

Doxygen-1.9.7 (para criar documentos "XML"), gegl (somente versões 0.3) e gperftools

Instalação do libmypaint

Instale libmypaint executando os seguintes comandos:

./configure --prefix=/usr &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: Nenhum.
Bibliotecas Instaladas: libmypaint.so (e, opcionalmente, "libmypaint-gegl.so", que não é usada por nenhum pacote neste livro).
Diretório Instalado: /usr/include/libmypaint

Descrições Curtas

libmypaint.so

contém funções para fazer pinceladas

libpng-1.6.40

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP): https://downloads.sourceforge.net/libpng/libpng-1.6.40.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 6c7fe9dbb80c89c3579bedad9722e559

  • Tamanho da transferência: 1000 KB

  • Espaço em disco estimado exigido: 16 MB (com testes)

  • Tempo de construção estimado: 0,1 UPC (adicionar 0,5 UPC para os testes)

Transferências Adicionais

Instalação do libpng

Se você deseja remendar a "libpng" para suportar arquivos "apng", [então] aplique-o aqui:

gzip -cd ../libpng-1.6.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.40 &&
cp -v README libpng-manual.txt /usr/share/doc/libpng-1.6.40

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

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 corretamente usando uma plataforma LFS 12.0.

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

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-3.0.0 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.56.3

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do librsvg

Exigidas

Cairo-1.17.6, gdk-pixbuf-2.42.10, Pango-1.50.14 e rustc-1.71.1

Nota

Uma conexão com a Internet é necessária para construir esse pacote.

Recomendadas
Opcionais

docutils-0.20.1 (para páginas de manual), Gi-DocGen-2023.1 (para documentação) e Fontes do Xorg (para testes)

Instalação do librsvg

Instale librsvg executando os seguintes comandos:

./configure --prefix=/usr   \
            --enable-vala    \
            --disable-static \
            --docdir=/usr/share/doc/librsvg-2.56.3 &&
make

Para testar os resultados, emita:

make check

Agora, como o(a) usuário(a) root:

make DOC_INSTALL_DIR='$(docdir)' 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.11 instalado.

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

DOC_INSTALL_DIR='$(docdir)': Essa substituição garante instalar a documentação da API no local esperado se Gi-DocGen-2023.1 estiver instalado.

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

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Instalação do libspiro

Instale libspiro executando os seguintes comandos:

./configure --prefix=/usr --disable-static &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Conteúdo

Aplicativos Instalados: Nenhum
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.1

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP): https://download.osgeo.org/libtiff/tiff-4.5.1.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: d08c5f9eee6350fffc239e5993d92779

  • Tamanho da transferência: 3,6 MB

  • Espaço em disco estimado exigido: 63 MB (com testes)

  • Tempo de construção estimado: 0,3 UPC (com testes)

Dependências do libtiff

Recomendada
Opcionais

Freeglut-3.4.0 (exigido para tiffgt), libjpeg-turbo-3.0.0, sphinx-7.1.2, libwebp-1.3.1, JBIG-KIT e LERC

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.1 \
      -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.1

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

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do libwebp

Recomendadas
Opcionais

Freeglut-3.4.0 e giflib-5.2.1

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do mypaint-brushes

Exigidas ao tempo de execução

libmypaint-1.6.1

Instalação do mypaint-brushes

Instale mypaint-brushes executando os seguintes comandos:

./configure --prefix=/usr &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: Nenhum(a).
Bibliotecas Instaladas: Nenhum(a).
Diretórios Instalados: /usr/share/mypaint-data.

newt-0.52.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 corretamente usando uma plataforma LFS 12.0.

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

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.8.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 corretamente usando uma plataforma LFS 12.0.

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.27.2 e UnZip-6.0

Recomendadas
Opcionais

apache-ant-1.10.14, Doxygen-1.9.7, Java-20.0.2, NumPy-1.25.2, Python-2.7.18, blas, Cuda, Eigen, OpenEXR, GDAL, lapack, libdc1394, Threading Building Blocks (TBB) e VTK - The Visualization Toolkit,

Instalação do opencv

Se você baixou os módulos opcionais, [então] desempacote-os agora:

tar -xf ../opencv_contrib-4.8.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.8.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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do OpenJPEG

Exigida

CMake-3.27.2

Opcionais

Little CMS-2.14, libpng-1.6.40, libtiff-4.5.1 e Doxygen-1.9.7 (para construir a documentação da API)

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 corretamente usando uma plataforma LFS 12.0.

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.40 (para testes e demonstrações)

Instalação do Pixman

Instale Pixman executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release &&
ninja

Para testar os resultados, emita: ninja test.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

Conteúdo

Aplicativos Instalados: Nenhum
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.08.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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP): https://poppler.freedesktop.org/poppler-23.08.0.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: b369afc9511198de5a604ca3baea1ddd

  • Tamanho da transferência: 1,8 MB

  • Espaço em disco estimado exigido: 91 MB (com biblioteca Qt5 e 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.27.2, Fontconfig-2.14.2 e gobject-introspection-1.76.1

Recomendadas
Opcionais

cURL-8.2.1, gdk-pixbuf-2.42.10, git-2.41.0 (para baixar arquivos de teste), GPGME-1.21.0, GTK-Doc-1.33.2, GTK+-3.24.38, libtiff-4.5.1, (Qt-5.15.10 ou qt-alternate-5.15.10) (exigido para suporte PDF em Okular-23.08.0) e Qt-6.1 ou posterior.

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.08.0 &&
cp -vr ../glib/reference/html /usr/share/doc/poppler-23.08.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.08.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 corretamente usando uma plataforma LFS 12.0.

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

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.5.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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP): https://github.com/qpdf/qpdf/releases/download/v11.5.0/qpdf-11.5.0.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: d916ac26b7f30a5cf3827c708c455ec9

  • Tamanho da transferência: 18 MB

  • Espaço em disco estimado exigido: 253 MB (adicionar 1 MB para testes)

  • Tempo de construção estimado: 0,4 UPC (usando paralelismo=4; adicionar 0,5 UPC para testes)

Dependências do Qpdf

Exigida

libjpeg-turbo-3.0.0

Opcionais

ghostscript-10.01.2, GnuTLS-3.8.1, libtiff-4.5.1, sphinx-7.1.2, com sphinx_rtd_theme-1.2.2, e texlive-20230313 ou install-tl-unx

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.5.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.5.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 corretamente usando uma plataforma LFS 12.0.

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.7 para gerar documentação e SDL2-2.28.2 para os testes

Instalação do qrencode

Instale libqrencode executando os seguintes comandos:

./configure --prefix=/usr &&
make

Se instalou Doxygen-1.9.7, [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.28.2.

--without-tools: Essa opção evita construir o executável qrencode, removendo a necessidade da libpng-1.6.40.

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Transferências Adicionais

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"

webp-pixbuf-loader-0.2.4

Introdução ao webp-pixbuf-loader

O pacote webp-pixbuf-loader contém uma biblioteca que permite ao gdk-pixbuf carregar e processar imagens webp.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do webp-pixbuf-loader

Exigidas

gdk-pixbuf-2.42.10 e libwebp-1.3.1

Instalação do webp-pixbuf-loader

Instale o webp-pixbuf-loader executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Para testar os resultados, emita: ninja test.

Agora, como o(a) usuário(a) root:

ninja install

O formato webp precisa ser adicionado ao cache dos carregadores:

gdk-pixbuf-query-loaders --update-cache

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

gdk-pixbuf-query-loaders --update-cache: Esse comando atualiza o cache do carregador gdk-pixbuf, de forma que ele saiba que o carregador webp foi instalado.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: libpixbufloader-webp.so
Diretórios Instalados: Nenhum(a)

Descrições Curtas

libpixbufloader-webp.so

contém funções que permitem ao gdk-pixbuf carregar imagens webp

woff2-1.0.2

Introdução 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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do WOFF2

Exigidas

Brotli-1.0.9 e CMake-3.27.2

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

Introdução ao Asciidoctor

O "Asciidoctor" é um processador de texto de fonte aberto rápido e um conjunto de ferramentas de publicação para converter conteúdo "AsciiDoc" em "HTML5", "DocBook", "PDF" e outros formatos.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do Asciidoctor

Exigidas

Ruby-3.2.2

Instalação do Asciidoctor

Nota

Quando construir esse pacote, a seguinte mensagem possivelmente apareça:

fatal: not a git repository (or any of the parent directories): .git

. Isso é normal e o pacote continuará sendo construído após esse ponto.

Construa a gema Ruby:

gem build asciidoctor.gemspec

A suíte de teste precisa de muitas gemas Ruby além do escopo do BLFS.

Agora, como o(a) usuário(a) root:

gem install asciidoctor-2.0.20.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.20 e /usr/lib/ruby/gems/3.2.0/doc/asciidoctor-2.0.20

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do Bogofilter

Exigida

Base de Dados Berkeley-5.3.28

Recomendadas
Opcionais

lmdb-0.9.31, SQLite-3.42.0, 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.

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Transferências Adicionais

Dependências do "Desktop File Utils"

Exigida

GLib-2.76.4

Opcional

Emacs-29.1

Instalação do "Desktop File Utils"

Atenção

Se você estiver atualizando a partir de uma versão anterior do "desktop-file-utils" que usou o método "Autotools" de instalação e configuração do pacote, [então] você precisa remover o link simbólico "desktop-file-edit" usando os seguintes comandos.

rm -fv /usr/bin/desktop-file-edit

Em seguida, atualize a versão do padrão de arquivo da área de trabalho para aceitar a chave SingleMainWindow:

patch -Np1 -i ../desktop-file-utils-0.26-update_standard-1.patch

Instale Desktop File Utils executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

Configurando o "Desktop File Utils"

Informação de Configuração

A especificação XDG Base Directory define os locais padrão para os aplicativos colocarem dados e arquivos de configuração. Esses arquivos podem ser usados, por exemplo, para definir a estrutura do menu e os itens do menu em um ambiente de área de trabalho.

O local padrão para os arquivos de configuração a serem instalados é /etc/xdg; e os locais padrão para arquivos de dados são /usr/local/share e /usr/share. Esses locais podem ser estendidos com as variáveis de ambiente XDG_CONFIG_DIRS e XDG_DATA_DIRS, respectivamente. Os ambientes GNOME, KDE e XFCE respeitam essas configurações.

Quando um pacote instala um arquivo .desktop em um local em um dos diretórios básicos de dados, a base de dados que mapeia tipos "MIME" para aplicativos disponíveis consegue ser atualizado. Por exemplo, o arquivo de cache em /usr/share/applications/mimeinfo.cache pode ser reconstruído executando-se o seguinte comando como o(a) usuário(a) root:

install -vdm755 /usr/share/applications &&
update-desktop-database /usr/share/applications

Conteúdo

Aplicativos Instalados: desktop-file-edit, desktop-file-install, desktop-file-validate e update-desktop-database
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: Nenhum(a)

Descrições Curtas

desktop-file-edit

é usado para modificar uma entrada existente do arquivo da área de trabalho

desktop-file-install

é usado para instalar uma nova entrada do arquivo da área de trabalho. Também é usado para reconstruir ou modificar a base de dados de aplicativos de tipos "MIME"

desktop-file-validate

é usado para verificar a integridade de um arquivo da área de trabalho

update-desktop-database

é usado para atualizar a base de dados de aplicativos de tipos "MIME"

dos2unix-7.5.0

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP): https://downloads.sourceforge.net/dos2unix/dos2unix-7.5.0.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 001af2b16ae216241ac08bef29f36c28

  • Tamanho da transferência: 936 KB

  • Espaço em disco estimado exigido: 8,4 MB (com testes)

  • Tempo de construção estimado: menos que 0,1 UPC (com os testes)

Instalação do dos2unix

Construa dos2unix executando os seguintes comandos:

make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativo Instalado: dos2unix, mac2unix, unix2dos e unix2mac
Bibliotecas Instaladas: Nenhuma
Diretórios Instalados: /usr/share/doc/dos2unix-7.5.0

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-8.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 corretamente usando uma plataforma LFS 12.0.

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.1-15. 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.14, com Cairo-1.17.6, Bibliotecas do Xorg, Fontconfig-2.14.2 e libpng-1.6.40, 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.46

Adicionar GTK+-2.24.33 com libjpeg-turbo-3.0.0 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.1 (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.01.2, librsvg-2.56.3 e Poppler-23.08.0

Opcional, para construir mais ferramentas

Freeglut-3.4.0 (com libglade-2.6.4, GtkGLExt e libGTS, para construir o grande visualizador de gráficos smyrna, que é considerado experimental) e (Qt-5.15.10 ou qt-alternate-5.15.10) (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-13.2.0 (para o compilador "go"), Guile-3.0.9, OpenJDK-20.0.2, Lua-5.4.6, PHP-8.2.9, Ruby-3.2.2, 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.01.2 (para o comando ps2pdf)

Instalação do Graphviz

Instale Graphviz executando os seguintes comandos:

sed -i '/LIBPOSTFIX="64"/s/64//' configure.ac &&

./autogen.sh             &&
./configure --prefix=/usr \
            --docdir=/usr/share/doc/graphviz-8.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-20.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.1 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-8.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 corretamente usando uma plataforma LFS 12.0.

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

Recomendada
Opcionais

Para testes: dblatex ou fop-2.9 (suporte a "PDF" "XML"), GLib-2.76.4, Which-2.21 e módulos "Python" lxml-4.9.3, parameterized e yelp-tools

Nota

Os módulos opcionais "Python" acima podem ser facilmente instalados com o comando pip3.

Instalação do GTK-Doc

Instale GTK-Doc executando os seguintes comandos:

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

Introdução ao "Highlight"

Highlight é um utilitário que converte o código-fonte em texto formatado com realce de sintaxe.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP): http://www.andre-simon.de/zip/highlight-4.7.tar.bz2

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: cc5f3a857aa6c6d9f23ea3e36522f959

  • Tamanho da transferência: 1,4 MB

  • Espaço em disco estimado exigido: 24 MB (com GUI)

  • Tempo de construção estimado: 0,3 UPC (Usando paralelismo=4; com a "GUI")

Dependências do "Highlight"

Exigidas

Boost-1.83.0 e Lua-5.4.6

Opcionais

(Qt-5.15.10 ou qt-alternate-5.15.10) (para construir a estrutura GUI)

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.7/ 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.7/ 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.7/: instala a documentação do highlight em um diretório versionado. Esse parâmetro também é necessário para make gui, pois o valor dele seria rigidamente codificado no executável GUI. Observe que a / à direita é necessária.

Conteúdo

Aplicativos Instalados: highlight e highlight-gui (opcional)
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /etc/highlight, /usr/share/doc/highlight-4.7 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.28

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP): https://github.com/ibus/ibus/releases/download/1.5.28/ibus-1.5.28.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: e788203d60e2b9cf56d95f1ee73a6898

  • Tamanho da transferência: 3,7 MB

  • Espaço em disco estimado exigido: 66 MB (adicionar 5 MB para 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.15.0 e Vala-0.56.11

Recomendadas
Opcionais

GTK+-3.24.38 (para construir o módulo "IM" para "it"), GTK-4.12.0 (para construir o módulo "IM" para "it"), D-Bus Python-1.3.2 e PyGObject-3.44.1 (ambos para construir a biblioteca de suporte a "Python"), GTK-Doc-1.33.2 e libxkbcommon-1.5.0, Wayland-1.22.0 (ambos para construir os aplicativos de suporte a "Wayland") e EmojiOne

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 gráfico baseado em Wayland. O teste chamado xkb-latin-layouts é conhecido por falhar com um lançamento recente do xkeyboard-config.

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

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP): https://www.imagemagick.org/archive/releases/ImageMagick-7.1.1-15.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 14dc2057465df350005311b4ae3649b5

  • Tamanho da transferência: 9,7 MB

  • Espaço em disco estimado exigido: 164 MB (com dependências típicas; adicionar 31 MB para verificações)

  • Tempo de construção estimado: 0,8 UPC (com dependências típicas; adicionar 0,8 UPC para verificações, ambos usando paralelismo=4)

Nota

Os lançamentos de fonte do ImageMagick são atualizados frequentemente e a versão mostrada acima possivelmente não mais esteja disponível a partir dos locais de transferência. Você pode baixar uma versão mais recente e usar as instruções existentes do BLFS para instalá-la. As chances são de que funcione bem, mas isso não foi testado pela equipe do BLFS. Se a versão do pacote mostrada acima não estiver disponível a partir dos locais mostrados acima, [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-16.0.5, Cups-2.4.6, cURL-8.2.1, FFmpeg-6.0, fftw-3.3.10, p7zip-17.04 ("LZMA"), SANE-1.0.32, Wget-1.21.4, xdg-utils-1.1.3, xterm-384, Dmalloc, Electric Fence e PGP ou GnuPG-2.4.3 (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-3.0.0, libpng-1.6.40, libraw-0.21.1 (para arquivos dng, precisa do libraw_r thread-safe), librsvg-2.56.3, libtiff-4.5.1, libwebp-1.3.1, OpenJPEG-2.5.0, Pango-1.50.14, 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.01.2, Gimp-2.10.34, Graphviz-8.1.0, Inkscape-1.3, Blender, corefonts, GhostPCL, Gnuplot, POV-Ray e Radiance

Ferramentas Opcionais de Conversão

Enscript-1.6.6, Potrace-1.16, texlive-20230313 (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 e Utah Raster Toolkit (ou URT-3.1b)

Observações de Editor(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.1 install

Para testar a instalação, emita: make check. Observe que os testes "EPS", "PS" e "PDF" exigem um Ghostscript funcional. Um teste em 'make check' precisa de Helvetica originário de Ghostscript Standard Fonts, que são opcionalmente instaladas em ghostscript-10.01.2 - 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.1, /usr/lib/perl5/site_perl/5.38/{,auto}/Image/Magick, /usr/share/doc/ImageMagick-7.1.1 e /usr/share/ImageMagick-7

Descrições Curtas

animate

anima uma sequência de imagens

compare

compara uma imagem com uma imagem reconstruída

composite

compõe várias imagens na imagem base fornecida

conjure

processa um script "MSL" para criar uma imagem

convert

converte imagem(ns) de um formato para outro

display

exibe uma imagem

identify

descreve o formato e as características de um arquivo de imagem

import

captura uma janela do X

magick

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.15.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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Instalação do ISO Codes

O diretório é chamado iso-codes-4.15.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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do lsof

Exigida

libtirpc-1.3.3

Opcionais

Nmap-7.94 (com um link simbólico nc apontando para ncat em /usr/bin; usado em testes)

Configuração do Núcleo

Para executar os testes, a seguinte opção deveria estar habilitada na configuração do núcleo:

General setup --->
  [*] POSIX Message Queues                                        [POSIX_MQUEUE]

Instalação do lsof

Instale lsof executando os seguintes comandos:

./Configure -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.94 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 corretamente usando uma plataforma LFS 12.0.

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do PIN-Entry

Exigidas

libassuan-2.5.6 e libgpg-error-1.47

Opcionais

Emacs-29.1, FLTK-1.3.8, Gcr-3.41.1, GTK+-2.24.33, KDE Frameworks-5.109.0 (ou kwayland-5.109.0 para lxqt), libsecret-0.21.0, (Qt-5.15.10 ou qt-alternate-5.15.10) e efl

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do Rep-gtk

Exigidas

GTK+-2.24.33 e librep-0.92.7

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

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do Screen

Opcionais

Linux-PAM-1.5.3

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.1
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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Transferências Adicionais

Dependências do "Shared Mime Info"

Exigidas

GLib-2.76.4 e libxml2-2.10.4

Opcionais

xmlto-0.0.28

Instalação do "Shared Mime Info"

Instale Shared Mime Info executando os seguintes comandos:

Se deseja executar a suíte de teste, [então] você precisa primeiro extrair o tarball xdgmime no diretório atual e compilá-lo, de forma que meson consiga encontrá-lo:

tar -xf ../xdgmime.tar.xz &&
make -C xdgmime

Agora construa o pacote:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release -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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

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 corretamente usando uma plataforma LFS 12.0.

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.2 e Twisted (para os testes torcidos)

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "Tidy HTML5"

Exigida

CMake-3.27.2

Recomendada

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

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

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP): https://mama.indstate.edu/users/ice/tree/src/tree-2.1.1.tgz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 1376096bad6b1875d680b18873c249f1

  • Tamanho da transferência: 60 KB

  • Espaço em disco estimado exigido: 728 KB

  • Tempo de construção estimado: menos que 0,1 UPC

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

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "unixODBC"

Opcionais

Mini SQL e Pth-2.0.7

Instalação do "unixODBC"

Instale unixODBC executando os seguintes comandos:

./configure --prefix=/usr \
           --sysconfdir=/etc/unixODBC &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install &&

find doc -name "Makefile*" -delete               &&
chmod 644 doc/{lst,ProgrammerManual/Tutorial}/*   &&

install -v -m755 -d /usr/share/doc/unixODBC-2.3.12 &&
cp      -v -R doc/* /usr/share/doc/unixODBC-2.3.12

Explicações do Comando

--enable-drivers: Esse parâmetro habilita construir os controladores que foram instalados por padrão nas versões anteriores.

--enable-drivers-conf: Esse parâmetro habilita construir as bibliotecas de configuração do controlador que foram instaladas por padrão nas versões anteriores.

Configurando "unixODBC"

Arquivos de Configuração

/etc/unixODBC/*

Informação de Configuração

Os arquivos em /etc/unixODBC são destinados a serem configurados pelo(a) administrador(a) do sistema (ou pelo(a) administrador(a) do sítio "ODBC" se os privilégios apropriados forem concedidos a /etc /unixODBC). Esses arquivos não são destinados para serem editados diretamente. A biblioteca do instalador "ODBC" é responsável por ler e gravar os arquivos de configuração unixODBC.

Infelizmente, não existem muitas man, ou quaisquer páginas info para os vários aplicativos disponíveis no pacote unixODBC. Juntamente com as informações nas Descrições Curtas abaixo e a documentação instalada em /usr/share/doc/unixODBC-2.3.12, existem muitos arquivos README em toda a árvore do fonte onde o uso e a funcionalidade dos aplicativos podem ser encontrados. Além disso, você pode usar o parâmetro -? para informações de sintaxe e uso. Por fim, o sítio da "web" do unixODBC em http://www.unixodbc.org/ tem informações muito boas.

Conteúdo

Aplicativos Instalados: dltest, isql, iusql, odbc_config, odbcinst e slencheck
Bibliotecas Instaladas: libodbc.so, libodbccr.so e libodbcinst.so
Diretórios Instalados: /etc/unixODBC e /usr/share/doc/unixODBC-2.3.12

Descrições Curtas

dltest

é um utilitário usado para verificar uma biblioteca compartilhada para ver se ela pode ser carregada e se um dado símbolo existe nela

isql

é um utilitário que pode ser usado para submeter "SQL" para uma fonte de dados e para formatar/suprir resultados. Ele pode ser usado em modo de lote ou interativo

iusql

fornece a mesma funcionalidade que o aplicativo isql

odbc_config

é usado para descobrir detalhes a respeito da instalação do pacote unixODBC

odbcinst

é um utilitário criado para instalar escritores de script/"RPM". É uma interface de linha de comando para funcionalidade chave na biblioteca libodbcinst. Ele não copia nenhum arquivo (ou seja, bibliotecas), mas modificará as informações do sistema "ODBC" para o(a) usuário(a)

slencheck

é um utilitário que tenta verificar se um controlador "ODBC" foi construído com tipos "SQLLEN" de 32 bits ou 64 bits

xdg-dbus-proxy-0.1.5

Introdução ao xdg-dbus-proxy

O pacote xdg-dbus-proxy contém um proxy de filtragem para conexões D-Bus. Isso é útil para encaminhar dados dentro e fora de uma sandbox.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do xdg-dbus-proxy

Exigidas

GLib-2.76.4

Instalação do xdg-dbus-proxy

Instale o xdg-dbus-proxy executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Para testar os resultados, emita: ninja test.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

Conteúdo

Aplicativos Instalados: xdg-dbus-proxy
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: Nenhum(a)

Descrições Curtas

xdg-dbus-proxy

é um proxy de filtragem para conexões D-Bus

Xdg-user-dirs-0.18

Introdução 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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do Xdg-user-dirs

Opcionais

docbook-xml-4.5, docbook-xsl-nons-1.79.2 e libxslt-1.1.38 (todos três para construir as páginas de manual)

Instalação do "Xdg-user-dirs"

Instale xdg-user-dirs executando os seguintes comandos:

./configure --prefix=/usr           \
            --sysconfdir=/etc       \
            --disable-documentation &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--disable-documentation: Desabilita a instalação das páginas de manual. Remova essa chave se você tiver instalado as dependências opcionais e desejar instalar as páginas de manual desse pacote.

Configurando "Xdg-user-dirs"

Arquivos de Configuração

~/.config/user-dirs.dirs, /etc/xdg/user-dirs.conf e /etc/xdg/user-dirs.defaults. Esses locais padrão podem ser substituídos por XDG_CONFIG_HOME e XDG_CONFIG_DIRS

Conteúdo

Aplicativos Instalados: xdg-user-dir e xdg-user-dirs-update
Biblioteca Instalada: Nenhum(a)
Diretório Instalado: Nenhum(a)

Descrições Curtas

xdg-user-dir

procura o caminho atual para um dos diretórios "XDG" de usuário(a)

xdg-user-dirs-update

cria versões localizadas dos diretórios de usuário(a)

Capítulo 12. Utilitários de Sistema

Este capítulo contém principalmente utilitários de hardware. Ele também contém alguns aplicativos usados por outros aplicativos no livro para propósitos de instalação ou configuração.

AccountsService-23.13.9

Introdução ao AccountsService

O pacote AccountsService fornece um conjunto de interfaces D-Bus para consulta e manipulação de informações da conta do(a) usuário(a) e uma implementação dessas interfaces baseada nos comandos usermod(8), useradd(8) e userdel(8).

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "AccountsService"

Exigidas

Polkit-123

Recomendadas
Opcionais

GTK-Doc-1.33.2 e xmlto-0.0.28

Opcionais (para testes)

dbusmock-0.29.1 e PyGObject-3.44.1

Instalação do "AccountsService"

Primeiro, renomeie um diretório cuja presença impede o sistema de construção de executar se dbusmock-0.29.1 não estiver instalado:

mv tests/dbusmock{,-tests}

Em seguida, corrija os testes de forma que o novo diretório seja encontrado:

sed -e '/accounts_service\.py/s/dbusmock/dbusmock-tests/' \
    -i tests/test-libaccountsservice.py

Corrija um teste que falha se a localidade en_IE.UTF-8 não estiver instalada:

sed -i '/^SIMULATED_SYSTEM_LOCALE/s/en_IE.UTF-8/en_HK.iso88591/' tests/test-daemon.py

Instale AccountsService executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup ..            \
      --prefix=/usr       \
      --buildtype=release \
      -Dadmin_group=adm   &&
ninja

Para testar o pacote, emita ninja test.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

-Dadmin_group=adm: Essa chave configura o grupo para contas de administrador(a).

-Ddocbook=true: Essa chave habilita construir a documentação da API da interface do D-Bus (precisa do xmlto-0.0.28).

-Dgtk_doc=true: Essa chave habilita construir a documentação da API da libaccountsservice (precisa do GTK-Doc-1.33.2).

-Dvapi=false: Essa chave desabilita construir as ligações vala. Use-a se você não tiver instalado Vala-0.56.11.

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

Nota

Alguns outros pacotes também podem lidar com alguns eventos ACPI e possivelmente conflitem com esse pacote. Por exemplo, Systemd-254 (leia-se a documentação para Handle*= em logind.conf(5) para detalhes) e UPower-1.90.2 (usado por muitos ambientes de área de trabalho como GNOME, KDE e XFCE para lidar com eventos ACPI). Se você tiver instalado tal pacote e ele for suficiente para o teu caso de uso, esse pacote provavelmente não é necessário. Se você realmente precisa desse pacote, você precisa ser cuidadoso(a) ao configurá-lo e aos outros pacotes que manuseiam eventos ACPI para evitar conflitos. Notavelmente, Systemd-254 lida com alguns eventos ACPI por padrão, de forma que o tratamento desses eventos pelo Systemd-254 deveria ser desabilitado primeiro se manusear esses eventos com acpid (novamente, leia-se logind.conf(5) para detalhes).

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP): https://downloads.sourceforge.net/acpid2/acpid-2.0.34.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 988c2e3fd5ba0ea4492d3ba7273af295

  • Tamanho da transferência: 160 KB

  • Espaço em disco estimado exigido: 1,9 MB

  • Tempo de construção estimado: menos que 0,1 UPC

Instalação do "acpid"

Instale acpid executando os seguintes comandos:

./configure --prefix=/usr \
           --docdir=/usr/share/doc/acpid-2.0.34 &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install                        &&
install -v -m755 -d /etc/acpi/events &&
cp -r samples /usr/share/doc/acpid-2.0.34

Configurando "acpid"

acpid é configurado por eventos definidos pelo(a) usuário(a). Coloque os arquivos de eventos sob o diretório /etc/acpi/events. Se ocorrer um evento, [então] acpid percorre os arquivos de eventos para a finalidade de ver se a expressão regular definida depois de "event" corresponde. Se corresponder, [então] a ação é executada.

O breve exemplo a seguir suspenderá o sistema quando a tampa do laptop for fechada. O exemplo também desabilita o tratamento padrão do evento de fechamento da tampa pelo Systemd-254 quando o sistema estiver funcionando com bateria e não conectado a nenhum monitor externo, para a finalidade de evitar um conflito:

cat > /etc/acpi/events/lid << "EOF"
event=button/lid
action=/etc/acpi/lid.sh
EOF

cat > /etc/acpi/lid.sh << "EOF"
#!/bin/sh
/bin/grep -q open /proc/acpi/button/lid/LID/state && exit 0
/usr/bin/systemctl suspend
EOF
chmod +x /etc/acpi/lid.sh

mkdir -pv /etc/systemd/logind.conf.d
echo HandleLidSwitch=ignore > /etc/systemd/logind.conf.d/acpi.conf

Infelizmente, nem todos os computadores rotulam os eventos ACPI da mesma maneira (por exemplo, a tampa possivelmente seja reconhecida como LID0 em vez de LID). Para determinar como teus botões são reconhecidos, use a ferramenta acpi_listen. Além disso, procure no diretório samples sob /usr/share/doc/acpid-2.0.34 para mais exemplos.

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-20230816 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 corretamente usando uma plataforma LFS 12.0.

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

Observações de Editor(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"
# Inicia /etc/pam.d/atd

auth     required pam_unix.so
account  required pam_unix.so
password required pam_unix.so
session  required pam_unix.so

# Termina /etc/pam.d/atd
EOF

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "Autofs"

Exigidas

libtirpc-1.3.3 e rpcsvc-proto-1.4.4

Opcionais

nfs-utils-2.6.3, libnsl-2.0.0, libxml2-2.10.4, MIT Kerberos V5-1.21.2, OpenLDAP-2.6.6 (somente o cliente) e Cyrus SASL-2.1.28

Configuração do Núcleo

Verifique se o suporte de núcleo "automounter" foi habilitado:

File systems --->
  <*/M> Kernel automounter support (supports v3, v4 and v5)          [AUTOFS_FS]

Opcionalmente, habilite as seguintes opções na configuração do núcleo:

File systems --->
  [*] Network File Systems --->                            [NETWORK_FILESYSTEMS]
    <*/M> NFS client support                                            [NFS_FS]
    <*/M> SMB3 and CIFS support (advanced network filesystem)             [CIFS]

Recompile e instale o novo núcleo, se necessário.

Instalação do "Autofs"

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

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

Introdução a "BlueZ"

O pacote BlueZ contém a pilha de protocolos "Bluetooth" para Linux.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP): https://www.kernel.org/pub/linux/bluetooth/bluez-5.68.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 00a72fed12e706b2d8bb40786154d3aa

  • Tamanho da transferência: 2,2 MB

  • Espaço em disco estimado exigido: 158 MB (com testes)

  • Tempo de construção estimado: 0,4 UPC (usando paralelismo = 4; com os testes)

Dependências do "BlueZ"

Exigidas

dbus-1.14.8, GLib-2.76.4 e libical-3.0.16

Opcionais

docutils-0.20.1 (para gerar páginas de manual)

Configuração do Núcleo

Se você estiver construindo esse pacote para usar dispositivos "bluetooth" (em vez de uma dependência de construção), [então] habilite as seguintes opções na configuração do núcleo, também as opções na seção Cryptographic API se você pretende executar os testes e recompile o núcleo, se necessário:

General setup --->
  # If it is disabled, [TIMERFD] and [EVENTFD] will be hidden and
  # enabled implicitly.  We DO NOT recommend to enable [EXPERT]
  # unless you are really an expert user:
  [ /*] Configure standard kernel features (expert users) --->          [EXPERT]
    [*] Enable timerfd() system call                                   [TIMERFD]
    [*] Enable eventfd() system call                                   [EVENTFD]

[*] Networking support --->                                                [NET]
  <*/M> Bluetooth subsystem support --->                                    [BT]
    [*]   Bluetooth Classic (BR/EDR) features                         [BT_BREDR]
    <*/M>   RFCOMM protocol support                                  [BT_RFCOMM]
    [*]       RFCOMM TTY support                                 [BT_RFCOMM_TTY]
    <*/M>   BNEP protocol support                                      [BT_BNEP]
    [*]       Multicast filter support                       [BT_BNEP_MC_FILTER]
    [*]       Protocol filter support                     [BT_BNEP_PROTO_FILTER]
    <*/M>   HIDP protocol support                                      [BT_HIDP]
    Bluetooth device drivers --->
      # Select the appropriate drivers for your bluetooth hardware.
      # There are more vendor-specific drivers not listed here:
      < /*/M> HCI USB driver                                       [BT_HCIBTUSB]
      < /*/M> HCI SDIO driver                                     [BT_HCIBTSDIO]
      < /*/M> HCI UART driver                                       [BT_HCIUART]
  <*/M> RF switch subsystem support --->                                [RFKILL]

-*- Cryptographic API --->                                              [CRYPTO]
  Crypto core or helper --->
    <*/M> Userspace cryptographic algorithm configuration          [CRYPTO_USER]
  Block ciphers --->
    <*/M> AES (Advanced Encryption Standard)                        [CRYPTO_AES]
  AEAD (authenticated encryption with associated data) ciphers --->
    <*/M> CCM (Counter with Cipher Block Chaining-MAC)              [CRYPTO_CCM]
  Hashes, digests, and MACs --->
    <*/M> CMAC (Cipher-based MAC)                                  [CRYPTO_CMAC]
  Userspace interface --->
    <*/M> Hash algorithms                                 [CRYPTO_USER_API_HASH]
    <*/M> Symmetric key cipher algorithms             [CRYPTO_USER_API_SKCIPHER]
    <*/M> AEAD cipher algorithms                          [CRYPTO_USER_API_AEAD]

Instalação do "BlueZ"

Instale BlueZ executando os seguintes comandos:

./configure --prefix=/usr        \
            --sysconfdir=/etc     \
            --localstatedir=/var  \
            --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.68 &&
install -v -m644 doc/*.txt /usr/share/doc/bluez-5.68

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.20.1 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.68

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.8.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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "Bubblewrap"

Opcionais

libxslt-1.1.38 (para gerar páginas de manual) e libseccomp-2.5.4 (construído com ligações "python", para testes)

Instalação do "Bubblewrap"

Instale Bubblewrap executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Em seguida, se você deseja executar a suíte de teste, corrija um problema causado pela configuração mesclada do "/usr" no LFS:

sed 's@symlink usr/lib64@ro-bind-try /lib64@' -i ../tests/libtest.sh

Para testar os resultados, emita (como um(a) usuário(a) diferente do(a) usuário(a) root): ninja test

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

Configuração do Núcleo

Quando esse pacote começou, o fluxo de desenvolvimento esperava que ele pudesse ser instalado suid-root. Isso foi há muito tempo; suid-root geralmente é considerado uma má ideia. Além dos espaços de nomes padrão, esse pacote exige que o espaço de nome opcional do(a) Usuário(a) esteja habilitado. Se isso ainda não tiver sido habilitado, selecione a seguinte opção na configuração do núcleo e recompile o núcleo:

General setup --->
  -*- Namespaces support --->                                       [NAMESPACES]
    [*] User namespace                                                 [USER_NS]

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "Colord"

Exigidas

dbus-1.14.8, GLib-2.76.4, Little CMS-2.14, Polkit-123 e SQLite-3.42.0

Recomendadas
Opcionais

gnome-desktop-44.0 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.38, SANE-1.0.32, ArgyllCMS e Bash Completion

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 setup ..                 \
      --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.11 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.14

Introdução a "cpio"

O pacote cpio contém ferramentas para arquivamento.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "CPIO"

Opcionais

texlive-20230313 (ou install-tl-unx)

Instalação do "cpio"

Instale cpio executando os seguintes comandos:

./configure --prefix=/usr \
           --enable-mt   \
           --with-rmt=/usr/libexec/rmt &&
make &&
makeinfo --html            -o doc/html      doc/cpio.texi &&
makeinfo --html --no-split -o doc/cpio.html doc/cpio.texi &&
makeinfo --plaintext       -o doc/cpio.txt  doc/cpio.texi

Se você tiver texlive-20230313 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.14/html &&
install -v -m644   doc/html/* \
                    /usr/share/doc/cpio-2.14/html &&
install -v -m644    doc/cpio.{html,txt} \
                    /usr/share/doc/cpio-2.14

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

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

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "cups-pk-helper"

Exigidas

Cups-2.4.6 e Polkit-123

Observações de Editor(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 setup --prefix=/usr .. &&
ninja

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

ninja install

Conteúdo

Aplicativos Instalados: cups-pk-helper-mechanism (executável da biblioteca)
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: Nenhum(a)

dbus-1.14.8

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP): https://dbus.freedesktop.org/releases/dbus/dbus-1.14.8.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: da42f55aeec51b355587bc3062fc2d41

  • 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,6 UPC para testes)

Dependências do "D-Bus"

Recomendadas
Opcionais

Systemd-254 (para registrar serviços iniciados pelo processo de segundo plano de sessão D-Bus como serviços de usuário(a) systemd); Para os testes: D-Bus Python-1.3.2, PyGObject-3.44.1 e Valgrind-3.21.0; para documentação: Doxygen-1.9.7, xmlto-0.0.28, Ducktype e Yelp Tools

Observações de Editor(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.8  \
            --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

Muitos testes são desabilitados, a menos que D-Bus Python-1.3.2 e PyGObject-3.44.1 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 quaisquer pacotes instalarem um arquivo .service do D-Bus fora do diretório padrão /usr/share/dbus-1/services, esse diretório deveria ser adicionado à configuração local da sessão. Por exemplo, /usr/local/share/dbus-1/services pode ser adicionado realizando-se os seguintes comandos como o(a) usuário(a) root:

cat > /etc/dbus-1/session-local.conf << "EOF"
<!DOCTYPE busconfig PUBLIC
 "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
 "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
<busconfig>

 <!-- Search for .service files in /usr/local -->
 <servicedir>/usr/local/share/dbus-1/services</servicedir>

</busconfig>
EOF

Processo de Segundo Plano de Sessão do "D-Bus"

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/12.0-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 corretamente usando uma plataforma LFS 12.0.

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.1677), Linux-PAM-1.5.3 e DocBook-utils-0.6.14

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Transferências Adicionais

Observações de Editor(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 --->
    -*-   Generic input layer (needed for keyboard, mouse, ...)          [INPUT]
    <*/M>   Mouse interface                                     [INPUT_MOUSEDEV]

Instalação do "GPM"

Instale GPM executando os seguintes comandos:

patch -Np1 -i ../gpm-1.20.7-consolidated-1.patch &&
./autogen.sh                                    &&
./configure --prefix=/usr --sysconfdir=/etc      &&
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-20230816 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 corretamente usando uma plataforma LFS 12.0.

Atenção

Além de ser útil, o uso incorreto do Hdparm pode destruir suas informações e, em casos raros, unidades. Use com cuidado e certifique-se de saber o que está fazendo. Se em dúvida, [então] é recomendado que você deixe os parâmetros padrão do núcleo em paz.

Informação do Pacote

  • Transferência (HTTP): https://downloads.sourceforge.net/hdparm/hdparm-9.65.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 6d6d039d61ec995b1ec72ddce0b1853b

  • Tamanho da transferência: 140 KB

  • Espaço em disco estimado exigido: 1,0 MB

  • Tempo de construção estimado: menos que 0,1 UPC

Instalação do "Hdparm"

Construa o Hdparm executando o seguinte comando:

make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make binprefix=/usr install

Conteúdo

Aplicativo Instalado: hdparm
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: Nenhum(a)

Descrições Curtas

hdparm

fornece uma interface de linha de comando para vários "ioctls" de disco rígido suportados pelo subsistema padrão de controlador de dispositivo "ATA"/"IDE" do Linux

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

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 corretamente usando uma plataforma LFS 12.0.

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)

Configuração do Núcleo

As opções de configuração a seguir tentam abranger os dispositivos de monitoramento de hardware mais comuns em um sistema típico de área de trabalho ou laptop. Veja-se a ajuda de cada uma (pressionando o botão H com a opção focada em make menuconfig) para saber se você precisa dela. Existem muitos dispositivos de monitoramento de hardware específicos da plataforma, de forma que é impossível listar a configuração de todos eles aqui. Você pode investigar o conteúdo de /sys/class/hwmon dentro de uma distribuição mainstream em execução no sistema para saber quais controladores você precisa.

Power management and ACPI options --->
  [*] ACPI (Advanced Configuration and Power Interface) Support --->      [ACPI]
    < /*/M> Battery                                               [ACPI_BATTERY]
    < /*/M> Thermal Zone                                          [ACPI_THERMAL]

Device Drivers --->
  NVME Support --->
    < /*> NVM Express block device                                [BLK_DEV_NVME]
    # Set [HWMON] to <*> (not <M>!) or it will not show up:
    [ /*] NVMe hardware monitoring                                  [NVME_HWMON]
  <*/M> Hardware Monitoring support --->                                 [HWMON]
    < /*/M> AMD Athlon64/FX or Opteron temperature sensor       [SENSORS_K8TEMP]
    < /*/M> AMD Family 10h+ temperature sensor                 [SENSORS_K10TEMP]
    < /*/M> AMD Family 15h processor power                [SENSORS_FAM15H_POWER]
    < /*/M> Intel Core/Core2/Atom temperature sensor          [SENSORS_CORETEMP]

Recompile teu núcleo e reinicialize no novo núcleo.

Instalação do "Lm_sensors"

Instale Lm_sensors executando os seguintes comandos:

make PREFIX=/usr       \
     BUILD_STATIC_LIB=0 \
     MANDIR=/usr/share/man

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

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "Logrotate"

Exigidas

popt-1.19

Opcionais

Um MTA (tempo de execução)

Instalação do "Logrotate"

Instale logrotate executando o seguinte comando:

./configure --prefix=/usr &&
make

Para testar os resultados, emita: make test. 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.30

Introdução ao "MC"

MC (Midnight Commander) é um gerenciador de arquivos em tela cheia em modo texto e shell visual. Ele fornece uma interface clara, amigável e um tanto protegida para um sistema Unix, ao mesmo tempo que torna muitas operações frequentes de arquivos mais eficientes e preserva todo o poder do prompt de comando.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "MC"

Exigidas

GLib-2.76.4

Recomendadas
Opcionais

Doxygen-1.9.7, GPM-1.20.7, Graphviz-8.1.0, libssh2-1.11.0, PCRE-8.45, pcre2-10.42, Ruby-3.2.2, UnZip-6.0, um ambiente gráfico e Zip-3.0

Instalação do "MC"

Instale MC executando os seguintes comandos:

./configure --prefix=/usr \
           --sysconfdir=/etc \
           --enable-charset &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--sysconfdir=/etc: Essa chave coloca o diretório global de configuração em /etc.

--enable-charset: Essa chave adiciona suporte ao mcedit para edição de arquivos em codificações diferentes daquela implícita na localidade atual.

--with-search-engine=pcre2: Use essa chave se você preferisse usar pcre2-10.42 em vez de GLib para o mecanismo de pesquisa integrado . Alternativamente, você pode passar 'pcre' em vez de 'pcre2' se preferir usar PCRE-8.45.

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

mc

é um shell visual

mcdiff

é uma ferramenta interna visual de comparação

mcedit

é um editor interno de arquivos

mcview

é um visualizador interno de arquivos

ModemManager-1.18.12

Introdução ao "ModemManager"

ModemManager fornece uma API unificada de alto nível para comunicação com modems de banda larga móvel, independentemente do protocolo usado para comunicação com o dispositivo real.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "ModemManager"

Exigidas

libgudev-238

Recomendadas
Opcionais

GTK-Doc-1.33.2

Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/ModemManager

Instalação do "ModemManager"

Instale ModemManager executando os seguintes comandos:

./configure --prefix=/usr                \
            --sysconfdir=/etc             \
            --localstatedir=/var          \
            --disable-static              \
            --disable-maintainer-mode     \
            --with-systemd-journal        \
            --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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "Notification Daemon"

Exigidas

GTK+-3.24.38 e libcanberra-0.30 (Construído com suporte a GTK+-3.24.38).

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

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "p7zip"

Opcionais

wxWidgets

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Instalação do "Pax"

Instale o "pax" executando os seguintes comandos:.

Nota

Esse pacote expande para o diretório pax.

bash Build.sh

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

Nota

Esse pacote também cria links rígidos a partir do pax para os aplicativos cpio e tar no diretório de construção. Os(As) editores(as) do LFS não recomendam que eles sejam instalados, pois sobrescreverão as versões "GNU" desses aplicativos.

install -v pax /usr/bin &&
install -v -m644 pax.1 /usr/share/man/man1

Conteúdo

Aplicativo Instalado: pax

Descrições Curtas

pax

copia arquivos de e para arquivamentos em vários formatos

pciutils-3.10.0

Introdução ao "PCI Utils"

O pacote PCI Utils contém um conjunto de aplicativos para listar dispositivos "PCI", inspecionar a situação deles e configurar os registros de configuração deles.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP): https://mj.ucw.cz/download/linux/pci/pciutils-3.10.0.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: ca53b87d2a94cdbbba6e09aca90924bd

  • Tamanho da transferência: 912 KB

  • Espaço em disco estimado exigido: 5,7 MB

  • Tempo de construção estimado: menos que 0,1 UPC

Dependências do "PCI Utils"

Recomendadas

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-8.2.1, Lynx-2.8.9rel.1 ou o Wget-1.21.4 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.

Nota

Em um sistema que usa systemd como sistema de inicialização, systemd já fornece essa funcionalidade. Como resultado, esse pacote provavelmente não é necessário e possivelmente conflite com o systemd. Leia-se a documentação para suspend.target e hibernate.target na página de manual systemd.special(7) para mais detalhes.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Transferências Adicionais

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

Configuração do Núcleo

Se necessário, habilite as seguintes opções na configuração do núcleo e recompile o núcleo:

Power management and ACPI options --->
  [*] Suspend to RAM and standby                                       [SUSPEND]
  [*] Hibernation (aka 'suspend to disk')                          [HIBERNATION]

Suspender para "RAM" permite que o sistema entre em estados de suspensão nos quais a memória principal é alimentada e, portanto, o conteúdo dela é preservado. O método corta a eletricidade da maioria das partes da máquina, exceto a "RAM". Devido à grande economia de eletricidade, é aconselhável para "laptops" para entrarem automaticamente nesse modo quando o computador estiver funcionando com baterias e a tampa estiver fechada (ou o(a) usuário(a) estiver inativo(a) por algum tempo).

Suspender no disco (hibernação) salva o estado da máquina no espaço de troca e desliga completamente a máquina. Quando a máquina for ligada, o estado é restaurado. Até então, existe consumo zero de eletricidade. A suspensão para "RAM" e a hibernação são normalmente apropriadas para dispositivos portáteis, como "laptops", mas podem ser usadas em estações de trabalho. A capacidade não é realmente apropriada para servidores.

Para usar a hibernação, o parâmetro do núcleo "resume=/dev/<partição_de_troca>" tem de ser usado na linha de comando do núcleo (no "grub.cfg"). A partição de troca deveria ser, pelo menos, do tamanho da "RAM" física no sistema.

Instalação dos Utilitários de Gerenciamento de Eletricidade

Primeiro, corrija vários defeitos e algumas incompatibilidades com núcleos mais recentes:

patch -Np1 -i ../pm-utils-1.4.1-bugfixes-1.patch

Instale os Utilitários de Gerenciamento de Eletricidade executando os seguintes comandos:

./configure --prefix=/usr    \
            --sysconfdir=/etc \
            --docdir=/usr/share/doc/pm-utils-1.4.1 &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Se você não tiver xmlto-0.0.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.16

Introdução ao "Raptor"

Raptor é uma biblioteca C que fornece um conjunto de analisadores e serializadores que geram triplos "Resource Description Framework" ("RDF").

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP): https://download.librdf.org/source/raptor2-2.0.16.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 0a71f13b6eaa0a04bf411083d89d7bc2

  • Tamanho da transferência: 1,7 MB

  • Espaço em disco estimado exigido: 25 MB (adicionais 2 MB para os testes)

  • Tempo de construção estimado: 0,1 UPC (adicionais 0,3 UPC para os testes)

Dependências do "Raptor"

Exigidas

cURL-8.2.1 e libxslt-1.1.38

Opcionais

GTK-Doc-1.33.2, ICU-73.2 e libyajl

Instalação do "Raptor"

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-73.2 e desejar construir o Raptor com suporte a ele.

Conteúdo

Aplicativos Instalados: rapper
Bibliotecas Instaladas: libraptor2.so
Diretórios Instalados: /usr/include/raptor2 e /usr/share/gtk-doc/html/raptor2

Descrições Curtas

rapper

é um utilitário de análise e serialização "RDF"

libraptor2.so

contém as funções da "API" do Raptor

Rasqal-0.9.33

Introdução ao "Rasqal"

Rasqal é uma biblioteca C que lida com sintaxes de linguagem de consulta "Resource Description Framework" ("RDF"), construção de consultas e execução de consultas que retornam resultados como ligações, booleanos, gráficos/triplos "RDF" ou sintaxes.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP): https://download.librdf.org/source/rasqal-0.9.33.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 1f5def51ca0026cd192958ef07228b52

  • Tamanho da transferência: 1,6 MB

  • Espaço em disco estimado exigido: 22 MB (4 MB adicionais para os testes)

  • Tempo de construção estimado: 0,3 UPC (0,7 UPC adicionais para os testes)

Dependências do "Rasqal"

Exigidas

Raptor-2.0.16

Opcionais

PCRE-8.45 e libgcrypt-1.10.2

Instalação do "Rasqal"

Instale Rasqal executando os seguintes comandos:

./configure --prefix=/usr --disable-static &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Conteúdo

Aplicativos Instalados: rasqal-config e roqet
Biblioteca Instalada: librasqal.so
Diretórios Instalados: /usr/include/rasqal e /usr/share/gtk-doc/html/rasqal

Descrições Curtas

rasqal-config

é um utilitário para recuperar as opções de instalação do Rasqal

roqet

é um utilitário de consulta "RDF"

Redland-1.0.17

Introdução ao "Redland"

Redland é um conjunto de bibliotecas C de software livre que fornece suporte para o "Resource Description Framework" ("RDF").

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

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.42.0, MariaDB-10.11.4 ou MySQL, PostgreSQL-15.4, virtuoso e 3store

Instalação do "Redland"

Instale Redland executando os seguintes comandos:

./configure --prefix=/usr --disable-static &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Conteúdo

Aplicativos Instalados: rdfproc, redland-config e redland-db-upgrade
Bibliotecas Instaladas: librdf.so e /usr/lib/redland/librdf_storage_*.so
Diretórios Instalados: /usr/lib/redland, /usr/share/gtk-doc/html/redland e /usr/share/redland

Descrições Curtas

rdfproc

é o utilitário do processador de "RDF" "Redland"

redland-config

é um script para obter informações relativas à versão instalada do "Redland"

redland-db-upgrade

atualiza bases de dados "Redland" mais antigas para o formato 0.9.12

sg3_utils-1.48

Introdução ao "sg3_utils"

O pacote sg3_utils contém utilitários de baixo nível para dispositivos que usam um conjunto de comandos "SCSI". Além dos dispositivos de interface paralela "SCSI" ("SPI"), o conjunto de comandos "SCSI" é usado por dispositivos "ATAPI" (CD/DVDs e fitas), dispositivos de armazenamento em massa "USB", discos de Canal de Fibra, dispositivos de armazenamento "IEEE" 1394 (que usam o protocolo "SBP"), Dispositivos "SAS", "iSCSI" e "FCoE" (entre outros).

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP): https://sg.danny.cz/sg/p/sg3_utils-1.48.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 0024393d2d2942cc081ce613d98db68a

  • Tamanho da transferência: 1,2 MB

  • Espaço em disco estimado exigido: 27 MB

  • Tempo de construção estimado: 0,2 UPC

Instalação do "sg3_utils"

Instale sg3_utils executando os seguintes comandos:

./configure --prefix=/usr --disable-static &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Conteúdo

Aplicativos Instalados: rescan-scsi-bus.sh, scsi_logging_level, scsi_mandat, scsi_readcap, scsi_ready, scsi_satl, scsi_start, scsi_stop, scsi_temperature, sg_bg_ctl, sg_compare_and_write, sg_copy_results, sg_dd, sg_decode_sense, sg_emc_trespass, sg_format, sg_get_config, sg_get_lba_status, sg_ident, sg_inq, sg_logs, sg_luns, sg_map, sg_map26, sg_modes, sg_opcodes, sg_persist, sg_prevent, sg_raw, sg_rbuf, sg_rdac, sg_read, sg_read_attr, sg_read_block_limits, sg_read_buffer, sg_read_long, sg_readcap, sg_reassign, sg_referrals, sg_rep_pip, sg_rep_zones, sg_requests, sg_reset, sg_reset_wp, sg_rmsn, sg_rtpg, sg_safte, sg_sanitize, sg_sat_identify, sg_sat_phy_event, sg_sat_read_gplog, sg_sat_set_features, sg_scan, sg_seek, sg_senddiag, sg_ses, sg_ses_microcode, sg_start, sg_stpg, sg_stream_ctl, sg_sync, sg_test_rwbuf, sg_timestamp, sg_turs, sg_unmap, sg_verify, sg_vpd, sg_wr_mode, sg_write_buffer, sg_write_long, sg_write_same, sg_write_verify, sg_write_x, sg_xcopy, sg_zone, sginfo, sgm_dd e sgp_dd
Biblioteca Instalada: libsgutils2.so
Diretórios Instalados: Nenhum

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "Sysstat"

Instalação do "Sysstat"

Instale Sysstat executando os seguintes comandos:

sa_lib_dir=/usr/lib/sa   \
sa_dir=/var/log/sa        \
conf_dir=/etc/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-254

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP): https://github.com/systemd/systemd/archive/v254/systemd-254.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 0d266e5361dc72097b6c18cfde1c0001

  • Tamanho da transferência: 14 MB

  • Espaço em disco estimado exigido: 198 MB (com testes)

  • Tempo de construção estimado: 3,7 UPC (com testes usando quatro elementos de processamento da CPU)

Dependências do "systemd"

Recomendadas

Nota

Linux-PAM-1.5.3 não é estritamente necessário para construir o systemd, mas é o principal motivo para reconstruir o systemd no BLFS (ele já está construído no LFS de qualquer maneira) é para o processo de segundo plano systemd-logind e o módulo PAM pam_systemd.so. Linux-PAM-1.5.3 é exigido para eles. Todos os pacotes no livro BLFS com dependência do systemd esperam que tenham sido reconstruídos com Linux-PAM-1.5.3.

Opcionais

btrfs-progs-6.3.3, cURL-8.2.1, cryptsetup-2.4.3, git-2.41.0, GnuTLS-3.8.1, iptables-1.8.9, libgcrypt-1.10.2, libidn2-2.3.4, libpwquality-1.4.5, libseccomp-2.5.4, libxkbcommon-1.5.0, make-ca-1.12, p11-kit-0.25.0, pcre2-10.42, qemu-8.1.0, qrencode-4.1.1, rsync-3.2.7, sphinx-7.1.2, Valgrind-3.21.0, zsh-5.9 (para as completações do zsh), AppArmor, audit-userspace, bash-completion, jekyll, kexec-tools, libbpf, libdw, libfido2, libmicrohttpd, lz4, pyelftools, quota-tools, rpm, SELinux, systemtap, tpm2-tss e Xen

Opcional (para reconstruir as páginas de manual)

docbook-xml-4.5, docbook-xsl-nons-1.79.2, libxslt-1.1.38 e lxml-4.9.3 (para construir o índice das páginas de manual do "systemd")

Instalação do "systemd"

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 setup ..                \
      --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 \
      -Ddev-kvm-mode=0660     \
      -Ddocdir=/usr/share/doc/systemd-254 &&

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: ninja test. Os testes chamados test-stat-util e test-netlink são conhecidos por falharem se alguns recursos do núcleo não estiverem habilitados. Se a suíte de teste for executada como o(a) usuário(a) root, alguns outros testes possivelmente falhem, porque dependem de várias opções de configuração do núcleo.

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/12.0-systemd/chapter08/systemd.html#contents-systemd.

Listados abaixo estão os aplicativos recém-instalados, juntamente com descrições curtas.

Aplicativos Instalados: homectl (opcional), systemd-cryptenroll (se cryptsetup-2.4.3 estiver instalado) e userdbctl (opcional)

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

Introdução ao "UDisks"

O pacote UDisks fornece um processo de segundo plano, ferramentas e bibliotecas para acessar e manipular discos e dispositivos de armazenamento.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "UDisks"

Exigidas

libatasmart-0.19, libblockdev-3.0.2, libgudev-238, libxslt-1.1.38 e Polkit-123

Recomendadas
Opcionais (Exigidas se construir "GNOME")

gobject-introspection-1.76.1

Opcionais

D-Bus Python-1.3.2 (para os testes de integração), GTK-Doc-1.33.2, LVM2-2.03.22, PyGObject-3.44.1 (para os testes de integração), exFAT e libiscsi

Dependências Opcionais de Tempo de Execução

btrfs-progs-6.3.3, dosfstools-4.2, gptfdisk-1.0.9, mdadm-4.2 e xfsprogs-6.4.0

Instalação do "UDisks"

Instale UDisks executando os seguintes comandos:

./configure --prefix=/usr        \
            --sysconfdir=/etc    \
            --localstatedir=/var \
            --disable-static     \
            --enable-available-modules &&
make

Para testar os resultados, emita: make check. Um teste mais completo pode ser executado com make ci. Você precisa primeiro criar os diretórios /var/run/udisks2 e /var/lib/udisks2, e os módulos opcionais "python" deveriam estar presente.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

--enable-gtk-doc: Use esse parâmetro se GTK-Doc estiver instalado e você desejar reconstruir e instalar a documentação da API.

--enable-available-modules: Essa chave habilita funcionalidades adicionais do UDisks2 se libblockdev-3.0.2 tiver sido construído com dependências opcionais.

Conteúdo

Aplicativos Instalados: "udisksctl" e "umount.udisks2"
Biblioteca Instalada: libudisks2.so
Diretórios Instalados: /etc/udisks2, /usr/include/udisks2, /usr/libexec/udisks2, /usr/share/gtk-doc/html/udisks2 e /var/lib/udisks2

Descrições Curtas

udisksctl

é um aplicativo de linha de comando usado para interagir com o processo de segundo plano udisksd

umount.udisks2

é um aplicativo de linha de comando usado para desmontar sistemas de arquivos que tenham sido montados pelo processo de segundo plano UDisks

libudisks2.so

contém as funções da "API" do UDisks

UnRar-6.2.10

Introdução ao "UnRar"

O pacote UnRar contém um utilitário de extração RAR usado para extrair arquivos a partir de arquivamentos RAR. Arquivamentos RAR geralmente são criados com WinRAR, principalmente em um ambiente "Windows".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP): https://www.rarlab.com/rar/unrarsrc-6.2.10.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 0ab6486347a084e3c5759f4bbf02042f

  • Tamanho da transferência: 244 KB

  • Espaço em disco estimado exigido: 2,3 MB

  • Tempo de construção estimado: 0,1 UPC

Instalação do "UnRar"

Nota

Esse pacote extrai o "tarball" para o diretório não versionado unrar e não para o diretório esperado unrar-6.2.10.

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 corretamente usando uma plataforma LFS 12.0.

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ência (HTTP): https://downloads.sourceforge.net/infozip/unzip60.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 62b490407489521db863b523a7f86375

  • Tamanho da transferência: 1,3 MB

  • Espaço em disco estimado exigido: 9 MB

  • Tempo de construção estimado: menos que 0,1 UPC

Transferências Adicionais

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.7.1 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 conjunto de comandos sequenciais de configuração (ao contrário dos alvos mais antigos, como linux e linux_noasm), o qual 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 que 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.2

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "UPower"

Exigidas

libgudev-238 e libusb-1.0.26

Opcionais (Exigidas se construir GNOME)

gobject-introspection-1.76.1

Opcionais

GTK-Doc-1.33.2, libxslt-1.1.38, docbook-xsl-nons-1.79.2, PyGObject-3.44.1, dbusmock-0.29.1, umockdev-0.17.18 (para parte da suíte de teste) e libimobiledevice

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 --->                                       [NAMESPACES]
    [*] User namespace                                                 [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 setup ..            \
      --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. Dois testes relacionados ao recurso hotplug do fone de ouvido são conhecidos por falharem; eles podem ser seguramente ignorados, pois a funcionalidade do fone de ouvido ainda funciona.

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.38 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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "USB Utils"

Exigidas

libusb-1.0.26

Recomendadas

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.4, 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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

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 e aplicativos Mozilla ainda precisam dessas chaves agora, de forma que eles exigem essa versão antiga para regenerar os conjuntos de comandos sequenciais de configuração. Ao contrário de outros aplicativos Mozilla, os tarballs de lançamento do SeaMonkey não contém os conjuntos de comandos sequenciais pré gerados de configuração, de forma que essa versão antiga é exigida mesmo se os arquivos de configuração não tiverem sido mudados.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Transferências Adicionais

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 corretamente usando uma plataforma LFS 12.0.

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

Nota

Uma conexão com a Internet é necessária para construir esse pacote.

Instalação do "cbindgen"

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Transferências Adicionais

Dependências do "Clisp"

Recomendadas
Opcionais

libnsl-2.0.0 e libffcall

Instalação do "Clisp"

Nota

Esse pacote não suporta construção paralela.

Se você estiver construindo em um sistema de 32 bits, [então] contorne um defeito no "GCC" causado pela versão mais recente do "binutils":

case $(uname -m) in
   i?86) export CFLAGS="${CFLAGS:--O2 -g} -falign-functions=4" ;;
esac

Remova dois testes que falham por motivos desconhecidos:

sed -i -e '/socket/d' -e '/"streams"/d' tests/tests.lisp

Instale Clisp executando os seguintes comandos:

Se você estiver construindo clisp contra a libffcall, [então] aplique o remendo para corrigir uma falha de construção com a readline atual:

patch -Np1 -i ../clisp-2.49-readline7_fixes-1.patch

Instale Clisp executando os seguintes comandos:

mkdir build &&
cd   build &&

../configure --srcdir=../                       \
             --prefix=/usr                      \
             --docdir=/usr/share/doc/clisp-2.49 \
             --with-libsigsegv-prefix=/usr &&

ulimit -s 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.27.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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP): https://cmake.org/files/v3.27/cmake-3.27.2.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5da transferência: 07786cd23c3d0aa9c2fef69efb13662b

  • Tamanho da transferência: 10 MB

  • Espaço em disco estimado exigido: 424 MB (adicionar 1,2 GB para testes)

  • Tempo de construção estimado: 2,0 UPC (adicionar 3,2 UPC para testes, ambos usando paralelismo=4)

Dependências do "CMake"

Recomendadas
Opcionais

GCC-13.2.0 (para gfortran), git-2.41.0 (para uso durante testes), Mercurial-6.5.1 (para uso durante testes), (Qt-5.15.10 ou qt-alternate-5.15.10) (para a GUI baseada em Qt), sphinx-7.1.2 (para construir documentos), Subversion-1.14.2 (para testagem), cppdap, jsoncpp e rhash

Instalação do "CMake"

Instale CMake executando os seguintes comandos:

sed -i '/"lib64"/s/64//' Modules/GNUInstallDirs.cmake &&

./bootstrap --prefix=/usr        \
            --system-libs        \
            --mandir=/share/man  \
            --no-system-jsoncpp  \
            --no-system-cppdap   \
            --no-system-librhash \
            --docdir=/share/doc/cmake-3.27.2 &&
make

Para testar os resultados, emita: LC_ALL=en_US.UTF-8 bin/ctest -j<N> -O cmake-3.27.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.

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 e --no-system-cppdap: Essas chaves removem a biblioteca JSON-C++ da lista de bibliotecas do sistema. Uma versão empacotada dessa biblioteca é usada em lugar dela.

--no-system-librhash: Essa chave remove a biblioteca librhash da lista de bibliotecas do sistema usadas. Uma versão empacotada dessa biblioteca é usada em lugar dela.

--no-system-{curl,libarchive,libuv,nghttp2}: Use a opção correspondente na lista para o bootstrap se uma das dependências recomendadas não estiver instalada. Uma versão empacotada da dependência será usada em lugar dela.

--qt-gui: Essa chave habilita construir a "GUI" baseada em Qt para CMake.

--parallel=: Essa chave 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.27 e /usr/share/doc/cmake-3.27.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.7

Introdução ao "Doxygen"

O pacote Doxygen contém um sistema de documentação para "C++", "C", "Java", "Objective-C", "Corba IDL" e, até certo ponto, "PHP", "C#" e "D". É útil para gerar documentação "HTML" e(ou) manual de referência fora de linha a partir de um conjunto de arquivos fonte documentados. Também existe suporte para gerar saída em "RTF", "PostScript", "PDF" com hiperlink, "HTML" compactado e páginas de manual "Unix". A documentação é extraída diretamente dos fontes, o que torna muito mais fácil manter a documentação consistente com o código-fonte.

Você também pode configurar o Doxygen para extrair a estrutura do código a partir de arquivos fonte não documentados. Isso é muito útil para encontrar rapidamente seu caminho em grandes distribuições de fontes. Usado junto com Graphviz, você também consegue visualizar as relações entre os vários elementos por meio de gráficos de dependência, diagramas de herança e diagramas de colaboração, todos gerados automaticamente.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP): https://doxygen.nl/files/doxygen-1.9.7.src.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 95008edf2d84aeefb7c65a6a4857dc2c

  • Tamanho da transferência: 5,5 MB

  • Espaço em disco estimado exigido: 240 MB (com testes)

  • Tempo de construção estimado: 1,6 UPC (usando paralelismo = 4; com testes)

Dependências do "Doxygen"

Exigidas

CMake-3.27.2 e git-2.41.0

Opcionais

Graphviz-8.1.0, ghostscript-10.01.2, libxml2-2.10.4 (exigido para os testes), LLVM-16.0.5 (com clang), (Qt-5.15.10 ou qt-alternate-5.15.10) (para doxywizard), texlive-20230313 (ou install-tl-unx), xapian-1.4.23 (para doxyindexer) e javacc

Instalação do "Doxygen"

Nota

Ao desempacotar esse pacote, você poderá ver mensagens como Ignoring unknown extended header keyword 'LIBARCHIVE.xattr.com.apple.TextEncoding'. Essas mensagens são inofensivas e podem ser seguramente ignoradas.

Primeiro, corrija alguns conjuntos de comandos sequenciais python:

grep -rl '^#!.*python$' | xargs sed -i '1s/python/&3/'

Instale Doxygen executando os seguintes comandos:

mkdir -v build &&
cd      build &&

cmake -G "Unix Makefiles"         \
      -DCMAKE_BUILD_TYPE=Release  \
      -DCMAKE_INSTALL_PREFIX=/usr \
      -Wno-dev .. &&

make

Para testar os resultados, emita: make tests. Um teste, 061_U��nicod���_file, é conhecido por falhar.

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.7 -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-20230313 instalado. Se precisar de fórmulas para converter arquivos "PostScript" para "bitmaps", então você precisa ter o ghostscript-10.01.2 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.7

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

Introdução ao GCC

O pacote GCC contém a GNU Compiler Collection. Esta página descreve a instalação de compiladores para as seguintes linguagens: C, C++, Fortran, Objective C, Objective C++, Go e Modula2. Como C e C++ são instalados no LFS, esta página é tanto para atualizar C e C++ quanto para instalar compiladores adicionais.

Nota

Linguagens adicionais, entre as quais D e Ada, estão disponíveis na coleção. D e Ada tem um requisito de instruções iniciais de carregamento de binário para a primeira instalação, de modo que a instalação deles não está descrita aqui. Para instalá-los, você pode proceder da mesma forma abaixo depois de instalar o compilador correspondente a partir de um pacote binário, adicionando ada ou d à linha --enable-languages.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Cuidado

Se você estiver atualizando o GCC a partir de qualquer outra versão anterior ao 13.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.

Informação do Pacote

Dependências do GCC

Opcionais

GDB-13.2, Valgrind-3.21.0 (para os testes) e ISL (para habilitar a otimização "graphite")

Observações de Editor(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/12.0-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 o GCC executando os seguintes comandos:

case $(uname -m) in
  x86_64)
    sed -i.orig '/m64=/s/lib64/lib/' gcc/config/i386/t-linux64
  ;;
esac

mkdir build               &&
cd    build               &&

../configure              \
    --prefix=/usr         \
    --disable-multilib    \
    --with-system-zlib    \
    --enable-default-pie  \
    --enable-default-ssp  \
    --disable-fixincludes \
    --enable-languages=c,c++,fortran,go,objc,obj-c++,m2 &&
make

Se você tiver instalado pacotes adicionais, como valgrind e gdb, a parte gcc da suíte de teste executará mais testes que no LFS. Alguns deles informarão FAIL e outros XPASS (aprovados quando esperado FAIL). A partir do gcc-13.2.0, cerca de sessenta e cinco (65) FAIL ocorrem na suíte guality, bem como falhas diversas em todo o resto da suíte de teste. Se todos os compiladores acima forem construídos, existirão um pouco mais que oitenta (80) falhas inesperadas em mais que quinhentos e quarenta e seis mil (546.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/13.2.0/include{,-fixed}

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++,m2: Esse comando identifica quais linguagens construir. Você pode modificar esse comando para remover linguagens indesejadas. A GCC também suporta Ada e D, mas construir a GCC com suporte a Ada (ou D) precisa de um compilador Ada (ou D) existente. Portanto, eles não estão habilitados aqui.

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.

--enable-host-shared --enable-languages=jit: Construir libgccjit, uma biblioteca para incorporar a GCC em aplicativos e bibliotecas para gerar código de máquina . Apesar do JIT (just-in-time) no nome, a biblioteca também pode ser usada para compilação AOT (ahead-of-time). --enable-host-shared é necessário para construir libgccjit, mas retarda significativamente a GCC. Portanto libgccjit deveria ser construída e instalada separadamente, não como parte da instalação principal da GCC. Se você precisar dessa biblioteca, configure a GCC com essas duas opções e instale a biblioteca executando make -C gcc jit.install-common jit.install-info como o(a) usuário(a) root. Essa biblioteca não é usada por nenhum pacote do BLFS, nem testada pelos(as) desenvolvedores(as) do BLFS.

Conteúdo

Alguns nomes e descrições de aplicativos e bibliotecas não estão listados aqui, mas podem ser encontrados na seção do LFS para "GCC", já que foram inicialmente instalados durante a construção do LFS.

Aplicativos Instalados: gccgo, gfortran, gm2, go e gofmt, rigidamente vinculados a nomes específicos de arquitetura
Bibliotecas Instaladas: libgfortran.{so,a}, libgm2.{so,a}, libgo.{so,a}, libgobegin.a, libgolibbegin.a, libobjc.{so,a} e numerosos(as) outros(as) bibliotecas e executáveis de tempo de execução
Diretórios Instalados: /usr/lib/go

Descrições Curtas

gccgo

é um compilador baseado na GCC para a linguagem Go

gm2

é um compilador baseado na GCC para a linguagem Modula-2

go

é uma ferramenta para gerenciar o código-fonte da Go

gofmt

é uma ferramenta para formatar o código-fonte da Go

gfortran

é um compilador baseado na GCC para a linguagem Fortran

GC-8.2.4

Introdução ao "GC"

O pacote GC contém o coletor conservador de lixo Boehm-Demers-Weiser, que pode ser usado como um substituto da coleta de lixo para a função "malloc" da "C" ou o novo operador da "C++". Ele permite que você aloque memória basicamente como faria normalmente, sem desalocar explicitamente a memória que não é mais útil. O coletor recicla automaticamente a memória quando determina que ela não mais consegue ser acessada de outra forma. O coletor também é usado por diversas implementações de linguagens de programação que, ou usam a "C" como código intermediário; desejam facilitar a interoperação mais fácil com bibliotecas "C"; ou apenas preferem a interface simples do coletor. Alternativamente, o coletor de lixo possivelmente seja usado como detector de vazamentos para aplicativos "C" ou "C++", embora esse não seja o objetivo principal dele.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Opcionais

libatomic_ops-7.8.0

Instalação do "GC"

Instale GC executando os seguintes comandos:

./configure --prefix=/usr     \
            --enable-cplusplus \
            --disable-static   \
            --docdir=/usr/share/doc/gc-8.2.4 &&
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.4: 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.4

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

Introdução ao GDB

GDB, o depurador do Projeto "GNU", permite que você veja o que está acontecendo dentro de outro aplicativo enquanto ele é executado - ou o que outro aplicativo estava fazendo no momento em que travou. Observe que GDB é mais eficaz ao rastrear aplicativos e bibliotecas que foram construídos(as) com símbolos de depuração e não despojados(as).

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP): https://ftp.gnu.org/gnu/gdb/gdb-13.2.tar.xz

  • Transferência (FTP): ftp://ftp.gnu.org/gnu/gdb/gdb-13.2.tar.xz

  • Soma de verificação MD5 da transferência: fbd3cdae16c581e8a742cb766ba35076

  • Tamanho da transferência: 23 MB

  • Espaço em disco estimado exigido: 914 MB (adicionar 805 MB para documentos; adicionar 575 MB para testes)

  • Tempo de construção estimado: 2,1 UPC (adicionar 0,4 UPC para documentos; adicionar 18 UPC para testes; todos usando paralelismo=4)

Dependências do GDB

Dependência Recomendada de Tempo de Execução
Opcionais

Doxygen-1.9.7, GCC-13.2.0 (ada, gfortran e go são usados para testes), Guile-3.0.9, rustc-1.71.1 (usado para alguns testes), Valgrind-3.21.0 e SystemTap (tempo de execução, usado para testes)

Instalação do GDB

Instale o GDB executando os seguintes comandos:

mkdir build &&
cd   build &&

../configure --prefix=/usr          \
             --with-system-readline \
             --with-python=/usr/bin/python3 &&
make

Opcionalmente, para construir a documentação da "API" usando Doxygen-1.9.7, 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 cento e oitenta e três (183) falhas inesperadas em mais de cento e cinco mil (105.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 &&
make -C gdbserver install

Se você construiu a documentação da "API", [então] ela agora está em "gdb/doc/doxy". Você consegue instalá-la (como o(a) usuário(a) root):

install -d /usr/share/doc/gdb-13.2 &&
rm -rf gdb/doc/doxy/xml &&
cp -Rv gdb/doc/doxy /usr/share/doc/gdb-13.2

Explicações do Comando

--with-system-readline: Essa chave força o GDB a usar a cópia do Readline instalada no LFS.

--with-python=/usr/bin/python3: Essa chave força GDB a usar Python 3.

Conteúdo

Aplicativos Instalados: gcore, gdb, gdbserver e gdb-add-index
Biblioteca Instalada: libinproctrace.so
Diretórios Instalados: /usr/{include,share}/gdb e /usr/share/doc/gdb-13.2

Descrições Curtas

gcore

gera um despejo principal de um aplicativo em execução

gdb

é o Depurador GNU

gdbserver

é um servidor remoto para o depurador "GNU" (permite que aplicativos sejam depurados a partir de uma máquina diferente)

gdb-add-index

Permite adicionar arquivos de índice a binários ELF. Isso acelera o início do gdb em aplicativos grandes.

libinproctrace.so

contém funções para o agente de rastreamento em processo. O agente permite instalar pontos de rastreamento rápidos, listar marcadores de pontos de rastreamento estáticos, sondar marcadores de pontos de rastreamento estáticos e iniciar o monitoramento de rastreamento.

Git-2.41.0

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.5.1, Bazaar, Subversion-1.14.2, CVS, Perforce e Team Foundation Server.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP): https://www.kernel.org/pub/software/scm/git/git-2.41.0.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: c1f58a12b891ad73927b8e4a3aa29c7b

  • Tamanho da transferência: 11 MB

  • Espaço em disco estimado exigido: 252 MB (com documentação baixada)

  • Tempo de construção estimado: 0,3 UPC (com paralelismo=4; adicionar até 1,6 UPC (dependente da velocidade do disco) para testes, ambos com paralelismo=4)

Transferências Adicionais

Dependências do "Git"

Recomendadas
Opcionais

Apache-2.4.57 (para alguns testes), GnuPG-2.4.3 (tempo de execução, possivelmente seja usado para assinar commits ou tags do Git ou para verificar as assinaturas deles), OpenSSH-9.4p1 (tempo de execução, necessário para usar Git sobre 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 Git, usa Tk em tempo de execução), Valgrind-3.21.0, Authen::SASL e MIME::Base64 (ambos tempo de execução, para git send-email) e IO-Socket-SSL-2.083 (tempo de execução, para git send-email conectar-se 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"

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 -k test. Se Apache-2.4.57 estiver instalado, três testes em t5559-http-fetch-smart-http2.sh são conhecidos por falhar devido ao cURL-8.1.x.

Agora, como o(a) usuário(a) root:

make perllibdir=/usr/lib/perl5/5.38/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.41.0 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.41.0.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.41.0 &&
tar   -xf   ../git-htmldocs-2.41.0.tar.xz \
     -C    /usr/share/doc/git-2.41.0 --no-same-owner --no-overwrite-dir &&

find        /usr/share/doc/git-2.41.0 -type d -exec chmod 755 {} \; &&
find        /usr/share/doc/git-2.41.0 -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.41.0/man-pages/{html,text}        &&
mv        /usr/share/doc/git-2.41.0/{git*.txt,man-pages/text}     &&
mv        /usr/share/doc/git-2.41.0/{git*.,index.,man-pages/}html &&

mkdir -vp /usr/share/doc/git-2.41.0/technical/{html,text}         &&
mv        /usr/share/doc/git-2.41.0/technical/{*.txt,text}        &&
mv        /usr/share/doc/git-2.41.0/technical/{*.,}html           &&

mkdir -vp /usr/share/doc/git-2.41.0/howto/{html,text}             &&
mv        /usr/share/doc/git-2.41.0/howto/{*.txt,text}            &&
mv        /usr/share/doc/git-2.41.0/howto/{*.,}html               &&

sed -i '/^<a href=/s|howto/|&html/|' /usr/share/doc/git-2.41.0/howto-index.html &&
sed -i '/^\* link:/s|howto/|&html/|' /usr/share/doc/git-2.41.0/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.41.0.tar.gz -C /usr/share/man --no-same-owner: Isso descompacta git-manpages-2.41.0.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.41.0 ...: 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.41.0,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.41.0 e OpenSSH-9.4p1

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-20230816:

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "Guile"

Exigidas

GC-8.2.4 e libunistring-1.1

Opcionais

Emacs-29.1 e GDB-13.2 (dependências somente em tempo de execução).

Instalação do "Guile"

Instale Guile executando os seguintes comandos:

./configure --prefix=/usr   \
            --disable-static \
            --docdir=/usr/share/doc/guile-3.0.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 corretamente usando uma plataforma LFS 12.0.

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

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

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 do 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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP): https://github.com/llvm/llvm-project/releases/download/llvmorg-16.0.5/llvm-16.0.5.src.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: d9185fc007c32aea27a6de3c7c1eb90d

  • Tamanho da transferência: 54 MB

  • Espaço em disco estimado exigido: 3,1 GB (938 MB instalado; adicionar 20 GB para testes e 308 MB para documentação)

  • Tempo de construção estimado: 13 UPC (Adicionar 8 UPC para testes; ambos usando paralelismo=8)

Transferências Adicionais

módulos "Cmake" para o "LLVM"

Dependências de terceiros(as) para sistema de construção LLVM

Transferência Recomendada

Clang

Transferência Opcional

Compilador RT

Dependências do "LLVM"

Exigidas

CMake-3.27.2

Opcionais

Doxygen-1.9.7, git-2.41.0, Graphviz-8.1.0, libxml2-2.10.4, Pygments-2.16.1, rsync-3.2.7 (para testes), recommonmark-0.7.1 (para construir documentação), texlive-20230313 (ou install-tl-unx), Valgrind-3.21.0, PyYAML-6.0.1, Zip-3.0, OCaml, psutil (para testes) e Z3

Instalação do "LLVM"

Dois tarballs adicionais llvm-cmake.src.tar.xz e llvm-third-party.src.tar.xz são necessários para o sistema de construção do LLVM. O(A) desenvolvedor(a) espera eles extraídos no mesmo nível, como o tarball llvm-16.0.5.src.tar.xz, e os diretórios extraídos renomeados para cmake e third-party. Extraia-os e modifique o sistema de construção para evitar criar diretórios ambiguamente nomeados fora da hierarquia llvm-16.0.5.src:

tar -xf ../llvm-cmake.src.tar.xz                                   &&
tar -xf ../llvm-third-party.src.tar.xz                             &&
sed '/LLVM_COMMON_CMAKE_UTILS/s@../cmake@llvm-cmake.src@'          \
    -i CMakeLists.txt                                              &&
sed '/LLVM_THIRD_PARTY_DIR/s@../third-party@llvm-third-party.src@' \
    -i cmake/modules/HandleLLVMOptions.cmake

Instale o clang na árvore do fonte executando os seguintes comandos:

tar -xf ../clang-16.0.5.src.tar.xz -C tools &&
mv tools/clang-16.0.5.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-16.0.5.src.tar.xz -C projects &&
mv projects/compiler-rt-16.0.5.src projects/compiler-rt

Existem muitos conjuntos de comandos sequenciais "Python" nesse pacote que usam /usr/bin/env python para acessar o "Python" do sistema, que no LFS é Python-3.11.4. Use o seguinte comando para corrigir esses conjuntos de comandos sequenciais:

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-16.0.5-enable_default_ssp-1.patch

Se você tiver baixado o compiler-rt, corrija um caso de teste quebrado pelo SSP padrão em clang:

sed 's/clang_dfsan/& -fno-stack-protector/' \
    -i projects/compiler-rt/test/dfsan/origin_unaligned_memtrans.c

Instale o 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

A suíte de teste do LLVM pode produzir muitos arquivos de despejo central. Eles ocuparão uma grande quantidade de espaço em disco e o processo de despejo central pode retardar significativamente a testagem. Para testar os resultados com o despejo central desabilitado, certifique-se de que o Systemd-254 seja reconstruído com suporte a Linux-PAM-1.5.3 e que a sessão atual de login seja iniciada depois de atualizar o arquivo /etc/pam.d/system-session para incluir pam_systemd.so, então emita:

systemctl   --user start dbus &&
systemd-run --user --pty -d -G -p LimitCORE=0 ninja check-all

Os testes são construídos com todos os elementos de processamento disponíveis, mas executados usando o número de processadores online. (A diferença é que os elementos de processamento disponíveis podem ser limitados usando-se taskset, mas colocá-los offline exige ecoar 0 para /sys/devices/system/cpu/cpu<N>/online pelo(a) usuário(a) root e os torna temporariamente inusáveis por todos os trabalhos na máquina). Um teste chamado Linux/clone_setns.cpp falhará se CONFIG_USER_NS não estiver habilitada na configuração do núcleo. Os testes chamados AtoiAndFriendsOOBTest, StrtolOOBTest, StrtollOOBTest, interception_malloc_test.cpp e scanf-allocate.cpp são conhecidos por falharem com a Glibc-2.38.

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-16.0.5           &&
mv -v /usr/share/doc/LLVM/llvm /usr/share/doc/llvm-16.0.5 &&
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-16.0.5            &&
mv -v /usr/share/doc/LLVM/clang /usr/share/doc/llvm-16.0.5 &&
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.24.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-16.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-23.1.6.

-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.7. Você deveria executar make doxygen-html depois e instalar a documentação gerada manualmente.

Conteúdo

Aplicativos Instalados: amdgpu-arch, analyze-build, bugpoint, c-index-test, clang, clang++ (links simbólicos para clang-16), clang-16, clang-check, clang-cl, clang-cpp (os últimos dois links simbólicos para clang), clang-extdef-mapping, clang-format, clang-linker-wrapper, clang-offload-bundler, clang-offload-packager, clang-refactor, clang-rename, clang-repl, clang-scan-deps, diagtool, dsymutil, FileCheck, git-clang-format, hmaptool, intercept-build, llc, lli, llvm-addr2line (link simbólico para llvm-symbolizer), llvm-ar, llvm-as, llvm-bcanalyzer, llvm-bitcode-strip (link simbólico para llvm-objcopy), llvm-cat, llvm-cfi-verify, llvm-config, llvm-cov, llvm-c-test, llvm-cvtres, llvm-cxxdump, llvm-cxxfilt, llvm-cxxmap, llvm-debuginfo-analyzer, llvm-debuginfod, llvm-debuginfod-find, llvm-diff, llvm-dis, llvm-dlltool (link simbólico para llvm-ar), llvm-dwarfdump, llvm-dwarfutil, llvm-dwp, llvm-exegesis, llvm-extract, llvm-gsymutil, llvm-ifs, llvm-install-name-tool (link simbólico para llvm-objcopy), llvm-jitlink, llvm-lib (link simbólico para llvm-ar), llvm-libtool-darwin, llvm-link, llvm-lipo, llvm-lto, llvm-lto2, llvm-mc, llvm-mca, llvm-ml, llvm-modextract, llvm-mt, llvm-nm, llvm-objcopy, llvm-objdump, llvm-opt-report, llvm-otool (link simbólico para llv-objdump), llvm-pdbutil, llvm-profdata, llvm-profgen, llvm-ranlib (link simbólico para llvm-ar), llvm-rc, llvm-readelf (link simbólico para llvm-readobj), llvm-readobj, llvm-reduce, llvm-remark-size-diff, llvm-remarkutil, llvm-rtdyld, llvm-sim, llvm-size, llvm-split, llvm-stress, llvm-strings, llvm-strip (link simbólico para llvm-objcopy), llvm-symbolizer, llvm-tapi-diff, llvm-tblgen, llvm-tli-checker, llvm-undname, llvm-windres (link simbólico para llvm-rc), llvm-xray, nvptx-arch, opt, sancov, sanstats, scan-build, scan-build-py, scan-view, split-file e verify-uselistorder
Bibliotecas Instaladas: libLLVM.so, libLLVM*.a (100 bibliotecas), libLTO.so, libRemarks.so, libclang.so, libclang-cpp.so, libclang*.a (42 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-16.0.5

Descrições Curtas

amdgpu-arch

lista as GPUs AMD instaladas; em tempo de execução ele precisa de libhsa-runtime64.so que não é parte do BLFS

analyze-build

é uma ferramenta de análise estática

bugpoint

é a ferramenta automática de redução de casos de teste

c-index-test

é usado para testar a "API" da "libclang" e demonstrar o uso dela

clang

é o compilador "C", "C++" e "Objective-C" do Clang

clang-check

é uma ferramenta para realizar análise estática de código e exibir "Abstract Syntax Trees" ("AST")

clang-extdef-mapping

é uma ferramenta para coletar o nome do "USR" e o local de definições externas em um arquivo de fonte

clang-format

é uma ferramenta para formatar código "C"/"C++"/"Java"/"JavaScript"/"Objective-C"/"Protobuf"

clang-linker-wrapper

é um utilitário envólucro sobre o vinculador de dispositivo

clang-offload-bundler

é uma ferramenta para agrupar/desagrupar arquivos descarregados "OpenMP" associados a um arquivo fonte comum

clang-offload-packager

é uma ferramenta para agrupar vários arquivos de objeto em um binário, que pode então ser usado para criar um binário que contenha código nativo para várias arquiteturas de processador contendo código de descarregamento

clang-refactor

é uma ferramenta de refatoração baseada em "Clang" para "C", "C++" e "Objective-C"

clang-rename

é uma ferramenta para renomear símbolos em aplicativos "C"/"C++"

clang-scan-deps

é uma ferramenta para escanear dependências em um arquivo fonte

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.41.0)

hmaptool

é uma ferramenta "Python" para despejar e construir mapas de cabeçalho

intercept-build

gera uma base de dados de comandos de construção para um projeto

llc

é o compilador estático LLVM

lli

é usado para executar aplicativos diretamente a partir do "bitcode" do LLVM

llvm-addr2line

é uma ferramenta usada para converter endereços em nomes de arquivos e números de linha

llvm-ar

é o arquivador do LLVM

llvm-as

é o montador do LLVM

llvm-bcanalyzer

é o analizador de "bitcode" do LLVM

llvm-bitcode-strip

remove o "bitcode" de "LLVM" de um objeto

llvm-cat

é uma ferramenta para concatenar módulos "llvm"

llvm-cfi-verify

identifica se o "Control Flow Integrity" protege todas as instruções de fluxo de controle indireto no arquivo de objeto fornecido, "DSO" ou binário

llvm-config

Imprime as opções de compilação do LLVM

llvm-cov

é usado para emitir informações de cobertura

llvm-c-test

é um desmontador de "bytecode"

llvm-cvtres

é uma ferramenta para converter arquivos de recursos da Microsoft em "COFF"

llvm-cxxdump

é usado como um Despejador de Dados de "ABI" da "C++"

llvm-cxxfilt

é usado para desmontar símbolos "C++" no código "llvm"

llvm-cxxmap

é usado para remapear símbolos mutilados da "C++"

llvm-debuginfo-analyzer

imprime uma representação lógica de informações de depuração de baixo nível

llvm-debuginfod

é um serviço que fornece informações de depuração por meio de uma "API" "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-remarkutil

converte arquivos de observação entre bitstream e YAML; ou imprime informações de contagem de instruções de função em arquivos de observação

llvm-rtdyld

é a ferramenta "MC-JIT" do LLVM

llvm-size

é o despejador de tamanho de objeto do LLVM

llvm-split

é o divisor de módulo do LLVM

llvm-stress

é usado para gerar arquivos aleatórios .ll

llvm-strings

imprime sequências de caracteres encontradas em um binário (arquivo objeto, executável ou biblioteca de arquivamento)

llvm-symbolizer

converte endereços em locais de código-fonte

llvm-tblgen

é a descrição alvo do LLVM para o gerador de código "C++"

llvm-tli-checker

é o verificador "TargetLibraryInfo" versus "SDK" do LLVM

llvm-undname

é uma ferramenta para desmantelar nomes

llvm-xray

é uma implementação do sistema de rastreamento de chamadas de função "XRay" do Google

nvptx-arch

lista as GPUs NVIDIA instaladas; em tempo de execução ele precisa de libcuda.so que não é parte do BLFS

opt

é o otimizador do LLVM

sancov

é a ferramenta de processamento de cobertura de higienizador

sanstats

é a ferramenta de processamento de estatísticas de higienizador

scan-build

é um conjunto de comandos sequenciais Perl que invoca o analisador estático Clang

scan-build-py

é um conjuntos de comandos sequenciais Python que invoca o analisador estático Clang

scan-view

é um visualizador dos resultados do analisador estático Clang

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

Introdução ao "Lua"

Lua é uma linguagem de programação poderosa e leve projetada para estender aplicativos. Também é frequentemente usada como uma linguagem autônoma de uso geral. Lua é implementada como uma pequena biblioteca de funções "C", escrita em "ANSI C", e compila sem modificações em todas as plataformas conhecidas. Os objetivos de implementação são simplicidade, eficiência, portabilidade e baixo custo de incorporação. O resultado é um mecanismo de linguagem rápido e compacto, tornando-a ideal em sistemas embarcados também.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP): https://www.lua.org/ftp/lua-5.4.6.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 25a429319dff20dfbfb9956c2b5be911

  • Tamanho da transferência: 356 KB

  • Espaço em disco estimado exigido: 3,8 MB (com testes Básicos)

  • Tempo de construção estimado: menos que 0,1 UPC (com os testes Básicos)

Transferências Adicionais

Instalação do "Lua"

Alguns pacotes verificam o arquivo pkg-config para Lua, o qual é criado com:

cat > lua.pc << "EOF"
V=5.4
R=5.4.6

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.6-shared_library-1.patch &&
make linux

Para testar os resultados, emita: make test. Isso executará o interpretador e imprimirá a versão dele. Testes mais abrangentes podem ser realizados se você baixou o "tarball" da "Suíte de teste". Esses testes precisam ser executados depois que o pacote estiver instalado, por isso seguimos para a descrição abaixo.

Agora, como o(a) usuário(a) root:

make INSTALL_TOP=/usr               \
     INSTALL_DATA="cp -d"            \
     INSTALL_MAN=/usr/share/man/man1 \
     TO_LIB="liblua.so liblua.so.5.4 liblua.so.5.4.6" \
     install &&

mkdir -pv                      /usr/share/doc/lua-5.4.6 &&
cp -v doc/*.{html,css,gif,png} /usr/share/doc/lua-5.4.6 &&

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

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 de Lua necessária somente para compatibilidade com outros aplicativos como Wireshark-4.0.7 e VLC-3.0.18.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

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

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

Introdução ao "Mercurial"

Mercurial é uma ferramenta de gerenciamento distribuído de controle de fonte semelhante ao Git e ao Bazaar. Mercurial é escrita em Python e é usada por projetos como "Mozilla" para "Firefox" e "Thunderbird".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP): https://www.mercurial-scm.org/release/mercurial-6.5.1.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: fccff6981f362466b8e9e0fa0de0ddb6

  • Tamanho da transferência: 7,9 MB

  • Espaço em disco estimado exigido: 115 MB (com documentos, adicionar 1,5 GB para testes)

  • Tempo de construção estimado: 0,3 UPC (com documentos; adicionar 30 UPC para testes; ambos usando paralelismo=4)

Dependências do "Mercurial"

Opcionais

docutils-0.20.1 (exigido para construir a documentação), git-2.41.0, GPGME-1.21.0 (com ligações "Python"), OpenSSH-9.4p1 (tempo de execução, para acessar repositórios "ssh://..."), Pygments-2.16.1, rustc-1.71.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

Instalação do "Mercurial"

Construa Mercurial emitindo o seguinte comando:

make build

Para construir a documentação (exige docutils-0.20.1), emita:

make doc

Se você desejar executar os testes, os testes rust precisam ser removidos, pois estão atualmente quebrados devido a erros de sintaxe. Para fazer isso, emita:

sed -i '138,142d' Makefile

Para executar a suíte de teste, emita:

TESTFLAGS="-j<N> --tmpdir tmp" make check

onde <N> é um número inteiro entre um e o número de (camadas X do processador), inclusive. Vários testes falham porque algumas mensagens de erro foram mudadas no Python ou alguns avisos de descontinuação são impressos, que não estavam presentes quando o teste foi projetado. Para a finalidade de investigar quaisquer testes aparentemente falhos, você possivelmente use o conjunto de comandos sequenciais run-tests.py. Para ver as quase quarenta chaves, algumas delas muito úteis, emita tests/run-tests.py --help. Executando os seguintes comandos, você executará somente os testes que falharam antes:

pushd tests &&
  rm -rf tmp &&
  ./run-tests.py --tmpdir tmp test-gpg.t
popd

Normalmente, as falhas anteriores serão reproduzíveis. Porém, se você adicionar a chave --debug antes de --tmpdir e executar os testes novamente, [então] algumas falhas possivelmente desapareçam, o que é um problema com a suíte de teste. Se isso acontecer, [então] não mais existirão falhas, mesmo se você não passar a chave "--debug" novamente.

Uma chave interessante é --time, que gerará uma tabela de todos os testes executados e respectivos tempos de início, fim, usuário(a), sistema e real assim que os testes estiverem completos. Observe que essas chaves possivelmente sejam usadas com make check incluindo-as na variável de ambiente TESTFLAGS.

Instale o Mercurial executando o seguinte comando (como root):

make PREFIX=/usr install-bin

Se você construiu a documentação, [então] instale-a executando o seguinte comando (como root):

make PREFIX=/usr install-doc

Depois da instalação, dois testes muito rápidos e simples deveriam executar corretamente. O primeiro precisa de alguma configuração:

cat >> ~/.hgrc << "EOF"
[ui]
username = <nome_usuário(a)> <usuário(a)@correio>
EOF

onde você precisa substituir <nome_usuário(a)> e <seu@correio-eletrônico> (o correio é opcional e pode ser omitido). Com a identidade do(a) usuário(a) definida, execute hg debuginstall e diversas linhas serão exibidas, a última dizendo "no problems detected". Outro teste rápido e simples é apenas hg, que deveria gerar comandos básicos que conseguem ser usados com hg.

Configurando o "Mercurial"

Arquivos de Configuração

/etc/mercurial/hgrc e ~/.hgrc

A maioria das extensões está desabilitada por padrão. Execute hg help extensions se precisar habilitar alguma, por exemplo. ao investigar falhas de teste. Isso exibirá uma lista de extensões habilitadas e desabilitadas, bem como mais informações, tais como habilitar ou desabilitar extensões usando arquivos de configuração.

Se você tiver instalado o make-ca-1.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.5.1-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 corretamente usando uma plataforma LFS 12.0.

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 Editor(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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

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.

Archive::Zip-1.68

Introdução ao "Archive::Zip"

O módulo "Archive::Zip" permite que um aplicativo "Perl" crie, manipule, leia e escreva arquivamentos "Zip".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote
Dependências do "Archive::Zip"
Recomendadas (para a suíte de teste)

UnZip-6.0 (com o remendo dele)

Instalação do "Archive::Zip"

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: crc32

Descrições Curtas

crc32

computa e imprime na saída gerada padrão os valores "CRC-32" dos arquivos fornecidos

autovivification-0.18

Introdução ao módulo "autovivification"

Esse módulo permite que você desabilite a "autovivificação" (a criação e povoamento automática de novos vetores e resumos sempre que variáveis indefinidas são desreferenciadas) e, opcionalmente, lançar um aviso ou um erro quando isso tivesse ocorrido.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

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

Introdução ao "Business::ISBN"

O módulo "Business::ISBN" fornece funções para trabalhar-se com números internacionais padrão de livros.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote
Dependências do "Business::ISBN"
Exigidas

Business-ISBN-Data-20230426.001

Instalação do "Business::ISBN"

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Business::ISMN-1.203

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 corretamente usando uma plataforma LFS 12.0.

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Instalação do "Business::ISSN"

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Class::Accessor-0.51

Introdução ao "Class::Accessor"

"Class::Accessor" gera acessadores/mutadores para sua classe.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Instalação do "Class::Accessor"

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Data::Compare-1.29

Introdução ao "Data::Compare"

O módulo "Data::Compare" compara duas estruturas de dados perl.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Instalação do "Data::Dump"

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Data::Uniqid-0.12

Introdução ao "Data::Uniqid"

"Data::Uniqid" fornece três rotinas simples para gerar "IDs" exclusivos.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Instalação do "Data::Uniqid"

Embora o teste final falhe e informe um "Error", a suíte de teste retorna uma situação de zero (0). O erro pode ser seguramente ignorado.

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

DateTime::Calendar::Julian-0.107

Introdução ao "DateTime::Calendar::Julian"

"DateTime::Calendar::Julian" implementa o Calendário Juliano.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote
Dependências do "DateTime::Format::Builder"
Exigidas

DateTime-Format-Strptime-1.79 e Params-Validate-1.31

Instalação do "DateTime::Format::Builder"

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Encode::EUCJPASCII-0.03

Introdução ao "Encode::EUCJPASCII"

"Encode::EUCJPASCII" fornece um mapeamento "eucJP-open" ("Extended Unix Code", japonês).

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Instalação do "Encode::EUCJPASCII"

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Encode::HanExtra-0.23

Introdução ao "Encode::HanExtra"

O módulo "Encode::HanExtra" fornece conjuntos extras de codificações chinesas as quais não estão incluídas no módulo "Encode" principal devido a problemas de tamanho.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

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 corretamente usando uma plataforma LFS 12.0.

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote
Dependências do "File::Slurper"
Recomendadas (exigidas para a suíte de teste)

Instalação do "File::Slurper"

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

File::Which-1.27

Introdução ao "File::Which"

"File::Which" fornece uma implementação portável do utilitário 'which'.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

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 corretamente usando uma plataforma LFS 12.0.

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

Introdução ao "HTTP::Daemon"

As instâncias da classe "HTTP::Daemon" são servidores "HTTP/1.1" que escutam em um soquete as solicitações entrantes. O "HTTP::Daemon" é uma subclasse de "IO::Socket::INET", de forma que você consegue realizar operações de soquete diretamente nele também.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

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

Introdução ao "IO::Socket::SSL"

"IO::Socket::SSL" torna usar "SSL/TLS" muito mais fácil, agrupando a funcionalidade necessária na interface familiar "IO::Socket" e fornecendo padrões seguros sempre que possível.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

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 corretamente usando uma plataforma LFS 12.0.

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 corretamente usando uma plataforma LFS 12.0.

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 corretamente usando uma plataforma LFS 12.0.

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 corretamente usando uma plataforma LFS 12.0.

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.72)

Introdução à "LWP" - A biblioteca "World-wide Web" para Perl

A coleção "libwww-perl" é um conjunto de módulos "Perl" que fornece uma interface de programação de aplicativos ("API") simples e consistente para a "World Wide Web". O foco principal da biblioteca é o de fornecer classes e funções que te permitem escrever clientes "WWW". A biblioteca também contém módulos que são de uso mais geral e até classes que te ajudam a implementar servidores "HTTP" simples.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote
Dependências da "libwww-perl"
Exigidas

File-Listing-6.15, HTTP-CookieJar-0.014, HTTP-Cookies-6.10, HTTP-Daemon-6.16, HTTP-Negotiate-6.01, HTML-Parser-3.81, Net-HTTP-6.23, 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.11.

Conteúdo

Aplicativos Instalados: lwp-download, lwp-dump, lwp-mirror, lwp-request

Descrições Curtas

lwp-download

é um script para buscar um arquivo grande a partir da "web"

lwp-dump

é usado para ver quais cabeçalhos e conteúdo são retornados para um "URL"

lwp-mirror

é um utilitário simples de espelho

lwp-request

é um agente simples de usuário(a) de linha de comando

List::AllUtils-0.19

Introdução ao "List::AllUtils"

O módulo "List::Allutils" combina "List::Util" e "List::MoreUtils" em um pacote pequeno.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

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 corretamente usando uma plataforma LFS 12.0.

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 corretamente usando uma plataforma LFS 12.0.

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

Introdução ao "LWP::Protocol::https"

"LWP::Protocol::https" fornece suporte "HTTPS" para "LWP::UserAgent" (ou seja, libwww-perl-6.72). Depois que o módulo estiver instalado, o "LWP" será capaz de acessar sítios usando "HTTP" sobre "SSL"/"TLS".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote
Dependências do "LWP::Protocol::https"
Exigidas

IO-Socket-SSL-2.083, libwww-perl-6.72 e make-ca-1.12 com /etc/pki/tls/certs/ca-bundle.crt.

Instalação do "LWP::Protocol::https"

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Module::Build-0.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 corretamente usando uma plataforma LFS 12.0.

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

Introdução ao "Net::DNS"

"Net::DNS" é um resolvedor de "DNS" implementado em Perl. Ele pode ser usado para realizar praticamente qualquer tipo de consulta "DNS" a partir de um script Perl.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Instalação do "Net::DNS"

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Parse::RecDescent-1.967015

Introdução ao "Parse::RecDescent"

"Parse::RecDescent" gera incrementalmente analisadores de texto descendentes recursivos de cima para baixo a partir de especificações gramaticais simples do tipo "yacc".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Instalação do "Parse::RecDescent"

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Parse::Yapp-1.21

Introdução ao "Parse::Yapp"

"Parse::Yapp" é uma extensão "Perl" para gerar e usar analisadores "LALR".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Instalação do "Parse::Yapp"

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: yapp

Descrições Curtas

yapp

é uma interface para o módulo "Parse::Yapp", que te permite criar um analisador "Perl" "OO" a partir de um arquivo de gramática de entrada

PerlIO::utf8_strict-0.010

Introdução ao "PerlIO::utf8_strict"

PerlIO::utf8_strict fornece uma camada UTF-8 PerlIO rápida e correta. Ao contrário da camada :utf8 padrão do Perl, ele verifica a correção da entrada gerada.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Instalação do "Regexp::Common"

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

SGMLSpm-1.1

Introdução ao "SGMLSpm"

O módulo "SGMLSpm" é uma biblioteca Perl usada para analisar a saída gerada a partir dos analisadores "SGMLS" e "NSGMLS" de James Clark.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Instalação do "SGMLSpm"

Antes de iniciar a construção, emita o seguinte comando para evitar um erro:

chmod -v 644 MYMETA.yml

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Depois de o pacote ter sido instalado, execute o seguinte comando como o(a) usuário(a) root:

ln -sv sgmlspl.pl /usr/bin/sgmlspl

Conteúdo

Aplicativos Instalados: sgmlspl.pl, sgmlspl

Descrições Curtas

sgmlspl.pl

é um processador "SGML"

sgmlspl

é um vínculo simbólico usado durante a instalação de DocBook-utils-0.6.14

Sort::Key-1.33

Introdução ao "Sort::Key"

"Sort::Key" fornece um conjunto de funções para classificar listas de valores por algum valor-chave calculado.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Instalação do "Sort::Key"

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Test::Command-0.11

Introdução ao "Test::Command"

"Test::Command" testa a situação de saída, "STDOUT" ou "STDERR", de um comando externo.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

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

Introdução ao "Test::Differences"

"Test::Differences" testa sequências de caracteres e estruturas de dados e mostra as diferenças se elas não corresponderem.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

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 corretamente usando uma plataforma LFS 12.0.

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

Introdução ao "Text::CSV"

"Text::CSV" é um manipulador de valores separados por vírgula, usando "XS" ("eXternal Subroutine" - para sub-rotinas escritas em "C" ou "C++") ou "Perl" puro.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote
Dependências do "Text::CSV"
Recomendadas

Instalação do "Text::CSV"

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Text::Roman-3.5

Introdução ao "Text::Roman"

"Text::Roman" permite a conversão entre algoritmos romanos e arábicos (sistemas numéricos, por exemplo, "MCMXLV" e "1945").

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

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.19 e você não precisa reinstalar esse módulo.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Instalação do "Unicode::Collate"

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Unicode::LineBreak-2019.001

Introdução ao "Unicode::LineBreak"

"Unicode::LineBreak" fornece um algoritmo de quebra de linha "Unicode" "UAX #14".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote
Dependências do "Unicode::LineBreak"
Exigidas

MIME-Charset-1.013.1, também Wget-1.21.4 (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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote
Dependências do "URI"
Recomendadas (exigidas para a suíte de teste)
Opcionais

Business-ISBN-3.008

Instalação do "URI"

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

XML::LibXML::Simple-1.01

Introdução ao "XML::LibXML::Simple"

O módulo XML::LibXML::Simple é uma reescrita de XML::Simple para usar o analisador XML::LibXML para estruturas XML, em vez dos analisadores simples Perl ou SAX.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

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

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote
Dependências do "XML::LibXSLT"
Exigidas

libxslt-1.1.38, 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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote
Dependências do "XML::Simple"
Opcionais

XML-SAX-1.02 (para um analisador alternativo, que será usado se disponível; caso contrário, XML::Parser, que foi instalado no LFS, será usado),

Instalação do "XML::Simple"

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

XML::Writer-0.900

Introdução ao "XML::Writer"

"XML::Writer" fornece uma extensão Perl para escrever documentos "XML".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

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.14p3 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.

Algorithm::Diff-1.201

Introdução ao "Algorithm::Diff"

"Algorithm::Diff" calcula diferenças "inteligentes" entre dois arquivos ou listas.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

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 corretamente usando uma plataforma LFS 12.0.

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 corretamente usando uma plataforma LFS 12.0.

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.4 instalado.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote
Dependências do "Alien::Libxml2"
Exigidas

Alien-Build-Plugin-Download-GitLab-0.01, libxml2-2.10.4, 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 corretamente usando uma plataforma LFS 12.0.

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 corretamente usando uma plataforma LFS 12.0.

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

Introdução ao "Business-ISBN-Data"

"Business-ISBN-Data" é um pacote de dados para "Business::ISBN".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

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 corretamente usando uma plataforma LFS 12.0.

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Instalação do "Class::Data::Inheritable"

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Class::Inspector-1.36

Introdução ao "Class::Inspector"

"Class::Inspector" te permite obter informações acerca de uma classe carregada.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Instalação do "Class::Inspector"

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Class::Singleton-1.6

Introdução ao "Class::Singleton"

Um "Singleton" descreve uma classe de objeto que pode ter somente uma instância em qualquer sistema, como um aplicativo de gerenciamento de fila de documentos de impressão. Esse módulo implementa uma classe "Singleton" a partir da qual outras classes podem ser derivadas.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Instalação do "Class::Singleton"

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Class:Tiny-1.008

Introdução ao "Class:Tiny"

"Classe:Tiny" oferece um conjunto de ferramentas minimalistas de construção de classes.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote
Dependências do "Clone"
Recomendadas (exigidas para a suíte de teste)

Instalação do "Clone"

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Config::AutoConf-0.320

Introdução ao "Config::AutoConf"

O módulo "Config::AutoConf" implementa algumas das macros "AutoConf" (detectar um comando, detectar uma biblioteca, etc.) em "Perl" puro.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

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 corretamente usando uma plataforma LFS 12.0.

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 corretamente usando uma plataforma LFS 12.0.

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 corretamente usando uma plataforma LFS 12.0.

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 corretamente usando uma plataforma LFS 12.0.

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 corretamente usando uma plataforma LFS 12.0.

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Instalação do "Devel::StackTrace"

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Dist::CheckConflicts-0.11

Introdução ao "Dist::CheckConflicts"

"Dist::CheckConflicts" declara conflitos de versão para uma distribuição, para suportar atualizações pós-instalação de distribuições dependentes.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote
Dependências do "Dist::CheckConflicts"
Exigidas

Module-Runtime-0.016

Recomendadas (exigidas para a suíte de teste)

Instalação do "Dist::CheckConflicts"

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Encode::Locale-1.05

Introdução ao "Encode::Locale"

"Encode::Locale" determina a codificação de localidade.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Instalação do "Encode::Locale"

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Eval::Closure-0.14

Introdução ao "Eval::Closure"

"Eval::Closure" cria fechamentos de forma segura e limpa por meio de avaliação de sequências de caracteres.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote
Dependências do "Eval::Closure"
Recomendadas (exigidas para a suíte de teste)

Instalação do "Eval::Closure"

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Exception::Class-1.45

Introdução ao "Exception::Class"

"Exception::Class" permite que você declare classes reais de exceção em Perl.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

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 corretamente usando uma plataforma LFS 12.0.

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 corretamente usando uma plataforma LFS 12.0.

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote
Dependências do FFI::CheckLib
Recomendadas (exigidas para a suíte de teste)

Instalação do FFI::CheckLib

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

File::chdir-0.1011

Introdução ao File::chdir

"File::chdir" fornece uma maneira mais sensata de mudar diretórios.

O "chdir()" do "Perl" tem o infeliz problema de ser muito, muito, muito global. Se qualquer parte do seu aplicativo chamar "chdir()" ou se qualquer biblioteca que você usa chamar "chdir()", [então] ele muda o diretório atual de trabalho do aplicativo *inteiro*. "File::chdir" te oferece uma alternativa, "$CWD" e "@CWD".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Instalação do File::chdir

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

File::Copy::Recursive-0.45

Introdução ao File::Copy::Recursive

Esse módulo copia e move diretórios recursivamente (ou arquivos únicos), para uma profundidade opcional e tenta preservar o modo de cada arquivo ou diretório.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote
Dependências do File::Copy::Recursive
Recomendadas (exigidas para a suíte de teste)

Instalação do File::Copy::Recursive

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

File::Find::Rule-0.34

Introdução ao File::Find::Rule

"File::Find::Rule" é uma interface mais amigável para "File::Find". Ele permite que você construa regras que especifiquem os arquivos e diretórios desejados.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

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 corretamente usando uma plataforma LFS 12.0.

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 corretamente usando uma plataforma LFS 12.0.

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 corretamente usando uma plataforma LFS 12.0.

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Instalação do HTML::Tagset

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

HTTP::CookieJar-0.014

Introdução ao HTTP::CookieJar

HTTP::CookieJar fornece um cookie HTTP jar minimalista de agente de usuário(a).

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote
Dependências do HTTP::CookieJar
Exigidas

HTTP-Date-6.05

Recomendadas (exigidas para a suíte de teste)

Instalação do HTTP::CookieJar

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

HTTP::Cookies-6.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.72) conhece.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

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 corretamente usando uma plataforma LFS 12.0.

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 corretamente usando uma plataforma LFS 12.0.

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 corretamente usando uma plataforma LFS 12.0.

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 corretamente usando uma plataforma LFS 12.0.

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Instalação do IO::HTML

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

IPC::System::Simple-1.30

Introdução ao IPC::System::Simple

"IPC::System::Simple" elimina o trabalho árduo de chamar comandos externos e produzir diagnósticos detalhados.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Instalação do IPC::System::Simple

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

List::MoreUtils::XS-0.430

Introdução ao List::MoreUtils::XS

"List::MoreUtils::XS" é uma estrutura compilada de retaguarda para "List::MoreUtils"

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Instalação do List::MoreUtils::XS

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

List::SomeUtils-0.59

Introdução ao List::SomeUtils

"List::SomeUtils" fornece o que falta em "List::Util".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote
Dependências do List::SomeUtils::XS
Recomendadas (exigidas para a suíte de teste)

Instalação do List::SomeUtils::XS

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

List::UtilsBy-0.12

Introdução ao List::UtilsBy

"List::UtilsBy" fornece uma série de funções utilitárias de lista de ordem superior.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Instalação do List::UtilsBy

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

LWP::MediaTypes-6.04

Introdução ao LWP::MediaTypes

"LWP::MediaTypes" adivinha o tipo de mídia (ou seja, o tipo "MIME") de um arquivo ou "URL".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote
Dependências do MIME::Charset
Recomendadas

Instalação do MIME::Charset

Esse módulo usa uma variante das instruções padrão de construção e instalação:

yes '' | perl Makefile.PL &&
make            &&
make test

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

yes |: Perl perguntará se você deseja instalar um módulo adicional para lidar com codificações legadas em japonês, e outro que ele usaria para traduzir documentação para japonês. A opção padrão é "n"; usar "yes" permite que você automatize a construção.

Module::Implementation-0.09

Introdução ao Module::Implementation

"Module::Implementation" carrega uma das várias implementações alternativas subjacentes de um módulo (por exemplo, "eXternal Subroutine" ou "Perl" puro, ou uma implementação para um determinado Sistema Operacional).

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

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 corretamente usando uma plataforma LFS 12.0.

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Instalação do Module::Runtime

Embora "Module::Build" ainda esteja listado como um pré-requisito, ele não mais é necessário em sistemas com um make funcional.

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

MRO::Compat-0.15

Introdução ao MRO::Compat

O espaço de nome "mro" fornece vários utilitários para lidar com a ordem de resolução de métodos e cache de métodos em geral no "Perl" 5.9.5 e superior. Esse módulo fornece essas interfaces para versões anteriores do "Perl".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

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 corretamente usando uma plataforma LFS 12.0.

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 corretamente usando uma plataforma LFS 12.0.

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

Introdução ao Net::HTTP

A classe "Net::HTTP" é um cliente "HTTP" de baixo nível. Uma instância da classe representa uma conexão com um servidor "HTTP".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

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 corretamente usando uma plataforma LFS 12.0.

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Instalação do Number::Compare

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Package::Stash-0.40

Introdução ao Package::Stash

Manipular "stashes" (tabelas de símbolos do "Perl") ocasionalmente é necessário, mas incrivelmente confuso e fácil de errar. Esse módulo esconde tudo isso atrás de uma "API" simples.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

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 corretamente usando uma plataforma LFS 12.0.

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 corretamente usando uma plataforma LFS 12.0.

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Instalação do Path::Tiny

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Role::Tiny-2.002004

Introdução ao Role::Tiny

"Role::Tiny" é uma ferramenta minimalista de composição de papéis.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Instalação do Role::Tiny

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Scope::Guard-0.21

Introdução ao Scope::Guard

"Scope::Guard" fornece uma maneira conveniente de realizar limpeza ou outras formas de gerenciamento de recursos no final de um escopo.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

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 corretamente usando uma plataforma LFS 12.0.

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 corretamente usando uma plataforma LFS 12.0.

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 corretamente usando uma plataforma LFS 12.0.

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 corretamente usando uma plataforma LFS 12.0.

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Instalação do Sub::Quote

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Sub::Uplevel-0.2800

Introdução ao Sub::Uplevel

"Sub::Uplevel" permite que você engane um chamador dizendo que ele está executando em um quadro mais alto da pilha.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Instalação do Sub::Uplevel

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Term::Table-0.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 corretamente usando uma plataforma LFS 12.0.

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Instalação do Test::Deep

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Test::Exception-0.43

Introdução ao Test::Exception

"Test::Exception" fornece métodos convenientes para testar código baseado em exceções.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote
Dependências do Test::Exception
Exigidas

Sub-Uplevel-0.2800

Instalação do Test::Exception

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Test::Fatal-0.017

Introdução ao Test::Fatal

O módulo "Test::Fatal" fornece ajudantes simples para testar código que lança exceções.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote
Dependências do Test::File
Recomendadas (exigidas para a suíte de teste)

Instalação do Test::File

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Test::File::ShareDir-1.001002

Introdução ao Test::File::ShareDir

"Test::File::ShareDir" é algum encanamento de baixo nível para habilitar a distribuição a realizar testes enquanto consome os próprios diretórios de compartilhamento deles de maneira semelhante a como eles serão ocasionalmente instalados. Isso permite que File-ShareDir-1.118 veja a versão mais recente do conteúdo em vez do que estiver instalado no sistema alvo onde você estiver testando.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Instalação do Test::LeakTrace

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Test::Needs-0.002010

Introdução ao Test::Needs

"Test::Needs" pula os testes se um módulo solicitado não estiver presente.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Instalação do Test::Needs

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Test::Requires-0.11

Introdução ao Test::Requires

O módulo "Test::Requires" verifica se outro módulo (opcional) consegue ser carregado e, se não, pula todos os testes atuais.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

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 corretamente usando uma plataforma LFS 12.0.

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 corretamente usando uma plataforma LFS 12.0.

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 corretamente usando uma plataforma LFS 12.0.

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 corretamente usando uma plataforma LFS 12.0.

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 corretamente usando uma plataforma LFS 12.0.

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 corretamente usando uma plataforma LFS 12.0.

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

Introdução ao Text::CSV_XS

"Text::CSV_XS" fornece facilidades para a composição e decomposição de valores separados por vírgula.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Instalação do Text::CSV_XS

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Text::Diff-1.45

Introdução ao Text::Diff

"Text::Diff" realiza diferenças em arquivos e conjuntos de registros.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote
Dependências do Text::Diff
Exigidas

Algorithm-Diff-1.201

Instalação do Text::Diff

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

Text::Glob-0.11

Introdução ao Text::Glob

"Text::Glob" implementa correspondência de estilo "glob(3)" que pode ser usada para corresponder a texto, em vez de buscar nomes a partir de um sistema de arquivos.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Instalação do Tie::Cycle

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

TimeDate-2.33

Introdução ao TimeDate

"TimeDate" fornece diversas rotinas de manipulação de fuso horário.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

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 corretamente usando uma plataforma LFS 12.0.

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Instalação do Variable::Magic

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

WWW::RobotRules-6.02

Introdução ao WWW::RobotRules

"WWW::RobotRules" analisa arquivos robots.txt, criando um objeto "WWW::RobotRules" com métodos para verificar se o acesso a um determinado "URL" é proibido.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote
Dependências do WWW::RobotRules
Exigidas (tempo de execução)

libwww-perl-6.72 (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.4.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Instalação do XML::NamespaceSupport

Esse módulo usa as instruções padrão de construção e instalação:

perl Makefile.PL &&
make             &&
make test

Agora, como o(a) usuário(a) root:

make install

XML::SAX-1.02

Introdução ao XML::SAX

"XML::SAX" é uma "API" de acesso ao analisador "SAX" para "Perl". Inclui classes e "APIs" exigidas para implementar controladores "SAX", juntamente com uma classe de fábrica para retornar qualquer analisador "SAX" instalado no sistema do(a) usuário(a).

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote
Dependências do XML::SAX
Exigidas

libxml2-2.10.4, XML-NamespaceSupport-1.12 e XML-SAX-Base-1.09

Instalação do XML::SAX

Esse módulo usa uma variante das instruções padrão de construção e instalação:

yes | perl Makefile.PL &&
make            &&
make test

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

yes: "Perl" perguntará se você deseja alterar o "ParserDetails.ini" e, então, aguardará uma resposta. O padrão é "y". Usar "yes" te permite automatizar isso.

XML::SAX::Base-1.09

Introdução ao XML::SAX::Base

Esse módulo tem uma tarefa muito simples - ser uma classe base para controladores e filtros "PerlSAX".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

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

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 corretamente usando uma plataforma LFS 12.0.

Package Information

  • Download (HTTP): https://www.php.net/distributions/php-8.2.9.tar.xz

  • Download (FTP):

  • Download MD5 sum: 897c9c416663d03e516a68cb86b598f3

  • Download size: 11 MB

  • Estimated disk space required: 505 MB (com documentação)

  • Estimated build time: 1,5 UPC (com paralelismo=4; adicionar 1,6 UPC para testes)

Additional Downloads

PHP Dependencies

Recommended
Optional System Utilities and Libraries

Aspell-0.60.8, enchant-2.5.0, libxslt-1.1.38, 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.1, libexif-0.6.24, libjpeg-turbo-3.0.0, libpng-1.6.40, libtiff-4.5.1, libwebp-1.3.1, um ambiente gráfico, FDF Toolkit, GD, and t1lib

Optional Web Utilities

cURL-8.2.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.31, MariaDB-10.11.4 or MySQL, OpenLDAP-2.6.6, PostgreSQL-15.4, SQLite-3.42.0, unixODBC-2.3.12, 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.21.2, libmcrypt, and mhash

Editor 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.4 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.9 &&
install -v -m644    CODING_STANDARDS* EXTENSIONS NEWS README* UPGRADING* \
                    /usr/share/doc/php-8.2.9

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.9 &&
gunzip -v /usr/share/doc/php-8.2.9/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.9 --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-20230816 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.9

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 corretamente usando uma plataforma LFS 12.0.

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.68 e Valgrind-3.21.0

Opcionais (Para mais módulos adicionais)

libnsl-2.0.0 e Tk-8.6.13

Observações de Editor(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.4

Introdução ao Python 3

O pacote Python 3 contém o ambiente de desenvolvimento Python. Isso é útil para programação orientada a objetos, escrita de conjuntos sequenciais de comandos, prototipagem de aplicativos grandes ou desenvolvimento de aplicativos inteiros.

Nota

O Python 3 foi instalado no LFS. A única razão para reconstruí-lo aqui é se módulos opcionais forem necessários ou para atualizar esse pacote.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

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.76.1", "opencv-4.8.0", "Graphviz-8.1.0" (se o "swig" estiver instalado).

Antes de atualizar, você pode obter uma lista de módulos instalados com pip3 list. A lista pode estar incompleta porque alguns módulos Python não são instalados com pip3, por exemplo o módulo cracklib instalado por CrackLib-2.9.11. Use ls /usr/lib/python3.minor/site-packages para uma lista abrangente.

Os módulos Python originários do LFS também terão que ser reinstalados: flit-core, wheel, meson, MarkupSafe e Jinja2.

Informação do Pacote

  • Transferência (HTTP): https://www.python.org/ftp/python/3.11.4/Python-3.11.4.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: fb7f7eae520285788449d569e45b6718

  • Tamanho da transferência: 19 MB

  • Espaço em disco estimado exigido: 282 MB (adicionar 63 MB para testes)

  • Tempo de construção estimado: 1,9 UPC (adicionar 2,8 UPC para testes; ambos usando paralelismo=4)

Transferência Adicional Opcional

Dependências do "Python" 3

Recomendadas
Opcionais

BlueZ-5.68, GDB-13.2 (exigido para alguns testes), Valgrind-3.21.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 Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/Python3

Instalação do Python 3

Instale o "Python 3" executando os seguintes comandos:

CXX="/usr/bin/g++"              \
./configure --prefix=/usr        \
            --enable-shared      \
            --with-system-expat  \
            --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.4/html

tar --strip-components=1 \
    --no-same-owner       \
    --no-same-permissions \
    -C /usr/share/doc/python-3.11.4/html \
    -xvf ../python-3.11.4-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.4 /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.4

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.

Nota

Se você quiser executar testes, vários dos seguintes módulos dependem do módulo central python sqlite3 que não foi construído no LFS. Portanto, é recomendado reconstruir o Python depois de instalar a dependência recomendada listada em Python-3.11.4.

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote
Dependências do Asciidoc
Opcionais (tempo de execução)

docbook-xsl-nons-1.79.2, fop-2.9, libxslt-1.1.38, 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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote
Dependências do CSSSelect
Exigidas

setuptools_scm-7.1.0

Opcionais (para testagem)

lxml-4.9.3, pluggy-1.0.0 e pytest-7.4.0

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

Introdução ao Módulo CacheControl

CacheControl é uma porta dos algoritmos de cache em "httplib2" para uso com solicitações de objeto de sessão. Ele foi escrito porque o melhor suporte do "httplib2" para cache frequentemente é mitigado pela falta de segurança de camada. O mesmo se aplica às solicitações em termos de cache.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote
Dependências do CacheControl
Exigidas

msgpack-1.0.4 e requests-2.31.0

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.13.1.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.36

Introdução ao Módulo Cython

O pacote Cython fornece um compilador para escrever extensões "C" para a linguagem "Python".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

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 e cythonize
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/lib/python3.11/site-packages/Cython, /usr/lib/python3.11/site-packages/Cython-0.29.36.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.29.1

Introdução ao dbusmock

dbusmock é uma biblioteca "Python" útil para escrever testes para logiciário que se comunique com serviços "D-Bus".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote
Dependências do dbusmock
Exigidas

D-Bus Python-1.3.2

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.29.1.dist-info

D-Bus Python-1.3.2

Introdução ao Módulo D-Bus Python

"D-Bus Python" fornece ligações "Python" para a interface "API" "D-Bus".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote
Dependências do "D-Bus Python"
Exigidas

dbus-1.14.8, GLib-2.76.4, meson_python-0.12.0 e patchelf-0.17.2

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

Introdução ao docutils

"docutils" é um conjunto de módulos e programas "Python" para processar documentos de texto simples em formatos como "HTML", "XML" ou "LaTeX".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Observações de Editor(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.20.1.dist-info}
Descrições Curtas

docutils

converte documentos em vários formatos

rst2html

gera documentos "(X)HTML" a partir de fontes independentes "reStructuredText"

rst2html4

gera documentos "(X)HTML" a partir de fontes independentes "reStructuredText"

rst2html5

gera documentos "HTML5" a partir de fontes independentes "reStructuredText"

rst2latex

gera documentos "LaTeX" a partir de fontes independentes "reStructuredText"

rst2man

gera documentos manuais simples "Unix" a partir de fontes independentes "reStructuredText"

rst2odt

gera documentos "OpenDocument/OpenOffice/ODF" a partir de fontes independentes "reStructuredText"

rst2odt_prepstyles

Corrige um "styles.odt" gerado por processador de texto para uso do "odtwriter"

rst2pseudoxml

gera pseudo "XML" a partir de fontes independentes "reStructuredText" (para fins de teste)

rst2s5

gera apresentação de slides "(X)HTML" "S5" a partir de fontes independentes "reStructuredText"

rst2xetex

gera documentos "LaTeX" a partir de fontes independentes "reStructuredText" para compilação com as variantes "TeX" compatíveis com "Unicode" "XeLaTeX" ou "LuaLaTeX"

rst2xml

gera "XML" nativo do "Docutils" a partir de fontes independentes "reStructuredText"

rstpep2html

gera "(X)HTML" a partir de arquivos "PEP" no formato "reStructuredText"

Doxypypy-0.8.8.7

Introdução ao Módulo Doxypypy

O pacote "Doxypypy" é um filtro "doxygen" para "Python".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote
Dependências do Doxypypy
Exigidas

chardet-5.1.0 e Doxygen-1.9.7 (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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote
Dependências do Doxyqml
Exigidas (Tempo de Execução)

Doxygen-1.9.7

Opcionais (para testagem)

pytest-7.4.0

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote
Dependências do Gi-DocGen
Exigidas

Markdown-3.4.1, Pygments-2.16.1 e typogrify-2.0.7

Opcionais (para testagem)

pytest-7.4.0

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.4 (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.4 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.4 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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote
Dependências do libxml2 (Python2)
Exigidas

libxml2-2.10.4 e Python-2.7.18

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

Introdução ao Módulo lxml

"lxml" fornece ligações "Python" para libxslt-1.1.38 e libxml2-2.10.4.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote
Dependências do lxml
Exigidas

libxslt-1.1.38

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.3.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 corretamente usando uma plataforma LFS 12.0.

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

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.25.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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote
Dependências do NumPy
Exigidas

cython-0.29.36

Opcionais

fortran oriundo do GCC-13.2.0, lapack e cblas e openblas

Opcionais (para testagem)

attrs-22.2.0, pytest-7.4.0 e 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.1

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote
Dependências do Packaging
Opcionais (para testagem)

pytest-7.4.0 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.4.0" 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.1.dist-info

Py3c-1.4

Introdução ao Py3c

"Py3c" te ajuda a portar extensões "C" para "Python" 3. Ele fornece um guia detalhado e um conjunto de macros para facilitar a portabilidade e reduzir o clichê.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

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)

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote
Dependências do PyAtSpi2
Exigidas

PyGObject-3.44.1

Recomendadas

Instalação do PyAtSpi2

Para construir "PyAtSpi2" como um módulo "Python 3", execute os seguintes comandos:

./configure --prefix=/usr --with-python=/usr/bin/python3

Esse pacote não vem com uma suíte de teste.

Para instalar o módulo "Python 3", execute o seguinte comando como o(a) usuário(a) "root":

make install

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/lib/python3.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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote
Dependências do PyCairo
Exigidas

Cairo-1.17.6 e Python-2.7.18

Opcionais

Hypothesis (para testes)

Instalação do PyCairo

Nota

Essa versão do "PyCairo" é mantida somente para pacotes, como "Gimp-2.10.34", 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.24.0

Introdução ao Módulo PyCairo

"PyCairo" fornece ligações "Python" para "Cairo".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote
Dependências do PyCairo
Exigidas

Cairo-1.17.6

Opcionais

Hypothesis e pytest-7.4.0 (para testes)

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.34", [então] use "PyCairo-1.18.2"

Instale "PyCairo" para "Python3" executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Para executar os testes, esse pacote exige o módulo opcional pytest. Se ele estiver instalado, execute os testes executando ninja test.

Agora, como o(a) usuário(a) "root":

ninja install

Conteúdo

Aplicativo Instalado: Nenhum(a)
Biblioteca Instalada: Nenhum(a)
Diretórios Instalados: /usr/include/pycairo, /usr/lib/python3.11/site-packages/cairo e /usr/lib/python3.11/site-packages/pycairo-1.24.0.egg-info

PyCryptodome-3.18.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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

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.18.0.dist-info

Pygments-2.16.1

Introdução ao Módulo Pygments

"Pygments" é um realçador geral de sintaxe escrito em "Python", para mais de trezentas (300) linguagens.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

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.16.1.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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote
Dependências do PyGObject
Exigidas

GLib-2.76.4, PyCairo-1.18.2 e Python-2.7.18

Opcionais

gobject-introspection-1.76.1 e libxslt-1.1.38 (para construir a documentação)

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.76.1". Observe que ela conflita com "PyGObject-3.44.1".

--disable-docs: Essa opção desabilita a reconstrução da documentação "HTML" se "libxslt-1.1.38" 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.44.1

Introdução ao Módulo PyGObject3

"PyGObject3" fornece ligações "Python" para a classe "GObject" originária da "GLib".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote
Dependências do PyGObject3
Exigidas

gobject-introspection-1.76.1 e PyCairo-1.24.0 (módulo "Python 3")

Opcionais (para os testes)

GTK-4.12.0, pep8, pyflakes e pytest-7.4.0

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 setup --prefix=/usr --buildtype=release .. &&
ninja

Para testar os resultados, emita: "ninja test". É necessária uma sessão gráfica já ativa com endereço de barramento para executar os testes. Outra rodada de testes possivelmente informe "ERROR" se "GTK-4.12.0" não estiver instalado.

Agora, como o(a) usuário(a) "root":

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

Conteúdo

Aplicativos Instalados: 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 corretamente usando uma plataforma LFS 12.0.

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

Exigidas (módulo "pango")

Pango-1.50.14

Exigidas (módulo "pangocairo")

PyCairo-1.18.2 e Pango-1.50.14

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

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.38" 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.1.1

Introdução ao Módulo pyparsing

O módulo "pyparsing" é uma abordagem alternativa para criar e executar gramáticas simples, versus a abordagem tradicional "lex/yacc", ou o uso de expressões regulares. Ele fornece uma biblioteca de classes que o código cliente usa para construir a gramática diretamente no código "Python".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote
Dependências do pyparsing
Opcionais

railroad-diagrams (também necessário para testes)

Opcionais (para testagem)

pytest-7.4.0

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.4.0 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.1.1.dist-info

pySerial-3.5

Introdução ao Módulo pySerial

O módulo "pySerial" encapsula o acesso à porta serial.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote
Dependências do pySerial
Exigidas

setuptools_scm-7.1.0

Opcionais (para testagem)

pluggy-1.0.0 e pytest-7.4.0

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

Introdução ao Módulo Pytest

A estrutura "Pytest" facilita escrever testes pequenos e legíveis e pode escalar para suportar testagem complexa funcional para aplicativos e bibliotecas.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote
Dependências do Pytest
Exigidas

iniconfig-2.0.0, packaging-23.1, pluggy-1.0.0 e py-1.11.0

Recomendadas
Opcionais (para testagem)

Pygments-2.16.1, requests-2.31.0, argcomplete, elementpath, hypothesis, mock, nose, sortedcontainers 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.4.0.dist-info
Descrições Curtas

pytest

configura, gerencia e (ou) executa testes nos diretórios fonte do módulo "python"

PyXDG-0.28

Introdução ao Módulo PyXDG

"PyXDG" é uma biblioteca "Python" para acessar os padrões do "freedesktop.org".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

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

Introdução ao Módulo PyYAML

"PyYAML" é um módulo "Python" que implementa o analisador e emissor "YAML" de próxima geração.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote
Dependências do PyYAML
Exigidas

cython-0.29.36 e libyaml-0.2.5

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/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-16.0.5 ainda depende desse módulo.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote
Dependências do Recommonmark
Exigidas

commonmark-0.9.1 e sphinx-7.1.2

Opcionais (para testagem)

pytest-7.4.0

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

Introdução ao Módulo Requests

O pacote "Requests" é uma biblioteca "HTTP" elegante e simples para "Python", construída para seres humanos. Permite enviar solicitações "HTTP/1.1" extremamente facilmente.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote
Transferência Adicional
Dependências do Requests
Exigidas

charset-normalizer-3.0.1, idna-3.4 e urllib3-2.0.2

Recomendadas
Opcionais

PySocks (também necessário para testagem)

Opcionais (para testagem)

pytest-7.4.0, 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.31.0-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.4.0" 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.31.0.dist-info

Scour-0.38.2

Introdução ao Módulo Scour

"Scour" é um otimizador/limpador "Scalable Vector Graphics" ("SVG") que reduz o tamanho deles otimizando a estrutura e removendo dados desnecessários.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote
Dependências do Scour
Exigidas

six-1.16.0

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

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

Introdução ao Módulo Sphinx

O pacote "Sphinx" é um conjunto de ferramentas para traduzir alguns formatos de texto estruturado em documentação bonita em vários formatos.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote
  • Transferência (HTTP): https://github.com/sphinx-doc/sphinx/archive/v7.1.2/sphinx-7.1.2.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: ae8427a2035ebd4359c3df8f5436c4b9

  • Tamanho da transferência: 6,6 MB

  • Espaço em disco estimado exigido: 27 MB (adicionar 40 MB para testes)

  • Tempo de construção estimado: menos que 0,1 UPC (1,0 UPC para testes)

Dependências do Sphinx
Exigidas

alabaster-0.7.13, Babel-2.11.0, docutils-0.20.1, imagesize-1.4.1, packaging-23.1, Pygments-2.16.1, requests-2.31.0, snowballstemmer-2.2.0, sphinxcontrib-applehelp-1.0.4, sphinxcontrib-devhelp-1.0.2, sphinxcontrib-htmlhelp-2.0.1, sphinxcontrib-jsmath-1.0.1, sphinxcontrib-qthelp-1.0.3 e sphinxcontrib-serializinghtml-1.1.5

Opcionais (para testes)

cython-0.29.36, pytest-7.4.0, texlive-20230313, filelock 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.36" e "pytest-7.4.0" 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 filelock                 &&
python3 /usr/bin/pytest
deactivate

Quatro sub testes em tests/test_ext_math.py são conhecidos por falharem.

Explicações do Comando

-w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist".

--no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção.

--no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto.

--no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links").

--find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist".

--no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root".

--no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root".

--upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada.

--force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote.

--no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall".

Conteúdo

Aplicativos Instalados: 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-7.1.2.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.2

Introdução ao Módulo Sphinx_rtd_theme

O módulo "sphinx_rtd_theme" é um tema "Sphinx" projetado para fornecer uma ótima experiência de leitura para usuários(as) de documentação em áreas de trabalho e dispositivos móveis. Esse tema é usado principalmente no "Read the Docs", mas pode funcionar com qualquer projeto "Sphinx".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote
Dependências do Sphinx_rtd_theme
Exigidas

sphinx-7.1.2 e sphinxcontrib-jquery-4.1

Opcionais (para testes)

pytest-7.4.0 e readthedocs-sphinx-ext

Instalação do Sphinx_rtd_theme

Corrija versões erradas para dependências:

sed -e s/0.19/0.21/ \
    -e '/sphinx.*7/s/7/8/' \
    -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.4.0" 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.2.dist-info

Dependências do "Python"

Introdução às Dependências do Python

Os módulos "Python" listados em "Módulos "Python"" tem dependências que não são referenciadas por outros pacotes no BLFS. Essas dependências estão listadas aqui. Eles não serão atualizados regularmente, a menos que uma versão mais recente seja necessária.

Importante

No BLFS, normalmente construímos e instalamos módulos "Python" 3 com pip3. Por favor tome cuidado para que os comandos "pip3 install" no livro sejam executados como "root", a menos que seja para um ambiente virtual "Python". Executar o "pip3 install" como um(a) usuário(a) não "root" pode parecer funcionar bem, mas fará com que o módulo instalado fique inacessível para outros(as) usuários(as).

"pip3 install" não reinstalará um módulo já instalado por padrão. Para usar o comando "pip3 install" para atualizar um módulo (por exemplo, de "meson-0.61.3" para "meson-0.62.0"), insira "--upgrade" na linha de comando. Se for realmente necessário desatualizar um módulo ou reinstalar a mesma versão por algum motivo, [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 corretamente usando uma plataforma LFS 12.0.

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 corretamente usando uma plataforma LFS 12.0.

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.4.0, 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 corretamente usando uma plataforma LFS 12.0.

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.4.0, Python-3.11.4 (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.4.0" 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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote
Dependências do Chardet
Opcionais (para testagem)

pytest-7.4.0

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote
Dependências do Charset-normalizer
Opcionais (para testagem)

pytest-7.4.0 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.4.0" 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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote
Dependências do Commonmark
Opcionais (para testagem)

pytest-7.4.0, 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.4.0" 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 corretamente usando uma plataforma LFS 12.0.

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

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote
Dependências do Hatchling
Exigidas

editables-0.3, packaging-23.1, 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 corretamente usando uma plataforma LFS 12.0.

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

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, tests/test_build.py::test_write, é 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: 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 corretamente usando uma plataforma LFS 12.0.

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
Opcionais (para testagem)

pytest-7.4.0

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote
Dependências do Imagesize
Opcionais (para testagem)

pytest-7.4.0 e requests-2.31.0

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

Os testes para esse pacote são conhecidos por estarem quebrados. Para testar a instalação de qualquer maneira, execute pytest.

Explicações do Comando

-w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist".

--no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção.

--no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto.

--no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links").

--find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist".

--no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root".

--no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root".

--upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada.

--force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote.

--no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall".

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/lib/python3.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 corretamente usando uma plataforma LFS 12.0.

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote
Dependências do Markdown
Opcionais (para testagem)

pytest-7.4.0, PyYAML-6.0.1 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.4.0" e "PyYAML-6.0.1" 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 corretamente usando uma plataforma LFS 12.0.

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote
Dependências do MessagePack
Exigidas

cython-0.29.36 e setuptools_scm-7.1.0

Opcionais (para testagem)

pluggy-1.0.0 e pytest-7.4.0

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote
Dependências do Pathspec
Opcionais (para testagem)

pytest-7.4.0

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote
Dependências do Pluggy
Recomendadas
Opcionais (para testagem)

pytest-7.4.0 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.4.0" 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 corretamente usando uma plataforma LFS 12.0.

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":

pip3 install --no-index --find-links dist --no-cache-dir --no-user py

Devido à descontinuação desse pacote, a suíte de teste não é mantida e não pode ser executada.

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote
Dependências do Pyproject-Metadata
Exigidas

packaging-23.1

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote
Dependências do Pytz
Opcionais (para testagem)

pytest-7.4.0

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote
Dependências do Setuptools_scm
Exigidas

packaging-23.1 e typing_extensions-4.4.0

Opcionais (para testagem)

git-2.41.0, Mercurial-6.5.1 e pytest-7.4.0

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Instalação do Smartypants

Nota

O tarball extrai para o diretório smartypants.py-2.0.1.

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. Executar-se uma busca por connected também encontraria documentos que tenham somente as outras formas.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

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

Introdução ao Módulo Sphinxcontrib-applehelp

O pacote "Sphinxcontrib-applehelp" é uma extensão "Sphinx" que produz livros de ajuda da "Apple".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote
Dependências do Sphinxcontrib-applehelp
Opcionais (para testagem)

pytest-7.4.0 e sphinx-7.1.2 (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.4.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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote
Dependências do Sphinxcontrib-devhelp
Opcionais (para testagem)

pytest-7.4.0 e sphinx-7.1.2 (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.1

Introdução ao Módulo Sphinxcontrib-htmlhelp

O pacote "Sphinxcontrib-htmlhelp" é uma extensão "Sphinx" que renderiza arquivos de ajuda "HTML".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote
Dependências do Sphinxcontrib-htmlhelp
Opcionais (para testagem)

pytest-7.4.0, sphinx-7.1.2 (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.4.0" 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                            &&
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/sphinxcontrib e /usr/lib/python3.11/site-packages/sphinxcontrib_htmlhelp-2.0.1.dist-info

Sphinxcontrib-jquery-4.1

Introdução ao Módulo Sphinxcontrib-jquery

O pacote "Sphinxcontrib-jquery" é uma extensão "Sphinx" que inclui "jQuery" nos lançamentos mais recentes do "Sphinx".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote
Dependências do Sphinxcontrib-jquery
Opcionais (para testagem)

pytest-7.4.0

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-4.1.dist-info

Sphinxcontrib-jsmath-1.0.1

Introdução ao Módulo Sphinxcontrib-jsmath

O pacote "Sphinxcontrib-jsmath" é uma extensão "Sphinx" que renderiza matemática de exibição em "HTML" via "JavaScript".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote
Dependências do Sphinxcontrib-jsmath
Opcionais (para testagem)

pytest-7.4.0 e sphinx-7.1.2 (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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote
Dependências do Sphinxcontrib-qthelp
Opcionais (para testagem)

pytest-7.4.0 e sphinx-7.1.2 (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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote
Dependências do Sphinxcontrib-serializinghtml
Opcionais (para testagem)

pytest-7.4.0 e sphinx-7.1.2 (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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

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 corretamente usando uma plataforma LFS 12.0.

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

Introdução ao Módulo Urllib3

O módulo "Urllib3" é um cliente "HTTP", poderoso e amigável para com o(a) usuário(a), para "Python". Ele traz muitos recursos críticos que estão ausentes nas bibliotecas padrão do "Python".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote
Dependências do Urllib3
Exigidas

hatchling-1.12.2

Opcionais (para testes)

pytest-7.4.0, mock, PySocks, pytest-timeout, python-dateutil, tornado e trustme

Instalação do Urllib3

Se você quiser executar os testes, remova alguns que possivelmente travem:

rm -v test/test_retry.py \
      test/contrib/test_pyopenssl.py \
      test/contrib/test_securetransport.py \
      test/with_dummyserver/test_socketlevel.py

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

Nota

Executar os testes possivelmente resulte no procedimento abaixo travando e não é recomendado.

Supondo que "pytest-7.4.0" 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  &&
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-2.0.2.dist-info

Last updated on

Ruby-3.2.2

Introdução ao Ruby

O pacote "Ruby" contém o ambiente de desenvolvimento "Ruby". Isso é útil para "scripts" orientados a objetos.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP): https://cache.ruby-lang.org/pub/ruby/3.2/ruby-3.2.2.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 377853f31d10bfe37c58b8537fc3e05d

  • Tamanho da transferência: 14 MB

  • Espaço em disco estimado exigido: 694 MB (adicionar 1,0 GB para documentos da API C)

  • Tempo de construção estimado: 1,2 UPC (usando paralelismo=4; adicionar 4,6 UPC para testes; adicionar 0,6 UPC para documentos da API C)

Dependências do Ruby

Exigidas

libyaml-0.2.5

Opcionais

Base de Dados Berkeley-5.3.28, Doxygen-1.9.7, Graphviz-8.1.0, rustc-1.71.1, Tk-8.6.13, Valgrind-3.21.0 e DTrace

Instalação do Ruby

Instale "Ruby" executando o seguinte comando:

./configure --prefix=/usr      \
            --enable-shared    \
            --without-valgrind \
            --without-baseruby \
            --docdir=/usr/share/doc/ruby-3.2.2 &&
make

Opcionalmente, construa os documentos da "API" "C" executando os seguintes comandos:

make capi

Os testes exigem que a nova versão do Ruby já esteja instalada para funcionar corretamente. Se quiser executar os testes, execute-os depois de instalar o pacote.

Agora, como o(a) usuário(a) "root":

make install

Para testar os resultados, emita: make -k 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 tenha um componente escreví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.

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

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

--disable-install-doc: Essa chave desabilita construir e instalar índices "rdoc" e documentos da "API" "C".

--disable-install-rdoc: Essa chave desabilita construir e instalar índices "rdoc".

--disable-install-capi: Essa chave desabilita construir e instalar documentos da "API" "C".

Conteúdo

Aplicativos Instalados: bundle, bundler, erb, gem, irb, racc, rake, rbs, rdbg, rdoc, ri, ruby e typeprof
Bibliotecas Instaladas: libruby.so
Diretórios Instalados: /usr/include/ruby-3.2.0, /usr/lib/ruby, /usr/share/doc/ruby-3.2.2 e /usr/share/ri

Descrições Curtas

bundle

cria pacotes de "Ruby Gems"

bundler

gerencia as dependências de um aplicativo durante todo o ciclo de vida dele

erb

é uma estrutura de interação direta com o(a) usuário(a) em linha de comando para "eRuby", que fornece um sistema de modelos para "Ruby"

gem

é o comando para "RubyGems", que é um sofisticado gerenciador de pacotes para "Ruby". Isso é semelhante ao comando "pip" do "Python"

irb

é a interface interativa para "Ruby"

rake

é um utilitário de construção semelhante ao "make" para "Ruby"

rdbg

é um depurador interativo para "Ruby"

rdoc

gera documentação "Ruby"

ri

exibe documentação a partir de uma base de dados relacionada a classes, módulos e métodos "Ruby"

ruby

é uma linguagem de "script" interpretada para programação orientada a objetos rápida e fácil

libruby.so

contém as funções da "API" exigidas pelo "Ruby"

Rustc-1.71.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.71.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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP): https://static.rust-lang.org/dist/rustc-1.71.1-src.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: b6f9973de878e37a589f0989e4138480

  • Tamanho da transferência: 145 MB

  • Espaço em disco estimado exigido: 8,9 GB (292 MB instalado); adicionar 6,4 GB se executar os testes

  • Tempo de construção estimado: 6,7 UPC (incluindo o tempo de transferência; adicionar 6,2 UPC para os testes, ambos usando paralelismo=8)

Dependências do Rust

Exigidas

CMake-3.27.2 e cURL-8.2.1

Nota

Uma conexão com a Internet é necessária para construir esse pacote.

Recomendadas

Nota

Se uma dependência recomendada não estiver instalada, [então] uma cópia enviada no "tarball" do fonte do "Rustc" será construída e usada.

Opcionais

GDB-13.2 (usado pela suíte de teste se estiver presente), git-2.41.0 (exigido pela suíte de teste) e libgit2

Observações de Editor(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, 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.71.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.71.1     &&
ln -svfn rustc-1.71.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", "rustdoc", "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.71.1"
docdir = "share/doc/rustc-1.71.1"

[rust]
channel = "stable"
description = "para BLFS 12.0"

# 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:

SSL_CERT_DIR=/etc/ssl/certs \
python3 ./x.py test --verbose --no-fail-fast | tee rustc-testlog

Alguns testes ui possivelmente falhem (o número de falhas depende do comprimento do caminho absoluto para o diretório rustc-1.71.1-src). Essas falhas podem ser identificadas visualizando-se o arquivo rustc-testlog e pesquisando as mensagens note: the full type name has been written to... e elas podem ser seguramente ignoradas.

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.

Em alguns sistemas, automatizar os testes possivelmente resulte nos testes suspendendo em test: combine_install_with_separate_uninstall. Se isso acontecer, o problema pode ser contornado pressionando-se a tecla Enter. O teste também pode ser removido com:

sed -e '/runtest combine_install_with/s/^/#/g' -i src/tools/rust-installer/test.sh

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 for baixo, verifique se existem 'failures:' no registro e revise as linhas acima, especialmente as linhas 'stderr:'. Qualquer menção ao SIGSEGV ou ao sinal onze (11) em um teste falho é motivo de preocupação.

Se você receber algum outro teste falho que informe um número de problema, então você deveria procurar por esse problema. Por exemplo, quando "Rustc" >= 1.41.1 era construído com uma versão do "LLVM" do sistema anterior à 10.0, o teste para o problema "69225" falhava https://github.com/rust-lang/rust/issues/69225 e isso deveria ser considerado como uma falha crítica (eles(as) lançaram 1.41.1 por causa disso). A maioria das outras falhas não será crítica.

Portanto, você deveria determinar o número de falhas.

O número de testes que passaram e falharam pode ser encontrado executando:

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

O sistema de construção tenta instalar alguns arquivos duas vezes e, durante a segunda tentativa, renomeia o antigo (instalado na primeira tentativa) com o sufixo .old. Como o(a) usuário(a) root, remova esses arquivos:

find /opt/rustc-1.71.1 -name "*.old" -delete

Ainda como o(a) usuário(a) root, crie um link simbólico de um arquivo de completação do Zsh para o local correto:

install -vdm755 /usr/share/zsh/site-functions      &&
ln -sfv /opt/rustc/share/zsh/site-functions/_cargo \
        /usr/share/zsh/site-functions

Explicações do Comando

ln -svfn rustc-1.71.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", "rustdoc", "rustfmt"]: construa somente as ferramentas a partir do perfil 'padrão' no comando binário rustup que é recomendado para a maioria dos(as) usuários(as). As outras ferramentas são improváveis que sejam úteis, a menos que se use analisadores (antigos) de código ou se edite a biblioteca padrão.

channel = "stable": isso garante que somente recursos estáveis possam ser usados. O padrão no config.toml é o de usar recursos de desenvolvimento, o que não é apropriado para uma versão lançada.

[target.x86_64-unknown-linux-gnu]: a sintaxe do config.toml exige uma entrada llvm-config para cada alvo para o qual o LLVM do sistema esteja para ser usado. Mude o alvo para [target.i686-unknown-linux-gnu] se você estiver construindo em x86 de 32 bits. Essa seção inteira pode ser omitida se você desejar construir contra o LLVM enviado ou não tiver clang, mas a construção resultante será maior e demorará mais.

export LIBSSH2_SYS_USE_PKG_CONFIG=1: Permite que o "cargo" se vincule à "libssh2" do sistema.

SSL_CERT_DIR=/etc/ssl/certs: Contorne um problema que causa falhas de teste com o esquema de armazenamento de certificados de AC usado pelo make-ca-1.12.

--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 o Rust

Informação de Configuração

Se você instalou "rustc" em "/opt", [então] você precisa atualizar os seguintes arquivos de configuração, de forma que "rustc" seja encontrado corretamente por outros pacotes e processos do sistema.

Como o(a) usuário(a) "root", crie o arquivo "/etc/profile.d/rustc.sh":

cat > /etc/profile.d/rustc.sh << "EOF"
# 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.71.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.71.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.5.2

Introdução ao SCons

"SCons" é uma ferramenta para construir logiciário (e outros arquivos) implementada em "Python".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP): https://downloads.sourceforge.net/scons/SCons-4.5.2.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 4b868f068d568b42b975d7cb357c65d6

  • Tamanho da transferência: 3,0 MB

  • Espaço em disco estimado exigido: 52 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.38

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.5.2-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 corretamente usando uma plataforma LFS 12.0.

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.40, PCRE-8.45 e Oniguruma

Instalação do Slang

Nota

Esse pacote não suporta construção paralela.

Instale "slang" executando os seguintes comandos:

./configure --prefix=/usr \
           --sysconfdir=/etc \
           --with-readline=gnu &&
make -j1

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

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 corretamente usando uma plataforma LFS 12.0.

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

Recomendadas
Opcionais

Apache-2.4.57, Boost-1.83.0, Cyrus SASL-2.1.28, dbus-1.14.8, Doxygen-1.9.7 (para gerar documentação "HTML"), gnome-keyring-42.1, libsecret-0.21.0, Py3c-1.4 (para as ligações "Python" e testes), Python-2.7.18 (com suporte "sqlite" para os testes), Ruby-3.2.2, SWIG-4.1.1 (para construir ligações "Perl", "Python" e "Ruby"), LZ4 e UTF8proc

Opcionais (para as ligações Java)

Um de OpenJDK-20.0.2, Dante ou Jikes; JUnit 4 (para testar as ligações "Java") e apache-ant-1.10.14.

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.7" 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.14" 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.57" 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.38/{,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.4p1

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-20230816":

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 corretamente usando uma plataforma LFS 12.0.

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.83.0" para testes e quaisquer das linguagens mencionadas na introdução, como dependências de tempo de execução

Instalação do SWIG

Instale "SWIG" executando os seguintes comandos:

./configure --prefix=/usr                     \
            --without-javascript               \
            --without-maximum-compile-warnings &&
make

Para testar os resultados, emita: "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.48.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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "Sysprof"

Exigidas

desktop-file-utils-0.26, GTK-4.12.0, itstool-2.0.7, JSON-GLib-1.6.6, libadwaita-1.3.4, libdazzle-3.44.0, libunwind-1.6.2 e, Polkit-123

Instalação do Sysprof

Instale "Sysprof" executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Para testar os resultados, emita: "ninja test".

Agora, como o(a) usuário(a) "root":

ninja install

Conteúdo

Aplicativos Instalados: 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 corretamente usando uma plataforma LFS 12.0.

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

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"

unifdef-2.12

Introdução ao unifdef

O pacote unifdef contém um utilitário que é útil para remover do código condicionais de pré processador.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP): https://dotat.at/prog/unifdef/unifdef-2.12.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: b225312c110cd2600ca7166bd0419751

  • Tamanho da transferência: 88 KB

  • Espaço em disco estimado exigido: 1,9 MB

  • Tempo de construção estimado: menos que 0,1 UPC

Instalação do unifdef

Instale o unifdef executando os seguintes comandos:

make

Para testar os resultados, emita: make test.

Agora, como o(a) usuário(a) root:

make prefix=/usr install

Conteúdo

Aplicativos Instalados: unifdef e unifdefall
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: Nenhum(a)

Descrições Curtas

unifdef

remove do código condicionais de pré processador

unifdefall

remove do código condicionais de pré processador ao longo de uma árvore inteira

Vala-0.56.11

Introdução ao Vala

"Vala" é uma nova linguagem de programação que visa a trazer recursos modernos de linguagem de programação para desenvolvedores(as) "GNOME" sem impor quaisquer requisitos adicionais de tempo de execução e sem usar uma "ABI" diferente em comparação com aplicativos e bibliotecas escritos em "C".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do Vala

Exigidas

GLib-2.76.4

Recomendadas
Opcionais

dbus-1.14.8 (exigido para os testes), libxslt-1.1.38 (exigido para gerar a documentação), help2man, jing e weasyprint

Instalação do Vala

Instale Vala executando os seguintes comandos:

./configure --prefix=/usr &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) "root":

make install

Explicações do Comando

--disable-valadoc: Essa opção é exigida se "Graphviz-8.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.21.0

Introdução ao Valgrind

"Valgrind" é uma estrutura de instrumentação para construir ferramentas dinâmicas de análise. Existem ferramentas "Valgrind" que conseguem detectar automaticamente muitos defeitos de gerenciamento de memória e de camadas e perfilar aplicativos em detalhes. "Valgrind" também pode ser usado para construir novas ferramentas.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "Valgrind"

Opcionais

GDB-13.2 (para os testes), LLVM-16.0.5 (com "Clang") e Which-2.21 (para os testes)

Instalação do Valgrind

Instale "Valgrind" executando os seguintes comandos:

sed -i 's|/doc/valgrind||' docs/Makefile.in &&

./configure --prefix=/usr \
           --datadir=/usr/share/doc/valgrind-3.21.0 &&
make

Para testar os resultados, emita: "make regtest". Os testes possivelmente travem para sempre se "GDB-13.2" não estiver instalado. Alguns testes também são conhecidos por travarem, dependendo da versão da "glibc". Alguns testes podem falhar em várias suítes. Testes problemáticos podem ser desabilitados mudando-se a linha "prereq:" no arquivo ".vgtest" correspondente para "prereq: false". Por exemplo:

sed -e 's@prereq:.*@prereq: false@' \
   -i {helgrind,drd}/tests/pth_cond_destroy_busy.vgtest

Nota

Os testes "OpenMP" serão pulados se a "libgomp" tiver sido compilada com "--enable-linux-futex" (o padrão). Se necessário, apenas recompile a biblioteca "libgomp" originária da árvore de construção do "gcc", passando "--disable-linux-futex" para configurar, armazenando a biblioteca em algum lugar e mudando o link de "/usr/lib/libgomp.so.1" para apontar para a nova biblioteca.

Agora, como o(a) usuário(a) "root":

make install

Explicações do Comando

sed -i ... docs/Makefile.in : Esse "sed" fornece a instalação da documentação em um diretório versionado.

--enable-lto=yes: Essa opção permite construir "Valgrind" com "Link Time Optimization" ("LTO"). Isso produz um "Valgrind" menor/mais rápido (até 10%), mas o tempo de construção aumenta para cerca de 5,5 UPC.

Conteúdo

Aplicativos Instalados: callgrind_annotate, callgrind_control, cg_annotate, cg_diff, cg_merge, ms_print, valgrind, valgrind-di-server, valgrind-listener e vgdb
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/lib/valgrind, /usr/libexec/valgrind, /usr/include/valgrind e /usr/share/doc/valgrind-3.21.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 corretamente usando uma plataforma LFS 12.0.

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

Instalação do yasm

Instale "yasm" executando os seguintes comandos:

sed -i 's#) ytasm.*#)#' Makefile.in &&

./configure --prefix=/usr &&
make

Para testar os resultados, emita: make -j1 check.

Agora, como o(a) usuário(a) "root":

make install

Explicações do Comando

sed -i 's#) ytasm.*#)#' Makefile.in: Esse "sed" impede a compilação de dois aplicativos ("vsyasm" e "ytasm") que são de uso somente no "Microsoft Windows".

Conteúdo

Aplicativo Instalado: yasm
Biblioteca Instalada: libyasm.a
Diretório Instalado: /usr/include/libyasm

Descrições Curtas

yasm

é um montador portável e redirecionável que suporta os conjuntos de instruções "x86" e "AMD64", aceita sintaxes de montador "NASM" e "GAS" e gera binários nos formatos de objeto "ELF32" e "ELF64"

libyasm.a

fornece todas as funcionalidades centrais do "yasm", para manipular instruções de máquina e construções de arquivos de objetos

Java

Java-20.0.2

Acerca do Java

Java é diferente da maioria dos pacotes do LFS e BLFS. É uma linguagem de programação que trabalha com arquivos de códigos de byte para obter instruções e executá-las em uma "Java Virtual Machine" ("JVM"). Um aplicativo introdutório Java se parece com:

public class HelloWorld
{
   public static void main(String[] args)
   {
       System.out.println("Hello, World");
   }
}

Esse aplicativo é salvo como "HelloWorld.java". O nome do arquivo, "HelloWorld", precisa corresponder ao nome da classe. Em seguida, ele é convertido em código de bytes com "javac HelloWorld.java". O arquivo de saída gerada é "HelloWorld.class". O aplicativo é executado com "java HelloWorld". Isso cria uma "JVM" e executa o código. A extensão 'class' precisa não ser especificada.

Vários arquivos de classe podem ser combinados em um arquivo com o comando "jar". Isso é semelhante ao comando "tar" padrão. Por exemplo, o comando "jar cf myjar.jar *.class" combinará todos os arquivos de classe em um diretório em um arquivo" jar". Eles atuam como arquivos de biblioteca.

A "JVM" consegue procurar e usar classes em arquivos "jar" automaticamente. Ela usa a variável de ambiente "CLASSPATH" para procurar arquivos "jar". Essa é uma lista padrão de nomes de diretórios separados por dois pontos, semelhante à variável de ambiente "PATH".

Informações do Binário JDK

Criar uma "JVM" a partir do fonte exige um conjunto de dependências circulares. A primeira coisa que é necessária é um conjunto de aplicativos chamado "Java Development Kit" ("JDK"). Esse conjunto de aplicativos inclui "java", "javac", "jar" e vários outros. Ele também inclui vários arquivos "jar" básicos.

Para começar, configuramos uma instalação binária do "JDK" criada pelos(as) editores(as) do BLFS. Ela é instalada no diretório "/opt" para permitir múltiplas instalações, incluindo uma versão baseada no fonte.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informações do Pacote Binário

Dependências de Tempo de Execução do Binário "Java"

alsa-lib-1.2.9, Cups-2.4.6, 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-20.0.2-bin &&
mv -v * /opt/OpenJDK-20.0.2-bin        &&
chown -R root:root /opt/OpenJDK-20.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-20.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-20.0.2

Introdução ao OpenJDK

"OpenJDK" é uma implementação de código aberto da plataforma "Java Standard Edition" da "Oracle". "OpenJDK" é útil para desenvolver aplicativos "Java" e fornece um ambiente de tempo de execução completo para executar aplicativos "Java".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

"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-20.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/jdk20u/archive/jdk-20.0.2-ga.tar.gz

  • Soma de verificação MD5 da transferência: 0a6c990bd0a4eee6eee06e89b74cde19

  • Tamanho da Transferência: 105 MB

  • Espaço em disco estimado exigido: 3,6 GB (adicionar 800 MB para testes)

  • Tempo de construção estimado: 4,8 UPC com quatro (04) tarefas (adicionar 36 UPC para testes com quatro (04) tarefas)

Transferências Adicionais

Equipamento opcional de teste

Dependências do OpenJDK

Dependências Exigidas

Um binário existente (Java-20.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.9, cpio-2.14, Cups-2.4.6, UnZip-6.0, Which-2.21, Bibliotecas do Xorg e Zip-3.0

Recomendadas
Opcionais

git-2.41.0, Graphviz-8.1.0, Mercurial-6.5.1, ccache, pandoc e pigz

Instalação do OpenJDK

Se você baixou o equipamento opcional de teste, desempacote-o agora:

tar -xf ../jtreg-7.2+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-harfbuzz=system       \
               --with-jtreg=$PWD/jtreg      \
               --with-lcms=system           \
               --with-libjpeg=system        \
               --with-libpng=system         \
               --with-zlib=system           \
               --with-version-build="9"     \
               --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-20.0.2+9             &&
cp -Rv build/*/images/jdk/* /opt/jdk-20.0.2+9 &&
chown -R root:root /opt/jdk-20.0.2+9          &&
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-20.0.2+9 /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 20.0.2 Tempo de Execução
Comment=OpenJDK Java 20.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 20.0.2 Console
Comment=OpenJDK Java 20.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,harfbuzz,lcms,libjpeg,libpng,zlib}=system: Essas chaves forçam o sistema de construção a usar as bibliotecas do sistema em vez das versões incluídas.

--with-version-build: Atualmente, o sistema de construção não inclui o número da construção na sequência de caracteres da versão. Ele tem que ser especificado aqui.

--with-version-pre: Essa chave te permite prefixar a sequência de caracteres da versão com uma sequência personalizada de caracteres.

--with-version-opt: Essa chave te permite adicionar uma descrição opcional da construção à sequência de caracteres de versão.

--with-cacerts-file=/etc/pki/tls/java/cacerts: Especifica onde encontrar um arquivo "cacerts", "/etc/pki/tls/java/" em um sistema BLFS. Caso contrário, um vazio será criado. Você consegue usar o comando "/usr/sbin/make-ca --force" para gerá-lo, depois que tenha instalado os binários "Java".

--with-boot-jdk: Essa chave fornece o local do "JDK" temporário. Ele normalmente não é necessário se "java" for encontrado no "PATH".

Configurando o OpenJDK

Informação de Configuração

Normalmente, o ambiente "JAVA" é configurado depois de instalar 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-20.0.2/lib/*
Diretório Instalado: /opt/jdk-20.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

# Por padrão, Java cria vários arquivos em um diretório chamado
# /tmp/hsperfdata_[nomedeusuário(a)]. Esse diretório contém arquivos que são usados
# para monitoramento de desempenho e criação de perfil, mas normalmente não são
# necessários em um sistema BLFS. Esta variável de ambiente desabilita esse recurso.
_JAVA_OPTIONS="-XX:-UsePerfData"

export _JAVA_OPTIONS

unset AUTO_CLASSPATH_DIR dir jar _JAVA_OPTIONS

# Termina /etc/profile.d/openjdk.sh
EOF

Se "Sudo-1.9.14p3" estiver instalado, [então] o(a) superusuário(a) deveria ter acesso às variáveis acima. Execute os seguintes comandos como o(a) usuário(a) "root":

cat > /etc/sudoers.d/java << "EOF"
Defaults env_keep += JAVA_HOME
Defaults env_keep += CLASSPATH
Defaults env_keep += _JAVA_OPTIONS
EOF

Para usar "mandb" para incluir as páginas de manual do "OpenJDK" na base de dados dele, emita como o(a) usuário(a) "root":

cat >> /etc/man_db.conf << "EOF" &&
# Inicia adição "Java"
MANDATORY_MANPATH     /opt/jdk/man
MANPATH_MAP           /opt/jdk/bin     /opt/jdk/man
MANDB_MAP             /opt/jdk/man     /var/cache/man/jdk
# Termina Java addition
EOF

mkdir -p /var/cache/man &&
mandb -c /opt/jdk/man

Configurando os Certificados de Autoridade Certificadora para Java

O "OpenJDK" usa o próprio formato dele para os certificados de "AC". Os módulos de segurança do "Java" usam "$JAVA_HOME/lib/security/cacerts" por padrão. Para a finalidade de manter todos os certificados em um lugar, nós usamos "/etc/ssl/java/cacerts". As instruções na página "make-ca-1.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.14

Introdução ao Apache Ant

O pacote "Apache Ant" é uma ferramenta de construção baseada em "Java". Na teoria, é como o comando "make", mas sem as rugas do "make". "Ant" é diferente. Em vez de um modelo que é estendido com comandos baseados em "shell", "Ant" é estendido usando classes "Java". Em vez de escrever comandos de "shell", os arquivos de configuração são baseados em "XML", chamando uma árvore alvo que executa várias tarefas. Cada tarefa é executada por um objeto que implementa uma interface específica de tarefa.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do Apache Ant

Exigidas

Uma "JDK" ("Binário "Java"" ou "OpenJDK-20.0.2") e "GLib-2.76.4"

Nota

Uma conexão com a Internet é necessária para construir esse pacote.

Instalação do Apache Ant

Construa uma versão limitada de instruções de autoaprimoramento do "Apache Ant" usando o seguinte comando:

./bootstrap.sh

Transfira as dependências de tempo de execução usando o "script" de construção "ant" "fetch.xml":

bootstrap/bin/ant -f fetch.xml -Ddest=optional

Construa o "Apache Ant" executando o seguinte comando:

./build.sh -Ddist.dir=$PWD/ant-1.10.14 dist

Instale, como o(a) usuário(a) "root":

cp -rv ant-1.10.14 /opt/           &&
chown -R root:root /opt/ant-1.10.14 &&
ln -sfv ant-1.10.14 /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.14 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.14

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.44.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-10.0.2

Introdução ao dhcpcd

"dhcpcd" é uma implementação do cliente "DHCP" especificado na "RFC2131". Um cliente "DHCP" é útil para conectar seu computador a uma rede de intercomunicação que usa "DHCP" para atribuir endereços de rede de intercomunicação. O "dhcpcd" se esforça para ser um cliente "DHCP" completo, mas muito leve.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do dhcpcd

Opcionais

LLVM-16.0.5 (com "Clang"), ntp-4.2.8p17, chronyd e ypbind

Separação de privilégios

Lançamentos recentes do "dhcpcd" suportam opcionalmente a separação de privilégios. Como os benefícios práticos de segurança disso não são claros para um aplicativo como o "dhcpcd" e a configuração é mais complicada, o livro atualmente usa como padrão desativá-lo.

No entanto, se você quiser usar a separação de privilégios, [então] etapas adicionais de instalação são necessárias para configurar o ambiente adequado. Emita os seguintes comandos como o(a) usuário(a) "root":

install  -v -m700 -d /var/lib/dhcpcd &&

groupadd -g 52 dhcpcd        &&
useradd  -c 'Separação de privilégios do dhcpcd' \
         -d /var/lib/dhcpcd  \
         -g dhcpcd           \
         -s /bin/false       \
         -u 52 dhcpcd &&
chown    -v dhcpcd:dhcpcd /var/lib/dhcpcd 

Instalação do dhcpcd

Construa o "dhcpcd" sem separação de privilégios executando o seguinte comando:

./configure --prefix=/usr               \
            --sysconfdir=/etc            \
            --libexecdir=/usr/lib/dhcpcd \
            --dbdir=/var/lib/dhcpcd      \
            --runstatedir=/run           \
            --disable-privsep         &&
make

Alternativamente, construa o dhcpcd com separação de privilégios executando os seguintes comandos:

./configure --prefix=/usr               \
            --sysconfdir=/etc            \
            --libexecdir=/usr/lib/dhcpcd \
            --dbdir=/var/lib/dhcpcd      \
            --runstatedir=/run           \
            --privsepuser=dhcpcd         &&
make

Para testar os resultados, emita: make test.

Agora, como o(a) usuário(a) "root":

make install

Explicações do Comando

--libexecdir=/usr/lib/dhcpcd: Essa chave configura um local melhor para bibliotecas internas do dhcpcd.

--dbdir=/var/lib/dhcpcd: Essa chave ajusta o diretório da base de dados, pois o diretório padrão, /var/db, não é compatível com o FHS.

--runstatedir=/run: Essa chave configura o diretório de estado de tempo de execução, pois o padrão /var/run é um link simbólico para /run e usar /var/run está obsoleto.

--disable-privsep: Essa chave desabilita a separação de privilégios, que é o padrão no dhcpcd. Essa chave não é usada na configuração da construção onde a separação de privilégios é usada.

--privsepuser=dhcpcd: Essa chave configura o(a) usuário(a) de separação de privilégios na configuração da construção onde o escalonamento de privilégios é usado.

--with-hook=...: Opcionalmente, você pode instalar mais ganchos, por exemplo, para instalar alguns arquivos de configuração, como ntp.conf. Um conjunto de ganchos pode ser encontrado no diretório dhcpcd-hooks na árvore da construção.

Configurando o dhcpcd

Arquivos de Configuração

/etc/dhcpcd.conf

Informações Gerais de Configuração

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-20230816" 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 /usr/lib/dhcpcd/dhcpcd-hooks. Você consegue mudar esse comportamento removendo ou adicionando ganchos de/para esse diretório. A execução de ganchos pode ser desabilitada usando-se a opção de linha de comando --nohook (-C) ou pela opção nohook no arquivo /etc/dhcpcd.conf.

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

Capítulo 15. Aplicativos de Rede de Intercomunicação

Estes aplicativos geralmente são aplicativos clientes usados para acessar o servidor apropriado no prédio ou em todo o mundo. "Tcpwrappers" e "portmap" são aplicativos de suporte para processos de segundo plano que você possivelmente esteja executando em tua máquina.

bridge-utils-1.7.1

Introdução ao bridge-utils

O pacote "bridge-utils" contém um utilitário necessário para criar e gerenciar dispositivos de ponte. Isso é útil na configuração de redes de intercomunicação para uma máquina virtual ("MV") hospedada.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "bridge-utils"

Opcionais (para executar testes)

Net-tools-2.10

Configuração do Núcleo

Habilite as seguintes opes na configuração do núcleo e recompile o núcleo, se necessário:

[*] Networking support --->                                                [NET]
  Networking options --->
    <*/M> 802.1d Ethernet Bridging                                      [BRIDGE]

Instalação do bridge-utils

Instale "bridge-utils" executando os seguintes comandos:

autoconf                  &&
./configure --prefix=/usr &&
make

Testar os resultados exige executar-se os seis conjuntos sequenciais de comandos de "shell" no diretório "tools/". Dois dos testes exigem duas portas "Ethernet". Alguns testes não preservarão a configuração atual da rede de intercomunicação. Veja-se "tests/README" para detalhes.

Agora, como o(a) usuário(a) "root":

make install

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "cifs-utils"

Recomendadas
Opcionais

docutils-0.20.1 (para criar as páginas de manual), keyutils-1.6.1 (exigido para construir o módulo "PAM"), Linux-PAM-1.5.3, Samba-4.18.6 e libcap-2.69 com PAM ou libcap-ng

Configuração do Núcleo

Habilite as seguintes opções na configuração do núcleo e recompile o núcleo, se necessário:

File systems --->
  [*] Network File Systems --->                            [NETWORK_FILESYSTEMS]
    <*/M> SMB3 and CIFS support (advanced network filesystem)             [CIFS]

Dependendo da configuração do teu servidor, opções adicionais do núcleo possivelmente sejam exigidas.

Instalação do cifs-utils

Instale cifs-utils executando os seguintes comandos:

./configure --prefix=/usr \
           --disable-pam &&
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.3" 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

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 corretamente usando uma plataforma LFS 12.0.

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

Transferências Adicionais

Dependências do "NcFTP"

Opcionais

LLVM-16.0.5 (com "Clang", usado por padrão se instalado)

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

Em seguida, atualize o conjunto de comandos sequenciais configure para usar os padrões modernos C:

patch -Np1 -i ../ncftp-3.2.6-configure_fixes-1.patch &&
autoreconf -fiv -I autoconf_local

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Instalação do Net-tools

As instruções abaixo automatizam o processo de configuração canalizando "yes" para o comando "make". Se você deseja executar o processo interativo de configuração (mudando a instrução para apenas "make"), mas não tem certeza de como responder a todas as perguntas, então basta aceitar os padrões. Isso funcionará perfeitamente na maioria dos casos. O que você é inquirido(a) aqui é um monte de perguntas relativas a quais protocolos de rede de intercomunicação você habilitou em teu núcleo. As respostas padrão habilitarão as ferramentas originárias desse pacote para funcionem com os protocolos mais comuns: "TCP", "PPP" e vários outros. Você ainda precisa habilitar esses protocolos no núcleo—o que você faz aqui é meramente dizer ao pacote para incluir suporte para esses protocolos nos aplicativos dele, mas cabe ao núcleo disponibilizar os protocolos.

Nota

Esse pacote tem vários protocolos desnecessários e funções específicas de dispositivos de hardware que estão obsoletas. Para construir somente o mínimo necessário para o teu sistema, ignore o comando "yes" e responda a cada pergunta interativamente. As opções mínimas necessárias são "UNIX protocol family" e "INET (TCP/IP) protocol family".

Para esse pacote, nós usamos o método "DESTDIR" de instalação para a finalidade de remover facilmente arquivos da construção que sobrescrevem aqueles que queremos manter ou que não são apropriados para nosso sistema.

Instale o "Net-tools" executando os seguintes comandos:

export BINDIR='/usr/bin' SBINDIR='/usr/bin' &&
yes "" | make -j1                          &&
make DESTDIR=$PWD/install -j1 install       &&
rm    install/usr/bin/{nis,yp}domainname    &&
rm    install/usr/bin/{hostname,dnsdomainname,domainname,ifconfig} &&
rm -r install/usr/share/man/man1            &&
rm    install/usr/share/man/man8/ifconfig.8 &&
unset BINDIR SBINDIR

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

chown -R root:root install &&
cp -a install/* /

Explicações do Comando

export BINDIR='/usr/bin' SBINDIR='/usr/bin': Certifique-se de que os executáveis estejam instalados no local correto.

yes "" | make : Canalizar "yes" para "make config" ignora a configuração interativa e aceita os padrões.

rm ...: Remova aplicativos e páginas de manual desnecessários.

Conteúdo

Aplicativos Instalados: arp, ipmaddr, iptunnel, mii-tool, nameif, netstat, plipconfig, rarp, route e slattach
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: Nenhum(a)

Descrições Curtas

arp

é usado para manipular o "cache" "ARP" do núcleo, geralmente para adicionar ou deletar uma entrada, ou para despejar todo o "cache"

ipmaddr

adiciona, deleta e mostra os endereços "multicast" de uma interface

iptunnel

adiciona, muda, deleta e mostra os túneis de uma interface

mii-tool

verifica ou configura o situação de uma unidade "Media Independent Interface" ("MII") de uma interface de rede de intercomunicação

nameif

nomeia interfaces de rede baseado em endereços "MAC"

netstat

é usado para informar conexões de rede, tabelas de roteamento e estatísticas de interface

plipconfig

é usado para ajustar os parâmetros do dispositivo "PLIP", para melhorar o desempenho dele

rarp

é usado para manipular a tabela "RARP" do núcleo

route

é usado para manipular a tabela de roteamento "IP"

slattach

anexa uma interface de rede de intercomunicação a uma linha serial. Isso permite que você use linhas normais de terminal para links ponto a ponto para outros computadores

NFS-Utils-2.6.3

Introdução aos Utilitários do NFS

O pacote "NFS Utilities" contém as ferramentas de espaço do usuário(a) servidor e cliente necessárias para usar as capacidades "NFS" do núcleo. "NFS" é um protocolo que permite compartilhar sistemas de arquivos por intermédio da rede de intercomunicação.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências dos Utilitários do NFS

Exigidas

libtirpc-1.3.3, libevent-2.1.12, rpcsvc-proto-1.4.4 e SQLite-3.42.0

Opcionais

Cyrus SASL-2.1.28 (para autenticação SASL), LVM2-2.03.22 (libdevmapper para suporte a NFSv4), libnsl-2.0.0 (para suporte a cliente NIS), OpenLDAP-2.6.6 (para autenticação LDAP), MIT Kerberos V5-1.21.2 ou libgssapi e librpcsecgss (para suporte a segurança GSS e RPC) e libcap-2.69 com PAM

Exigidas (tempo de execução)

rpcbind-1.2.6

Observações de Editor(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 --->                            [NETWORK_FILESYSTEMS]
    <*/M> NFS client support                                            [NFS_FS]
    <*/M> NFS server support                                              [NFSD]

Selecione as sub opções apropriadas que aparecem quando as opções acima são selecionadas.

Nota

No BLFS nós assumimos que o "NFS" v3 será usado. Se o servidor oferecer "NFS" v4 (para o Linux, "CONFIG_NFSD_V4") então a negociação automática para v3 falhará e você precisará adicionar "nfsver=3" às opções de montagem. Isso também se aplica se essa opção estiver habilitada no núcleo do cliente, por exemplo, em uma distribuição tentando montar a partir de um servidor BLFS v3.

Mesmo que nenhuma extremidade da conexão suporte "NFS" v4, adicionar "nfsver=3" ainda é benéfico porque evita que uma mensagem de erro "NFS: bad mount option value specified: minorversion=1" seja registrada em cada montagem.

Instalação dos Utilitários do NFS

Instale o Utilitários do NFS executando os seguintes comandos:

./configure --prefix=/usr          \
            --sysconfdir=/etc      \
            --sbindir=/usr/sbin    \
            --disable-nfsv4        \
            --disable-gss          \
            LIBS="-lsqlite3 -levent_core" &&
make

Agora, como o(a) usuário(a) root:

make install                       &&
chmod u+w,go+r /usr/sbin/mount.nfs &&
chown nobody:nogroup /var/lib/nfs

Os testes para esse pacote exigem que o pacote esteja instalado. Além disso, o processo de segundo plano rpc.statd precisa não estar executando e os testes precisam ser executados como o(a) usuário(a) root.

Para testar os resultados, emita, como root:

make check

Explicações do Comando

--disable-gss: Desabilita o suporte para "GSS" do "RPCSEC" (Segurança "RPC").

LIBS="-lsqlite3 -levent_core": é exigido para o aplicativo fsidd.

chown nobody:nogroup /var/lib/nfs: O aplicativo rpc.statd usa a titularidade de propriedade desse diretório para configurar o UID e GID dele. Esse comando os configura como entradas sem privilégios.

Configurando os Utilitários do NFS

Configuração do Servidor

"/etc/exports" contém os diretórios exportados em servidores "NFS". Consulte a página de manual "exports.5" para a sintaxe desse arquivo. Consulte também o "NFS HowTo" disponível em https://nfs.sourceforge.net/nfs-howto/ para informações relativas a como configurar os servidores e clientes de maneira segura. Por exemplo, para compartilhar o diretório "/home" por intermédio da rede local de intercomunicação, a seguinte linha pode ser adicionada:

cat >> /etc/exports << EOF
/home 192.168.0.0/24(rw,subtree_check,anonuid=99,anongid=99)
EOF

Nota

Certifique-se de substituir o diretório, endereço de rede de intercomunicação. e prefixo acima para corresponder à tua rede de intercomunicação. O único espaço na linha acima deveria ficar entre o diretório e o endereço de rede de intercomunicação.

Unidades do Systemd

Instale as unidades de servidor NFSv4 inclusas no pacote blfs-systemd-units-20230816 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-20230816" para iniciar os serviços do cliente na inicialização.

make install-nfs-client

Conteúdo

Aplicativos Instalados: exportfs, fsidd, mountstats, mount.nfs, mount.nfs4 (link para mount.nfs), nfsconf, nfsdclnts, nfsiostat, nfsstat, rpc.mountd, rpc.nfsd, rpc.statd, rpcdebug, showmount, sm-notify, start-statd, umount.nfs (link para mount.nfs) e umount.nfs4 (link para mount.nfs)
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /var/lib/nfs

Descrições Curtas

exportfs

mantém uma lista de sistemas de arquivos "NFS" exportados

fsidd

oferece uma interface de soquete de domínio UNIX local para todo o espaço de usuário(a) do NFS para consultar a base de dados de reexportação

mountstats

exibe estatísticas "NFS" por montagem do cliente

mount.nfs

é usado para montar um compartilhamento de rede de intercomunicação usando "NFS"

mount.nfs4

é usado para montar um compartilhamento de rede de intercomunicação usando "NFSv4"

nfsconf

pode ser usado para testar e recuperar definições de configuração a partir de uma variedade de arquivos de configuração "nfs-utils"

nfsdclnts

imprime informações relativas a clientes "NFS"

nfsiostat

informa estatísticas de entrada/saída para sistemas de arquivos de rede de intercomunicação

nfsstat

exibe estatísticas mantidas a respeito da atividade "NFS" do cliente e do servidor

rpc.mountd

implementa o protocolo de montagem "NFS" em um servidor "NFS"

rpc.nfsd

implementa a parte de nível de usuário(a) do serviço "NFS" no servidor

rpc.statd

é usado pelo serviço de bloqueio de arquivos "NFS". Execute em ambos os lados, cliente e servidor, quando desejar o bloqueio de arquivos habilitado

rpcdebug

configura ou limpa os sinalizadores de depuração do "NFS" do cliente e do servidor do núcleo

showmount

exibe informações de montagem para um servidor "NFS"

sm-notify

é usado para enviar mensagens de reinicialização do "Network Status Monitor"

start-statd

é um conjunto de comandos sequenciais chamado pelo "nfsmount" ao montar um sistema de arquivos com bloqueio habilitado, se o "statd" não parecer estar executando. Ele pode ser personalizado com quaisquer sinalizadores apropriados para o sítio

umount.nfs

é usado para desmontar um compartilhamento de rede de intercomunicação usando "NFS"

umount.nfs4

é usado para desmontar um compartilhamento de rede de intercomunicação usando "NFSv4"

ntp-4.2.8p17

Introdução ao ntp

O pacote "ntp" contém um cliente e um servidor para manter a hora sincronizada entre vários computadores em uma rede de intercomunicação. Esse pacote é a implementação de referência oficial do protocolo "NTP".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "ntp"

Exigidas

IO-Socket-SSL-2.083

Opcionais

libcap-2.69 com PAM, libevent-2.1.12, libedit e libopts originário do AutoGen

Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/ntp

Instalação do ntp

Deveria existir um(a) usuário(a) e um grupo dedicado(a) para assumir o controle do processo de segundo plano "ntpd" depois que ele for iniciado. Emita os seguintes comandos como o(a) usuário(a) "root":

groupadd -g 87 ntp &&
useradd -c "Protocolo de horário da rede de intercomunicação" -d /var/lib/ntp -u 87 \
        -g ntp -s /bin/false ntp

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.8p17 &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) "root":

make install &&
install -v -o ntp -g ntp -d /var/lib/ntp

Explicações do Comando

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-20230816".

make install-ntpd

Se você preferir executar ntpd periodicamente, 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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Transferências Adicionais

Dependências do "rpcbind"

Exigidas

libtirpc-1.3.3

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 corretamente usando uma plataforma LFS 12.0.

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.7, lz4 e xxhash

Instalação do rsync

Por razões de segurança, executar o servidor "rsync" como um(a) usuário(a) e grupo sem privilégios é encorajado. Se você pretende executar o "rsync" como um processo de segundo plano, [então] crie o(a) usuário(a) e grupo "rsyncd" com os seguintes comandos emitidos pelo(a) usuário(a) "root":

groupadd -g 48 rsyncd &&
useradd -c "Processo de segundo plano rsyncd" -m -d /home/rsync -g rsyncd \
    -s /bin/false -u 48 rsyncd

Instale o "rsync" executando os seguintes comandos:

./configure --prefix=/usr   \
            --disable-lz4    \
            --disable-xxhash \
            --without-included-zlib &&
make

Se você tiver o "Doxygen-1.9.7" 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.4p1" 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-20230816".

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

Introdução ao Samba

O pacote "Samba" fornece serviços de arquivo e impressão para clientes "SMB"/"CIFS" e rede de intercomunicação Windows para clientes Linux. O "Samba" também pode ser configurado como um substituto do Controlador de Domínio do Windows, um servidor de arquivos/impressão atuando como membro de um domínio do "Windows Active Directory" e um servidor de nomes "NetBIOS" ("RFC" 1001/1002) (que, entre outras coisas, fornece suporte de navegação "LAN").

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP): https://download.samba.org/pub/samba/stable/samba-4.18.6.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: d7e75ab3de1f48ea696c030c869c96f2

  • Tamanho da transferência: 39 MB

  • Espaço em disco estimado exigido: 600 MB (adicionar 100 MB para quicktest)

  • Tempo de construção estimado: 1,7 UPC (usando paralelismo=4; adicionar 0,3 UPC para quicktest)

Dependências do "Samba"

Exigidas

GnuTLS-3.8.1, jansson-2.14, JSON-4.10, libtirpc-1.3.3, Parse-Yapp-1.21 e rpcsvc-proto-1.4.4

Recomendadas
Opcionais

Avahi-0.8, BIND-9.18.18, Cups-2.4.6, Cyrus SASL-2.1.28, GDB-13.2, git-2.41.0, GnuPG-2.4.3 (exigido para ADS e suíte de teste), libaio-0.3.113, libarchive-3.7.1 (para tar em smbclient), libcap-2.69 com PAM, libgcrypt-1.10.2, libnsl-2.0.0, libunwind-1.6.2, lmdb-0.9.31, Markdown-3.4.1, MIT Kerberos V5-1.21.2, nss-3.92, popt-1.19, Talloc-2.4.1 (incluído), Vala-0.56.11, Valgrind-3.21.0 (opcionalmente usado pela suíte de teste), xfsprogs-6.4.0, cmocka, cryptography, ctdb (incluído), cwrap, dnspython, FAM, Gamin, GlusterFS, Heimdal (incluído), iso8601, ldb (incluído), M2Crypto (exigido para ADS), OpenAFS, pyasn1, PyGPGME (recomendado para ADS), tevent (incluído), tdb (incluído) e tracker-2

Opcionais (para a Suíte de Teste de Desenvolvedor(a))

Instale na ordem listada: six-1.16.0, pytest-7.4.0, 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 Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/samba4

Instalação do Samba

Para suportar a suíte de teste, configure um ambiente virtual "Python" para alguns módulos "Python" fora do escopo do BLFS:

python3 -m venv pyvenv &&
./pyvenv/bin/pip3 install cryptography pyasn1 iso8601

Instale o "Samba" executando os seguintes comandos:

PYTHON=$PWD/pyvenv/bin/python3             \
./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.samba &&

install -v -m644    examples/LDAP/samba*              \
                    /etc/openldap/schema              &&

install -v -m755    examples/LDAP/{get*,ol*} \
                    /etc/openldap/schema

Explicações do Comando

--enable-fhs: Atribui todos os outros caminhos de arquivo de maneira compatível com o "Filesystem Hierarchy Standard" ("FHS").

--without-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-20230816" 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-20230816" 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.4

Introdução ao Wget

O pacote Wget contém um utilitário útil para transferência não interativa de arquivos a partir da "Web".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "Wget"

Recomendadas
Opcionais

GnuTLS-3.8.1, HTTP-Daemon-6.16 (para a suíte de teste), IO-Socket-SSL-2.083 (para a suíte de teste), libidn2-2.3.4, libpsl-0.21.2, PCRE-8.45 ou pcre2-10.42 e Valgrind-3.21.0 (para a suíte de teste)

Instalação do Wget

Instale o "Wget" executando os seguintes comandos:

./configure --prefix=/usr     \
            --sysconfdir=/etc  \
            --with-ssl=openssl &&
make

Para testar os resultados, emita: "make check".

Alguns testes possivelmente falhem quando os testes "Valgrind" estiverem habilitados.

Agora, como o(a) usuário(a) "root":

make install

Explicações do Comando

--sysconfdir=/etc: Isso realoca o arquivo de configuração de "/usr/etc" para "/etc".

--with-ssl=openssl: Isso permite que o aplicativo use o "OpenSSL" em vez do "GnuTLS-3.8.1".

--enable-valgrind-tests: Isso permite que os testes sejam executados sob o "Valgrind".

Configurando o Wget

Arquivos de Configuração

/etc/wgetrc e ~/.wgetrc

Conteúdo

Aplicativo Instalado: wget
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: Nenhum(a)

Descrições Curtas

wget

recupera arquivos a partir da "Web" usando os protocolos "HTTP", "HTTPS" e "FTP". Ele foi projetado para ser não interativo, para operações em segundo plano ou autônomas

Configurando o Núcleo Linux para Sem Fios

Antes de usar qualquer ferramenta de espaço do(a) usuário(a) para conectar-se a um ponto de acesso sem fio, o núcleo Linux precisa ser configurado para controlar a NIC sem fio corretamente. Habilite as seguintes opções na configuração do núcleo, bem como controladores específicos de dispositivos para o teu hardware e recompile o núcleo, se necessário:

[*] Networking support --->                                                [NET]
  [*] Wireless --->                                                   [WIRELESS]
    <*/M>   cfg80211 - wireless configuration API                     [CFG80211]
    < /*/M> Generic IEEE 802.11 Networking Stack (mac80211)           [MAC80211]

Device Drivers --->
  [*] Network device support --->                                   [NETDEVICES]
    [*] Wireless LAN --->                                                 [WLAN]

Abra o submenu Wireless LAN e selecione as opções que suportam teu hardware. lspci oriundo de pciutils-3.10.0 ou lsusb oriundo de usbutils-015 podem ser usados para visualizar tua configuração de hardware. Observe que muitas (embora nem todas) opções para as NICs sem fio dependem de CONFIG_MAC80211. Depois que os controladores corretos forem carregados, a interface aparecerá em /sys/class/net ou na saída gerada do comando ip link.

Muitos controladores de NIC sem fio exigem firmware. Se você tiver habilitado o controlador correto na configuração do núcleo, mas ele falhar para carregar (com mensagens como Direct firmware load for <nome_arquivo> failed with error -2, significa que você precisa instalar o firmware ou a NIC sem fio não funcionará. Leia-se Acerca de Firmware para mais detalhes.

iw-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 corretamente usando uma plataforma LFS 12.0.

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

Exigidas (tempo de execução)

Configurando o Núcleo Linux para Sem Fios

Configuração do Núcleo

Para usar iw, o núcleo precisa ter os controladores apropriados e outros suportes disponíveis. Leia-se Configurando o Núcleo Linux para Sem Fios para detalhes.

Instalação do iw

Para instalar o "iw", use os seguintes comandos:

sed -i "/INSTALL.*gz/s/.gz//" Makefile &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

make install

Explicações do Comando

sed ...: Instale páginas de manual descompactadas de acordo com outras páginas de manual.

Conteúdo

Aplicativos Instalados: iw
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: Nenhum(a)

Descrições Curtas

iw

mostra/manipula dispositivos sem fio e a configuração deles

Wireless Tools-29

Introdução ao Wireless Tools

A "Wireless Extension" ("WE") é uma "API" genérica no núcleo Linux que permite que um controlador exponha configurações e estatísticas específicas de "LANs" sem fio comuns para o espaço de usuário(a). Um conjunto de ferramentas pode suportar todas as variações de "LANs" sem fio, independentemente do tipo delas, desde que o controlador suporte "Wireless Extensions". Os parâmetros "WE" também podem ser mudados dinamicamente sem reiniciar o controlador (ou o Linux).

O pacote "Wireless Tools" ("WT") é um conjunto de ferramentas que permite a manipulação das "Wireless Extensions". Elas usam uma interface textual para suportar as "Wireless Extensions" completas.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Transferências Adicionais

Dependências do Wireless Tools

Exigidas (tempo de execução)

Configurando o Núcleo Linux para Sem Fios

Observações de Editor(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. Além das configurações mencionadas em Configurando o Núcleo Linux para Sem Fios, também é necessário habilitar as seguintes opções na configuração do núcleo:

[*] Networking support --->                                                [NET]
  [*] Wireless --->                                                   [WIRELESS]
    <*/M> cfg80211 - wireless configuration API                       [CFG80211]
    [*]     cfg80211 wireless extensions compatibility           [CFG80211_WEXT]

Instalação do Wireless Tools

Primeiro, aplique um remendo que corrige um problema quando numerosas redes de intercomunicação estiverem disponíveis:

patch -Np1 -i ../wireless_tools-29-fix_iwlist_scanning-1.patch

Para instalar o "Wireless Tools", use os seguintes comandos:

make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

make PREFIX=/usr INSTALL_MAN=/usr/share/man install

Explicações do Comando

INSTALL_MAN=/usr/share/man: Instala as páginas de manual em "/usr/share/man" em vez de "/usr/man".

Conteúdo

Aplicativos Instalados: ifrename, iwconfig, iwevent, iwgetid, iwlist, iwpriv e iwspy
Biblioteca Instalada: libiw.so
Diretórios Instalados: Nenhum(a)

Descrições Curtas

ifrename

renomeia interfaces de rede de intercomunicação baseado em vários critérios estáticos

iwconfig

configura uma interface de rede de intercomunicação sem fio

iwevent

exibe eventos sem fio gerados por controladores e mudanças de configuração

iwgetid

informa "ESSID", "NWID" ou endereço "AP"/"Cell" de redes de intercomunicação sem fio

iwlist

obtém informações sem fio detalhadas a partir de uma interface sem fio

iwpriv

configura parâmetros opcionais (privados) de uma interface de rede de intercomunicação sem fio

iwspy

obtém estatísticas sem fio a partir de um nó específico

libiw.so

contém funções exigidas pelos aplicativos sem fio e fornece uma "API" para outros aplicativos

wpa_supplicant-2.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 corretamente usando uma plataforma LFS 12.0.

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"

Exigidas (tempo de execução)

Configurando o Núcleo Linux para Sem Fios

Recomendadas
Opcionais

libxml2-2.10.4 e (Qt-5.15.10 ou qt-alternate-5.15.10)

Configuração do Núcleo

Para usar wpa_supplicant, o núcleo precisa ter os controladores apropriados e outros suportes disponíveis. Leia-se Configurando o Núcleo Linux para Sem Fios para detalhes.

Instalação do WPA Supplicant

Primeiro você precisará criar um arquivo de configuração inicial para o processo de construção. Você pode ler "wpa_supplicant/README" e "wpa_supplicant/defconfig" para a explicação das opções a seguir, bem como outras opções que podem ser usadas. Crie um arquivo de configuração de construção que deveria funcionar para configurações "WiFi" padrão executando o seguinte comando:

cat > wpa_supplicant/.config << "EOF"
CONFIG_BACKEND=file
CONFIG_CTRL_IFACE=y
CONFIG_DEBUG_FILE=y
CONFIG_DEBUG_SYSLOG=y
CONFIG_DEBUG_SYSLOG_FACILITY=LOG_DAEMON
CONFIG_DRIVER_NL80211=y
CONFIG_DRIVER_WEXT=y
CONFIG_DRIVER_WIRED=y
CONFIG_EAP_GTC=y
CONFIG_EAP_LEAP=y
CONFIG_EAP_MD5=y
CONFIG_EAP_MSCHAPV2=y
CONFIG_EAP_OTP=y
CONFIG_EAP_PEAP=y
CONFIG_EAP_TLS=y
CONFIG_EAP_TTLS=y
CONFIG_IEEE8021X_EAPOL=y
CONFIG_IPV6=y
CONFIG_LIBNL32=y
CONFIG_PEERKEY=y
CONFIG_PKCS12=y
CONFIG_READLINE=y
CONFIG_SMARTCARD=y
CONFIG_WPS=y
CFLAGS += -I/usr/include/libnl3
EOF

Se você deseja usar o "WPA Supplicant" com o "NetworkManager-1.44.0", [então] certifique-se de ter instalado o "dbus-1.14.8" e o "libxml2-2.10.4" 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

Instale o WPA Supplicant executando os seguintes comandos:

cd wpa_supplicant &&
make BINDIR=/usr/sbin LIBDIR=/usr/lib

Se você tiver instalado o (Qt-5.15.10 ou qt-alternate-5.15.10) e desejar construir o aplicativo GUI do WPA Supplicant, execute os seguintes comandos:

Nota

O seguinte nome de diretório é rotulado como qt4, mas é compatível com (Qt-5.15.10 ou qt-alternate-5.15.10).

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.

Avahi-0.8

Introdução ao Avahi

O pacote Avahi é um sistema que facilita a descoberta de serviços em uma rede de intercomunicação local.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Transferências Adicionais

Dependências do "Avahi"

Exigidas

GLib-2.76.4

Recomendadas
Opcionais

D-Bus Python-1.3.2, libevent-2.1.12, PyGTK-2.24.0, Doxygen-1.9.7 e xmltoman (para gerar documentação)

Instalação do Avahi

Deveria existir um(a) usuário(a) e um grupo dedicado(a) para assumir o controle do processo de segundo plano "avahi-daemon" depois que ele for iniciado. Emita os seguintes comandos como o(a) usuário(a) "root":

groupadd -fg 84 avahi &&
useradd -c "Proprietário(a) do Processo de Segundo Plano Avahi" -d /run/avahi-daemon -u 84 \
        -g avahi -s /bin/false avahi

Também deveria existir um grupo de acesso privilegiado dedicado para clientes do "Avahi". Emita o seguinte comando como o(a) usuário(a) "root":

groupadd -fg 86 netdev

Corrija uma regressão que resulta em uma condição de corrida quando o "IPv6" está em uso e vários adaptadores de rede de intercomunicação estiverem presentes no sistema:

patch -Np1 -i ../avahi-0.8-ipv6_race_condition_fix-1.patch

Corrija uma vulnerabilidade de segurança no "avahi-daemon":

sed -i '426a if (events & AVAHI_WATCH_HUP) { \
client_free(c); \
return; \
}' avahi-daemon/simple-protocol.c

Instale o "Avahi" executando os seguintes comandos:

./configure \
    --prefix=/usr       \
    --sysconfdir=/etc    \
    --localstatedir=/var \
    --disable-static     \
    --disable-libevent   \
    --disable-mono       \
    --disable-monodoc    \
    --disable-python     \
    --disable-qt3        \
    --disable-qt4        \
    --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.18

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.18". O pacote "BIND" inclui os aplicativos do lado cliente "nslookup", "dig" e "host". Se você instalar o servidor "BIND", [então] esses aplicativos serão instalados automaticamente. Esta seção é para aqueles(as) usuários(as) que não precisam do servidor "BIND" completo, mas precisam desses aplicativos do lado cliente.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências dos Utilitários "BIND"

Exigidas

libuv-1.46.0

Recomendadas
Opcionais

libcap-2.69 com PAM, libxml2-2.10.4 e sphinx-7.1.2

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.55.1" 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-7.1.2" 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.18".

NetworkManager-1.44.0

Introdução ao NetworkManager

"NetworkManager" é um conjunto de ferramentas cooperativas que tornam a operação interativa de dispositivos via rede de intercomunicação simples e direta. Quer você use "WiFi", com fio, "3G" ou "Bluetooth", o "NetworkManager" te permite mudar rapidamente de uma rede de intercomunicação para outra: depois que uma rede de intercomunicação tiver sido configurada e conectada uma vez, ela poderá ser detectada e conectada novamente automaticamente na próxima vez que estiver disponível.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

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.68, D-Bus Python-1.3.2 (para a suíte de teste), GnuTLS-3.8.1 (pode ser usado em vez de nss-3.92), GTK-Doc-1.33.2, libpsl-0.21.2, (Qt-5.15.10 ou componentes-qt-5.15.10 com qtdoc) (para exemplos), ModemManager-1.18.12, UPower-1.90.2, Valgrind-3.21.0, dnsmasq, firewalld, libaudit, libteam, mobile-broadband-provider-info, PPP e RP-PPPoE

Configuração do Núcleo

Se desejar executar os testes, [então] verifique se pelo menos as seguintes opções estão habilitadas na configuração do núcleo. Essas opções foram consideradas necessárias, mas podem não ser suficientes. Recompile o núcleo se necessário:

[*] Networking support --->                                                [NET]
  Networking options --->
    [*]   TCP/IP networking                                               [INET]
    <*/M>   IP: tunneling                                             [NET_IPIP]
    <*/M>   IP: GRE demultiplexer                              [NET_IPGRE_DEMUX]
    <*/M>   IP: GRE tunnels over IP                                  [NET_IPGRE]
    <*>     The IPv6 protocol --->                                        [IPV6]
      <*/M>   IPv6: IPv6-in-IPv4 tunnel (SIT driver)                  [IPV6_SIT]
      <*/M>   IPv6: GRE tunnel                                        [IPV6_GRE]
      [*]     IPv6: Multiple Routing Tables               [IPV6_MULTIPLE_TABLES]
    [*]     MPTCP: Multipath TCP                                         [MPTCP]
    [*]       MPTCP: IPv6 support for Multipath TCP                 [MPTCP_IPV6]
    <*/M> 802.1Q/802.1ad VLAN Support                               [VLAN_8021Q]
    [*]   QoS and/or fair queueing --->                              [NET_SCHED]
      <*> Stochastic Fairness Queueing (SFQ)                       [NET_SCH_SFQ]
      <*> Token Bucket Filter (TBF)                                [NET_SCH_TBF]
      <*> Fair Queue Controlled Delay AQM (FQ_CODEL)          [NET_SCH_FQ_CODEL]
      <*> Ingress/classifier-action Qdisc                      [NET_SCH_INGRESS]

Device Drivers --->
  [*] Network device support --->                                   [NETDEVICES]
    [*]   Network core driver support                                 [NET_CORE]
    <*/M>   Bonding driver support                                     [BONDING]
    <*/M>   Dummy net driver support                                     [DUMMY]
    <*/M>   Ethernet team driver support --->                         [NET_TEAM]
    <*/M>   MAC-VLAN support                                           [MACVLAN]
    <*/M>     MAC-VLAN based tap driver                                [MACVTAP]
    <*/M>   IP-VLAN support                                             [IPVLAN]
    <*/M>   Virtual eXtensible Local Area Network (VXLAN)                [VXLAN]
    <*/M>   Virtual ethernet pair device                                  [VETH]
    <*/M>   Virtual Routing and Forwarding (Lite)                      [NET_VRF]

Instalação do NetworkManager

Se "Qt-5.15.10" 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.44.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

Se você não tiver 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.44.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: Essa chave habilita construir nmtui.

-Dlibpsl=false e -Dovs=false: Essas chaves desabilitam a construção com as respectivas bibliotecas. Remova-as se você tiver as bibliotecas necessárias instaladas em teu sistema.

-Dmodem_manager=false: Essa chave é exigida se o ModemManager não estiver instalado. Omita essa chave se você tiver construído ModemManager e mobile-broadband-provider-info.

-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: Essa chave desabilita o suporte a PPP no NetworkManager, já que os aplicativos necessários para isso não estão instalados. Remova essa chave se você precisar de suporte a PPP e tiver o PPP instalado.

-Dlibaudit=no e -Dselinux=false: Essa chave desabilita o suporte para libaudit e SELinux, vez que ele(a) não é usado(a) no BLFS.

-Dqt=false: Essa chave desabilita os exemplos QT. Omita se você tiver o Qt disponível e desejar instalar os exemplos.

-Dcrypto=gnutls: Use essa chave se você tiver o GnuTLS instalado e quiser usá-lo para operações de certificados e chaves no NetworkManager, em vez de usar o NSS (o padrão).

-Dcrypto=null: Use essa chave se nem o NSS nem o GnuTLS estiverem instalados, mas você quiser construir o NetworkManager de qualquer maneira. Essa chave fará com que o NetworkManager careça de alguns recursos (por exemplo, 802.1X).

-Dsuspend_resume=upower: Use essa chave se você tiver UPower-1.90.2 instalado e quiser usá-lo (em vez de Systemd-254) para suspender e retomar o suporte.

Configurando o NetworkManager

Arquivos de Configuração

/etc/NetworkManager/NetworkManager.conf

Informação de Configuração

Para o "NetworkManager" funcionar, pelo menos um arquivo de configuração mínima precisa estar presente. Tal arquivo não é instalado com "make install". Emita o seguinte comando como o(a) usuário(a) "root" para criar um arquivo "NetworkManager.conf" mínimo:

cat >> /etc/NetworkManager/NetworkManager.conf << "EOF"
[main]
plugins=keyfile
EOF

Esse arquivo não deveria ser modificado diretamente pelos(as) usuários(as) do sistema. Em vez disso, mudanças específicas do sistema deveriam ser feitas usando arquivos de configuração no diretório "/etc/NetworkManager/conf.d".

Para permitir que o "Polkit" gerencie autorizações, adicione o seguinte arquivo de configuração:

cat > /etc/NetworkManager/conf.d/polkit.conf << "EOF"
[main]
auth-polkit=true
EOF

Para usar algo diferente do cliente DHCP integrado (recomendado se usar somente o nmcli), use a seguinte configuração (os valores válidos incluem ou dhcpcd ou internal):

cat > /etc/NetworkManager/conf.d/dhcp.conf << "EOF"
[main]
dhcp=dhcpcd
EOF

Para evitar que o "NetworkManager" atualize o arquivo "/etc/resolv.conf", adicione o seguinte arquivo de configuração:

cat > /etc/NetworkManager/conf.d/no-dns-update.conf << "EOF"
[main]
dns=none
EOF

Para opções adicionais de configuração, veja-se "man 5 NetworkManager.conf".

Para permitir que usuários(as) regulares configurem conexões de rede de intercomunicação, você deveria adicioná-los(as) ao grupo "netdev" e criar uma regra do "polkit" que conceda acesso. Execute os seguintes comandos como o(a) usuário(a) "root":

groupadd -fg 86 netdev &&
/usr/sbin/usermod -a -G netdev <nome_usuário(a)>

cat > /usr/share/polkit-1/rules.d/org.freedesktop.NetworkManager.rules << "EOF"
polkit.addRule(function(action, subject) {
    if (action.id.indexOf("org.freedesktop.NetworkManager.") == 0 && subject.isInGroup("netdev")) {
        return polkit.Result.YES;
    }
});
EOF

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.44.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.32.0

Introdução ao NetworkManager Applet

O "NetworkManager Applet" fornece uma ferramenta e um miniaplicativo de painel usado para configurar conexões de rede de intercomunicação com e sem fio por meio de "GUI". Ele foi projetado para uso com qualquer ambiente de área de trabalho que use "GTK+", como o "Xfce" e o "LXDE".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "NetworkManager Applet"

Exigidas

GTK+-3.24.38, libnma-1.10.6 e libsecret-0.21.0

Recomendadas
Exigidas (Tempo de Execução)

Como esse pacote usa "Polkit-123" 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.6 e libindicator

Instalação do NetworkManager Applet

Instale o "NetworkManager Applet" executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup ..            \
      --prefix=/usr       \
      --buildtype=release \
      -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.94

Introdução ao Nmap

"Nmap" é um utilitário para exploração de rede de intercomunicação e auditoria de segurança. Ele suporta varredura de "ping", varredura de porta e impressão digital "TCP"/"IP".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP): https://nmap.org/dist/nmap-7.94.tar.bz2

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 4f65e08148d1eaac6b1a1482e7185e1d

  • Tamanho da transferência: 11 MB

  • Espaço em disco estimado exigido: 138 MB (adicionar 17 MB para testes)

  • Tempo de construção estimado: 0,3 UPC (Usando paralelismo=4; adicionar 0,1 UPC para testes)

Dependências do "Nmap"

Recomendadas

Nota

Estes pacotes são recomendados porque, se não estiverem instalados, [então] o processo de construção compilará e se vinculará à própria versão deles (geralmente mais antiga).

Opcionais

libdnet

Instalação do Nmap

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/python3.11/site-packages/{radialnet,zenmapCore,zenmapGUI,zenmap-7.94-py3.11.egg-info} e /usr/share/{ncat,nmap,zenmap}

Descrições Curtas

ncat

é um utilitário para ler e escrever dados entre redes de intercomunicação a partir da linha de comando

ndiff

é uma ferramenta para auxiliar na comparação de varreduras do "Nmap"

nmap

é um utilitário para exploração de rede de intercomunicação e auditoria de segurança. Suporta varredura de "ping", varredura de portas e impressão digital "TCP"/"IP"

nping

é uma ferramenta de fonte aberto para geração de pacotes de rede de intercomunicação, análise de resposta e medição de tempo de resposta

uninstall_ndiff

é um conjunto de comandos sequenciais "Python" para desinstalar o "ndiff"

uninstall_zenmap

é um conjunto de comandos sequenciais "Python" para desinstalar o "zenmap"

zenmap

é um visualizador gráfico, baseado em "Python", de estrutura de interação direta com o(a) usuário(a) do "nmap"

Traceroute-2.1.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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Instalação do Traceroute

Instale o "Traceroute" executando os seguintes comandos:

make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

make prefix=/usr install                                &&
ln -sv -f traceroute /usr/bin/traceroute6                &&
ln -sv -f traceroute.8 /usr/share/man/man8/traceroute6.8 &&
rm -fv /usr/share/man/man1/traceroute.1

O arquivo "traceroute.1" que foi instalado no LFS pelo "inetutils" não mais é relevante. Esse pacote sobrescreve essa versão do "traceroute" e instala a página de manual no capítulo oito (08) do manual.

Conteúdo

Aplicativo Instalado: traceroute e traceroute6 (link simbólico)
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: Nenhum(a)

Descrições Curtas

traceroute

faz basicamente o que diz: rastreia a rota que os teus pacotes seguem a partir do dispositivo em que você estiver trabalhando para outro dispositivo em uma rede de intercomunicação, mostrando todos os saltos intermediários ("gateways") ao longo do caminho

traceroute6

é equivalente a "traceroute -6"

Whois-5.4.3

Introdução ao Whois

"Whois" é um aplicativo do lado cliente que consulta o serviço de diretório "whois" em busca de informações relativas a um nome de domínio específico. Esse pacote instalará dois aplicativos por padrão: "whois" e "mkpasswd". O comando "mkpasswd" também é instalado pelo pacote "expect" no LFS.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "Whois"

Opcionais

libidn-1.41 ou libidn2-2.3.4

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

Introdução ao Wireshark

O pacote "Wireshark" contém um analisador de protocolo de rede de intercomunicação, também conhecido como um sniffer. Isso é útil para analisar dados capturados fora do fio a partir de uma conexão ativa de rede de intercomunicação ou dados lidos a partir de um arquivo de captura.

O "Wireshark" fornece uma estrutura de interação direta com o(a) usuário(a), gráfica e em modo TTY, para examinar pacotes de rede de intercomunicação capturados a partir de mais que quinhentos (500) protocolos, bem como a capacidade de ler arquivos de captura a partir de muitos outros analisadores populares de rede de intercomunicação.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP): https://www.wireshark.org/download/src/all-versions/wireshark-4.0.7.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 8c23f20130bb1a346ca3da1ff43a16b4

  • Tamanho da transferência: 41 MB

  • Espaço em disco estimado exigido: 692 MB (com todas as dependências opcionais disponíveis no livro BLFS)

  • Tempo de construção estimado: 2,1 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.27.2, GLib-2.76.4, libgcrypt-1.10.2 e (Qt-5.15.10 ou componentes-qt-5.15.10 com qtmultimedia)

Recomendadas
Opcionais

asciidoctor-2.0.20, Brotli-1.0.9, c-ares-1.19.1, Doxygen-1.9.7, git-2.41.0, GnuTLS-3.8.1, libnl-3.7.0, libxslt-1.1.38, libxml2-2.10.4, Lua-5.2.4, MIT Kerberos V5-1.21.2, nghttp2-1.55.1, SBC-2.0, Speex-1.2.1, BCG729, libilbc, libsmi, lz4, libssh, MaxMindDB, Minizip, Snappy e Spandsp

Configuração do Núcleo

O núcleo precisa ter o protocolo "Packet" habilitado para o "Wireshark" capturar pacotes ativos a partir da rede de intercomunicação:

[*] Networking support --->                                                [NET]
  Networking options --->
    <*/M> Packet socket                                                 [PACKET]

Se construído como um módulo, [então] o nome é "af_packet.ko".

Instalação do Wireshark

"Wireshark" é um aplicativo muito grande e complexo. Estas instruções fornecem medidas adicionais de segurança para garantir que somente usuários(as) confiáveis sejam permitidos(as) a visualizar o tráfego da rede de intercomunicação. Primeiro, configure um grupo do sistema para o "Wireshark". Como o(a) usuário(a) "root":

groupadd -g 62 wireshark

Continue a instalar o "Wireshark" executando os seguintes comandos:

mkdir build &&
cd   build &&

cmake -DCMAKE_INSTALL_PREFIX=/usr \
      -DCMAKE_BUILD_TYPE=Release  \
      -DCMAKE_INSTALL_DOCDIR=/usr/share/doc/wireshark-4.0.7 \
      -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.7 &&
install -v -m644   ../README.linux ../doc/README.* ../doc/randpkt.txt \
                    /usr/share/doc/wireshark-4.0.7 &&

pushd /usr/share/doc/wireshark-4.0.7 &&
   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.7

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

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

Introdução ao c-ares

"c-ares" é uma biblioteca "C" para solicitações "DNS" assíncronas.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP): https://c-ares.haxx.se/download/c-ares-1.19.1.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: dafc5825a92dc907e144570e4e75a908

  • Tamanho da transferência: 1,6 MB

  • Espaço em disco estimado exigido: 12 MB

  • Tempo de construção estimado: menos que 0,1 UPC

Dependências de c-ares

Exigidas

CMake-3.27.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-8.2.1

Introdução ao cURL

O pacote "cURL" contém um utilitário e uma biblioteca usado(a) para transferir arquivos com sintaxe "URL" para qualquer um dos seguintes protocolos: "DICT", "FILE", "FTP", "FTPS", "GOPHER", "GOPHERS", "HTTP", "HTTPS", "IMAP", "IMAPS", "LDAP", "LDAPS", "MQTT", "POP3", "POP3S", "RTSP", "SMB", "SMBS", "SMTP", "SMPTS", "TELNET" e "TFTP". A capacidade dele(a) de baixar e de enviar arquivos pode ser incorporada a outros aplicativos para suportar funções como mídia em transmissão.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP): https://curl.se/download/curl-8.2.1.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 556576a795bdd2c7d10de6886480065f

  • Tamanho da transferência: 2,5 MB

  • Espaço em disco estimado exigido: 42 MB (adicionar 23 MB para testes)

  • Tempo de construção estimado: 0,1 UPC (com paralelismo=4; adicionar 15 UPC para testes (sem valgrind, adicionar 36 UPC com valgrind)

Dependências do "cURL"

Recomendadas
Opcionais

Brotli-1.0.9, c-ares-1.19.1, GnuTLS-3.8.1, libidn2-2.3.4, libpsl-0.21.2, libssh2-1.11.0, MIT Kerberos V5-1.21.2, nghttp2-1.55.1, OpenLDAP-2.6.6, Samba-4.18.6 (tempo de execução, para autenticação NTLM), gsasl, impacket, libmetalink, librtmp, ngtcp2, quiche e SPNEGO

Opcionais se Executar a Suíte de Teste

Apache-2.4.57 e stunnel-5.70 (para os testes HTTPS e FTPS) e Valgrind-3.21.0 (isso atrasará os testes e possivelmente cause falhas).

Instalação do cURL

Instale o "cURL" executando os seguintes comandos:

./configure --prefix=/usr                          \
            --disable-static                        \
            --with-openssl                          \
            --enable-threaded-resolver              \
            --with-ca-path=/etc/ssl/certs &&
make

Para executar a suíte de teste, emita: make test. Os testes relacionados ao protocolo SMB 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       -o  \
             -name CMakeLists.txt \) -delete &&

cp -v -R docs -T /usr/share/doc/curl-8.2.1

Para executar alguns testes simples de verificação sobre o recém instalado curl, emita os seguintes comandos: curl --trace-ascii debugdump.txt https://www.example.com/ e curl --trace-ascii d.txt --trace-time https://example.com/. Inspecione os arquivos de rastreamento criados localmente debugdump.txt e d.txt, que contém informações de versão, informações dos arquivos baixados, etc. Um arquivo tem a hora para cada ação registrada.

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

--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-8.2.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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "GeoClue"

Exigidas

JSON-GLib-1.6.6 e libsoup-3.4.2

Recomendadas
Opcionais

GTK-Doc-1.33.2 e libnotify-0.8.2

Instalação do GeoClue

Instale o "GeoClue" executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --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.76.1

Introdução ao GLib Networking

O pacote "GLib Networking" contém módulos "gio" relacionados à rede de intercomunicação para o "GLib".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "GLib Networking"

Exigidas

GLib-2.76.4 e GnuTLS-3.8.1

Recomendadas
Opcionais

libproxy

Instalação do GLib Networking

Instale o "GLib Networking" executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup            \
   --prefix=/usr       \
   --buildtype=release \
   -Dlibproxy=disabled \
   .. &&
ninja

Para testar os resultados, emita: ninja test.

Agora, como o(a) usuário(a) "root":

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

Conteúdo

Aplicativo Instalado: Nenhum(a)
Bibliotecas Instaladas: libgiognomeproxy.so e libgiognutls.so (Módulos GIO instalados em /usr/lib/gio/modules)
Diretórios Instalados: Nenhum(a)

kdsoap-2.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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "kdsoap"

Exigidas

(Qt-5.15.10 ou qt-alternate-5.15.10)

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 corretamente usando uma plataforma LFS 12.0.

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.4 (para aplicativos de exemplo), Python-2.7.18 e SWIG-4.1.1 (para ligações "Python") e Doxygen-1.9.7 (para documentação "HTML")

Instalação do ldns

Instale o "ldns" executando os seguintes comandos:

./configure --prefix=/usr          \
            --sysconfdir=/etc       \
            --disable-static        \
            --with-drill            &&
make

Se você tiver o "Doxygen-1.9.7" 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.18" projetada para obter todo tipo de informação do "DNS"

ldns-config

mostra sinalizadores de compilador e vinculador para uso do "ldns"

libldns.so

fornece as funções da "API" do "ldns" para aplicativos

libevent-2.1.12

Introdução ao libevent

"libevent" é uma biblioteca de logiciário de notificação de eventos assíncronos. A "API" da "libevent" fornece um mecanismo para executar uma função de retorno de chamada quando um evento específico ocorre em um descritor de arquivo ou depois de um tempo limite ter sido atingido. Além disso, "libevent" também suporta retornos de chamada devido a sinais ou tempos limite regulares.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "libevent"

Opcionais

Doxygen-1.9.7 (para a documentação da "API")

Instalação do libevent

Primeiro, corrija um problema que impede "event_rpcgen.py" de funcionar:

sed -i 's/python/&3/' event_rpcgen.py

Instale o "libevent" executando os seguintes comandos:

./configure --prefix=/usr --disable-static &&
make

Se você tiver o "Doxygen-1.9.7" instalado e desejar construir a documentação da "API", [então] emita:

doxygen Doxyfile

Para testar os resultados, emita: make verify. Seis testes em cada suíte relacionados a regress_ssl.c e regress_http.c são conhecidos por falharem devido a incompatibilidades com o OpenSSL-3. Alguns testes que estão relacionados a regress_dns.c também são conhecidos por falharem intermitentemente devido a tempos limite de teste insuficientes.

Agora, como o(a) usuário(a) "root":

make install

Se você construiu a documentação da "API", [então] instale-a emitindo os seguintes comandos como o(a) usuário(a) "root":

install -v -m755 -d /usr/share/doc/libevent-2.1.12/api &&
cp     -v -R       doxygen/html/* \
                    /usr/share/doc/libevent-2.1.12/api

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Conteúdo

Aplicativo Instalado: event_rpcgen.py
Bibliotecas Instaladas: libevent_core.so, libevent_extra.so, libevent_openssl.so, libevent_pthreads.so e libevent.so
Diretório Instalado: /usr/include/event2 e /usr/share/doc/libevent-2.1.12

libmnl-1.0.5

Introdução ao libmnl

A biblioteca "libmnl" fornece uma biblioteca minimalista de espaço de usuário(a) orientada para desenvolvedores(as) "Netlink". Existem muitas tarefas comuns na análise, validação e construção do cabeçalho "Netlink" e dos "TLVs" que são repetitivas e fáceis de errar. Essa biblioteca visa a fornecer ajudantes simples que te permitem reusar código e evitar a reinvenção da roda.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "libnma"

Opcionais

Doxygen-1.9.7

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Transferência Opcional

Instalação do libnl

Instale o "libnl" executando os seguintes comandos:

./configure --prefix=/usr    \
            --sysconfdir=/etc \
            --disable-static  &&
make

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "libnma"

Exigidas

Gcr-3.41.1, GTK+-3.24.38, ISO Codes-4.15.0 e NetworkManager-1.44.0

Recomendadas
Opcionais

mobile-broadband-provider-info

Instalação do libnma

Instale o "libnma" executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup ..                               \
      --prefix=/usr                          \
      --buildtype=release                    \
      -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-44.3" 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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "libnsl"

Exigidas

libtirpc-1.3.3

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

Introdução ao libpcap

"libpcap" fornece funções para captura de pacotes em nível de usuário(a), usadas no monitoramento de atividade de rede de intercomunicação de baixo nível.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP): https://www.tcpdump.org/release/libpcap-1.10.4.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 0322e28dd76cda8066bb6d00fee5969b

  • Tamanho da transferência: 932 KB

  • Espaço em disco estimado exigido: 9,9 MB

  • Tempo de construção estimado: menos que 0,1 UPC

Dependências do "libpcap"

Opcionais

BlueZ-5.68, 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.

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "libpsl"

Exigidas

libidn2-2.3.4 e libunistring-1.1

Opcionais

GTK-Doc-1.33.2 (para a documentação) e Valgrind-3.21.0 (para os testes)

Instalação do libpsl

Instale o "libpsl" executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release &&

ninja

Para testar os resultados, emita: ninja test.

Agora, como o(a) usuário(a) "root":

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

Conteúdo

Aplicativo Instalado: psl
Biblioteca Instalada: libpsl.so
Diretórios Instalados: Nenhum(a)

Descrições Curtas

psl

consulta a Lista Pública de Sufixos

libpsl.so

contém uma biblioteca usada para acessar a Lista Pública de Sufixos

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 corretamente usando uma plataforma LFS 12.0.

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

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "libslirp"

Exigidas

GLib-2.76.4

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "libsoup"

Exigidas

glib-networking-2.76.1, libpsl-0.21.2, libxml2-2.10.4 e SQLite-3.42.0

Recomendadas
Opcionais

Apache-2.4.57 (exigido para executar a suíte de teste), Brotli-1.0.9, cURL-8.2.1 (exigido para executar a suíte de teste), sysprof-3.48.0 (para perfilamento), MIT Kerberos V5-1.21.2 (exigido para executar a suíte de teste), GTK-Doc-1.33.2, PHP-8.2.9 compilado com suporte "XMLRPC-EPI" (usado somente para os testes de regressão "XMLRPC") e Samba-4.18.6 ("ntlm_auth" é exigido para executar a suíte de teste)

Instalação do libsoup

Instale o "libsoup" executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --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.48.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.4.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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "libsoup3"

Exigidas

glib-networking-2.76.1, libpsl-0.21.2, libxml2-2.10.4, nghttp2-1.55.1 e SQLite-3.42.0

Recomendadas
Opcionais

Apache-2.4.57 (exigido para executar a suíte de teste), Brotli-1.0.9, cURL-8.2.1 (exigido para executar a suíte de teste), Gi-DocGen-2023.1, MIT Kerberos V5-1.21.2 (exigido para executar a suíte de teste), PHP-8.2.9 compilado com suporte XMLRPC-EPI (usado somente para os testes de regressão do XMLRPC), Samba-4.18.6 (ntlm_auth é exigido para executar a suíte de teste), sysprof-3.48.0 (para perfilamento) e wstest

Instalação do libsoup3

Corrija o caminho de instalação da documentação da "API":

sed 's/apiversion/soup_version/' -i docs/reference/meson.build

Instale o "libsoup3" executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr          \
            --buildtype=release    \
            -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.48.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/doc/libsoup-3.4.2 (somente instalado 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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "libtirpc"

Opcionais

MIT Kerberos V5-1.21.2 para a "GSSAPI"

Instalação do libtirpc

Nota

Se atualizar esse pacote, [então] você também precisará atualizar qualquer versão existente de "rpcbind-1.2.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.21.2") 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 corretamente usando uma plataforma LFS 12.0.

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.1, libxml2-2.10.4, MIT Kerberos V5-1.21.2, nss-3.92 (para alguns testes), xmlto-0.0.28 (para regenerar a documentação), libproxy e PaKChoiS

Instalação do neon

Instale o "neon" executando os seguintes comandos:

./configure --prefix=/usr   \
            --with-ssl       \
            --enable-shared  \
            --disable-static &&
make

Para testar os resultados, emita: "make check".

Se você desejar regenerar a documentação, emita:

make docs

Agora, como o(a) usuário(a) "root":

make install

Explicações do Comando

--with-ssl: Essa chave habilita o suporte "SSL" usando o "OpenSSL". O "GnuTLS" pode ser usado em vez disso, passando-se "--with-ssl=gnutls" e "--with-ca-bundle=/etc/pki/tls/certs/ca-bundle.crt" para o conjunto de comandos sequenciais "configure".

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Conteúdo

Aplicativo Instalado: neon-config
Biblioteca Instalada: libneon.so
Diretórios Instalados: /usr/include/neon e /usr/share/doc/neon-0.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.55.1

Introdução ao nghttp2

"nghttp2" é uma implementação de "HTTP/2" e do algoritmo de compressão de cabeçalho dele, "HPACK".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "nghttp2"

Recomendadas

libxml2-2.10.4

Opcionais

Os seguintes são usados somente se construir o pacote completo em vez de somente as bibliotecas principais: Boost-1.83.0, c-ares-1.19.1, cython-0.29.36, jansson-2.14, libevent-2.1.12, sphinx-7.1.2, jemalloc, libev, mruby e Spdylay.

"CUnit" é exigido se você desejar executar a suíte de teste.

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.55.1 &&
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.55.1

Descrições Curtas

libnghttp2.so

uma implementação do "Hypertext Transfer Protocol" versão 2 em "C"

rpcsvc-proto-1.4.4

Introdução ao rpcsvc-proto

O pacote "rpcsvc-proto" contém os arquivos e cabeçalhos do protocolo "rcpsvc", anteriormente incluídos na "glibc", que não estão incluídos na substituição "libtirpc-1.3.3", junto com o aplicativo "rpcgen".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Instalação do rpcsvc-proto

Instale o "rpcsvc-proto" executando os seguintes comandos:

./configure --sysconfdir=/etc &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

make install

Conteúdo

Aplicativos Instalados: rpcgen
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/include/rpcsvc

Descrições Curtas

rpcgen

Gera código "C" para implementar o protocolo "RPC"

Serf-1.3.10

Introdução ao Serf

O pacote "Serf" contém uma biblioteca cliente "HTTP" baseada em "C" construída sobre a biblioteca "Apache Portable Runtime" ("APR"). Ela multiplexa conexões, executando a comunicação de leitura/escrita assincronamente. As cópias e transformações da memória são reduzidas ao mínimo para fornecer operação de alto desempenho.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP): https://archive.apache.org/dist/serf/serf-1.3.10.tar.bz2

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 5320087299084c297eff8e1dacfab1af

  • Tamanho da transferência: 148 KB

  • Espaço em disco estimado exigido: 2,4 MB

  • Tempo de construção estimado: menos que 0,1 UPC

Dependências do "Serf"

Exigidas

Apr-Util-1.6.3 e SCons-4.5.2

Opcionais

MIT Kerberos V5-1.21.2, para a "GSSAPI"

Instalação do Serf

Instale o "Serf" executando os seguintes comandos:

sed -i "/Append/s:RPATH=libdir,::"          SConstruct &&
sed -i "/Default/s:lib_static,::"           SConstruct &&
sed -i "/Alias/s:install_static,::"         SConstruct &&

scons PREFIX=/usr

Esse pacote não vem com uma suíte 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.

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "uhttpmock"

Exigidas

libsoup-2.74.3

Recomendadas
Opcionais

GTK-Doc-1.33.2

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

Introdução ao Links

"Links" é um navegador "WWW" em modo texto e gráfico. Inclui suporte para renderização de tabelas e quadros, realça transferências em segundo plano, consegue exibir cores e tem muitos outros recursos.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP): http://links.twibright.com/download/links-2.29.tar.bz2

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: f60b87ffee090c5d6820951eba710572

  • Tamanho da transferência: 6,2 MB

  • Espaço em disco estimado exigido: 35 MB

  • Tempo de construção estimado: 0,2 UPC

Dependências do "Links"

Recomendadas
Opcionais

O modo gráfico exige pelo menos um de GPM-1.20.7 (suporte de mouse para ser usado com um console baseado em "framebuffer"), SVGAlib, DirectFB e um ambiente gráfico

Para decodificar vários formatos de imagem, o Links consegue utilizar libavif-0.11.1, libpng-1.6.40, libjpeg-turbo-3.0.0, librsvg-2.56.3 e libtiff-4.5.1

Para descomprimir páginas da "web" que estejam comprimidas com o "Brotli", o "Links" consegue utilizar o "Brotli-1.0.9"

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.29 &&
install -v -m644 doc/links_cal/* KEYS BRAILLE_HOWTO \
   /usr/share/doc/links-2.29

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

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Transferências Adicionais

Dependências do "Lynx"

Opcionais

GnuTLS-3.8.1 (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")

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.1677", 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.37

Introdução ao Fetchmail

O pacote "Fetchmail" contém um aplicativo de recuperação de mensagem. Ele recupera mensagens a partir de servidores remotos de mensagem e as encaminha para o sistema de entrega da máquina local (cliente), de forma que então possam ser lidas por agentes normais usuários de mensagem.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP): https://downloads.sourceforge.net/fetchmail/fetchmail-6.4.37.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 61db4f95af4f1a5f95e7ea632928d48d

  • Tamanho da transferência: 1,1 MB

  • Espaço em disco estimado exigido: 15 MB incluindo testes

  • Tempo de construção estimado: 0,1 UPC incluindo os testes

Dependências do "Fetchmail"

Recomendadas
Opcionais

MIT Kerberos V5-1.21.2 e libgssapi

Opcional (para executar "fetchmailconf")

Python-3.11.4, construído depois do Tk-8.6.13, com o pacote "py-future"

Instalação do Fetchmail

Crie um(a) usuário(a) dedicado(a) para o aplicativo "fetchmail". Emita os seguintes comandos como o(a) usuário(a) "root":

useradd -c "Usuário(a) Fetchmail" -d /dev/null -g nogroup \
        -s /bin/false -u 38 fetchmail

Instale o "Fetchmail" executando os seguintes comandos:

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Transferências Adicionais

Dependências do "Heirloom mailx"

Opcionais

nss-3.92, MIT Kerberos V5-1.21.2 (para autenticação "IMAP" "GSSAPI") e um MTA

Instalação do Heirloom mailx

Nota

Esse pacote não suporta construção paralela.

Instale o "Heirloom mailx" executando os seguintes comandos.

patch -Np1 -i ../heirloom-mailx-12.5-fixes-1.patch &&

sed 's@<openssl@<openssl-1.0/openssl@' \
   -i openssl.c fio.c makeconfig      &&

make -j1 LDFLAGS+="-L /usr/lib/openssl/" \
         SENDMAIL=/usr/sbin/sendmail

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

make PREFIX=/usr UCBINSTALL=/usr/bin/install install &&

ln -v -sf mailx /usr/bin/mail &&
ln -v -sf mailx /usr/bin/nail &&

install -v -m755 -d    /usr/share/doc/heirloom-mailx-12.5 &&
install -v -m644 README /usr/share/doc/heirloom-mailx-12.5

Explicações do Comando

make SENDMAIL=/usr/sbin/sendmail: Isso muda o caminho padrão do "MTA" de "/usr/lib/sendmail".

make PREFIX=/usr UCBINSTALL=/usr/bin/install install: Isso muda o caminho padrão da instalação de "/usr/local" e o caminho padrão do comando "install" de "/usr/ucb".

Configurando 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.11

Introdução ao Mutt

O pacote "Mutt" contém um "Mail User Agent". Isso é útil para ler, escrever, responder, salvar e deletar tua mensagem eletrônica.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

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.2, GnuPG-2.4.3, GnuTLS-3.8.1, GPGME-1.21.0, libidn-1.41, MIT Kerberos V5-1.21.2, um MTA (que forneça um comando sendmail), slang-2.3.3, SQLite-3.42.0, libgssapi, Mixmaster, QDBM ou Tokyo Cabinet

Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/mutt

Instalação do Mutt

Nota

O "Mutt" vem com uma versão "HTML" do manual dele, mas a versão em texto não mais é fornecida porque diferenças na formatação de diferentes navegadores de texto em comparação com a versão enviada causaram reclamações. Para obter um arquivo de texto, os seguintes são usados em ordem de preferência: "lynx" com "overstriking" ("backspaces") para ênfase, "w3m" ou "elinks": os dois últimos aparentemente fornecem texto simples. O texto simples é geralmente preferido, a menos que se leia o manual "HTML", de forma que as instruções abaixo usam o "lynx" se disponível, ou então o "links" para produzir texto simples.

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.11 \
            --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.11/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.11

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.3"

pgpring

é um despejador de chaveiro para o "PGP". Não é necessário para o "GnuPG-2.4.3"

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Transferências Adicionais

Dependências do "Procmail"

Recomendadas
Opcionais

libnsl-2.0.0

Observações de Editor(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.17 inclui um cliente de mensagem e um leitor de notícias na instalação dele.

Thunderbird-115.2.0 é um cliente de mensagem/notícias baseado na base do código do "Mozilla".

Evolution-3.48.4 é um cliente de mensagens e organizador originário da área de trabalho GNOME.

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

Introdução ao Apache HTTPD

O pacote "Apache HTTPD" contém um servidor "HTTP" de fonte aberto. Ele é útil para criar sítios "web" locais de intranet ou executar grandes operações de serviço "web".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP): https://archive.apache.org/dist/httpd/httpd-2.4.57.tar.bz2

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 34575e92f91fb625f3842d6ca382caa5

  • Tamanho da transferência: 7,2 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.7, jansson-2.14, libxml2-2.10.4, Lua-5.4.6, Lynx-2.8.9rel.1 ou Links-2.29 ou ELinks, nghttp2-1.55.1, OpenLDAP-2.6.6 (Apr-Util-1.6.3 precisa ser instalado com suporte a ldap), rsync-3.2.7 e Distcache

Observações de Editor(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.57-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-20230816":

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

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

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "BIND"

Exigidas

libuv-1.46.0

Recomendadas
Opcionais

cURL-8.2.1, libidn2-2.3.4, libxml2-2.10.4, lmdb-0.9.31, MIT Kerberos V5-1.21.2, pytest-7.4.0, sphinx-7.1.2 (exigido para construir documentação), cmocka, geoip, jemalloc, w3m

Estruturas de retaguarda opcionais de base de dados

Base de Dados Berkeley-5.3.28, MariaDB-10.11.4 ou MySQL, OpenLDAP-2.6.6, PostgreSQL-15.4 e unixODBC-2.3.12

Opcional (para executar a suíte de teste)

Net-DNS-1.39

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.39 não estiver instalado. Dois testes, resolver e dispatch, são conhecidos por falharem. 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-doh: Use essa opção se você não tiver nghttp2-1.55.1 instalado e não precisar de suporte para DNS sobre HTTPS.

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Configurando o BIND

Arquivos de Configuração

named.conf, root.hints, 127.0.0, rndc.conf e resolv.conf

Informação de Configuração

O BIND será configurado para executar em uma jaula chroot como um(a) usuário(a) sem privilégios (named). Essa configuração é mais segura naquilo que um comprometimento do DNS consegue afetar somente uns poucos arquivos no diretório HOME do(a) usuário(a) named.

Crie o(a) usuário(a) sem privilégios e grupo "named":

groupadd -g 20 named &&
useradd -c "Proprietário(a) do BIND" -g named -s /bin/false -u 20 named &&
install -d -m770 -o named -g named /srv/named

Configure alguns arquivos, diretórios e dispositivos necessários ao "BIND":

mkdir -p /srv/named &&
cd      /srv/named &&
mkdir -p dev etc/named/{slave,pz} usr/lib/engines var/run/named &&
mknod /srv/named/dev/null c 1 3 &&
mknod /srv/named/dev/urandom c 1 9 &&
chmod 666 /srv/named/dev/{null,urandom} &&
cp /etc/localtime etc

O arquivo "rndc.conf" contém informações para controlar as operações do "named" com o utilitário "rndc". Gere uma chave para uso no "named.conf" e "rndc.conf" com o comando "rndc-confgen":

rndc-confgen -a -b 512 -t /srv/named

Crie o arquivo named.conf a partir do qual o named lerá o local dos arquivos de zona, servidores raiz de nomes e chaves seguras DNS:

cat >> /srv/named/etc/named.conf << "EOF"
options {
    directory "/etc/named";
    pid-file "/var/run/named.pid";
    statistics-file "/var/run/named.stats";

};
zone "." {
    type hint;
    file "root.hints";
};
zone "0.0.127.in-addr.arpa" {
    type master;
    file "pz/127.0.0";
};

// O "Bind" 9 agora registra por padrão por intermédio do "syslog" (exceto depuração).
// Estas são as regras padrão de registro.

logging {
    category default { default_syslog; default_debug; };
    category unmatched { null; };

  channel default_syslog {
      syslog daemon;                      // Envia para o recurso de processo de segundo plano
                                          // do "syslog"
      severity info;                      // Envia somente informações prioritárias
                                          // e superiores
  };

  channel default_debug {
      file "named.run";                   // Escreve para "named.run" no 
                                          // diretório de trabalho. 
                                          // Observação: "stderr" é 
                                          // usado em vez de "named.run" 
                                          // se o servidor for iniciado 
                                          // com a opção "-f".
      severity dynamic;                   // Registra no nível de 
                                          // depuração atual do servidor.
  };

  channel default_stderr {
      stderr;                             // Escreve para "stderr"
      severity info;                      // Envia somente informações prioritárias
                                          // e superiores
  };

  channel null {
      null;                               // Descarta tudo enviado para
                                          // esse canal
  };
};
EOF

Crie um arquivo de zona com o seguinte conteúdo:

cat > /srv/named/etc/named/pz/127.0.0 << "EOF"
$TTL 3D
@     IN      SOA     ns.local.domain. hostmaster.local.domain. (
                        1       ; Serial
                        8H      ; Refresh
                        2H      ; Retry
                        4W      ; Expire
                        1D)     ; Minimum TTL
                NS      ns.local.domain.
1               PTR     localhost.
EOF

Crie o arquivo "root.hints" com os seguintes comandos:

Nota

Deve-se ter cuidado para garantir que não existam espaços iniciais neste arquivo.

cat > /srv/named/etc/named/root.hints << "EOF"
.                      6D  IN      NS      A.ROOT-SERVERS.NET.
.                       6D  IN      NS      B.ROOT-SERVERS.NET.
.                       6D  IN      NS      C.ROOT-SERVERS.NET.
.                       6D  IN      NS      D.ROOT-SERVERS.NET.
.                       6D  IN      NS      E.ROOT-SERVERS.NET.
.                       6D  IN      NS      F.ROOT-SERVERS.NET.
.                       6D  IN      NS      G.ROOT-SERVERS.NET.
.                       6D  IN      NS      H.ROOT-SERVERS.NET.
.                       6D  IN      NS      I.ROOT-SERVERS.NET.
.                       6D  IN      NS      J.ROOT-SERVERS.NET.
.                       6D  IN      NS      K.ROOT-SERVERS.NET.
.                       6D  IN      NS      L.ROOT-SERVERS.NET.
.                       6D  IN      NS      M.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET.     6D  IN      A       198.41.0.4
A.ROOT-SERVERS.NET.     6D  IN      AAAA    2001:503:ba3e::2:30
B.ROOT-SERVERS.NET.     6D  IN      A       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-20230816":

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 ARM (não confunda com a arquitetura do processador) está incluída no pacote do fonte. A documentação está no formato .rst, o que significa que ela pode ser convertida em formatos legíveis por humanos se o sphinx-7.1.2 estiver instalado.

Quando o BIND estiver configurado, especialmente se ele for operar em um cenário da vida real, é altamente recomendado consultar a documentação ARM. O ISC fornece um conjunto atualizado de excelente documentação junto com cada lançamento, de forma que possa ser facilmente visualizada e (ou) baixada – então, não existe desculpa para não ler os documentos. Os formatos que o ISC fornece são PDF, epub e HTML em https://downloads.isc.org/isc/bind9/9.18.18/doc/arm/.

Conteúdo

Aplicativos Instalados: arpaname, ddns-confgen, delv, dig, dnssec-cds, dnssec-dsfromkey, dnssec-importkey, dnssec-keyfromlabel, dnssec-keygen, dnssec-revoke, dnssec-settime, dnssec-signzone, dnssec-verify, host, mdig, named, named-checkconf, named-checkzone, named-compilezone, named-journalprint, named-nzd2nzf, named-rrchecker, nsec3hash, nslookup, nsupdate, rndc, rndc-confgen e tsig-keygen (link simbólico)
Bibliotecas Instaladas: 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}, /usr/lib/bind e /srv/named

Descrições Curtas

arpaname

traduz endereços "IP" para os nomes "ARPA" correspondentes

ddns-confgen

gera uma chave para uso pelo "nsupdate" e pelo "named"

delv

é uma nova ferramenta de depuração que é uma sucessora do "dig"

dig

interroga servidores "DNS"

dnssec-cds

muda os registros "DS" para uma zona filha baseado em "CDS"/"CDNSKEY"

dnssec-dsfromkey

gera o Registro de Recurso ("RR") do "Delegation Signer" ("DS")

dnssec-importkey

lê um registro público "DNSKEY" e gera um par de arquivos ".key"/".private"

dnssec-keyfromlabel

obtém chaves com o rótulo dado a partir de um dispositivo de "hardware" de criptografia e constrói arquivos de chave para "DNSSEC"

dnssec-keymgr

garante a cobertura correta "DNSKEY" baseada em uma política definida

dnssec-revoke

configura o bit "REVOKED" em uma chave "DNSSEC"

dnssec-settime

configura os metadados de hora da chave para uma chave "DNSSEC"

dnssec-signzone

gera versões assinadas de arquivos de zona

dnssec-verify

verifica se uma zona está totalmente assinada para cada algoritmo encontrado no conjunto "RR" do "DNSKEY" para a zona e se as cadeias "NSEC"/"NSEC3" estão completas

host

é um utilitário para pesquisas de "DNS"

mdig

é uma versão do "dig" que permite múltiplas consultas ao mesmo tempo

named

é o processo de segundo plano do servidor de nomes

named-checkconf

verifica a sintaxe dos arquivos "named.conf"

named-checkzone

verifica a validade do arquivo de zona

named-compilezone

é semelhante ao "named-checkzone", mas sempre despeja o conteúdo da zona em um arquivo especificado em um formato especificado

named-journalprint

imprime o diário da zona em formato legível por humanos(as)

named-rrchecker

lê um registro individual de recurso "DNS" a partir da entrada padrão e verifica se ele está sintaticamente correto

named-nzd2nzf

converte uma base de dados "NZD" para o formato de texto "NZF"

nsec3hash

gera um resumo "NSEC3" baseado em um conjunto de parâmetros "NSEC3"

nslookup

é um aplicativo usado para consultar servidores de nomes de domínio da Internet

nsupdate

é usado para submeter solicitações de atualização de "DNS"

rndc

controla a operação do "BIND"

rndc-confgen

gera arquivos "rndc.conf"

tsig-keygen

é um link simbólico para o "ddns-confgen"

Servidor DHCP Kea 2.4.0

Introdução ao Servidor DHCP Kea do ISC

O pacote ISC Kea contém os aplicativos de servidor para DHCP. É o sucessor do antigo servidor DHCP do ISC, que está em fim de vida desde dezembro de 2022.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do Kea

Exigidas

Boost-1.83.0 e log4cplus-2.1.0

Opcionais

MIT Kerberos V5-1.21.2, para documentação Doxygen-1.9.7, Graphviz-8.1.0 e sphinx_rtd_theme-1.2.2

Estruturas opcionais de retaguarda de base de dados

MariaDB-10.11.4 ou MySQL e PostgreSQL-15.4

Configuração do Núcleo

Você precisa ter suporte a Packet Socket. Suporte a IPv6 é opcional.

[*] Networking support --->                                                [NET]
  Networking options --->
    <*/M> Packet socket                                                 [PACKET]
    [*]   TCP/IP networking                                               [INET]
    <*>     The IPv6 protocol --->                                        [IPV6]

Instalação do Servidor DHCP Kea do ISC

Instale o Servidor DHCP Kea do ISC executando os seguintes comandos:

./configure --prefix=/usr        \
            --sysconfdir=/etc    \
            --docdir=/usr/share/doc/kea-2.4.0 \
            --localstatedir=/var \
            --enable-shell       \
            --with-openssl       \
            --disable-static &&
make

Para testar os resultados, emita: make check.

Para instalar a suíte Servidor DHCP Kea do ISC, emita os seguintes comandos como o(a) usuário(a) root:

make -j1 install

Explicações do Comando

--with-pgsql ou --with-mysql: O Kea do ISC consegue armazenar as concessões em uma base de dados. Isso pode ser útil em ambientes grandes que executam um cluster de servidores DHCP. Usar a estrutura de retaguarda memfile (que é um arquivo CSV armazenado localmente) é possível de qualquer maneira.

--enable-generate-docs: Se a documentação for para ser reconstruída, adicione essa opção. Diversas dependências precisam estar instaladas para gerar a documentação.

make -j1 install: O ISC não recomenda nenhuma forma de paralelismo ou opções de tarefa de servidor ao fazer a instalação.

Configurando o Servidor DHCP Kea do ISC

O suporte de IPv4, IPv6 e DDNS foi dividido em servidores separados que funcionam independentemente um do outro. Cada um deles tem o próprio arquivo de configuração dele. Arquivos adicionais de configuração vem do agente keactrl que é usado para controlar os servidores de maneira fácil.

Consulte-se o Manual de Referência do(a) Administrador(a) do Kea para informações detalhadas acerca da configuração do Kea do ISC, pois ele é um sistema bastante capaz. A configuração mostrou o mínimo para colocar um servidor DHCP em execução, mas já inclui configuração para DDNS (DNS Dinâmico). Essa configuração pode funcionar para redes de intercomunicação pequenas com poucos clientes e baixo tráfego. Para instalações maiores com milhares de clientes, o Kea do ISC pode ser configurado para usar bases de dados (mariadb ou postgresql) para armazenar as concessões e construir um cluster com múltiplos nós. Ele pode ser integrado ao Stork do ISC, que é um painel de gerenciamento para o Kea do ISC.

Se você quiser iniciar o Servidor DHCP na inicialização, instale a unidade kea-dhcpd.service incluída no pacote blfs-systemd-units-20230816:

make install-kea-dhcpd

Arquivos de Configuração

/etc/kea/keactrl.conf, /etc/kea/kea-ctrl-agent.conf, /etc/kea/kea-dhcp4.conf, /etc/kea/kea-dhcp6.conf e /etc/kea/kea-dhcp-ddns.conf

Configuração do Controle do Kea

keactrl é usado para controlar os servidores independentes (IPv4, IPv6, DDNS). O arquivo de configuração dele, /etc/kea/keactrl.conf, é instalado por padrão e inclui muitas configurações de caminho que são definidas devido ao configure ao tempo da construção. Também inclui configurações para especificar qual dos servidores deveria ser iniciado.

  • Agente de Controle

    O Agente de Controle é um processo de segundo plano que permite a (re)configuração do serviço DHCP do Kea via API REST. Configure ctrl_agent=yes para iniciar o agente de controle (serviço que fornece uma API REST); configure ctrl_agent=no caso o agente de controle não seja necessário.

  • Servidor DHCP de IPv4

    Esse processo de segundo plano lida com solicitações de endereços IPv4. Configure dhcp4=yes para iniciá-lo; configure dhcp4=no caso o serviço DHCP para IPv4 não seja desejado.

  • Servidor DHCP de IPv6

    Esse processo de segundo plano lida com solicitações de endereços IPv6. Configure dhcp6=yes para iniciá-lo; configure dhcp6=no caso o serviço DHCP para IPv6 não seja desejado.

  • DNS Dinâmico

    Esse processo de segundo plano é usado para atualizar um servidor DNS dinamicamente quando Kea atribui um endereço IP a um dispositivo. Configure dhcp_ddns=yes para habilitá-lo; configure dhcp_ddns=no caso as atualizações dinâmicas de DNS não sejam desejadas.

O serviço Netconf não é instalado porque as dependências exigidas não são cobertas pelo atual livro do BLFS.

Com o seguinte comando, o Kea será configurado para iniciar o serviço DHCP para IPv4 e a atualização dinâmica do DNS, enquanto o agente de controle e o serviço DHCP para IPv6 permanecerão inativos. Ajuste o comando para atender às tuas necessidades nos serviços iniciados e execute como o(a) usuário(a) root:

sed -e "s/^dhcp4=.*/dhcp4=yes/" \
    -e "s/^dhcp6=.*/dhcp6=no/" \
    -e "s/^dhcp_ddns=.*/dhcp_ddns=yes/" \
    -e "s/^ctrl_agent=.*/ctrl_agent=no/" \
    -i /etc/kea/keactrl.conf

Configuração do Agente de Controle

A configuração fornecida poderia ser usada sem mudanças, mas, no BLFS, objetos como soquetes são armazenados em /run em vez de em /tmp.

cat > /etc/kea/kea-ctrl-agent.conf << "EOF"
// Inicia /etc/kea/kea-ctrl-agent.conf
{
  // Esta é uma configuração básica para o Agente de Controle do Kea.
  // Interface RESTful para estar disponível em http://127.0.0.1:8000/
  "Control-agent": {
    "http-host": "127.0.0.1",
    "http-port": 8000,
    "control-sockets": {
      "dhcp4": {
        "socket-type": "unix",
        "socket-name": "/run/kea4-ctrl-socket"
      },
      "dhcp6": {
        "socket-type": "unix",
        "socket-name": "/run/kea6-ctrl-socket"
      },
      "d2": {
        "socket-type": "unix",
        "socket-name": "/run/kea-ddns-ctrl-socket"
      }
    },

    "loggers": [
      {
        "name": "kea-ctrl-agent",
        "output_options": [
          {
            "output": "/var/log/kea-ctrl-agent.log"
            "pattern": "%D{%Y-%m-%d %H:%M:%S.%q} %-5p %m\n"
          }
        ],
        "severity": "INFO",
        "debuglevel": 0
      }
    ]
  }
}
// Termina /etc/kea/kea-ctrl-agent.conf
EOF

Configuração do Servidor DHCP de IPv4

Um arquivo de configuração de amostra é criado em /etc/kea/kea-dhcp4.conf. Ajuste o arquivo para atender às tuas necessidades ou sobrescreva-o usando a seguinte amostra como o(a) usuário(a) root:

cat > /etc/kea/kea-dhcp4.conf << "EOF"
// Inicia /etc/kea/kea-dhcp4.conf
{
  "Dhcp4": {
    // Add names of your network interfaces to listen on.
    "interfaces-config": {
      "interfaces": [ "eth0", "eth2" ]
    },

    "control-socket": {
      "socket-type": "unix",
      "socket-name": "/run/kea4-ctrl-socket"
    },

    "lease-database": {
      "type": "memfile",
      "lfc-interval": 3600
    },

    "expired-leases-processing": {
      "reclaim-timer-wait-time": 10,
      "flush-reclaimed-timer-wait-time": 25,
      "hold-reclaimed-time": 3600,
      "max-reclaim-leases": 100,
      "max-reclaim-time": 250,
      "unwarned-reclaim-cycles": 5
    },

    "renew-timer": 900,
    "rebind-timer": 1800,
    "valid-lifetime": 3600,

    // Enable DDNS - Kea will dynamically update the DNS
    "ddns-send-updates" : true,
    "ddns-qualifying-suffix": "your.domain.tld",
    "dhcp-ddns" : {
      "enable-updates": true
    },

    "subnet4": [
      {
        "subnet": "192.168.56.0/24",
        "pools": [ { "pool": "192.168.56.16 - 192.168.56.254" } ],
        "option-data": [
          {
            "name": "domain-name",
            "data": "your.domain.tld"
          },
          {
            "name": "domain-name-servers",
            "data": "192.168.56.2, 192.168.3.7"
          },
          {
            "name": "domain-search",
            "data": "your.domain.tld"
          },
          {
            "name": "routers",
            "data": "192.168.56.2"
          }
        ]
      }
    ],

    "loggers": [
      {
        "name": "kea-dhcp4",
        "output_options": [
          {
            "output": "/var/log/kea-dhcp4.log",
            "pattern": "%D{%Y-%m-%d %H:%M:%S.%q} %-5p %m\n"
          }
        ],
        "severity": "INFO",
        "debuglevel": 0
      }
    ]
  }
}
// Termina /etc/kea/kea-dhcp4.conf
EOF

A configuração para IPv6 é semelhante à configuração do IPv4. O arquivo de configuração é /etc/kea/kea-dhcp6.conf.

Configuração do DNS Dinâmico

Se existir um servidor BIND-9.18.18 executando, o Kea do ISC poderá atualizar o DNS quando fornecer um endereço IP para um cliente. Um arquivo de configuração de amostra é criado em /etc/kea/kea-dhcp-ddns.conf. Ajuste o arquivo para atender às tuas necessidades ou sobrescreva-o usando a seguinte amostra como o(a) usuário(a) root:

cat > /etc/kea/kea-dhcp-ddns.conf << "EOF"
// Inicia /etc/kea/kea-dhcp-ddns.conf
{
  "DhcpDdns": {
    "ip-address": "127.0.0.1",
    "port": 53001,
    "control-socket": {
      "socket-type": "unix",
      "socket-name": "/run/kea-ddns-ctrl-socket"
    },

    "tsig-keys": [
      {
        "name"      : "rndc-key",
        "algorithm" : "hmac-sha256",
        "secret"    : "1FU5hD7faYaajQCjSdA54JkTPQxbbPrRnzOKqHcD9cM="
      }
    ],

    "forward-ddns" : {
      "ddns-domains" : [
        {
          "name" : "your.domain.tld.",
          "key-name": "rndc-key",
          "dns-servers" : [
            {
              "ip-address" : "127.0.0.1",
              "port" : 53
            }
          ]
        }
      ]
    },

    "reverse-ddns" : {
      "ddns-domains" : [
        {
          "name" : "56.168.192.in-addr.arpa.",
          "key-name": "rndc-key",
          "dns-servers" : [
            {
              "ip-address" : "127.0.0.1",
              "port" : 53
            }
          ]
        }
      ]
    },

    "loggers": [
      {
        "name": "kea-dhcp-ddns",
        "output_options": [
          {
            "output": "/var/log/kea-ddns.log",
            "pattern": "%D{%Y-%m-%d %H:%M:%S.%q} %-5p %m\n"
          }
        ],
        "severity": "INFO",
        "debuglevel": 0
      }
    ]
  }
}
// Termina /etc/kea/kea-dhcp-ddns.conf
EOF

Nota

O valor de secret é apenas um exemplo. Gere a chave para tua instalação usando o comando rndc-confgen -a ou o comando tsig-keygen, ambos fornecidos por BIND-9.18.18.

Nessa configuração de amostra, presume-se que o servidor DNS executa na mesma máquina que o Kea (acessível via 127.0.0.1) e que essa máquina tenha o IP 192.168.56.2 .

Conteúdo

Aplicativos Instalados: keactrl, kea-admin, kea-ctrl-agent, kea-dhcp4, kea-dhcp6, kea-dhcp-ddns, kea-lfc, kea-shell
Bibliotecas Instaladas: libkea-*
Diretórios Instalados: /etc/kea, /usr/include/kea, /var/lib/kea

Descrições Curtas

keactrl

Ferramenta para controlar (iniciar/parar) os processos do servidor.

kea-admin

kea-admin é um conjunto de comandos sequenciais de shell que oferece manutenção de base de dados.

kea-ctrl-agent

Processo de segundo plano que expõe uma interface de controle RESTful para gerenciar servidores Kea.

kea-dhcp4

O processo de segundo plano do servidor que fornece endereços IPv4.

kea-dhcp6

O processo de segundo plano do servidor que fornece endereços IPv6.

kea-dhcp-ddns

O processo de segundo plano do servidor que realiza as atualizações dinâmicas de DNS.

kea-lfc

O processo de serviço kea-lfc remove informações redundantes dos arquivos usados para fornecer armazenamento persistente para a estrutura de retaguarda de base de dados memfile. Ele é executado pelo servidor DHCP do Kea.

keashell

Cliente RESTful para os serviços do Kea do ISC.

ProFTPD-1.3.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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "ProFTPD"

Opcionais

libcap-2.69 com PAM, libssh2-1.11.0, Linux-PAM-1.5.3, MariaDB-10.11.4 ou MySQL, PCRE-8.45, PostgreSQL-15.4 e Net::SSH2

Instalação do ProFTPD

Por motivos de segurança, você deveria instalar o "ProFTPD" usando um(a) usuário(a) e grupo sem privilégios. Como o(a) usuário(a) "root":

groupadd -g 46 proftpd                            &&
useradd -c proftpd -d /srv/ftp -g proftpd \
        -s /usr/bin/proftpdshell -u 46 proftpd     &&

install -v -d -m775 -o proftpd -g proftpd /srv/ftp &&
ln -v -s /usr/bin/false /usr/bin/proftpdshell      &&
echo /usr/bin/proftpdshell >> /etc/shells

Instale o "ProFTPD" como um(a) usuário(a) sem privilégios executando os seguintes comandos:

./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/run &&
make

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-20230816":

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 corretamente usando uma plataforma LFS 12.0.

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.69 com PAM

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

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-20230816":

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 corretamente usando uma plataforma LFS 12.0.

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-73.2, libcap-2.69 com PAM, Linux-PAM-1.5.3, Lua-5.4.6, MariaDB-10.11.4 ou MySQL, OpenLDAP-2.6.6, PostgreSQL-15.4, SQLite-3.42.0, Valgrind-3.21.0, xfsprogs-6.4.0, Cassandra, lz4, stemmer e libsodium

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 corretamente usando uma plataforma LFS 12.0.

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 pcre2-10.42

Opcionais

TDB (alternativa ao GDBM, construído no LFS), Cyrus SASL-2.1.28, libidn-1.41, Linux-PAM-1.5.3, MariaDB-10.11.4 ou MySQL, OpenLDAP-2.6.6, GnuTLS-3.8.1, PostgreSQL-15.4, SQLite-3.42.0, um ambiente gráfico, Heimdal GSSAPI e OpenDMARC

Instalação do Exim

Antes de construir o "Exim", como o(a) usuário(a) "root", você deveria criar o grupo e o(a) usuário(a) "exim" os quais executarão o processo de segundo plano "exim":

groupadd -g 31 exim &&
useradd -d /dev/null -c "Processo de Segundo Plano Exim" -g exim -s /bin/false -u 31 exim

Configure o "Exim" com os seguintes comandos:

sed -e 's,^BIN_DIR.*$,BIN_DIRECTORY=/usr/sbin,'    \
    -e 's,^CONF.*$,CONFIGURE_FILE=/etc/exim.conf,' \
    -e 's,^EXIM_USER.*$,EXIM_USER=exim,'           \
    -e '/# 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-20230816":

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

Introdução ao Postfix

O pacote "Postfix" contém um "Mail Transport Agent" ("MTA"). Isso é útil para enviar mensagem eletrônica para outros(as) usuários(as) da tua máquina anfitriã. Ele também pode ser configurado para ser um servidor central de mensagens para o teu domínio, um agente de retransmissão de mensagens ou simplesmente um agente de entrega de mensagens para o teu Provedor local de Serviços de Internet.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "Postfix"

Recomendadas
Opcionais

ICU-73.2 para suporte a Internacionalização de Endereços de Correio Eletrônico ("SMTPUTF8"), MariaDB-10.11.4 ou MySQL, OpenLDAP-2.6.6, PCRE-8.45, PostgreSQL-15.4, SQLite-3.42.0 e CDB ou TinyCDB

Observe que "SQLite", "MySQL", "PostgreSQL" e "CDB" são úteis somente se existir uma necessidade conhecida deles.

Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/postfix

Instalação do Postfix

Adicionando Usuários(as) e Grupos

Antes de compilar o aplicativo, você precisa criar usuários(as) e grupos que serão esperados estarem no lugar durante a instalação. Adicione os(as) usuários(as) e grupos com os seguintes comandos emitidos pelo(a) usuário(a) "root":

groupadd -g 32 postfix &&
groupadd -g 33 postdrop &&
useradd -c "Usuário(a) do Processo de Segundo Plano do Postfix" -d /var/spool/postfix -g postfix \
        -s /bin/false -u 32 postfix &&
chown -v postfix:postfix /var/mail

Configurando a Construção

Os arquivos README são formatados para serem lidos com um paginador como less ou more. Se você quiser usar um editor de texto, torne-os legíveis com o seguinte sed:

sed -i 's/.\x08//g' README_FILES/*

A árvore do fonte do "Postfix" não contém um conjunto de comandos sequenciais "configure", em vez disso, o "makefile" no diretório de nível superior contém um alvo "makefiles" que regenera todos os outros "makefiles" na árvore de construção. Se desejar usar software adicional, como uma estrutura de retaguarda de base de dados para usuários(as) virtuais ou autenticação "TLS"/"SSL", [então] você precisará regenerar os "makefiles" usando uma ou mais das configurações apropriadas "CCARGS" e "AUXLIBS" listadas abaixo.

Nota

Para todas as variantes do "CCARGS", você deveria garantir que "-DNO_NIS" esteja especificado, de forma que a construção não tente acessar um cabeçalho "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.8.1/html \
  readme_directory=/usr/share/doc/postfix-3.8.1/readme

Explicações do Comando

make makefiles: Esse comando reconstrói os "makefiles" em toda a árvore fonte para usar as opções contidas nas variáveis "CCARGS" e "AUXLIBS".

sh postfix-install -non-interactive: Isso evita que o conjunto de comandos sequenciais de instalação faça perguntas, aceitando assim os diretórios de destino padrão em todos os casos, exceto em uns poucos. Se as opções "html_directory" e "readme_directory" não estiverem configuradas, [então] a documentação não será instalada.

CCARGS="-DNO_EAI ...": isso desligará o suporte a "SMTPUTF8", por exemplo, se o restante da 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-20230816":

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.8.1 e /var/{lib,spool}/postfix

Descrições Curtas

mailq

Um link simbólico para "sendmail"

newaliases

Um link simbólico para "sendmail"

postalias

é um utilitário para manutenção de base de dados de apelidos do "Postfix"

postcat

Imprime o conteúdo dos arquivos originários da fila do "Postfix" em formato legível por humanos(as)

postconf

Exibe ou muda o valor dos parâmetros de configuração do "Postfix"

postdrop

Cria um arquivo no diretório "maildrop" e copia a entrada gerada padrão dele para o arquivo

postfix

é o aplicativo de controle do "Postfix"

postkick

Envia solicitações para o serviço especificado por intermédio de um canal local de transporte

postlock

Tranca uma pasta de mensagens para uso exclusivo e executa comandos passados para ela

postlog

Uma interface de registro compatível com o "Postfix" para uso, por exemplo, em conjuntos de comandos sequenciais de "shell"

postmap

Cria ou consulta uma ou mais tabelas de pesquisa do "Postfix" ou atualiza uma existente

postmulti

é o gerenciador de múltiplas instâncias do "Postfix". Ele permite que um(a) administrador(a) de sistema gerencie múltiplas instâncias do "Postfix" em um dispositivo

postqueue

A interface de usuário(a) do "Postfix" para gerenciamento de filas

postsuper

A interface de usuário(a) do "Postfix" para gerenciamento de filas de superusuário(a)

sendmail

é a interface de compatibilidade do "Postfix" com o "Sendmail"

sendmail-8.17.2

Introdução ao sendmail

O pacote "sendmail" contém um "Mail Transport Agent" ("MTA").

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "sendmail"

Exigidas

OpenLDAP-2.6.6 (cliente)

Recomendadas
Opcionais

ghostscript-10.01.2 (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 Editor(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.2/{cf,sendmail} &&

install -v -m644 CACerts FAQ KNOWNBUGS LICENSE PGPKEYS README RELEASE_NOTES \
        /usr/share/doc/sendmail-8.17.2 &&

install -v -m644 sendmail/{README,SECURITY,TRACEFLAGS,TUNING} \
        /usr/share/doc/sendmail-8.17.2/sendmail &&

install -v -m644 cf/README /usr/share/doc/sendmail-8.17.2/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.2 &&
install -v -m644 op.ps op.txt op.pdf /usr/share/doc/sendmail-8.17.2 &&
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-20230816":

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.2 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 corretamente usando uma plataforma LFS 12.0.

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")

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 Java atualmente está quebrado com Java-9.x e posterior.

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

Introdução ao lmdb

O pacote "lmdb" é um armazenamento de dados incorporado de valor-chave, rápido e compacto. Ele usa arquivos mapeados em memória, de forma que tem o desempenho de leitura de uma pura base de dados em memória, ao mesmo tempo que oferece a persistência de bases de dados padrão baseadas em disco e é limitado somente ao tamanho do espaço virtual de endereço

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP): https://github.com/LMDB/lmdb/archive/LMDB_0.9.31.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 9d7f059b1624d0a4d4b2f1781d08d600

  • Tamanho da transferência: 144 KB

  • Espaço em disco estimado exigido: 4,7 MB

  • Tempo de construção estimado: menos que 0,1 UPC

Instalação do lmdb

Nota

Esse pacote extrai para "lmdb-LMDB_0.9.31".

Instale o "lmdb" executando os seguintes comandos:

cd libraries/liblmdb &&
make                &&
sed -i 's| liblmdb.a||' Makefile

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

make prefix=/usr install

Explicações do Comando

sed ... liblmdb.a ... Makefile: Os executáveis do pacote usam uma biblioteca estática, de forma que ela precisa ser criada. Esse comando suprime a instalação da biblioteca estática.

Conteúdo

Aplicativo Instalado: mdb_copy, mdb_dump, mdb_load e mdb_stat
Biblioteca Instalada: liblmdb.so
Diretórios Instalados: Nenhum(a)

MariaDB-10.11.4

Introdução ao MariaDB

"MariaDB" é uma bifurcação desenvolvida pela comunidade e um substituto imediato para o sistema de gerenciamento de bases de dados relacionais "MySQL".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

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

Recomendadas
Opcionais

Boost-1.83.0, libaio-0.3.113, libxml2-2.10.4, Linux-PAM-1.5.3, LZO-2.10, MIT Kerberos V5-1.21.2, pcre2-10.42, Ruby-3.2.2, sphinx-7.1.2, unixODBC-2.3.12, Valgrind-3.21.0, Groonga, KyTea, Judy, lz4, MeCab, MessagePack, mruby, MyRocks, Snappy e ZeroMQ

Instalação do MariaDB

Atenção

"MariaDB" e "MySQL" não podem ser instalados no mesmo sistema sem grandes mudanças na configuração de construção de um dos dois aplicativos.

Por motivos de segurança, executar o servidor como um(a) usuário(a) e grupo sem privilégios é altamente encorajado. Emita o seguinte (como "root") para criar o(a) usuário(a) e o grupo:

groupadd -g 40 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.11.4       \
      -DINSTALL_DOCREADMEDIR=share/doc/mariadb-10.11.4 \
      -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

Se você tiver Linux-PAM-1.5.3 instalado, mova o módulo PAM e o arquivo de configuração instalado por esse pacote como o(a) usuário(a) root:

mv -v /usr/share/pam_use_map.so /lib/security &&
mv -v /usr/share/user_map.conf /etc/security

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-20230816" 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.11.4

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

Introdução ao PostgreSQL

"PostgreSQL" é um avançado sistema de gerenciamento de bases de dados objeto relacional ("SAGBDOR"), derivado do sistema de gerenciamento de bases de dados "Berkeley Postgres".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP): https://ftp.postgresql.org/pub/source/v15.4/postgresql-15.4.tar.bz2

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: f2f861fb99d742cb9c2f8aa46a8a947d

  • Tamanho da transferência: 22 MB

  • Espaço em disco estimado exigido: 229 MB (adicionar 42 MB para testes)

  • Tempo de construção estimado: 0,6 UPC (com paralelismo=4, adicionar 0,2 UPC para testes)

Dependências do "PostgreSQL"

Opcionais

ICU-73.2, libxml2-2.10.4, libxslt-1.1.38, OpenLDAP-2.6.6, Linux-PAM-1.5.3, MIT Kerberos V5-1.21.2 e Bonjour

Opcionais (Para Regenerar a Documentação)

fop-2.9, docbook-4.5-dtd, docbook-dsssl-1.79, DocBook-utils-0.6.14, OpenJade-1.3.2 e SGMLSpm-1.1

Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/postgresql

Instalação do PostgreSQL

Para maior segurança, é melhor ter um grupo e usuário(a) dedicado para executar o servidor "PostgreSQL". Primeiro, emita como o(a) usuário(a) "root":

groupadd -g 41 postgres &&
useradd -c "Servidor PostgreSQL" -g postgres -d /srv/pgsql/data \
        -u 41 postgres

Nota

Existem vários itens de configuração que adicionam funcionalidade adicional com pacotes opcionais ao "PostgreSQL". Use "./configure --help" para ver uma lista.

Instale o "PostgreSQL" com os seguintes comandos:

sed -i '/DEFAULT_PGSOCKET_DIR/s@/tmp@/run/postgresql@' src/include/pg_config_manual.h &&

./configure --prefix=/usr         \
            --enable-thread-safety \
            --docdir=/usr/share/doc/postgresql-15.4 &&
make

Existem vários aplicativos no diretório "contrib/". Se você for executar essa instalação como um servidor e desejar construir alguns deles, [então] digite "make -C contrib" ou "make -C contrib/<NOME-SUB-DIRETÓRIO>" para cada subdiretório.

Os testes precisam ser executados como um(a) usuário(a) sem privilégios porque precisam iniciar um servidor temporário e isso é evitado como o(a) usuário(a) "root". Pela mesma razão, você precisa parar todos os servidores "PostgreSQL", se algum estiver em execução. Se uma versão anterior do "PostgreSQL" estiver instalada, [então] possivelmente seja necessário usar "--disable-rpath" com o "configure" para evitar falhas, mas instalar os binários criados usando essa chave não é recomendado. Para testar os resultados, emita: "make check".

Nota

Se você estiver instalando o "PostgreSQL" para atualizar uma instalação existente, [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.4/html/index.html.

Unidade do systemd

Instale a unidade "postgresql.service" inclusa no pacote "" "blfs-systemd-units-20230816":

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.4,postgresql} e /srv/pgsql

Descrições Curtas

clusterdb

é um utilitário para reagrupar tabelas em uma base de dados "PostgreSQL"

createdb

cria uma nova base de dados "PostgreSQL"

createuser

define uma nova conta de usuário(a) "PostgreSQL"

dropdb

remove uma base de dados "PostgreSQL"

dropuser

remove uma conta de usuário(a) "PostgreSQL"

ecpg

é o pré processador incorporado "SQL"

initdb

cria um novo agrupamento de bases de dados

oid2name

resolve "OIDs" ("Object IDs") e nós de arquivo em um diretório de dados do "PostgreSQL"

pg_amcheck

verifica se existe corrupção em uma ou mais bases de dados "PostgreSQL"

pg_archivecleanup

limpa arquivos de arquivamento "write-ahead log" ("WAL") do "PostgreSQL"

pg_basebackup

faz cópias básicas de segurança de um agrupamento do PostgreSQL em execução

pg_checksums

habilita, desabilita ou verifica somas de verificação de dados em um agrupamento de bases de dados do "PostgreSQL"

pg_config

recupera informações de versão do "PostgreSQL"

pg_controldata

retorna informações inicializadas durante o "initdb", como a versão do catálogo e a localidade do servidor

pg_ctl

controla a parada e inicialização do servidor de base de dados

pg_dump

despeja dados e metadados da base de dados em conjuntos de comandos sequenciais que são usados para recriar a base de dados

pg_dumpall

chama recursivamente "pg_dump" para cada base de dados em um agrupamento

pg_isready

verifica a situação da conexão de um servidor "PostgreSQL"

pg_receivewal

é usado para transmitir "write-ahead logs" a partir de um servidor "PostgreSQL"

pg_recvlogical

controla fluxos de decodificação lógica do "PostgreSQL"

pg_resetwal

reconfigura o "write-ahead log" e outras informações de controle de um agrupamento de bases de dados "PostgreSQL"

pg_restore

cria bases de dados a partir de arquivos de despejo criados pelo "pg_dump"

pg_rewind

sincroniza um diretório de dados do "PostgreSQL" com outro diretório de dados que foi bifurcado a partir do primeiro

pg_standby

suporta a criação de um servidor de espera quente do "PostgreSQL"

pg_test_fsync

determina o método "wal_sync" mais rápido para o "PostgreSQL"

pg_test_timing

mede a sobrecarga de tempo

pg_upgrade

atualiza uma instância do servidor "PostgreSQL"

pg_verifybackup

verifica a integridade de uma cópia básica de segurança de um agrupamento do "PostgreSQL"

pg_waldump

exibe uma renderização legível por humanos(as) do "write-ahead log" de um agrupamento de bases de dados do "PostgreSQL"

pgbench

executa um teste de avaliação comparativa no "PostgreSQL"

pltcl_delmod

é um conjunto de comandos sequenciais de suporte usado para deletar um módulo originário de uma tabela "PL"/"Tcl". O comando exige que o pacote "Pgtcl" esteja instalado

pltcl_listmod

é um conjunto de comandos sequenciais de suporte usado para listar os módulos em uma tabela "PL"/"Tcl". O comando exige que o pacote "Pgtcl" esteja instalado

pltcl_loadmod

é um conjunto de comandos sequenciais de suporte usado para carregar um módulo em uma tabela "PL"/"Tcl". O comando exige que o pacote "Pgtcl" esteja instalado

postgres

é o servidor de base de dados "PostgreSQL"

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

Introdução ao SQLite

O pacote "SQLite" é uma biblioteca de logiciário que implementa um mecanismo de base de dados "SQL" transacional independente, sem servidor e com configuração zero.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP): https://sqlite.org/2023/sqlite-autoconf-3420000.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 0c5a92bc51cf07cae45b4a1e94653dea

  • Tamanho da transferência: 3,1 MB

  • Espaço em disco estimado exigido: 76 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)

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-3420000.zip

Instale o "SQLite" executando os seguintes comandos:

./configure --prefix=/usr     \
            --disable-static  \
            --enable-fts{4,5} \
            CPPFLAGS="-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.42.0 &&
cp -v -R sqlite-doc-3420000/* /usr/share/doc/sqlite-3.42.0

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

--enable-fts{4,5}: Essas chaves habilitam o suporte para as versões 3, 4 e 5 da extensão de pesquisa de texto completo (FTS). Observe que a chave --enable-fts4 habilita suporte para versão 4 do FTS e versão 3 do FTS.

CPPFLAGS="-DSQLITE_ENABLE_COLUMN_METADATA=1 -DSQLITE_ENABLE_UNLOCK_NOTIFY=1 -DSQLITE_ENABLE_DBSTAT_VTAB=1 -DSQLITE_SECURE_DELETE=1 -DSQLITE_ENABLE_FTS3_TOKENIZER=1": Aplicativos como SeaMonkey exigem que essas opções estejam ativadas . A única maneira de fazer isso é a de incluí-las nas CFLAGS ou CPPFLAGS. Nós usamos a último, de forma que o valor padrão (ou qualquer valor configurado pelo(a) usuário(a)) de CFLAGS não seria afetado. Para mais informações a respeito do que pode ser especificado, veja-se https://www.sqlite.org/compile.html.

Conteúdo

Aplicativo Instalado: sqlite3
Biblioteca Instalada: libsqlite3.so
Diretório Instalado: /usr/share/doc/sqlite-3.42.0

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

Introdução ao OpenLDAP

O pacote "OpenLDAP" fornece uma implementação de fonte aberto do "Lightweight Directory Access Protocol".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Transferências Adicionais

Dependências do "OpenLDAP"

Recomendadas
Opcionais

GnuTLS-3.8.1, Pth-2.0.7, unixODBC-2.3.12, MariaDB-10.11.4 ou PostgreSQL-15.4 ou MySQL, OpenSLP, WiredTiger e Base de Dados Berkeley-5.3.28 (para "slapd", porém descontinuado)

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.6-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.6-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 são frágeis e erros podem fazer com que os testes abortem antes de finalizarem. Alguns erros podem ocorrer devido a problemas de temporização. Os testes duram cerca de uma hora e o tempo independe da CPU devido a atrasos nos testes. Na maioria dos sistemas, os testes executarão até o teste test065-proxyauth for mdb. Para testar os resultados, emita: make test.

Agora, como o(a) usuário(a) "root":

make install &&

sed -e "s/\.la/.so/" -i /etc/openldap/slapd.{conf,ldif}{,.default} &&

install -v -dm700 -o ldap -g ldap /var/lib/openldap    &&

install -v -dm700 -o ldap -g ldap /etc/openldap/slapd.d &&
chmod   -v    640     /etc/openldap/slapd.{conf,ldif}   &&
chown   -v  root:ldap /etc/openldap/slapd.{conf,ldif}   &&

install -v -dm755 /usr/share/doc/openldap-2.6.6 &&
cp      -vfr      doc/{drafts,rfc,guide} \
                  /usr/share/doc/openldap-2.6.6

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-20230816" 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.6

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 corretamente usando uma plataforma LFS 12.0.

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.9.1, Python-2.7.18, sphinx-7.1.2 (para a documentação das ligações "Python"), SWIG-4.1.1 (para as ligações "Python"), Doxygen-1.9.7 (para a documentação "HTML") e dnstap

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

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-20230816":

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.18"

libunbound.so

fornece as funções da "API" do "Unbound" para aplicativos

Parte VI. Componentes Gráficos

Capítulo 24. Ambientes Gráficos

Este capítulo contém instruções para construir e configurar um ambiente gráfico de usuário(a).

Por muito tempo o único ambiente gráfico usável com GNU/Linux foi o Sistemas de Janelas X. Ele usa um modelo cliente/servidor que permite escrever aplicações completamente independentes do hardware gráfico. Isso tem a desvantagem de que acessar a aceleração moderna de hardware é dificultoso, de forma que outra abordagem chamada Wayland está desenvolvida. Ele é um substituto mais simples para o X, mais fácil de desenvolver e manter, usando o estrutura OpenGL. Os principais ambientes de área de trabalho, GNOME e KDE, foram portados para ele.

Este capítulo fornece os componentes básicos do "Sistema de Janelas X" e do "Wayland". Para o "X", a implementação escolhida foi o "Xorg", que é uma implementação modular e exige que mais que cem (100) pacotes sejam instalados. Para a distribuição do "Xorg" é dado um número de lançamento pelos(as) desenvolvedores(as), nesse caso "Xorg-7". Os pacotes individuais são atualizados conforme necessário, sem mudar esse número.

Introdução ao Xorg-7

O "Xorg" é uma implementação de fonte aberto e redistribuível livremente do Sistema de Janelas "X". Esse sistema fornece uma interface cliente/servidor entre o hardware de exibição (mouse, teclado e monitores de vídeo) e o ambiente de área de trabalho, ao mesmo tempo que fornece a infraestrutura de janelas e uma interface padronizada de aplicativo ("API").

Observações de Editor(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.4" é 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.14p3". É 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.14p3", [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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "util-macros"

Exigidas

Ambiente de construção do "Xorg" (deveria estar configurado para as seguintes instruções funcionarem)

Instalação do util-macros

Instale o "util-macros" executando os seguintes comandos:

./configure $XORG_CONFIG

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

make install

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Diretório Instalado: $XORG_PREFIX/share/pkgconfig e $XORG_PREFIX/share/util-macros

xorgproto-2023.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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "xorgproto"

Exigidas

util-macros-1.20.0

Opcionais

fop-2.9, libxslt-1.1.38, 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.9". 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.9" ter sido instalado.

Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/Xorg7ProtocolHeaders

Instalação do xorgproto

Instale o "xorgproto" executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=$XORG_PREFIX .. &&
ninja

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

ninja install &&
mv -v $XORG_PREFIX/share/doc/xorgproto{,-2023.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-2023.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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "libXau"

Exigidas

xorgproto-2023.2

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "libXdmcp"

Exigidas

xorgproto-2023.2

Opcionais

xmlto-0.0.28, fop-2.9, libxslt-1.1.38 e Xorg-SGML-doctools (para a documentação)

Instalação do libXdmcp

Instale o "libXdmcp" executando os seguintes comandos:

./configure $XORG_CONFIG --docdir=/usr/share/doc/libXdmcp-1.1.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.16.0

Introdução ao xcb-proto

O pacote "xcb-proto" fornece as descrições do protocolo "XML-XCB" que a "libxcb" usa para gerar a maior parte do código e "API" dela.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "xcb-proto"

Recomendadas
Opcionais

libxml2-2.10.4 (exigido para executar os testes)

Instalação do xcb-proto

Instale o "xcb-proto" executando os seguintes comandos:

PYTHON=python3 ./configure $XORG_CONFIG

Para testar os resultados, emita: "make check".

Agora, como o(a) usuário(a) "root":

make install

Se você estiver atualizando a partir da versão 1.15.1 ou inferior, [então] o arquivo antigo do "pkgconfig" precisará ser removido. Emita, como o(a) usuário(a) "root":

rm -f $XORG_PREFIX/lib/pkgconfig/xcb-proto.pc

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Diretório Instalado: $XORG_PREFIX/share/xcb e $XORG_PREFIX/lib/python3.11/site-packages/xcbgen

libxcb-1.16

Introdução ao libxcb

O pacote "libxcb" fornece uma interface para o protocolo do Sistema de Janelas "X", que substitui a interface "Xlib" atual. "Xlib" também pode usar "XCB" como camada de transporte, permitindo que o logiciário faça solicitações e receba respostas com ambos.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP): https://xorg.freedesktop.org/archive/individual/lib/libxcb-1.16.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: c769f93c254263077df62404661b710d

  • Tamanho da transferência: 444 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.16.0

Recomendadas
Opcionais

Doxygen-1.9.7 (para gerar a documentação da "API") e libxslt-1.1.38

Instalação do libxcb

Instale o "libxcb" executando os seguintes comandos:

./configure $XORG_CONFIG      \
            --without-doxygen \
            --docdir='${datadir}'/doc/libxcb-1.16 &&
make

Para testar os resultados, emita: "make check".

Agora, como o(a) usuário(a) "root":

make install

Se o pacote foi construído como um(a) usuário(a) não-root, a documentação instalada agora é titularizada por esse usuário(a). Como o(a) usuário(a) root, corrija a titularidade da propriedade:

chown -Rv root:root $XORG_PREFIX/share/doc/libxcb-1.16

Explicações do Comando

--without-doxygen: Não use "doxygen" para gerar documentação da "API" (padrão: automático). Sem ele, se o "Doxygen-1.9.7" 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.16

Descrições Curtas

libxcb.so

é uma interface para o protocolo do Sistema de Janelas "X"

Bibliotecas do Xorg

Introdução às Bibliotecas do Xorg

As bibliotecas do "Xorg" fornecem rotinas de biblioteca que são usadas em todos os aplicativos do Janelas "X".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências das Bibliotecas do Xorg

Exigidas

Fontconfig-2.14.2 e libxcb-1.16

Opcionais

asciidoc-10.2.0, xmlto-0.0.28 com um ou mais do seguinte: fop-2.9, Links-2.29, 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

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"
12344cd74a1eb25436ca6e6a2cf93097  xtrans-1.5.0.tar.xz
91752155473ef72a8b34523a65967e4d  libX11-1.8.6.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
4ea21d3b5a36d93a2177d9abed2e54d4  libXt-1.3.0.tar.xz
ed52d396115fbc4d05300762aab79685  libXmu-1.1.4.tar.xz
5073cf59174a2cadde220187759b2e7c  libXpm-3.5.16.tar.xz
3f1e1052dbf3a2b8582ec24137e1fbd1  libXaw-1.0.15.tar.xz
65b9ba1e9ff3d16c4fa72915d4bb585a  libXfixes-6.0.1.tar.xz
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
cea0a3304e47a841c90fbeeeb55329ee  libXft-2.3.8.tar.xz
89ac74ad6829c08d5c8ae8f48d363b06  libXi-1.8.1.tar.xz
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
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-1.21.4 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 vários pacotes em um conjunto de comandos sequenciais, a instalação precisa ser feita como o(a) usuário(a) root. Existem três opções gerais que podem ser usadas para fazer isso:

  1. Executar o conjunto inteiro de comandos sequenciais como o(a) usuário(a) root (não recomendado).

  2. Usar o comando sudo originário do pacote Sudo-1.9.14p3.

  3. Usar su -c "argumentos do comando" (aspas exigidas) que solicitará a senha do(a) root para cada iteração do loop.

Uma maneira de lidar com essa situação é a de se criar uma função curta do bash que selecione automaticamente o método apropriado. Depois que o comando for configurado no ambiente, ele não precisará ser configurado novamente.

as_root()
{
  if   [ $EUID = 0 ];        then $*
  elif [ -x /usr/bin/sudo ]; then sudo $*
  else                            su -c \\"$*\\"
  fi
}

export -f as_root

Algumas bibliotecas vem com uma suíte de teste. Se desejar executá-las, [então] comente o "rm -rf ..." abaixo, para que, depois que todas as bibliotecas estiverem instaladas, você consiga voltar ao diretório correspondente e executar "make check ", ou fazer construções individuais, executando os testes para cada um daqueles distribuídos com suítes funcionais de teste. Alternativamente, você pode descomentar a linha "#make check ..." e, no final, verificar os resultados do teste com:

grep -A9 summary *make_check.log

Os(As) desenvolvedores(as) do BLFS confirmaram que "libX11", "libXt", "libXmu", "libXpm" e "libxshmfence" são distribuídos com suítes funcionais de testes.

Primeiro, inicie um sub shell que sairá em caso de erro:

bash -e

Instale todos os pacotes executando os seguintes comandos:

for package in $(grep -v '^#' ../lib-7.md5 | awk '{print $2}')
do
  packagedir=${package%.tar.?z*}
  tar -xf $package
  pushd $packagedir
  docdir="--docdir=$XORG_PREFIX/share/doc/$packagedir"
  case $packagedir in
    libXfont2-[0-9]* )
      ./configure $XORG_CONFIG $docdir --disable-devel-docs
    ;;

    libXt-[0-9]* )
      ./configure $XORG_CONFIG $docdir \
                  --with-appdefaultdir=/etc/X11/app-defaults
    ;;

    libXpm-[0-9]* )
      ./configure $XORG_CONFIG $docdir --disable-open-zfile
    ;;
    
    * )
      ./configure $XORG_CONFIG $docdir
    ;;
  esac

  make
  #make check 2>&1 | tee ../$packagedir-make_check.log
  as_root make install
  popd
  rm -rf $packagedir
  as_root /sbin/ldconfig
done

Finalmente, saia do shell que foi iniciado anteriormente:

exit

Explicações do Comando

--disable-open-zfile: Permitir que a "libXpm" construa sem o comando opcional "compress" presente.

--disable-devel-docs: Desabilite a geração de documentação de texto no pacote "libXfont2", se o "xmlto-0.0.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.9" para gerar documentação em "PDF" (somente para o pacote "libXfont").

Configuração das Bibliotecas do Xorg

Se tiver escolhido instalar o "Xorg" em "/usr", então nenhuma configuração adicional será necessária e você poderá ignorar o restante desta seção. Se tiver optado por um prefixo alternativo, [então] você deveria criar dois links simbólicos para satisfazer o ambiente esperado de vários pacotes. Execute os seguintes comandos como o(a) usuário(a) "root":

ln -sv $XORG_PREFIX/lib/X11 /usr/lib/X11 &&
ln -sv $XORG_PREFIX/include/X11 /usr/include/X11

Conteúdo

Aplicativos Instalados: cxpm e sxpm
Bibliotecas Instaladas: libfontenc.so, libFS.so, libICE.so, libpciaccess.so, libSM.so, libX11.so, libX11-xcb, libXaw6.so, libXaw7.so, libXaw.so, libXcomposite.so, libXcursor.so, libXdamage.so, libXext.so, libXfixes.so, libXfont2.so, libXft.so, libXinerama.so, libXi.so, libxkbfile.so, libXmu.so, libXmuu.so, libXpm.so, 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.6, $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

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "libxcvt"

Exigidas

Ambiente de construção do "Xorg" (deveria estar configurado para as seguintes instruções funcionarem)

Instalação do libxcvt

Instale o "libxcvt" executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=$XORG_PREFIX --buildtype=release .. &&
ninja

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

Conteúdo

Aplicativo Instalado: cvt
Biblioteca Instalada: libxcvt.so
Diretório Instalado: $XORG_PREFIX/include/libxcvt

Descrições Curtas

cvt

calcula modelos de Temporização de Vídeo Coordenado "VESA" ("CVT") para uso com o "X"

libxcvt.so

contém funções para calcular "VESA" "CVT"

xcb-util-0.4.1

Introdução ao xcb-util

O pacote "xcb-util" fornece extensões adicionais para a biblioteca "XCB", muitas das quais eram encontradas anteriormente no "Xlib", mas não são parte do protocolo principal do "X".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

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

Opcionais

Doxygen-1.9.7 (para documentação)

Instalação do xcb-util

Instale o "xcb-util" executando os seguintes comandos:

./configure $XORG_CONFIG &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

make install

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libxcb-util.so
Diretórios Instalados: Nenhum(a)

Descrições Curtas

libxcb-util.so

Fornece funções utilitárias para outros utilitários do "XCB"

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 corretamente usando uma plataforma LFS 12.0.

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.7 (para documentação)

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "xcb-util-keysyms"

Exigidas

libxcb-1.16

Opcionais

Doxygen-1.9.7 (para gerar documentação)

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "xcb-util-renderutil"

Exigidas

libxcb-1.16

Opcionais

Doxygen-1.9.7 (para documentação)

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 corretamente usando uma plataforma LFS 12.0.

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

Opcionais

Doxygen-1.9.7 (para documentação)

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 corretamente usando uma plataforma LFS 12.0.

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.7 (para documentação)

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

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 23.1.x do "Mesa" mais recente disponível.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

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.2, libunwind-1.6.2, lm-sensors-3-6-0 , Nettle-3.9.1, Valgrind-3.21.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 Vulkan-Loader

Configuração do Núcleo

Habilite as seguintes opções na configuração do núcleo e recompile o núcleo se necessário:

Device Drivers --->
  Graphics support --->
    <*/M>   Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) --->
                                                                      ...  [DRM]
    # For r300 or r600:
    < /*/M> ATI Radeon                                              [DRM_RADEON]
    # For radeonsi:
    < /*/M> AMD GPU                                                 [DRM_AMDGPU]
    [*]       Enable amdgpu support for SI parts                 [DRM_AMDGPU_SI]
    [*]       Enable amdgpu support for CIK parts               [DRM_AMDGPU_CIK]
      Display Engine Configuration --->
      [*]   AMD DC - Enable new display engine                      [DRM_AMD_DC]
    # For nouveau:
    < /*/M> Nouveau (NVIDIA) cards                                 [DRM_NOUVEAU]
    # For i915, crocus, or iris:
    < /*/M> Intel 8xx/9xx/G3x/G4x/HD Graphics                         [DRM_I915]
    # For swrast:
    < /*/M> Virtual GEM provider                                      [DRM_VGEM]
    # For svga:
    < /*/M> DRM driver for VMware Virtual GPU                       [DRM_VMWGFX]

Nota

O correspondente nome do controlador Gallium3D do Mesa é fornecido como comentário para as entradas de configuração. Se você não sabe o nome do controlador Gallium3D do Mesa para tua GPU, veja Mesa Gallium3D Drivers abaixo.

CONFIG_DRM_RADEON, CONFIG_DRM_AMDGPU, CONFIG_DRM_NOUVEAU e CONFIG_DRM_I915 possivelmente exijam firmware. Veja-se Acerca de Firmware para detalhes.

Selecionar CONFIG_DRM_RADEON ou CONFIG_DRM_AMDGPU como y não é recomendado. Se for, qualquer firmware exigido precisa ser construído como parte da imagem do núcleo ou do initramfs para o controlador funcionar corretamente.

As subentradas sob CONFIG_DRM_AMDGPU são usadas para garantir que o controlador de núcleo AMDGPU suporte todas as GPUs usando o controlador radeonsi. Elas não são necessárias se você não precisasse da própria CONFIG_DRM_AMDGPU. Elas possivelmente sejam desnecessárias para alguns modelos de GPU.

Para swrast, CONFIG_DRM_VGEM não é estritamente necessária, mas recomendada como uma otimização.

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-add_xdemos-2.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. Três testes relacionados a mesa:intel são conhecidos por falharem.

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-23.1.6 &&
cp -rfv ../docs/* /usr/share/doc/mesa-23.1.6

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=auto: Esse parâmetro controla quais controladores Gallium3D deveriam ser construídos. auto seleciona todos os controladores Gallium3D disponíveis para x86: r300 (para Radeon 9000 ou série Radeon X da ATI), r600 (para série Radeon HD 2000-6000 da AMD/ATI), radeonsi (para Radeon HD 7000 da AMD ou modelos de GPU mais recentes da AMD), nouveau (para GPUs Suportadas da NVIDIA, elas estão listadas como todos os recursos de 3D tanto DONE quanto N/A na página de situação da Nouveau), virgl (para GPU virtual do QEMU com suporte virglrender; observe que o BLFS qemu-8.1.0 não é construído com o virglrender), svga (para GPU virtual do VMWare), swrast (usando CPU para rasterização de 3D; observe que isso é muito mais lento que usar uma GPU moderna com recursos de 3D, de forma que deveria ser usado somente se a GPU não for suportada por outros controladores), iris (para GPUs Intel fornecidas com Broadwell ou CPUs mais recentes), crocus (para GPUs GMA 3000, série X3000, série 4000 ou série X4000 da Intel fornecidas com chipsets ou GPUs Intel HD fornecidas com CPUs pré-Broadwell), i915 (para GPUs GMA 900, 950, 3100 ou 3150 da Intel fornecidas com chipsets ou CPUs Atom D/N 4xx/5xx). Você pode substituir auto por uma lista separada por vírgulas, para construir somente um subconjunto desses controladores, se souber precisamente quais controladores precisa, por exemplo -Dgallium-drivers=radeonsi,iris,swrast.

-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 as dependências opcionais glslang e Vulkan-Loader. Vulkan é uma API mais recente projetada para utilizar as GPUs com um desempenho melhor que OpenGL, mas nada no BLFS se beneficia disso por enquanto. Portanto, nós passamos uma lista vazia para a finalidade de remover a necessidade dessas dependências.

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

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

Introdução ao xbitmaps

O pacote "xbitmaps" contém imagens de mapa de bit usadas por vários aplicativos construídos no capítulo do "Xorg".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "xbitmaps"

Exigidas

util-macros-1.20.0

Instalação do xbitmaps

Instale o "xbitmaps" executando os seguintes comandos:

./configure $XORG_CONFIG

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

make install

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Diretório Instalado: $XORG_PREFIX/include/X11/bitmaps

Aplicativos do Xorg

Introdução aos Aplicativos do Xorg

Os aplicativos do "Xorg" fornecem os aplicativos esperados disponíveis em implementações anteriores do Janelas "X".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências dos Aplicativos do "Xorg"

Exigidas

libpng-1.6.40, Mesa-23.1.6, xbitmaps-1.1.3 e xcb-util-0.4.1

Opcionais

Linux-PAM-1.5.3 e ambos cairo-5c e Nickle (somente se você desejar tentar executar o não documentado conjunto de comandos sequenciais xkeyhost).

Transferindo os Aplicativos do Xorg

Primeiro, crie uma lista de arquivos a serem 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
1d61c9f4a3d1486eff575bf233e5776c  setxkbmap-1.3.4.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
933e6d65f96c890f8e96a9f21094f0de  xdpyinfo-1.3.4.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
8e4d14823b7cbefe1581c398c6ab0035  xinput-1.6.4.tar.xz
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
c8629d5a0bc878d10ac49e1b290bf453  xrdb-1.2.2.tar.xz
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
b0081fb92ae56510958024242ed1bc23  xwd-1.0.9.tar.xz
c91201bc1eb5e7b38933be8d0f7f16a8  xwininfo-1.1.6.tar.xz
5ff5dc120e8e927dc3c331c7fee33fc3  xwud-1.0.6.tar.xz
EOF

Para baixar os arquivos necessários usando o Wget-1.21.4, 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 vários pacotes em um conjunto de comandos sequenciais, a instalação precisa ser feita como o(a) usuário(a) root. Existem três opções gerais que podem ser usadas para fazer isso:

  1. Executar o conjunto inteiro de comandos sequenciais como o(a) usuário(a) root (não recomendado).

  2. Usar o comando sudo originário do pacote Sudo-1.9.14p3.

  3. Usar su -c "argumentos do comando" (aspas exigidas) que solicitará a senha do(a) root para cada iteração do loop.

Uma maneira de lidar com essa situação é a de se criar uma função curta do bash que selecione automaticamente o método apropriado. Depois que o comando for configurado no ambiente, ele não precisará ser configurado novamente.

as_root()
{
  if   [ $EUID = 0 ];        then $*
  elif [ -x /usr/bin/sudo ]; then sudo $*
  else                            su -c \\"$*\\"
  fi
}

export -f as_root

Primeiro, inicie um sub "shell" que sairá em caso de erro:

bash -e

Instale todos os pacotes executando os seguintes comandos:

for package in $(grep -v '^#' ../app-7.md5 | awk '{print $2}')
do
  packagedir=${package%.tar.?z*}
  tar -xf $package
  pushd $packagedir
     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.7

Introdução ao xcursor-themes

O pacote "xcursor-themes" contém os temas de cursor animados "redglass" e "whiteglass".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "xcursor-themes"

Exigidas

Aplicativos do Xorg

Instalação do xcursor-themes

Nota

Nós instalamos explicitamente os temas de cursor em "/usr" em vez de "$XORG_PREFIX", de forma que ambientes de área de trabalho não "Xorg" consigam encontrá-los.

Instale o "xcursor-themes" executando os seguintes comandos:

./configure --prefix=/usr &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

make install

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/share/icons/handhelds, /usr/share/icons/redglass e /usr/share/icons/whiteglass

Fontes do Xorg

Introdução às Fontes do Xorg

Os pacotes de fontes do "Xorg" fornecem algumas fontes escaláveis e pacotes de suporte para aplicações do "Xorg". Muitas pessoas vão querer instalar outras fontes "TTF" ou "OTF" além ou em vez delas. Algumas estão listadas em "“Fontes TTF e OTF”".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências das fontes do "Xorg"

Exigidas

xcursor-themes-1.0.7

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
357d91d87c5d5a1ac3ea4e6a6daf833d  encodings-1.0.7.tar.xz
79f4c023e27d1db1dfd90d041ce89835  font-alias-1.0.5.tar.xz
546d17feab30d4e3abcf332b454f58ed  font-adobe-utopia-type1-1.0.5.tar.xz
063bfa1456c8a68208bf96a33f472bb1  font-bh-ttf-1.0.4.tar.xz
51a17c981275439b85e15430a3d711ee  font-bh-type1-1.0.4.tar.xz
00f64a84b6c9886040241e081347a853  font-ibm-type1-1.0.4.tar.xz
fe972eaf13176fa9aa7e74a12ecc801a  font-misc-ethiopic-1.0.5.tar.xz
3b47fed2c032af3a32aad9acc1d25150  font-xfree86-type1-1.0.5.tar.xz
EOF

Para baixar os arquivos necessários usando o Wget-1.21.4, 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 vários pacotes em um conjunto de comandos sequenciais, a instalação precisa ser feita como o(a) usuário(a) root. Existem três opções gerais que podem ser usadas para fazer isso:

  1. Executar o conjunto inteiro de comandos sequenciais como o(a) usuário(a) root (não recomendado).

  2. Usar o comando sudo originário do pacote Sudo-1.9.14p3.

  3. Usar su -c "argumentos do comando" (aspas exigidas) que solicitará a senha do(a) root para cada iteração do loop.

Uma maneira de lidar com essa situação é a de se criar uma função curta do bash que selecione automaticamente o método apropriado. Depois que o comando for configurado no ambiente, ele não precisará ser configurado novamente.

as_root()
{
  if   [ $EUID = 0 ];        then $*
  elif [ -x /usr/bin/sudo ]; then sudo $*
  else                            su -c \\"$*\\"
  fi
}

export -f as_root

Primeiro, inicie um sub "shell" que sairá em caso de erro:

bash -e

Instale todos os pacotes executando os seguintes comandos:

for package in $(grep -v '^#' ../font-7.md5 | awk '{print $2}')
do
  packagedir=${package%.tar.?z*}
  tar -xf $package
  pushd $packagedir
    ./configure $XORG_CONFIG
    make
    as_root make install
  popd
  as_root rm -rf $packagedir
done

Finalmente, saia do "shell" que foi iniciado anteriormente:

exit

Quando todas as fontes tiverem sido instaladas, o sistema precisará ser configurado de forma que o "Fontconfig" consiga encontrar as fontes "TrueType". Como as fontes estão fora do caminho padrão de pesquisa de vários pacotes se o "XORG_PREFIX" não for "/usr", [então] crie links simbólicos para os diretórios de fontes "TrueType" do "Xorg" em "/usr/share/fonts" executando os seguintes comandos como o(a) usuário(a) "root":

install -v -d -m755 /usr/share/fonts                              &&
ln -svfn $XORG_PREFIX/share/fonts/X11/OTF /usr/share/fonts/X11-OTF &&
ln -svfn $XORG_PREFIX/share/fonts/X11/TTF /usr/share/fonts/X11-TTF

Conteúdo

Aplicativos Instalados: bdftruncate e ucs2any
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: $XORG_PREFIX/share/fonts

Descrições Curtas

bdftruncate

gera uma fonte "BDF" truncada a partir de uma fonte "BDF" codificada "ISO 10646-1"

ucs2any

gera fontes "BDF" em qualquer codificação a partir de uma fonte "BDF" codificada "ISO 10646-1"

XKeyboardConfig-2.39

Introdução ao XKeyboardConfig

O pacote "XKeyboardConfig" contém a base de dados de configuração do teclado para o Sistema de Janelas "X".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "XKeyboardConfig"

Exigidas

Bibliotecas do Xorg

Instalação do XKeyboardConfig

Instale o "XKeyboardConfig" executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=$XORG_PREFIX --buildtype=release .. &&
ninja

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

Introdução ao Xwayland

O pacote "Xwayland" é um servidor "Xorg" executando sobre o servidor "wayland". Ele foi separado do pacote principal do servidor "Xorg". Permite executar clientes do "X" dentro de uma sessão "wayland".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "Xwayland"

Exigidas

libxcvt-0.1.2, Pixman-0.42.2, wayland-protocols-1.32, Aplicativos do Xorg (tempo de execução) e Fontes do Xorg (somente font-util)

Recomendadas
Opcionais

git-2.41.0 (para transferir os pacotes necessários para os testes), libgcrypt-1.10.2, Nettle-3.9.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)

Instalação do Xwayland

Instale o "xwayland" executando os seguintes comandos:

sed -i '/install_man/,$d' meson.build &&

mkdir build &&
cd    build &&

meson setup --prefix=$XORG_PREFIX         \
            --buildtype=release           \
            -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.8" 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.8". Remova esse comando se o "Xorg-Server-21.1.8" 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.8

Introdução ao Servidor Xorg

O Servidor "Xorg" é o núcleo do Sistema de Janelas "X".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Transferências Adicionais

  • Com a remoção dos controladores xf86-video-*, a opção TearFree não mais está funcional. Para contornar isso, o fluxo de desenvolvimento adicionou a opção TearFree ao controlador padrão de configuração de modo. Este remendo reimplementa esse recurso. Aplique este remendo se você for usar o Xorg em um ambiente sem um compositor (como TWM, IceWM, Openbox, Fluxbox ou Sawfish).

    Remendo opcional: https://www.linuxfromscratch.org/patches/blfs/12.0/xorg-server-21.1.8-tearfree_backport-1.patch

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

Recomendadas
Opcionais

acpid-2.0.34 (tempo de execução), Doxygen-1.9.7 (para construir a documentação da "API"), fop-2.9 (para construir a documentação), libunwind-1.6.2, Nettle-3.9.1, libgcrypt-1.10.2, 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.39 (para testes), rendercheck (para testes) e xorg-sgml-doctools (para construir a documentação)

Configuração do Núcleo

Os controladores tradicionais Device Dependent X (DDX) foram removidos do BLFS em favor do controlador modesetting_drv que será construído como parte desse pacote. Para usar o controlador modesetting_drv, o núcleo precisa fornecer um controlador Direct Rendering Manager (DRM) para a tua GPU.

Se a tua GPU suporta aceleração 3D e Mesa-23.1.6 fornece um controlador Gallium3D para utilizar a capacidade 3D dele, você já deveria ter habilitado as necessárias opções de configuração de núcleo em Configuração de Núcleo do Mesa. Caso contrário, você precisa encontrar a opção de configuração do núcleo do controlador DRM para a GPU e habilitá-la. Notavelmente, as GPUs virtuais fornecidas por alguns gerenciadores de máquinas virtuais:

Device Drivers --->
  Graphics support --->
    <*/M>   Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) --->
                                                                      ...  [DRM]
    < /*/M> DRM driver for VMware Virtual GPU                       [DRM_VMWGFX]
    < /*/M> DRM Support for bochs dispi vga interface (qemu stdvga)  [DRM_BOCHS]
    < /*/M> Virtual Box Graphics Card                            [DRM_VBOXVIDEO]

Se o núcleo não fornecer um controlador DRM para a tua GPU, na maioria dos sistemas x86 o controlador DRM simple frame buffer executando em VESA ou UEFI frame buffer pode ser usado como substituto. Habilite as seguintes opções nas configurações do núcleo, se você não tiver um controlador DRM dedicado para a GPU ou quiser manter o controlador simple frame buffer como um substituto caso o controlador dedicado falhe:

Device Drivers --->
  Firmware Drivers --->
    [*] Mark VGA/VBE/EFI FB as generic system framebuffer       [SYSFB_SIMPLEFB]
  Graphics support --->
    <*> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) --->
                                                                      ...  [DRM]
    <*> Simple framebuffer driver                                [DRM_SIMPLEDRM]

Para permitir que o núcleo imprima mensagens de depuração em um estágio inicial da inicialização, CONFIG_DRM e CONFIG_DRM_SIMPLEDRM não deveriam ser construídos como módulos do núcleo, a menos que um initramfs seja usado.

Se você quiser usar o controlador simple frame buffer em um sistema inicializado via BIOS (em vez de UEFI), adicione a seguinte linha antes do primeiro bloco menuentry no arquivo /boot/grub/grub. cfg para inicializar o VESA frame buffer:

set gfxpayload=1024x768x32

Você pode substituir 1024, 768 e 32 por uma configuração de resolução e profundidade de cor adequada ao teu monitor.

Se todos esses controladores DRM não funcionarem para você e você precisar usar um controlador DDX com um controlador de GPU de núcleo não DRM (geralmente chamado de CONFIG_FB_* na configuração do núcleo, ou existente como módulos do núcleo fora da árvore) ou você precisar de uma funcionalidade específica do dispositivo que exige um controlador DDX, consulte uma versão anterior do BLFS ou uma versão ainda mais anterior para mais controladores DDX.

Instalação do Servidor Xorg

Primeiro, se você precisar da opção TearFree para contornar o rasgo de tela, aplique o remendo reimplementado:

patch -Np1 -i ../xorg-server-21.1.8-tearfree_backport-1.patch

Instale o servidor executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup ..              \
      --prefix=$XORG_PREFIX \
      --localstatedir=/var  \
      -Dglamor=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

-Dglamor=true: Certifique-se de construir o módulo Glamour. Ele é necessário para construir o controlador modesetting_drv que substitui os tradicionais controladores Device Dependent X (DDX).

-Dsuid_wrapper=true: Constrói o involucrador suid-root para suporte de controlador legado DDX 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
Diretórios Instalados: /etc/X11/xorg.conf.d, $XORG_PREFIX/include/xorg, $XORG_PREFIX/lib/xorg e $XORG_PREFIX/share/X11/xorg.conf.d

Descrições Curtas

gtf

calcula linhas do modo "GTF" do "VESA"

X

é um link simbólico para o "Xorg"

Xephyr

é um servidor aninhado "X" que suporta extensões modernas "X"

Xnest

é um servidor aninhado "X"

Xorg

é o Servidor "X11R7" "X"

Xvfb

é o servidor virtual de "framebuffer" "X" para o X Versão 11

modesetting_drv.so

fornece um controlador de vídeo para máquinas que usam "Kernel Mode Setting" ("KMS"). Isso usará o "glamour" se esse tiver sido habilitado e o "hardware" oferecer aceleração

Controladores de Entrada do Xorg

Introdução aos Controladores de Entrada do Xorg

A página Xorg Input Drivers contém as instruções para construir controladores de entrada do Xorg que são necessários para a finalidade de que o Servidor Xorg responda às entradas geradas de usuário(a).

libevdev 1.13.1

Introdução ao libevdev

O pacote libevdev contém funções comuns para controladores de entrada do Xorg.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote
Dependências do libevdev
Opcionais

Doxygen-1.9.7 e Valgrind-3.21.0 (opcional para testes)

Configuração do Núcleo

Habilite as seguintes opções na configuração do núcleo e recompile o núcleo, se necessário:

Device Drivers --->
  Input device support --->
    -*-   Generic input layer (needed for keyboard, mouse, ...)          [INPUT]
    <*/M>   Event interface                                        [INPUT_EVDEV]

Se você quiser testar esse pacote com cobertura total, as seguintes opções serão necessárias também:

Device Drivers --->
  Input device support --->
    -*- Generic input layer (needed for keyboard, mouse, ...)            [INPUT]
    [*]   Miscellaneous devices --->                                [INPUT_MISC]
      <*/M>   User level driver support                           [INPUT_UINPUT]

Se você construir isso como um módulo, ele precisará ser inserido antes que a suíte de teste execute.

Instalação do libevdev

Instale o libevdev executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup ..                 \
      --prefix=$XORG_PREFIX    \
      --buildtype=release      \
      -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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote
Dependências do Controlador "Evdev" do "Xorg"
Exigidas

libevdev-1.13.1, mtdev-1.1.6 e Xorg-Server-21.1.8

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

Introdução ao Libinput

libinput é uma biblioteca que manuseia dispositivos de entrada para servidores de exibição e outras aplicações que precisam lidar diretamente com dispositivos de entrada.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote
  • Transferência (HTTP): https://gitlab.freedesktop.org/libinput/libinput/-/archive/1.23.0/libinput-1.23.0.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 1faafdbe54745b5b59305b0764155a15

  • Tamanho da transferência: 980 KB

  • Espaço em disco estimado exigido: 13 MB (adicionar 23 MB para documentação e 9,6 MB para testes)

  • Tempo de construção estimado: menos que 0,1 UPC (adicionar 0,1 UPC para documentação e 4,7 UPC para testes)

Dependências do libinput
Exigidas

libevdev-1.13.1 e mtdev-1.1.6

Opcionais

Valgrind-3.21.0 (para executar os testes), GTK+-3.24.38 (para construir o visualizador de eventos da GUI), libunwind-1.6.2 (exigido para testes), libwacom-2.7.0, sphinx-7.1.2 (exigido para construir documentação) e pyparsing-3.1.1 (para um teste não root)

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.1, a extenso suíte de teste exige a presença de /dev/uinput (assim como ambos Valgrind-3.21.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 --->
    -*- Generic input layer (needed for keyboard, mouse, ...)            [INPUT]
    [*]   Miscellaneous devices --->                                [INPUT_MISC]
      <*/M>   User level driver support                           [INPUT_UINPUT]

Se você construir isso como um módulo, ele precisará ser inserido antes 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.23.0/html &&
cp -rv Documentation/* /usr/share/doc/libinput-1.23.0/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.38 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.1.1 não estiver instalado.

-Dlibwacom=false: Remova essa opção se você tiver libwacom-2.7.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.7 e Graphviz-8.1.0 instalados.

Conteúdo

Aplicativos Instalados: libinput
Bibliotecas Instaladas: libinput.so
Diretórios Instalados: /etc/libinput, $XORG_PREFIX/libexec/libinput, $XORG_PREFIX/share/libinput e (opcionalmente) $XORG_PREFIX/share/doc/libinput-1.23.0

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

Introdução ao Controlador Libinput do Xorg

O Controlador Libinput do X.Org é um involucrador fino em torno da libinput e permite que a libinput seja usada para dispositivos de entrada no X. Esse controlador pode ser usado como substituto imediato para o evdev e o synaptics.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote
Dependências do Controlador "Libinput" do "Xorg"
Exigidas

libinput-1.23.0 e Xorg-Server-21.1.8

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote
Dependências do Controlador "Synaptics" do "Xorg"
Exigidas

libevdev-1.13.1 e Xorg-Server-21.1.8

Instalação do Controlador Synaptics do Xorg

Instale o Controlador "Synaptics" do "Xorg" executando os seguintes comandos:

./configure $XORG_CONFIG &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

make install

Conteúdo

Aplicativos Instalados: synclient e syndaemon
Controlador Instalado do "Xorg": synaptics_drv.so
Descrições Curtas

synclient

é um utilitário de linha de comando usado para consultar e modificar as opções do controlador "Synaptics"

syndaemon

é um aplicativo que monitora a atividade do teclado e desabilita o "touchpad" quando o teclado está sendo usado

synaptics_drv.so

é um controlador de entrada do "Xorg" para "touchpads"

Controlador Wacom do Xorg-1.2.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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote
Dependências do Controlador "Wacom" do "Xorg"
Exigidas

Xorg-Server-21.1.8

Opcionais

Doxygen-1.9.7 e Graphviz-8.1.0

Configuração do Núcleo

Para usar um "tablet" "Wacom" com interface "USB", habilite as seguintes opções na tua configuração do núcleo e recompile. Observe que outras opções de configuração podem ser exigidas para "tablets" com uma interface serial ou "bluetooth":

Device Drivers --->
  [*] HID bus support --->                                         [HID_SUPPORT]
    {*/M} HID bus core support                                             [HID]
      Special HID drivers --->
      <*/M>   Wacom Intuos/Graphire tablet support (USB)             [HID_WACOM]
    USB HID support --->
      <*/M> USB HID transport layer                                    [USB_HID]
  [*] USB support --->                                             [USB_SUPPORT]
    <*/M> Support for Host-side USB                                        [USB]

Instalação do Controlador Wacom do Xorg

Instale o Controlador "Wacom" do "Xorg" executando os seguintes comandos:

./configure $XORG_CONFIG &&
make

Para testar os resultados, emita: "make check".

Agora, como o(a) usuário(a) "root":

make install

Conteúdo

Aplicativos Instalados: isdv4-serial-debugger, isdv4-serial-inputattach e xsetwacom
Controlador Instalado do Xorg: wacom_drv.so
Descrições Curtas

xsetwacom

é um utilitário de linha de comando usado para consultar e modificar as configurações do controlador "wacom"

wacom_drv.so

é um controlador de entrada do "Xorg" para dispositivos "Wacom"

twm-1.0.12

Introdução ao "twm"

O pacote "twm" contém um gerenciador de janelas extremamente mínimo.

Esse pacote é fornecido para testar a instalação completa do Xorg.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "twm"

Exigidas

Xorg-Server-21.1.8

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

Introdução ao xterm

"xterm" é um emulador de terminal para o Sistema de Janelas "X".

Esse pacote é fornecido para testar a instalação completa do Xorg.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP): https://invisible-mirror.net/archives/xterm/xterm-384.tgz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 27a701e73076e42a265e34f8fe558ff6

  • Tamanho da transferência: 1,4 MB

  • Espaço em disco estimado exigido: 14 MB

  • Tempo de construção estimado: 0,1 UPC (com paralelismo=4)

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-29.1, PCRE-8.45 ou pcre2-10.42, Valgrind-3.21.0 e man2html

Instalação do xterm

Instale o "xterm" executando os seguintes comandos:

sed -i '/v0/{n;s/new:/new:kb=^?:/}' termcap &&
printf '\tkbs=\\177,\n' >> terminfo &&

TERMINFO=/usr/share/terminfo \
./configure $XORG_CONFIG      \
    --with-app-defaults=/etc/X11/app-defaults &&

make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

make install     &&
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 testar a instalação completa do Xorg.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "xclock"

Exigidas

Bibliotecas do Xorg

Instalação do xclock

Instale o "xclock" executando os seguintes comandos:

./configure $XORG_CONFIG &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

make install

Conteúdo

Aplicativos Instalados: xclock
Bibliotecas Instaladas: Nenhum(a)
Diretório Instalado: Nenhum(a)

Descrições Curtas

xclock

é um relógio analógico/digital para o "X"

xinit-1.4.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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "xinit"

Exigidas

Bibliotecas do Xorg

Recomendadas (tempo de execução somente)

Instalação do xinit

Instale o "xinit" executando os seguintes comandos:

./configure $XORG_CONFIG --with-xinitdir=/etc/X11/app-defaults &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

make install &&
ldconfig

Conteúdo

Aplicativos Instalados: xinit e startx
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: Nenhum(a)

Descrições Curtas

startx

inicializa uma sessão do "X"

xinit

é o inicializador do Sistema de Janelas "X"

Testagem e Configuração do Xorg-7

Testando o Xorg

Nota

Antes de iniciar o Xorg pela primeira vez, é útil reconstruir o cache da biblioteca executando-se o ldconfig como o(a) usuário(a) root.

Nota

Antes de iniciar o Xorg pela primeira vez, muitas vezes é necessário reinicializar o sistema para garantir que todos os processos de segundo plano apropriados sejam iniciados e que os problemas de segurança apropriados estejam configurados adequadamente. Como alternativa, sair e logar-se novamente possivelmente funcione, mas ao tempo deste texto, não foi testado.

Atenção

Se o "Xorg" travar por algum motivo (por exemplo, ausência de um controlador de entrada adequado), [então] o sistema poderá parar de responder a qualquer entrada gerada de usuário(a). Como precaução, você pode habilitar uma tecla mágica "SysRq" antes de testar o "Xorg". Como o(a) usuário(a) "root", emita:

echo 4 > /proc/sys/kernel/sysrq

Então, se o "Xorg" travar, é possível usar "Alt+SysRq+R" para reconfigurar o modo do teclado. Agora ele deveria ser capaz de usar "Ctrl+Alt+Fx" (substitua o "x" por um número de "VT") para comutar para outro "VT". Se funcionar, [então] logue-se e mate o "Xorg" usando a linha de comando no novo "VT".

Para testar a instalação do "Xorg", emita "startx". Esse comando traz um gerenciador de janelas rudimentar chamado "twm" com três janelas do "xterm" e uma janela do "xclock". A janela do "xterm" no canto superior esquerdo é um terminal de "login" e executar-se "exit" a partir desse terminal sairá da sessão do "Janelas X". A terceira janela do "xterm" possivelmente esteja obscurecida em teu sistema pelos outros dois "xterms".

Nota

Ao testar o "Xorg" com o gerenciador de janelas "twm", existirão vários avisos no arquivo de registro do "Xorg", "$HOME/.local/share/xorg/Xorg.0.log", a respeito de arquivos de fontes ausentes. Além disso, existirão vários avisos no terminal de modo texto (geralmente "tty1") a respeito de fontes ausentes. Esses avisos não afetam a funcionalidade, mas podem ser removidos, se desejado, instalando-se o "Fontes Legadas do Xorg".

Nota

Em sistemas com GPUs NVIDIA que estão usado o controlador de núcleo Nouveau, você pode encontrar congelamentos e travamentos ocasionais da GPU. Se esse problema ocorrer, rebaixe para a versão mais recente do núcleo Linux 6.1.

Geralmente, não existe configuração específica exigida para o "Xorg", mas a personalização é possível. Para detalhes, veja-se "“Configurando Dispositivos do Xorg”" abaixo.

Verificando a Instalação da Direct Rendering Infrastructure (DRI)

"DRI" é uma estrutura que permite que logiciário acesse "hardware" gráfico de maneira segura e eficiente. Ela é instalada no "X" por padrão (usando "Mesa") se você tiver uma placa de vídeo suportada.

Para verificar se os controladores da "DRI" estão instalados adequadamente, verifique o arquivo de registro "$HOME/.local/share/xorg/Xorg.0.log" (ou "/var/log/Xorg.0.log" se você tiver construído o "Xorg-Server-21.1.8" com o "bit" "suid") para declarações como:

(II) modeset(0): [DRI2] Setup complete
(II) modeset(0): [DRI2]   DRI driver: crocus
(II) modeset(0): [DRI2]   VDPAU driver: va_gl

Nota

A configuração da DRI possivelmente difira se você estiver usando controladores alternativos, como tradicionais controladores DDX ou os controladores proprietários oriundos da NVIDIA ou da AMD.

Outra maneira de determinar se a "DRI" está funcionando adequadamente é a de usar um dos dois aplicativos de demonstração "OpenGL" instalados opcionalmente no "Mesa-23.1.6". A partir de um terminal do "X", execute "glxinfo" e procure pela frase:

name of display: :0
display: :0  screen: 0
direct rendering: Yes

Se a Renderização Direta estiver habilitada, [então] você poderá adicionar detalhamento executando "LIBGL_DEBUG=verbose glxinfo". Isso mostrará os controladores, nós de dispositivos e arquivos usados pelo sistema da "DRI".

Para confirmar se a aceleração de "hardware" "DRI2" está funcionando, você pode (ainda no terminal do "X") executar o comando glxinfo | grep -E "(OpenGL vendor|OpenGL renderer|OpenGL version)". Se isso informar algo diferente de "Software Rasterizer", então você tem aceleração funcional para o(a) usuário(a) que executou o comando.

Se o teu "hardware" não tiver nenhum controlador "DRI2" disponível, [então] ele usará um "Software Rasterizer" para Renderização Direta. Nesses casos, você pode usar um novo "Software Rasterizador", acelerado por "LLVM", chamado "LLVMPipe". Para a finalidade de construir o "LLVMPipe", apenas certifique-se de que o "LLVM-16.0.5" esteja presente ao tempo da construção do "Mesa". Observe que toda a decodificação é feita na "CPU" e não na "GPU", de forma que a exibição ficará mais lenta que com aceleração de "hardware". Para verificar se você está usando o "LLVMpipe", revise a saída gerada do comando "glxinfo" acima. Um exemplo de saída gerada usando o "Software Rasterizer" é mostrado abaixo:

OpenGL vendor string: VMware, Inc.
OpenGL renderer string: Gallium 0.4 on llvmpipe (LLVM 3.5, 256 bits)
OpenGL version string: 3.0 Mesa 10.4.5

Você também consegue forçar o "LLVMPipe" exportando a variável de ambiente "LIBGL_ALWAYS_SOFTWARE=1" ao iniciar o "Xorg".

Novamente, se você tiver construído os demonstrativos "OpenGL" do "Mesa", [então] também poderá executar o aplicativo de teste "glxgears". Esse aplicativo abre uma janela com três engrenagens girando. O terminal do "X" exibirá quantos quadros foram desenhados a cada cinco segundos, de forma que isso dará uma avaliação comparativa aproximada. A janela é escalonável e os quadros desenhados por segundo são altamente dependentes do tamanho da janela. Em alguns "hardwares", o "glxgears" executará sincronizado com o sinal de atualização vertical e a taxa de quadros será aproximadamente a mesma que a taxa de atualização do monitor.

Depurando o Xorg

Ao iniciar o "Xorg", existem algumas maneiras de verificar quaisquer problemas que você possa ter. Se o sistema funcionar, [então] você poderá ver qual controlador está sendo usado executando o "xdriinfo". Se existirem problemas ou você quiser apenas verificar, {então} consulte Xorg.0.log.

O local do Xorg.0.log depende de como o Xorg está instalado. Se as instruções no livro forem seguidas à risca e o Xorg for iniciado a partir da linha de comando, ele estará localizado no diretório $HOME/.local/share/xorg/. Se o Xorg for iniciado por um gerenciador de telas (por exemplo, lightdm-1.32.0, sddm-0.20.0 ou GDM-44.1) ou se $XORG_PREFIX/bin/Xorg tiver o bit suid configurado, ele estará localizado no diretório /var/log/.

Problemas do Xorg.0.log

Ao olhar para o "Xorg.0.log", verifique entradas como ("EE") ou ("WW"). Abaixo estão algumas entradas comuns:

(WW) Open ACPI failed (/var/run/acpid.socket)

Esse aviso ocorre porque o "acpid-2.0.34" não está instalado. Se você não estiver em um "laptop", [então] ele pode ser seguramente ignorado. Em um "laptop", instale o "acpid-2.0.34" para habilitar ações como reconhecer quando a tampa está fechada.

(WW) VGA arbiter: cannot open kernel arbiter, no multi-card support

Esse aviso é exibido quando um(a) usuário(a) normal inicia o Xorg. A biblioteca libpciaccess.so emite esse aviso quando ela tenta abrir o /dev/vga_arbiter. Se existir não mais que uma placa gráfica PCI legada (não PCIe) no sistema, ele pode ser seguramente ignorado. Se realmente necessário, as permissões desse dispositivo podem ser mudadas adicionando-se uma regra do Udev e adicionando-se o(a) usuário(a) local ao grupo de vídeo. Como o(a) usuário(a) root:

cat > /etc/udev/rules.d/99-vga-arbiter.rules << EOF
# /etc/udev/rules.d/99-vga-arbiter.rules: Configura grupo/modo do "vga_arbiter"

ACTION=="add", KERNEL=="vga_arbiter", GROUP="video" MODE="0660"
EOF

usermod -a -G video <usuário(a) executando o Xorg>

Gráficos Híbridos

Os Gráficos Híbridos ainda estão em estado experimental para o Linux. Os(As) desenvolvedores(as) do "Xorg" desenvolveram uma tecnologia chamada "PRIME" que pode ser usada para comutar entre "GPU" discreta integrada e sem "mux" à vontade. A comutação automática não é possível no momento.

Para a finalidade de usar a "PRIME" para comutação de "GPU", certifique-se de que está usando o Núcleo Linux 3.4 ou posterior (recomendado). Você precisará dos controladores "DRI" e "DDX" mais recentes para o teu "hardware" e do Servidor "Xorg" 1.13 ou posterior.

O Servidor "Xorg" deveria carregar ambos os controladores de "GPU" automaticamente. Você pode verificar isso executando:

xrandr --listproviders

Deveria existir dois (ou mais) provedores listados, por exemplo:

Providers: number : 2
Provider 0: id: 0x7d cap: 0xb, Source Output, Sink Output, Sink Offload crtcs: 3 outputs: 4 associated providers: 1 name:modesetting
Provider 1: id: 0x56 cap: 0xf, Source Output, Sink Output, Source Offload, Sink Offload crtcs: 6 outputs: 1 associated providers: 1 name:modesetting

Para a finalidade de poder executar um aplicativo GLX em uma GPU discreta, você precisará executar o seguinte comando, onde <provider> é o ID da placa discreta mais poderosa e <sink> é o ID da placa que tiver uma tela conectada:

xrandr --setprovideroffloadsink <provider> <sink>

Nota

Com o controlador de configuração de modo do Xorg, que é compatível com DRI3, o comando acima não mais é necessário. No entanto, ele não danifica.

Então, você precisará exportar a variável de ambiente "DRI_PRIME=1" toda vez que quiser que a poderosa "GPU" seja usada. Por exemplo,

DRI_PRIME=1 glxinfo | grep -E "(OpenGL vendor|OpenGL renderer|OpenGL version)"

mostrará o fornecedor, o renderizador e a versão do "OpenGL" para a "GPU" discreta.

Se o último comando informar o mesmo renderizador "OpenGL" com e sem "DRI_PRIME=1", [então] você precisará verificar a tua instalação.

Configurando Dispositivos do Xorg

Para a maioria das configurações de "hardware", o "Xorg" moderno corrigirá automaticamente a configuração do servidor sem qualquer intervenção do(a) usuário(a). Existem, no entanto, alguns casos em que a configuração automática estará incorreta. A seguir estão alguns de itens de configuração manual de exemplo que possivelmente sejam de uso nesses casos.

Configurando Dispositivos de Entrada do X

Para a maioria dos dispositivos de entrada, nenhuma configuração adicional será necessária. Esta seção é fornecida somente para fins informativos.

Uma amostra de configuração padrão do "XKB" poderia ser semelhante ao seguinte (executado como o(a) usuário(a) "root"):

cat > /etc/X11/xorg.conf.d/xkb-defaults.conf << "EOF"
Section "InputClass"
     Identifier "XKB Defaults"
     MatchIsKeyboard "yes"
     Option "XkbLayout" "fr"
     Option "XkbOptions" "terminate:ctrl_alt_bksp"
EndSection
EOF

A linha XkbLayout é um exemplo para um teclado francês ("AZERTY"). Mude-a para o modelo do teu teclado. Essa linha não é necessária para um teclado "QWERTY" ("EUA").

Configurações de Ajuste Fino de Exibição

Se você deseja configurar a resolução do monitor para o Xorg, primeiro execute xrandr em um terminal do X para listar as resoluções suportadas e as correspondentes taxas de atualização. Por exemplo, ele gera o seguinte para um monitor:

Screen 0: minimum 16 x 16, current 5760 x 2160, maximum 32767 x 32767
DP-1 connected primary 3840x2160+0+0 (normal left inverted right x axis y axis) 600mm x 340mm
   3840x2160     59.98*+
   2048x1536     59.95
   1920x1440     59.90
   1600x1200     59.87
   1440x1080     59.99
   1400x1050     59.98
   1280x1024     59.89
   1280x960      59.94
   1152x864      59.96
   1024x768      59.92
   800x600       59.86
   640x480       59.38

A partir da saída gerada podemos ver que o monitor está identificado como DP-1. Selecione uma resolução adequada a partir da lista da saída gerada, por exemplo 1920x1440. Então, como o(a) usuário(a) root, crie um arquivo de configuração para o servidor Xorg:

cat > /etc/X11/xorg.conf.d/monitor-DP-1.conf << "EOF"
Section "Monitor"
    Identifier  "DP-1"
    Option      "PerferredMode" "1920x1440"
EndSection
EOF

Às vezes, o xrandr pode falhar para detectar algumas configurações de resolução suportadas pelo monitor. Isso geralmente acontece com monitores virtuais de gerenciadores de máquinas virtuais, como qemu-8.1.0 ou VMWare: um monitor virtual na verdade suporta todos os pares de números inteiros em um intervalo conforme a resolução, mas xrandr só listará alguns. Para usar uma resolução não listada por xrandr, primeiro execute cvt para obter a linha de modo para a resolução. Por exemplo:

cvt 1600 900
# 1600x900 59.95 Hz (CVT 1.44M9) hsync: 55.99 kHz; pclk: 118.25 MHz
Modeline "1600x900_60.00"  118.25  1600 1696 1856 2112  900 903 908 934 -hsync +vsync

Como o(a) usuário(a) root, crie um arquivo de configuração do servidor Xorg contendo essa linha de modo e especifique o modo como modo preferido:

cat > /etc/X11/xorg.conf.d/monitor-DP-1.conf << "EOF"
Section "Monitor"
    Identifier  "DP-1"
    Modeline    "1600x900_60.00"  118.25  1600 1696 1856 2112  900 903 908 934 -hsync +vsync
    Option      "PerferredMode"   "1600x900_60.00"
EndSection
EOF

Alguns monitores LCD de última geração suportam uma taxa de atualização superior a 100 Hz, mas xrandr pode falhar para reconhecer a taxa de atualização suportada e usar 60 Hz. Esse problema impediria você de utilizar a capacidade completa do monitor e poderia fazer com que a tela piscasse ou mostrasse artefatos como malhas ou grades. Para resolver o problema, use novamente cvt para obter a linha de modo com uma taxa de atualização personalizada:

cvt 3840 2160 144
# 3840x2160 143.94 Hz (CVT) hsync: 338.25 kHz; pclk: 1829.25 MHz
Modeline "3840x2160_144.00"  1829.25  3840 4200 4624 5408  2160 2163 2168 2350 -hsync +vsync

Em seguida, cole-a no arquivo de configuração do servidor Xorg e configure-a como modo preferido.

Outra configuração comum é ter vários esquemas de servidor para uso em ambientes diferentes. Apesar de que o servidor automaticamente detectará a presença de outro monitor, ele possivelmente obtenha a ordem incorreta:

cat > /etc/X11/xorg.conf.d/server-layout.conf << "EOF"
Section "ServerLayout"
     Identifier     "DefaultLayout"
     Screen      0  "Screen0" 0 0
     Screen      1  "Screen1" LeftOf "Screen0"
     Option         "Xinerama"
EndSection
EOF

Quando você arrasta uma janela no TWM (ou em qualquer gerenciador de janelas não de composição) horizontalmente, você poderá observar que as bordas verticais da janela são quebradas em vários segmentos. Esse é um exemplo dos artefatos visuais chamados rasgamento de tela. Para resolver os problemas de rasgamento de tela, crie um arquivo de configuração que habilite a opção TearFree. Observe que você precisa ter o remendo Tearfree aplicado a partir de Xorg-Server-21.1.8 para isso funcionar corretamente e isso pode aumentar a alocação de memória e reduzir o desempenho.

cat > /etc/X11/xorg.conf.d/20-tearfree.conf << "EOF"
Section "Device"
   Identifier "Graphics Adapter"
   Driver     "modesetting"
   Option     "TearFree" "true"
EndSection
EOF

Com o moderno Xorg, pouca ou nenhuma configuração adicional de placa gráfica é necessária. Se você devesse precisar de opções extras passadas para o teu controlador de vídeo, adicione-as na seção Device também. As opções suportadas pelo controlador de configuração de modo estão documentadas na página de manual modesetting(4).

Ajustando Fontconfig

Visão Geral do Fontconfig

Se você 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.

O Protocolo de Fonte Xft

O protocolo de fonte Xft fornece renderização de fonte suavizada por intermédio do freetype, e as fontes são controladas a partir do lado cliente usando o fontconfig (exceto para o rxvt-unicode-9.31, que consegue usar fontes listadas em ~/.Xresources e o AbiWord-3.0.5 que usa somente a fonte especificada). O caminho de pesquisa padrão é /usr/share/fonts e ~/.local/share/fonts, embora, no momento, o antigo e obsoleto local ~/.fonts ainda funcione. O Fontconfig pesquisa diretórios no caminho dele recursivamente e mantém um cache das características da fonte em cada diretório. Se o cache parecer desatualizado, ele será ignorado e as informações serão obtidas a partir das próprias fontes (isso pode levar alguns segundos se você tiver muitas fontes instaladas).

Se você tiver instalado o Xorg em qualquer prefixo diferente de /usr, 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' : informa 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 pense que a fonte suporte o teu idioma).

fc-match -a 'Tipo' | less : fornece 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.14" e o "ImageMagick-7.1.1-15" - 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 (tais como suavização)

  • 20-29 opções de renderização de fontes

  • 30-39 substituição de família

  • 40-49 mapeiam família para tipo genérico

  • 50-59 carregar arquivos alternativos de configuração

  • 60-69 apelidos genéricos, mapeia genérico para família

  • 70-79 ajustar quais fontes estão disponíveis

  • 80-89 correspondência de varredura de alvo (modificar padrões escaneados)

  • 90-99 síntese de fontes

Você também pode ter um fonts.conf pessoal em $XDG_CONFIG_HOME (que é ~/.config/fontconfig/).

As regras para escolher uma fonte

Se a fonte solicitada estiver instalada e desde que contenha os pontos de código exigidos para o idioma atual (no fonte, veja-se os arquivos ".orth" no diretório "fc-lang/"), [então] ela será usada.

Entretanto, se o documento ou página solicitou uma fonte que não está instalada (ou, ocasionalmente, não contém todos os pontos de código exigidos), as seguintes regras entram em jogo: Primeiro, 30-metric-aliases.conf é usado para mapear apelidos para algumas fontes com as mesmas métricas (mesmo tamanho, etc.). Depois disso, uma fonte desconhecida será procurada em 45-latin.conf - se for encontrada, será mapeada como Serif ou Monospace ou Sans; caso contrário, 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, iguais.

Desde fontconfig-2.12.5, também existe correspondência genérica de família para algumas fontes de emoji e matemáticas; por favor, veja-se {45,60}-generic.conf.

Nos raros casos em que uma fonte não contém todos os pontos de código esperados, veja-se "Trial the First:" em "Eu olhei fixamente para o "fontconfig"" para os detalhes longos.

Dicas e Suavização

É possível mudar como, ou se, as fontes são sugeridas. O arquivo de exemplo a seguir contém as configurações padrão, mas com comentários. As configurações dependem muito das preferências do(a) usuário(a) e da escolha das fontes, de forma que uma mudança que melhora algumas páginas possivelmente piore outras. O local preferido para esse arquivo é: "~/.config/fontconfig/fonts.conf"

Para testar configurações diferentes, você possivelmente precise sair do Xorg e então executar startx novamente, de forma que todos os aplicativos usem as novas configurações. E, se você usa GNOME, KDE, ou LXQt, 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 de bitmap, você consegue evitar que elas sejam usadas pelo fontconfig criando o seguinte arquivo como o(a) usuário(a) root:

cat > /etc/fonts/conf.d/70-no-bitmaps.conf << "EOF"
<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
<!-- Rejeita fontes de "bitmap" -->
 <selectfont>
  <rejectfont>
   <pattern>
     <patelt name="scalable"><bool>false</bool></patelt>
   </pattern>
  </rejectfont>
 </selectfont>
</fontconfig>
EOF

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-20230313" coloca muitas fontes em "/opt/texlive/2023/texmf-dist/fonts/" nos subdiretórios "opentype/" e "truetype/". Embora extrair todos esses arquivos possivelmente pareça útil (permite usá-los em aplicativos que não sejam do "TeX"), existem vários problemas com essa abordagem:

  1. Existem centenas de arquivos, o que torna difícil selecionar fontes.

  2. Alguns dos arquivos fazem coisas estranhas, como exibir sinalizadores de semáforo em vez de letras "ASCII" ou mapear pontos de código cirílicos para formas de caracteres apropriadas ao antigo eslavo eclesiástico em vez das formas atuais esperadas: ótimo se for isso que você precisa, mas doloroso para uso normal.

  3. Várias fontes tem vários tamanhos e nomes curtos impenetráveis, o que torna ainda mais difícil selecionar a fonte correta.

  4. Quando uma fonte é adicionada ao "CTAN", ela é acompanhada por pacotes do "TeX" para usá-la nos motores antigos ("xelatex" normalmente não precisa disso), e então a versão frequentemente é congelada enquanto a fonte é mantida separadamente. Algumas dessas fontes, como as "Fontes Dejavu", provavelmente já estão instaladas em teu sistema BLFS em uma versão mais recente, e se você tiver múltiplas versões de uma fonte, [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/2023/texmf-dist/fonts/opentype/arkandis/berenisadf</dir>
  <dir>/opt/texlive/2023/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, 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 antigos arquivos de configuração podem ser corrigidos se você desejar usá-los. O seguinte exemplo é a primeira parte do 64-arphic-uming.conf, originário de UMing - existem muitos outros itens semelhantes que também precisam de mudanças:


   <match target="pattern">
       <test qual="any" name="lang" compare="contains">
           <string>zh-cn</string>
           <string>zh-sg</string>
       </test>
       <test qual="any" name="family">
           <string>serif</string>
       </test>
       <edit name="family" mode="prepend" binding="strong">
           <string>AR PL UMing CN</string>
       </edit>
    </match>

O processo para corrigir isso é simples, mas tedioso - para cada item que produzir uma mensagem de erro, usando o teu editor (como o(a) usuário(a) root) edite o arquivo instalado para repetir o bloco inteiro, tantas vezes quantas forem as múltiplas variáveis, então reduza cada exemplo para ter somente uma delas. Você possivelmente deseje trabalhar em um erro de cada vez, salvar o arquivo depois de cada correção e, a partir de um terminal separado, executar um comando como fc-list 2>&1 | less para ver se a correção funcionou. Para o bloco acima, a versão corrigida será:


   <match target="pattern">
       <test qual="any" name="lang" compare="contains">
           <string>zh-cn</string>
       </test>
       <test qual="any" name="family">
           <string>serif</string>
       </test>
       <edit name="family" mode="prepend" binding="strong">
           <string>AR PL UMing CN</string>
       </edit>
    </match>
   <match target="pattern">
       <test qual="any" name="lang" compare="contains">
           <string>zh-sg</string>
       </test>
       <test qual="any" name="family">
           <string>serif</string>
       </test>
       <edit name="family" mode="prepend" binding="strong">
           <string>AR PL UMing CN</string>
       </edit>
    </match>

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 usar as versões com dicas, se elas estiverem 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, o que economiza espaço em disco. Essas deverias ser tratadas exatamente da mesma maneira que os arquivos individuais TTF ou OTF.

Se uma fonte fornecer ambos os formatos TTF e OTF, você deveria preferir o formato OTF no Linux, pois ele possivelmente forneça mais recursos para aplicativos que saibam como usá-las (como o xelatex).

Uma fonte possivelmente tenha múltiplas variações. Por exemplo, Noto Sans tem nove gramaturas (ExtraLight, Light, Thin, Normal, Medium, SemiBold, Bold, ExtraBold e Black) e dois estilos (Regular e Italic), portanto dezoito (18) variações no total. Normalmente, cada variação é fornecida como um arquivo TTF ou OTF separado. Para cobertura completa, você precisa instalar todos esses arquivos TTF ou OTF. Mesmo se você estiver com pouco espaço em disco, você ainda deveria instalar duas gramaturas (Regular e Bold) por dois estilos (Normal e Italic) se a fonte tiver essas variações. Algumas fontes não tem estilo itálico (por exemplo, a maioria das fontes CJK e algumas fontes mono espaçadas), e algumas fontes tem somente uma variação (por exemplo, Noto Sans Math, ela fornece somente o glifo de alguns símbolos matemáticos).

Algumas fontes também estão disponíveis como arquivos de fontes variáveis. Ao contrário de um arquivo de fonte normal que contém somente uma variação, um arquivo de fonte variável contém variações infinitas. Cada variação pode ser definida pelo aplicativo usando essa fonte atribuindo número(s) a uma ou mais variáveis. Existem também instâncias nomeadas predefinidas análogas às variações tradicionais. Por exemplo, com a versão variável do Noto Sans, a variável de peso pode receber qualquer número não inferior a cem (100) e não superior a novecentos (900), e nove (9) instâncias nomeadas são predefinidas: ExtraLight para peso = 100, Regular para peso = 400, Negrito para peso = 700, etc. Assim, uma vez que um arquivo de fonte variável para Noto Sans seja instalado, todas as nove (9) instâncias nomeadas (ou variações) estarão disponíveis. Observe que a inclinação não é definida como uma variável na versão variável do Noto Sans, de forma que Regular e Itálico ainda são variações tradicionais e um arquivo de fonte variável separado é necessário para a variação em Itálico.

Um arquivo de fonte variável é obviamente mais flexível que os arquivos de fonte normais (estáticos). É extremamente útil para ajuste fino da fonte para páginas da Web ou publicações. E o tamanho de um arquivo de fonte variável geralmente é significativamente menor que o tamanho total de vários arquivos de fonte estática para múltiplas variações. Por exemplo, o arquivo de fonte variável para Noto Sans SC tem somente 11M, enquanto o tamanho total de nove arquivos de fonte estática para Noto Sans SC é 91M. Mas você precisa ter certeza de que teus aplicativos realmente suportam fontes variáveis antes de instalar uma. Por exemplo, o lualatex suporta fontes variáveis, mas o xelatex não. Portanto, se você quiser usar uma fonte para um artigo e usar o xelatex para composição tipográfica, você não deve instalar os arquivos de fontes variáveis.

Para informações acerca de fontes variáveis, por favor, veja-se Fontes Variáveis.

Para alguns conjuntos de comandos sequenciais, o Pango é exigido para renderizar as coisas corretamente, seja selecionando diferentes formas de glifos ou combinando glifos - em ambos os casos, de acordo com o contexto. Isso se aplica particularmente aos conjuntos de comandos sequenciais Arábico e Índico.

Fontes escaláveis padrão que vem com o X fornecem uma cobertura Unicode muito fraca. Você possivelmente note em aplicações que usam o Xft que alguns caracteres aparecem como uma caixa com quatro dígitos binários dentro. Nesse caso, uma fonte com os glifos exigidos não foi encontrada. Outras vezes, os aplicativos que não usam outras famílias de fontes por padrão e não aceitam substituições originárias do Fontconfig exibirão linhas em branco quando a fonte padrão não cobrir a ortografia do idioma do(a) usuário(a).

As fontes disponíveis para um aplicativo são aquelas que estavam presentes quando ele foi iniciado, de forma que, se adicionar uma fonte extra e desejar usá-la em um aplicativo que esteja em execução, [então] você terá que fechar e reiniciar esse aplicativo.

Algumas pessoas ficam felizes em ter dezenas, ou mesmo centenas, de arquivos de fontes disponíveis, mas se você quiser selecionar uma fonte específica em um aplicativo de área de trabalho (por exemplo, em um processador de texto), [então] navegar por várias fontes para encontrar a certa é lento e desajeitado - menos é melhor. Portanto, para alguns pacotes de fontes você pode decidir instalar somente uma das fontes - mas mesmo assim instalar as diferentes variantes (itálico, negrito, etc.), pois todas são variações para o mesmo nome de fonte.

No passado, todos(as) recomendavam executar fc-cache como o(a) usuário(a) root depois de instalar ou remover fontes, mas isso não mais é necessário no Linux; o fontconfig fará isso automaticamente se necessário, bem como se os caches de fonte forem mais antigos que trinta (30) segundos. Entretanto, se você adicionar uma fonte e quiser usá-la imediatamente, poderá executar esse comando como um(a) usuário(a) normal.

Existem várias referências abaixo aos caracteres CJK. Isso significa Chinês, Japonês e Coreano, embora o Coreano moderno agora seja quase todo escrito usando os glifos fonéticos Hangul (às vezes costumava-se usar glifos Hanja que são semelhantes ao Chinês e ao Japonês). O Unicode decidiu optar pela Unificação Han e mapear alguns glifos Chineses e Japoneses para os mesmos pontos de código. Isso era muito impopular no Japão e o resultado é que fontes diferentes renderizariam alguns pontos de código em formatos bastante diferentes. Além disso, o Chinês Simplificado às vezes usará o mesmo ponto de código que o Chinês Tradicional, mas o mostrará diferentemente, um tanto análogo às diferentes formas usadas para as letras 'a' e 'g' em Inglês (um andar e dois andares), exceto que, em um contexto de idioma, alguém parecerá "errado" em vez de apenas "diferente".

Ao contrário da maioria dos outros pacotes neste livro, os(as) editores(as) do BLFS não monitoram as versões das fontes nesta página - uma vez que uma fonte é boa o suficiente para uso geral, as adições típicas em uma nova versão são menores (por exemplo, novos símbolos de moeda ou glifos não para um idioma moderno, como emojis ou cartas de baralho). Portanto, nenhuma dessas fontes mostra informações de versão ou de MD5.

A lista abaixo não fornecerá cobertura completa Unicode. O Unicode é atualizado a cada ano e a maioria das adições agora é para sistemas históricos de escrita. Para uma cobertura quase completa, você pode instalar 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 diretórios __MACOSX/). Além disso, muitas fontes são fornecidas com permissões que não permitem que 'outros(as)' usuários(as) as leiam - se uma fonte é para ser instalada para uso abrangente a todo o sistema, quaisquer diretórios precisam estar no modo 755 e todos os arquivos no modo 644, de forma que você precisa mudá-los se as permissões forem diferentes. Se você se esquecer, o(a) usuário(a) root possivelmente esteja apto(a) a ver uma fonte específica em fc-list, mas um(a) usuário(a) normal não estará apto(a) a usá-las.

Como um exemplo de instalação de fontes, considere a instalação das Fontes Dejavu. Nesse pacote específico, os arquivos TTF estão em um subdiretório. A partir do diretório desempacotado do fonte, execute os seguintes comandos como o(a) usuário(a) root:

install -v -d -m755 /usr/share/fonts/dejavu &&
install -v -m644 ttf/*.ttf /usr/share/fonts/dejavu &&
fc-cache -v /usr/share/fonts/dejavu

Se desejar, você também pode instalar quaisquer licenças ou outra documentação, seja junto com a fonte ou em um diretório correspondente sob /usr/share/doc/.

Umas poucas fontes vem com o fonte, bem como com o(s) arquivo(s) completo(s) TTF ou OTF. A menos que você pretenda modificar a fonte e tenha as ferramentas corretas (às vezes FontForge-20230101, mas frequentemente ferramentas comerciais), o fonte não fornecerá nenhum benefício, de forma que não o instale. Uma ou duas fontes até mesmo vem com arquivos Web Open Font Format (WOFF) - isso é útil se você executar um servidor web e desejar usar essa fonte em teu sítio da web, mas não é útil para um sistema de área de trabalho.

Para fornecer maior cobertura Unicode, você deveria instalar algumas das seguintes fontes, dependendo de quais sítios da web e idiomas você desejar ler. A próxima parte desta página detalha algumas fontes que cobrem pelo menos os alfabetos Latinos; a parte final lida com alguns problemas do CJK.

Nota

A instalação das Fontes Dejavu é fortemente recomendada.

Caladea

Caladea (criada como uma fonte extra do Chrome OS) é metricamente compatível com a MS Cambria e pode ser usada se você tiver de editar um documento que alguém iniciou no Microsoft Office usando Cambria.

Fontes Cantarell

Fontes Cantarell – A família de fontes Cantarell fornece uma contemporânea Humanist Sans Serif. Ela é particularmente otimizada para legibilidade em tamanhos pequenos e é a família de fontes preferida para a interface de usuário(a) do GNOME.

Carlito

Carlito (criada como outra fonte extra do Chrome OS) é metricamente compatível com MS Calibri e pode ser usada se você tiver de editar um documento que alguém iniciou no Microsoft Office usando Calibri.

Fontes DejaVu

Fontes DejaVu – Essas fontes são uma extensão das, e substituição para as, fontes Bitstream Vera e fornecem conjuntos de comandos sequenciais baseados em Latim com acentos e pontuação, como "aspas inteligentes" e caracteres de espaçamento variantes, bem como Cirílico, Grego, Árabe, Hebraico, Armênio, Georgiano e alguns outros glifos. Na ausência das fontes Bitstream Vera (que tinham muito menos cobertura), essas 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 a MS Georgia for solicitada, mas não estiver 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 e Times Roman, embora para essas ele 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 da Microsoft datam de 2002. Elas foram fornecidas com versões antigas do Microsoft Windows e aparentemente foram disponibilizadas para uso geral. Você pode extraí-las a partir dos arquivos '.exe' usando o bsd-tar originário do libarchive-3.7.1. Certifique-se de ler a licença antes de usá-las. Ao mesmo tempo, algumas dessas fontes (particularmente Arial, Times New Roman e, em menor grau, Courier New) foram amplamente usadas em páginas da web. O conjunto completo contém Andale Mono, Arial, Arial Black, Comic Sans MS, Courier New, Georgia, Impact, Times New Roman, Trebuchet MS, Verdana e Webdings.

Por favor, observe que se somente quiser usar uma fonte com as mesmas métricas (tamanho dos caracteres, etc.) que a Arial, Courier New ou Times New Roman, você pode usar as fontes livres Liberation (acima) e, da mesma forma, consegue substituir a Georgia pela Gelasio.

Embora muitas postagens antigas recomendem instalar essas fontes para uma saída gerada que pareça 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 livremente. Entretanto, se você não as tiver instaladas, poderá encontrar equivalentes métricas (Carlito e Caladea) acima.

Fontes Noto

As fontes Noto ('No Tofu', ou seja, evitando caixas com pontos [dígitos hexadecimais] quando um glifo não puder ser encontrado) são um conjunto de fontes que visa a cobrir cada glifo em Unicode, não importa quão obscuro. Noto Sans é a fonte preferida para o KDE Plasma e aplicativos, exceto para fontes mono espaçadas, onde Hack é preferida.

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 da organização das fontes Noto, veja-se como as fontes Noto estão organizadas. Existem também fontes separadas para todos os outros sistemas de escrita atuais, mas essas também exigirão a Noto Sans (ou Noto Serif) e, talvez, a Noto Symbols.

Possivelmente seja mais fácil baixar uma fonte específica Noto acessando-se Noto Sans e mudando o nome da fonte conforme apropriado, com '+' entre cada palavra, por exemplo, 'Noto+Kufi+Arabic', 'Noto+Serif+Georgian' ou qualquer outra, depois clicando em 'Download family'.

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 cada como fontes separadas (e para o Árabe não existe um nome específico 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.

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-44.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 desejará somente a fonte Regular.

Existe também uma versão mais antiga TTF disso disponível a partir de fontes do Google, mas essa tem uma cobertura muito limitada (adequada para a maioria dos idiomas Europeus que usam um alfabeto Latino).

Fontes CJK:

Conforme indicado anteriormente, o uso de uma combinação de caracteres Chineses, Japoneses e Coreanos pode ser complicado - cada fonte cobre somente um subconjunto dos pontos de código disponíveis; as formas preferidas dos glifos podem diferir entre os idiomas e muitas das fontes CJK atualmente não suportam o Coreano moderno.

Além disso, o fontconfig prefere o Chinês ao Japonês por padrão. Ajustar isso está abordado em 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 (China continental, Malásia e Singapura) ou Tradicional (Hong Kong e Taiwan)) ou Japonês.

Para Hong Kong, que usa Chinês Tradicional e onde o Cantonês é o idioma dominante, o Conjunto de Caracteres Suplementares de Hong Kong foi adicionado ao Unicode em 2005 e revisado em 2009 (ele é parte da Extensão B do CJK e contém mais que mil e novecentos (1.900) caracteres). As fontes anteriores não serão capazes de suportar o Cantonês ou o uso desses caracteres onde os nomes locais forem escritos em Mandarim. As fontes UMing HK, Noto Sans HK e WenQuanYi Zen Hei parecem cobrir o uso em Hong Kong (o fontconfig discorda a respeito da Noto Sans HK).

Os glifos Han tem largura dupla e outros glifos na mesma fonte possivelmente sejam mais estreitos. Para o conteúdo CJK deles, todas essas fontes podem ser consideradas como mono espaçadas (ou seja, largura fixa).

Se você deseja usar fontes Noto, também existem versões Serif das diversas fontes CJK delas. As fontes Noto Sans/Serif SC/TC/HK/JP/KR são derivadas de um repositório monolítico noto-cjk e você pode encontrar lá os arquivos .ttc para a família inteira de fontes Noto Sans CJK (incluindo SC/TC/HK/JP/KR) ou Noto Serif CJK. O Google recomenda, em vez disso, que os(as) usuários(as) normais usem fontes separadas Noto Sans/Serif SC/TC/HK/JP/KR, mas se você for capaz e estiver disposto a ler textos em mais de um sistema de caracteres CJK, possivelmente seja mais fácil usar um arquivo monolítico .ttc para cobertura completa.

Se tudo o que você deseja fazer é renderizar glifos CJK, instalar WenQuanYi ZenHei possivelmente seja um bom lugar para começar, se você ainda não tiver uma preferência.

Fontes chinesas:

Em Chinês, existem três estilos de fonte de uso comum: Sung (também conhecido como Song ou Ming), que é a forma ornamentada ("Serif") mais comum; Kai ("pinceladas"), que é um estilo ornamentado anterior que parece bem diferente; e Hei moderno ("Sans"). A menos que você aprecie as diferenças, provavelmente não desejará instalar as fontes Kai.

As versões atuais das fontes chinesas Noto Sans podem ser encontradas em Noto Sans SC para chinês simplificado, Noto Sans TC para chinês tradicional e, conforme mencionado acima, Noto Sans HK para uso em Hong Kong.

Fontes Opendesktop

Uma cópia da versão 1.4.2 do opendesktop-fonts está preservada no Arch. Esse foi um desenvolvimento posterior do fireflysung que o BLFS costumava recomendar, adicionando fontes Kai e Mono. O nome da fonte Sung permanece AR PL New Sung, de forma que ambas não podem ser instaladas juntas.

Ao mesmo tempo, existiu um lançamento 1.6 e, mais recentemente, algumas versões no GitHub, que também incluíam uma fonte Sans (Odohei), mas elas saíram da web e não está claro se existiu um problema. O fontconfig não sabe nada a respeito das fontes posteriores (AR PL New Kai, AR PL New Sung Mono) e irá tratá-las como Sans por padrão.

UMing

Fontes UMing – conjuntos de fontes chinesas Ming (originários do Debian, use o tarball '.orig') em um ttc que contém variações de Chinês Simplificado e Tradicional (Taiwanês, com segunda variante para diferentes bopomofo e Cantonês para Hong Kong). Isso vem com arquivos de sintaxe antiga que você pode instalar em /etc/fonts/conf.d/, mas veja-se Editando Arquivos de Configuração no Estilo Antigo.

WenQuanYi Zen Hei

WenQuanYi Zen Hei fornece uma fonte Sans-Serif que cobre todos os conjuntos de comandos sequenciais CJK, incluindo o Coreano. Embora inclua arquivos de configuração de estilo antigo, eles não são exigidos: o fontconfig já tratará essas fontes (a 'sharp' contém bitmaps, a monospace parece não ser Mono na parte ASCII dela) como Sans, Serif e 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, a fonte principal proveniente desse pacote é uma boa fonte para usar.

Fontes japonesas:

Em Japonês, as fontes Góticas são Sans, e Mincho são Serif. O BLFS costumava mencionar somente as fontes Kochi, mas agora essas parecem ser as menos preferidas das fontes Japonesas.

Além das fontes detalhadas abaixo, considere também Noto Sans JP.

Fontes IPAex

As fontes IPAex são a versão atual das fontes IPA. Use o Tradutor do Google na página inicial e, então, clique no link de transferência para a Fonte IPAex Ver.004.01. Infelizmente, o fontconfig conhece somente acerca das fontes IPAfonts mais antigas e a fonte bifurcada IPA Mona (que não está facilmente disponível e que aparentemente não atende às diretrizes de Software Livre do Debian). Se instalar as fontes IPAex, você possivelmente queira torná-las conhecidas para o fontconfig. Por favor, veja-se Prefira fontes escolhidas "CJK" para uma maneira de fazer isso.

Fontes Kochi

As fontes Kochi Substitute foram as primeiras fontes japonesas verdadeiramente livres (as fontes Kochi anteriores foram supostamente plagiadas de uma fonte comercial).

VL Gothic

A fonte VL Gothic é uma fonte japonesa moderna em duas variantes com espaçamento monotônico ou proporcional para caracteres não japoneses.

Fontes coreanas:

Em Coreano, Batang ou Myeongjo (o nome mais antigo) são Serif, Dotum ou Gothic e são as principais fontes Sans. O BLFS recomendava anteriormente as fontes Baekmuk, mas as fontes Nanum e Un agora são preferidas à Baekmuk pelo fontconfig devido a solicitações de usuários(as).

Um lugar conveniente para ver exemplos dessas e de muitas outras fontes Coreanas é Fontes Coreanas Livres. Clique em 'Gothic Fonts' ou 'All Categories -> Myeongjo Fonts', a seguir clique no exemplo de fonte para ver mais detalhes, incluindo a Licença, e clique no link para baixá-la. Para a Nanum, você precisará estar apto(a) a ler Coreano para encontrar o link de transferência na página que acessar. Para a Un, existem links diretos e você pode encontrar o tarball un-fonts-core no diretório releases/.

Alternativamente, considere Noto Sans KR ou WenQuanYi ZenHei.

Legado do Xorg

Introdução ao Legado do Xorg

O ancestral do "Xorg" ("X11R1", em 1987) inicialmente fornecia somente fontes "bitmap", com uma ferramenta ("bdftopcf") para auxiliar na instalação delas. Com a introdução do "xorg-server-1.19.0" e "libXfont2", muitas pessoas não precisarão delas. Ainda existem uns poucos pacotes antigos que podem exigir ou se beneficiar dessas fontes obsoletas e, portanto, os pacotes a seguir são mostrados aqui.

Nota

O pacote "font-adobe-100dpi" instala versões de cem (100) pontos por polegada das fontes "Courier", "Helvetica", "New Century Schoolbook" e "Times".

Os pacotes de fontes restantes aqui fornecem versões de 75 dpi dessas fontes e várias fontes diversas - principalmente para codificações legadas. Elas servem principalmente para silenciar avisos ao se testar o "Xorg". Nas versões anteriores do BLFS, muito mais fontes legadas eram instaladas.

Por favor, consulte o livro 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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do Legado do Xorg

Exigidas

Fontes do Xorg

Baixando o Legado do Xorg

Primeiro, crie uma lista de arquivos a serem baixados. Esse arquivo também será usado para verificar a integridade das transferências quando completadas:

cat > legacy.dat << "EOF"
e09b61567ab4a4d534119bba24eddfb1 util/ bdftopcf-1.1.1.tar.xz
20239f6f99ac586f10360b0759f73361 font/ font-adobe-100dpi-1.0.4.tar.xz
2dc044f693ee8e0836f718c2699628b9 font/ font-adobe-75dpi-1.0.4.tar.xz
2c939d5bd4609d8e284be9bef4b8b330 font/ font-jis-misc-1.0.4.tar.xz
6300bc99a1e45fbbe6075b3de728c27f font/ font-daewoo-misc-1.0.4.tar.xz
fe2c44307639062d07c6e9f75f4d6a13 font/ font-isas-misc-1.0.4.tar.xz
145128c4b5f7820c974c8c5b9f6ffe94 font/ font-misc-misc-1.1.3.tar.xz
EOF

Para baixar os arquivos necessários usando o Wget-1.21.4, 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 vários pacotes em um conjunto de comandos sequenciais, a instalação precisa ser feita como o(a) usuário(a) root. Existem três opções gerais que podem ser usadas para fazer isso:

  1. Executar o conjunto inteiro de comandos sequenciais como o(a) usuário(a) root (não recomendado).

  2. Usar o comando sudo originário do pacote Sudo-1.9.14p3.

  3. Usar su -c "argumentos do comando" (aspas exigidas) que solicitará a senha do(a) root para cada iteração do loop.

Uma maneira de lidar com essa situação é a de se criar uma função curta do bash que selecione automaticamente o método apropriado. Depois que o comando for configurado no ambiente, ele não precisará ser configurado novamente.

as_root()
{
  if   [ $EUID = 0 ];        then $*
  elif [ -x /usr/bin/sudo ]; then sudo $*
  else                            su -c \\"$*\\"
  fi
}

export -f as_root

Primeiro, inicie um sub "shell" que sairá em caso de erro:

bash -e

Instale todos os pacotes executando os seguintes comandos:

for package in $(grep -v '^#' ../legacy.md5 | awk '{print $2}')
do
  packagedir=${package%.tar.?z*}
  tar -xf $package
  pushd $packagedir
    ./configure $XORG_CONFIG
    make
    as_root make install
  popd
  rm -rf $packagedir
  as_root /sbin/ldconfig
done

Finalmente, saia do "shell" que foi iniciado anteriormente:

exit

Conteúdo

Aplicativos Instalados: bdftopcf
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: $XORG_PREFIX/share/fonts/100dpi, $XORG_PREFIX/share/fonts/75dpi, $XORG_PREFIX/share/fonts/misc

Descrições Curtas

bdftopcf

converte uma fonte do "X" do "Bitmap Distribution Format" para o "Portable Compiled Format"

Capítulo 25. Bibliotecas Gráficas de Ambiente

Este capítulo não contém bibliotecas que sejam necessárias para executar o "X". Ele contém bibliotecas que aprimoram o "X". Em alguns casos, o aprimoramento é tão simples quanto o suporte de fontes. Em outros, é tão complexo quanto bibliotecas que ficam entre o "X" e aplicativos que executam no "X" cujo objetivo é o de padronizar a aparência e as comunicações entre processos para diferentes aplicativos. Elas também auxiliam os(as) programadores(as) fornecendo elementos comuns.

Atkmm-2.28.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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "Atkmm"

Exigidas

at-spi2-core-2.48.3 e GLibmm-2.66.5

Instalação do Atkmm

Instale o "Atkmm" executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

ninja install

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libatkmm-1.6.so
Diretórios Instalados: /usr/{include,lib}/atkmm-1.6 e /usr/share/{devhelp/books/atkmm-1.6,doc/atkmm-2.28.3}

Descrições Curtas

libatkmm-1.6.so

contém as classes da "API" do "ATK"

at-spi2-core-2.48.3

Introdução ao At-Spi2 Core

O pacote "At-Spi2 Core" contém uma estrutura de acessibilidade abrangente para as Tecnologias Assistivas disponíveis na plataforma "GNOME". Isso inclui um conjunto de interfaces que são implementadas por outros kits de ferramentas e aplicativos.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "At-Spi2 Core"

Exigidas

dbus-1.14.8, GLib-2.76.4, gsettings-desktop-schemas-44.0 (tempo de execução) e Bibliotecas do Xorg

Opcionais (Exigidas se construir o "GNOME")

gobject-introspection-1.76.1

Opcionais

Gi-DocGen-2023.1 e sphinx-7.1.2

Instalação do At-Spi2 Core

Instale o "At-Spi2 Core" executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

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: dbus-run-session ninja test. Um teste, atk-test, é conhecido por atingir o tempo limite 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.

-Ddocs=true: Use essa chave se você quiser construir a documentação. Observe que você precisa ter Gi-DocGen-2023.1 e sphinx-7.1.2 instalados em teu sistema.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libatk-1.0.so, libatk-bridge-2.0.so, libatspi.so e /usr/lib/gtk-2.0/modules/libatk-bridge.so
Diretórios Instalados: /usr/include/atk-1.0, /usr/include/at-spi-2.0, /usr/include/at-spi2-atk, /usr/lib/gnome-settings-daemon-3.0, /usr/share/defaults/at-spi2 e /usr/share/gtk-doc/html/libatspi (opcional)

Descrições Curtas

libatk-1.0.so

contém funções que são usadas por tecnologias assistivas para interagir com aplicativos de área de trabalho

libatk-bridge.so

contém a ponte "GTK+-2" do Kit de Ferramentas de Acessibilidade

libatk-bridge-2.0.so

contém o módulo "GTK+" do Kit de Ferramentas de Acessibilidade

libatspi.so

contém as funções da "API" do "At-Spi2"

Cairo-1.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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "Cairo"

Exigidas

libpng-1.6.40 e Pixman-0.42.2

Recomendadas
Opcionais

ghostscript-10.01.2, GTK+-3.24.38 e GTK+-2.24.33, GTK-Doc-1.33.2, libdrm-2.4.115, librsvg-2.56.3, libxml2-2.10.4, LZO-2.10, Mesa-23.1.6, Poppler-23.08.0, Valgrind-3.21.0, jbig2dec, libspectre e Skia

Nota

Existe uma dependência circular entre "Cairo" e "Harfbuzz". Se o "Cairo" for construído antes do "Harfbuzz", [então] é necessário reconstruir o "Cairo" depois do "Harfbuzz" para a finalidade de construir o "Pango".

Instalação do Cairo

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 corretamente usando uma plataforma LFS 12.0.

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

Instalação do libcairomm-1.0

Instale o "Cairomm-1.0" executando os seguintes comandos:

mkdir bld &&
cd    bld &&

meson setup ..            \
      --prefix=/usr       \
      --buildtype=release \
      -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.83.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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "Cogl"

Exigidas

Cairo-1.17.6, gdk-pixbuf-2.42.10, GLU-9.0.3, Mesa-23.1.6, Pango-1.50.14 e Wayland-1.22.0

Recomendadas
Opcionais

gst-plugins-base-1.22.5, GTK-Doc-1.33.2 e SDL2-2.28.2

Instalação do Cogl

Instale o "Cogl" executando os seguintes comandos:

Nota

Esse pacote pode ocasionalmente falhar 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

Todos os testes, exceto os testes ES2 e ES2-NPT, estão quebrados devido a pequenas mudanças de comportamento no Mesa. Para testar os resultados de qualquer maneira, emita: make check. Os testes deveriam ser executados a partir de um terminal do X em um 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 corretamente usando uma plataforma LFS 12.0.

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 da DRI.

Informação do Pacote

Dependências do "Clutter"

Exigidas

at-spi2-core-2.48.3, Cogl-1.22.8 e JSON-GLib-1.6.6

Recomendadas
Opcionais

GTK-Doc-1.33.2 e Tslib

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, emita: make -j1 -k check. Você precisa estar em um xterm ou similar, pois ele abre algumas janelas. Dois testes, actor-destroy 1 /actor/destruction e actor-paint-opacity 1 /actor/opacity/text, são conhecidos por falharem.

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "Clutter Gst"

Exigidas

Clutter-1.26.4, gst-plugins-base-1.22.5 e libgudev-238

Recomendadas
Opcionais

GTK-Doc-1.33.2 e Cgc

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "Clutter Gtk"

Exigidas

Clutter-1.26.4 e GTK+-3.24.38

Recomendadas
Opcionais

GTK-Doc-1.33.2

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "Colord GTK"

Exigidas

colord-1.4.6 e GTK+-3.24.38

Recomendadas
Opcionais

DocBook-utils-0.6.14 e GTK-Doc-1.33.2

Instalação do Colord GTK

Atenção

Se construir a documentação, [então] "ninja -j1" precisa ser usado.

Instale o "Colord GTK" executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr       \
            --buildtype=release \
            -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.11" 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.12.0" 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 corretamente usando uma plataforma LFS 12.0.

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.9, desktop-file-utils-0.26, Doxygen-1.9.7, GLU-9.0.3, Mesa-23.1.6 e texlive-20230313 (ou install-tl-unx)

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "Freeglut"

Exigidas

CMake-3.27.2 e Mesa-23.1.6

Recomendadas

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "Gdk Pixbuf"

Exigidas

GLib-2.76.4, libjpeg-turbo-3.0.0, libpng-1.6.40 e shared-mime-info-2.2

Recomendadas
Opcionais (Exigidas se construir o "GNOME")

gobject-introspection-1.76.1

Opcionais

gdk-pixbuf-xlib-2.40.2 (dependência de tempo de execução, necessária para carregar imagens XPM), Gi-DocGen-2023.1 (para gerar documentação), libavif-0.11.1 (dependência de tempo de execução, necessária para carregar imagens AVIF) e webp-pixbuf-loader-0.2.4 (dependência de tempo de execução, necessária para carregar imagens WebP)

Instalação do Gdk Pixbuf

Instale o "Gdk Pixbuf" executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup ..            \
      --prefix=/usr       \
      --buildtype=release \
      --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.20.1".

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 corretamente usando uma plataforma LFS 12.0.

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

Instalação do gdk-pixbuf-xlib

Instale o "gdk-pixbuf-xlib" executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr .. &&
ninja

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

ninja install

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 corretamente usando uma plataforma LFS 12.0.

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

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

Introdução ao GLU

Esse pacote fornece a biblioteca "OpenGL Utility" do Mesa.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP):

  • Transferência (FTP): ftp://ftp.freedesktop.org/pub/mesa/glu/glu-9.0.3.tar.xz

  • Soma de verificação MD5 da transferência: 06a4fff9179a98ea32ef41b6d83f6b19

  • Tamanho da transferência: 216 KB

  • Espaço em disco estimado exigido: 5,9 MB

  • Tempo de construção estimado: 0,2 UPC

Dependências do "GLU"

Exigidas

Mesa-23.1.6

Instalação do GLU

Instale o "GLU" executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup ..              \
      --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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "GOffice"

Exigidas

GTK+-3.24.38, libgsf-1.14.50, librsvg-2.56.3, libxslt-1.1.38 e Which-2.21

Opcionais

gobject-introspection-1.76.1, ghostscript-10.01.2, gsettings-desktop-schemas-44.0, GTK-Doc-1.33.2, Lasem e libspectre

Instalação do GOffice

Instale o "GOffice" executando os seguintes comandos:

./configure --prefix=/usr &&
make

Se você desejar executar os testes, [então] emita: "make check".

Agora, como o(a) usuário(a) "root":

make install

Explicações do Comando

--enable-gtk-doc: Use esse parâmetro se GTK-Doc estiver instalado e você desejar reconstruir e instalar a documentação da API.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: libgoffice-0.10.so
Diretórios Instalados: /usr/include/libgoffice-0.10, /usr/{lib,share}/goffice e /usr/share/gtk-doc/html/goffice-0.10

Descrições Curtas

libgoffice-0.10.so

contém funções de "API" para fornecer suporte para objetos e utilitários centrados em documentos

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "Grantlee"

Exigidas

CMake-3.27.2 e (Qt-5.15.10 ou qt-alternate-5.15.10)

Opcionais

Doxygen-1.9.7 (para documentação)

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "Graphene"

Exigidas

GLib-2.76.4 e gobject-introspection-1.76.1

Instalação do Graphene

Instale o "Graphene" executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Para testar os resultados, emita: "ninja test".

Agora, como o(a) usuário(a) "root":

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

-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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "GTK+ 2"

Exigidas

at-spi2-core-2.48.3, gdk-pixbuf-2.42.10 e Pango-1.50.14

Recomendadas
Opcionais

Cups-2.4.6, DocBook-utils-0.6.14, gnome-themes-extra-3.28 (tempo de execução, para os temas "Adwaita" e "HighContrast"), gobject-introspection-1.76.1 e GTK-Doc-1.33.2

Nota

Se o "gobject-introspection-1.76.1" foi instalado depois do "at-spi2-core-2.48.3", "gdk-pixbuf-2.42.10" e (ou) "Pango-1.50.14", [então] esses pacotes terão que ser reconstruídos antes que esse pacote possa ser construído.

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-44.0"), [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.38

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "GTK+ 3"

Exigidas

at-spi2-core-2.48.3, gdk-pixbuf-2.42.10, libepoxy-1.5.10 e Pango-1.50.14

Recomendadas
Recomendadas (Exigidas se construir o "GNOME")
Opcionais

colord-1.4.6, Cups-2.4.6, GTK-Doc-1.33.2, PyAtSpi2-2.46.0 (para testes), Tracker-3.5.3 e PAPI

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 dbus-run-session ninja test.

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.5.3".

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.109.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.12.0

Introdução ao GTK 4

O pacote "GTK 4" contém bibliotecas usadas para criar interfaces gráficas de usuário(a) para aplicativos.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "GTK 4"

Exigidas

FriBidi-1.0.13, gdk-pixbuf-2.42.10, graphene-1.10.8, ISO Codes-4.15.0, libepoxy-1.5.10, libxkbcommon-1.5.0, Pango-1.50.14, PyGObject-3.44.1 e wayland-protocols-1.32

Recomendadas
Recomendadas (Exigidas se construir o "GNOME")
Opcionais

colord-1.4.6, Cups-2.4.6, docutils-0.20.1, FFmpeg-6.0 (construído com libvpx-1.13.0), Gi-DocGen-2023.1, Highlight-4.7 (tempo de execução, usado somente pelo gtk4-demo para realce de sintaxe de código fonte de demonstração), libcloudproviders-0.3.2, sassc-3.6.2, Tracker-3.5.3, cpdb e vulkan

Instalação do GTK 4

Primeiro, faça algumas mudanças originárias do fluxo de desenvolvimento:

sed -e '/glib-object.h/a #include <gdk/gdk.h>'        \
    -e '/ gtk_printer_option/i GDK_AVAILABLE_IN_ALL'  \
    -e '/\*gtk_printer_option/i GDK_AVAILABLE_IN_ALL' \
    -i.orig gtk/print/gtkprinteroptionprivate.h

Instale o "GTK 4" executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr           \
            --buildtype=release     \
            -Dbroadway-backend=true \
            -Dintrospection=enabled \
            .. &&
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.12.0'@" -i ../docs/reference/meson.build &&
meson configure -Dgtk_doc=true                                   &&
ninja

Para executar os testes, emita: dbus-run-session meson test --setup x11. Se você estiver em uma sessão do Wayland, substitua x11 por wayland. Nove testes são conhecidos por falharem se as fontes Cantrell não estiverem instaladas. Muitos testes falharão se ~/.config/gtk-4.0/settings.ini existir e a linha gtk-modules não estiver comentada. Em sistemas com placas gráficas NVIDIA, os testes possivelmente demorem significativamente mais que o tempo de teste anunciado.

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

-Dintrospection=enabled: Essa chave habilita usar gobject-introspection-1.76.1 para gerar ligações GIR desses pacotes. Essas ligações são exigidas pelo GNOME.

-Dcloudproviders=enabled: Use essa chave se você tiver o "libcloudproviders-0.3.2" 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.48.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.5.3" 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".

-Dman-pages=true: Use essa chave se você tiver o "docutils-0.20.1" 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.109.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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências dos Motores do "GTK"

Exigidas

GTK+-2.24.33

Opcionais

Lua-5.4.6 e Which-2.21 (exigido para a suíte de teste)

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

Introdução ao Gtkmm

O pacote "Gtkmm" fornece uma interface "C++" para o "GTK+ 3".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "Gtkmm"

Exigidas

Atkmm-2.28.3, GTK+-3.24.38 e Pangomm-2.46.3

Opcionais

Doxygen-1.9.7

Instalação do Gtkmm

Instale o "Gtkmm" executando os seguintes comandos:

mkdir gtkmm3-build &&
cd    gtkmm3-build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Para testar os resultados, emita: "ninja test". Observe que você precisa estar em um ambiente gráfico, pois os testes tentam abrir algumas janelas.

Agora, como o(a) usuário(a) "root":

ninja install

Se você tiver construído a documentação (vejam-se as Explicações dos Comandos abaixo), [então] ela foi instalada em "/usr/share/doc/gtkmm-3.0". Para consistência, mova-a para um diretório versionado como o(a) usuário(a) "root":

mv -v /usr/share/doc/gtkmm-3.0 /usr/share/doc/gtkmm-3.24.8

Explicações do Comando

-Dbuild-documentation=true: Se você tiver instalado o "Doxygen-1.9.7", [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.8}

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "Gtk VNC"

Exigidas

GnuTLS-3.8.1, GTK+-3.24.38 e libgcrypt-1.10.2

Recomendadas
Opcionais

Cyrus SASL-2.1.28 e PulseAudio-16.1

Instalação do Gtk VNC

Instale o "Gtk VNC" 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

-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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "GtkSourceView"

Exigidas

GTK+-3.24.38

Recomendadas
Opcionais

Vala-0.56.11, Valgrind-3.21.0, GTK-Doc-1.33.2, itstool-2.0.7, fop-2.9 (ou dblatex) e Glade

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "GtkSourceView"

Exigidas

GTK+-3.24.38

Recomendadas
Opcionais

Vala-0.56.11, Valgrind-3.21.0, GTK-Doc-1.33.2, itstool-2.0.7, fop-2.9 (ou dblatex) e Glade

Instalação do GtkSourceView

Instale o "GtkSourceView" executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Para testar os resultados, emita "ninja test". Os testes precisam ser executados em um ambiente gráfico.

Agora, como o(a) usuário(a) "root":

ninja install

Explicações do Comando

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

Introdução ao GtkSourceView

O pacote "GtkSourceView" contém uma biblioteca usada para estender as funções de texto do "GTK" para incluir realce de sintaxe.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "GtkSourceView"

Exigidas

GTK-4.12.0 e pcre2-10.42

Recomendadas
Opcionais

GTK-Doc-1.33.2, sysprof-3.48.0, Vala-0.56.11, Valgrind-3.21.0 e Vulkan

Instalação do GtkSourceView

Instale o "GtkSourceView" executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Para testar os resultados, emita: "ninja test".

Agora, como o(a) usuário(a) "root":

ninja install

Explicações do Comando

-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.48.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.12.0

Introdução ao imlib2

"imlib2" é uma biblioteca de gráficos para carregamento, salvamento, renderização e manipulação rápida de arquivos.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "imlib2"

Exigidas

Bibliotecas do Xorg

Recomendadas
Opcionais

Doxygen-1.9.7 (para documentação da "API"), libpng-1.6.40, libjpeg-turbo-3.0.0, libtiff-4.5.1, x265-20230215 e libid3tag

Instalação do imlib2

Instale o "imlib2" executando os seguintes comandos:

./configure --prefix=/usr --disable-static &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

make install

Se você gerou a documentação da "API", [então] instale-a como o(a) usuário(a) "root":

install -v -m755 -d           /usr/share/doc/imlib2-1.12.0/html &&
install -v -m644    doc/html/* /usr/share/doc/imlib2-1.12.0/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.7" 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.12.0 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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "kColorPicker"

Exigidas

CMake-3.27.2 e (Qt-5.15.10 ou qt-alternate-5.15.10)

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

Introdução ao kImageAnnotator

"kImageAnnotator" é uma ferramenta para anotar imagens.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "kImageAnnotator"

Exigidas

kcolorpicker-0.2.0

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "keybinder"

Exigidas

GTK+-2.24.33

Recomendadas
Opcionais

GTK-Doc-1.33.2 e Lua-5.4.6 (atualmente quebrado porque uma versão mais antiga do "Lua" é exigida)

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.6" (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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "keybinder-3.0"

Exigidas

GTK+-3.24.38

Recomendadas
Opcionais

GTK-Doc-1.33.2

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

Introdução ao libadwaita

O pacote "libadwaita" fornece pequenas engenhocas adicionais de IU do "GTK4" para uso no desenvolvimento de interfaces de usuário(a). Elas são usadas principalmente para aplicativos "GNOME".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "libadwaita"

Exigidas

GTK-4.12.0

Recomendadas
Opcionais

Gi-DocGen-2023.1

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.3.4'/" -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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "libdazzle"

Exigidas

GTK+-3.24.38

Recomendadas

Instalação do libdazzle

Instale o "libdazzle" executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Para testar os resultados, emita: "ninja test".

Agora, como o(a) usuário(a) "root":

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

Conteúdo

Aplicativo Instalado: 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

libgedit-amtk-5.8.0

Introdução ao libgedit-amtk

O pacote libgedit-amtk contém uma substituição básica do GTKUIManager baseada no GAction.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do libgedit-amtk

Exigidas

GTK+-3.24.38

Opcionais

GTK-Doc-1.33.2 (para documentação) e Valgrind-3.21.0

Instalação do libgedit-amtk

Instale o libgedit-amtk executando os seguintes comandos:

mkdir amtk-build &&
cd    amtk-build &&

meson setup ..              \
      --prefix=/usr         \
      --buildtype=release   \
      -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 o sistema de construção de gerar e instalar 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: libgedit-amtk-5.so
Diretórios Instalados: /usr/include/libgedit-amtk-5 e /usr/share/gtk-doc/html/libgedit-amtk-5.0

Descrições Curtas

libgedit-amtk-5.so

fornece uma API básica de substituição do GTKUIManager baseada em GAction

libgedit-gtksourceview-299.0.4

Introdução ao libgedit-gtksourceview

O pacote libgedit-gtksourceview fornece uma biblioteca que estende o GtkTextView. Essa biblioteca adiciona suporte para realce de sintaxe, desfazer/refazer, carregar e salvar arquivos, pesquisar e substituir, um sistema de completação, impressão, exibição de números de linha e outros recursos típicos de um editor de código-fonte.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do libgedit-gtksourceview

Exigidas

GTK+-3.24.38 e libxml2-2.10.4

Opcionais

GTK-Doc-1.33.2

Instalação do libgedit-gtksourceview

Instale o libgedit-gtksourceview executando os seguintes comandos:

mkdir build-libgedit &&
cd    build-libgedit &&

meson setup --prefix=/usr       \
            --buildtype=release \
            -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: libgedit-gtksourceview-300.so
Diretórios Instalados: /usr/include/libgedit-gtksourceview-300 e /usr/share/libgedit-gtksourceview-300

Descrições Curtas

libgedit-gtksourceview-300.so

contém funções convenientes para edição de texto.

libhandy-1.8.2

Introdução ao libhandy

O pacote "libhandy" fornece pequenas engenhocas adicionais de "IU" do "GTK" para uso no desenvolvimento de interfaces de usuário(a).

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "libhandy"

Exigidas

GTK+-3.24.38

Recomendadas
Opcionais

GTK-Doc-1.33.2 e Glade

Instalação do libhandy

Instale o "libhandy" executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Para testar os resultados, emita: "ninja test". Os testes precisam ser executados a partir de uma sessão gráfica.

Agora, como o(a) usuário(a) "root":

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

-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 corretamente usando uma plataforma LFS 12.0.

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.27.2 (poderia ser usado para encontrar dependências sem arquivos do "pkgconfig"), docbook-xml-4.5, docbook-xsl-nons-1.79.2, docutils-0.20.1 e libxslt-1.1.38 (para construir páginas de manual), libatomic_ops-7.8.0 (exigido por arquiteturas sem operações atômicas nativas), Valgrind-3.21.0 e CUnit (para testes de "AMDGPU")

Instalação do Libdrm

Instale o "libdrm" executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=$XORG_PREFIX \
            --buildtype=release   \
            -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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "libepoxy"

Exigidas

Mesa-23.1.6

Opcionais

Doxygen-1.9.7 (para documentação)

Instalação do libepoxy

Instale o "libepoxy" executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Para testar os resultados, emita: "ninja test".

Agora, como o(a) usuário(a) "root":

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

-Ddocs=true: Se você tiver o "Doxygen-1.9.7" 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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "libglade"

Exigidas

libxml2-2.10.4 e GTK+-2.24.33

Opcionais

Python-2.7.18 e GTK-Doc-1.33.2

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

Introdução ao libnotify

A biblioteca "libnotify" é usada para enviar notificações da área de trabalho para um processo de segundo plano de notificação, conforme definido nas especificações do "Desktop Notifications". Essas notificações podem ser usadas para informar o(a) usuário(a) a respeito de um evento ou exibir alguma forma de informação sem atrapalhar o(a) usuário(a).

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "libnotify"

Exigidas

GTK+-3.24.38

Opcionais (Exigidas se construir o "GNOME")

gobject-introspection-1.76.1

Opcionais

Gi-DocGen-2023.1 e xmlto-0.0.28

Exigidas (tempo de execução)

notification-daemon-3.20.0 ou xfce4-notifyd-0.8.2

Nota

"GNOME Shell" e "KDE KWin" fornecem os próprios processos de segundo plano de notificação deles.

Instalação do libnotify

Instale o "libnotify" executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr       \
            --buildtype=release \
            -Dgtk_doc=false     \
            -Dman=false         \
            ..                  &&
ninja

Esse pacote não vem com uma suíte de teste.

Se você tiver Gi-DocGen-2023.1 instalado e desejar construir a documentação da API para esse pacote, emita:

sed "/docs_dir =/s@\$@ / 'libnotify'@" \
    -i ../docs/reference/meson.build   &&
meson configure -Dgtk_doc=true         &&
ninja

Agora, como o(a) usuário(a) "root":

ninja install &&
mv -v /usr/share/doc/libnotify{,-0.8.2}

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

Conteúdo

Aplicativo Instalado: notify-send
Biblioteca Instalada: libnotify.so
Diretórios Instalados: /usr/include/libnotify e /usr/share/gtk-doc/html/libnotify

Descrições Curtas

notify-send

é um comando usado para enviar notificações

libnotify.so

contém as funções da "API" da "libnotify"

libxklavier-5.4

Introdução ao libxklavier

O pacote "libxklavier" contém uma biblioteca de utilitários para o teclado do "X".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

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.76.4, ISO Codes-4.15.0, libxml2-2.10.4 e Bibliotecas do Xorg

Recomendadas
Opcionais

GTK-Doc-1.33.2 e Vala-0.56.11

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

Introdução ao Pango

"Pango" é uma biblioteca para esquematização e renderização de texto, com ênfase na internacionalização. Ela pode ser usada em qualquer lugar onde o esquema de texto seja necessário, embora a maior parte do trabalho no "Pango" até agora tenha sido feito no contexto do kit de ferramentas de pequena engenhoca do "GTK+".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "Pango"

Exigidas

Fontconfig-2.14.2 (precisa ser construído com o "FreeType-2.13.1" usando o "HarfBuzz-8.1.1"), FriBidi-1.0.13 e GLib-2.76.4

Recomendadas
Opcionais

Fontes Cantarell (para testes), sysprof-3.48.0, Gi-DocGen-2023.1 (para gerar documentação), help2man e libthai

Instalação do Pango

Primeiro, contorne um defeito no gcc-13 que deflagra um aviso falso que quebra uma construção de lançamento:

sed -i '/array-bounds/d' meson.build

Instale o "Pango" executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --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.14'@" -i ../docs/meson.build &&
meson configure -Dgtk_doc=true                                     &&
ninja

Para testar os resultados, emita: ninja test. Um teste, test-font é conhecido por falhar. Alguns testes possivelmente falhem se nenhuma fonte Opentype ou Truetype estiver instalada em /usr/share/fonts.

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.76.1".

--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.14 (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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "Pangomm"

Exigidas

libcairomm-1.14.0, GLibmm-2.66.5 e Pango-1.50.14

Instalação do Pangomm

Instale o "Pangomm" executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

ninja install

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libpangomm-1.4.so
Diretórios Instalados: /usr/include/pangomm-1.4, /usr/lib/pangomm-1.4 e /usr/share/{devhelp/books/pangomm-1.4,doc/pangomm-2.46.3}

Descrições Curtas

libpangomm-1.4.so

contém as classes da "API" do "Pango"

Qt-5.15.10

Introdução ao Qt5

Qt5 é uma estrutura de aplicação multiplataforma que é amplamente usada para desenvolver software 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. Dois dos principais usuários(as) do Qt são KDE Frameworks 5 (KF5) e LXQt.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Transferências Adicionais

Dependências do "Qt5"

Exigidas

Bibliotecas do Xorg

Recomendadas
Opcionais

BlueZ-5.68 (para sdpscanner e, em tempo de execução, para o módulo QtConnectivity), GTK+-3.24.38, ibus-1.5.28, libinput-1.23.0, MariaDB-10.11.4 ou MySQL, MIT Kerberos V5-1.21.2, mtdev-1.1.6, pciutils-3.10.0, PostgreSQL-15.4, PulseAudio-16.1, SDL2-2.28.2, unixODBC-2.3.12, assimp, Flite, Firebird, FreeTDS, libproxy, OpenAL, speech-dispatcher, tslib e Vulkan

Observações de Editor(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.10". 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.10
ln -sfnv qt-5.15.10 /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.7" 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.10-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

Adicione outra correção para construir com GCC-13:

sed -e "/pragma once/a#include <cstdint>"                                      \
    -i qtlocation/src/3rdparty/mapbox-gl-native/include/mbgl/util/geometry.hpp \
       qtlocation/src/3rdparty/mapbox-gl-native/include/mbgl/util/string.hpp   \
       qtlocation/src/3rdparty/mapbox-gl-native/src/mbgl/gl/stencil_mode.hpp

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.15" 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.14p3" 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

# 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.10

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"

qt-alternate-5.15.10

Introdução ao qt5 (alternar)

Qt5 é uma estrutura de aplicação multiplataforma que é amplamente usada para desenvolver software de aplicação com uma interface gráfica de usuário(a) (GUI) (nesses casos qt5 é classificado como um kit de ferramentas de pequena engenhoca) e também usada para desenvolver aplicativos não GUI, como ferramentas de linha de comando e consoles para servidores. Dois dos principais usuários do qt são o KDE Frameworks 5 (KF5) e o LXQt.

Importante

O pacote qt5 completo consiste em quarenta e três (43) componentes. Estas instruções usam um pequeno subconjunto das instruções completas de instalação do qt5 acima. Elas cobrem a maioria, mas não todos, dos componentes necessários para construir pacotes no BLFS. Esta página e a próxima são fornecidas para reduzir a quantidade de tempo, espaço e dependências necessárias para construir esses pacotes. Elas não são recomendadas se você construirá o ambiente de área de trabalho Plasma-5.27.7 baseado em Plasma-5.27.7.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Transferências Adicionais

Dependências do qt5

Exigidas

Bibliotecas do Xorg

Recomendadas
Opcionais

GTK+-3.24.38, libinput-1.23.0 MariaDB-10.11.4 ou MySQL, MIT Kerberos V5-1.21.2, mtdev-1.1.6 PostgreSQL-15.4 e unixODBC-2.3.12

Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/qt5

Configurando o prefixo de 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 de instalação são rigidamente codificados nos arquivos instalados. Essa é a razão pela qual /opt/qt5 é usado como prefixo de instalação em vez de /opt/qt-5.15.10. 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.10
ln -sfnv qt-5.15.10 /opt/qt5

Mais tarde, você pode querer 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.

Instalação do qt5

Atenção

Se o qt5 estiver sendo reinstalado no mesmo diretório de uma instância existente, execute os comandos feitos por root, como make install, a partir de um console ou gerenciador de janelas não baseado em qt5. Ele sobrescreve bibliotecas do qt5 que não deveriam estar em uso durante o processo de instalação.

Cuidado

Se você não instalou algumas das dependências recomendadas, 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

Os(As) editores(as) do BLFS não recomendam instalar o qt5 na hierarquia /usr porque fica difícil encontrar componentes e atualizar para uma nova versão. Se você deseja instalar o qt5 em /usr, 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 aqueles módulos que são exigidos pelos pacotes mencionados neste livro:

patch -Np1 -i ../qt-everywhere-opensource-src-5.15.10-kf5-1.patch

O remendo é presumido para ser usado em um repositório git, porque o comportamento do comando configure abaixo é mudado nesse caso. Basta criar um diretório .git no diretório qmake, onde o conjunto de comandos sequenciais configure for executado:

mkdir -pv qtbase/.git

Neste ponto, queremos configurar o salto da maioria dos componentes. Faça isso com:

ls -Fd qt* | grep / | sed 's/^/-skip /;s@/@@' > tempconf &&
sed -i -r '/base|tools|x11extras|svg|declarative|wayland/d' tempconf

Agora, instale o 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            \
            $(cat tempconf)      \
            &&
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 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 aplicativos executáveis. Se você tiver mudado o bindir acima, QT5BINDIR precisará ser ajustado 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=Assistente Qt5
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=Projetista Qt5
GenericName=Projetista de Interface
Comment=Projetar GUIs para aplicativos 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=Linguista Qt5
Comment=Adicionar traduções a aplicativos 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=Depurador do D-Bus
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 VLC-3.0.18, procuram determinados 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

-confirm-license: Aceite 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 quiser construí-los.

-system-sqlite: Essa chave habilita usar a versão do sistema do SQLite.

-system-harfbuzz: Essa chave habilita usar a versão do sistema do Harfbuzz.

-dbus-linked -openssl-linked: Essas chaves habilitam a vinculação explícita das bibliotecas do D-Bus e OpenSSL no qt5 em vez de abri-las com dlopen().

-journald: Essa chave permite enviar mensagens qt para o sistema de registro journald.

$(cat tempconf): Esse comando fornece uma lista de componentes que não deveriam ser construídos. Essas entradas estão no formato "-skip <componente>".

Configurando o qt5

Informações de Configuração

Se o Sudo-1.9.14p3 estiver instalado, 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 qt5 em /usr

Se você instalou o qt5 em /usr, 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

# Termina /etc/profile.d/qt5.sh
EOF
Se você não instalou qt5 em /usr

Se você instalou o qt5 em um local diferente de /usr, você precisa 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 o(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, designer, fixqt4headers.pl, lconvert, linguist, lprodump, lrelease, lrelease-pro, lupdate, lupdate-pro, moc, pixeltool, qcollectiongenerator, qdbus, qdbuscpp2xml, qdbusviewer, qdbusxml2cpp, qdistancefieldgenerator, qdoc, qhelpgenerator, qlalr, qmake, qml, qmlcachegen, qmleasing, qmlformat, qmlimportscanner, qmllint, qmlmin, qmlplugindump, qmlpreview, qmlprofiler, qmlscene, qmltestrunner, qmltime, qmltyperegistrar, qtattributionscanner, qtdiag, qtpaths, qtplugininfo, qtwaylandscanner, qvkgen, rcc, syncqt.pl, tracegen e uic
Bibliotecas Instaladas: libQt5Concurrent.so, libQt5Core.so, libQt5DBus.so, libQt5Designer.so, libQt5DesignerComponents.so, libQt5EglFSDeviceIntegration.so, libQt5EglFsKmsSupport.so, libQt5Gui.so, libQt5Help.so, libQt5Network.so, libQt5OpenGL.so, libQt5PrintSupport.so, libQt5Qml.so, libQt5QmlModels.so, libQt5QmlWorkerScript.so, libQt5Quick.so, libQt5QuickParticles.so, libQt5QuickShapes.so, libQt5QuickTest.so, libQt5WaylandClient.so, libQt5WaylandCompositor.so, libQt5Widgets.so, libQt5X11Extras.so, libQt5XcbQpa.so, libQt5Xml.so, várias bibliotecas estáticas 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.10

Descrições Curtas

Vejam-se Qt5 Short Descriptions

componentes-qt-5.15.10

Introdução aos componentes do qt5

Estas instruções mostram como construir componentes adicionais do Qt5 além do qt-alternate-5.15.10. Eles não são aplicáveis se o pacote Qt-5.15.10 completo tiver sido construído.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Transferências Adicionais

Dependências dos Componentes do qt5

Exigidas

qt-alternate-5.15.10

Dependências recomendadas para qtimageformats
Dependências recomendadas para multimídia

Instalação dos Componentes do qt5

Existem uns poucos componentes extras necessários para diferentes pacotes no BLFS. Esses são qtimageformats, qtlocation, qtwebchannel, qtdoc e qtmultimedia. Somente aqueles componentes especificados para um pacote específico são necessários. Você só precisa construir o(s) componente(s) relevante(s).

Primeiro, aplique um remendo para obter as correções selecionadas pelo KDE para alguns dos módulos listados acima:

patch -Np1 -i ../qt-everywhere-opensource-src-5.15.10-kf5-1.patch

A seguir, se você estiver instalando o qtlocation, corrija a construção com GCC-13:

sed -e "/pragma once/a#include <cstdint>"                                      \
    -i qtlocation/src/3rdparty/mapbox-gl-native/include/mbgl/util/geometry.hpp \
       qtlocation/src/3rdparty/mapbox-gl-native/include/mbgl/util/string.hpp   \
       qtlocation/src/3rdparty/mapbox-gl-native/src/mbgl/gl/stencil_mode.hpp

Instale cada componente desejado executando os seguintes comandos:

cd <componente>
qmake <componente>.pro
make

Como o(a) usuário(a) root:

make install

Remova as referências para o diretório de construção dos arquivos instalados de dependência de biblioteca (prl) executando o seguinte comando como o(a) usuário(a) root:

find $QT5DIR/ -name \*.prl \
   -exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d' {} \;

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: libQt5<componente>.so
Diretórios Instalados: $QTDIR/qml/<componente>, $QTDIR/lib/<componente> e $QTDIR/include/<componente>

QtWebEngine-5.15.15

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

Importante

Qt-5.15 atingiu o fim da vida útil em 26 de maio de 2023. Qt5.15 LTS vida útil estendida foi estendido até 26 de maio de 2025 para aqueles(as) com licenças de assinatura. Como o qtwebengine usa código do chromium sob a LGPL, parece que quaisquer novas correções CVE implementadas para o QtWebEngine estarão disponíveis depois que o Qt fizer lançamentos públicos das versões atuais dele.

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.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 corretamente usando uma plataforma LFS 12.0.

Atenção

Por padrão, o ninja usará todas as CPUs online mais duas (se existirem pelo menos quatro), mesmo que elas não estejam disponíveis para a tarefa atual porque o terminal de construção tenha sido restringido com o 'taskset'. No BLFS, esse pacote leva mais tempo para construir que qualquer outro. Em um exemplo, a construção desse pacote travou no ponto de cerca de noventa por cento (90%) devido a um problema de falta de memória em um sistema com vinte e quatro (24) elementos de processamento e trinta e dois (32) GB de memória.

Para contornar isso, vejam-se as Explicações do Comando abaixo.

Nota

Se estiver atualizando e tiver instalado uma versão mais recente do "ICU-73.2" desde a última instalação do "Qt-5.15.10", [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.17.1, nss-3.92, pciutils-3.10.0 e (Qt-5.15.10 ou componentes-qt-5.15.10 com qtlocation e qtwebchannel)

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.21.2, pipewire-0.3.77, Poppler-23.08.0, jsoncpp, libsrtp, snappy

Observações de Editor(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.15-build_fixes-1.patch

Aplique um remendo que resolve problemas ao construir com ffmpeg-5 e posterior:

patch -Np1 -i ../qtwebengine-5.15.15-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.10" usando um "sed":

sed -e '/^MODULE_VERSION/s/5.*/5.15.10/' -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.10" 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.21.2" 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 --->                                       [NAMESPACES]
    # Enable or disable *both* of them:
    [ /*] User namespace                                               [USER_NS]
    [ /*] PID Namespaces                                                [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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "startup-notification"

Exigidas

Bibliotecas do Xorg e xcb-util-0.4.1

Instalação do startup-notification

Instale o "startup-notification" executando os seguintes comandos:

./configure --prefix=/usr --disable-static &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

make install &&
install -v -m644 -D doc/startup-notification.txt \
     /usr/share/doc/startup-notification-0.12/startup-notification.txt

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libstartup-notification-1.so
Diretórios Instalados: /usr/include/startup-notification-1.0 e /usr/share/doc/startup-notification-0.12

Descrições Curtas

libstartup-notification-1.so

fornece as funções para auxiliar os aplicativos na comunicação com o sistema de cursor para fornecer retroalimentação para o(a) usuário(a) que o aplicativo está carregando

Tepl-6.8.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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "Tepl"

Exigidas

gsettings-desktop-schemas-44.0, ICU-73.2, libgedit-amtk-5.8.0, libgeditsourceview-299.0.4 e uchardet-0.0.8

Opcionais

GTK-Doc-1.33.2 (para documentação) e Valgrind-3.21.0

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

Introdução ao WebKitGTK

O pacote "WebKitGTK" é uma porta do mecanismo de renderização "web" portável "WebKit" para as plataformas "GTK+ 3" e "GTK 4".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP): https://webkitgtk.org/releases/webkitgtk-2.41.91.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 1140f86d9044fb76be974b65f71737d7

  • Tamanho da transferência: 39 MB

  • Espaço em disco estimado exigido: 1,2 GB (201 MB instalado; adicionar 152 MB para GTK-4)

  • Tempo de construção estimado: 35 UPC (para GTK-3, usando paralelismo = 4; adicionar 34 UPC para GTK-4)

Dependências do "WebKitGTK"

Exigidas

Cairo-1.17.6, CMake-3.27.2, gst-plugins-base-1.22.5, gst-plugins-bad-1.22.5, GTK+-3.24.38, GTK-4.12.0, ICU-73.2, Little CMS-2.14, libgudev-238, libsecret-0.21.0, libsoup-3.4.2, libtasn1-4.19.0, libwebp-1.3.1, Mesa-23.1.6, OpenJPEG-2.5.0, Ruby-3.2.2, SQLite-3.42.0, unifdef-2.12, Which-2.21 e wpebackend-fdo-1.14.2

Recomendadas
Opcionais

Gi-DocGen-2023.1, HarfBuzz-8.1.1, Wayland-1.22.0, WOFF2-1.0.2, ccache, Hyphen, libjxl e libmanette

Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/webkitgtk

Instalação do WebKitGTK

Instalação do WebKitGTK

Importante

Esse pacote permite construir com GTK-3 ou GTK-4, mas não ambos na mesma construção. A versão GTK-4 é necessária para pacotes como Epiphany-44.6. Outros pacotes, como Balsa-2.6.4 ou Evolution-3.48.4, requerem a versão GTK-3. Ambas as versões podem ser instaladas lado a lado no mesmo sistema. Nós fornecemos instruções de construção para ambos os casos abaixo, mas a única diferença é a configuração de -DUSE_GTK4

Se você quiser instalar a versão GTK+-3 do WebKitGTK, execute 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_GTK4=OFF              \
      -DUSE_WPE_RENDERER=ON       \
      -DUSE_JPEGXL=OFF            \
      -DENABLE_BUBBLEWRAP_SANDBOX=ON \
      -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

Se você quiser instalar a versão GTK4 do WebKitGTK, execute os seguintes comandos:

rm -rf * .[^.]* &&

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_GTK4=ON               \
      -DUSE_JPEGXL=OFF            \
      -DUSE_WPE_RENDERER=ON       \
      -DENABLE_BUBBLEWRAP_SANDBOX=ON \
      -Wno-dev -G Ninja ..        &&
ninja

Agora, como o(a) usuário(a) "root":

ninja install

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

-DUSE_JPEGXL=OFF: Essa chave desativa o suporte para imagens JPEG-XL. Remova-a se você tiver o pacote opcional libjxl instalado.

-DENABLE_BUBBLEWRAP_SANDBOX=ON: Essa chave habilita o sandbox Bubblewrap, que ajuda a mitigar o impacto da maioria das vulnerabilidades de segurança neste pacote. Mude essa chave para OFF se você não quiser instalar bubblewrap-0.8.0 e xdg-dbus-proxy-0.1.5, mas observe que isso possivelmente te coloque em risco.

-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_AVIF=OFF: Use essa chave se você não quiser instalar libavif-0.11.1. Observe que você não terá suporte para imagens AVIF se fizer isso.

-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, libjavascriptcoregtk-6.0.so, libwebkit2gtk-4.1.so e libwebkitgtk-6.0.so
Diretórios Instalados: /usr/include/webkitgtk-4.1, /usr/include/webkitgtk-6.0, /usr/lib{,exec}/webkit2gtk-4.1, /usr/lib{,exec}/webkitgtk-6.0 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"

libjavascriptcoregtk-6.0.so

contém funções centrais da API JavaScript usadas por jsc e libwebkitgtk-6.0

libwebkit2gtk-4.1.so

contém as funções da "API" do "WebKit2"

libwebkitgtk-6.0.so

contém as funções de API do WebKit para aplicativos GTK-4

Capítulo 26. Gerenciadores de Tela

Gerenciadores de Tela são aplicativos gráficos usados para iniciar a tela gráfica (atualmente, o servidor "X") e fornecer uma capacidade de "login" para um Gerenciador de Janelas ou Ambiente de Área de Trabalho.

Existem muitos Gerenciadores de Tela disponíveis. Alguns dos mais bem conhecidos incluem: gdm, kdm (obsoleto), LightDM, lxdm, Slim e sddm.

Entre os Ambientes de Área de Trabalho disponíveis para o Linux você encontra: Enlightenment, GNOME, Plasma, lxde, LXQt e xfce.

A escolha de um Gerenciador de Tela ou de um Ambiente de Área de Trabalho é altamente subjetiva. A escolha depende da aparência dos pacotes, dos recursos (memória e espaço em disco) exigidos e dos utilitários incluídos.

Neste capítulo as instruções de instalação de alguns Gerenciadores de Tela são apresentadas. Posteriormente no livro, você encontrará outros, que são fornecidos como parte de alguns Ambientes de Área de Trabalho.

GDM-44.1

Introdução ao GDM

"GDM" é um serviço de sistema que é responsável por fornecer "logins" gráficos e gerenciar exibições locais e remotas.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "GDM"

Exigidas

AccountsService-23.13.9, DConf-0.40.0, libcanberra-0.30 (construído depois do GTK+-3.24.38) e Linux-PAM-1.5.3

Opcionais

keyutils-1.6.1

Dependências de Tempo de Execução

gnome-session-44.0, gnome-shell-44.3 e Systemd-254

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 setup ..            \
      --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".

Em alguns sistemas com GPUs NVIDIA, o GDM ocultará as sessões do Wayland por padrão. Isso geralmente é feito para impedir que os(as) usuários(as) encontrem problemas com controladores defeituosos, o que pode resultar em travamentos do sistema, travamentos de aplicativos, problemas de gerenciamento de eletricidade e lentidão gráfica. Se você tiver uma GPU NVIDIA e ainda desejar tentar executar sessões do Wayland de qualquer maneira, execute o seguinte comando como o(a) usuário(a) root:

ln -s /dev/null /etc/udev/rules.d/61-gdm.rules

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 corretamente usando uma plataforma LFS 12.0.

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.2, itstool-2.0.7, Linux-PAM-1.5.3 e Xorg-Server-21.1.8 (tempo de execução)

Recomendadas
Opcionais

AccountsService-23.13.9 (tempo de execução), at-spi2-core-2.48.3, GTK-Doc-1.33.2, (Qt-5.15.10 ou qt-alternate-5.15.10), libido e libindicator

Instalação do Lightdm

Primeiro, crie um(a) usuário(a) e um grupo dedicado(a) para assumir o controle do processo de segundo plano "lightdm" depois de ele ser iniciado. Emita os seguintes comandos como o(a) usuário(a) "root":

groupadd -g 65 lightdm        &&
useradd  -c "Lightdm Daemon" \
         -d /var/lib/lightdm \
         -u 65 -g lightdm    \
         -s /bin/false lightdm

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-20230816":

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

sddm-0.20.0

Introdução ao sddm

O pacote sddm contém um gerenciador de tela leve baseado em Qt e QML.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP): https://github.com/sddm/sddm/archive/v0.20.0/sddm-0.20.0.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 7af67d5fb767639861d35c80eb4e1191

  • Tamanho da transferência: 3,4 MB

  • Espaço em disco estimado exigido: 22 MB

  • Tempo de construção estimado: 0,3 UPC (Usando paralelismo=4)

Dependências do SDDM

Exigidas

CMake-3.27.2, extra-cmake-modules-5.109.0 e (Qt-5.15.10 ou qt-alternate-5.15.10)

Recomendadas

Instalação do SDDM

Primeiro, crie um(a) usuário(a) e um grupo dedicado(a) para assumir o controle do processo de segundo plano do sddm depois de ele ser iniciado. Emita os seguintes comandos como o(a) usuário(a) root:

groupadd -g 64 sddm &&
useradd  -c "Processo de Segundo Plano do sddm" \
         -d /var/lib/sddm \
         -u 64 -g sddm    \
         -s /bin/false sddm

Instale o sddm executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -DCMAKE_INSTALL_PREFIX=/usr \
      -DCMAKE_BUILD_TYPE=Release  \
      -DRUNTIME_DIR=/run/sddm     \
      -DBUILD_MAN_PAGES=ON        \
      -DDATA_INSTALL_DIR=/usr/share/sddm \
      -DDBUS_CONFIG_FILENAME=sddm_org.freedesktop.DisplayManager.conf \
      .. &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install &&
install -v -dm755 -o sddm -g sddm /var/lib/sddm
/usr/bin/sddm --example-config > /etc/sddm.conf

Explicações do Comando

-DCMAKE_BUILD_TYPE=Release: Essa chave é usada para aplicar otimizações adicionais do compilador.

-DDBUS_CONFIG_FILENAME=sddm_org.freedesktop.DisplayManager.conf: Essa chave evita que o arquivo /etc/dbus-1/system.d/org.freedesktop.DisplayManager.conf seja sobrescrito, pois ele possivelmente seja usado por outros DMs.

-DBUILD_MAN_PAGES=ON: Essa chave é usada para construir e instalar páginas de manual.

Configurando o SDDM

Arquivos de Configuração

/etc/sddm.config

Normalmente, você quer editar esse arquivo. Por exemplo, se o Xorg estiver instalado em /opt, use teu editor preferido como o(a) usuário(a) root para substituir o valor padrão XauthPath por /opt/xorg/bin/xauth. Ou, como o(a) usuário(a) root, emita:

sed -i.orig '/ServerPath/ s|usr|opt/xorg|' /etc/sddm.conf

Esse comando fará a substituição e criará uma cópia do arquivo original com o nome /etc/sddm.conf.orig.

A partir de agora descreveremos como modificar configurações usando sed. É claro que você poderá usar teu editor preferido como o(a) usuário(a) root.

Por motivos de segurança, você normalmente quer o ServerArguments=-nolisten tcp padrão, a menos que uma máquina remota precise acessar o servidor X local. Nesse caso, como o(a) usuário(a) root, emita:

sed -i 's/-nolisten tcp//' /etc/sddm.conf

Usuários(as) de área de trabalho (notebook) normalmente querem ligar (desligar) a tecla Num Lock. Para isso, como root, emita:

sed -i 's/none/on/' /etc/sddm.conf

para usuários(as) de área de trabalho. Para usuários(as) de Notebook, substitua /on/ por /off/ no comando acima.

Por padrão, um teclado virtual é apresentado para o(a) usuário(a). Se isso não for desejado, execute como root:

sed -i 's/qtvirtualkeyboard//' /etc/sddm.conf

Conjunto de Comandos Sequenciais de Inicialização

Habilite a unidade do systemd pré-instalada executando o seguinte comando como o(a) usuário(a) root:

systemctl enable sddm

Configuração do Linux PAM

Nota

O procedimento de instalação acima instalou um conjunto de arquivos de configuração do PAM. Esses procedimentos os sobrescrevem e usam versões compatíveis com um ambiente BLFS.

Se você tiver construído o sddm com suporte ao Linux PAM, crie os arquivos de configuração necessários executando os seguintes comandos como o(a) usuário(a) root:

cat > /etc/pam.d/sddm << "EOF" &&
# Inicia /etc/pam.d/sddm

auth     requisite      pam_nologin.so
auth     required       pam_env.so

auth     required       pam_succeed_if.so uid >= 1000 quiet
auth     include        system-auth

account  include        system-account
password include        system-password

session  required       pam_limits.so
session  include        system-session

# Termina /etc/pam.d/sddm
EOF

cat > /etc/pam.d/sddm-autologin << "EOF" &&
# Inicia /etc/pam.d/sddm-autologin

auth     requisite      pam_nologin.so
auth     required       pam_env.so

auth     required       pam_succeed_if.so uid >= 1000 quiet
auth     required       pam_permit.so

account  include        system-account

password required       pam_deny.so

session  required       pam_limits.so
session  include        system-session

# Termina /etc/pam.d/sddm-autologin
EOF

cat > /etc/pam.d/sddm-greeter << "EOF"
# Inicia /etc/pam.d/sddm-greeter

auth     required       pam_env.so
auth     required       pam_permit.so

account  required       pam_permit.so
password required       pam_deny.so
session  required       pam_unix.so
-session optional       pam_systemd.so

# Termina /etc/pam.d/sddm-greeter
EOF

Sessões Disponíveis

O saudador oferece uma lista de sessões disponíveis, dependendo dos gerenciadores de janelas e ambientes de área de trabalho instalados. A lista inclui sessões que tem um arquivo .desktop correspondente instalado sob /usr/share/xsessions ou /usr/share/wayland-sessions. A maioria dos gerenciadores de janelas e ambientes de área de trabalho fornece automaticamente esses arquivos, mas se necessário, você pode incluir um arquivo personalizado.

Temas

Três temas estão instalados em /usr/share/sddm/themes: elarun, maldives e maya. Existe também um tema padrão, que não está presente nesse diretório. Você consegue instalar outros temas nesse diretório. Para a finalidade de mudar o tema, você precisa editar o /etc/sddm.conf, para mudar o tema padrão (vazio), substituindo Current= por Current=<novo tema>, por exemplo, Current=maldives.

Para a finalidade de ver o tema sem sair da sessão, emita:

sddm-greeter --test-mode --theme <caminho do tema>

Conteúdo

Aplicativos Instalados: sddm e sddm-greeter
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: $QT5DIR/qml/SddmComponents, /usr/share/sddm e /var/lib/sddm

Descrições Curtas

sddm

é um gerenciador de tela e login baseado em bibliotecas Qt.

sddm-greeter

é um processo auxiliar que exibe o saudador, uma interface gráfica de usuário(a) que realiza a autenticação de usuário(a) e inicia o gerenciador de janelas ou ambiente de exibição selecionado.

Capítulo 27. Gerenciadores de Janela

Gerenciadores de Janelas e Ambientes de Área de Trabalho são as interfaces de usuário(a) primárias no Sistema de Janelas "X". Um gerenciador de janelas é um aplicativo que controla a aparência das janelas e fornece os meios pelos quais o(a) usuário(a) consegue interagir com elas. Um Ambiente de Área de Trabalho fornece uma interface mais completa para o sistema operacional e fornece uma variedade de utilitários e aplicativos integrados.

Existem muitos Gerenciadores de Janelas disponíveis. Alguns dos mais bem conhecidos incluem "fvwm2", "Window Maker", "AfterStep", "Enlightenment", "Sawfish" e "Blackbox".

Os Ambientes de Área de Trabalho disponíveis para o Linux são "GNOME", "KDE" e "XFce".

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "Fluxbox"

Exigidas

um ambiente gráfico

Opcionais

dbus-1.14.8 (tempo de execução), FriBidi-1.0.13 e imlib2-1.12.0 (se você desejar usar outros formatos de imagem além do "XPM")

Instalação do Fluxbox

Primeiro, corrija uma falha de construção ao construir com o "gcc-11.1":

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-44.1" 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-44.1" 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.12.0" 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.4.1

Introdução ao IceWM

"IceWM" é um gerenciador de janelas com os objetivos de velocidade, simplicidade e não atrapalhar o(a) usuário(a).

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "IceWM"

Exigidas

CMake-3.27.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.13 (para idiomas escritos da direita para a esquerda), imlib2-1.12.0, librsvg-2.56.3, libao-1.2.0, libsndfile-1.2.2 e alsa-lib-1.2.9 (para o aplicativo experimental "icesound")

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.4.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.4.1, /usr/share/icewm e ~/.icewm

Descrições Curtas

icehelp

é usado para exibir o manual "HTML"

icesh

é um gerenciador de janelas de linha de comando que pode ser usado em "~/.icewm/startup"

icesound

reproduz arquivos de áudio em eventos de "GUI" gerados pelo "IceWM"

icewm

é o gerenciador de janelas

icewm-menu-fdo

consegue criar um arquivo em um formato adequado para um menu do "IceWM", que lista aqueles aplicativos atualmente instalados em um esquema em conformidade com as Especificações de Menu de Área de Trabalho "FDO"

icewm-menu-xrandr

é um aplicativo auxiliar usado para gerenciar configurações de múltiplas telas

icewm-session

executa "icewmbg", "icewm", "icewmtray", "startup", "shutdown" (ou seja, conjuntos de comandos sequenciais de inicialização e desligamento são executados se instalados)

icewm-set-gnomewm

é um conjunto de comandos sequenciais para configurar o gerenciador de janelas "GNOME" como "icewm" usando o "gconftool"

icewmbg

é usado para configurar o plano de fundo, de acordo com as diversas configurações de "DesktopBackground" nas preferências

icewmhint

é usado internamente para fornecer dicas para o(a) usuário(a)

openbox-3.6.1

Introdução ao openbox

"Openbox" é um gerenciador de janelas de área de trabalho altamente configurável com amplo suporte a padrões. Ele te permite controlar quase todos os aspectos de como você interage com a tua área de trabalho.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

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.14 (compilado com suporte para "libXft")

Opcionais

dbus-1.14.8 (tempo de execução), imlib2-1.12.0 (para habilitar ícones no menu do botão direito), ImageMagick-7.1.1-15 (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.56.3

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.12.0" 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.8":

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 corretamente usando uma plataforma LFS 12.0.

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

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 sddm-0.20.0.

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

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "Tema de Ícone Adwaita"

Opcionais

git-2.41.0, GTK+-2.24.33 ou GTK+-3.24.38 (se presente, [então] o "librsvg-2.56.3" também é exigido; e "gtk-update-icon-cache" e "gtk-encode-symbolic-svg" são executados depois da instalação), Inkscape-1.3 e Ferramentas de Ícone

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.109.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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "Ícones Breeze"

Exigidas

extra-cmake-modules-5.109.0 e (Qt-5.15.10 ou qt-alternate-5.15.10)

Opcionais

KDE Frameworks-5.109.0, libxml2-2.10.4 e lxml-4.9.3

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.109.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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "Tema de Ícone do GNOME"

Exigidas

GTK+-3.24.38 ou GTK+-2.24.33, hicolor-icon-theme-0.17 e icon-naming-utils-0.8.90

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "Extras do Tema de Ícone do GNOME"

Exigidas

gnome-icon-theme-3.12.0

Opcionais

git-2.41.0 e Inkscape-1.3

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 corretamente usando uma plataforma LFS 12.0.

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.41.0 e Inkscape-1.3

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "Extra dos Temas do GNOME"

Exigidas

GTK+-2.24.33 ou GTK+-3.24.38 com librsvg-2.56.3 ou ambos

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "icon-naming-utils"

Exigidas

XML-Simple-2.25

Instalação do icon-naming-utils

Instale o "icon-naming-utils" executando os seguintes comandos:

./configure --prefix=/usr &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) "root":

make install

Conteúdo

Aplicativos Instalados: icon-name-mapping
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/share/dtds e /usr/share/icon-naming-utils

Descrições Curtas

icon-name-mapping

é um conjunto de comandos sequenciais "Perl" usado para manter a compatibilidade retroativa com os atuais temas de ícones de área de trabalho, enquanto migra para os nomes especificados na "Especificação de Nomenclatura de Ícones"

lxde-icon-theme-0.5.1

Introdução ao Tema de Í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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "Tema de Ícone do LXDE"

Opcionais

GTK+-2.24.33 ou GTK+-3.24.38 (para o comando "gtk-update-icon-cache")

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.109.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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "oxygen-icons5"

Exigidas

extra-cmake-modules-5.109.0 e (Qt-5.15.10 ou qt-alternate-5.15.10)

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.109.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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "Módulos Extras do Cmake"

Exigidas

CMake-3.27.2

Opcionais

sphinx-7.1.2 (para construir documentação) e PyQt (suporte experimental para construir ligações "Python" do "KDE")

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "Phonon"

Exigidas

CMake-3.27.2, extra-cmake-modules-5.109.0, GLib-2.76.4 e Qt-5.15.10

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

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "Phonon-backend-gstreamer"

Exigidas

gstreamer-1.22.5, libxml2-2.10.4 e phonon-4.11.1

Recomendadas

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "Phonon-backend-vlc"

Exigidas

phonon-4.11.1 e VLC-3.0.18

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "Polkit-Qt"

Exigidas

CMake-3.27.2, Polkit-123 e Qt-5.15.10

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "libdbusmenu-qt"

Exigidas

Qt-5.15.10

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "Plasma-wayland-protocols"

Exigidas

extra-cmake-modules-5.109.0

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "Kuserfeedback"

Exigidas

extra-cmake-modules-5.109.0 e Qt-5.15.10

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.14p3" 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

pathappend $KF5_PREFIX/include          CPLUS_INCLUDE_PATH
# Termina /etc/profile.d/kf5.sh
EOF

cat >> /etc/profile.d/qt5.sh << "EOF"
# Inicia mudanças 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 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.109.0". Depois de instalar o "KDE Frameworks", você pode renomear o diretório e criar um link simbólico:

mv /opt/kf5{,-5.109.0}
ln -sfv kf5-5.109.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 corretamente usando uma plataforma LFS 12.0.

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

  • 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 (252 MB instalado)

  • Tempo de construção estimado: 13 UPC (usando paralelismo = 4)

Dependências do KF5

Exigidas

Boost-1.83.0, extra-cmake-modules-5.109.0, docbook-xml-4.5, docbook-xsl-nons-1.79.2, giflib-5.2.1, libepoxy-1.5.10, libgcrypt-1.10.2, libical-3.0.16, libjpeg-turbo-3.0.0, libpng-1.6.40, libxslt-1.1.38, lmdb-0.9.31, qca-2.3.7, 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.4 (exigido para baixar os pacotes)

Recomendadas
Opcionais

BlueZ-5.68 (necessário para construir Bluez-Qt), Datamatrix (considerado recomendado para Prison pelo fluxo de desenvolvimento)

Dependência de tempo de execução para o FrameworkIntegration

Fontes Noto

Dependências adicionais recomendadas para o kapidox
Suporte a formatos adicionais de imagem no KImageFormats

JasPer-4.0.0, libavif-0.11.1, libraw-0.21.1, libheif, libjxl e OpenEXR

Dependências opcionais para o KIO

MIT Kerberos V5-1.21.2

Dependências opcionais para o Solid

UDisks-2.10.0, UPower-1.90.2 e media-player-info (tempo de execução)

Dependência opcional para o KWallet

GPGME-1.21.0, construído com ligações "C++" (o que é o padrão).

Dependência opcional para kdewebkit

QtWebkit

Estruturas de retaguarda opcionais de dicionário para o Sonnet

Hspell e Hunspell

Observações de Editor(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.109/
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.109.0.md5 << "EOF"
b025406c6818d92ad3fedd585bd8a428  attica-5.109.0.tar.xz
#0baf0a3ded2fed5e0442591dde276c4e  extra-cmake-modules-5.109.0.tar.xz
e4cc63aafbbe019ebb8d62f6c02e9d2e  kapidox-5.109.0.tar.xz
d096b76119d8d9da91fd112811d2b408  karchive-5.109.0.tar.xz
64087cda04bec6ad068f22ce1e3dcb1e  kcodecs-5.109.0.tar.xz
fe2b1c516c2f9caadd6c8e3bf35ffd96  kconfig-5.109.0.tar.xz
b88be3c775bef6277e047f09b531ba1d  kcoreaddons-5.109.0.tar.xz
5b00c0b729b5c11d2a5733ea7db5674f  kdbusaddons-5.109.0.tar.xz
993090bb9a0e678154382daa0626fa48  kdnssd-5.109.0.tar.xz
3fc1c5e58a8202cd0722aa7ec99ad584  kguiaddons-5.109.0.tar.xz
13b867e8189e91e402e5e9b9aa33b613  ki18n-5.109.0.tar.xz
d8f87c99c0b798f04ac328d7050d2d97  kidletime-5.109.0.tar.xz
777d46bc3c7c7e66804402220dac2df0  kimageformats-5.109.0.tar.xz
e3321430de25b4b16ad48c6c2f168170  kitemmodels-5.109.0.tar.xz
c5efe890400ab8b97270f9a3e821d510  kitemviews-5.109.0.tar.xz
f334911f97cd4592e3b823dfc518f9eb  kplotting-5.109.0.tar.xz
67f4605da5e119342e91fc4670114a2b  kwidgetsaddons-5.109.0.tar.xz
2b384fcad72c84ccda75f300c14f633c  kwindowsystem-5.109.0.tar.xz
4dcacee7da9987c587511634ca90f064  networkmanager-qt-5.109.0.tar.xz
8952c4756ed0bc072a8bad998ed81bc6  solid-5.109.0.tar.xz
8aff00ce75275252f45d915c478279de  sonnet-5.109.0.tar.xz
f98889ea3fa22aaeaa9f8a85a602f3a6  threadweaver-5.109.0.tar.xz
62195272670cdec8ceb0fbda4bd8c43b  kauth-5.109.0.tar.xz
9b99972d3a25f521c20c04d1867fc3dd  kcompletion-5.109.0.tar.xz
fc2f3a9c7d12066b659b46e13a75e97a  kcrash-5.109.0.tar.xz
43e0fddae05e83dfb7cd0b0bb5cc11e5  kdoctools-5.109.0.tar.xz
7ccb53e9023ada6a5e08e4d562769ef3  kpty-5.109.0.tar.xz
30d32d8dc23c6ad4915be89831238c54  kunitconversion-5.109.0.tar.xz
eb1a478738f8f5bd5ab7bd23145594b7  kconfigwidgets-5.109.0.tar.xz
2353574c0c41d1f9e274d29fc3f174c3  kservice-5.109.0.tar.xz
8f2118a5544acd0bcb9a2202180e1e27  kglobalaccel-5.109.0.tar.xz
f9ce944b2dcc815e8df677b7018530cd  kpackage-5.109.0.tar.xz
737509807d74878037d564ab19f8f4fb  kdesu-5.109.0.tar.xz
f8ec4f236ad6d229294003478b2c8660  kemoticons-5.109.0.tar.xz
8d23dcfeaa45d04f3a03b993794c1929  kiconthemes-5.109.0.tar.xz
b108a7c58d5e63248e4043a6e2d5cd3d  kjobwidgets-5.109.0.tar.xz
37840b5eff97d1cb6105a276a14f6982  knotifications-5.109.0.tar.xz
520e1568726e76671fdbc3c5180d1e12  ktextwidgets-5.109.0.tar.xz
d52b000182f1530befcb9023db853620  kxmlgui-5.109.0.tar.xz
e230f6ef16e636ed103bd30ee9256d9d  kbookmarks-5.109.0.tar.xz
fb90ee7dad377b5fe11cc5a60c0721c5  kwallet-5.109.0.tar.xz
ab29c38a4efbb1c2a8ae844aae1482ea  kded-5.109.0.tar.xz
73fc6504264e620b0f9d0ba96c9d8ca4  kio-5.109.0.tar.xz
1d180f9106dd4e55346bf6b68f144594  kdeclarative-5.109.0.tar.xz
a3a6afb25c9d4dd0b027468c318763cb  kcmutils-5.109.0.tar.xz
4f555c40672c66df4c6d685bee6c5ae1  kirigami2-5.109.0.tar.xz
f355ac0e56c60d258c242bb5115c5879  syndication-5.109.0.tar.xz
9d263510d765e23f80558e8c83b113fd  knewstuff-5.109.0.tar.xz
d3b4d1a97b4c724a99b9920f3931db58  frameworkintegration-5.109.0.tar.xz
3ecd4e79453f9a8b378b87a63a698280  kinit-5.109.0.tar.xz
b65f54d2f7b5c7b54926f147114c3ab4  kparts-5.109.0.tar.xz
7111af3ca1d17b3b085513bf4067557e  kactivities-5.109.0.tar.xz
#929785c0f7a5594f4eac30c2f40645d5  kdewebkit-5.109.0.tar.xz
e970abb368b963a075f10f2ef26a95c0  syntax-highlighting-5.109.0.tar.xz
9405ebf54d7c675a39ef00afc81e472d  ktexteditor-5.109.0.tar.xz
cd659fa310535c476d3dcb7cba5499f8  kdesignerplugin-5.109.0.tar.xz
b9ce7efb96ee1f88f3d8c505a3c8e8b1  kwayland-5.109.0.tar.xz
08ec7edef427f681dfb3b1533ab0d880  plasma-framework-5.109.0.tar.xz
5e66a95d9998d4874aa1d9004b2bdc50  modemmanager-qt-5.109.0.tar.xz
e66ebdbc5547881e8562bab6a02ce8bb  kpeople-5.109.0.tar.xz
a1af96f8f082e4f9fca0ce476528b6ae  kxmlrpcclient-5.109.0.tar.xz
91a2f23a8a88b7ac17c94f70b50a6b71  bluez-qt-5.109.0.tar.xz
c796f5097f2185c33a61d8e32a296066  kfilemetadata-5.109.0.tar.xz
2d0a01f671615c6a1559eaa4d73193c2  baloo-5.109.0.tar.xz
#40721040f8c42a60450a94b7975d18e3  breeze-icons-5.109.0.tar.xz
#cb7872cff65fe1f62815339f40c639d8  oxygen-icons5-5.109.0.tar.xz
f09fd15d79bca7374094ea1126e6aef6  kactivities-stats-5.109.0.tar.xz
7c7a7502b568b7c3c45f7c43cefa92e7  krunner-5.109.0.tar.xz
00d1282f4dd770085cf2d72371cd3388  prison-5.109.0.tar.xz
12f3d0a80404bcd1111f5164d8e9dfd0  qqc2-desktop-style-5.109.0.tar.xz
4ca7a857b39d805ba61c94d17cbe6862  kjs-5.109.0.tar.xz
06545a811be0293dc9a79d65ce265a4e  kdelibs4support-5.109.0.tar.xz
2c1d3e7d57e6793e7bfbcd7424a199bc  khtml-5.109.0.tar.xz
b9ab15ac90dece7fa6b623be95ef40f9  kjsembed-5.109.0.tar.xz
405558700e5518f7e25eb252c0027410  kmediaplayer-5.109.0.tar.xz
e647b806ba546ea010b304f707a9d696  kross-5.109.0.tar.xz
0fc9e9fda1d3a55fd61f655a1dec0b39  kholidays-5.109.0.tar.xz
08946785eb0fa4a3d5b1ac174433f9a7  purpose-5.109.0.tar.xz
c4faaf8fa6587a0b80a0618810e9d41a  kcalendarcore-5.109.0.tar.xz
588289805cb18731d9b73ea86236b458  kcontacts-5.109.0.tar.xz
08b2dcd842dfcda7e406d16646b082bb  kquickcharts-5.109.0.tar.xz
8612d9d00ff9daeb507548ed9150d00d  knotifyconfig-5.109.0.tar.xz
d4e4e96920394601cf599ed8e36bd635  kdav-5.109.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.109.0 e oxygen-icons5-5.109.0. O pacote kdewebkit pode ser construído se o pacote externo QtWebkit tiver sido construído.

Instalação do KDE Frameworks

Nota

Ao instalar vários pacotes em um conjunto de comandos sequenciais, a instalação precisa ser feita como o(a) usuário(a) root. Existem três opções gerais que podem ser usadas para fazer isso:

  1. Executar o conjunto inteiro de comandos sequenciais como o(a) usuário(a) root (não recomendado).

  2. Usar o comando sudo originário do pacote Sudo-1.9.14p3.

  3. Usar su -c "argumentos do comando" (aspas exigidas) que solicitará a senha do(a) root para cada iteração do loop.

Uma maneira de lidar com essa situação é a de se criar uma função curta do bash que selecione automaticamente o método apropriado. Depois que o comando for configurado no ambiente, ele não precisará ser configurado novamente.

as_root()
{
  if   [ $EUID = 0 ];        then $*
  elif [ -x /usr/bin/sudo ]; then sudo $*
  else                            su -c \\"$*\\"
  fi
}

export -f as_root

Cuidado

Se instalar em "/opt" e existir um "/opt/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|^.*/||')          # Diretório de remoção
    packagedir=$(echo $pkg|sed 's|\.tar.*||') # Diretório de Pacote

    name=$(echo $pkg|sed 's|-5.*$||') # Isolar nome de 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.109.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.109.0
ln -sfvn kf5-5.109.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.109.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-23.08.0

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "Ark"

Exigidas

KDE Frameworks-5.109.0 e libarchive-3.7.1

Recomendadas

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

Introdução ao Kdenlive

O pacote "Kdenlive" é um editor de vídeos baseado em "KF5".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "Kdenlive"

Exigidas

KDE Frameworks-5.109.0, mlt-7.18.0 e v4l-utils-1.24.1 (tempo de execução)

Recomendadas

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

Introdução ao KMix

O pacote "KMix" contém um aplicativo Misturador de Som baseado em "KF5".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "KMix"

Exigidas

KDE Frameworks-5.109.0

Recomendadas
Opcionais

libcanberra-0.30 e PulseAudio-16.1

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

Introdução ao kio-extras

O pacote "kio-extras" contém componentes adicionais para aumentar a funcionalidade dos recursos e abstrações de acesso à rede de intercomunicação do "KDE".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "kio-extras"

Exigidas

kdsoap-2.1.1 e KDE Frameworks-5.109.0

Opcionais

libtirpc-1.3.3, Samba-4.18.6, taglib-1.13.1, libmtp, libssh e OpenEXR

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

Introdução ao Khelpcenter

"Khelpcenter" é um aplicativo para mostrar a documentação dos Aplicativos do "KDE".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "Khelpcenter"

Exigidas

grantlee-5.3.1, KDE Frameworks-5.109.0, libxml2-2.10.4 e xapian-1.4.23

Recomendadas

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

Introdução ao Konsole

O pacote "Konsole" é um emulador de terminal baseado em "KF5".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Transferências Adicionais

Dependências do "Konsole"

Exigidas

KDE Frameworks-5.109.0

Instalação do Konsole

Nota

Em ambientes não "Plasma", a barra de rolagem do "konsole" e a alça dele não aparecem bem. Se desejado, [então] aplique o remendo opcional ao pacote:

patch -Np1 -i ../konsole-23.08.0-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-23.08.0

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "libkexiv2"

Exigidas

KDE Frameworks-5.109.0 e Exiv2-0.28.0

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

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "Okular"

Exigidas

KDE Frameworks-5.109.0

Recomendadas
Opcionais

qca-2.3.7, discount, DjVuLibre, kpimtextedit, libspectre (para suporte a "PostScript"), libchm, libepub e Mobipocket

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

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "libkdcraw"

Exigidas

KDE Frameworks-5.109.0 e libraw-0.21.1

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

Introdução ao Gwenview

"Gwenview" é um visualizador de imagens rápido e fácil de usar para o "KDE".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "Gwenview"

Exigidas

Exiv2-0.28.0, kimageannotator-0.6.1, KDE Frameworks-5.109.0 e Little CMS-2.14

Recomendadas
Opcionais

KF5Kipi

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

Introdução ao libkcddb

O pacote "libkcddb" contém uma biblioteca usada para recuperar metadados de "CD" de áudio a partir da Internet.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "libkcddb"

Exigidas

KDE Frameworks-5.109.0 e libmusicbrainz-5.1.0

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

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do "K3b"

Exigidas

KDE Frameworks-5.109.0, libkcddb-23.08.0, 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.10.0", que precisa, por esse motivo, ser instalado antes de executar o "k3b".

Recomendadas
Tempo de Execução Opcional

FFmpeg-6.0

Opcionais

FLAC-1.4.3, LAME-3.100, libmad-0.15.1b, libsndfile-1.2.2, libvorbis-1.3.7, libmusicbrainz-2.1.5 e Musepack (libmpcdec)

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/23.08.0/src.

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 corretamente usando uma plataforma LFS 12.0.

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

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: Veja-se Abaixo

  • Tamanho da transferência: 258 MB

  • Espaço em disco estimado exigido: 1,7 GB (419 MB instalado)

  • Tempo de construção estimado: 19 UPC (usando paralelismo = 4)

Dependências do "Plasma" 5

Exigidas

GTK+-2.24.33, GTK+-3.24.38, KDE Frameworks-5.109.0, kuserfeedback-1.2.0, libpwquality-1.4.5, libqalculate-4.7.0, libxkbcommon-1.5.0, Mesa-23.1.6 construído com Wayland-1.22.0, NetworkManager-1.44.0, pipewire-0.3.77, PulseAudio-16.1, qca-2.3.7, sassc-3.6.2, taglib-1.13.1 e xcb-util-cursor-0.1.4

Recomendadas
Recomendadas (tempo de execução)
Opcionais

GLU-9.0.3, ibus-1.5.28, qtwebengine-5.15.15, 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.15 é exigido para aura-browser. Também é opcional para dois outros pacotes: libksysguard e kdeplasma-addons. Se QtWebEngine for instalado posteriormente, 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 Editor(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.27.7/
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.27.7.md5 << "EOF"
f8e36636128efc0172b0664df372f350  kdecoration-5.27.7.tar.xz
0f40e7e4ef0675cf06afc828c6056821  libkscreen-5.27.7.tar.xz
fdbbd274867d8013631eb66f889da983  libksysguard-5.27.7.tar.xz
6d0358ed7bbb27557c073cfce675120f  breeze-5.27.7.tar.xz
7dac534103b595e861fb923e0a46af8a  breeze-gtk-5.27.7.tar.xz
27839d93e7bf42bd8e6e9d822572a3d3  layer-shell-qt-5.27.7.tar.xz
56e13a523dc2b27dd2fe7d17cf87c427  kscreenlocker-5.27.7.tar.xz
1806b24c107c30a0144be0c58361c391  oxygen-5.27.7.tar.xz
b3b25a757de32befe4c282ebc9b928c3  kinfocenter-5.27.7.tar.xz
f992f11ed7704e94809f4a609b444074  kwin-5.27.7.tar.xz
5aa3a8e2e8c97b182cb15090f9149831  plasma-workspace-5.27.7.tar.xz
2b3c139e30eaaf4cf42706c9e6212ca5  plasma-disks-5.27.7.tar.xz
a347a0848863114e96ca25868b1d2483  bluedevil-5.27.7.tar.xz
77731f7530552c096785e938554c5c0e  kde-gtk-config-5.27.7.tar.xz
19a17f02655872c827380bd1fc485b50  khotkeys-5.27.7.tar.xz
4777cae88cb32e1dc77d6765f3cf17e3  kmenuedit-5.27.7.tar.xz
a9618c0aa86cf8d0186e146aef644cd7  kscreen-5.27.7.tar.xz
d75c043ef114b2b590f8ede12bb86a24  kwallet-pam-5.27.7.tar.xz
9c4ebb3d608c08c83b87a880b731ef11  kwayland-integration-5.27.7.tar.xz
2d04936cfcdb3da0ecab6b9c7f83339e  kwrited-5.27.7.tar.xz
ea10ad5ac86ad2a1f1c0dfdb28918ad8  milou-5.27.7.tar.xz
1640a01420f5885d87e55a3fc3ca8410  plasma-nm-5.27.7.tar.xz
24cdd5610e2b02c774486cdeaf0074f5  plasma-pa-5.27.7.tar.xz
4d941372e2a0ba9fe4a42a668dfd6aeb  plasma-workspace-wallpapers-5.27.7.tar.xz
003d40545b13d58a2fa024236c92c18f  polkit-kde-agent-1-5.27.7.tar.xz
2708af1b47a164321111220f3e3fb5f8  powerdevil-5.27.7.tar.xz
7f7d2bea26b4d825c9a6e8d57e400a4a  plasma-desktop-5.27.7.1.tar.xz
#b8f2c72d4d0ffd37573c1f949e8604aa  plasma-desktop-5.27.7.tar.xz
f66aefab6b7b3115ead7cf3966d6e2c6  kgamma5-5.27.7.tar.xz
614a24e70dfdcbf225047951d1bb35af  ksshaskpass-5.27.7.tar.xz
#8e9460adae337baab8d80da3422f9e34  plasma-sdk-5.27.7.1.tar.xz
#69bcb008dc0c22bb9dad2f990778b46e  plasma-sdk-5.27.7.5.27.7.1.tar.xz
#cba2b18c587dff393bd232d61a35046d  plasma-sdk-5.27.7.tar.xz
293fa8cd57834e07c719a055e2b47fbe  sddm-kcm-5.27.7.tar.xz
#7857d8972a9cc45cc3b672a6d5ff2b12  discover-5.27.7.tar.xz
#9727481d29a7468420cb1a37a0b36e9e  breeze-grub-5.27.7.tar.xz
#157416774eb4bfc57a4e2caf4512f069  breeze-plymouth-5.27.7.tar.xz
cdda9f9d374615768d8a324dae92ad1d  kactivitymanagerd-5.27.7.tar.xz
3e8fd694b222d4d6c3d4e2b952099fb0  plasma-integration-5.27.7.tar.xz
#7bd722f2799f4b1c562be46c5b2d0da1  plymouth-kcm-5.27.7.tar.xz
26e40eaf358dc02d71ab5cb511a5b3a8  xdg-desktop-portal-kde-5.27.7.tar.xz
ce2a9be64095829d124d4f83c14a464c  drkonqi-5.27.7.tar.xz
410818deea59fc12aa3ed155e350e931  plasma-vault-5.27.7.tar.xz
4636852897f802e64501fbae5e3dfb24  plasma-browser-integration-5.27.7.tar.xz
3febab89d2fca2e67271d5e35723d7be  kde-cli-tools-5.27.7.tar.xz
799ec2ab0012e47d2b1660affe5f333e  systemsettings-5.27.7.tar.xz
fa9f2208c27d8a3e99c0cbb113087338  plasma-thunderbolt-5.27.7.tar.xz
#c4dbf6737cc9d8d3396214d4bed14abf  plasma-nano-5.27.7.tar.xz
#74a1ec9c76b979fb8a3906204c93add4  plasma-mobile-5.27.7.tar.xz
ca0a794b2d65c9c763d0f932b2bd9c1e  plasma-firewall-5.27.7.tar.xz
4f3a9803e3741521b1867303b179670a  plasma-systemmonitor-5.27.7.tar.xz
29fb63dc5c266b3fe0a2e849f1a1db28  qqc2-breeze-style-5.27.7.tar.xz
2e3689a958a72aa1a09aa6edf471ce11  ksystemstats-5.27.7.tar.xz
08434c4829aefd689c877fe84baa5ad6  oxygen-sounds-5.27.7.tar.xz
#2b1b01328d062d6d9c3d92daaa26d13c  aura-browser-5.27.7.tar.xz
a32fedd93e3ecef504ea28ec27cbfd55  kdeplasma-addons-5.27.7.tar.xz
1d759ab0bb02f630385e4dc267aaef6e  kpipewire-5.27.7.tar.xz
553afd4e952b601147ca868b7129303d  plank-player-5.27.7.tar.xz
51ad32e45ad4a0f5291d1a9ce4efa0f2  plasma-bigscreen-5.27.7.tar.xz
fb25df16ef388f7dbfc163911e7828be  plasma-remotecontrollers-5.27.7.tar.xz
#507a8d13920b160b4683b093e90f6088  flatpak-kcm-5.27.7.tar.xz
#9eadbc5ec19e2122f81742e0f38941f7  plasma-welcome-5.27.7.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 é 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 software. O pacote plasma-nano é usado para sistemas embarcados e o plasma-mobile fornece funcionalidade de telefone para o Plasma. O pacote aura-browser exige qtwebengine-5.15.15. O pacote de descoberta exige o pacote externo appstream-qt. O pacote plasma-welcome exige o pacote externo kaccounts-integration. O pacote flatpack-kcm é para gerenciar o suporte de aplicativos flatpack.

Instalação do Plasma5

Nota

Ao instalar vários pacotes em um conjunto de comandos sequenciais, a instalação precisa ser feita como o(a) usuário(a) root. Existem três opções gerais que podem ser usadas para fazer isso:

  1. Executar o conjunto inteiro de comandos sequenciais como o(a) usuário(a) root (não recomendado).

  2. Usar o comando sudo originário do pacote Sudo-1.9.14p3.

  3. Usar su -c "argumentos do comando" (aspas exigidas) que solicitará a senha do(a) root para cada iteração do loop.

Uma maneira de lidar com essa situação é a de se criar uma função curta do bash que selecione automaticamente o método apropriado. Depois que o comando for configurado no ambiente, ele não precisará ser configurado novamente.

as_root()
{
  if   [ $EUID = 0 ];        then $*
  elif [ -x /usr/bin/sudo ]; then sudo $*
  else                            su -c \\"$*\\"
  fi
}

export -f as_root

Primeiro, inicie um sub "shell" que sairá em caso de erro:

bash -e

Instale todos os pacotes executando os seguintes comandos:


while read -r line; do

    # 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.27.7.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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do Gcr

Exigidas

GLib-2.76.4, libgcrypt-1.10.2 e p11-kit-0.25.0

Recomendadas
Opcionais

Gi-DocGen-2023.1 e Valgrind-3.21.0

Instalação do Gcr

Instale o Gcr executando os seguintes comandos:

sed -i 's:"/desktop:"/org:' schema/*.xml &&

mkdir build &&
cd    build &&

meson setup --prefix=/usr       \
            --buildtype=release \
            -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.38. 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 você tiver o Gi-DocGen-2023.1 instalado e desejar reconstruir e instalar a documentação da API, um comando meson configure reconfigurará essa opção.

Conteúdo

Aplicativo Instalado: gcr-viewer
Bibliotecas Instaladas: libgck-1.so, libgcr-base-3.so e libgcr-ui-3.so
Diretórios Instalados: /usr/include/gck-1, /usr/include/gcr-3 e /usr/share/gtk-doc/html/{gcr,gck}

Descrições Curtas

gcr-viewer

é usado para visualizar certificados e arquivos de chave

libgck-1.so

contém ligações GObject para PKCS#11

Gcr-4.1.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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do Gcr

Exigidas

GLib-2.76.4, libgcrypt-1.10.2 e p11-kit-0.25.0

Recomendadas
Opcionais

Gi-DocGen-2023.1 e Valgrind-3.21.0

Instalação do Gcr

Nota

Ambos, gcr-3 e gcr-4, são co instaláveis. Essa versão do pacote é usada para suportar aplicativos GTK-4, como o gnome-shell-44.3e Epiphany-44.6.

Instale o Gcr executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --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.1.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.12.0. 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 você tiver o Gi-DocGen-2023.1 instalado e desejar reconstruir e instalar a documentação da API, um comando meson configure reconfigurará essa opção.

Conteúdo

Aplicativo Instalado: gcr-viewer-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-44.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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do GSettings Desktop Schemas

Exigidas

gobject-introspection-1.76.1

Instalação do GSettings Desktop Schemas

Instale o GSettings Desktop Schemas executando os seguintes comandos:

sed -i -r 's:"(/system):"/org/gnome\1:g' schemas/*.in &&

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

ninja install

Nota

Se você instalou o pacote em teu sistema usando um método DESTDIR, /usr/share/glib-2.0/schemas/gschemas.compiled não foi atualizado/criado. Crie (ou atualize) o arquivo usando o seguinte comando como o(a) usuário(a) root:

glib-compile-schemas /usr/share/glib-2.0/schemas

Explicações do Comando

sed ... schemas/*.in: Esse comando corrige algumas entradas obsoletas nos modelos de esquema.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Diretório Instalado: /usr/include/gsettings-desktop-schemas e /usr/share/GConf/gsettings

libsecret-0.21.0

Introdução ao libsecret

O pacote libsecret contém uma biblioteca baseada em GObject para acessar a API de Serviço Secreto.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do libsecret

Exigidas

GLib-2.76.4

Recomendadas
Opcionais

Gi-DocGen-2023.1 e docbook-xml-4.5, docbook-xsl-nons-1.79.2, libxslt-1.1.38 (para construir páginas de manual) e Valgrind-3.21.0 (pode ser usado em testes)

Opcionais (exigidas para a suíte de teste)

D-Bus Python-1.3.2, Gjs-1.76.2, PyGObject-3.44.1 (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.

Instalação do libsecret

Instale o libsecret executando os seguintes comandos:

mkdir bld &&
cd    bld &&

meson setup --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.

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 você tiver o Gi-DocGen-2023.1 instalado e desejar reconstruir e instalar a documentação da API, um comando meson configure reconfigurará essa opção.

-Dmanpage=false: Use essa chave se você não tiver instalado os pacotes libxslt-1.1.38 e DocBook.

-Dgcrypt=false: Use essa chave se você não tiver instalado a dependência recomendada da libgcrypt-1.10.2.

Conteúdo

Aplicativo Instalado: secret-tool
Biblioteca Instalada: libsecret-1.so
Diretórios Instalados: /usr/include/libsecret-1 e /usr/share/doc/libsecret-0.21.0

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do rest

Exigidas

JSON-GLib-1.6.6, libsoup-3.4.2 e make-ca-1.12

Recomendadas
Opcionais

Gi-DocGen-2023.1, libadwaita-1.3.4 e gtksourceview5-5.8.0 (para construir a demonstração) e Vala-0.56.11

Instalação do rest

Instale o rest executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --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 você tiver o Gi-DocGen-2023.1 instalado e desejar reconstruir e instalar a documentação da API, um comando meson configure reconfigurará essa opção.

-Dexamples=false: Remova essa opção se libadwaita-1.3.4 e gtksourceview5-5.8.0 estiverem instalados e você desejar construir o aplicativo de demonstração fornecido por esse pacote.

-Dvapi=true: Use essa chave se Vala-0.56.11 estiver instalado e você desejar construir as ligações Vala fornecidas por esse pacote.

Conteúdo

Aplicativos Instalados: librest-demo (opcional)
Bibliotecas Instaladas: librest-1.0.so e librest-extras-1.0.so
Diretórios Instalados: /usr/include/rest-1.0 e /usr/share/gtk-doc/html/rest-1.0

Descrições Curtas

librest-demo

fornece um exemplo de como usar as funções de consulta da API da Web RESTful

librest-1.0.so

contém as funções de consulta da API da Web RESTful

librest-extras-1.0.so

contém funções extras de consulta da API da Web RESTful

totem-pl-parser-3.26.6

Introdução ao Totem PL Parser

O pacote Totem PL Parser contém uma biblioteca simples baseada em GObject usada para analisar vários formatos de lista de reprodução.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do Totem PL Parser

Recomendadas
Opcionais

CMake-3.27.2, GTK-Doc-1.33.2, Gvfs-1.50.6 (para alguns testes), LCOV e libquvi >= 0.9.1 e libquvi-scripts - se eles estiverem instalados, então lua-socket (git) é necessário para os testes

Nota

Uma conexão com a Internet é necessária para alguns testes desse pacote.

Instalação do Totem PL Parser

Instale o Totem PL Parser executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Para testar os resultados, emita: ninja test. O teste chamado parser é conhecido por falhar.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: libtotem-plparser-mini.so e libtotem-plparser.so
Diretórios Instalados: /usr/include/totem-pl-parser e /usr/share/gtk-doc/html/totem-pl-parser

Descrições Curtas

libtotem-plparser.so

é a biblioteca do analisador de lista de reprodução do Totem

libtotem-plparser-mini.so

é a biblioteca do analisador de lista de reprodução do Totem, versão mini

VTE-0.72.2

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP): https://gitlab.gnome.org/GNOME/vte/-/archive/0.72.2/vte-0.72.2.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 1954cae9b70ce35bdf1f383b4ddc7d32

  • Tamanho da transferência: 620 KB

  • Espaço em disco estimado exigido: 16 MB (com testes)

  • Tempo de construção estimado: 0,3 UPC (usando paralelismo = 4; com testes)

Dependências do VTE

Exigidas

GTK+-3.24.38, libxml2-2.10.4 e pcre2-10.42

Recomendadas
Opcionais

FriBidi-1.0.13, Gi-DocGen-2023.1 e GTK-4.12.0

Instalação do VTE

Instale o VTE executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --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.72.2'@" \
    -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.72.2

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do Yelp XSL

Exigidas

libxslt-1.1.38 e itstool-2.0.7

Instalação do Yelp XSL

Instale o Yelp XSL executando os seguintes comandos:

./configure --prefix=/usr

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Diretório Instalado: /usr/share/yelp-xsl

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do GConf

Exigidas

dbus-glib-0.112 e libxml2-2.10.4

Recomendadas
Opcionais

OpenLDAP-2.6.6

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do Geocode GLib

Exigidas

JSON-GLib-1.6.6 e libsoup-3.4.2

Recomendadas
Opcionais

GTK-Doc-1.33.2

Instalação do Geocode GLib

Instale o Geocode GLib executando os seguintes comandos:

mkdir build                   &&
cd    build                   &&

meson setup --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.76.2

Introdução ao Gjs

Gjs é um conjunto de ligações Javascript para GNOME.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do Gjs

Exigidas

Cairo-1.17.6, dbus-1.14.8, gobject-introspection-1.76.1 e JS-102.13.0

Recomendadas (exigidas para GNOME)
Opcionais

sysprof-3.48.0, Valgrind-3.21.0 (para testes), DTrace, LCOV e Systemtap

Instalação do Gjs

Instale o Gjs executando os seguintes comandos:

mkdir gjs-build &&
cd    gjs-build &&

meson setup --prefix=/usr          \
            --buildtype=release    \
            --wrap-mode=nofallback \
            ..                     &&
ninja

Para testar os resultados, emita: ninja test.

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.48.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.4

Introdução ao gnome-autoar

O pacote gnome-autoar fornece uma estrutura para extração, compactação e gerenciamento automático de arquivamentos.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do gnome-autoar

Exigidas

libarchive-3.7.1 e GTK+-3.24.38

Recomendadas
Opcionais

GTK-Doc-1.33.2 (para construir documentação)

Instalação do gnome-autoar

Instale o gnome-autoar executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr       \
            --buildtype=release \
            -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-44.0

Introdução ao GNOME Desktop

O pacote GNOME Desktop contém uma biblioteca que fornece uma API compartilhada por vários aplicativos na Área de Trabalho do GNOME.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do GNOME Desktop

Exigidas

gsettings-desktop-schemas-44.0, GTK+-3.24.38, GTK-4.12.0, ISO Codes-4.15.0, itstool-2.0.7, libseccomp-2.5.4, libxml2-2.10.4 e xkeyboard-config-2.39

Recomendadas
Opcionais

GTK-Doc-1.33.2

Instalação do GNOME Desktop

Instale o GNOME Desktop executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr       \
            --buildtype=release \
            ..                  &&
ninja

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

-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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do GNOME Menus

Exigidas

GLib-2.76.4

Recomendadas

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.6.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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Instalação do GNOME Video Effects

Instale o GNOME Video Effects executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

ninja install

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Diretório Instalado: /usr/share/gnome-video-effects

gnome-online-accounts-3.48.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 corretamente usando uma plataforma LFS 12.0.

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.11 e WebKitGTK-2.41.91

Recomendadas
Opcionais

GTK-Doc-1.33.2, MIT Kerberos V5-1.21.2 e Valgrind-3.21.0

Instalação do GNOME Online Accounts

Nota

A Chave de API do Google e os tokens OAuth abaixo são específicos do LFS. Se usar estas instruções para outra distribuição ou se você pretende distribuir cópias binárias do logiciário usando estas instruções, por favor, obtenha as tuas próprias chaves seguindo as instruções localizadas em https://www.chromium.org/developers/how-tos/api-keys.

Instale o GNOME Online Accounts executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup                                           \
      --prefix=/usr                                   \
      --buildtype=release                             \
      -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.21.2 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.16

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do Grilo

Exigidas

GLib-2.76.4 e libxml2-2.10.4

Recomendadas
Opcionais

DocBook-utils-0.6.14, liboauth-1.0.3 e GTK-Doc-1.33.2

Instalação do Grilo

Instale o Grilo executando os seguintes comandos:

mkdir build &&
cd    build    &&

meson setup --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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do libchamplain

Exigidas

clutter-gtk-1.8.4, GTK+-3.24.38, libsoup-3.4.2 e SQLite-3.42.0

Recomendadas
Opcionais

GTK-Doc-1.33.2 e libmemphis

Instalação do libchamplain

Instale o libchamplain executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

Conteúdo

Aplicativos Instalados: 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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do libgdata

Exigidas

libsoup-2.74.3, gnome-online-accounts-3.48.0, GTK+-3.24.38, JSON-GLib-1.6.6 e Vala-0.56.11

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)

Instalação do libgdata

Instale o libgdata executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do libgee

Exigidas

GLib-2.76.4

Recomendadas
Opcionais

Vala-0.56.11 (com Valadoc) e LCOV

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do libgtop

Exigidas

GLib-2.76.4 e Bibliotecas do Xorg

Recomendadas
Opcionais

GTK-Doc-1.33.2

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do libgweather

Exigidas

geocode-glib-3.26.4, GTK+-3.24.38, libsoup-3.4.2 e PyGObject-3.44.1

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-16.0.5 (para formato clang) e pylint

Instalação do libgweather

Instale o libgweather executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --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 você tiver o Gi-DocGen-2023.1 instalado e desejar reconstruir e instalar a documentação da API, um comando meson configure reconfigurará essa opção.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: libgweather-4.so
Diretórios Instalados: /usr/lib/libgweather-4, /usr/include/libgweather-4.0, /usr/share/gtk-doc/html/libgweather-4.0 (opcional) e /usr/share/libgweather-4

Descrições Curtas

libgweather-4.so

contém funções que permitem a recuperação de informações meteorológicas

libpeas-1.36.0

Introdução ao libpeas

libpeas é um mecanismo de plug-ins baseado em GObject e tem como objetivo dar a cada aplicativo a chance de assumir a própria extensibilidade dele.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do libpeas

Exigidas

gobject-introspection-1.76.1 e GTK+-3.24.38

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

Instalação do libpeas

Instale o libpeas executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr          \
            --buildtype=release    \
            --wrap-mode=nofallback \
            ..                     &&
ninja

Se você tiver o Gi-DocGen-2023.1 instalado e desejar construir a documentação da API para esse pacote, emita:

sed "/docs_dir =/s@\$@/ 'libpeas-1.36.0'@" \
    -i ../docs/reference/meson.build       &&
meson configure -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.5

Introdução ao libshumate

O pacote libshumate contém uma pequena engenhoca GTK-4 para exibir mapas.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do libshumate

Exigidas

GTK-4.12.0 e libsoup-3.4.2

Recomendadas
Opcionais

Gi-DocGen-2023.1

Instalação do libshumate

Instale o libshumate executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr       \
            --buildtype=release \
            -Dgtk_doc=false     \
            ..                  &&
ninja

Se você tiver Gi-DocGen-2023.1 instalado e desejar construir a documentação da API para esse pacote, emita:

sed 's/lib_version/version/' -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.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: libshumate-1.0.so
Diretórios Instalados: /usr/include/shumate-1.0 e /usr/share/doc/libshumate-1.0.5 (opcional)

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do libwnck

Exigidas

GTK+-3.24.38

Recomendadas
Opcionais

GTK-Doc-1.33.2

Instalação do libwnck

Instale o libwnck executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

-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.48.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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do Evolution Data Server

Exigidas

libical-3.0.16, libsecret-0.21.0, nss-3.92 e SQLite-3.42.0

Recomendadas
Opcionais

Base de Dados Berkeley-5.3.28, GTK-Doc-1.33.2, MIT Kerberos V5-1.21.2, um MTA (que forneça um comando sendmail), OpenLDAP-2.6.6 e libphonenumber

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               \
      -Wno-dev -G Ninja ..           &&
ninja

Agora, como o(a) usuário(a) root:

ninja install

Para testar os resultados, emita: ninja test.

Explicações do Comando

-DENABLE_VALA_BINDINGS=ON: Essa chave permite construir as ligações Vala. Remova se você não tiver Vala-0.56.11 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.42.0 é usado para operação normal.

-DENABLE_OAUTH2_WEBKITGTK4=OFF: Use essa chave se você não construiu WebKitGTK-2.41.91 com GTK-4.

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

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do Tracker

Exigidas

JSON-GLib-1.6.6, libseccomp-2.5.4 e Vala-0.56.11

Recomendadas
Opcionais

asciidoc-10.2.0, Graphviz-8.1.0, libsoup-2.74.3, bash-completion e libstemmer

Instalação do Tracker

Corrija o local para instalar a documentação:

mv docs/reference/libtracker-sparql/doc/{Tracker-3.0,tracker-3.5.3} &&
sed '/docs_name/s/Tracker-3.0/tracker-3.5.3/' \
    -i docs/reference/libtracker-sparql/meson.build

Instale o Tracker executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr       \
            --buildtype=release \
            -Dman=false         \
            ..                  &&
ninja

Agora, como o(a) usuário(a) root:

ninja install

Para testar os resultados, emita: meson configure -Ddebug=true && ninja test. A suíte de teste deveria ser executada a partir de uma sessão gráfica. Um teste, tracker: fts / fts, é conhecido por falhar devido a uma incompatibilidade com SQLite-3.42.

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 o asciidoc-10.2.0 instalado e desejar gerar e instalar as páginas de manual.

meson configure -Ddebug=true: Esse comando habilita algumas verificações de depuração necessárias para a suíte de teste. Nós não queremos habilitá-las para as bibliotecas e aplicativos instaladas do Tracker 3, de forma que executamos a suíte de teste depois da instalação.

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/doc/Tracker-3.0 (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.5.2

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do Tracker-miners

Exigidas

gst-plugins-base-1.22.5, Tracker-3.5.3, Exempi-2.6.4 e gexiv2-0.14.2

Recomendadas
Opcionais

asciidoc-10.2.0, CMake-3.27.2, DConf-0.40.0, FFmpeg-6.0, libgsf-1.14.50, NetworkManager-1.44.0, taglib-1.13.1, totem-pl-parser-3.26.6, UPower-1.90.2, libcue, libitpcdata, libosinfo e gupnp

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 setup --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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do gsound

Exigidas

libcanberra-0.30

Recomendadas
Opcionais

GTK-Doc-1.33.2 (para gerar documentação)

Instalação do GSound

Instale o gsound executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

Conteúdo

Aplicativos Instalados: gsound-play
Bibliotecas Instaladas: libgsound.so
Diretórios Instalados: /usr/share/gtk-doc/html/gsound

Descrições Curtas

gsound-play

reproduz sons do sistema por intermédio da interface libgsound

libgsound.so

contém funções de API para reproduzir sons do sistema

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.76.4 fornece funcionalidade semelhante na linha de comando.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Transferências Adicionais

Dependências do DConf

Exigidas

dbus-1.14.8, GLib-2.76.4, GTK+-3.24.38 (para o editor), libhandy-1.8.2 (para o editor) e libxml2-2.10.4 (para o editor)

Recomendadas
Opcionais

GTK-Doc-1.33.2 e bash-completion

Instalação do DConf

Instale o DConf executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --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 setup --prefix=/usr --buildtype=release .. &&
ninja

Como o(a) usuário(a) root:

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

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

Introdução ao GNOME Backgrounds

O pacote GNOME Backgrounds contém uma coleção de arquivos gráficos que podem ser usados como planos de fundo no ambiente de Área de Trabalho do GNOME. Além disso, o pacote cria a adequada estrutura essencial de suporte e diretórios, de forma que você possa adicionar os teus próprios arquivos à coleção.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Instalação do GNOME Backgrounds

Instale o GNOME Backgrounds executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr ..

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

ninja install

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/share/backgrounds/gnome e /usr/share/gnome-background-properties

Descrições Curtas

GNOME Backgrounds

são imagens de plano de fundo para a Área de Trabalho do GNOME

Gvfs-1.50.6

Introdução ao Gvfs

O pacote Gvfs é um sistema de arquivos virtual de espaço de usuário(a) projetado para funcionar com as abstrações de E/S da biblioteca GIO da GLib.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do Gvfs

Exigidas

dbus-1.14.8, GLib-2.76.4, libusb-1.0.26 e libsecret-0.21.0

Recomendadas
Opcionais

Apache-2.4.57, Avahi-0.8, BlueZ-5.68, Fuse-3.16.1, gnome-online-accounts-3.48.0, GTK-Doc-1.33.2, libarchive-3.7.1, libgcrypt-1.10.2, libgdata-0.18.1, libxml2-2.10.4, libxslt-1.1.38, OpenSSH-9.4p1, Samba-4.18.6, gnome-desktop-testing (para testes), libbluray, libgphoto2, libimobiledevice, libmtp, libnfs e Twisted

Instalação do Gvfs

Instale o Gvfs executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup               \
      --prefix=/usr       \
      --buildtype=release \
      -Dfuse=false        \
      -Dgphoto2=false     \
      -Dafc=false         \
      -Dbluray=false      \
      -Dnfs=false         \
      -Dmtp=false         \
      -Dsmb=false         \
      -Ddnssd=false       \
      -Dgoa=false         \
      -Dgoogle=false      .. &&
ninja

A suíte de teste exige gnome-desktop-testing, que está além do escopo do BLFS.

Agora, como o(a) usuário(a) root:

ninja install

Nota

Se você instalou o pacote em teu sistema usando um método DESTDIR, /usr/share/glib-2.0/schemas/gschemas.compiled não foi atualizado/criado. Crie (ou atualize) o arquivo usando o seguinte comando como o(a) usuário(a) root:

glib-compile-schemas /usr/share/glib-2.0/schemas

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

-D<option>=false: Essas chaves são exigidas se a dependência correspondente não estiver instalada. Remova aquelas onde você tiver instalado o aplicativo correspondente e desejar usá-lo com o Gvfs. A opção dnssd exige avahi e, ambos, goa e google exigem GNOME Online Accounts. A opção google também exige libgdata.

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

Introdução ao gexiv2

gexiv2 é um envolucrador baseado em GObject em torno da biblioteca Exiv2.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do gexiv2

Exigidas

Exiv2-0.28.0

Recomendadas
Opcionais

GTK-Doc-1.33.2 (para documentação)

Instalação do gexiv2

Instale o gexiv2 executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Para testar os resultados, execute:

meson configure -Dtests=true &&
ninja test

Como o(a) usuário(a) root:

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: libgexiv2.so
Diretórios Instalados: /usr/include/gexiv2

Descrições Curtas

libgexiv2.so

fornece um envolucrador em torno da biblioteca Exiv2

Nautilus-44.2.1

Introdução ao Nautilus

O pacote Nautilus contém o gerenciador de arquivos do GNOME.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do Nautilus

Exigidas

bubblewrap-0.8.0, gexiv2-0.14.2, gnome-autoar-0.4.4, gnome-desktop-44.0, libadwaita-1.3.4, libcloudproviders-0.3.2, libnotify-0.8.2, libportal-0.6, libseccomp-2.5.4 e Tracker-3.5.3

Recomendadas
Opcionais

Gi-DocGen-2023.1

Recomendadas (tempo de execução)

Instalação do Nautilus

Corrija o local para instalar a documentação da API:

sed "/docdir =/s@\$@ / 'nautilus-44.2.1'@" -i meson.build

Instale o Nautilus executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --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.5.2 não estiver instalado. Um teste também é conhecido por atingir o tempo limite se o(a) usuário(a) executando os testes tiver um diretório inicial grande.

Agora, como o(a) usuário(a) root:

ninja install

Nota

Se você instalou o pacote em teu sistema usando um método DESTDIR, /usr/share/glib-2.0/schemas/gschemas.compiled não foi atualizado/criado. Crie (ou atualize) o arquivo usando o seguinte comando como o(a) usuário(a) root:

glib-compile-schemas /usr/share/glib-2.0/schemas

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

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

Introdução ao GNOME Bluetooth

O pacote GNOME Bluetooth contém ferramentas para gerenciar e manipular dispositivos Bluetooth usando a Área de Trabalho do GNOME.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do GNOME Bluetooth

Exigidas

GTK-4.12.0, gsound-1.0.3, libnotify-0.8.2 e UPower-1.90.2

Recomendadas
Opcionais

GTK-Doc-1.33.2 e dbusmock-0.29.1

Dependências de Tempo de Execução

BlueZ-5.68

Instalação do GNOME Bluetooth

Instale o GNOME Bluetooth executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Para testar os resultados, emita: ninja test.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

Conteúdo

Aplicativos Instalados: bluetooth-sendto
Bibliotecas Instaladas: libgnome-bluetooth-3.0.so e libgnome-bluetooth-ui-3.0.so
Diretórios Instalados: /usr/include/gnome-bluetooth-3.0 e /usr/share/gnome-bluetooth-3.0

Descrições Curtas

bluetooth-sendto

é um aplicativo GTK+ para transferência de arquivos via Bluetooth

libgnome-bluetooth-3.0.so

contém as funções de API do GNOME Bluetooth

gnome-keyring-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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do GNOME Keyring

Exigidas

dbus-1.14.8 e Gcr-3.41.1

Recomendadas
Opcionais

LCOV, libcap-ng, GnuPG-2.4.3 e Valgrind-3.21.0

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

Introdução ao GNOME Settings Daemon

O GNOME Settings Daemon é responsável por configurar vários parâmetros de uma Sessão do GNOME e dos aplicativos que executam sob ela.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do GNOME Settings Daemon

Exigidas

alsa-lib-1.2.9, colord-1.4.6, Fontconfig-2.14.2, Gcr-4.1.0, GeoClue-2.7.0, geocode-glib-3.26.4, gnome-desktop-44.0, Little CMS-2.14, libcanberra-0.30, libgweather-4.2.0, libnotify-0.8.2, libwacom-2.7.0, PulseAudio-16.1 e UPower-1.90.2

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-44.0, Mutter-44.3, dbusmock-0.29.1, umockdev-0.17.18 e Xvfb (para testes, originário de Xorg-Server-21.1.8 ou Xwayland-23.2.0)

Instalação do GNOME Settings Daemon

Instale o Gnome Settings Daemon executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --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-44, /usr/lib/gnome-settings-daemon-44 e /usr/share/gnome-settings-daemon

gnome-control-center-44.3

Introdução ao GNOME Control Center

O pacote GNOME Control Center contém o gerenciador de configurações do GNOME.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do GNOME Control Center

Exigidas

AccountsService-23.13.9, colord-gtk-0.3.0, gnome-online-accounts-3.48.0, gnome-settings-daemon-44.1, gsound-1.0.3, libgtop-2.40.0, libpwquality-1.4.5, MIT Kerberos V5-1.21.2, shared-mime-info-2.2 e UDisks-2.10.0

Recomendadas
Opcionais

Xvfb (originário de Xorg-Server-21.1.8 ou Xwayland-23.2.0) e dbusmock-0.29.1 (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-44.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.

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 setup --prefix=/usr --buildtype=release .. &&
ninja

Para testar os resultados, emita: GTK_A11Y=none ninja test. Observe que você precisa ter o módulo python-dbusmock instalado para a finalidade de que os testes completem com sucesso.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

-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-44.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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do Mutter

Exigidas

gnome-settings-daemon-44.1, graphene-1.10.8, libxcvt-0.1.2, libxkbcommon-1.5.0 e pipewire-0.3.77

Recomendadas
Recomendadas (exigidas para construir o compositor Wayland)
Opcionais

dbusmock-0.29.1 (exigido para testes), sysprof-3.48.0, Xorg-Server-21.1.8 (para sessões do X11)

Instalação do Mutter

Instale o Mutter executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr              \
            --buildtype=release        \
            -Dtests=false              \
            -Dprofiler=false           \
            ..                         &&
ninja

A suíte de teste exige 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.8 ou Xwayland-23.2.0. Você também deveria substituir -Dtests=false no comando meson por -Dtests=true -Dclutter_tests=false. 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]*/gtk4-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. Dois testes chamados cogl-test-framebuffer-get-bits-gl3 e native-unit são conhecidos por falharem. Uns poucos outros testes possivelmente falhem dependendo da configuração. 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=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: Impede a construção dos testes e remove um requisito difícil em xvfb-run.

-Dprofiler=false: Permite construir esse pacote sem Sysprof. Remova essa opção se você não tiver instalado o Sysprof e desejar analisar o desempenho de renderização do Mutter.

-Dtests=true -Dclutter_tests=false: Construir todos os testes, exceto os testes para a biblioteca Clutter enviada. Os testes Clutter são conhecidos por falharem com --buildtype=release.

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-12.so e libmutter-test-12.so (opcional)
Diretórios Instalados: /usr/{lib,include,libexec/installed-tests,share/{,installed-tests}}/mutter-12

Descrições Curtas

mutter

é um gerenciador de janelas de composição GTK+ baseado em Clutter

libmutter-12.so

contém as funções da API do Mutter

libmutter-test-12.so

contém as funções de API da suíte de teste do Mutter; essa biblioteca só é instalada se a suíte de teste desse pacote estiver habilitada e for necessária para a suíte de teste do gnome-shell

gnome-shell-44.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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do GNOME Shell

Exigidas

evolution-data-server-3.48.4, Gcr-4.1.0, Gjs-1.76.2, gnome-desktop-44.0, ibus-1.5.28, Mutter-44.3, Polkit-123, sassc-3.6.2 e startup-notification-0.12

Recomendadas
Opcionais

GTK-Doc-1.33.2 e bash-completion

Dependências Exigidas de Tempo de Execução

adwaita-icon-theme-44.0, DConf-0.40.0, GDM-44.1, gnome-backgrounds-44.0, gnome-control-center-44.3, libgweather-4.2.0 , Systemd-254 e telepathy-mission-control-5.16.6

Instalação do GNOME Shell

Instale o GNOME Shell executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr       \
            --buildtype=release \
            -Dtests=false       \
            ..                  &&
ninja

Para testar os resultados, você precisa remover a chave -Dtests=false e ter o Mutter-44.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-44.1 não estiver instalado. Um teste chamado CSS styling support é conhecido por falhar com algumas configurações de vários monitores.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

-Dtests=false: Remova essa chave se você quiser construir os testes. Mas, então, meson falhará se os testes Mutter-44.3 não estiverem instalados.

-Dextensions_tool=false: Essa chave permite construir esse pacote sem gnome-autoar-0.4.4 instalado.

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

Introdução ao GNOME Shell Extensions

O pacote GNOME Shell Extensions contém uma coleção de extensões que fornecem funcionalidades adicionais e opcionais para o GNOME Shell.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

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

Instalação do GNOME Shell Extensions

Instale o GNOME Shell Extensions executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr .. 

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

ninja install

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/share/gnome-shell/extensions

gnome-session-44.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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do GNOME Session

Exigidas

gnome-desktop-44.0, JSON-GLib-1.6.6, Mesa-23.1.6 , Systemd-254 (tempo de execução) e UPower-1.90.2

Opcionais

xmlto-0.0.28 e libxslt-1.1.38 com docbook-xml-4.5 e docbook-xsl-nons-1.79.2 (para construir a documentação)

Instalação do GNOME Session

Ao executar o GNOME sob o Wayland-1.22.0, as configurações de ambiente não são importadas para o(a) usuário(a) que usa o perfil do sistema. Os(As) desenvolvedores(as) do Wayland estão atualmente indecisos a respeito de um método padrão para fornecer configurações de ambiente de sistema para sessões de usuário(a). Para contornar essa limitação, execute o seguinte comando para fazer com que gnome-session use um shell de login:

sed 's@/bin/sh@/bin/sh -l@' -i gnome-session/gnome-session.in

Instale o GNOME Session executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
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{,-44.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-44.1 é 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-44.1 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-44.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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do GNOME Tweaks

Exigidas

GTK+-3.24.38, gsettings-desktop-schemas-44.0, libhandy-1.8.2, PyGObject-3.44.1 e sound-theme-freedesktop-0.8

Instalação do GNOME Tweaks

Instale o GNOME Tweaks executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release &&
ninja

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

Conteúdo

Aplicativos Instalados: gnome-tweaks
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/lib/python3.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-44.3

Introdução ao GNOME User Docs

O pacote GNOME User Docs contém documentação para o GNOME.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do GNOME User Docs

Exigidas

itstool-2.0.7 e libxml2-2.10.4

Instalação do GNOME User Docs

Instale o GNOME User Docs executando os seguintes comandos:

./configure --prefix=/usr &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/share/help/*/gnome-help e /usr/share/help/*/system-admin-guide

Yelp-42.2

Introdução ao Yelp

O pacote Yelp contém um navegador de ajuda usado para visualizar arquivos de ajuda.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do Yelp

Exigidas

gsettings-desktop-schemas-44.0, WebKitGTK-2.41.91 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.

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

Introdução ao Baobab

O pacote Baobab contém um analisador gráfico de árvore de diretórios.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do Baobab

Exigidas

adwaita-icon-theme-44.0, GTK-4.12.0, itstool-2.0.7, libadwaita-1.3.4 e Vala-0.56.11

Instalação do Baobab

Instale o Baobab executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

Conteúdo

Aplicativo Instalado: baobab
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/share/help/*/baobab

Descrições Curtas

baobab

é uma ferramenta gráfica usada para analisar o uso do disco

Brasero-3.12.3

Introdução ao Brasero

Brasero é um aplicativo usado para gravar 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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do Brasero

Exigidas

gst-plugins-base-1.22.5, itstool-2.0.7, libcanberra-0.30 e libnotify-0.8.2

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

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

Introdução ao Cheese

Cheese é usado para tirar fotografias e vídeos com efeitos gráficos divertidos.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do Cheese

Exigidas

clutter-gst-3.0.27, clutter-gtk-1.8.4, gnome-desktop-44.0, gst-plugins-bad-1.22.5, gst-plugins-good-1.22.5 (construído com v4l-utils-1.24.1), libcanberra-0.30 e libgudev-238

Recomendadas
Opcionais

GTK-Doc-1.33.2, libxslt-1.1.38, appstream-glib, LCOV e Nautilus SendTo

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 --->
  <*/M> Multimedia support --->                                  [MEDIA_SUPPORT]
    [*] Autoselect ancillary drivers (tuners, sensors, i2c, spi, frontends)
                                                  ...  [MEDIA_SUBDRV_AUTOSELECT]
    Media device types --->
      [*] Cameras and video grabbers                      [MEDIA_CAMERA_SUPPORT]
    Media drivers --->
      [ /*] Media USB Adapters --->                          [MEDIA_USB_SUPPORT]
        # Most modern USB camera needs this.
        # For other devices you need to figure it out yourself:
        < /*/M> USB Video Class (UVC)                          [USB_VIDEO_CLASS]

Instalação do Cheese

Instale o Cheese executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --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-44.3

Introdução ao EOG

EOG é um aplicativo usado para visualizar e catalogar arquivos de imagem na Área de Trabalho do GNOME. Ele também tem recursos básicos de edição.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do EOG

Exigidas

adwaita-icon-theme-44.0, Exempi-2.6.4, gnome-desktop-44.0, libhandy-1.8.2, libjpeg-turbo-3.0.0, libpeas-1.36.0 e shared-mime-info-2.2

Recomendadas
Opcionais

GTK-Doc-1.33.2 e libportal-0.6

Instalação do EOG

Instale o EOG executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --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-44.2.1 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-44.3

Introdução ao Evince

Evince é um visualizador de documentos para vários formatos de documentos. Ele suporta PDF, Postscript, DjVu, TIFF e DVI. Ele é útil para visualizar documentos de vários tipos usando um aplicativo simples em vez dos múltiplos visualizadores de documentos que existiam na Área de Trabalho do GNOME.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do Evince

Exigidas

adwaita-icon-theme-44.0, gsettings-desktop-schemas-44.0, GTK+-3.24.38, itstool-2.0.7, libhandy-1.8.2, libxml2-2.10.4 e OpenJPEG-2.5.0

Recomendadas
Opcionais

Cups-2.4.6 (para habilitar impressão, se o suporte estiver construído no GTK+ 3), gnome-desktop-44.0, gspell-1.12.2, gst-plugins-base-1.22.5, Gi-DocGen-2023.1, libgxps-0.3.2, libtiff-4.5.1, texlive-20230313 (ou install-tl-unx), DjVuLibre, libspectre e Synctex

Instalação do Evince

Instale o Evince executando os seguintes comandos:

mkdir build &&
cd    build &&

CPPFLAGS+=" -I/opt/texlive/2023/include" \
meson setup --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 "/docs_dir/s@\$@ / 'evince-44.3'@" -i ../help/meson.build &&
sed '/fatal-warnings/d' -i ../help/reference/*/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+=" -I/opt/texlive/...": Certifique-se de que o meson possa encontrar os cabeçalhos libkpathsea originários do TeXLive se estiver instalado. Isso não tem efeito em sistemas sem o TeXLive instalado.

--wrap-mode=nodownload: Essa chave desabilita a busca de qualquer dependência: o sistema de construção tenta buscar gi-docgen mesmo se -Dgtk_doc=false for passado.

-Dgtk_doc=false: Permite construir esse pacote sem Gi-DocGen-2023.1 instalado. Se você tiver o Gi-DocGen-2023.1 instalado e desejar reconstruir e instalar a documentação da API, 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.76.1 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.48.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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do Evolution

Exigidas

adwaita-icon-theme-44.0, evolution-data-server-3.48.4, Gcr-4.1.0, gnome-autoar-0.4.4, shared-mime-info-2.2 e WebKitGTK-2.41.91

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

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_HELP=OFF: Essa chave desabilita construir o manual desse pacote. Use essa chave se você não tiver instalado itstool-2.0.7.

-DWITH_OPENLDAP=OFF: Use essa chave se você não tiver instalado o OpenLDAP-2.6.6.

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 corretamente usando uma plataforma LFS 12.0.

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.38 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.10, UnZip-6.0 e Zip-3.0

Instalação do File Roller

Instale o File Roller executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr       \
            --buildtype=release \
            -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.38 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-44.0

Introdução ao GNOME Calculator

GNOME Calculator é uma calculadora gráfica poderosa com modos financeiro, lógico e científico. Ela usa um pacote de precisão múltipla para fazer a aritmética dela para fornecer um alto grau de precisão.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do GNOME Calculator

Exigidas

gtksourceview5-5.8.0, itstool-2.0.7, libadwaita-1.3.4, libgee-0.20.6, libhandy-1.8.2 e libsoup-3.4.2

Recomendadas

Instalação do GNOME Calculator

Instale o GNOME Calculator executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Para testar os resultados, emita: ninja test.

Agora, como o(a) usuário(a) root:

ninja install

Conteúdo

Aplicativos Instalados: gcalccmd e gnome-calculator
Biblioteca Instalada: libgcalc-2.so e libgci-1.so
Diretórios Instalados: /usr/include/gcalc-2, /usr/include/gci-2, /usr/share/devhelp/books/{GCalc-2,GCi-1} e /usr/share/help/*/gnome-calculator

Descrições Curtas

gnome-calculator

é a calculadora oficial da Área de Trabalho do GNOME

gcalccmd

é uma versão de linha de comando do gnome-calculator

gnome-color-manager-3.36.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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do GNOME Color Manager

Exigidas

colord-1.4.6, GTK+-3.24.38, 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)

Instalação do GNOME Color Manager

Se o DocBook-utils-0.6.14 estiver instalado, desabilite a instalação das páginas de manual para evitar uma falha de construção:

sed /subdir\(\'man/d -i meson.build

Instale o GNOME Color Manager executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Para testar os resultados, emita: ninja test. Os testes precisam ser executados a partir de uma sessão do X.

Agora, como o(a) usuário(a) root:

ninja install

Conteúdo

Aplicativos Instalados: gcm-import, gcm-inspect, gcm-picker e gcm-viewer
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/share/gnome-color-manager e /usr/share/help/*/gnome-color-manager

Descrições Curtas

gcm-import

permite que você importe perfis ICC fornecidos por fornecedores(as)

gcm-inspect

permite que você inspecione as configurações de gerenciamento de cores da tua sessão

gcm-picker

permite que você escolha cores exatas para uso por um colorímetro conectado

gcm-viewer

permite que você visualize propriedades de perfis ICC

gnome-disk-utility-44.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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do GNOME Disk Utility

Exigidas

gnome-settings-daemon-44.1, itstool-2.0.7, libdvdread-6.1.3, libhandy-1.8.2, libpwquality-1.4.5, libsecret-0.21.0 e UDisks-2.10.0

Opcionais

appstream-glib

Instalação do GNOME Disk Utility

Instale o GNOME Disk Utility executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do GNOME Logs

Exigidas

GTK-4.12.0, gsettings-desktop-schemas-44.0, itstool-2.0.7 e libadwaita-1.3.4

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.38 (para contruir páginas de manual), appstream-glib e dogtail

Instalação do GNOME Logs

Instale o GNOME Logs executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Para testar os resultados, emita: ninja test

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

Conteúdo

Aplicativos Instalados: gnome-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-44.3

Introdução ao GNOME Maps

GNOME Maps é um aplicativo de mapas para o GNOME.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do GNOME Maps

Exigidas

desktop-file-utils-0.26, GeoClue-2.7.0, geocode-glib-3.26.4, Gjs-1.76.2, libadwaita-1.3.4, libshumate-1.0.5, libgweather-4.2.0 e rest-0.9.1

Instalação do GNOME Maps

Instale o GNOME Maps executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Transferências Adicionais

Dependências do GNOME Nettool

Exigidas

GTK+-3.24.38, itstool-2.0.7 e libgtop-2.40.0

Dependências de Tempo de Execução

Utilitários BIND-9.18.18, Nmap-7.94, Net-tools-2.10, Traceroute-2.1.2 e Whois-5.4.3

Instalação do GNOME Nettool

Primeiro, adapte o GNOME Nettool às mudanças nos utilitários ping, ping6 e netstat:

patch -Np1 -i ../gnome-nettool-42.0-ping_and_netstat_fixes-1.patch

Em seguida, adicione uma correção para versões mais recentes do meson:

sed -i '/merge_file/s/(.*/(/' data/meson.build

Instale o GNOME Nettool executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release &&
ninja

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

ninja install

Conteúdo

Aplicativo Instalado: gnome-nettool
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/share/gnome-nettool e /usr/share/help/*/gnome-nettool

Descrições Curtas

gnome-nettool

é uma ferramenta de informação de rede de intercomunicação

gnome-power-manager-43.0

Introdução ao GNOME Power Manager

O pacote GNOME Power Manager contém uma ferramenta usada para informes acerca do gerenciamento de eletricidade do sistema.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do GNOME Power Manager

Exigidas

GTK+-3.24.38 e UPower-1.90.2

Opcionais

DocBook-utils-0.6.14 e appstream-glib

Instalação do GNOME Power Manager

Instale o GNOME Power Manager executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Para testar os resultados, emita: ninja test.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

Conteúdo

Aplicativos Instalados: gnome-power-statistics
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: Nenhum(a)

Descrições Curtas

gnome-power-statistics

é usado para visualizar o consumo de eletricidade do hardware de laptop

gnome-screenshot-41.0

Introdução ao GNOME Screenshot

O GNOME Screenshot é um utilitário usado para fazer capturas de tela da tela inteira, de uma janela ou de uma área da tela definida pelo(a) usuário(a), com efeitos opcionais de embelezamento de borda.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do GNOME Screenshot

Exigidas

GTK+-3.24.38, libcanberra-0.30 (Compilado com suporte a GTK+3) e libhandy-1.8.2

Instalação do GNOME Screenshot

Primeiro, corrija a construção com versões mais recentes do meson:

sed -i '/merge_file/{n;d}' data/meson.build

Instale o GNOME Screenshot executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

ninja install

Nota

Para a finalidade de melhor executar o GNOME Screenshot a partir da linha de comando, a opção -i precisa ser especificada.

Conteúdo

Aplicativo Instalado: gnome-screenshot
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: Nenhum(a)

Descrições Curtas

gnome-screenshot

é usado para capturar a tela, uma janela ou uma área definida pelo(a) usuário(a) e salvar a imagem instantânea em um arquivo

gnome-system-monitor-45.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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do GNOME System Monitor

Exigidas

adwaita-icon-theme-44.0, Gtkmm-3.24.8, itstool-2.0.7, libgtop-2.40.0, libhandy-1.8.2 e librsvg-2.56.3

Opcionais

desktop-file-utils-0.26, appstream-glib e uncrustify

Instalação do GNOME System Monitor

Instale o GNOME System Monitor executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --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.48.2

Introdução ao GNOME Terminal

O pacote GNOME Terminal contém o emulador de terminal para a Área de Trabalho do GNOME.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do GNOME Terminal

Exigidas

DConf-0.40.0, gnome-shell-44.3, gsettings-desktop-schemas-44.0, itstool-2.0.7, pcre2-10.42 e VTE-0.72.2

Recomendadas
Opcionais

desktop-file-utils-0.26 e appstream-glib

Instalação do GNOME Terminal

Primeiro, corrija algumas entradas obsoletas de esquema:

sed -i -r 's:"(/system):"/org/gnome\1:g' src/external.gschema.xml

Instale o GNOME Terminal executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Para testar os resultados, emita: ninja test.

Agora, como o(a) usuário(a) root:

ninja install

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

Introdução ao GNOME Weather

GNOME Weather é um pequeno aplicativo que te permite monitorar as atuais condições climáticas para a tua cidade, ou de qualquer lugar do mundo, e acessar previsões atualizadas fornecidas por vários serviços de Internet.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do GNOME Weather

Exigidas

Gjs-1.76.2, libadwaita-1.3.4 e libgweather-4.2.0

Opcionais

appstream-glib

Instalação do GNOME Weather

Instale o GNOME Weather executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Para testar os resultados, emita: ninja test.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

Conteúdo

Aplicativos Instalados: gnome-weather
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/share/org.gnome.Weather

Descrições Curtas

gnome-weather

é um pequeno aplicativo que te permite monitorar as atuais condições climáticas em qualquer lugar do mundo

Gucharmap-15.0.4

Introdução ao Gucharmap

Gucharmap é um mapa de caracteres Unicode e visualizador de fontes. Ele te permite navegar por todos os caracteres e categorias Unicode disponíveis para as fontes instaladas e examinar as propriedades detalhadas deles. É uma maneira fácil de encontrar o caractere que você só conhece pelo nome Unicode dele ou ponto de código.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Transferências Adicionais

Dependências do Gucharmap

Exigidas

desktop-file-utils-0.26, gsettings-desktop-schemas-44.0, GTK+-3.24.38, itstool-2.0.7, pcre2-10.42 e UnZip-6.0

Recomendadas
Opcionais

appstream-glib e GTK-Doc-1.33.2

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 setup --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.76.1.

-Dvapi=false: Use isso se você não tiver instalado o Vala-0.56.11.

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do Seahorse

Exigidas

Gcr-3.41.1, GnuPG-2.4.3, GPGME-1.21.0, itstool-2.0.7, libhandy-1.8.2, libpwquality-1.4.5 e libsecret-0.21.0

Recomendadas
Opcionais

Avahi-0.8

Dependência de Tempo de Execução

gnome-keyring-42.1

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 setup --prefix=/usr --buildtype=release .. &&
ninja

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

sed ... data/*.xml: Esse comando corrige algumas entradas obsoletas nos modelos de esquema.

sed ... meson.build: Esse comando corrige a construção com o GnuPG-2.4 instalado.

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do Vinagre

Exigidas

gtk-vnc-1.3.1, itstool-2.0.7 e libsecret-0.21.0

Recomendadas
Opcionais

Avahi-0.8, appstream-glib, FreeRDP (para conectar com áreas de trabalho do Windows) e Spice-GTK

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do libxfce4util

Exigidas

GLib-2.76.4 e gobject-introspection-1.76.1

Recomendadas
Opcionais

GTK-Doc-1.33.2

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

Introdução ao Xfconf

Xfconf é o sistema de armazenamento de configuração para o Xfce.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do Xfconf

Exigidas

libxfce4util-4.18.1

Opcionais

GTK-Doc-1.33.2 e Vala-0.56.11

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

Introdução ao libxfce4ui

O pacote libxfce4ui contém pequenas engenhocas GTK+ 3 que são usadas por outros aplicativos do Xfce.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do libxfce4ui

Exigidas

GTK+-3.24.38 e Xfconf-4.18.1

Recomendadas
Opcionais

GTK-Doc-1.33.2, libgtop-2.40.0, libgudev-238 e Glade

Instalação do libxfce4ui

Instale o libxfce4ui executando os seguintes comandos:

./configure --prefix=/usr --sysconfdir=/etc &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--enable-gtk-doc: Use esse parâmetro se GTK-Doc estiver instalado e você desejar reconstruir e instalar a documentação da API.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: libxfce4kbd-private-{2,3}.so e libxfce4ui-{1,2}.so
Diretórios Instalados: /etc/xdg/xfce4, /usr/include/xfce4/libxfce4kbd-private-2, /usr/include/xfce4/libxfce4ui-{1,2} e /usr/share/gtk-doc/html/libxfce4ui

Descrições Curtas

libxfce4kbd-private-2.so

é uma biblioteca privada do Xfce para compartilhar código entre o Xfwm4 e o Xfce4 Settings

libxfce4ui-1.so

contém pequenas engenhocas que são usados por outros aplicativos do Xfce

Exo-4.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 corretamente usando uma plataforma LFS 12.0.

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.38, libxfce4ui-4.18.4 e libxfce4util-4.18.1

Opcionais

GTK-Doc-1.33.2

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

Introdução ao Garcon

O pacote Garcon contém uma implementação de menu compatível com freedesktop.org baseada em GLib e GIO.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do Garcon

Exigidas

libxfce4ui-4.18.4 e GTK+-3.24.38

Opcionais

GTK-Doc-1.33.2

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

Introdução ao Xfce4 Panel

O pacote Xfce4 Panel contém o Painel do Xfce4.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do Xfce4 Panel

Exigidas

Cairo-1.17.6, Exo-4.18.0, Garcon-4.18.1 e libwnck-43.0

Opcionais

GTK-Doc-1.33.2 e libdbusmenu

Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/xfce4-panel

Instalação do Xfce4 Panel

Instale o Xfce4 Panel executando os seguintes comandos:

./configure --prefix=/usr --sysconfdir=/etc &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--enable-gtk-doc: Use esse parâmetro se GTK-Doc estiver instalado e você desejar reconstruir e instalar a documentação da API.

Conteúdo

Aplicativos Instalados: xfce4-panel, xfce4-popup-applicationsmenu, xfce4-popup-directorymenu e xfce4-popup-windowmenu
Biblioteca Instalada: libxfce4panel-2.0.so
Diretórios Instalados: /etc/xdg/xfce4/panel, /usr/include/xfce4/libxfce4panel-1.0, /usr/lib/xfce4/panel, /usr/share/gtk-doc/html/libxfce4panel-1.0 e /usr/share/xfce4/panel

Descrições Curtas

xfce4-panel

é o painel do Xfce

xfce4-popup-applicationsmenu

é um conjunto de comandos sequenciais de shell que usa D-Bus e Xfce Panel para exibir um menu pop-up dos aplicativos instalados

xfce4-popup-directorymenu

é um conjunto de comandos sequenciais de shell que usa D-Bus e Xfce Panel para exibir um menu pop-up de tua pasta pessoal e os subdiretórios dela

xfce4-popup-windowmenu

é um conjunto de comandos sequenciais de shell que usa DBus para exibir o Xfwm4 como um menu pop-up

libxfce4panel-2.0.so

contém as funções da API do Xfce Panel

thunar-4.18.6

Introdução ao thunar

Thunar é o gerenciador de arquivos do Xfce, uma GUI do GTK+ 3 para organizar os arquivos em teu computador.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

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.6 (para navegação remota e montagem automática), libexif-0.6.24 e tumbler-4.18.1 (tempo de execução)

Instalação do Thunar

Instale o Thunar executando os seguintes comandos:

./configure --prefix=/usr \
            --sysconfdir=/etc \
            --docdir=/usr/share/doc/thunar-4.18.6 &&
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.6 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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do Thunar Volume Manager

Exigidas

Exo-4.18.0 e libgudev-238

Recomendadas
Dependências Recomendadas de Tempo de Execução

Instalação do Thunar Volume Manager

Instale o Thunar Volume Manager executando os seguintes comandos:

./configure --prefix=/usr &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: thunar-volman e thunar-volman-settings
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: Nenhum(a)

Descrições Curtas

thunar-volman

é o Gerenciador de Volumes do Thunar, um utilitário de linha de comando para montar ou desmontar automaticamente mídias removíveis

thunar-volman-settings

é um pequeno aplicativo GTK+ 3 para mudar as configurações do Thunar Volume Manager

tumbler-4.18.1

Introdução ao tumbler

O pacote Tumbler contém um serviço de miniaturas do D-Bus baseado na especificação de gerenciamento de miniaturas do D-Bus. Isso é útil para gerar imagens em miniatura de arquivos.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do Tumbler

Exigidas

GLib-2.76.4

Opcionais

cURL-8.2.1, FreeType-2.13.1, gdk-pixbuf-2.42.10, gst-plugins-base-1.22.5, GTK-Doc-1.33.2, libjpeg-turbo-3.0.0, libgsf-1.14.50, libpng-1.6.40, Poppler-23.08.0, FFmpegThumbnailer, libgepub e libopenraw

Instalação do Tumbler

Instale o Tumbler executando os seguintes comandos:

./configure --prefix=/usr --sysconfdir=/etc &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

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

Introdução ao Xfce4 Appfinder

Xfce4 Appfinder é uma ferramenta para encontrar e iniciar aplicativos instalados pesquisando os arquivos .desktop instalados em teu sistema.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do Xfce4 Appfinder

Exigidas

Garcon-4.18.1

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

Introdução ao Xfce4 Power Manager

O Xfce4 Power Manager é um gerenciador de eletricidade para a área de trabalho do Xfce; o Xfce Power Manager gerencia as fontes de eletricidade no computador e os dispositivos que podem ser controlados para reduzir o consumo de eletricidade deles (como nível de brilho do LCD ou suspensão do monitor). Além disso, o Xfce4 Power Manager fornece um conjunto de interfaces do DBus compatíveis com freedesktop para informar a outros aplicativos a respeito do atual nível de eletricidade, de forma que eles possam ajustar o consumo de eletricidade deles.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do Xfce4 Power Manager

Exigidas

libnotify-0.8.2, UPower-1.90.2 e xfce4-panel-4.18.4

Recomendadas
Opcionais

NetworkManager-1.44.0

Instalação do Xfce4 Power Manager

Instale o Xfce4 Power Manager executando os seguintes comandos:

./configure --prefix=/usr --sysconfdir=/etc &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: xfce4-power-manager, xfce4-power-manager-settings, xfce4-pm-helper e xfpm-power-backlight-helper
Bibliotecas Instaladas: libxfce4powermanager.so
Diretórios Instalados: Nenhum(a)

Descrições Curtas

xfce4-pm-helper

é um aplicativo auxiliar para as funções de suspensão e hibernação do xfce4-power-manager

xfce4-power-manager

é o Gerenciador de Eletricidade do Xfce

xfce4-power-manager-settings

é um utilitário que vem com o Gerenciador de Eletricidade do Xfce para acessar/mudar a configuração dele

xfpm-power-backlight-helper

é um utilitário de linha de comando para obter ou configurar o brilho da tua tela

xfce4-settings-4.18.3

Introdução ao Xfce4 Settings

O pacote Xfce4 Settings contém uma coleção de aplicativos que são úteis para ajustar as tuas preferências do Xfce.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do Xfce4 Settings

Exigidas

Exo-4.18.0 e Garcon-4.18.1

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.23.0 e UPower-1.90.2

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do Xfdesktop

Exigidas

Exo-4.18.0 e libwnck-43.0

Recomendadas

Instalação do Xfdesktop

Instale o Xfdesktop executando os seguintes comandos:

./configure --prefix=/usr &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: xfdesktop e xfdesktop-settings
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/share/backgrounds/xfce e /usr/share/pixmaps/xfdesktop

Descrições Curtas

xfdesktop

é o gerenciador de área de trabalho do Ambiente de Área de Trabalho do Xfce

xfdesktop-settings

é um aplicativo GTK+ 3 que te permite mudar teu plano de fundo da área de trabalho, algumas preferências para o menu do botão direito e quais ícones são exibidos na área de trabalho

Xfwm4-4.18.0

Introdução ao Xfwm4

Xfwm4 é o gerenciador de janelas para o Xfce.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do Xfwm4

Exigidas

libwnck-43.0 e libxfce4ui-4.18.4

Recomendadas
Opcionais

libxpresent

Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/xfwm4

Instalação do Xfwm4

Instale o Xfwm4 executando os seguintes comandos:

./configure --prefix=/usr &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: xfwm4, xfwm4-settings, xfwm4-tweaks-settings e xfwm4-workspace-settings
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/lib/xfce4/xfwm4, /usr/share/themes/{Daloa,Default{,-hdpi,-xhdpi},Kokodi,Moheli} e /usr/share/xfwm4

Descrições Curtas

xfwm4

é o gerenciador de janelas do Xfce

xfwm4-settings

é um aplicativo GTK+ 3 que permite configurar algumas preferências, como o teu tema, atalhos de teclado e comportamento do foco do mouse

xfwm4-tweaks-settings

é um aplicativo GTK+ 3 que permite configurar mais algumas preferências para o Xfwm4

xfwm4-workspace-settings

é um aplicativo GTK+ 3 que permite configurar tuas preferências de espaço de trabalho

xfce4-session-4.18.3

Introdução ao Xfce4 Session

Xfce4 Session é um gerenciador de sessão para o Xfce. A tarefa dele é a de salvar o estado da tua área de trabalho (aplicativos abertos e o local deles) e restaurá-lo durante a próxima iniciação. Você pode criar várias sessões e escolher uma delas na iniciação.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do Xfce4 Session

Exigidas

libwnck-43.0 e libxfce4ui-4.18.4

Recomendadas
Exigidas Tempo de Execução

Xfdesktop-4.18.1

Instalação do Xfce4 Session

Instale o Xfce4 Session executando os seguintes comandos:

./configure --prefix=/usr \
            --sysconfdir=/etc \
            --disable-legacy-sm &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--disable-legacy-sm: Essa chave desabilita o gerenciamento de sessões legadas que não é necessário em sistemas modernos.

Configurando a Sessão do Xfce4

Existem várias dependências opcionais de tempo de execução para o Xfce4: dbus-1.14.8, GnuPG-2.4.3, hicolor-icon-theme-0.17, OpenSSH-9.4p1 e xinit-1.4.2

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

startxfce4

é um conjunto de comandos sequenciais responsável por iniciar uma sessão do Xfce.

xfce4-session

inicia o Ambiente de Área de Trabalho do Xfce

xfce4-session-logout

sai do Xfce

xfce4-session-settings

é uma GUI GTK+ 3 que te permite alterar tuas preferências para tua Sessão do Xfce

Capítulo 36. Aplicativos do Xfce

Esta é uma pequena coleção de aplicativos opcionais que adicionam recursos extras para a tua área de trabalho do Xfce.

Parole-4.18.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 corretamente usando uma plataforma LFS 12.0.

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.5, gst-plugins-good-1.22.5 e libxfce4ui-4.18.4

Recomendadas
Opcionais

GTK-Doc-1.33.2

Instalação do Parole

Instale o Parole executando os seguintes comandos:

./configure --prefix=/usr &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Usando o Parole

Se você tiver instalado o Gstreamer Plugins Ugly com suporte para libdvdnav e libdvdread e gostaria de usar o Parole para reproduzir um DVD, clique em Mídia> Abra o local e digite dvd:// na caixa.

Similarmente, para reproduzir um CD, clique em Mídia> Abra o local e digite cdda:// na caixa.

Conteúdo

Aplicativo Instalado: parole
Bibliotecas Instaladas: Duas bibliotecas sob /usr/lib/parole-0/
Diretórios Instalados: /usr/include/parole, /usr/lib/parole-0 e /usr/share/parole

Descrições Curtas

parole

é um reprodutor de mídia GTK+ 3 que usa o GStreamer

xfce4-terminal-1.1.0

Introdução ao Terminal do Xfce4

Terminal do Xfce4 é um emulador de terminal GTK+3. Isso é útil para executar comandos ou aplicativos no conforto de uma janela do Xorg; você pode arrastar e soltar arquivos no Terminal do Xfce4 ou copiar e colar texto com o teu mouse.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do Terminal do Xfce4

Exigidas

libxfce4ui-4.18.4 e VTE-0.72.2

Instalação do Terminal do Xfce4

Instale o Terminal do Xfce4 executando os seguintes comandos:

./configure --prefix=/usr &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativo Instalado: xfce4-terminal
Bibliotecas Instaladas: Nenhum(a)
Diretório Instalado: /usr/share/xfce4/terminal

Descrições Curtas

xfce4-terminal

é um emulador de terminal GTK+ 3

Xfburn-0.7.0

Introdução ao Xfburn

Xfburn é uma interface GUI GTK+ 3 para a Libisoburn. Isso é útil para criar CDs e DVDs a partir de arquivos em teu computador ou imagens ISO baixadas a partir de outro lugar.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do Xfburn

Exigidas

Exo-4.18.0, libburn-1.5.6, libisofs-1.5.6 e libxfce4ui-4.18.4

Opcionais

gst-plugins-base-1.22.5 e Cdrdao-1.2.4 (tempo de execução)

Instalação do Xfburn

Instale o Xfburn executando os seguintes comandos:

./configure --prefix=/usr --disable-static &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Conteúdo

Aplicativo Instalado: xfburn
Bibliotecas Instaladas: Nenhum(a)
Diretório Instalado: /usr/share/xfburn

Descrições Curtas

xfburn

é um aplicativo GTK+ 3 para criação de CDs e DVDs

Ristretto-0.13.1

Introdução ao Ristretto

Ristretto é um visualizador de imagens rápido e leve para a área de trabalho do Xfce.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do Ristretto

Exigidas

libexif-0.6.24 e libxfce4ui-4.18.4

Opcionais

tumbler-4.18.1 (tempo de execução)

Instalação do Ristretto

Instale o Ristretto executando os seguintes comandos:

./configure --prefix=/usr &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativo Instalado: ristretto
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: Nenhum(a)

Descrições Curtas

ristretto

é um visualizador de imagens rápido e leve

xfce4-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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências das Ferramentas de Desenvolvimento do Xfce4

Exigidas

GLib-2.76.4

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

Introdução ao Processo de Segundo Plano de Notificação do Xfce4

O Processo de Segundo Plano de Notificação do Xfce4 é um pequeno aplicativo que implementa a parte "do lado do servidor" da especificação de notificações de área de trabalho do Freedesktop. Os aplicativos que desejam exibir um balão de notificação de maneira padrão podem usar o Xfce4-Notifyd para fazer isso, enviando mensagens padrão pelo D-Bus usando a interface org.freedesktop.Notifications.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do Processo de Segundo Plano de Notificação do Xfce4

Exigidas

libnotify-0.8.2, libxfce4ui-4.18.4, xfce4-dev-tools-4.18.0 e xfce4-panel-4.18.4

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

Introdução ao Plugin Pulseaudio do Xfce4

O Plugin Pulseaudio do Xfce4 é um plugin para o painel do Xfce que fornece uma maneira conveniente de ajustar o volume do áudio do sistema de som PulseAudio e para uma ferramenta de mixagem automática como o pavucontrol. Opcionalmente, ele pode lidar com teclas multimídia para controlar o volume do áudio.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do Plugin Pulseaudio do Xfce4

Exigidas

dbus-glib-0.112, libnotify-0.8.2, PulseAudio-16.1 e xfce4-panel-4.18.4

Recomendadas

Instalação do Plugin Pulseaudio do Xfce4

Instale o Plugin Pulseaudio do Xfce4 executando os seguintes comandos:

./configure --prefix=/usr &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativo Instalado: Nenhum(a)
Bibliotecas Instaladas: libpulseaudio-plugin.so
Diretórios Instalados: Nenhum(a)

Parte X. 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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

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 corretamente usando uma plataforma LFS 12.0.

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

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 corretamente usando uma plataforma LFS 12.0.

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

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do libfm

Exigidas

GTK+-2.24.33 ou GTK+-3.24.38 (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.6 ou udisks (para gerenciamento de volumes - experimental)

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do PCManFM

Exigidas

libfm-1.3.2

Recomendadas

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do libwnck

Exigidas

GTK+-2.24.33

Recomendadas
Opcionais

gobject-introspection-1.76.1 e GTK-Doc-1.33.2

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 corretamente usando uma plataforma LFS 12.0.

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)

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do LXAppearance

Exigidas

GTK+-2.24.33

Recomendadas
Opcionais

libxslt-1.1.38 com docbook-xml-4.5 e docbook-xsl-nons-1.79.2 (para construir páginas de manual)

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do LXSession

Exigidas

dbus-glib-0.112, libunique-1.1.6, Polkit-123 e Vala-0.56.11

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.38 e libxslt-1.1.38 com docbook-xml-4.5 e docbook-xsl-nons-1.79.2 (para construir páginas de manual)

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.

Nota

O LXDE não tem funcionalidade de controle de luz de fundo para laptops. Se precisar de controle de luz de fundo, você deveria usar um ambiente alternativo de área de trabalho ou considerar ajustar a luz de fundo do teu laptop manualmente usando as instruções provenientes de Arch Linux Wiki - Luz de fundo.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

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.2, e um gerenciador de tela, como o sddm-0.20.0 ou lightdm-1.32.0

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 sddm-0.20.0 ou lightdm-1.32.0.

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 corretamente usando uma plataforma LFS 12.0.

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

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do LXAppearance OBconf

Exigidas

LXAppearance-0.6.3 e openbox-3.6.1

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 corretamente usando uma plataforma LFS 12.0.

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

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 corretamente usando uma plataforma LFS 12.0.

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.38 com docbook-xml-4.5 e docbook-xsl-nons-1.79.2 (para construir páginas de manual)

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 corretamente usando uma plataforma LFS 12.0.

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

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do Vte

Exigidas

GTK+-2.24.33

Opcionais

gobject-introspection-1.76.1, GTK-Doc-1.33.2 e PyGTK-2.24.0

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.72.2 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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do LXTerminal

Exigidas

Vte-0.28.2

Opcionais

libxslt-1.1.38 com docbook-xml-4.5 e docbook-xsl-nons-1.79.2 (para construir páginas de manual)

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

Capítulo 39. Área de Trabalho LXQt

LXQt é um ambiente de área de trabalho de desempenho extremamente rápido e economia de eletricidade.

LXQt é um ambiente de área de trabalho baseado em Qt. Ele está focado em ser uma área de trabalho clássica com uma aparência moderna. Ele pode personalizar a aparência em qualquer lugar. O(s) painel(s) tem plugins e configurações. É independente do Gerenciador de Janelas, tem suporte a vários idiomas e atalhos padrão de teclado. LXQt usa menos CPU e menos RAM que a maioria dos outros ambientes. É especialmente útil para computadores em nuvem com especificações baixas de hardware, como netbooks, dispositivos móveis (por exemplo, MIDs) ou computadores mais antigos, mas pode ser usado com hardware moderno.

Construa pacotes centrais do LXQt na ordem apresentada no livro para a resolução mais fácil de dependências.

Instruções de Pré Instalação da Área de Trabalho do LXQt

Observações acerca da construção de dependências do LXQt

Para construir o LXQt, as seguintes etapas são recomendadas:

  1. Primeiro, construa o Capítulo do Xorg completo, incluindo o suporte ao Wayland com as dependências exigidas e as recomendadas. Teste se o ambiente funciona com twm como gerenciador de janelas. Com a experiência, alguns dos pacotes podem ser omitidos, mas isso não é recomendado para usuários(as) iniciantes.

  2. Segundo, construa as partes exigidas do Qt. O pacote completo, Qt-5.15.10 é bastante longo e tem um monte de dependências. Como alternativa, os componentes exigidos para o LXQt podem ser construídos usando-se os procedimentos em qt-alternate-5.15.10.

  3. Finalmente, construa a área de trabalho do LXQt usando as páginas abaixo em ordem. Os pacotes na seção de aplicativos são opcionais, mas no mínimo, qterminal-1.3.0 é recomendado.

KF5, Plasma e Dependências Diversas

kwindowsystem-5.109.0 para lxqt

Introdução ao kwindowsystem

O kwindowsystem fornece informações e permite a interação com o sistema de janelas. Ele fornece uma API de alto nível que é independente do sistema de janelas e tem implementações específicas de plataforma.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Importante

Esse pacote é extraído a partir do conjunto de pacotes KF5. Se o KDE Frameworks-5.109.0 for construído, NÃO construa também esse pacote conforme apresentado aqui.

Informação do Pacote

Dependências do kwindowsystem

Exigidas

extra-cmake-modules-5.109.0, Bibliotecas do Xorg e (Qt-5.15.10 ou qt-alternate-5.15.10)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/kwindowsystem

Instalação do kwindowsystem

Instale o kwindowsystem executando os seguintes comandos:

mkdir -v 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

Finalmente, remova alguns arquivos desnecessários como o(a) usuário(a) root:

rm -rf /usr/mkspecs

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libKF5WindowSystem.so
Diretórios Instalados: /usr/lib/cmake/KF5WindowSystem, /usr/include/KF5 e /usr/lib/plugins/kf5

Descrições Curtas

libKF5WindowSystem.so

contém as funções de API do KF5 Windowing

kwayland-5.109.0 para lxqt

Introdução ao kwayland

kwayland é uma API estilo Qt para interagir com a API do wayland-client e do wayland-server.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Importante

Esse pacote é extraído a partir do conjunto de pacotes KF5. Se o KDE Frameworks-5.109.0 for construído, NÃO construa também esse pacote conforme apresentado aqui.

Informação do Pacote

Dependências do kwayland

Exigidas

extra-cmake-modules-5.109.0, Mesa-23.1.6 (construído com suporte a Wayland-1.22.0), plasma-wayland-protocols-1.10.0 e (Qt-5.15.10 ou qt-alternate-5.15.10)

Instalação do kwayland

Instale o kwayland executando os seguintes comandos:

mkdir -v 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

Finalmente, remova alguns arquivos desnecessários, como o(a) usuário(a) root:

rm -rf /usr/mkspecs

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libKF5WaylandClient.so e libKF5WaylandServer.so
Diretórios Instalados: /usr/lib/cmake/KF5Wayland, /usr/include/KF5/KWayland e /usr/share/qlogging-categories5

Descrições Curtas

libKF5WaylandClient.so

contém a biblioteca envolucradora estilo Qt do wayland-client

libKF5WaylandServer.so

contém a biblioteca envolucradora estilo Qt do wayland-server

kconfig-5.109.0 para lxqt

Introdução ao kconfig

O pacote kconfig fornece acesso aos arquivos de configuração.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Importante

Esse pacote é extraído a partir do conjunto de pacotes do KF5. Se o KDE Frameworks-5.109.0 for construído, também NÃO construa esse pacote conforme apresentado aqui.

Informação do Pacote

Dependências do kconfig

Exigidas

extra-cmake-modules-5.109.0 e (Qt-5.15.10 ou qt-alternate-5.15.10)

Instalação do kconfig

Instale o kconfig executando os seguintes comandos:

mkdir -v build &&
cd       build &&

cmake -DCMAKE_INSTALL_PREFIX=/usr \
      -DCMAKE_BUILD_TYPE=Release  \
      -DCMAKE_INSTALL_LIBDIR=lib  \
      -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

Finalmente, remova alguns arquivos desnecessários, como o(a) usuário(a) root:

rm -rf /usr/mkspecs &&
rm -rf /usr/lib/libexec

Conteúdo

Aplicativos Instalados: kreadconfig5 e kwriteconfig5
Biblioteca Instalada: libKF5ConfigCore.so, libKF5ConfigGui.so e libKF5ConfigQml.so
Diretórios Instalados: /usr/lib/cmake/KF5Config e /usr/include/KF5/{KConfigCore,KConfig,KConfigQml,KConfigGui}

Descrições Curtas

kreadconfig5

lê um arquivo de configuração usando a interface KConfig

kwriteconfig5

escreve em um arquivo de configuração usando a interface KConfig

libKF5ConfigCore.so

contém a biblioteca de configuração central para o KF5

libKF5ConfigGui.so

contém funções para uma GUI para KConfig

libKF5ConfigQml.so

contém uma interface QML para o KConfig

solid-5.109.0 para lxqt

Introdução ao solid

Solid é uma estrutura de integração de dispositivos. Ela fornece uma maneira de consultar e interagir com o hardware independentemente do sistema operacional subjacente.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Importante

Esse pacote é extraído a partir do conjunto de pacotes KF5. Se o KDE Frameworks-5.109.0 for construído, NÃO construa também esse pacote conforme apresentado aqui.

Informação do Pacote

Dependências do solid

Exigidas

extra-cmake-modules-5.109.0 e (Qt-5.15.10 ou qt-alternate-5.15.10)

Opcionais (tempo de execução)

UDisks-2.10.0, UPower-1.90.2, libimobiledevice e media-player-info

Instalação do solid

Instale o solid executando os seguintes comandos:

mkdir -v 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

Finalmente, remova alguns arquivos desnecessários, como o(a) usuário(a) root:

rm -rf /usr/mkspecs

Conteúdo

Aplicativos Instalados: solid-hardware5
Biblioteca Instalada: libKF5Solid.so
Diretórios Instalados: /usr/include/KF5/Solid, /usr/lib/cmake/KF5Solid e /usr/lib/qml/org/kde/solid

Descrições Curtas

solid-hardware5

consulta informações de hardware a partir do sistema

libKF5Solid.so

fornece uma maneira de consultar e interagir com o hardware independentemente do sistema operacional subjacente

kidletime-5.109.0 para lxqt

Introdução ao kidletime

KIdleTime é usado para informar o tempo ocioso de usuários(as) e do sistema. É útil não apenas para determinar o tempo ocioso atual do PC, mas também para ser notificado(a) acerca de eventos de tempo ocioso, como tempos limite personalizados ou atividade de usuário(a).

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Importante

Esse pacote é extraído a partir do conjunto de pacotes KF5. Se o KDE Frameworks-5.109.0 for construído, NÃO construa também esse pacote conforme apresentado aqui.

Informação do Pacote

Dependências do kidletime

Exigidas

extra-cmake-modules-5.109.0, plasma-wayland-protocols-1.10.0 e (Qt-5.15.10 ou qt-alternate-5.15.10)

Instalação do kidletime

Instale o kidletime executando os seguintes comandos:

mkdir -v 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

Finalmente, remova alguns arquivos desnecessários como o(a) usuário(a) root:

rm -rf /usr/mkspecs

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libKF5IdleTime.so
Diretórios Instalados: /usr/lib/plugins/kf5/org.kde.kidletime.platforms, /usr/lib/cmake/KF5IdleTime e /usr/include/KF5/KIdleTime

Descrições Curtas

libKF5GuiAddons.so

contém a API do KDE para informes de tempo ocioso

libkscreen-5.27.7 para lxqt

Introdução ao libkscreen

O pacote libkscreen contém a biblioteca de gerenciamento de telas do KDE.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Importante

Esse pacote é extraído a partir do conjunto de pacotes do plasma. Se o Plasma-5.27.7 for construído, NÃO construa também esse pacote conforme apresentado aqui.

Informação do Pacote

Dependências do libkscreen

Exigidas

kconfig-5.27.7 para lxqt e kwayland-5.109.0 para lxqt

Instalação do libkscreen

Instale o libkscreen executando os seguintes comandos:

mkdir -v build &&
cd      build &&

cmake -DCMAKE_INSTALL_PREFIX=/usr \
      -DCMAKE_BUILD_TYPE=Release  \
      -DCMAKE_INSTALL_LIBDIR=lib  \
      -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

Finalmente, remova alguns arquivos desnecessários, como o(a) usuário(a) root:

rm -rf /usr/mkspecs &&
rm -rf /usr/lib/libexec

Conteúdo

Aplicativos Instalados: kscreen-doctor
Biblioteca Instalada: libKF5Screen.so e libKF5ScreenDpms.so
Diretórios Instalados: /usr/lib/cmake/KF5Screen, /usr/include/KF5/KScreen e /usr/lib/plugins/kf5/kscreen

Descrições Curtas

kscreen-doctor

permite modificar a configuração da tela a partir da linha de comando

libKF5Screen.so

contém a biblioteca de gerenciamento de telas do KDE

libKF5ScreenDpms.so

contém funções de API para lidar com DPMS

muparser-2.3.4

Introdução ao muparser

O pacote muparser é uma biblioteca de analisador matemático rápido para C e C++.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do muparser

Exigidas

CMake-3.27.2

Instalação do muparser

Instale o muparser executando os seguintes comandos:

mkdir -v build &&
cd       build &&

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

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libmuparser.so
Diretórios Instalados: /usr/lib/cmake/muparser

Descrições Curtas

muparser.so

fornece uma biblioteca de analisador matemático rápido para C e C++

Componentes da Área de Trabalho LXQt

lxqt-build-tools-0.13.0

Introdução ao lxqt-build-tools

O pacote lxqt-build-tools fornece diversas ferramentas necessárias para construir o próprio LXQt, bem como outros componentes mantidos pelo projeto LXQt.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do lxqt-build-tools

Exigidas

CMake-3.27.2 e (Qt-5.15.10 ou qt-alternate-5.15.10)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/lxqt-build-tools

Instalação do lxqt-build-tools

Instale o lxqt-build-tools executando os seguintes comandos:

mkdir -v 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

Aplicativo Instalado: lxqt-transupdate
Biblioteca Instalada: Nenhum(a)
Diretórios Instalados: /usr/share/cmake/lxqt-build-tools

Descrições Curtas

lxqt-transupdate

atualiza traduções para componentes do LXQt

libqtxdg-3.11.0

Introdução ao libqtxdg

O libqtxdg é uma implementação Qt das especificações XDG da freedesktop.org.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do libqtxdg

Exigidas

CMake-3.27.2 e (Qt-5.15.10 ou qt-alternate-5.15.10)

Opcionais (tempo de execução)

GTK+-2.24.33 ou GTK+-3.24.38 (para gtk-update-icon-cache)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libqtxdg

Instalação do libqtxdg

Instale o libqtxdg executando os seguintes comandos:

mkdir -v build &&
cd       build &&

cmake -DCMAKE_INSTALL_PREFIX=/usr \
      -DCMAKE_BUILD_TYPE=Release  \
      -DCMAKE_INSTALL_LIBDIR=lib  \
      ..       &&

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

-DBUILD_TESTS=ON: Use essa opção se desejar construir testes. Se você passar essa opção, poderá executar os testes executando: make test.

-DBUILD_DEV_UTILS=ON: Use essa chave se você desejar construir e instalar os utilitários de desenvolvimento.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libQt5Xdg.so e libQt5XdgIconLoader.so
Diretórios Instalados: /usr/include/{qt5xdg,qt5xdgiconloader} e /usr/share/cmake/{qt5xdg,qt5xdgiconloader}

Descrições Curtas

libQt5Xdg.so

contém as funções da API da libQt5Xdg

libQt5XdgIconLoader.so

contém as funções da API da libQt5XdgIconLoader

lxqt-menu-data-20230619

Introdução ao lxqt-menu-data

O pacote lxqt-menu-data contém arquivos de menu compatíveis com o LXQt.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do lxqt-menu-data

Exigidas

lxqt-build-tools-0.13.0

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/lxqt-menu-data

Instalação do lxqt-menu-data

Instale o lxqt-menu-data executando os seguintes comandos:

mkdir -v 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

Aplicativo Instalado: Nenhum(a)
Biblioteca Instalada: Nenhum(a)
Diretórios Instalados: /etc/xdg/menus e /usr/share/cmake/lxqt-menu-data

liblxqt-1.3.0

Introdução ao liblxqt

A liblxqt é a biblioteca principal de utilitários para todos os componentes do LXQt.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do liblxqt

Exigidas

libqtxdg-3.11.0, (kwindowsystem-5.109.0 para lxqt ou KDE Frameworks-5.109.0) e polkit-qt-0.114.0

Instalação do liblxqt

Instale o liblxqt executando os seguintes comandos:

mkdir -v 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: lxqt-backlight_backend
Biblioteca Instalada: liblxqt.so
Diretórios Instalados: /usr/include/lxqt e /usr/share/cmake/lxqt

Descrições Curtas

lxqt-backlight_backend

configura o nível de luz de fundo para uma tela

liblxqt.so

contém as funções de API da liblxqt

libsysstat-0.4.6

Introdução ao libsysstat

O pacote libsysstat contém uma biblioteca usada para consultar informações e estatísticas do sistema.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do libsysstat

Exigidas

lxqt-build-tools-0.13.0

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/libsysstat

Instalação do libsysstat

Instale o libsysstat executando os seguintes comandos:

mkdir -v 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

Aplicativo Instalado: Nenhum(a)
Biblioteca Instalada: libsysstat-qt5.so
Diretórios Instalados: /usr/include/sysstat-qt5 e /usr/share/cmake/sysstat-qt5

Descrições Curtas

libsysstat-qt5.so

contém as funções de API da libsysstat-qt5

qtxdg-tools-3.11.0

Introdução ao qtxdg-tools

O qtxdg-tools contém uma ferramenta CLI MIME para lidar com associações de arquivos e abrir arquivos com os aplicativos padrão deles.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do qtxdg-tools

Exigidas

libqtxdg-3.11.0

Instalação do qtxdg-tools

Instale o qtxdg-tools executando os seguintes comandos:

mkdir -v build &&
cd       build &&

cmake -DCMAKE_INSTALL_PREFIX=/usr \
      -DCMAKE_BUILD_TYPE=Release  \
      -DCMAKE_INSTALL_LIBDIR=lib  \
      ..                          &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: qtxdg-mat
Biblioteca Instalada: Nenhum(a)
Diretórios Instalados: /usr/share/cmake/qtxdg-tools

Descrições Curtas

qtxdg-mat

consulta e modifica padrões para aplicativos, como terminal padrão, navegador da web, cliente de mensagens eletrônicas e gerenciador de arquivos

libfm-qt-1.3.0

Introdução ao libfm-qt

libfm-qt é a versão Qt da libfm, uma biblioteca que fornece componentes para construir gerenciadores de arquivos de área de trabalho.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do libfm-qt

Exigidas

CMake-3.27.2, libexif-0.6.24, menu-cache-1.1.0 e (Qt-5.15.10 ou qt-alternate-5.15.10)

Instalação do libfm-qt

Instale o libfm-qt executando os seguintes comandos:

mkdir -v 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)
Biblioteca Instalada: libfm-qt.so
Diretórios Instalados: /usr/include/libfm-qt, /usr/share/libfm-qt e /usr/share/cmake/fm-qt

Descrições Curtas

libfm-qt.so

contém as funções da API da libfm-qt

lxqt-themes-1.3.0

Introdução ao lxqt-themes

O pacote lxqt-themes fornece vários arquivos gráficos e temas para a área de trabalho do LXQt.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do lxqt-themes

Exigidas

lxqt-build-tools-0.13.0

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/lxqt-themes

Instalação do lxqt-themes

Instale o lxqt-themes executando os seguintes comandos:

mkdir -v 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

Aplicativo Instalado: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/share/lxqt/{graphics,themes,palettes,wallpapers}

lxqt-qtplugin-1.3.0

Introdução ao lxqt-qtplugin

O pacote lxqt-qtplugin fornece um plugin Qt de integração da plataforma LXQt.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do lxqt-qtplugin

Exigidas

liblxqt-1.3.0 e libdbusmenu-qt-0.9.3+16.04.20160218

Instalação do lxqt-qtplugin

Instale o lxqt-qtplugin executando os seguintes comandos:

mkdir -v 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

Configurando lxqt-qtplugin

Informação de Configuração

Para usar o plugin no Qt 5, a variável de ambiente QT_QPA_PLATFORMTHEME precisa estar configurada como lxqt. Uma maneira de fazer isso é a de emitir como o(a) usuário(a) root:

cat >> /etc/profile.d/lxqt.sh << "EOF"
# Inicia configuração do lxqt-qtplugin

export QT_QPA_PLATFORMTHEME=lxqt

# Termina configuração do lxqt-qtplugin
EOF

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libqtlxqt.so (em $QT5DIR/plugins/platformthemes)
Diretório Instalado: $QT5DIR/plugins/platformthemes

Descrições Curtas

libqtlxqt.so

contém o carregador de plugins QT do LXQt

lxqt-about-1.3.0

Introdução ao lxqt-about

O pacote lxqt-about fornece a caixa de diálogo independente Sobre do LXQt.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do lxqt-about

Exigidas

liblxqt-1.3.0

Instalação do lxqt-about

Instale o lxqt-about executando os seguintes comandos:

mkdir -v 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

Aplicativo Instalado: lxqt-about
Bibliotecas Instaladas: Nenhum(a)
Diretório Instalado: Nenhum(a)

Descrições Curtas

lxqt-about

é a caixa de diálogo Sobre do LXQt

lxqt-admin-1.3.0

Introdução ao lxqt-admin

O pacote lxqt-admin fornece duas ferramentas GUI para ajustar as configurações do sistema operacional no qual o LXQt está executando.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do lxqt-admin

Exigidas

liblxqt-1.3.0 e Polkit-123

Instalação do lxqt-admin

Instale o lxqt-admin executando os seguintes comandos:

mkdir -v 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

Aplicativo Instalado: lxqt-admin-time, lxqt-admin-user e lxqt-admin-user-helper
Bibliotecas Instaladas: Nenhum(a)
Diretório Instalado: Nenhum(a)

Descrições Curtas

lxqt-admin-time

é uma GUI para ajustar a hora e data atuais

lxqt-admin-user

é uma GUI para gerenciar usuários(as) e grupos

lxqt-openssh-askpass-1.3.0

Introdução ao lxqt-openssh-askpass

O pacote lxqt-openssh-askpass é uma GUI para consultar credenciais em nome de outros aplicativos.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do lxqt-openssh-askpass

Exigidas

liblxqt-1.3.0

Instalação do lxqt-openssh-askpass

Instale o lxqt-openssh-askpass executando os seguintes comandos:

mkdir -v 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: lxqt-openssh-askpass
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: Nenhum(a)

Descrições Curtas

lxqt-config-openssh-askpass

consulta um(a) usuário(a) para credenciais em nome de outro aplicativo

lxqt-sudo-1.3.0

Introdução ao lxqt-sudo

O pacote lxqt-sudo é um estrutura gráfica de interação direta com o(a) usuário(a) para sudo e su respectivamente.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do lxqt-sudo

Exigidas

liblxqt-1.3.0

Instalação do lxqt-sudo

Instale o lxqt-sudo executando os seguintes comandos:

mkdir -v 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: lxdoas, lxqt-sudo, lxsu e lxsudo
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: Nenhum(a)

Descrições Curtas

lxdoas

é uma interface gráfica para o doas

lxqt-sudo

é uma interface gráfica para o sudo

lxsudo

é uma interface gráfica para o sudo

lxsu

é uma interface gráfica para o su

lxqt-config-1.3.0

Introdução ao lxqt-config

O pacote lxqt-config fornece o Centro de Configuração do LXQt.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do lxqt-config

Exigidas

liblxqt-1.3.0, (kconfig-5.27.7 para lxqt e libkscreen-5.27.7 para lxqt) ou Plasma-5.27.7 e xorg-libinput-1.3.0

Instalação do lxqt-config

Instale o lxqt-config executando os seguintes comandos:

mkdir -v 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: lxqt-config, lxqt-config-appearance, lxqt-config-brightness, lxqt-config-file-associations, lxqt-config-input, lxqt-config-locale e lxqt-config-monitor
Biblioteca Instalada: liblxqt-config-cursor.so
Diretórios Instalados: /usr/lib/lxqt-config

Descrições Curtas

lxqt-config

é o Centro de Configuração do LXQt

lxqt-config-appearance

é usado para mudar temas do sistema, temas de ícones e fontes usadas por aplicativos em uma sessão do LXQt

lxqt-config-brightness

configura a configuração de brilho de um monitor

lxqt-config-file-associations

é usado para associar tipos de arquivos a aplicativos

lxqt-config-input

é usado para configurar dispositivos de entrada, configurando opções como a velocidade do mouse, o cursor, a velocidade do teclado e o esquema do teclado

lxqt-config-locale

configura a localidade usada em sessões do LXQt

lxqt-config-monitor

é uma estrutura gráfica de interação direta com o(a) usuário(a) para o xrandr que configura monitores em um sistema

liblxqt-config-cursor.so

contém as funções da API do liblxqt-config-cursor

obconf-qt-0.16.2

Introdução ao obconf-qt

O pacote obconf-qt é uma ferramenta de configuração baseada em Qt para o Openbox.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do obconf-qt

Exigidas

hicolor-icon-theme-0.17, liblxqt-1.3.0 e openbox-3.6.1

Instalação do obconf-qt

Instale o obconf-qt executando os seguintes comandos:

mkdir -v 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

Aplicativo Instalado: obconf-qt
Bibliotecas Instaladas: Nenhum(a)
Diretório Instalado: Nenhum(a)

Descrições Curtas

obconf-qt

é uma ferramenta de configuração baseada em Qt para o Openbox

lxqt-globalkeys-1.3.0

Introdução ao lxqt-globalkeys

O pacote lxqt-globalkeys contém um processo de segundo plano usado para registrar atalhos globais de teclado, bem como um editor para atalhos de teclado.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do lxqt-globalkeys

Exigidas

liblxqt-1.3.0

Instalação do lxqt-globalkeys

Instale o lxqt-globalkeys executando os seguintes comandos:

mkdir -v 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: lxqt-config-globalkeyshortcuts e lxqt-globalkeysd
Bibliotecas Instaladas: liblxqt-globalkeys.so e liblxqt-globalkeys-ui.so
Diretórios Instalados: /usr/include/lxqt-globalkeys{,-ui} e /usr/share/cmake/lxqt-globalkeys{,-ui}

Descrições Curtas

lxqt-config-globalkeyshortcuts

é um editor para atalhos de teclado

lxqt-globalkeysd

é o processo global de segundo plano de atalhos de teclado

lxqt-globalkeys.so

contém as funções da API do lxqt-globalkeys

liblxqt-globalkeys-ui.so

contém as funções da API do liblxqt-globalkeys-ui

lxqt-policykit-1.3.0

Introdução ao lxqt-policykit

O pacote lxqt-policykit é o agente PolicyKit do LXQt.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do lxqt-policykit

Exigidas

liblxqt-1.3.0 e polkit-qt-0.114.0

Instalação do lxqt-policykit

Instale o lxqt-policykit executando os seguintes comandos:

mkdir -v 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

Aplicativo Instalado: lxqt-policykit-agent
Bibliotecas Instaladas: Nenhum(a)
Diretório Instalado: /usr/share/lxqt/translations/lxqt-policykit-agent

Descrições Curtas

lxqt-policykit-agent

é o agente PolicyKit do LXQt

lxqt-session-1.3.0

Introdução ao lxqt-session

O pacote lxqt-session contém o gerenciador padrão de sessão para o LXQt.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do lxqt-session

Exigidas

liblxqt-1.3.0, (kwindowsystem-5.109.0 para lxqt ou KDE Frameworks-5.109.0), qtxdg-tools-3.11.0 e Xdg-user-dirs-0.18

Instalação do lxqt-session

Instale o lxqt-session executando os seguintes comandos:

sed -e '/TryExec/s|=|=/usr/bin/|' \
    -i xsession/lxqt.desktop.in &&

mkdir -v 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

Explicações do Comando

sed -e '/TryExec/s|=|='/usr'/bin/|' -i xsessions/lxqt.desktop.in: Se você estiver usando um gerenciador de tela, o caminho completo da diretiva TryExec tem de ser dado, de forma que a área de trabalho LXQt apareça na lista de sessões.

Configurando o lxqt-session

Gerenciadores de janela diferentes do openbox-3.6.1 podem ser usados, por exemplo Xfwm4-4.18.0. Por favor, observe que o IceWM-3.4.1 não é um bom substituto. Fluxbox funciona, embora nesse contexto (com lxqt-config-1.3.0), openbox-3.6.1 seja melhor. O arquivo de configuração /usr/share/lxqt/windowmanagers.conf vem com muitos exemplos de gerenciadores de janelas e aqueles que estão instalados aparecerão em uma lista suspensa do lxqt-config-session. Para aqueles não incluídos em /usr/share/lxqt/windowmanagers.conf, você consegue usar o botão "pesquisar" do lxqt-config-session, por exemplo, para Fluxbox-1.3.7, navegando pelo sistema de arquivos até que consiga escolher o fluxbox.

Conteúdo

Aplicativos Instalados: lxqt-config-session, lxqt-leave, lxqt-session e startlxqt
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: Nenhum(a)

Descrições Curtas

lxqt-config-session

é uma ferramenta GUI de configuração para o lxqt-session

lxqt-leave

é uma caixa gráfica de diálogo para terminar a sessão

lxqt-session

é um gerenciador leve de sessões do X

startlxqt

é usado para iniciar a sessão de área de trabalho para o LXQt

pcmanfm-qt-1.3.0

Introdução ao pcmanfm-qt

O pcmanfm-qt é um gerenciador de arquivos e gerenciador de ícones da área de trabalho (uma porta Qt do pcmanfm e libfm).

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do pcmanfm-qt

Exigidas

liblxqt-1.3.0, libfm-qt-1.3.0 e lxqt-menu-data-20230619

Recomendadas

Instalação do pcmanfm-qt

Instale o pcmanfm-qt executando os seguintes comandos:

mkdir -v 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

Para facilitar a localização do pcmanfm-qt nos menus, ajuste o arquivo .desktop. Novamente, como o(a) usuário(a) root:

sed -e '/Categories=/s/=/=System;FileTools;/' \
    -e '/Name=/s/=.*/=Gerenciador de Arquivos PCManFM-Qt'/ \
    -i /usr/share/applications/pcmanfm-qt.desktop

Conteúdo

Aplicativo Instalado: pcmanfm-qt
Biblioteca Instalada: Nenhum(a)
Diretórios Instalados: /usr/share/pcmanfm-qt

Descrições Curtas

pcmanfm-qt

é um gerenciador de arquivos e gerenciador de ícones da área de trabalho

lxqt-panel-1.3.0

Introdução ao lxqt-panel

O pacote lxqt-panel contém um painel leve de área de trabalho do X11.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do lxqt-panel

Exigidas

libdbusmenu-qt-0.9.3+16.04.20160218, liblxqt-1.3.0, lxqt-globalkeys-1.3.0, lxqt-menu-data-20230619, (solid-5.109.0 para lxqt ou KDE Frameworks-5.109.0) e menu-cache-1.1.0

Recomendadas

Instalação do lxqt-panel

Se o KDE Frameworks-5.109.0 não foi instalado em /usr, ajude o código a encontrar alguns cabeçalhos que ele precisa:

export CXXFLAGS+="-I $KF5_PREFIX/include"
export CFLAGS+="-I $KF5_PREFIX/include"

Instale o lxqt-panel executando os seguintes comandos:

mkdir -v 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

Explicações do Comando

-D<plugin>_PLUGIN=no: Desabilite um <plugin>, onde <plugin> pode ser CLOCK, COLORPICKER, CPULOAD, DIRECTORYMENU, DESKTOPSWITCH, KBINDICATOR, MAINMENU, MOUNT, QUICKLAUNCH, SENSORS, SHOWDESKTOP, NETWORKMONITOR, SYSSTAT, TASKBAR, STATUSNOTIFIER, TRAY, VOLUME, WORLDCLOCK ou SPACER

Conteúdo

Aplicativo Instalado: lxqt-panel
Bibliotecas Instaladas: vários plugins sob /usr/lib/lxqt-panel
Diretórios Instalados: /usr/lib/lxqt-panel, /usr/share/lxqt/panel e /usr/share/lxqt/panel

Descrições Curtas

lxqt-panel

é um painel leve baseado em Qt5 para a área de trabalho do LXQt

lxqt-powermanagement-1.3.0

Introdução ao lxqt-powermanagement

O pacote lxqt-powermanagement fornece o módulo de gerenciamento de energia para o LXQt.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do lxqt-powermanagement

Exigidas

liblxqt-1.3.0, (kidletime-5.109.0 para lxqt ou KDE Frameworks-5.109.0) e UPower-1.90.2

Instalação do lxqt-powermanagement

Instale o lxqt-powermanagement executando os seguintes comandos:

mkdir -v 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: lxqt-config-powermanagement e lxqt-powermanagement
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: Nenhum(a)

Descrições Curtas

lxqt-config-powermanagement

é a ferramenta GUI de configuração do lxqt-powermanagement

lxqt-powermanagement

é o módulo de gerenciamento de energia do LXQt

lxqt-runner-1.3.0

Introdução ao lxqt-runner

O pacote lxqt-runner fornece uma ferramenta usada para iniciar aplicativos rapidamente, digitando-se os nomes deles.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do lxqt-runner

Exigidas

lxqt-globalkeys-1.3.0 e muparser-2.3.4

Instalação do lxqt-runner

Instale o lxqt-runner executando os seguintes comandos:

mkdir -v 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

Usando o lxqt-runner

Para usar o lxqt-runner, pressione simultaneamente as teclas Alt-F2. Uma janela de diálogo aparece na parte superior central da tela. Quando você começa a digitar um comando, uma lista de possíveis correspondências aparece e muda conforme você continua digitando.

Conteúdo

Aplicativo Instalado: lxqt-runner
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: Nenhum(a)

Descrições Curtas

lxqt-runner

lança uma caixa de diálogo gráfica para executar rapidamente um aplicativo

Instruções finais da área de trabalho do LXQt

Instruções pós-instalação

Por favor, siga estas instruções antes de iniciar o LXQt pela primeira vez.

Dependências para iniciar o LXQt

Exigidas

openbox-3.6.1, ou outro gerenciador de janelas, como o Xfwm4-4.18.0, ou o kwin originário do Plasma-5.27.7. Observe que o IceWM-3.4.1 não é adequado para o LXQt.

Recomendadas
Opcionais

lightdm-1.32.0 ou outro Gerenciador de Telas, por exemplo, sddm-0.20.0, e XScreenSaver-6.06

Configuração final

Atualizações finais da base de dados do LXQt

As bases de dados de área de trabalho precisam ser criadas ou atualizadas neste ponto. Execute os seguintes comandos como o(a) usuário(a) root:

ldconfig                             &&
update-mime-database /usr/share/mime &&
xdg-icon-resource forceupdate        &&
update-desktop-database -q

Iniciando o LXQt

Você consegue iniciar o LXQt a partir de um TTY, usando o xinit-1.4.2 ou usando um gerenciador gráfico de telas, como o lightdm-1.32.0.

Para iniciar o LXQt usando o xinit-1.4.2, execute os seguintes comandos:

cat > ~/.xinitrc << "EOF"
exec startlxqt
EOF

startx

A sessão do X inicia no primeiro terminal virtual não usado, normalmente vt1. Você pode comutar para outro vtn pressionando simultaneamente as teclas Ctrl-Alt-Fn (n=2, 3, ...) . Para comutar de volta para a sessão do X, normalmente iniciada em vt1, use Ctrl-Alt-F1. O vt onde o comando startx foi executado exibirá muitas mensagens, incluindo mensagens de iniciação do X, aplicativos iniciados automaticamente com a sessão e, eventualmente, algumas mensagens de aviso e erro, mas essas são ocultadas pela interface gráfica. Você possivelmente prefira redirecionar essas mensagens para um arquivo de registro, que pode ser usado para fins de depuração. Isso pode ser feito iniciando o X com:

startx &> ~/.x-session-errors

Configuração inicial

Quando o LXQt inicia pela primeira vez, ele te solicitará o gerenciador de janelas para usar. Para começar, os(as) editores(as) do BLFS recomendam usar o openbox. Neste ponto, tanto o plano de fundo quanto o painel estarão pretos. Clicar com o botão direito no plano de fundo abrirá um menu e selecionar "Preferências da área de trabalho" te permitirá mudar a cor do plano de fundo ou configurar uma imagem de plano de fundo.

O painel estará na parte inferior da tela. Clicar com o botão direito no painel abrirá um menu que te permitirá personalizar o painel, incluindo adicionar pequenas engenhocas e configurar a cor do plano de fundo. Os(As) editores(as) do BLFS recomendam instalar, no mínimo, as pequenas engenhocas de Gerenciador de Aplicativos e Gerenciador de Tarefas.

Depois que o LXQt for iniciado pela primeira vez, os(as) editores(as) do BLFS recomendam passar pelas configurações apresentadas no Centro de Configuração do LXQt, o qual podem ser encontrado sob Configurações do LXQt no menu Preferências do inicializador de aplicativos.

Nota

Os arquivos de configuração de usuário(a) serão criados no diretório $HOME/.config/lxqt/. Para conseguir que os ícones das pequenas engenhocas exibam corretamente, o arquivo lxqt.conf possivelmente precise ser editado manualmente para incluir a linha "icon_theme=oxygen".

Capítulo 40. Aplicativos LXQt

Esta é uma pequena coleção de aplicativos opcionais que adicionam recursos extras para a área de trabalho do LXQt.

lximage-qt-1.3.0

Introdução ao lximage-qt

O pacote lximage-qt contém um visualizador de imagens leve e um aplicativo de captura de tela.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do lximage-qt

Exigidas

libfm-qt-1.3.0

Instalação do lximage-qt

Instale o lximage-qt executando os seguintes comandos:

mkdir -v build &&
cd       build &&

cmake -DCMAKE_BUILD_TYPE=Release  \
      -DCMAKE_INSTALL_PREFIX=/usr \
      ..       &&

make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Se você tiver o xdg-utils-1.1.3 instalado, como o(a) usuário(a) root, execute xdg-icon-resource forceupdate --theme hicolor.

Conteúdo

Aplicativo Instalado: lximage-qt
Bibliotecas Instaladas: Nenhum(a)
Diretório Instalado: Nenhum(a)

Descrições Curtas

lximage-qt

é um visualizador de imagens leve e um aplicativo de captura de tela. Existe uma entrada de menu em Utilitários para o aplicativo de captura de tela. A partir da linha de comando, você consegue obter uma captura de tela inteira ou de janela executando lximage-qt --screenshot

lxqt-archiver-0.8.0

Introdução ao lxqt-archiver

O pacote lxqt-archiver é um arquivador Qt de arquivos simples e leve, independente de área de trabalho.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do lxqt-archiver

Exigidas

liblxqt-1.3.0 e JSON-GLib-1.6.6

Instalação do lxqt-archiver

Instale o lxqt-archiver executando os seguintes comandos:

mkdir -v build &&
cd       build &&

cmake -DCMAKE_BUILD_TYPE=Release  \
      -DCMAKE_INSTALL_PREFIX=/usr \
      ..       &&

make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: lxqt-archiver
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: Nenhum(a)

Descrições Curtas

lxqt-archiver

é um arquivador de arquivos baseado em Qt

lxqt-notificationd-1.3.0

Introdução ao lxqt-notificationd

O pacote lxqt-notificationd é o processo de segundo plano de notificação do LXQt.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do lxqt-notificationd

Exigidas

liblxqt-1.3.0

Instalação do lxqt-notificationd

Instale o lxqt-notificationd executando os seguintes comandos:

mkdir -v build &&
cd       build &&

cmake -DCMAKE_BUILD_TYPE=Release  \
      -DCMAKE_INSTALL_PREFIX=/usr \
      ..       &&

make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: lxqt-config-notificationd e lxqt-notificationd
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/share/lxqt/translations/lxqt-config-notificationd e /usr/share/lxqt/translations/lxqt-notificationd

Descrições Curtas

lxqt-config-notificationd

é a ferramenta GUI de configuração do lxqt-notificationd

lxqt-notificationd

é o processo de segundo plano de notificação do LXQt

pavucontrol-qt-1.3.0

Introdução ao pavucontrol-qt

pavucontrol-qt é a porta Qt do utilitário de controle de volume pavucontrol, que é usado para ajustar os níveis de áudio no Pulseaudio. Ele é independente do ambiente de área de trabalho.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do pavucontrol-qt

Exigidas

liblxqt-1.3.0 e PulseAudio-16.1 (construído com suporte a GLib-2.76.4)

Instalação do pavucontrol-qt

Instale o pavucontrol-qt executando os seguintes comandos:

mkdir -v build &&
cd       build &&

cmake -DCMAKE_BUILD_TYPE=Release  \
      -DCMAKE_INSTALL_PREFIX=/usr \
      ..       &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativo Instalado: pavucontrol-qt
Bibliotecas Instaladas: Nenhum(a)
Diretório Instalado: Nenhum(a)

Descrições Curtas

pavucontrol-qt

é uma ferramenta GUI de configuração baseada em Qt para configurações de som usando o pulseaudio

qps-2.7.0

Introdução ao qps

O pacote qps contém um gerenciador de processos Qt.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do qps

Exigidas

liblxqt-1.3.0

Instalação do qps

Instale o qps executando os seguintes comandos:

mkdir -v build &&
cd       build &&

cmake -DCMAKE_BUILD_TYPE=Release  \
      -DCMAKE_INSTALL_PREFIX=/usr \
      ..       &&

make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Se você tiver o xdg-utils-1.1.3 instalado, como o(a) usuário(a) root, execute xdg-icon-resource forceupdate --theme hicolor.

Conteúdo

Aplicativo Instalado: qps
Bibliotecas Instaladas: Nenhum(a)
Diretório Instalado: Nenhum(a)

Descrições Curtas

qps

é um gerenciador de processos baseado em Qt

qtermwidget-1.3.0

Introdução ao qtermwidget

Como o nome sugere, o pacote qtermwidget é um pequena engenhoca de terminal para Qt.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do qtermwidget

Exigidas

lxqt-build-tools-0.13.0

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/qtermwidget

Instalação do qtermwidget

Instale o qtermwidget executando os seguintes comandos:

mkdir -v 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

Aplicativo Instalado: Nenhum(a)
Bibliotecas Instaladas: libqtermwidget5.so
Diretórios Instalados: /usr/include/qtermwidget5, /usr/share/lib/cmake/qtermwidget5 e /usr/share/qtermwidget5

Descrições Curtas

libqtermwidget5.so

fornece uma pequena engenhoca de terminal para Qt5

qterminal-1.3.0

Introdução ao qterminal

O pacote qterminal contém um emulador de terminal baseado em pequena engenhoca de Qt para o Qt com suporte para múltiplas abas.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do qterminal

Exigidas

qtermwidget-1.3.0

Instalação do qterminal

Instale o qterminal executando os seguintes comandos:

mkdir -v 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

Aplicativo Instalado: qterminal
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/share/qterminal

Descrições Curtas

qterminal

é um emulador de terminal leve baseado em Qt

screengrab-2.6.0

Introdução ao screengrab

O pacote screengrab é uma ferramenta multiplataforma para fazer capturas de tela rapidamente.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do screengrab

Exigidas

(kwindowsystem-5.109.0 para lxqt ou KDE Frameworks-5.109.0) e libqtxdg-3.11.0

Instalação do screengrab

Se o KDE Frameworks-5.109.0 não foi instalado em /usr, ajude o código a encontrar alguns cabeçalhos que ele necessita:

export CXXFLAGS+="-I $KF5_PREFIX/include"
export CFLAGS+="-I $KF5_PREFIX/include"

Instale o screengrab executando os seguintes comandos:

mkdir -v build &&
cd       build &&

cmake -DCMAKE_BUILD_TYPE=Release  \
      -DCMAKE_INSTALL_PREFIX=/usr \
      ..       &&

make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Se você tiver o xdg-utils-1.1.3 instalado, como o(a) usuário(a) root, execute xdg-icon-resource forceupdate --theme hicolor.

Conteúdo

Aplicativo Instalado: screengrab
Bibliotecas Instaladas: Nenhum(a)
Diretório Instalado: Nenhum(a)

Descrições Curtas

screengrab

é uma ferramenta multiplataforma para criar capturas de tela rapidamente

Parte XII. Software do X

Capítulo 41. Aplicativos de Escritório

Este capítulo é uma coleção de aplicativos que são úteis para visualizar ou editar documentos de escritório. Alguns se especializam em fazer uma coisa (como processar texto ou manipular uma planilha). LibreOffice é uma suíte de aplicativos que pode manipular muitos formatos, incluindo apresentações em PowerPoint.

AbiWord-3.0.5

Introdução ao AbiWord

AbiWord é um processador de texto útil para escrever informes, cartas e outros documentos formatados.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

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.83.0, cURL-8.2.1, FriBidi-1.0.13, GOffice-0.10.55 e wv-1.2.9

Recomendadas
Opcionais

dbus-glib-0.112, evolution-data-server-3.48.4, gobject-introspection-1.76.1, libchamplain-0.12.21, libgcrypt-1.10.2, libical-3.0.16, libsoup-2.74.3, Redland-1.0.17, telepathy-glib-0.24.2, Valgrind-3.21.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 Editor(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.5.0.

--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 corretamente usando uma plataforma LFS 12.0.

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.76.1, PyGObject-3.44.1, Valgrind-3.21.0 (para alguns testes), dblatex (para documentos PDF), libgda, Mono, pxlib e Psiconv

Instalação do Gnumeric

Instale o Gnumeric executando os seguintes comandos:

./configure --prefix=/usr  &&
make

Esse pacote precisa ser instalado antes da suíte de teste ser executada.

Agora, como o(a) usuário(a) root:

make install

Para executar os testes, emita make check. Os testes deveriam ser executados a partir de uma sessão ativa do X e DConf-0.40.0 deveria ser instalado para evitar algumas falhas. 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.6.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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência Central: https://download.documentfoundation.org/libreoffice/src/7.6.0/libreoffice-7.6.0.3.tar.xz

  • Soma de verificação MD5 da Transferência Central: b6994286fa3c274d1beac33aca80c442

  • Tamanho da Transferência Central: 267 MB

  • Espaço em disco estimado exigido: 10 GB incluindo os arquivos adicionais se baixados durante a construção (727 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: 40 UPC com paralelismo=8 (com variação devido ao tempo de transferência)

Transferências Adicionais

Nota

Cerca de oitenta (80) pequenos tarballs e arquivos zip serão baixados durante a construção. O tempo de transferência variará com a velocidade local da Internet e carga do servidor. O tempo de transferência é de cerca de três (03) minutos em uma conexão de fibra e provavelmente não muito mais que dez (10) minutos em uma conexão ADSL. Se você não tiver baixado um ou mais do seguinte, 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.4, Which-2.21 e Zip-3.0

Nota

Uma conexão com a Internet é necessária para construir esse pacote.

Recomendadas

Nota

A maioria desses pacotes é recomendada porque, se não estiverem instalados, o processo de construção compilará e instalará a própria versão dela (geralmente mais antiga), com o efeito colateral de aumentar o espaço em disco instalado e o tempo de construção.

Opcionais

Avahi-0.8, BlueZ-5.68, DConf-0.40.0, desktop-file-utils-0.26, Doxygen-1.9.7 (não relevante se usar --disable-odk), evolution-data-server-3.48.4, GDB-13.2, GnuTLS-3.8.1, KDE Frameworks-5.109.0, libpaper-2.1.1, MariaDB-10.11.4 ou MySQL, MIT Kerberos V5-1.21.2, NASM-2.16.01, (Qt-5.15.10 ou qt-alternate-5.15.10), SANE-1.0.32, telepathy-glib-0.24.2, Valgrind-3.21.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 Editor(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.6.0.3.tar.xz --no-overwrite-dir &&
cd libreoffice-7.6.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.6.0.3.tar.xz external/tarballs/ &&
ln -sv ../../../libreoffice-help-7.6.0.3.tar.xz         external/tarballs/ &&
ln -sv ../../../libreoffice-translations-7.6.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 o sistema de construção:

ln -sv src/libreoffice-help-7.6.0.3/helpcontent2/ &&
ln -sv src/libreoffice-dictionaries-7.6.0.3/dictionaries/ &&
ln -sv src/libreoffice-translations-7.6.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.6.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 você estiver construir em uma máquina de 32 bits, CFLAGS está configurada como -Os, o que quebra a construção. Evite isso emitindo:

case $(uname -m) in
   i?86) sed /-Os/d -i solenv/gbuild/platform/LINUX_INTEL_GCC.mk ;;
esac

Se você decidir passar o --disable-java para configurar, corrija um problema que causa falha na construção:

sed -i '940i #if HAVE_FEATURE_JAVA' cui/source/options/optjava.cxx &&
sed -i '966i #endif'                cui/source/options/optjava.cxx

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

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

--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. Também é necessário para alguns componentes opcionais de interface de usuário(a).

--without-fonts: LibreOffice inclui diversas fontes TrueType de terceiros(as). Se você já tiver instalado algumas ou todas as mesmas fontes, possivelmente prefira usar as versões do sistema.

--enable-kf5: Constrói com integração KDE/Plasma. Se o (Qt-5.15.10 ou qt-alternate-5.15.10) e (ou) o KDE Frameworks-5.109.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.

--enable-qt5: Essa chave habilita suporte para integração com Qt5 e o mecanismo de temas do Qt5. Se (Qt-5.15.10 ou qt-alternate-5.15.10) não estiver instalado em /usr, os diretórios de inclusão e biblioteca precisarão ser especificados nas variáveis de ambiente QT5INC e QT5LIB.

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 42. 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-44.6

Introdução ao Epiphany

Epiphany é um navegador da web do GNOME simples, mas poderoso, direcionado a usuários(as) não técnicos(as). Os princípios dele são simplicidade e conformidade com padrões.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do Epiphany

Exigidas

Gcr-4.1.0, gnome-desktop-44.0, ISO Codes-4.15.0, JSON-GLib-1.6.6, libadwaita-1.3.4, libportal-0.6, Nettle-3.9.1 e WebKitGTK-2.41.91 (construído com GTK-4)

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 Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/epiphany

Instalação do Epiphany

Instale o Epiphany executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

Agora, como o(a) usuário(a) root:

ninja install

Nota

Se você instalou o pacote em teu sistema usando um método DESTDIR, /usr/share/glib-2.0/schemas/gschemas.compiled não foi atualizado/criado. Crie (ou atualize) o arquivo usando o seguinte comando como o(a) usuário(a) root:

glib-compile-schemas /usr/share/glib-2.0/schemas

Um teste falharia se esse pacote não estivesse instalado, de forma que é melhor executar a suíte de teste depois da instalação. Para testar os resultados, emita 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-23.08.0

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do falkon

Exigidas

extra-cmake-modules-5.109.0, KDE Frameworks-5.109.0 (para karchive) e qtwebengine-5.15.15

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.109.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 Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/falkon

Instalação do falkon

Instale o falkon executando os seguintes comandos:

mkdir build &&
cd    build &&

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

Nota

Ao atualizar esse pacote, é possível que o conteúdo do aplicativo permaneça vazio mesmo que todo o resto pareça estar funcionando corretamente. Nesse caso, tente remover ~/.cache/falkon e reiniciar o aplicativo.

Se você instalou o Pyside2, você irá querer examinar hellopython.py que está no diretório scripts/ e, talvez, copiá-lo para o teu diretório inicial.

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-115.2.0esr

Introdução ao Firefox

Firefox é um navegador autônomo baseado na base de código Mozilla.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Nota

O nome do diretório é firefox-115.2.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

Cbindgen-0.24.3, dbus-glib-0.112, GTK+-3.24.38, libnotify-0.8.2, LLVM-16.0.5 (com clang, usado para bindgen mesmo se usar gcc), nodejs-18.17.1, PulseAudio-16.1 (ou alsa-lib-1.2.9 se você editar o mozconfig; agora obsoletado pelo Mozilla); em quaisquer casos, por favor, leia as Informações de Configuração, Python-3.11.4 (reconstruído depois de instalar o SQLite-3.42.0), 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-8.2.1, Doxygen-1.9.7, FFmpeg-6.0 (tempo de execução, para reproduzir arquivos mov, mp3 ou mp4), liboauth-1.0.3, pciutils-3.10.0 (tempo de execução), Valgrind-3.21.0, Wget-1.21.4, Wireless Tools-29, libproxy

Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/firefox

Instalação do Firefox

A configuração do Firefox é realizada criando-se um arquivo mozconfig contendo as opções desejadas de configuração. Um mozconfig padrão é criado abaixo. Para ver a lista completa de opções de configuração disponíveis (e uma descrição abreviada de algumas delas), emita ./mach configure -- --help | less. Você também possivelmente revise o arquivo inteiro e descomente quaisquer outras opções desejadas. Crie o arquivo emitindo o seguinte comando:

cat > mozconfig << "EOF"
# 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

# O sandboxing funciona bem em x86_64, mas pode causar problemas em outras
# plataformas. Se não estiver em x86_64, por exemplo, i686, é recomendado
# descomentar a seguinte chave.
#ac_add_options --disable-sandbox

# 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:

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

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-115.2.0 e Thunderbird-115.2.0.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Nota

O tarball seamonkey-2.53.17.source.tar.xz desempacotará para o diretório seamonkey-2.53.17.

Dependências do SeaMonkey

Exigidas

Autoconf-2.13, Cbindgen-0.24.3, GTK+-3.24.38, nodejs-18.17.1, 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.9, dbus-glib-0.112, GConf-3.2.6, startup-notification-0.12, Valgrind-3.21.0, Wget-1.21.4, Wireless Tools-29, Hunspell e Watchman

Observações de Editor(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.

Corrija um problema com o módulo python 'distro' incluído:

sed -e '1012 s/stderr=devnull/stderr=subprocess.DEVNULL/' \
    -e '1013 s/OSError/(OSError, subprocess.CalledProcessError)/' \
    -i third_party/python/distro/distro.py

Compile o SeaMonkey executando os seguintes comandos:

export CC=clang CXX=clang++          &&
./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: 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. 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 43. Outros Aplicativos baseados no X

Estes aplicativos usam o Sistema de Janelas X e não se enquadram facilmente em nenhum dos outros capítulos.

Balsa-2.6.4

Introdução ao Balsa

O pacote Balsa contém um cliente de mensagens baseado em GNOME-2.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

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.5.0, GMime-3.2.7, GPGME-1.21.0, GTK+-3.24.38 e libnotify-0.8.2

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.21.0, MIT Kerberos V5-1.21.2, OpenLDAP-2.6.6, Procmail-3.22, SQLite-3.42.0, WebKitGTK-2.41.91, html2text, osmo, rubrica, yelp-tools

Instalação do Balsa

Primeiro, corrija problemas de construção ao configurar sem WebKitGTK+ ou ao usar WebKitGTK+-2.38 ou posterior.

patch -Np1 -i ../balsa-2.6.4-upstream_fixes-2.patch

Instale o Balsa executando os seguintes comandos:

./configure --prefix=/usr            \
            --sysconfdir=/etc        \
            --localstatedir=/var/lib \
            --without-html-widget    &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--without-html-widget: Essa opção desabilita a construção do renderizador HTML. Se você quiser que o renderizador HTML seja construído, verifique se você tem o WebKitGTK-2.41.91 instalado e, então, remova essa opção.

--with-canberra: Habilita suporte a libcanberra.

--with-compface: Habilita suporte a compface.

--with-gcr: Usa libgcr para suporte TLS.

--with-gss: Habilita suporte GSSAPI.

--with-ldap: Use essa opção para habilitar o suporte ao catálogo de endereços LDAP se o OpenLDAP estiver instalado.

--with-libsecret: Habilita suporte a senhas fortes e suporte para o gnome-keyring armazenar senhas.

--with-sqlite: Use essa opção para habilitar o suporte ao catálogo de endereços SQLite se o SQLite estiver instalado.

Conteúdo

Aplicativos Instalados: balsa e balsa-ab
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /etc/sounds/events, /usr/share/balsa e /usr/share/sounds/balsa

Descrições Curtas

balsa

é um cliente de mensagens baseado em glib

balsa-ab

é o aplicativo de catálogo de endereços usado pelo balsa

feh-3.10

Introdução ao feh

feh é um visualizador de imagens rápido e leve que usa Imlib2. É orientado a linha de comando e suporta múltiplas imagens por meio de apresentações de slides, navegação em miniaturas ou múltiplas janelas, e montagens ou impressões de índice (usando fontes TrueType para exibir informações do arquivo). Os recursos avançados incluem zoom dinâmico rápido, carregamento progressivo, carregamento via HTTP (com suporte de recarga para assistir a câmeras da web), abertura recursiva de arquivos (apresentação de slides de uma hierarquia de diretórios) e controle de roda/teclado do mouse.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP): https://feh.finalrewind.org/feh-3.10.tar.bz2

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 8adf6db9c5b18816df5ce539244d2329

  • Tamanho da transferência: 2,0 MB

  • Espaço em disco estimado exigido: 5,7 MB (com testes)

  • Tempo de construção estimado: menos que 0,1 UPC (com testes)

Dependências do feh

Exigidas

libpng-1.6.40 e imlib2-1.12.0 (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-3.0.0 (para rotação de imagem sem perdas) e ImageMagick-7.1.1-15 (para carregar formatos não suportados)

Opcionais (suíte de teste)

Test-Command-0.11 (exigido)

Instalação do feh

Instale o feh executando os seguintes comandos:

sed -i "s:doc/feh:&-3.10:" config.mk &&
make PREFIX=/usr

Para testar os resultados, emita: make test.

Agora, como o(a) usuário(a) root:

make PREFIX=/usr install

Explicações do Comando

sed -i "s:doc/feh:&-3.10:" config.mk: Esse sed corrige o diretório de documentação para um versionado, conforme usado no BLFS.

curl=0: Use esse sinalizador do make se você não tiver o pacote cURL instalado.

exif=1: Esse sinalizador do make habilita suporte integrado à exibição de rótulos Exif.

Conteúdo

Aplicativo Instalado: feh
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/share/doc/feh-3.10 e /usr/share/feh

Descrições Curtas

feh

é um visualizador e catalogador de imagens

FontForge-20230101

Introdução ao FontForge

O pacote FontForge contém um editor de fontes de contorno que te permite criar tuas próprias fontes postscript, truetype, opentype, cid-keyed, multi-master, cff, svg e bitmap (bdf, FON, NFNT), ou editar as existentes.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do FontForge

Exigidas

libspiro-20220722 e libxml2-2.10.4

Recomendadas
Opcionais

giflib-5.2.1, git-2.41.0, libjpeg-turbo-3.0.0, libtiff-4.5.1, sphinx-7.1.2 (para construir documentação HTML) e WOFF2-1.0.2

Instalação do FontForge

Primeiro corrija um problema com traduções antigas exposto por gettext-0.22:

sed -i.orig 's/\(%[^%[:space:]]*\)hs/\1s/g' \
 fontforgeexe/searchview.c po/de.po po/ca.po \
 po/hr.po po/it.po po/pl.po po/uk.po po/en_GB.po \
 po/fr.po po/vi.po po/ko.po po/ja.po

Instale o FontForge executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -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.4/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.34

Introdução ao Gimp

O pacote Gimp contém o GNU Image Manipulation Program que é útil para retoque de fotos, composição de imagens e criação de imagens.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP): https://download.gimp.org/pub/gimp/v2.10/gimp-2.10.34.tar.bz2

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 0dae3a42d261621d62a336ef2aee052a

  • Tamanho da transferência: 30 MB

  • Espaço em disco estimado exigido: 876 MB (195 MB instalado, adicionar 815 MB para testes)

  • Tempo de construção estimado: 2,0 UPC (Usando paralelismo=4; adicionar 1,4 UPC para testes)

Transferências Adicionais

  • Transferência (HTTP): https://download.gimp.org/pub/gimp/help/gimp-help-2.10.34.tar.bz2

  • Tamanho da transferência: 158 MB

  • Soma de verificação MD5 da transferência: 5e393d61c802e73ffe6c550759ed0853

  • Espaço em disco estimado exigido: From 412 MB (en only) to 1.8 GB (for all languages)

  • Tempo de construção estimado: 2.1 SBU (en only), 13 SBU, with parallelism=4, for all languages

Dependências do Gimp

Exigidas

gegl-0.4.46, gexiv2-0.14.2, glib-networking-2.76.1, GTK+-2.24.33, HarfBuzz-8.1.1. libjpeg-turbo-3.0.0, libmypaint-1.6.1, librsvg-2.56.3, libtiff-4.5.1, Módulo python2 libxml2-2.10.4 (para construir os arquivos de ajuda traduzidos), Little CMS-2.14, mypaint-brushes-1.3.1, Poppler-23.08.0 (incluindo poppler-data) e um ambiente gráfico

Recomendadas
Opcionais

AAlib-1.4rc5, alsa-lib-1.2.9, Gvfs-1.50.6 (para acessar a ajuda online), libmng-2.0.3, libunwind-1.6.2, libwebp-1.3.1, 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 Editor(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.38 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.6, 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 cs da de en en_GB es fa fr hr ko lt nl nn pt pt_BR ro sl sv uk 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 cs da de en en_GB es fa...": por padrão, os arquivos de ajuda serão renderizados em todos os idiomas disponíveis. Remova os códigos de quaisquer idiomas que você não desejar construir.

--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 corretamente usando uma plataforma LFS 12.0.

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.8 e parted-3.6

Opcionais

btrfs-progs-6.3.3 (se usar um sistema de arquivos btrfs), exfatprogs e udftools

Instalação do Gparted

Instale o Gparted executando os seguintes comandos:

./configure --prefix=/usr    \
            --disable-doc    \
            --disable-static &&
make

Para executar os testes, emita: make check.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

--disable-doc: Essa chave desabilita a construção da documentação opcional. Remova-a se você tiver instalado o GNOME Doc Utils.

--enable-xhost-root: Essa chave fornece uma solução provisória para permitir que o GParted execute sob o Wayland usando xhost para conceder e revogar acesso de root para a tela do X11.

Usando o Gparted

Para manipular sistemas de arquivos, o Gparted tem uma dependência de tempo de execução de várias ferramentas do sistema de arquivos (você somente precisa instalar as ferramentas para os sistemas de arquivos que você usa atualmente): Hdparm-9.65 (exigido para exibir opcionalmente informações do número de série do dispositivo), btrfs-progs-6.3.3, dosfstools-4.2, e2fsprogs (instalado como parte do LFS), jfsutils-1.1.15, reiserfsprogs-3.6.27, xfsprogs-6.4.0, 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.4p1.

ssh-askpass

Para usar opcionalmente o ssh-askpass-9.4p1 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 corretamente usando uma plataforma LFS 12.0.

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.76.4 e libnotify-0.8.2

Recomendadas
Opcionais

dbus-glib-0.112, ISO Codes-4.15.0, libnotify-0.8.2, pciutils-3.10.0, libproxy, luajit, se Python estiver habilitado, cffi e pycparser.

Instalação do HexChat

Instale o HexChat executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup ..              \
      --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.3

Introdução ao Inkscape

Inkscape é um editor o que você vê é o que você obtém de gráficos vetoriais escaláveis. É útil para criar, visualizar e mudar imagens SVG.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP): https://inkscape.org/gallery/item/42328/inkscape-1.3.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 3b16db43ffdae2156c4f318a44c32bbd

  • Tamanho da transferência: 82 MB

  • Espaço em disco estimado exigido: 870 MB (190 MB instalado)

  • Tempo de construção estimado: 3,5 UPC (com paralelismo=8)

Nota

O tarball inkscape-1.3.tar.xz extrairá para o diretório inkscape-1.3_2023-07-21_0e150ed6c4/.

Dependências do Inkscape

Exigidas

Boost-1.83.0, double-conversion-3.3.0, GC-8.2.4, Gsl-2.7.1, Gtkmm-3.24.8, libsoup-2.74.3, libxslt-1.1.38, Poppler-23.08.0, popt-1.19 e Wget-1.21.4 (para baixar as dependências de teste)

Recomendadas
Opcionais

Aspell-0.60.8, dbus-1.14.8 (para executar inkscape a partir de conjuntos de comandos sequenciais), Doxygen-1.9.7, gspell-1.12.2, GraphicsMagick, libcdr, libvisio, libwpg (ou libwpd)

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 pode ocasionalmente falhar 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.38 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.3.0, /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 corretamente usando uma plataforma LFS 12.0.

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.8, Doxygen-1.9.7, evolution-data-server-3.48.4, GConf-3.2.6, Graphviz-8.1.0, libidn-1.41 (exigido, se você desejar executar a suíte de teste), libnsl-2.0.0, NetworkManager-1.44.0, SQLite-3.42.0 (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.21.2 (exigido para suporte Kerberos no módulo Zephyr)

Opcionais (tempo de execução)

xdg-utils-1.1.3

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.7 instalado (Graphviz-8.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.38 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.5.

--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.44.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.1 e nss-3.92 instalados, mas quiser usar o nss-3.92 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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do rox-filer

Exigidas

libglade-2.6.4 e shared-mime-info-2.2

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                                                  [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 corretamente usando uma plataforma LFS 12.0.

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

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, configure uma cor de plano de fundo e de primeiro plano e carregue uma fonte Xft (como o(a) usuário(a) root):

cat >> /etc/X11/app-defaults/URxvt << "EOF"
! Use a cor especificada como a cor de plano de fundo de janelas [padrão branca]
URxvt*background: black

! Use a cor especificada como a cor de primeiro plano de janelas [padrão preta]
URxvt*foreground: yellow

! Selecione as fontes a serem usadas. Esta é uma lista separada por vírgulas de nomes de fontes
URxvt*font: xft:Monospace:pixelsize=18

! Lista(s) separada(s) por vírgulas de conjuntos de comandos sequenciais de extensão Perl (padrão: "default")
URxvt*perl-ext: matcher

! Especifica o aplicativo a ser iniciado com um argumento URL.
URxvt*url-launcher: firefox

! Quando clicado com o botão de mouse especificado no recurso "matcher.button"
! (padrão 2, ou meio), o aplicativo especificado no recurso "matcher.launcher"
! (padrão, o recurso "url-launcher", "sensible-browser" ) será iniciado com o
! texto correspondente como primeiro argumento.
! Abaixo, padrão modificado para botão esquerdo de mouse.
URxvt*matcher.button:     1
EOF

Para a finalidade de visualizar os recursos definidos do X, emita:

xrdb -query

Para a finalidade de adicionar as modificações do novo arquivo de configuração do(a) usuário(a), mantendo as configurações anteriores do X (é claro, a menos que você esteja mudando alguma definida anteriormente), emita:

xrdb -merge ~/.Xresources

O aplicativo rxvt-unicode também pode ser executado em modo de processo de segundo plano, o que torna possível abrir múltiplas janelas de terminal dentro do mesmo processo. O cliente urxvtc então se conecta ao processo de segundo plano urxvtd e solicita uma nova janela de terminal. Use essa opção com cuidado. Se o processo de segundo plano travar, todos os processos em execução nas janelas do terminal serão terminados.

Você consegue iniciar o processo de segundo plano urxvtd no conjunto de comandos sequenciais do sistema ou pessoal de inicialização de sessão do X (por exemplo, ~/.xinitrc) adicionando as seguintes linhas perto o topo do conjunto de comandos sequenciais:

# Inicia o processo de segundo plano urxvtd.
urxvtd -q -f -o &

Para mais informações, examine as páginas de manual urxvt, urxvtd, urxvtc e urxvtperl.

Se você usa um Ambiente de Área de Trabalho, uma entrada de menu pode ser incluída, emitindo-se, como o(a) usuário(a) root:

cat > /usr/share/applications/urxvt.desktop << "EOF" &&
[Desktop Entry]
Encoding=UTF-8
Name=Rxvt-Unicode Terminal
Comment=Use a linha de comandos
GenericName=Terminal
Exec=urxvt
Terminal=false
Type=Application
Icon=utilities-terminal
Categories=GTK;Utility;TerminalEmulator;
#StartupNotify=true
Keywords=console;command line;execute;
EOF

update-desktop-database -q

Para isso, você precisa do desktop-file-utils-0.26 e, pelo menos, um dos gnome-icon-theme-3.12.0, oxygen-icons5-5.109.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-115.2.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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do Thunderbird

Exigidas

Cbindgen-0.24.3, dbus-glib-0.112, GTK+-3.24.38, LLVM-16.0.5 incluindo clang, nodejs-18.17.1, PulseAudio-16.1 (ou alsa-lib-1.2.9 se você editar o mozconfig; embora esteja agora obsoletado pelo mozilla), Python-3.11.4 (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

pciutils-3.10.0 (tempo de execução), Wget-1.21.4, Wireless Tools-29 e watchman

Observações de Editor(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 ./mach configure -- --help | less. 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

# 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

Corrija um problema ocorrente quando se construir com GCC-13:

sed -e '/<exception>/i#include <cstdint>' \
    -i comm/third_party/rnp/src/libsexp/include/sexp/sexp-error.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.

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

Introdução ao Tigervnc

Tigervnc é uma implementação avançada de VNC (Virtual Network Computing). Ele permite a criação de um servidor Xorg não vinculado a um console físico e também fornece um cliente para visualização da área de trabalho gráfica remota.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

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.27.2, FLTK-1.3.8, GnuTLS-3.8.1, libgcrypt-1.10.2, libjpeg-turbo-3.0.0, Pixman-0.42.2, Systemd-254 (com Linux-PAM-1.5.3), Aplicativos do Xorg, xinit-1.4.2 e Fontes Legadas do Xorg

Recomendadas

Instalação do Tigervnc

Primeiro, faça ajustes nos arquivos de configuração para torná-los compatíveis com sistemas LFS:

patch -Np1 -i ../tigervnc-1.13.1-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.1

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

Introdução ao Transmission

Transmission é um cliente BitTorrent multiplataforma e de fonte aberto. Isso é útil para baixar arquivos grandes (como ISOs do Linux) e reduz a necessidade para os(as) distribuidores(as) fornecerem largura de banda de servidor.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do Transmission

Exigidas

cURL-8.2.1

Recomendadas
Recomendadas (para construir uma GUI)
Opcionais

nodejs-18.17.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 Editor(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.3 \
      .. &&

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 (Qt-5.15.10 ou qt-alternate-5.15.10) 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.8 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.17.1 estiver instalado.

-DREBUILD_WEB=ON: Essa chave força a reconstrução do cliente web. Precisa de nodejs-18.17.1 e de uma conexão de rede de intercomunicação. O padrão é o de não reconstruir.

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

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

Introdução ao xarchiver

XArchiver é um gerenciador GTK+ de arquivamentos com suporte para tar, xz, bzip2, gzip, zip, 7z, rar, lzo e muitos outros formatos de arquivamento.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

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

Opcionais (tempo de execução)

cpio-2.14, LZO-2.10, p7zip-17.04, UnRar-6.2.10, UnZip-6.0 e Zip-3.0

Observações de Editor(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.21 &&
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.38 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.6 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.21 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 corretamente usando uma plataforma LFS 12.0.

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.29 ou W3m

Exigidas (tempo de execução)

Aplicativos do Xorg

Opcionais (tempo de execução)

dbus-1.14.8

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 corretamente usando uma plataforma LFS 12.0.

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.38, libglade-2.6.4 e Aplicativos do Xorg

Recomendadas
Opcionais

GDM-44.1, Linux-PAM-1.5.3, MIT Kerberos V5-1.21.2 e GLE

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 XIII. Multimídia

Capítulo 44. 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.9

Introdução ao ALSA Library

O pacote ALSA Library contém a biblioteca ALSA usada por aplicativos (incluindo ALSA Utilities) que exigem acesso para a interface de som ALSA.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do ALSA Library

Recomendadas (tempo de execução)

Systemd-254

Nota

Se a dependência recomendada de tempo de execução não estiver instalada, você possivelmente precise executar qualquer aplicativo que exija a biblioteca ALSA como o(a) usuário(a) root ou um(a) usuário(a) no grupo audio.

Opcionais

Doxygen-1.9.7, Python-2.7.18 e alsa-ucm-conf

Configuração do Núcleo

Se necessário, habilite as seguintes opções na configuração do núcleo e recompile o núcleo:

Device Drivers --->
  <*/M> Sound card support --->                                          [SOUND]
    # Select settings and drivers appropriate for your hardware
    # in the submenu:
    <*/M> Advanced Linux Sound Architecture --->                           [SND]

Na seção Device Drivers ⇒ Sound card support ⇒ Advanced Linux Sound Architecture da configuração do núcleo, selecione as configurações e controladores apropriados para o teu hardware. Se necessário, recompile e instale teu novo núcleo.

Instalação do ALSA Library

Instale o ALSA Library executando os seguintes comandos:

./configure &&
make

Se você tiver o Doxygen instalado e desejar construir a documentação da API da biblioteca, execute os seguintes comandos a partir do diretório de nível superior da árvore do fonte:

make doc

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

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.9/html/search &&
install -v -m644 doc/doxygen/html/*.* \
                /usr/share/doc/alsa-lib-1.2.9/html &&
install -v -m644 doc/doxygen/html/search/* \
                /usr/share/doc/alsa-lib-1.2.9/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.9

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do ALSA Plugins

Exigidas

alsa-lib-1.2.9

Opcionais

FFmpeg-6.0, libsamplerate-0.2.2, PulseAudio-16.1, Speex-1.2.1, JACK, libavtp e maemo

Instalação do ALSA Plugins

Instale o ALSA Plugins executando os seguintes comandos:

./configure --sysconfdir=/etc &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Numerosos módulos libasound_module_<módulo>.so, incluindo conf_pulse, ctl_arcam_av, ctl_oss, ctl_pulse, pcm_a52, pcm_jack, pcm_oss, pcm_pulse, pcm_speex, pcm_upmix, pcm_usb_stream, pcm_vdownmix, rate_lavrate*, rate_samplerate* e rate_speexrate*
Diretórios Instalados: /usr/lib/alsa-lib

Descrições Curtas

libasound_module_pcm_oss.so

Permite aplicativos nativos ALSA executarem em OSS

libasound_module_pcm_upmix.so

Permite mistura aumentadora de som para 4 ou 6 canais

libasound_module_pcm_vdownmix.so

Permite mistura redutora de som de 4-6 canais para saída estéreo de 2 canais

libasound_module_pcm_jack.so

Permite aplicativos nativos ALSA funcionem com o jackd

libasound_module_pcm_pulse.so

Permite aplicativos nativos ALSA acessarem um processo de segundo plano de som PulseAudio

libasound_module_pcm_a52.so

Converte o formato de som linear S16 para o formato comprimido A52 e envia-o para uma saída SPDIF

libasound_module_rate_samplerate.so

Fornece um conversor externo de taxa por intermédio da libsamplerate

alsa-utils-1.2.9

Introdução ao ALSA Utilities

O pacote ALSA Utilities contém vários utilitários que são úteis para controlar tua placa de som.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do ALSA Utilities

Exigidas

alsa-lib-1.2.9

Opcionais

docutils-0.20.1, fftw-3.3.10, libsamplerate-0.2.2, xmlto-0.0.28 e Dialog

Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/alsa-utils

Instalação do ALSA Utilities

Esse pacote fornece a própria implementação dele das funções strlcpy e strlcat. Mas elas são fornecidas pela Glibc-2.38 agora, de forma que nós precisamos remover a implementação personalizada para evitar um conflito com o cabeçalho da Glibc:

echo '' > alsactl/init_sysdeps.c

Instale o ALSA Utilities executando os seguintes comandos:

./configure --disable-alsaconf \
            --disable-bat   \
            --disable-xmlto \
            --with-curses=ncursesw &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--disable-alsaconf: Essa chave desabilita construir a ferramenta de configuração alsaconf que é incompatível com o Udev.

--disable-xmlto: Omita essa chave se você tiver instalado o xmlto-0.0.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

Como o(a) usuário(a) root, aplique a configuração padrão para a placa de som:

alsactl init

Observe que todos os canais da tua placa de som possivelmente estejam silenciados por padrão. Você consegue usar o aplicativo alsamixer para mudar isso. Use o speaker-test para verificar se tuas configurações foram aplicadas corretamente. Você deveria ouvir ruído rosa nos teus alto-falantes.

O aplicativo alsactl normalmente é executado a partir de uma regra padrão do udev. Na primeira vez que for executado, ele reclamará que não existe estado em /var/lib/alsa/asound.state. Você pode evitar isso executando o seguinte comando como o(a) usuário(a) root:

alsactl -L store

As configurações de volume deveriam ser restauradas a partir do estado salvo pelo Udev quando o dispositivo for detectado (durante a inicialização ou quando plugado para dispositivos USB).

Em sistemas que tem múltiplas placas de som, você possivelmente necessite ajustar o dispositivo de áudio padrão, de forma que possa obter saída a partir dos teus alto-falantes. Para configurar o dispositivo padrão, primeiro verifique o arquivo /proc/asound/cards para determinar qual número precisa configurar. Depois que souber essas informações, configure a placa padrão com o seguinte comando como o(a) usuário(a) root:

cat > /etc/asound.conf << "EOF"
# Inicia /etc/asound.conf

defaults.pcm.card 1
defaults.ctl.card 1

# Termina /etc/asound.conf
EOF

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do ALSA Tools

Exigidas

alsa-lib-1.2.9

Opcionais

GTK+-2.24.33 (para construir echomixer, envy24control e rmedigicontrol), GTK+-3.24.38 (para construir hdajackretask) e FLTK-1.3.8 (para construir hdspconf e hdspmixer)

Instalação do ALSA Tools

Nota

Ao instalar vários pacotes em um conjunto de comandos sequenciais, a instalação precisa ser feita como o(a) usuário(a) root. Existem três opções gerais que podem ser usadas para fazer isso:

  1. Executar o conjunto inteiro de comandos sequenciais como o(a) usuário(a) root (não recomendado).

  2. Usar o comando sudo originário do pacote Sudo-1.9.14p3.

  3. Usar su -c "argumentos do comando" (aspas exigidas) que solicitará a senha do(a) root para cada iteração do loop.

Uma maneira de lidar com essa situação é a de se criar uma função curta do bash que selecione automaticamente o método apropriado. Depois que o comando for configurado no ambiente, ele não precisará ser configurado novamente.

as_root()
{
  if   [ $EUID = 0 ];        then $*
  elif [ -x /usr/bin/sudo ]; then sudo $*
  else                            su -c \\"$*\\"
  fi
}

export -f as_root

Primeiro, inicie um 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 arquivos de 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 arquivos de 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 arquivos de 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 corretamente usando uma plataforma LFS 12.0.

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)

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do ALSA OSS

Exigidas

alsa-lib-1.2.9

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Transferências Adicionais

Dependências do AudioFile

Exigidas

alsa-lib-1.2.9

Recomendadas
Opcionais

asciidoc-10.2.0 e Valgrind-3.21.0

Instalação do AudioFile

Instale o AudioFile executando os seguintes comandos:

patch -Np1 -i ../audiofile-0.3.6-consolidated_patches-1.patch &&
autoreconf -fiv                             &&

./configure --prefix=/usr --disable-static  &&

make

Agora, como o(a) usuário(a) root:

make install

Para testar os resultados, emita: make check. Observe que os testes falharão se a opção --disable-static for usada e os testes forem executados antes de make install. Você tem três opções:

(a) configure sem --disable-static, execute os testes, mas não instale; então inicie uma nova construção usando --disable-static apenas para instalar o pacote.

(b) configure com --disable-static, mas somente execute os testes depois que o pacote for instalado.

(c) configure com --disable-static, mas somente execute os testes depois de uma instalação DESTDIR.

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Conteúdo

Aplicativos Instalados: sfconvert e sfinfo
Bibliotecas Instaladas: libaudiofile.so
Diretórios Instalados: Nenhum(a)

Descrições Curtas

sfinfo

exibe o formato do arquivo de som, codificação de áudio, taxa de amostragem e duração para formatos de áudio suportados por essa biblioteca

sfconvert

converte formatos de arquivo de som onde o formato original e o formato de destino sejam suportados por essa biblioteca

libaudiofile.so

contém funções usadas por aplicativos para suportar formatos de áudio AIFF, compactados por AIFF, Sun/NeXT, WAV e BIC

FAAC-1_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 corretamente usando uma plataforma LFS 12.0.

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

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.9:

./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.9:

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Transferências Adicionais

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.9):

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Instalação do fdk-aac

Instale o fdk-aac executando os seguintes comandos:

./configure --prefix=/usr --disable-static &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libfdk-aac.so
Diretório Instalado: /usr/include/fdk-aac

Descrições Curtas

libfdk-aac.so

fornece as funções usadas para codificar áudio no formato AAC

FLAC-1.4.3

Introdução ao FLAC

FLAC é um CODEC de áudio semelhante ao MP3, mas sem perdas, o que significa que o áudio é comprimido sem perder nenhuma informação.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP): https://downloads.xiph.org/releases/flac/flac-1.4.3.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 7cab20b46e0bc859234bf5ba7da81625

  • Tamanho da transferência: 1,0 MB

  • Espaço em disco estimado exigido: 22 MB (adicionais 163 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.7 e Valgrind-3.21.0

Instalação do FLAC

Instale o FLAC executando os seguintes comandos:

./configure --prefix=/usr                                \
            --disable-thorough-tests                     \
            --docdir=/usr/share/doc/flac-1.4.3          &&
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.3

Descrições Curtas

flac

é um utilitário de linha de comando para codificar, decodificar e converter arquivos FLAC

metaflac

é um aplicativo para listar, adicionar, remover ou editar metadados em um ou mais arquivos FLAC

libFLAC{,++}.so

essas bibliotecas fornecem APIs nativas C/C++ FLAC e Ogg FLAC para aplicativos que utilizam FLAC

frei0r-plugins-1.8.0

Introdução ao Frei0r-plugins

Frei0r é uma API minimalista de plugin para efeitos de vídeo. Observe que o 0 no nome é um zero, não uma letra maiúscula o.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do Frei0r-plugins

Recomendadas

gavl-1.4.0

Opcionais

Doxygen-1.9.7 e opencv-4.8.0

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do Gavl

Exigidas

libpng-1.6.40

Opcionais

Doxygen-1.9.7

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

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.5 e um dos plugins Good, Bad, Ugly ou Libav.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do gstreamer

Exigidas

GLib-2.76.4

Recomendadas
Opcionais

GTK+-3.24.38 (para exemplos), Gsl-2.7.1 (usado por um teste, se instalado), libunwind-1.6.2, Valgrind-3.21.0, bash-completion, hotdoc e libdw

Instalação do gstreamer

Instale o gstreamer executando os seguintes comandos:

mkdir build &&
cd    build &&

meson  setup ..            \
       --prefix=/usr       \
       --buildtype=release \
       -Dgst_debug=false   \
       -Dpackage-origin=https://www.linuxfromscratch.org/blfs/view/12.0-systemd/ \
       -Dpackage-name="GStreamer 1.22.5 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.5

Introdução ao GStreamer Base Plug-ins

O GStreamer Base Plug-ins é uma coleção bem cuidada e bem mantida de plug-ins e elementos do GStreamer, abrangendo a gama de possíveis tipos de elementos que alguém desejaria escrever para o GStreamer. Você precisará de pelo menos um dos plugins Good, Bad, Ugly ou Libav para que os aplicativos GStreamer funcionem corretamente.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do GStreamer Base Plug-ins

Exigidas

gstreamer-1.22.5

Recomendadas
Opcionais

graphene-1.10.8, GTK+-3.24.38 (para exemplos), Opus-1.3.1, (Qt-5.15.10 ou qt-alternate-5.15.10) (para exemplos), SDL2-2.28.2, Valgrind-3.21.0, hotdoc, libvisual, Orc e Tremor

Instalação do GStreamer Base Plug-ins

Nota

Se você precisar de um plugin para uma dada dependência, essa dependência precisará estar instalada antes desse pacote.

Instale o GStreamer Base Plug-ins executando os seguintes comandos:

mkdir build &&
cd    build &&

meson  setup ..               \
       --prefix=/usr          \
       --buildtype=release    \
       --wrap-mode=nodownload \
       -Dpackage-origin=https://www.linuxfromscratch.org/blfs/view/12.0-systemd/ \
       -Dpackage-name="GStreamer 1.22.5 BLFS"    &&
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.5

Introdução ao GStreamer Good Plug-ins

O GStreamer Good Plug-ins é um conjunto de plug-ins considerados pelos(as) desenvolvedores(as) do GStreamer como tendo código de boa qualidade, funcionalidade correta e a licença preferencial (LGPL para o código do plug -in, LGPL ou compatível com LGPL para a biblioteca de suporte). Uma ampla variedade de decodificadores, codificadores e filtros de vídeo e áudio está incluída.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do GStreamer Good Plug-ins

Exigidas

gst-plugins-base-1.22.5

Recomendadas
Opcionais

AAlib-1.4rc5, OSS-1.1.8 do ALSA, GTK+-3.24.38 (para exemplos), libdv-1.0.0, (Qt-5.15.10 ou qt-alternate-5.15.10), Speex-1.2.1, taglib-1.13.1, Valgrind-3.21.0, v4l-utils-1.24.1, Wayland-1.22.0, hotdoc, JACK, libcaca, libavc1394, libiec61883, libraw1394, libshout, Orc, TwoLame e WavPack

Instalação do GStreamer Good Plug-ins

Nota

Se você precisar de um plugin para uma dada dependência, essa dependência precisará estar instalada antes desse pacote.

Instale o GStreamer Good Plug-ins executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup ..            \
      --prefix=/usr       \
      --buildtype=release \
      -Dpackage-origin=https://www.linuxfromscratch.org/blfs/view/12.0-systemd/ \
      -Dpackage-name="GStreamer 1.22.5 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.

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

Introdução ao GStreamer Bad Plug-ins

O pacote GStreamer Bad Plug-ins contém um conjunto de plug-ins que não estão à altura dos demais. Eles podem estar perto de serem de boa qualidade, mas está faltando alguma coisa - seja uma boa revisão de código, alguma documentação, um conjunto de testes, um(a) mantenedor(a) real ao vivo ou algum uso realmente amplo.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do GStreamer Bad Plug-ins

Exigidas

gst-plugins-base-1.22.5

Recomendadas
Opcionais

BlueZ-5.68, cURL-8.2.1, FAAC-1_30, FAAD2-2.10.1, fdk-aac-2.0.2, GTK+-3.24.38 (para exemplos), gst-plugins-good-1.22.5 (para um teste), JSON-GLib-1.6.6, Little CMS-2.14, libaom-3.6.1, libass-0.17.1, libexif-0.6.24 (para um teste), librsvg-2.56.3, libsoup-2.74.3 (para um teste), libsndfile-1.2.2, libssh2-1.11.0, libusb-1.0.26, libva-2.19.0, libwebp-1.3.1, libxkbcommon-1.5.0, neon-0.32.5, Nettle-3.9.1 ou libgcrypt-1.10.2 (para suporte SSL no plugin hls; se ambos não estiverem instalados, OpenSSL será usado), opencv-4.8.0 (com módulos adicionais), OpenJPEG-2.5.0, Opus-1.3.1, qrencode-4.1.1, SBC-2.0, sdl12-compat-1.2.64, Valgrind-3.21.0, Wayland-1.22.0 (GTK+-3.24.38 precisa ter sido compilado com suporte wayland), wpebackend-fdo-1.14.2, x265-20230215, bs2b, Chromaprint, dssim, Flite, FluidSynth, Game Music Emu, GSM, hotdoc, LADSPA, ldacBT, libavtp, libdc1394-2, libdca, libde265, libkate, libmfx, libmms, libmodplug, libnice, libofa, libopenmpt, libopenni, libsrtp, lilv, LRDF, ltc-tools, microdns, Ferramentas MJPEG, mplex2, musepack, onnxruntime, OpenAL, OpenEXR, OpenH264, Orc, rtmpdump, spandsp, Srt, svthevcenc, VO AAC, VO AMRWB, Vulkan, WildMidi, WPE-WebKit, ZBAR, ZVBI e zxing

Instalação do GStreamer Bad Plug-ins

Nota

Se você precisar de um plugin para uma dada dependência, essa dependência precisará estar instalada antes desse pacote.

Instale o GStreamer Bad Plug-ins executando os seguintes comandos:

mkdir build &&
cd    build &&

meson  setup ..            \
       --prefix=/usr       \
       --buildtype=release \
       -Dgpl=enabled       \
       -Dpackage-origin=https://www.linuxfromscratch.org/blfs/view/12.0-systemd/ \
       -Dpackage-name="GStreamer 1.22.5 BLFS" &&
ninja

Para testar os resultados, emita: ninja test. Vários testes necessitam de um emulador de terminal em uma sessão gráfica. Um teste, elements_vacompositor é conhecido por falhar. Se o gst-plugins-good-1.22.5 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, libgstcuda-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,cuda}, /usr/include/gstreamer-1.0/gst/{codecparsers,insertbin,interfaces}, /usr/include/gstreamer-1.0/gst/{isoff,mpegts,play,player,sctp} /usr/include/gstreamer-1.0/gst/{transcoder,uridownloader,va} e /usr/include/gstreamer-1.0/gst/{wayland,webrtc}

Descrições Curtas

gst-transcoder-1.0

é usado para transcodificar um fluxo em um formato diferente

playout

é um exemplo de aplicativo usado para reproduzir sequencialmente uma lista de arquivos de áudio e vídeo

gst-plugins-ugly-1.22.5

Introdução ao GStreamer Ugly Plug-ins

O GStreamer Ugly Plug-ins é um conjunto de plug-ins considerados pelos(as) desenvolvedores(as) do GStreamer como tendo boa qualidade e funcionalidade correta, mas distribuí-los pode causar problemas. A licença dos plug-ins ou das bibliotecas de suporte pode não ser como os(as) desenvolvedores(as) do GStreamer gostariam. O código pode ser amplamente conhecido por apresentar problemas de patente.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do GStreamer Ugly Plug-ins

Exigidas

gst-plugins-base-1.22.5

Recomendadas
Opcionais

libmpeg2-0.5.1, libcdio-2.1.0 (para acesso à unidade de CD-ROM), Valgrind-3.21.0, hotdoc, libsidplay, OpenCore AMR, Orc e TwoLame

Instalação do GStreamer Ugly Plug-ins

Nota

Se você precisar de um plugin para uma dada dependência, essa dependência precisará estar instalada antes desse pacote.

Instale o GStreamer Ugly Plug-ins executando os seguintes comandos:

mkdir build &&
cd    build &&

meson  setup ..            \
       --prefix=/usr       \
       --buildtype=release \
       -Dgpl=enabled       \
       -Dpackage-origin=https://www.linuxfromscratch.org/blfs/view/12.0-systemd/ \
       -Dpackage-name="GStreamer 1.22.5 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.5

Introdução ao GStreamer Libav

O pacote GStreamer Libav contém plug-ins GStreamer para Libav (uma bifurcação do FFmpeg).

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do GStreamer Libav

Exigidas

FFmpeg-6.0 e gst-plugins-base-1.22.5

Recomendadas
Opcionais

hotdoc

Instalação do GStreamer Libav

Instale o GStreamer Libav executando os seguintes comandos:

mkdir build &&
cd    build &&

meson  setup ..            \
       --prefix=/usr       \
       --buildtype=release \
       -Dpackage-origin=https://www.linuxfromscratch.org/blfs/view/12.0-systemd/ \
       -Dpackage-name="GStreamer 1.22.5 BLFS" &&
ninja

Para executar os testes, emita: ninja test.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libgstlibav.so no diretório /usr/lib/gstreamer-1.0
Diretório Instalado: Nenhum(a)

gstreamer-vaapi-1.22.5

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-8.1.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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do gstreamer-vaapi

Exigidas

GTK+-3.24.38, gstreamer-1.22.5, gst-plugins-base-1.22.5, gst-plugins-bad-1.22.5 e libva-2.19.0

Opcionais

hotdoc

Instalação do gstreamer-vaapi

Instale o gstreamer-vaapi executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup ..            \
      --prefix=/usr       \
      --buildtype=release \
      -Dpackage-origin=https://www.linuxfromscratch.org/blfs/view/12.0-systemd/ &&
ninja

Esse pacote não vem com uma suíte de teste funcional.

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Transferências Adicionais

Instalação do Id3lib

Instale o id3lib executando os seguintes comandos:

patch -Np1 -i ../id3lib-3.8.3-consolidated_patches-1.patch &&

libtoolize -fc                &&
aclocal                       &&
autoconf                      &&
automake --add-missing --copy &&

./configure --prefix=/usr --disable-static &&
make

Esse pacote não vem com uma suíte de teste funcional.

Agora, como o(a) usuário(a) root:

make install  &&
cp doc/man/* /usr/share/man/man1 &&

install -v -m755 -d /usr/share/doc/id3lib-3.8.3 &&
install -v -m644 doc/*.{gif,jpg,png,ico,css,txt,php,html} \
                    /usr/share/doc/id3lib-3.8.3

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Conteúdo

Aplicativos Instalados: id3convert, id3cp, id3info e id3tag
Biblioteca Instalada: libid3.so
Diretórios Instalados: /usr/include/id3 e /usr/share/doc/id3lib-3.8.3

Descrições Curtas

id3convert

converte entre formatos de rotulagem id3v1/v2

id3cp

extrai rótulos id3v1/v2 a partir de arquivos de áudio digital

id3info

imprime o conteúdo de rótulo id3v1/v2

id3tag

é um utilitário para editar rótulos id3v1/v2

libid3.so

fornece funções para os aplicativos de edição de rótulos id3v1/v2, bem como outros aplicativos e bibliotecas externos(as)

intel-media-23.3.2

Introdução ao intel-media

O pacote intel-media fornece um controlador VA API para GPUs da Intel fornecidas com CPUs Broadwell e superiores. Isso inclui suporte para uma variedade de codificadores.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Nota

O tarball intel-media-23.3.2.tar.gz extrairá para o diretório media-driver-intel-media-23.3.2.

Dependências do intel-media

Exigidas

CMake-3.27.2, Intel-gmmlib-22.3.10, libva-2.19.0 e Ambiente de construção do "Xorg"

Configuração do Núcleo

Habilite as seguintes opções na configuração do núcleo. Recompile o núcleo se necessário:

Device Drivers --->
  Graphics support --->
    <*/M> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) --->
                                                                      ...  [DRM]
    <*/M> Intel 8xx/9xx/G3x/G4x/HD Graphics                           [DRM_I915]

Instalação do intel-media

Nota

Esse pacote leva muito tempo para construir porque compila código específico para cada geração individual de GPUs da Intel e para uma variedade de codificadores de mídia.

Se conhecer o modelo da tua GPU Intel, você pode passar a opção -D{GEN{8,9,10,11,12},MTL}=OFF para o comando cmake, mas deixando a opção para tua GPU de fora. Observe que o número GEN aqui é a geração da GPU, não da CPU. Por exemplo, com uma CPU Intel Core i7-1065G7 que envia uma GPU Intel de 11ª geração, a opção -D{GEN{8,9,10,12},MTL}=OFF pode ser usada, de forma que o código específico para as outras gerações de GPUs Intel não será construído.

Instale o intel-media executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -DCMAKE_INSTALL_PREFIX=$XORG_PREFIX \
      -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

Last updated on

intel-vaapi-driver-2.4.1

Introdução ao intel-vaapi-driver

O pacote intel-vaapi-driver contém um controlador VA API para GPUs Intel que são fornecidos com CPUs Haswell e anteriores.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do intel-vaapi-driver

Exigidas

libva-2.19.0 e Ambiente de construção do "Xorg"

Configuração do Núcleo

Habilite as seguintes opções na configuração do núcleo. Recompile o núcleo se necessário:

Device Drivers --->
  Graphics support --->
    <*/M> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) --->
                                                                      ...  [DRM]
    <*/M> Intel 8xx/9xx/G3x/G4x/HD Graphics                           [DRM_I915]

Instalação do intel-vaapi-driver

Instale o controlador executando os seguintes comandos:

./configure $XORG_CONFIG &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Controlador Instalado: i965_drv_video.so

Liba52-0.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 corretamente usando uma plataforma LFS 12.0.

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 Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/liba52

Instalação do Liba52

Instale o liba52 executando os seguintes comandos:

./configure --prefix=/usr \
            --mandir=/usr/share/man \
            --enable-shared \
            --disable-static \
            CFLAGS="${CFLAGS:--g -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 corretamente usando uma plataforma LFS 12.0.

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

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

libaom-3.6.1

Introdução ao libaom

O pacote libaom contém uma versão de referência do codificador de vídeo Alliance for Open Media. Esse codificador é uma alternativa livre de patente ao H.265 e está começando a ser usado em toda a Internet.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informações do Pacote

  • Transferência (HTTP): https://storage.googleapis.com/aom-releases/libaom-3.6.1.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: e5b1843484eb9873666b878e03d8160b

  • Tamanho da transferência: 5,0 MB

  • Espaço em disco estimado exigido: 103 MB (adicionar 969 MB para testes)

  • Tempo de construção estimado: 0,5 UPC (com paralelismo=4, adicionar 136 UPC para testes)

Dependências do libaom

Recomendadas
Opcionais

Doxygen-1.9.7

Instalação do libaom

Instale o libaom executando os seguintes comandos:

mkdir aom-build &&
cd    aom-build &&

cmake -DCMAKE_INSTALL_PREFIX=/usr \
      -DCMAKE_BUILD_TYPE=Release  \
      -DBUILD_SHARED_LIBS=1       \
      -DENABLE_DOCS=no            \
      -G Ninja .. &&
ninja

Para testar os resultados, emita: ninja runtests. Observe que os tomam um tempo extremamente longo para executar.

Agora, como o(a) usuário(a) root:

ninja install &&
rm -v /usr/lib/libaom.a

Explicações do Comando

-DBUILD_SHARED_LIBS=1: Essa chave constrói versões compartilhadas das bibliotecas.

-DENABLE_DOCS=no: Essa chave desabilita a construção da documentação porque ela falha devido a uma incompatibilidade com a versão mais recente do Doxygen-1.9.7.

-DENABLE_NASM=yes: Use essa chave se você tiver o NASM-2.16.01 instalado e desejar usá-lo em vez do yasm.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: libaom.so
Diretórios Instalados: /usr/include/aom

Descrições Curtas

libaom.so

contém funções que fornecem uma implementação de referência do codificador AV1

libass-0.17.1

Introdução ao libass

libass é um renderizador de legendas portável para o formato de legendas Advanced Substation Alpha/Substation Alpha (ASS/SSA) que permite legendas mais avançadas que o SRT convencional e formatos similares.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do libass

Exigidas

FreeType-2.13.1, FriBidi-1.0.13 e NASM-2.16.01

Recomendadas
Opcionais

HarfBuzz-8.1.1 e libunibreak

Instalação do libass

Instale o libass executando os seguintes comandos:

./configure --prefix=/usr --disable-static &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

--disable-fontconfig: Use essa chave se você não instalou o Fontconfig.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libass.so
Diretório Instalado: /usr/include/ass

Descrições Curtas

libass.so

fornece as funções usadas para renderizar o formato de legenda ASS/SSA

libcanberra-0.30

Introdução ao libcanberra

libcanberra é uma implementação das Especificações de Nome e de Tema de Som XDG, para gerar sons de eventos em áreas de trabalho livres, tais como o GNOME.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

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)

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 corretamente usando uma plataforma LFS 12.0.

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)

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Transferências Adicionais

Dependências do libcdio

Opcionais

libcddb-1.3.2

Instalação do libcdio

Instale o libcdio executando os seguintes comandos:

./configure --prefix=/usr --disable-static &&
make

Para testar os resultados, emita: make check -k. Um teste chamado realpath é conhecido por falhar.

Agora, como o(a) usuário(a) root:

make install

Agora instale a libcdio-paranoia:

tar -xf ../libcdio-paranoia-10.2+2.0.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

libdvdcss-1.4.3

Introdução ao libdvdcss

libdvdcss é uma biblioteca simples projetada para acessar DVDs como um dispositivo de bloco sem ter que se preocupar com a desencriptação.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do libdvdcss

Opcionais (para criar documentação)

Doxygen-1.9.7

Instalação do libdvdcss

Instale o libdvdcss executando os seguintes comandos:

./configure --prefix=/usr    \
            --disable-static \
            --docdir=/usr/share/doc/libdvdcss-1.4.3 &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libdvdcss.so
Diretórios Instalados: /usr/include/dvdcss e /usr/share/doc/libdvdcss-1.4.3

Descrições Curtas

libdvdcss.so

fornece a funcionalidade exigida para acesso transparente ao DVD com desencriptação CSS

Libdvdread-6.1.3

Introdução ao Libdvdread

libdvdread é uma biblioteca que fornece uma base simples para leitura de DVDs.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Instalação do Libdvdread

Instale o libdvdread executando os seguintes comandos:

./configure --prefix=/usr    \
            --disable-static \
            --docdir=/usr/share/doc/libdvdread-6.1.3 &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libdvdread.so
Diretórios Instalados: /usr/include/dvdread e /usr/share/doc/libdvdread-6.1.3

Descrições Curtas

libdvdread.so

fornece funcionalidade exigida para acessar DVDs

Libdvdnav-6.1.1

Introdução ao Libdvdnav

libdvdnav é uma biblioteca que permite uso fácil de recursos sofisticados de navegação de DVD, como menus de DVD, reprodução multiângulo e até jogos interativos de DVD.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do Libdvdnav

Exigidas

libdvdread-6.1.3

Instalação do Libdvdnav

Instale o libdvdnav executando os seguintes comandos:

./configure --prefix=/usr    \
            --disable-static \
            --docdir=/usr/share/doc/libdvdnav-6.1.1 &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libdvdnav.so
Diretórios Instalados: /usr/include/dvdnav e /usr/share/doc/libdvdnav-6.1.1

Descrições Curtas

libdvdnav.so

é a biblioteca de navegação de DVD

Libdv-1.0.0

Introdução ao Libdv

O Quasar DV Codec (libdv) é um software CODEC para vídeo DV, o formato de codificação usado pela maioria das filmadoras digitais. Ele pode ser usado para copiar vídeos a partir de filmadoras usando uma conexão firewire (IEEE 1394).

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP): https://downloads.sourceforge.net/libdv/libdv-1.0.0.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: f895162161cfa4bb4a94c070a7caa6c7

  • Tamanho da transferência: 574 KB

  • Espaço em disco estimado exigido: 6,0 MB

  • Tempo de construção estimado: 0,2 UPC

Dependências do Libdv

Opcionais

popt-1.19, sdl12-compat-1.2.64 e um ambiente gráfico

Instalação do Libdv

Instale o libdv executando os seguintes comandos:

./configure --prefix=/usr \
            --disable-xv \
            --disable-static &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install &&
install -v -m755 -d      /usr/share/doc/libdv-1.0.0 &&
install -v -m644 README* /usr/share/doc/libdv-1.0.0

Explicações do Comando

--disable-xv: Esse parâmetro é exigido se um Sistema de Janelas X não estiver instalado. Também evita testes de configure para a libXv, a qual é usada somente para um aplicativo obsoleto, playdv, que não será construído com os cabeçalhos atuais do linux e também precisaria de outras dependências obsoletas.

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Conteúdo

Aplicativos Instalados: dubdv, dvconnect e encodedv
Biblioteca Instalada: libdv.so
Diretórios Instalados: /usr/include/libdv e /usr/share/doc/libdv-1.0.0

Descrições Curtas

dubdv

insere áudio em um fluxo de vídeo digital

dvconnect

é um pequeno utilitário para enviar ou capturar dados brutos de e para a câmera de vídeo

encodedv

codifica uma série de imagens em um fluxo de vídeo digital

libdv.so

fornece funções para aplicativos que interagem com o Quasar DV CODEC

libmad-0.15.1b

Introdução ao libmad

libmad é um decodificador de áudio MPEG de alta qualidade com capacidade de saída de 24 bits.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Transferências Adicionais

Instalação do libmad

Instale o libmad executando os seguintes comandos:

patch -Np1 -i ../libmad-0.15.1b-fixes-1.patch                &&
sed "s@AM_CONFIG_HEADER@AC_CONFIG_HEADERS@g" -i configure.ac &&
touch NEWS AUTHORS ChangeLog                                 &&
autoreconf -fi                                               &&

./configure --prefix=/usr --disable-static &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Alguns pacotes verificam o arquivo pkg-config para libmad. Esse arquivo é particularmente necessário, de forma que o Cdrdao consiga reconhecer a libmad instalada.

Como o(a) usuário(a) root:

cat > /usr/lib/pkgconfig/mad.pc << "EOF"
prefix=/usr
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include

Name: mad
Description: MPEG audio decoder
Requires:
Version: 0.15.1b
Libs: -L${libdir} -lmad
Cflags: -I${includedir}
EOF

Explicações do Comando

touch NEWS AUTHORS ChangeLog: Evite que o autoreconf retorne um erro.

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libmad.so
Diretórios Instalados: Nenhum(a)

Descrições Curtas

libmad.so

é uma biblioteca decodificadora de áudio MPEG

libmpeg2-0.5.1

Introdução ao libmpeg2

O pacote libmpeg2 contém uma biblioteca para decodificar fluxos de vídeo MPEG-2 e MPEG-1. A biblioteca é capaz de decodificar todos os fluxos MPEG que estejam em conformidade com certas restrições: parâmetros restritos para MPEG-1 e perfil principal para MPEG-2. Isso é útil para aplicativos e aplicações que necessitam decodificar fluxos de vídeo MPEG-2 e MPEG-1.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do libmpeg2

Opcionais

um ambiente gráfico e sdl12-compat-1.2.64

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Transferências Adicionais

Dependências do libmusicbrainz

Opcionais para Construir as Ligações Python

Python-2.7.18

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Transferências Adicionais

Dependências do libmusicbrainz

Exigidas

CMake-3.27.2, libxml2-2.10.4 e neon-0.32.5

Opcionais

Doxygen-1.9.7

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.7, opcionalmente construa a documentação da API:

doxygen ../Doxyfile

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Se você tiver construído a documentação da API, instale como o(a) usuário(a) root:

rm -rf /usr/share/doc/libmusicbrainz-5.1.0 &&
cp -vr docs/ /usr/share/doc/libmusicbrainz-5.1.0

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libmusicbrainz5.so
Diretório Instalado: /usr/include/libmusicbrainz5 e /usr/share/doc/libmusicbrainz-5.1.0

Descrições Curtas

libmusicbrainz5.so

contém funções de API para acessar a base de dados MusicBrainz

libogg-1.3.5

Introdução ao libogg

O pacote libogg contém a estrutura de arquivo Ogg. Isso é útil para criar (codificar) ou reproduzir (decodificar) um fluxo físico de bits.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

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)

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 corretamente usando uma plataforma LFS 12.0.

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.9, Doxygen-1.9.7, FAAC-1_30, FAAD2-2.10.1, GTK+-2.24.33, LAME-3.100, libdv-1.0.0, libjpeg-turbo-3.0.0, libpng-1.6.40, libvorbis-1.3.7, x264-20230215, Bibliotecas do Xorg e Schroedinger

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do libsamplerate

Opcionais

alsa-lib-1.2.9, libsndfile-1.2.2 e fftw-3.3.10 (para testes)

Instalação do libsamplerate

Instale o libsamplerate executando os seguintes comandos:

./configure --prefix=/usr    \
            --disable-static \
            --docdir=/usr/share/doc/libsamplerate-0.2.2 &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Conteúdo

Aplicativo Instalado: Nenhum(a)
Biblioteca Instalada: libsamplerate.so
Diretório Instalado: /usr/share/doc/libsamplerate-0.2.2

libsndfile-1.2.2

Introdução ao libsndfile

Libsndfile é uma biblioteca de rotinas C para leitura e escrita de arquivos contendo dados amostrados de áudio.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do libsndfile

Recomendadas
Opcionais

alsa-lib-1.2.9, LAME-3.100, mpg123-1.31.3, Speex-1.2.1 e SQLite-3.42.0

Instalação do libsndfile

Instale o libsndfile executando os seguintes comandos:

./configure --prefix=/usr    \
            --docdir=/usr/share/doc/libsndfile-1.2.2 &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: sndfile-cmp, sndfile-concat, sndfile-convert, sndfile-deinterleave, sndfile-info, sndfile-interleave, sndfile-metadata-get, sndfile-metadata-set, sndfile-play e sndfile-salvage
Biblioteca Instalada: libsndfile.so
Diretório Instalado: /usr/share/doc/libsndfile-1.2.2

Descrições Curtas

sndfile-cmp

compara dois arquivos de áudio

sndfile-concat

concatena dois ou mais arquivos de áudio

sndfile-convert

converte um arquivo de som de um formato para outro

sndfile-deinterleave

divide um multicanal em vários arquivos de canal único

sndfile-info

exibe informações acerca de um arquivo de som

sndfile-interleave

converte vários arquivos de canal único em um arquivo multicanal

sndfile-metadata-get

recupera metadados a partir de um arquivo de som

sndfile-metadata-set

configura metadados em um arquivo de som

sndfile-play

reproduz um arquivo de som

sndfile-salvage

salva os dados de áudio a partir de arquivos WAV com mais de 4G de tamanho

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 corretamente usando uma plataforma LFS 12.0.

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

sdl12-compat-1.2.64 e libpng-1.6.40 (ambos para construir os reprodutores de exemplo), Doxygen-1.9.7, texlive-20230313 (ou install-tl-unx), BibTex e Transfig (todos os quatro para construir a documentação da API) e Valgrind-3.21.0

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

libva-2.19.0

Introdução ao libva

O pacote libva contém uma biblioteca que fornece acesso ao processamento de vídeo acelerado por hardware, usando hardware para acelerar o processamento de vídeo para a finalidade de descarregar a unidade central de processamento (CPU) para decodificar e codificar vídeo digital comprimido. A interface de decodificação/codificação de vídeo VA API é independente de plataforma e sistema de janela, voltada para Direct Rendering Infrastructure (DRI) no Sistema de Janelas X, no entanto, também pode ser usada potencialmente com framebuffer direto e subsistemas gráficos para saída gerada de vídeo. O processamento acelerado inclui suporte para decodificação de vídeo, codificação de vídeo, combinação de sub imagem e renderização.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do libva

Exigidas

Ambiente de construção do "Xorg" e libdrm-2.4.115

Recomendadas
Recomendadas (tempo de execução)

O controlador VA API adequado para o hardware em teu sistema: intel-vaapi-driver-2.4.1 (para GPUs da Intel fornecidas com CPUs Haswell ou anteriores), intel-media-23.3.2 (para GPUs da Intel fornecidas com CPUs Broadwell ou posteriores) e Mesa-23.1.6 (fornecendo os controladores VA API r600, radeonsi e nouveau, para as GPUs Radeon HD 2xxx e posteriores da ATI/AMD, e GPUs suportadas da NVIDIA; existe uma dependência circular; leia-se a página do Mesa para informações acerca de como quebrá-la)

Opcionais

Doxygen-1.9.7, Wayland-1.22.0 e intel-gpu-tools

Instalação do libva

Instale o libva executando os seguintes comandos:

mkdir build &&
cd   build &&

meson setup --prefix=$XORG_PREFIX --buildtype=release &&
ninja

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

ninja install

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: libva-drm.so, libva-glx.so, libva.so, libva-wayland.so e libva-x11.so
Diretório Instalado: $XORG_PREFIX/include/va

Descrições Curtas

libva.so

contém funções de API que fornecem acesso ao processamento de vídeo acelerado por hardware

Last updated on

libvdpau-1.5

Introdução ao libvdpau

O pacote libvdpau contém uma biblioteca que implementa a biblioteca VDPAU.

Video Decode and Presentation API for Unix (VDPAU) é uma biblioteca de fonte aberto (libvdpau) e API originalmente projetada pela Nvidia para a série GeForce 8 dela e hardware de GPU posterior direcionado ao Sistema de Janelas X. Essa API da VDPAU permite que 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 porções capazes de serem transferidas pela VDPAU para a GPU são compensação de movimento (mo comp), transformação discreta inversa de cosseno (iDCT), decodificação de comprimento variável (VLD) e desbloqueio para vídeos codificados com MPEG-1, MPEG-2, MPEG-4 ASP (MPEG-4 Parte 2), H.264/MPEG-4 AVC e VC-1, WMV3/WMV9. Quais codificadores específicos desses podem ser transferidos para a GPU depende da versão do hardware da GPU; especificamente, para também decodificar os formatos MPEG-4 ASP (MPEG-4 Parte 2), Xvid/OpenDivX (DivX 4) e DivX 5, uma série GeForce 200M (2xxM) (a décima primeira geração de unidades de processamento gráfico GeForce da Nvidia) ou mais recente hardware de GPU é exigido.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do libvdpau

Exigidas

Bibliotecas do Xorg

Recomendadas (tempo de execução)

O controlador VDPAU adequado para o hardware em teu sistema: libvdpau-va-gl-0.4.0 (para GPUs da Intel) e Mesa-23.1.6 (fornecendo os controladores VDPAU r600 , radeonsi e nouveau, para as GPUs Radeon HD 2xxx e posteriores da ATI/AMD, e GPUs suportadas da NVIDIA; o Mesa precisa ser construído depois desse pacote para esses controladores)

Opcionais

Doxygen-1.9.7, Graphviz-8.1.0 e texlive-20230313 ou install-tl-unx

Instalação do libvdpau

Instale o libvdpau executando os seguintes comandos:

mkdir build &&
cd   build &&

meson setup --prefix=$XORG_PREFIX .. &&
ninja

Para testar os resultados, emita: ninja test. Existe somente um teste para esse pacote, dlclose, e ele é conhecido por falhar em alguns sistemas.

Agora, como o(a) usuário(a) root:

ninja install

Se o doxygen estiver presente ao tempo da construção, coloque a documentação em um diretório versionado como o(a) usuário(a) root:

[ -e $XORG_PREFIX/share/doc/libvdpau ] && mv -v $XORG_PREFIX/share/doc/libvdpau{,1.5}

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libvdpau.so
Diretórios Instalados: $XORG_PREFIX/{include,lib}/vdpau

Descrições Curtas

libvdpau.so

contém funções para transferir partes do processo de decodificação de vídeo e pós-processamento de vídeo para o hardware de vídeo da GPU

Last updated on

libvdpau-va-gl-0.4.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 da Intel e em alguns adaptadores de vídeo da AMD com a ajuda do controlador libvdpau.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

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.27.2, libvdpau-1.5 e libva-2.19.0

Opcionais

Doxygen-1.9.7, Graphviz-8.1.0 e texlive-20230313 ou install-tl-unx

Dependência de Tempo de Execução

Mesa-23.1.6

Instalação do libvdpau-va-gl

Instale o libvdpau-va-gl executando os seguintes comandos:

sed -e '/#include <stdlib.h>/a #include <string>' -i src/api-device.cc &&

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 do Xorg.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

sed -e '/#include <stdlib.h>/a #include <string>' ...: corrija a construção para as mudanças de cabeçalho da Biblioteca Padrão C++ no gcc-13.

Configuração

Para permitir que a libvdpau encontre libvdpau-va-gl, configure uma variável de ambiente. Como o(a) usuário(a) root:

echo "export VDPAU_DRIVER=va_gl" >> /etc/profile.d/xorg.sh

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libvdpau_va_gl.so
Diretórios Instalados: Nenhum(a)

Descrições Curtas

libvdpau_va_gl.so

contém funções para implementar a estrutura de retaguarda do OpenGL para a API do VDPAU (Video Decode and Presentation API for Unix)

Last updated on

libvorbis-1.3.7

Introdução ao libvorbis

O pacote libvorbis contém um formato de codificação de áudio e música de uso geral. Isso é útil para criar (codificar) e reproduzir (decodificar) som em um formato aberto (livre de patente).

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do libvorbis

Exigidas

libogg-1.3.5

Opcionais

Doxygen-1.9.7 e texlive-20230313 (ou install-tl-unx) (especificamente, pdflatex e htlatex) para construir a documentação PDF

Observações de Editor(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 corretamente usando uma plataforma LFS 12.0.

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-8.2.1 (para baixar arquivos de teste) e Doxygen-1.9.7 (para construir documentação)

Nota

Uma conexão com a Internet é necessária para alguns testes desse pacote.

Instalação do libvpx

Instale o libvpx executando os seguintes comandos:

sed -i 's/cp -p/cp/' build/make/Makefile &&

mkdir libvpx-build            &&
cd    libvpx-build            &&

../configure --prefix=/usr    \
             --enable-shared  \
             --disable-static &&
make

Para testar os resultados, emita: LD_LIBRARY_PATH=. make test. A suíte de teste baixa muitos arquivos como parte do processo de teste dela. Algumas partes usarão todos os elementos de processamento disponíveis.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

sed ... : Esse comando corrige a titularidade de propriedade e as permissões dos arquivos instalados.

mkdir libvpx-build && cd libvpx-build: Os(As) desenvolvedores(as) da libvpx recomendam construir em um diretório de construção dedicado.

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

--disable-vp8: Essa chave impede 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.18.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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do MLT

Exigidas

frei0r-plugins-1.8.0 e (Qt-5.15.10 ou qt-alternate-5.15.10)

Opcionais

Doxygen-1.9.7, fftw-3.3.10, libexif-0.6.24, SDL2-2.28.2, JACK, MOVEit, SoX e vid.stab

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 ./out/bin/melt <nome_arquivo>.mp4.

Nota

Esse aplicativo usa recursos gráficos avançados. Em alguns casos, firmware para o teu adaptador gráfico específico possivelmente seja necessário. Veja-se “Firmware para Placas de Vídeo” para mais informações.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativo Instalado: melt-7 e melt (link simbólico para melt-7)
Bibliotecas Instaladas: libmlt-7.so, libmlt++-7.so e mais que vinte plugins
Diretórios Instalados: /usr/include/mlt-7, /usr/lib/mlt-7, /usr/lib/cmake/Mlt7 e /usr/share/mlt-7

Descrições Curtas

melt

é uma ferramenta de teste para 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 corretamente usando uma plataforma LFS 12.0.

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.7 e texlive-20230313 (ou install-tl-unx)

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

Introdução ao Pipewire

O pacote pipewire contém um servidor e uma API de espaço de usuário(a) para lidar com pipelines de multimídia. Isso inclui uma API universal para conectar-se a dispositivos multimídia, bem como compartilhar arquivos multimídia entre aplicativos.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do Pipewire

Recomendadas
Opcionais

alsa-lib-1.2.9, Avahi-0.8, BlueZ-5.68, fdk-aac-2.0.2, FFmpeg-6.0, libcanberra-0.30, libdrm-2.4.115 (para um exemplo e suporte a libcamera), libxcb-1.16, libsndfile-1.2.2, libusb-1.0.26, Opus-1.3.1, SDL2-2.28.2 (para alguns exemplos), Valgrind-3.21.0, Bibliotecas do Xorg, Doxygen-1.9.7 e Graphviz-8.1.0 (para documentação), JACK, ldacBT, libcamera, libmysofa, Vulkan, WirePlumber (tempo de execução, para executar o processo de segundo plano Pipewire) e xmltoman

Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/pipewire

Instalação do Pipewire

Instale o pipewire executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup ..                \
      --prefix=/usr           \
      --buildtype=release     \
      -Dsession-managers="[]" &&
ninja

Para testar o resultado, emita: ninja test.

Se atualizar a partir de um lançamento anterior do Pipewire, será necessário remover quaisquer executáveis binários antigos que interfiram na instalação. Como o(a) usuário(a) root:

rm -vf /usr/bin/pipewire-*

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 permite especificar os gerenciadores de sessão para construir como subprojetos. Como o gerenciador de sessões recomendado ( WirePlumber) está disponível como um projeto independente, não especifique nada aqui. Isso evita baixar dependências externas durante a etapa meson.

-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, pw-cat, pw-cli, pw-config, pw-dot, pw-dump, pw-jack, pw-link, pw-loopback, pw-metadata, pw-mididump, pw-mon, pw-profiler, pw-reserve, pw-top, pw-v4l2, spa-acp-tool, spa-inspect, spa-json-dump, spa-monitor, spa-resample e pipewire-aes67, pipewire-avb, pipewire-pulse (links simbólicos para pipewire), pw-dsdplay, pw-encplay, pw-midiplay, pw-midirecord, pw-play, pw-record (links simbólicos para pw-cat)
Bibliotecas Instaladas: libpipewire-0.3.so e cinquenta e oito (58) módulos abaixo de /usr/lib/pipewire-0.3 e /usr/lib/spa-0.2
Diretórios Instalados: /usr/include/pipewire-0.3, /usr/include/spa-0.2, /usr/lib/alsa-lib, /usr/lib/pipewire-0.3, /usr/lib/spa-0.2, /usr/share/alsa-card-profile, /usr/share/pipewire e /usr/share/spa-0.2

Descrições Curtas

pipewire

é um serviço que permite o acesso a dispositivos multimídia e permite o compartilhamento de arquivos multimídia entre aplicativos

pipewire-pulse

inicia uma versão compatível com Pulseaudio do serviço pipewire

pw-cat

permite que você reproduza ou grave mídia usando uma instância do pipewire

pw-cli

permite que você interaja com uma instância do pipewire

pw-config

permite que você interaja com o sistema de configuração do pipewire para propósitos de depuração ou verificação de sintaxe

pw-dot

lista todos os processos de segundo plano e objetos em uso pelo pipewire

pw-dump

despeja mensagens de depuração provenientes de uma instância local ou remota do pipewire para o console

pw-jack

executa aplicativos JACK em uma instância do pipewire

pw-link

conecta as portas do pipewire

pw-loopback

inicializa um link de loopback entre duas portas pipewire. Isso é útil para testar e depurar

pw-metadata

inspeciona, adiciona e remove metadados de objetos

pw-mididump

despeja mensagens MIDI procedentes de um arquivo para a tela

pw-mon

permite que você monitore instâncias de pipewire

pw-profiler

rastreia o uso de memória e chamadas de API usadas pelo pipewire

pw-reserve

reserva ou monitora um dispositivo via D-Bus

pw-top

exibe informações de desempenho em tempo real oriundas do pipewire

pw-v4l2

executa aplicativos v4l2 em uma instância de pipewire

spa-acp-tool

inspeciona o perfil da placa de uma determinada placa de som

spa-inspect

permite você inspecionar plugins do pipewire

spa-json-dump

despeja a configuração atual do pipewire no formato JSON.

spa-monitor

permite você monitorar plugins do pipewire

spa-resample

reamostra um determinado arquivo

libpipewire-0.3.so

contém funções de API para lidar com pipelines multimídia

PulseAudio-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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do PulseAudio

Exigidas

libsndfile-1.2.2

Recomendadas
Opcionais

Avahi-0.8, BlueZ-5.68, Doxygen-1.9.7 (para documentação), fftw-3.3.10, GTK+-3.24.38, libsamplerate-0.2.2, SBC-2.0 (suporte a Bluetooth), Valgrind-3.21.0, JACK, libasyncns, LIRC, ORC, soxr, TDB e WebRTC AudioProcessing

Instalação do PulseAudio

Instale o PulseAudio executando os seguintes comandos:

mkdir build &&
cd    build &&

meson setup --prefix=/usr       \
            --buildtype=release \
            -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.8 e SBC-2.0 estiverem instalados, mas BlueZ-5.68 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.7 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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP): https://www.kernel.org/pub/linux/bluetooth/sbc-2.0.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 5613357181daeffd71e971c6f8470f8d

  • Tamanho da transferência: 268 KB

  • Espaço em disco estimado exigido: 2,8 MB

  • Tempo de construção estimado: menos que 0,1 UPC

Dependências do SBC

Opcionais

libsndfile-1.2.2

Instalação do SBC

Instale o SBC executando os seguintes comandos:

./configure --prefix=/usr --disable-static --disable-tester &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--disable-tester: Isso desabilita o testador SBC. Remova-o se você tiver instalado libsndfile-1.2.2.

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Conteúdo

Aplicativos Instalados: sbcdec, sbcenc e sbcinfo
Biblioteca Instalada: libsbc.so
Diretório Instalado: /usr/include/sbc

Descrições Curtas

sbcdec

é um utilitário decodificador SBC

sbcenc

é um utilitário codificador SBC

sbcinfo

é um analisador de Subband Codec (SBC)

libsbc.so

contém as funções da API do SBC

sdl12-compat-1.2.64

Introdução ao sdl12-compat

A Simple DirectMedia Layer (abreviadamente SDL) é uma biblioteca multiplataforma projetada para facilitar escrever software multimídia, como jogos e emuladores. Esse código é uma camada de compatibilidade; ele fornece uma API compatível de binário e fonte para aplicativos escritos contra a SDL 1.2, mas usa a SDL 2.0 nos bastidores.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do SDL

Exigidas

CMake-3.27.2, GLU-9.0.3 e SDL2-2.28.2

Instalação do sdl12-compat

Instale o sdl12-compat 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 &&
rm -vf /usr/lib/libSDLmain.a

Testando a SDL

Se desejar, teste a instalação do pacote sdlcompat usando os aplicativos de teste incluídos. Não é exigido instalar nenhum dos binários resultantes para validar a instalação.

Você precisará executar manualmente todos os aplicativos de teste (eles estão listados no arquivo README nesse diretório). Muitos deles precisarão ser eliminados manualmente e você precisará ligar teus alto-falantes com o volume em um nível adequado.

Conteúdo

Aplicativo Instalado: sdl-config
Bibliotecas Instaladas: libSDL.so
Diretórios Instalados: /usr/include/SDL

Descrições Curtas

sdl-config

determina os sinalizadores de compilação e de vinculador que deveriam ser usados para compilar e vincular aplicativos que usam a libSDL

libSDL.so

contém funções que fornecem links de compatibilidade para funções de baixo nível do SDL2 para áudio, teclado, mouse, joystick, hardware 3D via OpenGL e Frame Buffer 2D em múltiplas plataformas

SDL2-2.28.2

Introdução ao SDL2

A Simple DirectMedia Layer Versão 2 (SDL2 para abreviar) é uma biblioteca multiplataforma projetada para facilitar escrever software multimídia, como jogos e emuladores.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP): https://www.libsdl.org/release/SDL2-2.28.2.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 06ff379c406cd8318d18f0de81ee2709

  • Tamanho da transferência: 7,0 MB

  • Espaço em disco estimado exigido: 162 MB (com documentos)

  • Tempo de construção estimado: 0,4 UPC (usando paralelismo=4; com documentos)

Dependências do SDL2

Recomendadas
Opcionais

ALSA-1.2.7, Doxygen-1.9.7 (para criar documentação), ibus-1.5.28, libsamplerate-0.2.2, NASM-2.16.01, pipewire-0.3.77, PulseAudio-16.1, um ambiente gráfico, DirectFB, fcitx, jack e sndio

Instalação do SDL2

Instale o SDL2 executando os seguintes comandos:

./configure --prefix=/usr &&
make

Se você tiver o Doxygen-1.9.7 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.28.2/html &&
cp -Rv  docs/output/html/* /usr/share/doc/SDL2-2.28.2/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.28.2

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Instalação do Sound Theme Freedesktop

Instale o Sound Theme Freedesktop executando os seguintes comandos:

./configure --prefix=/usr &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/share/sounds/freedesktop

SoundTouch-2.3.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 corretamente usando uma plataforma LFS 12.0.

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

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 corretamente usando uma plataforma LFS 12.0.

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

Instalação do Speex

Esse pacote consiste de dois tarballs. Eles precisam ser extraídos e construídos independentemente.

Instale o Speex executando os seguintes comandos:

./configure --prefix=/usr    \
            --disable-static \
            --docdir=/usr/share/doc/speex-1.2.1 &&
make

Esse pacote não vem com uma suíte de teste.

Como o(a) usuário(a) root:

make install

Agora extraia e instale o pacote speexdsp:

cd ..                          &&
tar -xf speexdsp-1.2.1.tar.gz &&
cd speexdsp-1.2.1             &&

./configure --prefix=/usr    \
            --disable-static \
            --docdir=/usr/share/doc/speexdsp-1.2.1 &&
make

Novamente, como o(a) usuário(a) root:

make install

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Conteúdo

Aplicativos Instalados: speexenc e speexdec
Bibliotecas Instaladas: libspeex.so e libspeexdsp.so
Diretórios Instalados: /usr/include/speex e /usr/share/doc/speex-1.2.1

Descrições Curtas

speexdec

decodifica um arquivo Speex e produz um arquivo WAV ou bruto

speexenc

codifica um arquivo WAV ou bruto usando o Speex

libspeex.so

fornece funções para os aplicativos de codificação/decodificação de áudio

libspeexdsp.so

é uma biblioteca de processamento de voz que acompanha o codificador Speex

Taglib-1.13.1

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP): https://taglib.org/releases/taglib-1.13.1.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 2fe6089da73ad414aa1b982b83415362

  • Tamanho da transferência: 1,3 MB

  • Espaço em disco estimado exigido: 13 MB

  • Tempo de construção estimado: 0,2 UPC

Dependências do Taglib

Exigidas

CMake-3.27.2

Opcionais (para testes)

Cppunit

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

A suíte de teste exige Cppunit, mas ele não é um pacote do BLFS.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: taglib-config
Bibliotecas Instaladas: libtag.so e libtag_c.so
Diretórios Instalados: /usr/include/taglib

Descrições Curtas

taglib-config

é uma ferramenta usada para imprimir informações a respeito da instalação do taglib

v4l-utils-1.24.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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do v4l-utils

Exigidas

LLVM-16.0.5 (com alvo BPF)

Recomendadas
Opcionais

Doxygen-1.9.7 e SDL2-2.28.2

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do x264

Recomendadas
Opcionais

ffms2, gpac ou liblsmash

Instalação do x264

Instale o x264 executando os seguintes comandos:

./configure --prefix=/usr \
            --enable-shared \
            --disable-cli &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--disable-cli: Essa chave desabilita construir o codificador de linha de comando, que é redundante, pois exige o FFmpeg para a maioria dos formatos de entrada.

--disable-asm: Use essa chave se você não instalou o NASM.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libx264.so
Diretório Instalado: Nenhum(a)

Descrições Curtas

libx264.so

fornece as funções usadas para codificar fluxos de vídeo no formato H.264/MPEG-4 AVC

x265-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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do x265

Exigidas

CMake-3.27.2

Recomendadas
Opcionais

numactl

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do Xine Libraries

Exigidas

um ambiente gráfico, FFmpeg-6.0, 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.3, gdk-pixbuf-2.42.10, GLU-9.0.3, ImageMagick-7.1.1-15, 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.19.0 (exige GLU-9.0.3), libvdpau-1.5, libvorbis-1.3.7, libvpx-1.13.0, Mesa-23.1.6, Samba-4.18.6, sdl12-compat-1.2.64, Speex-1.2.1, Doxygen-1.9.7 (para criar a documentação da API), v4l-utils-1.24.1 DirectFB, libbluray, libcaca, libdca, libFAME, libmodplug, musepack, VCDImager e WavPack,

Instalação do Xine Libraries

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.19.0 estiver instalado e GLU-9.0.3 não estiver, para evitar uma falha de construção.

Conteúdo

Aplicativos Instalados: xine-config e xine-list-1.2
Bibliotecas Instaladas: libxine.so e numerosos módulos de plugin e extensões de vídeo sob /usr/lib/xine/plugins/2.8
Fontes Instaladas: Fontes do mecanismo de exibição de saída localizadas em /usr/share/xine-lib/fonts
Diretórios Instalados: /usr/include/xine, /usr/lib/xine, /usr/share/xine-lib e /usr/share/doc/xine-lib-1.2.13

Descrições Curtas

xine-config

fornece informações para aplicativos que tentam se vincular às bibliotecas xine

xine-list-1.2

é usado para obter informações de tipo de arquivo suportado a partir da xine-lib

libxine.so

fornece a API para processar arquivos de áudio/vídeo

XviD-1.3.7

Introdução ao XviD

XviD é um CODEC de vídeo compatível com MPEG-4.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

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

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 45. 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.3.1

Introdução ao Audacious

Audacious é um reprodutor de áudio.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP): https://distfiles.audacious-media-player.org/audacious-4.3.1.tar.bz2

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 751a002964907c3a8fc2f571ffc00ec7

  • Tamanho da transferência: 620 KB

  • Espaço em disco estimado exigido: 16 MB (com suporte a Qt5 e GTK3)

  • Tempo de construção estimado: 0,2 UPC (com suporte a Qt5 e GTK3)

Transferências Adicionais

Plugins Exigidos

Dependências do Audacious

Exigidas

GTK+-2.24.33 ou GTK+-3.24.38 ou (Qt-5.15.10 ou componentes-qt-5.15.10 com qtmultimedia)

Recomendadas

libarchive-3.7.1

Opcionais

Valgrind-3.21.0

Recomendadas (para Plugins)
Opcionais (para Plugins)

ALSA-1.2.7, cURL-8.2.1, FAAD2-2.10.1, FLAC-1.4.3, LAME-3.100, libxml2-2.10.4, libcdio-2.1.0 (para identificar e reproduzir CDs), libnotify-0.8.2, libsndfile-1.2.2, libvorbis-1.3.7, pipewire-0.3.77, PulseAudio-16.1, SDL2-2.28.2, 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 Editor(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 deseje mudar o carimbo de construção para outra sequência de caracteres):

mkdir build &&
cd    build &&

meson setup --prefix=/usr       \
            --buildtype=release \
            -Dgtk3=true         \
            -Dbuildstamp=BLFS   \
            -Dlibarchive=true   \
            ..                  &&

ninja

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

ninja install

Instalação dos Plugins do Audacious

Instale o pacote exigido de plugins emitindo os seguintes comandos:

tar -xf ../../audacious-plugins-4.3.1.tar.bz2 &&
cd audacious-plugins-4.3.1                    &&

mkdir build &&
cd    build &&

meson setup           \
  --prefix=/usr       \
  --buildtype=release \
  -Dgtk3=true         \
  ..                  &&

ninja

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

-Dbuildstamp=BLFS: Essa chave acrescenta o texto fornecido à sequência de caracteres da versão.

-Dgtk3=true: Essa opção configura a interface gráfica padrão de usuário(a).

-Dvalgrind=true: A opção habilita o suporte à análise Valgrind.

Conteúdo

Aplicativos Instalados: audacious e audtool
Bibliotecas Instaladas: libaudcore.so, libaudgui.so, libaudqt.so, libaudtag.so e várias bibliotecas de plugin sob subdiretórios /usr/lib/audacious/
Diretórios Instalados: /usr/include/{audacious,libaudcore,libaudgui,libaudqt}, /usr/lib/audacious e /usr/share/audacious

Descrições Curtas

audacious

é um reprodutor de áudio e é um descendente do XMMS

audtool

é uma pequena ferramenta para modificar o comportamento de uma instância audacious em execução

CDParanoia-III-10.2

Introdução ao CDParanoia

O pacote CDParanoia contém uma ferramenta de extração de áudio de CD. Isso é útil para extrair arquivos .wav a partir de CDs de áudio. Uma unidade de CDROM compatível com CDDA é necessária. Praticamente todas as unidades suportadas pelo Linux podem ser usadas.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Transferências Adicionais

Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/cdparanoia

Instalação do CDParanoia

Nota

Esse pacote não suporta construção paralela.

Instale o CDParanoia executando os seguintes comandos:

patch -Np1 -i ../cdparanoia-III-10.2-gcc_fixes-1.patch &&
./configure --prefix=/usr --mandir=/usr/share/man &&
make -j1

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install &&
chmod -v 755 /usr/lib/libcdda_*.so.0.10.2 &&
rm -fv /usr/lib/libcdda_*.a

Conteúdo

Aplicativo Instalado: cdparanoia
Bibliotecas Instaladas: libcdda_interface.so e libcdda_paranoia.so
Diretórios Instalados: Nenhum(a)

Descrições Curtas

cdparanoia

é usado para 'ripar' um CD de áudio. Ripar é o processo de extrair digitalmente música a partir de um CD de áudio

libcdda_interface

contém funções usadas pelo cdparanoia, bem como outros pacotes, que podem identificar automaticamente se um dispositivo de CD é compatível com CDDA

libcdda_paranoia

contém funções usadas pelo cdparanoia, bem como outros pacotes, que fornecem verificação de dados, sincronização, tratamento de erros e capacidade aleatória de reconstrução

kwave-23.08.0

Introdução ao KWave

O pacote KWave contém um aplicativo Editor de Som baseado em KF5.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

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

Recomendadas
Opcionais

Doxygen-1.9.7

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP): https://downloads.sourceforge.net/lame/lame-3.100.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 83e260acbe4389b54fe08e0bdbf7cddb

  • Tamanho da transferência: 1,5 MB

  • Espaço em disco estimado exigido: 9,7 MB

  • Tempo de construção estimado: 0,1 UPC

Dependências do LAME

Opcionais

Dmalloc, Electric Fence, libsndfile-1.2.2 e NASM-2.16.01

Observações de Editor(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.3

Introdução ao mpg123

O pacote mpg123 contém um reprodutor de MP3 baseado em console. Ele afirma ser o decodificador de MP3 mais rápido para Unix.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP): https://downloads.sourceforge.net/mpg123/mpg123-1.31.3.tar.bz2

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 23ff362764374d3f2051862eea2d9a56

  • 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, sdl12-compat-1.2.64, JACK, OpenAL e PortAudio

Instalação do mpg123

Instale o mpg123 executando os seguintes comandos:

./configure --prefix=/usr &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install

Conteúdo

Aplicativos Instalados: mpg123, mpg123-id3dump, mpg123-strip e out123
Bibliotecas Instaladas: libmpg123.so, libout123.so e libsyn123.so
Diretório Instalado: /usr/lib/mpg123

Descrições Curtas

mpg123

é usado para reproduzir arquivos MP3 por intermédio do console

mpg123-id3dump

é uma ferramenta para despejar metadados ID3 a partir de arquivos de áudio MPEG usando a libmpg123

mpg123-strip

extrai somente quadros MPEG a partir de um fluxo usando a libmpg123 (stdin para stdout)

out123

reproduz áudio PCM bruto para um dispositivo de saída

libmpg123.so

contém as funções da API do mpg123

libout123.so

contém as funções da API do out123

libsyn123.so

contém algumas funções de síntese de sinal de áudio e conversão de formato

pavucontrol-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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do pavucontrol

Exigidas

Gtkmm-3.24.8, JSON-GLib-1.6.6, libcanberra-0.30, libsigc++-2.12.0 e PulseAudio-16.1

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do Pnmixer

Exigidas

alsa-utils-1.2.9, GTK+-3.24.38 e libnotify-0.8.2

Observações de Editor(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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do Vorbis Tools

Exigidas

libvorbis-1.3.7

Opcionais (exigidas para construir o aplicativo ogg123)

libao-1.2.0

Opcionais

cURL-8.2.1, FLAC-1.4.3, Speex-1.2.1 e libkate

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 46. 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-6.0

Introdução ao FFmpeg

FFmpeg é uma solução para gravar, converter e transmitir áudio e vídeo. Ela é um conversor de vídeo e áudio muito rápido e também pode adquirir a partir de uma fonte ao vivo de áudio/vídeo. Projetada para ser intuitiva, a interface de linha de comando (ffmpeg) tenta avaliar todos os parâmetros, quando possível. FFmpeg também pode converter de qualquer taxa de amostragem para qualquer outra e redimensionar o vídeo instantaneamente com um filtro polifásico de alta qualidade. FFmpeg pode usar uma fonte de vídeo compatível com Video4Linux e qualquer fonte de áudio Open Sound System.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP): https://ffmpeg.org/releases/ffmpeg-6.0.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 47b6c5d930937413c3e308e2fdb3dfb5

  • Tamanho da transferência: 9,8 MB

  • Espaço em disco estimado exigido: 187 MB (adicionar 1,5 GB para a suíte/testes FATE; adicionar 786 MB para documentação)

  • Tempo de construção estimado: 1,3 UPC (usando paralelismo=4; adicionar 3,2 UPC (com THREADS=4) para executar a suíte FATE depois que arquivos de amostra forem baixados; adicionar 0,3 UPC para documentos doxygen)

Transferências Adicionais

Dependências do FFmpeg

Recomendadas
Recomendadas para uso de área de trabalho
Opcionais

Doxygen-1.9.7, Fontconfig-2.14.2, FriBidi-1.0.13, frei0r-plugins-1.8.0, libcdio-2.1.0 (para identificar e reproduzir CDs), libdrm-2.4.115 (para entrada kmsgrab), libwebp-1.3.1, opencv-4.8.0, OpenJPEG-2.5.0, GnuTLS-3.8.1, PulseAudio-16.1, Samba-4.18.6, Speex-1.2.1, texlive-20230313 (ou install-tl-unx) para documentação PDF e PS, v4l-utils-1.24.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

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-6.0-chromium_method-1.patch

Agora, aplique um remendo que permite o pacote construir com binutils-2.41:

patch -Np1 -i ../ffmpeg-6.0-binutils_2.41-1.patch

Instale o FFmpeg executando os seguintes comandos:

./configure --prefix=/usr        \
            --enable-gpl         \
            --enable-version3    \
            --enable-nonfree     \
            --disable-static     \
            --enable-shared      \
            --disable-debug      \
            --enable-libaom      \
            --enable-libass      \
            --enable-libfdk-aac  \
            --enable-libfreetype \
            --enable-libmp3lame  \
            --enable-libopus     \
            --enable-libtheora   \
            --enable-libvorbis   \
            --enable-libvpx      \
            --enable-libx264     \
            --enable-libx265     \
            --enable-openssl     \
            --docdir=/usr/share/doc/ffmpeg-6.0 &&

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-20230313 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.7 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-6.0 &&
install -v -m644    doc/*.txt /usr/share/doc/ffmpeg-6.0

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-6.0 &&
install -v -m644 doc/*.ps  /usr/share/doc/ffmpeg-6.0

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-6.0/api                     &&
cp -vr doc/doxy/html/* /usr/share/doc/ffmpeg-6.0/api                  &&
find /usr/share/doc/ffmpeg-6.0/api -type f -exec chmod -c 0644 \{} \; &&
find /usr/share/doc/ffmpeg-6.0/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-libaom: Habilita decodificação de áudio e vídeo AV1 via libaom.

--enable-libass: Habilita a renderização do formato de legenda ASS/SSA via libass.

--enable-libdrm: Use essa chave, se o libdrm-2.4.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.7 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-6.0 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 corretamente usando uma plataforma LFS 12.0.

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.18.6, 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, sdl12-compat-1.2.64, JACK, NAS e OpenAL

Controladores e Bibliotecas Opcionais de Saída de Vídeo

AAlib-1.4rc5, giflib-5.2.1, libjpeg-turbo-3.0.0, libmng-2.0.3, libpng-1.6.40, 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.3, 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.1, FriBidi-1.0.13, GnuTLS-3.8.1, Opus-1.3.1 e UnRar-6.2.10; libxslt-1.1.38, 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)

Instalação do MPlayer

Instalação Principal do MPlayer

Existem dois remendos relacionados a FFmpeg-6.0 que precisam ser aplicados. Faça isso agora:

patch -Np1 -i ../MPlayer-1.5-upstream_ffmpg6_fixes-1.patch &&
patch -Np1 -d ffmpeg -i ../ffmpeg-6.0-binutils_2.41-1.patch

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   \
            --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.38 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 uma versão do ffmpeg anterior a ffmpeg-6.0. Essa versão do MPlayer é incompatível com a versão mais recente do ffmpeg. O MPlayer inclui uma cópia do fonte do FFmpeg e sem essa opção ele compilará estaticamente a versão incluída do FFmpeg nele mesmo. A vinculação dinâmica a um FFmpeg instalado do 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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Transferências Adicionais

Dependências do Transcode

Recomendadas
Opcionais

FAAC-1_30, FreeType-2.13.1, ImageMagick-6, liba52-0.7.4, libdv-1.0.0, libjpeg-turbo-3.0.0, libogg-1.3.5, libquicktime-1.2.4, libtheora-1.1.1, libvorbis-1.3.7, libxml2-2.10.4, LZO-2.10, sdl12-compat-1.2.64, v4l-utils-1.24.1, x264-20230215, XviD-1.3.7 Ferramentas MJPEG e PVM3,

Opcionais (em tempo de execução)

lsdvd

Observações de Editor(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 corretamente usando uma plataforma LFS 12.0.

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.8, libidn-1.41 e libssh2-1.11.0

Plugins opcionais de entrada

libarchive-3.7.1, libcddb-1.3.2, libdv-1.0.0, libdvdcss-1.4.3, libdvdread-6.1.3, libdvdnav-6.1.1, opencv-4.8.0, Samba-4.18.6, v4l-utils-1.24.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.3, libaom-3.6.1, libass-0.17.1, libmpeg2-0.5.1, libpng-1.6.40, libtheora-1.1.1, libva-2.19.0, libvorbis-1.3.7, Opus-1.3.1, Speex-1.2.1, libvpx-1.13.0, x264-20230215, 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.1, FriBidi-1.0.13, librsvg-2.56.3, libvdpau-1.5, sdl12-compat-1.2.64, libcaca e libmfx

Plugins opcionais de áudio

PulseAudio-16.1, libsamplerate-0.2.2, spatialaudio e JACK

Plugins opcionais de interface

(Qt-5.15.10 ou qt-alternate-5.15.10) (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.1, libnotify-0.8.2, libxml2-2.10.4, taglib-1.13.1, xdg-utils-1.1.3 (tempo de execução), AtmoLight, libmicrodns, protobuf e Srt

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.38 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.11.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 corretamente usando uma plataforma LFS 12.0.

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-8.2.1, AAlib-1.4rc5, LIRC e libcaca

Instalação do Xine User Interface

Instale o xine User Interface executando os seguintes comandos:

./configure --prefix=/usr &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make docsdir=/usr/share/doc/xine-ui-0.99.14 install

Nota

Esse pacote instala arquivos de ícone na hierarquia /usr/share/icons/hicolor e arquivos de área de trabalho na hierarquia /usr/share/applications. Você pode melhorar o desempenho do sistema e o uso de memória atualizando /usr/share/icons/hicolor/index.theme e /usr/share/applications/mimeinfo.cache. Para realizar a atualização, você precisa ter o GTK+-2.24.33 ou GTK+-3.24.38 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 47. Utilitários de Escrita de CD/DVD

Este capítulo contém informações acerca de utilitários de escrita de CD/DVD no Linux.

Fontes adicionais de informação incluem:

Cdrdao-1.2.4

Introdução ao Cdrdao

O pacote Cdrdao contém utilitários de gravação de CD. Eles são úteis para gravar um CD no modo disco de uma vez.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do Cdrdao

Recomendadas

Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/cdrdao

Instalação do Cdrdao

Instale o Cdrdao executando os seguintes comandos:

./configure --prefix=/usr --mandir=/usr/share/man &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install &&
install -v -m755 -d /usr/share/doc/cdrdao-1.2.4 &&
install -v -m644 README /usr/share/doc/cdrdao-1.2.4

Explicações do Comando

--mandir=/usr/share/man: Instale páginas de manual em /usr/share/man em vez de /usr/man.

Conteúdo

Aplicativos Instalados: cdrdao, cue2toc, toc2cddb, toc2cue e, opcionalmente, toc2mp3
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/share/cdrdao, /usr/share/doc/cdrdao-1.2.4

Descrições Curtas

cdrdao

grava CD-Rs de áudio ou dados no modo disk-at-once (DAO) baseado em uma descrição textual do conteúdo do CD

cue2toc

converte CUE para formato TOC para CDs de áudio

toc2cddb

converte um arquivo TOC do Cdrdao em um arquivo cddb e o imprime na stdout

toc2cue

converte TOC para formato CUE para CDs de áudio

toc2mp3

converte uma imagem de disco de CD de áudio (arquivo .toc) em arquivos MP3

Cdrtools-3.02a09

Introdução ao Cdrtools

O pacote Cdrtools contém utilitários de gravação de CD. Eles são úteis para ler, criar ou escrever (gravar) CDs, DVDs e discos Blu-ray.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do Cdrtools

Exigidas

alsa-lib-1.2.9

Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/Cdrtools

Instalação do Cdrtools

Nota

Esse pacote não suporta construção paralela.

Instale o Cdrtools executando os seguintes comandos:

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do dvd+rw-tools

Exigidas

Cdrtools-3.02a09 (tempo de execução)

Instalação do dvd+rw-tools

Instale o dvd+rw-tools executando os seguintes comandos:

sed -i '/stat.h/a #include <sys/sysmacros.h>' growisofs.c &&
sed -i '/stdlib/a #include <limits.h>' transport.hxx &&
make all rpl8 btcflash

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make prefix=/usr install &&
install -v -m644 -D index.html \
    /usr/share/doc/dvd+rw-tools-7.1/index.html

Explicações do Comando

sed -i '/stdlib/a #include <limits.h>' ...: Esse sed inclui limits.h, um dos cabeçalhos do núcleo. Isso é necessário devido a uma mudança nos cabeçalhos do núcleo 2.6.23.

make all rpl8 btcflash: Esse comando usa alvos adicionais, de forma que todos os utilitários sejam construídos.

Conteúdo

Aplicativos Instalados: btcflash, dvd+rw-booktype, dvd+rw-format, dvd+rw-mediainfo, dvd-ram-control, growisofs e rpl8
Bibliotecas Instaladas: Nenhum(a)
Diretório Instalado: /usr/share/doc/dvd+rw-tools-7.1

Descrições Curtas

growisofs

é um aplicativo combinado de estrutura de interação direta com o(a) usuário(a) para mkisofs/gravação de DVD

libburn-1.5.6

Introdução ao libburn

libburn é uma biblioteca para gravação de dados pré-formatados em mídia óptica: CD, DVD e BD (Blu-Ray).

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do libburn

Opcionais

Doxygen-1.9.7 (para gerar documentação HTML)

Instalação do libburn

Instale o libburn executando os seguintes comandos:

./configure --prefix=/usr --disable-static &&
make

Se você tiver instalado o Doxygen e desejar gerar a documentação HTML, emita o seguinte comando:

doxygen doc/doxygen.conf

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Se você tiver construído a documentação HTML, instale-a executando os seguintes comandos como o(a) usuário(a) root:

install -v -dm755 /usr/share/doc/libburn-1.5.6 &&
install -v -m644 doc/html/* /usr/share/doc/libburn-1.5.6

Conteúdo

Aplicativo Instalado: cdrskin
Biblioteca Instalada: libburn.so
Diretório Instalado: /usr/include/libburn

Descrições Curtas

cdrskin

grava dados pré-formatados em CD, DVD e BD via libburn

libburn.so

contém as funções da API da libburn

libisoburn-1.5.6

Introdução ao libisoburn

libisoburn é uma interface para 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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP): https://files.libburnia-project.org/releases/libisoburn-1.5.6.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5: da transferência efb19f7f718f0791f717b2c6094995ec

  • Tamanho da transferência: 1,5 MB

  • Espaço em disco estimado exigido: 20 MB (com documentação Tk e HTML)

  • Tempo de construção estimado: 0,2 UPC (com documentação Tk e HTML)

Dependências do libisoburn

Exigidas

libburn-1.5.6 e libisofs-1.5.6

Opcionais

Doxygen-1.9.7 (para gerar documentação HTML), Tk-8.6.13 (para xorriso-tcltk) e libjte

Instalação do libisoburn

Instale o libisoburn executando os seguintes comandos:

./configure --prefix=/usr              \
            --disable-static           \
            --enable-pkg-check-modules &&
make

Se você tiver instalado o Doxygen e desejar gerar a documentação HTML, emita o seguinte comando:

doxygen doc/doxygen.conf

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Se você tiver construído a documentação HTML, instale-a executando os seguintes comandos como o(a) usuário(a) root:

install -v -dm755 /usr/share/doc/libisoburn-1.5.6 &&
install -v -m644 doc/html/* /usr/share/doc/libisoburn-1.5.6

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

--enable-pkg-check-modules: 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.6

Descrições Curtas

osirrox

é um link simbólico para xorriso que copia arquivos da imagem ISO para um sistema de arquivos em disco

xorrecord

é um link simbólico para xorriso que fornece uma interface de usuário(a) do tipo cdrecord

xorriso

é um aplicativo para criar, carregar, manipular, ler e escrever imagens de sistema de arquivos ISO 9660 com extensões Rock Ridge

xorriso-dd-target

é um aplicativo para verificar um dispositivo USB ou cartão de memória para ver se ele é adequado para cópia de imagens

xorrisofs

é um link simbólico para xorriso que fornece uma interface de usuário(a) do tipo mkisofs

xorriso-tcltk

é uma estrutura de interação direta com o(a) usuário(a) que opera o xorriso em modo de diálogo

libisoburn.so

contém as funções da API da libisoburn

libisofs-1.5.6

Introdução ao libisofs

libisofs é uma biblioteca para criar um sistema de arquivos ISO-9660 com extensões como RockRidge ou Joliet.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do libisofs

Opcionais

Doxygen-1.9.7 (para gerar documentação HTML) e libjte

Instalação do libisofs

Instale o libisofs executando os seguintes comandos:

./configure --prefix=/usr --disable-static &&
make

Se você tiver instalado o Doxygen e desejar gerar a documentação HTML, emita o seguinte comando:

doxygen doc/doxygen.conf

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Se você tiver construído a documentação HTML, instale-a executando os seguintes comandos como o(a) usuário(a) root:

install -v -dm755 /usr/share/doc/libisofs-1.5.6 &&
install -v -m644 doc/html/* /usr/share/doc/libisofs-1.5.6

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

Conteúdo

Aplicativos Instalados: Nenhum(a)
Biblioteca Instalada: libisofs.so
Diretório Instalado: /usr/include/libisofs

Descrições Curtas

libisofs.so

contém as funções da API da libisofs

Parte XIV. Impressão, Digitalização e Composição Tipográfica

Capítulo 48. 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.6

Introdução ao Cups

O Common Unix Printing System (CUPS) é um aplicativo de gerenciamento de fila de documentos de impressão e utilitários associados. É baseado no "Internet Printing Protocol" e fornece serviços de impressão para a maioria das impressoras PostScript e raster.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do Cups

Exigidas

GnuTLS-3.8.1

Recomendadas
Opcionais

Avahi-0.8, libpaper-2.1.1, MIT Kerberos V5-1.21.2, PHP-8.2.9 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 Editor(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 --->                                             [USB_SUPPORT]
    <*/M> USB Printer support                                      [USB_PRINTER]

Se você tiver uma impressora paralela, habilite as seguintes opções na configuração do teu núcleo e recompile o núcleo:

Device Drivers --->
  <*/M> Parallel port support --->                                     [PARPORT]
    <*/M> PC-style hardware                                         [PARPORT_PC]
  Character devices --->
    <*/M> Parallel printer support                                     [PRINTER]

Instalação do Cups

Você precisará adicionar um(a) usuário(a) lp, pois o Cups criará alguns arquivos de propriedade desse usuário. (O(A) usuário(a) lp é o padrão usado pelo Cups, mas pode ser mudado para um(a) usuário(a) diferente passando-se um parâmetro para o conjunto de comandos sequenciais configure). Use o seguinte comando como o(a) usuário(a) root:

useradd -c "Usuário(a) do Serviço de Impressão" -d /var/spool/cups -g lp -s /bin/false -u 9 lp

Você também precisará de um grupo dedicado que conterá usuários(as) autorizados(as) a realizar tarefas administrativas do Cups. Adicione o grupo executando o seguinte comando como o(a) usuário(a) root:

groupadd -g 19 lpadmin

Se você deseja adicionar um(a) usuário(a) ao grupo administrativo do Cups, execute o seguinte comando como o(a) usuário(a) root:

usermod -a -G lpadmin <nome_usuário(a)>

Se você não instalou o xdg-utils-1.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-rundir=/run/cups      \
            --with-system-groups=lpadmin \
            --with-docdir=/usr/share/cups/doc-2.4.6 &&
make

Para testar os resultados, emita: LC_ALL=C make -k check. Uma sessão gráfica já ativa com endereço de barramento é necessária para se executar os testes. Certifique-se de que não exista outra instância do Cups executando, caso contrário, pelo menos quatro (4) testes falharão com "address in use".

Agora, como o(a) usuário(a) root:

make install &&
ln -svnf ../cups/doc-2.4.6 /usr/share/doc/cups-2.4.6

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.38 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-rundir=/run/cups: Essa chave impede o pacote de referenciar o diretório obsoleto /var/run.

--with-system-groups=lpadmin: Essa chave garante que somente o lpadmin será usado como o grupo administrativo do Cups .

--disable-libusb: Use essa chave se você tiver instalado o libusb-1.0.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.01.2 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.01.2 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, ippfind, ipptool, lp, lpadmin, lpc, lpinfo, lpmove, lpoptions, lpq, lpr, lprm, lpstat, ppdc, ppdhtml, ppdi, ppdmerge e ppdpo
Bibliotecas Instaladas: libcupsimage.so e libcups.so
Diretórios Instalados: /etc/cups, /usr/{include,lib,share}/cups, /usr/share/doc/cups-2.4.6 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

ippfind

encontra impressoras de protocolo de impressão da Internet

ipptool

envia solicitações IPP para o URI especificado e testa e (ou) exibe os resultados

lp

submete arquivos para impressão ou altera uma tarefa pendente

lpadmin

configura filas de impressoras e classes fornecidas pelo Cups

lpc

fornece controle limitado sobre filas de impressoras e classes fornecidas pelo Cups

lpinfo

lista os dispositivos ou controladores disponíveis conhecidos pelo servidor Cups

lpmove

move a tarefa especificada para um novo destino

lpoptions

exibe ou configura opções e padrões da impressora

lpq

mostra a situação atual da fila de impressão na impressora nomeada

lpr

submete arquivos para impressão

lprm

cancela tarefas de impressão que tenham sido enfileiradas para impressão

lpstat

exibe informações de situação acerca das atuais classes, tarefas e impressoras

ppdc

compila arquivos fonte PPDC em um ou mais arquivos PPD

ppdhtml

lê um arquivo de informações do controlador e produz uma página HTML de resumo que lista todos os controladores em um arquivo e as opções suportadas

ppdi

importa um ou mais arquivos PPD para um arquivo fonte de compilador de PPD

ppdmerge

mescla dois ou mais arquivos PPD em um arquivo PPD multilíngue

ppdpo

extrai sequências de caracteres de UI a partir de arquivos fonte PPDC e atualiza um arquivo fonte de catálogo de mensagens em formato de sequências de caracteres ou GNU gettext ou Mac OS X para tradução

libcups.so

contém as funções da API do Cups

cups-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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Transferências Adicionais

Dependências do CUPS Filters

Exigidas

Cups-2.4.6, GLib-2.76.4, ghostscript-10.01.2, Little CMS-2.14, Poppler-23.08.0 e Qpdf-11.5.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.6, PHP-8.2.9 (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

Instalação do CUPS Filters

Primeiro, corrija uma vulnerabilidade de segurança que pode permitir a execução remota de código com a estrutura de retaguarda ‘beh’ da impressora:

patch -Np1 -i ../cups-filters-1.28.16-security_fix-1.patch

Instale o CUPS Filters executando os seguintes comandos:

CXXFLAGS="$CXXFLAGS -std=c++17"  \
./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

CXXFLAGS="$CXXFLAGS -std=c++17": Essa variável de ambiente é necessária para corrigir um problema introduzido pelo qpdf-11.3.0.

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

Introdução ao Ghostscript

Ghostscript é um processador versátil para dados PostScript com a capacidade de renderizar PostScript para diferentes alvos. É uma parte obrigatória da pilha de impressão do CUPS.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

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.38, libidn-1.41, libpaper-2.1.1 e um ambiente gráfico

Instalação do Ghostscript

Nota

O sistema de construção do Ghostscript não é amigável para o(a) usuário(a). Para a finalidade de usar cópias de sistema de várias bibliotecas gráficas, você precisa fazer isso usando métodos não convencionais.

Ghostscript inclui cópias (antigas) de diversas bibliotecas. Algumas delas parecem ter sido remendadas para corrigir vulnerabilidades conhecidas, mas outras dessas cópias são menos bem mantidas. Para garantir que quaisquer correções futuras sejam aplicadas em todo o sistema, é recomendado que você primeiro instale as versões lançadas dessas bibliotecas e depois configure o Ghostscript para se vincular a elas.

Se você tiver instalado as dependências recomendadas em teu sistema, remova as cópias de freetype, lcms2, libjpeg, libpng e openjpeg:

rm -rf freetype lcms2mt jpeg libpng openjpeg

Compile o Ghostscript:

rm -rf zlib &&

./configure --prefix=/usr           \
            --disable-compile-inits \
            --with-system-libtiff   &&
make

Nota

A biblioteca compartilhada depende do GTK+-3.24.38. Ela é usada somente por aplicativos externos, como asymptote-2.86, dvisvgm-3.1 e ImageMagick-7.1.1-15.

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.01.2 /usr/share/doc/ghostscript-10.01.2  &&
rm -rfv /usr/share/doc/ghostscript &&
cp -r examples/ /usr/share/ghostscript/10.01.2/

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.01.2/examples . Para fazer isso, execute o seguinte comando (em uma tela do Janelas X):

gs -q -dBATCH /usr/share/ghostscript/10.01.2/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.1.

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.01.2 /usr/share/doc/ghostscript-10.01.2: 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.6 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.01.2

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.6 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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do Gutenprint

Recomendadas
Recomendadas (em tempo de execução)
Opcionais (para regenerar documentação)

ImageMagick-7.1.1-15, texlive-20230313 (ou install-tl-unx), Doxygen-1.9.7 e DocBook-utils-0.6.14

Configuração do Núcleo

Se você pretende usar escputil com uma impressora Epson Stylus conectada por USB para comandos como --ink-level, que precisam acessar o dispositivo bruto, você precisa habilitar o controlador de núcleo usblp. Habilite as seguintes opções na configuração do teu núcleo e recompile o núcleo:

Device Drivers --->
  [*] USB support --->                                             [USB_SUPPORT]
    <*/M> USB Printer support                                      [USB_PRINTER]

Instalação do Gutenprint

Instale o Gutenprint executando os seguintes comandos:

sed -i 's|$(PACKAGE)/doc|doc/$(PACKAGE)-$(VERSION)|' \
       {,doc/,doc/developer/}Makefile.in &&

./configure --prefix=/usr --disable-static &&
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 49. 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 corretamente usando uma plataforma LFS 12.0.

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.6, libjpeg-turbo-3.0.0, libtiff-4.5.1, libusb-1.0.26, v4l-utils-1.24.1, Net-SNMP, libieee1284, libgphoto2 e texlive-20230313 (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.34

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 corretamente usando uma plataforma LFS 12.0.

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

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 50. Standard Generalized Markup Language (SGML)

Este capítulo contém definições de tipo de documento (DTDs) DocBook SGML, folhas de estilo DocBook DSSSL e ferramentas DocBook para validar, transformar, formatar e publicar documentos DocBook.

sgml-common-0.6.3

Introdução ao SGML Common

O pacote SGML Common contém o install-catalog. Isso é útil para criar e manter catálogos centralizados SGML.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Transferências Adicionais

Instalação do SGML Common

Em vez da convenção normal de incluir os arquivos das autotools no pacote, os(as) mantenedores(as) incluíram links simbólicos para os arquivos em /usr/share/automake. Para versões anteriores do Automake essa convenção está correta, mas versões recentes do Automake instalam os arquivos internos em diretórios específicos da versão. Isso faz com que o conjunto de comandos sequenciais configure aborte. Para corrigir esse erro, as autotools são regeneradas. Como o arquivo Makefile.am incluído usa uma sintaxe não suportada pelas versões atuais do Automake, um remendo é exigido para corrigir a sintaxe.

patch -Np1 -i ../sgml-common-0.6.3-manpage-1.patch &&
autoreconf -f -i

Instale o SGML Common executando os seguintes comandos:

./configure --prefix=/usr --sysconfdir=/etc &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make docdir=/usr/share/doc install &&

install-catalog --add /etc/sgml/sgml-ent.cat \
    /usr/share/sgml/sgml-iso-entities-8879.1986/catalog &&

install-catalog --add /etc/sgml/sgml-docbook.cat \
    /etc/sgml/sgml-ent.cat

Dica de Atualização

Remova os itens de catálogo acima antes de atualizar (como o(a) usuário(a) root) com:

install-catalog --remove /etc/sgml/sgml-ent.cat \
    /usr/share/sgml/sgml-iso-entities-8879.1986/catalog &&

install-catalog --remove /etc/sgml/sgml-docbook.cat \
    /etc/sgml/sgml-ent.cat

Configurando o SGML Common

Arquivos de Configuração

/etc/sgml/sgml.conf

Informação de Configuração

Nenhuma mudança nesse arquivo é necessária.

Conteúdo

Aplicativos Instalados: install-catalog e sgmlwhich
Bibliotecas Instaladas: Nenhum(a)
Arquivos Instalados: Arquivos de entidade DocBook SGML e XML
Diretórios Instalados: /etc/sgml, /usr/share/doc/sgml-common-0.6.3 e /usr/share/sgml

Descrições Curtas

install-catalog

cria um catálogo centralizado que mantém referências para catálogos espalhados pela árvore de diretórios /usr/share/sgml

sgmlwhich

imprime na saída padrão o nome do arquivo de configuração principal

arquivos de entidades SGML

contém as entidades básicas de caracteres definidas com entradas SDATA

arquivos de entidades XML

contém as entidades básicas de caracteres definidas por uma representação hexadecimal do número de caracteres Unicode

docbook-3.1-dtd

Introdução ao DocBook-3.1 SGML DTD

O pacote DocBook SGML DTD contém definições de tipo de documento para verificação de arquivos de dados SGML em relação ao conjunto de regras do DocBook. Elas são úteis para estruturar livros e documentação de software em um padrão, permitindo que você utilize transformações já escritas para esse padrão.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

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 (ou libarchive-3.7.1)

Instalação do DocBook-3.1 SGML DTD

Nota

O fonte do pacote é distribuído no formato zip e exige o unzip (ou bsdunzip proveniente da libarchive). Você deveria criar um diretório e mudar para esse diretório antes de descompactar o arquivo para facilitar a remoção dos arquivos do fonte depois que o pacote tiver sido instalado.

Instale o DocBook-3.1 SGML DTD executando os seguintes comandos:

sed -i -e '/ISO 8879/d' \
       -e 's|DTDDECL "-//OASIS//DTD DocBook V3.1//EN"|SGMLDECL|g' \
       docbook.cat

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

install -v -d -m755 /usr/share/sgml/docbook/sgml-dtd-3.1 &&
chown -R root:root . &&
install -v docbook.cat /usr/share/sgml/docbook/sgml-dtd-3.1/catalog &&
cp -v -af *.dtd *.mod *.dcl /usr/share/sgml/docbook/sgml-dtd-3.1 &&

install-catalog --add /etc/sgml/sgml-docbook-dtd-3.1.cat \
    /usr/share/sgml/docbook/sgml-dtd-3.1/catalog &&

install-catalog --add /etc/sgml/sgml-docbook-dtd-3.1.cat \
    /etc/sgml/sgml-docbook.cat

Explicações do Comando

sed -i -e '/ISO 8879/d' docbook.cat: Esse comando remove as definições ENT do arquivo de catálogo.

sed -i -e 's|DTDDECL "-//OASIS//DTD Docbook V3.1//EN"|SGMLDECL|g' docbook.cat: Esse comando substitui a entrada de catálogo DTDDECL, a qual não é suportada pelas ferramentas SGML do Linux, pela entrada de catálogo SGMLDECL.

Configurando o DocBook-3.1 SGML DTD

Arquivos de Configuração

/etc/sgml/catalog

Informação de Configuração

O conjunto de comandos sequenciais de instalação acima atualiza o catálogo.

Usar somente a versão 3.x mais atual do DocBook SGML DTD exige o seguinte (realizar como o(a) usuário(a) root):

cat >> /usr/share/sgml/docbook/sgml-dtd-3.1/catalog << "EOF"
  -- Inicia mudanças no catálogo de Versão Principal Única --

PUBLIC "-//Davenport//DTD DocBook V3.0//EN" "docbook.dtd"

  -- Termina mudanças no catálogo de Versão Principal Única --
EOF

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Arquivos Instalados: Arquivos SGML DTD e MOD
Diretório Instalado: /usr/share/sgml/docbook/sgml-dtd-3.1

Descrições Curtas

Arquivos SGML DTD

contém uma definição de tipo de documento que define os tipos de elementos e as listas de atributos que podem ser usados nos arquivos SGML correspondentes

Arquivos SGML MOD

contém componentes da definição do tipo de documento que são carregados nos arquivos DTD

docbook-4.5-dtd

Introdução ao DocBook-4.5 SGML DTD

O pacote DocBook-4.5 SGML DTD contém definições de tipo de documento para verificação de arquivos de dados SGML em relação ao conjunto de regras do DocBook. Elas são úteis para estruturar livros e documentação de software em um padrão, permitindo que você utilize transformações já escritas para esse padrão.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

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 (ou libarchive-3.7.1)

Instalação do DocBook-4.5 SGML DTD

Nota

O fonte do pacote é distribuído no formato zip e exige o unzip (ou bsdunzip proveniente da libarchive). Você deveria criar um diretório e mudar para esse diretório antes de descompactar o arquivo para facilitar a remoção dos arquivos do fonte depois que o pacote tiver sido instalado.

Instale o DocBook-4.5 SGML DTD executando os seguintes comandos:

sed -i -e '/ISO 8879/d' \
       -e '/gml/d' docbook.cat

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

install -v -d /usr/share/sgml/docbook/sgml-dtd-4.5 &&
chown -R root:root . &&

install -v docbook.cat /usr/share/sgml/docbook/sgml-dtd-4.5/catalog &&
cp -v -af *.dtd *.mod *.dcl /usr/share/sgml/docbook/sgml-dtd-4.5 &&

install-catalog --add /etc/sgml/sgml-docbook-dtd-4.5.cat \
    /usr/share/sgml/docbook/sgml-dtd-4.5/catalog &&

install-catalog --add /etc/sgml/sgml-docbook-dtd-4.5.cat \
    /etc/sgml/sgml-docbook.cat

Explicações do Comando

sed -i -e '/ISO 8879/d' -e '/gml/d' docbook.cat: Esse comando remove as definições ENT do arquivo de catálogo.

Configurando o DocBook-4.5 SGML DTD

Arquivos de Configuração

/etc/sgml/catalog

Informação de Configuração

O conjunto de comandos sequenciais de instalação acima atualiza o catálogo.

Usar somente a versão 4.x mais atual do DocBook SGML DTD exige o seguinte (realizar como o(a) usuário(a) root):

cat >> /usr/share/sgml/docbook/sgml-dtd-4.5/catalog << "EOF"
  -- Inicia mudanças no catálogo de Versão Principal Única --

PUBLIC "-//OASIS//DTD DocBook V4.4//EN" "docbook.dtd"
PUBLIC "-//OASIS//DTD DocBook V4.3//EN" "docbook.dtd"
PUBLIC "-//OASIS//DTD DocBook V4.2//EN" "docbook.dtd"
PUBLIC "-//OASIS//DTD DocBook V4.1//EN" "docbook.dtd"
PUBLIC "-//OASIS//DTD DocBook V4.0//EN" "docbook.dtd"

  -- Termina mudanças no catálogo de Versão Principal Única --
EOF

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Arquivos Instalados: Arquivos SGML DTD e MOD
Diretório Instalado: /usr/share/sgml/docbook/sgml-dtd-4.5

Descrições Curtas

Arquivos SGML DTD

contém uma definição de tipo de documento que define os tipos de elementos e as listas de atributos que podem ser usados nos arquivos SGML correspondentes

Arquivos SGML MOD

contém componentes da definição do tipo de documento que são carregados nos arquivos DTD

OpenSP-1.5.2

Introdução ao OpenSP

O pacote OpenSP contém uma biblioteca C++ para usar arquivos SGML/XML. Isso é útil para validar, analisar e manipular documentos SGML e XML.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

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 Editor(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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Transferência Adicional

Dependências do OpenJade

Exigidas

OpenSP-1.5.2

Instalação do OpenJade

Primeiro corrija os problemas ao construir com compiladores mais recentes:

patch -Np1 -i ../openjade-1.3.2-upstream-1.patch

Agora corrija um problema de compilação com perl-5.16 e posterior:

sed -i -e '/getopts/{N;s#&G#g#;s#do .getopts.pl.;##;}' \
       -e '/use POSIX/ause Getopt::Std;' msggen.pl

Instale o OpenJade executando os seguintes comandos:

export CXXFLAGS="${CXXFLAGS:--O2 -g} -fno-lifetime-dse"            &&
./configure --prefix=/usr                                \
            --mandir=/usr/share/man                      \
            --enable-http                                \
            --disable-static                             \
            --enable-default-catalog=/etc/sgml/catalog   \
            --enable-default-search-path=/usr/share/sgml \
            --datadir=/usr/share/sgml/openjade-1.3.2   &&
make

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install                                                   &&
make install-man                                               &&
ln -v -sf openjade /usr/bin/jade                               &&
ln -v -sf libogrove.so /usr/lib/libgrove.so                    &&
ln -v -sf libospgrove.so /usr/lib/libspgrove.so                &&
ln -v -sf libostyle.so /usr/lib/libstyle.so                    &&

install -v -m644 dsssl/catalog /usr/share/sgml/openjade-1.3.2/ &&

install -v -m644 dsssl/*.{dtd,dsl,sgm}              \
    /usr/share/sgml/openjade-1.3.2                             &&

install-catalog --add /etc/sgml/openjade-1.3.2.cat  \
    /usr/share/sgml/openjade-1.3.2/catalog                     &&

install-catalog --add /etc/sgml/sgml-docbook.cat    \
    /etc/sgml/openjade-1.3.2.cat

Explicações do Comando

export CXXFLAGS=...: Esse comando evita falhas de segmentação quando o pacote é compilado com gcc-6.1.

make install-man: Esse comando instala a página de manual do openjade.

--disable-static: Essa chave evita a construção da biblioteca estática.

--enable-http: Essa chave adiciona suporte para HTTP.

--enable-default-catalog=/etc/sgml/catalog: Essa chave configura o caminho para o catálogo centralizado.

--enable-default-search-path: Essa chave configura o valor padrão de SGML_SEARCH_PATH.

--datadir=/usr/share/sgml/openjade-1.3.2: Essa chave coloca os arquivos de dados em /usr/share/sgml/openjade-1.3.2 em vez de /usr/share.

ln -v -sf ...: Esses comandos criam os equivalentes Jade dos executáveis e bibliotecas OpenJade.

Configurando o OpenJade

Informação de Configuração

Como o(a) usuário(a) root:

echo "SYSTEM \"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd\" \
    \"/usr/share/xml/docbook/xml-dtd-4.5/docbookx.dtd\"" >> \
    /usr/share/sgml/openjade-1.3.2/catalog

Essa configuração é necessária somente se você pretende usar o OpenJade para processar os arquivos XML do BLFS por intermédio de folhas de estilo DSSSL.

Conteúdo

Aplicativos Instalados: openjade e o link simbólico equivalente do Jade, jade
Bibliotecas Instaladas: libogrove.so, libospgrove.so, libostyle.so e os links simbólicos equivalentes do Jade: libgrove.so, libspgrove.so e libstyle.so
Diretório Instalado: /usr/share/sgml/openjade-1.3.2

Descrições Curtas

openjade

é um mecanismo DSSSL usado para transformações

jade

é um link simbólico para openjade

docbook-dsssl-1.79

Introdução ao DocBook DSSSL Stylesheets

O pacote DocBook DSSSL Stylesheets contém folhas de estilo DSSSL. Elas são usadas pelo OpenJade ou outras ferramentas para transformar arquivos SGML e XML do DocBook.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Transferências Adicionais

Documentação e dados de teste

Dependências do DocBook DSSSL Stylesheets

Exigidas

sgml-common-0.6.3

Exigidas (para testar o conjunto de ferramentas SGML do DocBook)

docbook-3.1-dtd, docbook-4.5-dtd, OpenSP-1.5.2 e OpenJade-1.3.2

Instalação do DocBook DSSSL Stylesheets

Se você baixou a documentação, execute:

tar -xf ../docbook-dsssl-doc-1.79.tar.bz2 --strip-components=1

Instale o DocBook DSSSL Stylesheets executando os seguintes comandos como o(a) usuário(a) root:

install -v -m755 bin/collateindex.pl /usr/bin                      &&
install -v -m644 bin/collateindex.pl.1 /usr/share/man/man1         &&
install -v -d -m755 /usr/share/sgml/docbook/dsssl-stylesheets-1.79 &&
cp -v -R * /usr/share/sgml/docbook/dsssl-stylesheets-1.79          &&

install-catalog --add /etc/sgml/dsssl-docbook-stylesheets.cat \
    /usr/share/sgml/docbook/dsssl-stylesheets-1.79/catalog         &&

install-catalog --add /etc/sgml/dsssl-docbook-stylesheets.cat \
    /usr/share/sgml/docbook/dsssl-stylesheets-1.79/common/catalog  &&

install-catalog --add /etc/sgml/sgml-docbook.cat              \
    /etc/sgml/dsssl-docbook-stylesheets.cat

Explicações do Comando

Os comandos acima criam um conjunto de comandos sequenciais de instalação para esse pacote.

Testando o Conjunto de Ferramentas SGML do DocBook (opcional)

Os comandos a seguir realizarão os testes necessários para confirmar se a tua cadeia de ferramentas instaladas SGML do DocBook produzirá os resultados desejados. Você precisa ter os pacotes docbook-3.1-dtd, docbook-4.5-dtd, OpenSP-1.5.2 e OpenJade-1.3.2 instalados e realizar os testes como o(a) usuário(a) root.

Todos os testes serão realizados a partir do diretório /usr/share/sgml/docbook/dsssl-stylesheets-1.79/doc/testdata como o(a) usuário(a) root:

cd /usr/share/sgml/docbook/dsssl-stylesheets-1.79/doc/testdata

O primeiro teste não deveria produzir nenhuma saída para stdout (tua tela) e criaria um arquivo chamado jtest.rtf no diretório atual:

openjade -t rtf -d jtest.dsl jtest.sgm

O próximo teste deveria retornar somente a seguinte linha para stdout: onsgmls:I: "OpenSP" version "1.5.2"

onsgmls -sv test.sgm

O próximo teste não deveria produzir nenhuma saída para stdout e criaria um arquivo chamado test.rtf no diretório atual:

openjade -t rtf \
    -d /usr/share/sgml/docbook/dsssl-stylesheets-1.79/print/docbook.dsl \
    test.sgm

O último teste não deveria produzir saída para stdout e criaria um arquivo chamado c1.htm no diretório atual:

openjade -t sgml \
    -d /usr/share/sgml/docbook/dsssl-stylesheets-1.79/html/docbook.dsl \
    test.sgm

Finalmente, limpe:

rm jtest.rtf test.rtf c1.htm

Conteúdo

Aplicativo Instalado: collateindex.pl
Bibliotecas Instaladas: Nenhum(a)
Arquivos Instalados: Folhas de estilo DSSSL
Diretório Instalado: /usr/share/sgml/docbook/dsssl-stylesheets-1.79

Descrições Curtas

collateindex.pl

é um conjunto de comandos sequenciais do Perl que cria um índice DocBook a partir de dados brutos do índice

DocBook-utils-0.6.14

Introdução ao DocBook-utils

O pacote DocBook-utils é uma coleção de conjuntos de comandos sequenciais utilitários usados para converter e analisar documentos SGML em geral, e arquivos DocBook em particular. Os conjuntos de comandos sequenciais são usados para converter DocBook ou outros formatos SGML em formatos de arquivo clássicos, como HTML, man, info, RTF e muitos mais. Existe também um utilitário para comparar dois arquivos SGML e exibir somente as diferenças na marcação. Isso é útil para comparar documentos preparados para diferentes idiomas.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

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.29 ou W3m (para conversão para texto ASCII)

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 51. Linguagem Extensível de Marcação (XML)

Este capítulo contém a Definição de Tipo de Documento (DTD) XML do DocBook e folhas de estilo do DocBook, que são usadas para validar, transformar, formatar e publicar documentos do DocBook.

docbook-xml-4.5

Introdução ao DocBook-4.5 XML DTD

O pacote DocBook-4.5 XML DTD-4.5 contém definições de tipo de documento para verificação de arquivos de dados XML em relação ao conjunto de regras do DocBook. Elas são úteis para estruturar livros e documentação de software em um padrão, permitindo que você utilize transformações já escritas para esse padrão.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

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.4, sgml-common-0.6.3 e UnZip-6.0 (ou libarchive-3.7.1)

Instalação do DocBook-4.5 XML DTD

Nota

O fonte do pacote é distribuído no formato zip e exige o unzip (ou bsdunzip proveniente da libarchive). Você deveria criar um diretório e mudar para esse diretório antes de descompactar o arquivo para facilitar a remoção dos arquivos do fonte depois que o pacote tiver sido instalado.

Instale o DocBook XML DTD executando os seguintes comandos como o(a) usuário(a) root:

install -v -d -m755 /usr/share/xml/docbook/xml-dtd-4.5 &&
install -v -d -m755 /etc/xml &&
cp -v -af --no-preserve=ownership docbook.cat *.dtd ent/ *.mod \
    /usr/share/xml/docbook/xml-dtd-4.5

Crie (ou atualize) e povoe o arquivo de catálogo /etc/xml/docbook executando os seguintes comandos como o(a) usuário(a) root:

if [ ! -e /etc/xml/docbook ]; then
    xmlcatalog --noout --create /etc/xml/docbook
fi &&
xmlcatalog --noout --add "public" \
    "-//OASIS//DTD DocBook XML V4.5//EN" \
    "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" \
    /etc/xml/docbook &&
xmlcatalog --noout --add "public" \
    "-//OASIS//DTD DocBook XML CALS Table Model V4.5//EN" \
    "file:///usr/share/xml/docbook/xml-dtd-4.5/calstblx.dtd" \
    /etc/xml/docbook &&
xmlcatalog --noout --add "public" \
    "-//OASIS//DTD XML Exchange Table Model 19990315//EN" \
    "file:///usr/share/xml/docbook/xml-dtd-4.5/soextblx.dtd" \
    /etc/xml/docbook &&
xmlcatalog --noout --add "public" \
    "-//OASIS//ELEMENTS DocBook XML Information Pool V4.5//EN" \
    "file:///usr/share/xml/docbook/xml-dtd-4.5/dbpoolx.mod" \
    /etc/xml/docbook &&
xmlcatalog --noout --add "public" \
    "-//OASIS//ELEMENTS DocBook XML Document Hierarchy V4.5//EN" \
    "file:///usr/share/xml/docbook/xml-dtd-4.5/dbhierx.mod" \
    /etc/xml/docbook &&
xmlcatalog --noout --add "public" \
    "-//OASIS//ELEMENTS DocBook XML HTML Tables V4.5//EN" \
    "file:///usr/share/xml/docbook/xml-dtd-4.5/htmltblx.mod" \
    /etc/xml/docbook &&
xmlcatalog --noout --add "public" \
    "-//OASIS//ENTITIES DocBook XML Notations V4.5//EN" \
    "file:///usr/share/xml/docbook/xml-dtd-4.5/dbnotnx.mod" \
    /etc/xml/docbook &&
xmlcatalog --noout --add "public" \
    "-//OASIS//ENTITIES DocBook XML Character Entities V4.5//EN" \
    "file:///usr/share/xml/docbook/xml-dtd-4.5/dbcentx.mod" \
    /etc/xml/docbook &&
xmlcatalog --noout --add "public" \
    "-//OASIS//ENTITIES DocBook XML Additional General Entities V4.5//EN" \
    "file:///usr/share/xml/docbook/xml-dtd-4.5/dbgenent.mod" \
    /etc/xml/docbook &&
xmlcatalog --noout --add "rewriteSystem" \
    "http://www.oasis-open.org/docbook/xml/4.5" \
    "file:///usr/share/xml/docbook/xml-dtd-4.5" \
    /etc/xml/docbook &&
xmlcatalog --noout --add "rewriteURI" \
    "http://www.oasis-open.org/docbook/xml/4.5" \
    "file:///usr/share/xml/docbook/xml-dtd-4.5" \
    /etc/xml/docbook

Crie (ou atualize) e povoe o arquivo de catálogo /etc/xml/catalog executando os seguintes comandos como o(a) usuário(a) root:

if [ ! -e /etc/xml/catalog ]; then
    xmlcatalog --noout --create /etc/xml/catalog
fi &&
xmlcatalog --noout --add "delegatePublic" \
    "-//OASIS//ENTITIES DocBook XML" \
    "file:///etc/xml/docbook" \
    /etc/xml/catalog &&
xmlcatalog --noout --add "delegatePublic" \
    "-//OASIS//DTD DocBook XML" \
    "file:///etc/xml/docbook" \
    /etc/xml/catalog &&
xmlcatalog --noout --add "delegateSystem" \
    "http://www.oasis-open.org/docbook/" \
    "file:///etc/xml/docbook" \
    /etc/xml/catalog &&
xmlcatalog --noout --add "delegateURI" \
    "http://www.oasis-open.org/docbook/" \
    "file:///etc/xml/docbook" \
    /etc/xml/catalog

Configurando a DTD XML do DocBook-4.5

Arquivos de Configuração

/etc/xml/catalog e /etc/xml/docbook

Informação de Configuração

Cuidado

Vários pacotes do BLFS solicitam a versão 4.x do DocBook XML DTD antes da V4.5, de forma que a etapa a seguir precisa ser feita para que esses pacotes sejam construídos com sucesso.

A instalação acima cria os arquivos e atualiza os catálogos. Para a finalidade de utilizar a V4.5 do DocBook XML DTD quando qualquer versão 4.x for solicitada no Identificador do Sistema, você precisa adicionar declarações adicionais aos arquivos de catálogo. Se você tiver algum dos DocBook XML DTD mencionados abaixo já instalados em teu sistema, remova essas entradas do comando for abaixo (emita os comandos como o(a) usuário(a) root):

for DTDVERSION in 4.1.2 4.2 4.3 4.4
do
  xmlcatalog --noout --add "public" \
    "-//OASIS//DTD DocBook XML V$DTDVERSION//EN" \
    "http://www.oasis-open.org/docbook/xml/$DTDVERSION/docbookx.dtd" \
    /etc/xml/docbook
  xmlcatalog --noout --add "rewriteSystem" \
    "http://www.oasis-open.org/docbook/xml/$DTDVERSION" \
    "file:///usr/share/xml/docbook/xml-dtd-4.5" \
    /etc/xml/docbook
  xmlcatalog --noout --add "rewriteURI" \
    "http://www.oasis-open.org/docbook/xml/$DTDVERSION" \
    "file:///usr/share/xml/docbook/xml-dtd-4.5" \
    /etc/xml/docbook
  xmlcatalog --noout --add "delegateSystem" \
    "http://www.oasis-open.org/docbook/xml/$DTDVERSION/" \
    "file:///etc/xml/docbook" \
    /etc/xml/catalog
  xmlcatalog --noout --add "delegateURI" \
    "http://www.oasis-open.org/docbook/xml/$DTDVERSION/" \
    "file:///etc/xml/docbook" \
    /etc/xml/catalog
done

Conteúdo

Aplicativos Instalados: Nenhum(a)
Bibliotecas Instaladas: Nenhum(a)
Arquivos Instalados: Arquivos DTD, MOD e ENT
Diretórios Instalados: /etc/xml e /usr/share/xml/docbook/xml-dtd-4.5

Descrições Curtas

Arquivos DTD

contém uma definição de tipo de documento que define os tipos de elementos e as listas de atributos que podem ser usados nos arquivos XML correspondentes

Arquivos MOD

contêm componentes da definição do tipo de documento que são carregados nos arquivos DTD

Arquivos ENT

contém listas de entidades nomeadas de caracteres permitidas em HTML

docbook-xml-5.0

Introdução ao DocBook XML DTD and Schemas 5.0

O pacote DocBook XML DTD and Schemas-5.0 contém definições de tipo de documento e esquemas para verificação de arquivos de dados XML em relação ao conjunto de regras do DocBook. Elas são úteis para estruturar livros e documentação de software em um padrão, permitindo que você utilize transformações já escritas para esse padrão. Além de fornecer uma DTD, a versão 5 introduziu o esquema RelaxNG e as regras do Schematron e é incompatível com versões anteriores de XML do DocBook.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

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.4, sgml-common-0.6.3 e UnZip-6.0

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 corretamente usando uma plataforma LFS 12.0.

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.4, sgml-common-0.6.3 e UnZip-6.0 (ou libarchive-3.7.1)

Instalação do DocBook XML Schemas 5.1

Nota

O fonte do pacote é distribuído no formato zip e exige o unzip (ou bsdunzip proveniente da libarchive). Você deveria criar um diretório e mudar para esse diretório antes de descompactar o arquivo para facilitar a remoção dos arquivos do fonte depois que o pacote tiver sido instalado.

Instale o DocBook XML 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 corretamente usando uma plataforma LFS 12.0.

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.14 (para produzir documentos do webhelp), libxslt-1.1.38 (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.2 (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.14 para produzir documentos do webhelp)

Instalação do DocBook XSL Stylesheets

Primeiro, corrija um problema que causa estouros de pilha ao fazer recursão:

patch -Np1 -i ../docbook-xsl-nons-1.79.2-stack_fix-1.patch

Se você baixou o tarball opcional da documentação, desempacote-o com o seguinte comando:

tar -xf ../docbook-xsl-doc-1.79.2.tar.bz2 --strip-components=1

O BLFS não instala os pacotes exigidos para executar a suíte de teste e fornecer resultados significativos.

Instale o DocBook XSL Stylesheets executando os seguintes comandos como o(a) usuário(a) root:

install -v -m755 -d /usr/share/xml/docbook/xsl-stylesheets-nons-1.79.2 &&

cp -v -R VERSION assembly common eclipse epub epub3 extensions fo        \
         highlighting html htmlhelp images javahelp lib manpages params  \
         profiling roundtrip slides template tests tools webhelp website \
         xhtml xhtml-1_1 xhtml5                                          \
    /usr/share/xml/docbook/xsl-stylesheets-nons-1.79.2 &&

ln -s VERSION /usr/share/xml/docbook/xsl-stylesheets-nons-1.79.2/VERSION.xsl &&

install -v -m644 -D README \
                    /usr/share/doc/docbook-xsl-nons-1.79.2/README.txt &&
install -v -m644    RELEASE-NOTES* NEWS* \
                    /usr/share/doc/docbook-xsl-nons-1.79.2

Se você baixou o tarball de documentação opcional, instale a documentação emitindo o seguinte comando como o(a) usuário(a) root:

cp -v -R doc/* /usr/share/doc/docbook-xsl-nons-1.79.2

Configurando Folhas de Estilo XSL do DocBook

Arquivos de Configuração

/etc/xml/catalog

Informação de Configuração

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP): https://files.itstool.org/itstool/itstool-2.0.7.tar.bz2

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 267a3bdc72a2d8abb1b824f2ea32ee9b

  • Tamanho da transferência: 104 KB

  • Espaço em disco estimado exigido: 688 KB

  • Tempo de construção estimado: menos que 0,1 UPC

Dependências do Itstool

Exigidas

docbook-xml-4.5

Instalação do itstool

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 corretamente usando uma plataforma LFS 12.0.

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

Opcionais (para pós-processamento da estrutura de retaguarda de DVI, PDF e PostScript)

fop-2.9, dblatex e PassiveTeX

Opcionais (para pós-processamento do estrutura de retaguarda de texto)

Um de Links-2.29, Lynx-2.8.9rel.1, W3m ou ELinks

Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/xmlto

Instalação do xmlto

Instale o xmlto executando os seguintes comandos:

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 52. PostScript

Este capítulo inclui aplicativos que criam, manipulam ou visualizam arquivos PostScript e criam ou visualizam arquivos Portable Document Format (PDF).

Enscript-1.6.6

Introdução ao Enscript

Enscript converte arquivos de texto ASCII em PostScript, HTML, RTF, ANSI e sobreposições.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

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-20230313 (ou install-tl-unx)

Observações de Editor(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-20230313 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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Transferências Adicionais

Dependências do ePDFView

Exigidas

GTK+-2.24.33 e Poppler-23.08.0

Recomendadas (principalmente para ambientes de área de trabalho)
Opcionais

Cups-2.4.6

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.6 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.9

Introdução ao fop

O pacote FOP (Formatting Objects Processor) contém um formatador de impressão controlado por objetos de formatação XSL (XSL-FO). É uma aplicação Java que lê uma árvore de objetos de formatação e renderiza as páginas resultantes em uma saída especificada. Os formatos de saída atualmente suportados incluem PDF, PCL, PostScript, SVG, XML (representação de árvore de área), impressão, AWT, MIF e texto ASCII. O alvo de saída principal é PDF.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP): https://archive.apache.org/dist/xmlgraphics/fop/source/fop-2.9-src.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: f7537ca7f2e16971fa99c8bb0dad62c7

  • Tamanho da transferência: 20 MB

  • Espaço em disco estimado exigido: 333 MB (incluindo arquivos baixados para o diretório do(a) usuário(a))

  • Tempo de construção estimado: 0,9 UPC

Transferências Adicionais

Transferências Adicionais Exigidas:

Pacotes recomendados

Dependências do fop

Exigidas

apache-ant-1.10.14

Opcionais

um ambiente gráfico (para executar testes), Ferramentas de E/S de Imagens JAI e JEuclid

Instalação do fop

Certifique-se de que $JAVA_HOME esteja configurada corretamente antes de iniciar a construção. Para construir as classes de extensão JIMI SDK e (ou) XMLUnit, certifique-se de que os arquivos .jar correspondentes possam ser encontrados por intermédio da variável de ambiente CLASSPATH.

Instalando Padrões de Hifenização OFFO

Copie os padrões de hifenização XML para a árvore do fonte do fop executando os seguintes comandos:

unzip ../offo-hyphenation.zip &&
cp offo-hyphenation/hyph/* fop/hyph &&
rm -rf offo-hyphenation

Instalando um binário temporário Maven

A partir do fop-2.5, o sistema de construção Maven é exigido. Nós usamos o binário fornecido pelo Apache, que instalamos em um local temporário:

tar -xf ../apache-maven-3.9.4-bin.tar.gz -C /tmp

Instalando Componentes fop

O comando javadoc fornecido com o OpenJDK 10 e posterior tornou-se muito mais rigoroso que as versões anteriores em relação à conformidade dos comentários Javadoc no código-fonte para HTML. A documentação do FOP não atende a esses padrões, de forma que as verificações de conformidade tem de ser desabilitadas. Isso pode ser feito com o seguinte comando:

sed -i '\@</javad@i\
<arg value="-Xdoclint:none"/>\
<arg value="--allow-script-in-comments"/>\
<arg value="--ignore-source-errors"/>' \
    fop/build.xml

Compile o fop executando os seguintes comandos:

cd fop &&

LC_ALL=en_US.UTF-8                     \
PATH=$PATH:/tmp/apache-maven-3.9.4/bin \
ant 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.9 &&
cp -vR build conf examples fop* javadocs lib /opt/fop-2.9 &&
chmod a+x /opt/fop-2.9/fop                                &&
ln -v -sfn fop-2.9 /opt/fop

A última coisa a fazer é limpar o que fizemos:

rm -rf /tmp/apache-maven-3.9.4

Explicações do Comando

sed -i ... build.xml: Isso adiciona três chaves ao comando javadoc, evitando que alguns erros ocorram durante a construção da documentação.

export LC_ALL=en_US.UTF-8: o compilador falha se usar uma localidade ASCII.

ant target: Isso lê o arquivo build.xml e constrói o alvo: compile compila os fontes java; jar-main gera arquivos jar; jar-hyphenation gera os padrões de hifenização para o FOP; junit executa os testes junit; e javadocs constrói a documentação. O alvo all executa tudo do acima.

ln -v -sf fop-2.9 /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.9

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

Introdução ao MuPDF

MuPDF é um visualizador leve de PDF e XPS.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

Dependências do MuPDF

Exigidas

GLU-9.0.3 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

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.22.2 \
     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.22.2

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 corretamente usando uma plataforma LFS 12.0.

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

Opcionais

Doxygen-1.9.7

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 53. 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-20230313, 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.86, biber-2.19 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/2023.

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/2023
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

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

Agora você deveria prosseguir para install-tl-unx para uma instalação binária do texlive ou para texlive-20230313 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 2023/.

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP): https://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: Varies frequently

  • Tamanho da transferência: 5,5 MB

  • Espaço em disco estimado exigido: 310 MB para TeX e latex básicos; 7,9 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)

A versão binária do asy está vinculada à libGLX.so.0 originária de libglvnd, mas instalar isso quebrará atualizações futuras dos pacotes do BLFS, como Mesa-23.1.6. Contorne isso criando um link simbólico como o(a) usuário(a) root:

ln -sv libGL.so.1 /usr/lib/libGLX.so.0

Nota

Como sempre acontece com software binário contribuído, é possível que as dependências exigidas mudem quando o instalador for atualizado. Em particular, essas dependências só foram verificadas em x86_64.

Observações de Editor(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.

Atenção

Se você tiver instalado algum dos aplicativos do luatex (luatex, luahbtex, luajitex, luajithbtex) ou do ConTeXt com o backend luametatex, existiu um problema de segurança corrigido pela introdução do luatex v1.17.0. Você deveria verificar a versão com 'luatex --version' e se ela for inferior a 1.17.0, você pode usar o tlmgr para atualizar.

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/2023/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 2023/texmf-dist/. Usar texdoc pdflatex (substitua pdflatex pelo nome do comando) também possivelmente seja útil

texlive-20230313-source

Introdução ao TeX Live a partir do fonte

Nota

De acordo com https://www.tug.org/historic/ o site mestre na França suporta somente FTP e rsync. Agora que o FTP está geralmente obsoleto, essa página tem links para espelhos, alguns dos quais suportam HTTPS, por exemplo, em Utah e Chemnitz, bem como na China. Se você preferir usar um espelho diferente a partir dos links de exemplo aqui, você precisará navegar até systems/historic/texlive/2023 ou systems/texlive/2023 conforme o caso.

A maior parte do TeX Live pode ser construída a partir do fonte sem uma instalação pré existente, mas o xindy (para indexação) precisa de versões funcionais de latex e pdflatex quando o configure for executado e a suíte de teste e a instalação do asy (para gráficos vetoriais) falharão se o TeX ainda não tiver sido instalado. Além disso, biber não é fornecido no fonte do texlive e a versão de dvisvgm na árvore do texlive não pode ser construída se bibliotecas de sistema compartilhadas forem usadas.

Todos esses pacotes são tratados em nas próprias páginas deles e podem ser construídos depois de se instalar esse pacote. Se ainda não tiver feito isso, você deveria iniciar em Configurando o PATH para TeX Live, de forma que os comandos finais para inicializar a nova instalação sejam encontrados.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

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

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.

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/') &&

patch -Np1 -i ../texlive-20230313-source-security_fix-1.patch &&

mkdir texlive-build &&
cd    texlive-build &&

../configure -C                                   \
    --prefix=$TEXLIVE_PREFIX                      \
    --bindir=$TEXLIVE_PREFIX/bin/$TEXARCH         \
    --datarootdir=$TEXLIVE_PREFIX                 \
    --includedir=$TEXLIVE_PREFIX/include          \
    --infodir=$TEXLIVE_PREFIX/texmf-dist/doc/info \
    --libdir=$TEXLIVE_PREFIX/lib                  \
    --mandir=$TEXLIVE_PREFIX/texmf-dist/doc/man   \
    --disable-native-texlive-build                \
    --disable-static --enable-shared              \
    --disable-dvisvgm                             \
    --with-system-cairo                           \
    --with-system-fontconfig                      \
    --with-system-freetype2                       \
    --with-system-gmp                             \
    --with-system-graphite2                       \
    --with-system-harfbuzz                        \
    --with-system-icu                             \
    --with-system-libgs                           \
    --with-system-libpaper                        \
    --with-system-libpng                          \
    --with-system-mpfr                            \
    --with-system-pixman                          \
    --with-system-zlib                            \
    --with-banner-add=" - BLFS" &&

make

Para testar os resultados, emita: make -k check. Dois testes, psutils.test e eptexdir/wcfname são conhecidos por falharem.

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-20230311-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-20230313-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 (o comando fmtutil-sys --all produzirá um monte de saída gerada):

mktexlsr &&
fmtutil-sys --all

Para permitir que o Evince-44.3, ou o dvisvgm-3.1, se vincule a libkpathsea.so, como o(a) usuário(a) root, (re)crie um link simbólico a partir de /usr/lib:

ln -svf $TEXLIVE_PREFIX/lib/libkpathsea.so /usr/lib

Nota

TeXLive inclui alguns arquivos para ConTeXt, mas o fonte deles é separado e passou do uso de luatex na versão 'mkiv' anterior para o uso de luametatex, que pode ser extraído com git a partir de luametatex do github. LuaMetaTeX usa meson e ninja, mas não se encaixa facilmente no esquema do BLFS do TeXLive.

Entretanto, com um pouco de trabalho extra, os arquivos 'mkiv' ainda podem ser processados usando os arquivos enviados no texmf.

As correções para usar o ConTeXt serão removidas quando o fonte do texlive tiver que ser atualizado para uma correção de vulnerabilidade que exija backporting das mudanças do luatex ou para o TeXLive 2024. Se você for um(a) usuário(a) BLFS do ConTeXt, você deveria estar preparado(a) para usar a etiqueta mais recente a partir do GitHub (o link está no primeiro parágrafo desta Observação). Construir e instalar isso para funcionar com uma instalação BLFS do TeXLive não será um exercício trivial.

As seguintes etapas, executadas como o(a) usuário(a) root, criarão mtxrun e context.

sed -e '/local template=\[\[--ini/s/\(primaryflags%\)\(.*\)/\1 --socket --shell-escape \2/' \
 -e '/local template=\[\[%primaryflags%/s/\(primaryflags%\)\(.*\)/\1 --socket --shell-escape \2/' \
  -i $TEXLIVE_PREFIX/texmf-dist/scripts/context/lua/mtxrun.lua &&

mkdir -pv $TEXLIVE_PREFIX/texmf-var/luatex-cache/context/ &&

ln -sfv /$TEXLIVE_PREFIX/texmf-dist/scripts/context/lua/mtxrun.lua \
        /$TEXLIVE_PREFIX/bin/$TEXARCH/mtxrun &&

cat > $TEXLIVE_PREFIX/bin/$TEXARCH/context << EOF
#!/bin/sh
export TEXMF=$TEXLIVE_PREFIX/texmf-dist;
export TEXMFCNF=$TEXLIVE_PREFIX/texmf-dist/web2c;
export TEXMFCACHE=$TEXLIVE_PREFIX/texmf-var/luatex-cache/context/;
$TEXLIVE_PREFIX/bin/$TEXARCH/mtxrun --script context "\$@"
EOF
chmod -v 0755 $TEXLIVE_PREFIX/bin/$TEXARCH/context

Agora você pode prosseguir para asymptote-2.86, biber-2.19, dvisvgm-3.1 e (ou) xindy-2.5.1 se desejar instalá-los.

Explicações do Comando

patch -Np1 -i ../texlive-20230313-source-security_fix-1.patch: isso atualiza o fonte do luatex para v1.17.0 para corrigir problemas de segurança.

sed -e '/local template (...)' (...)mtxrun.lua: isso faz uma mudança em um conjunto de comandos sequenciais do texmf-dist, de forma que o ConTeXt agora consiga executar com o luatex-v1.17.0.

-C: cria config.cache; isso economiza tempo significativo em uma construção paralela.

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

/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-20230313-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.

mkdir -pv $TEXLIVE_PREFIX/texmf-var/luatex-cache/context/: o conjunto de comandos sequenciais de contexto criado depois disso não executará corretamente se esse diretório não estiver presente.

--without-x: use isso se você não tiver o Xorg instalado.

Existem muitas outras opções '--disable' ou '--without'. Algumas delas, como --without-texinfo, são aceitas, mas não mais fazem nada; outras impedirão um aplicativo de ser construído - mas a quantidade muito maior de espaço usado para os itens relacionados no texmf significa que não existe nenhum benefício óbvio em desabilitar alguns dos aplicativos.

Conteúdo

Aplicativos Instalados: Mais que trezentos (300) binários e links simbólicos para conjuntos de comandos sequenciais
Bibliotecas Instaladas: libkpathsea.so, libptexenc.so, libsynctex.so, libtexlua52.so, libtexluajit.so
Diretórios Instalados: $TEXLIVE_PREFIX/bin, $TEXLIVE_PREFIX/include, $TEXLIVE_PREFIX/lib, $TEXLIVE_PREFIX/texmf-dist

Descrições Curtas

TeXprograms

Os aplicativos incluídos no TeX são numerosos demais para se listar individualmente. Por favor, consulte as páginas HTML e PDF do programa individual nos vários arquivos html, man ou pdf nos subdiretórios de 2023/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.86

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP): https://downloads.sourceforge.net/asymptote/asymptote-2.86.src.tgz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: cbba3fe866982ed1dd60b903f632a04c

  • Tamanho da transferência: 15 MB

  • Espaço em disco estimado exigido: 218 MB (54 MB instalado, com todas as dependências que estão no BLFS)

  • Tempo de construção estimado: 1,3 UPC (usando paralelismo = 4)

Transferências Adicionais

Dependências do asymptote

Exigidas

ghostscript-10.01.2 e texlive-20230313

Recomendadas
Recomendadas em tempo de execução
Opcionais

fftw-3.3.10, Gsl-2.7.1, libsigsegv-2.14, ambos Boost-1.83.0 e rapidjson para usar LSP, que pode ser usada com emacs e eigen

Opcionais (em tempo de execução)

ImageMagick-7.1.1-15 para converter a saída para outros formatos, como JPEG ou para criar GIFs animados, PyQt5 (não testado, tem uma dependência de construção de (Qt-5.15.10 ou qt-alternate-5.15.10)) para usar xasy.

Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/asymptote

Instalação do asymptote

Nota

Certos conjuntos de comandos sequenciais 3D de PDF possivelmente não funcionem quando invocados a partir do pdflatex em algumas máquinas APU zen+ amdgpu.

Primeiro aplique um remendo para corrigir a construção sem o Language Server Protocol:

patch -Np1 -i ../asymptote-2.86-build_fix-1.patch

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

Introdução ao biber

Biber é um substituto do BibTeX para usuários(as) do biblatex, escrito em Perl, com suporte completo a Unicode.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP): https://github.com/plk/biber/archive/v2.19/biber-2.19.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 898661d715ebb202e5b9d3ece354672e

  • Tamanho da transferência: 1,6 MB

  • Espaço em disco estimado exigido: 16 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/2023 e precisa ser reinstalado.

Se você instalou as dependências acima usando as instruções do BLFS para cada uma delas, perl ./Build.PL reclamará que Mozilla::CA não está instalado, mas isso não é necessário, a menos que o CPAN seja usado para instalar os módulos. O BLFS corrige LWP::Protocol::https para usar os certificados do sistema; Mozilla::CA usa certificados antigos.

Dependências do Biber

Exigidas

autovivification-0.18 Business-ISBN-3.008 Business-ISMN-1.203 Business-ISSN-1.005 Class-Accessor-0.51 Data-Compare-1.29 Data-Dump-1.25 Data-Uniqid-0.12 DateTime-Calendar-Julian-0.107 DateTime-Format-Builder-0.83 Encode-EUCJPASCII-0.03 Encode-HanExtra-0.23 Encode-JIS2K-0.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.11 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.03 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 Editor(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

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

Introdução ao dvisvgm

O pacote dvisvgm converte arquivos DVI, EPS e PDF para o formato SVG.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP): https://github.com/mgieseki/dvisvgm/releases/download/3.1/dvisvgm-3.1.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: bf042da299b1f7208e11df210b3fd6a2

  • Tamanho da transferência: 2,9 MB

  • Espaço em disco estimado exigido: 311 MB (45 MB instalado; adicionar 962 MB para os testes)

  • Tempo de construção estimado: 0,9 UPC (adicionar 0,6 UPC para os testes, ambos usando paralelismo=4)

Dependências do dvisvgm

Exigidas

Brotli-1.0.9, ghostscript-10.01.2 e Potrace-1.16

Recomendadas
Opcionais

asciidoc-10.2.0 com xmlto-0.0.28 e libxslt-1.1.38 (vejam-se as explicações do comando), dblatex (com o acima) e xxHash (a versão atual está incluída no tarball)

Instalação do dvisvgm

A suíte de teste assume que uma versão moderna do Python tenha sido instalada como python simples. Mudar isso para usar o python3 exige um sed para um arquivo Makefile.in.

Instale o dvisvgm executando os seguintes comandos:

sed -i 's/python/&3/' tests/Makefile.in         &&
./configure                                     \
    --bindir=$TEXLIVE_PREFIX/bin/${TEXARCH}     \
    --mandir=$TEXLIVE_PREFIX/texmf-dist/doc/man \
    --with-kpathsea=$TEXLIVE_PREFIX             &&
make

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) root:

make install

Explicações do Comando

--with-kpathsea=$TEXLIVE_PREFIX: Isso permite que o sistema de construção encontre os cabeçalhos para kpathsea

Conteúdo

Aplicativos Instalados: dvisvgm
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: Nenhum(a)

Descrições Curtas

dvisvgm

converte arquivos DVI, EPS e PDF para o formato SVG

xindy-2.5.1

Introdução ao xindy

Xindy é um processador de índice que pode ser usado para gerar índices semelhantes a livros para sistemas arbitrários de preparação de documentos. Isso inclui sistemas como TeX e LaTeX, a família roff e sistemas baseados em SGML/XML (por exemplo, HTML) que processam algum tipo de texto e geram informações de indexação.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

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

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-20230313 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:
  • 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:
  • 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:
  • FLTK:
  • Fluxbox:
  • Fontconfig:
  • FontForge:
  • fop:
  • Freeglut:
  • FreeType:
  • frei0r:
  • FriBidi:
  • Fuse 3:
  • Garcon:
  • Gavl:
  • GC:
  • GCC-13.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::CookieJar:
  • 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:
  • intel-vaapi-driver:
  • IO::HTML:
  • IO::Socket::SSL:
  • IO::String:
  • Fontes IPAex:
  • IPC::Run3:
  • IPC::System::Simple:
  • iptables:
  • ISO Codes:
  • itstool:
  • iw:
  • jansson:
  • JasPer:
  • Binário JDK:
  • utilitários do jfs:
  • JOE:
  • js102:
  • JSON:
  • JSON-C:
  • JSON-GLib:
  • K3b:
  • Kate:
  • kcolorpicker:
  • kconfig:
  • KDE Frameworks:
  • Plasma 5 do KDE:
  • Kdenlive:
  • kdsoap:
  • Servidor DHCP Kea:
  • keybinder2:
  • keybinder-3.0:
  • keyutils:
  • khelpcenter:
  • kidletime:
  • kimageannotator:
  • kio-extras:
  • KMix:
  • Konsole:
  • kuserfeedback:
  • kwave:
  • kwayland:
  • kwindowsystem:
  • LAME:
  • ldns:
  • Liba52:
  • libadwaita:
  • libaio:
  • Libao:
  • libaom:
  • libarchive:
  • libass:
  • libassuan:
  • libatasmart:
  • libatomic_ops:
  • libavif:
  • libblockdev:
  • libburn:
  • libbytesize:
  • libcairomm-1.0:
  • libcanberra:
  • libcap:
  • libcddb:
  • libcdio:
  • libchamplain:
  • libcloudproviders:
  • libdaemon:
  • libdazzle:
  • libdbusmenu-qt:
  • libdrm:
  • Libdv:
  • libdvdcss:
  • Libdvdnav:
  • Libdvdread:
  • libepoxy:
  • Fontes Liberation:
  • libevdev:
  • libevent:
  • libexif:
  • libfm:
  • libfm-extra:
  • libfm-qt:
  • libgcrypt:
  • libgdata:
  • libgedit-amtk:
  • libgedit-gtksourceview:
  • 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:
  • libkscreen:
  • liblinear:
  • liblxqt:
  • Libmad:
  • libmbim:
  • Libmng:
  • libmnl:
  • libmpeg2:
  • libmusicbrainz:
  • libmusicbrainz:
  • libmypaint:
  • libndp:
  • libnl:
  • libnma:
  • libnotify:
  • libnsl:
  • libnvme:
  • biblioteca oauth:
  • Libogg:
  • libpaper:
  • libpcap:
  • libpeas:
  • libpng:
  • libportal:
  • libpsl:
  • libptytty:
  • biblioteca pwquality:
  • libqalculate:
  • libqmi:
  • libqrencode:
  • libqtxdg:
  • libquicktime:
  • libraw:
  • LibreOffice:
  • Librep:
  • librsvg:
  • libsamplerate:
  • libseccomp:
  • libsecret:
  • libshumate:
  • libsigc++:
  • libsigsegv:
  • libslirp:
  • libsndfile:
  • libsoup:
  • libsoup3:
  • libspiro:
  • libssh2:
  • libstatgrab:
  • libsysstat:
  • 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:
  • log4cplus:
  • logrotate:
  • LSB-Tools:
  • lsof:
  • Lua:
  • Lua:
  • LVM2:
  • LWP::MediaTypes:
  • LWP::Protocol::https:
  • LXAppearance:
  • lxappearance-obconf:
  • lxde-common:
  • lxde-icon-theme:
  • lximage-qt:
  • LXInput:
  • lxmenu-data:
  • lxml:
  • LXPanel:
  • lxqt-about:
  • lxqt-admin:
  • lxqt-archiver:
  • lxqt-build-tools:
  • lxqt-config:
  • lxqt-globalkeys:
  • lxqt-menu-data:
  • lxqt-notificationd:
  • lxqt-openssh-askpass:
  • lxqt-panel:
  • lxqt-policykit:
  • lxqt-powermanagement:
  • lxqt-qtplugin:
  • lxqt-runner:
  • lxqt-session:
  • lxqt-sudo:
  • lxqt-themes:
  • 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:
  • muparser:
  • mupdf:
  • mutt:
  • Mutter:
  • mypaint-brushes:
  • namespace::autoclean:
  • namespace::clean:
  • Nano:
  • NASM:
  • Nautilus:
  • NcFTP:
  • neon:
  • Net::DNS:
  • Net::HTTP:
  • Net::SSLeay:
  • Net-tools:
  • Nettle:
  • network-manager-applet:
  • NetworkManager:
  • newt:
  • Utilitários do NFS:
  • nghttp2:
  • Nmap:
  • nodejs:
  • notification-daemon:
  • Fontes Noto:
  • NPth:
  • NSPR:
  • NSS:
  • ntfs-3g:
  • ntp:
  • Number::Compare:
  • numpy:
  • obconf-qt:
  • Okular:
  • Openbox:
  • opencv:
  • OpenJade:
  • OpenJDK:
  • OpenJPEG:
  • OpenLDAP:
  • OpenSP:
  • OpenSSH:
  • Opus:
  • oxygen-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:
  • pavucontrol-qt:
  • pax:
  • pciutils:
  • PCManFM:
  • pcmanfm-qt:
  • 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:
  • qps:
  • Qt:
  • Qt:
  • Componentes do Qt:
  • qterminal:
  • qtermwidget:
  • qtwebengine:
  • qtxdg-tools:
  • 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:
  • screengrab:
  • sddm:
  • SDL:
  • SDL2:
  • Seahorse:
  • SeaMonkey:
  • sendmail:
  • Serf:
  • setuptools_scm:
  • sg3_utils:
  • SGML Common:
  • SGMLSpm:
  • Shadow:
  • shared-mime-info:
  • Sharutils:
  • six:
  • slang:
  • smartmontools:
  • smartypants:
  • snowballstemmer:
  • solid:
  • Sort::Key:
  • sound-theme-freedesktop:
  • SoundTouch:
  • Source Code Pro:
  • Specio:
  • Speex:
  • sphinx:
  • sphinxcontrib-applehelp:
  • sphinxcontrib-devhelp:
  • sphinxcontrib-htmlhelp:
  • sphinxcontrib-jquery:
  • sphinxcontrib-jsmath:
  • sphinxcontrib-qthelp:
  • sphinxcontrib-serializinghtml:
  • sphinx_rtd_theme:
  • SQLite:
  • ssh-askpass:
  • sshfs:
  • startup-notification:
  • stunnel:
  • Sub::Exporter::Progressive:
  • Sub::Identify:
  • Sub::Info:
  • Sub::Quote:
  • Sub::Uplevel:
  • Subversion:
  • Sudo:
  • 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::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:
  • unifdef:
  • 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:
  • webp-pixbuf-loader:
  • 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-dbus-proxy:
  • 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-evdev-driver:
  • xorg-libinput-driver:
  • xorg-server:
  • xorg-synaptics-driver:
  • xorg-wacom-driver:
  • Xorg:
  • Aplicativos do Xorg-7:
  • Fontes do Xorg:
  • xorg7-input-driver:
  • Legado do Xorg:
  • Bibliotecas do Xorg:
  • xorgproto:
  • 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:
  • amdgpu-arch:
  • 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:
  • bsdunzip:
  • 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-offload-bundler:
  • clang-offload-packager:
  • 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:
  • 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:
  • dhcpcd:
  • diagtool:
  • diffimg:
  • diffpp:
  • dig:
  • dijkstra:
  • dirmngr:
  • dirmngr-client:
  • disable-paste:
  • display:
  • display-buttons:
  • display-coords:
  • djpeg:
  • dl10k1:
  • dltest:
  • dmeventd:
  • dmsetup:
  • dnssec-cds:
  • dnssec-dsfromkey:
  • dnssec-importkey:
  • dnssec-keyfromlabel:
  • 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:
  • fsidd:
  • 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-add-index:
  • gdb-prog:
  • gdbserver:
  • gdbus:
  • gdbus-codegen:
  • gdisk:
  • gdk-pixbuf-csource:
  • gdk-pixbuf-pixdata:
  • gdk-pixbuf-query-loaders:
  • gdk-pixbuf-thumbnailer:
  • gdm:
  • gdm-control:
  • 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:
  • gm2:
  • 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:
  • intercept-build:
  • iodbc-config:
  • iodbcadm:
  • iodbctest:
  • iostat:
  • ip6tables:
  • ipmaddr:
  • ippeveprinter:
  • ippfind:
  • ipptool:
  • iptables:
  • iptables-apply:
  • iptables-legacy:
  • iptables-legacy-restore:
  • iptables-legacy-save:
  • iptables-restore:
  • iptables-save:
  • iptables-xml:
  • iptunnel:
  • ir-keytable:
  • irb:
  • isadump:
  • isaset:
  • iso-info:
  • iso-read:
  • isodebug:
  • isodump:
  • isoinfo:
  • isovfy:
  • ispell:
  • isql:
  • itstool:
  • iusql:
  • ivtv-ctl:
  • iw:
  • iwconfig:
  • iwevent:
  • iwgetid:
  • iwlist:
  • iwpriv:
  • iwspy:
  • jade:
  • jar:
  • jarsigner:
  • jasper:
  • java:
  • javac:
  • javadoc:
  • javap:
  • jcmd:
  • jconsole:
  • jdb:
  • jdeprscan:
  • jdeps:
  • jfr:
  • jfs_debugfs:
  • jfs_fsck:
  • jfs_fscklog:
  • jfs_logdump:
  • jfs_mkfs:
  • jfs_tune:
  • jhsdb:
  • jimage:
  • jinfo:
  • jiv:
  • jlink:
  • jmacs:
  • jmap:
  • jmod:
  • joe:
  • jpackage:
  • 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:
  • kea-admin:
  • kea-ctrl-agent:
  • kea-dhcp-ddns:
  • kea-dhcp4:
  • kea-dhcp6:
  • kea-lfc:
  • keactrl:
  • keashell:
  • 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:
  • kreadconfig5:
  • kscreen-doctor:
  • kshell5:
  • ksu:
  • kswitch:
  • ktelnetservice5:
  • ktrash5:
  • ktutil:
  • kvno:
  • kwalletd5:
  • kwave:
  • kwrite:
  • kwriteconfig5:
  • 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-debuginfo-analyzer:
  • llvm-debuginfod:
  • llvm-debuginfod-find:
  • llvm-diff:
  • llvm-dis:
  • llvm-dwarfdump:
  • llvm-dwarfutil:
  • llvm-dwp:
  • llvm-elfabi:
  • llvm-exegesis:
  • llvm-extract:
  • llvm-gsymutil:
  • llvm-ifs:
  • llvm-install-name-tool:
  • llvm-jitlink:
  • llvm-libtool-darwin:
  • llvm-link:
  • llvm-lipo:
  • llvm-lto:
  • llvm-lto2:
  • llvm-mc:
  • llvm-mca:
  • llvm-ml:
  • llvm-modextract:
  • llvm-mt:
  • llvm-nm:
  • llvm-objcopy:
  • llvm-objdump:
  • llvm-opt-report:
  • llvm-pdbutil:
  • llvm-profdata:
  • llvm-profgen:
  • llvm-ranlib:
  • llvm-rc:
  • llvm-readobj:
  • llvm-reduce:
  • llvm-remark-size-diff:
  • 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:
  • lxdoas:
  • lximage-qt:
  • lxinput:
  • lxlock:
  • lxpanel:
  • lxpanelctl:
  • lxpolkit:
  • lxqt-about:
  • lxqt-admin-time:
  • lxqt-admin-user:
  • lxqt-archiver:
  • lxqt-backlight_backend:
  • lxqt-config:
  • lxqt-config-appearance:
  • lxqt-config-brightness:
  • lxqt-config-file-associations:
  • lxqt-config-globalkeyshortcuts:
  • lxqt-config-input:
  • lxqt-config-locale:
  • lxqt-config-monitor:
  • lxqt-config-notificationd:
  • lxqt-config-powermanagement:
  • lxqt-config-session:
  • lxqt-globalkeysd:
  • lxqt-leave:
  • lxqt-notificationd:
  • lxqt-openssh-askpass:
  • lxqt-panel:
  • lxqt-policykit-agent:
  • lxqt-powermanagement:
  • lxqt-runner:
  • lxqt-session:
  • lxqt-sudo:
  • lxqt-transupdate:
  • lxrandr:
  • lxsession:
  • lxsession-db:
  • lxsession-default:
  • lxsession-default-apps:
  • lxsession-default-terminal:
  • lxsession-edit:
  • lxsession-logout:
  • lxsession-xdg-autostart:
  • lxsession-xsettings:
  • lxsettings-daemon:
  • lxsu:
  • lxsudo:
  • 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:
  • nvptx-arch:
  • obconf-qt:
  • obxprop:
  • ferramenta ocsp:
  • odbcinst:
  • odbc_config:
  • ogg123:
  • oggdec:
  • oggenc:
  • ogginfo:
  • oid2name:
  • okular:
  • oLschema2ldif:
  • onsgmls:
  • on_ac_power:
  • openbox:
  • openbox-gnome-session:
  • openbox-kde-session:
  • openbox-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:
  • paper:
  • paperconf:
  • paplay:
  • paps:
  • parec:
  • parecord:
  • parole:
  • parted:
  • partprobe:
  • pasuspender:
  • patchelf:
  • patchwork:
  • pavucontrol:
  • pavucontrol-qt:
  • pax:
  • pax11publish:
  • pcmanfm:
  • pcmanfm-qt:
  • 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-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-config:
  • pw-dot:
  • pw-dump:
  • pw-jack:
  • pw-link:
  • pw-loopback:
  • pw-metadata:
  • pw-mididump:
  • pw-mon:
  • pw-profiler:
  • pw-reserve:
  • pw-top:
  • pw-v4l2:
  • pwhistory_helper:
  • pwmake:
  • pwmconfig:
  • pwscore:
  • pybabel:
  • 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:
  • qps:
  • qrencode:
  • qscxmlc:
  • qt-faststart:
  • qt2text:
  • qtattributionsscanner:
  • qtdechunk:
  • qtdiag:
  • qtdump:
  • qterminal:
  • qtinfo:
  • qtpaths:
  • qtplugininfo:
  • qtrechunk:
  • qtstreamize:
  • qtwaylandscanner:
  • QtWebEngineProcess:
  • qtwebengine_convert_dict:
  • qtxdg-mat:
  • 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:
  • screengrab:
  • scsi_logging_level:
  • scsi_mandat:
  • scsi_readcap:
  • scsi_ready:
  • scsi_satl:
  • scsi_start:
  • scsi_stop:
  • scsi_temperature:
  • sddm:
  • sddm-greeter:
  • sdl-config:
  • sdl2-config:
  • 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:
  • 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:
  • startlxqt:
  • startx:
  • startxfce4:
  • states:
  • statgrab:
  • statgrab-make-mrtg-config:
  • statgrab-make-mrtg-index:
  • stream:
  • stringify:
  • stunnel:
  • stunnel3:
  • sudo:
  • sudoedit:
  • sudoku:
  • sudoreplay:
  • sudo_logsrvd:
  • sudo_sendlog:
  • suexec:
  • svlc:
  • svn:
  • svnadmin:
  • svnbench:
  • svndumpfilter:
  • svnfsfs:
  • svnlook:
  • svnmucc:
  • svnrdump:
  • svnserve:
  • svnsync:
  • svnversion:
  • swig:
  • sx:
  • sxpm:
  • synclient:
  • 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:
  • unifdef:
  • unifdefall:
  • 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:
  • vfat-resize:
  • 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-dbus-proxy:
  • xdg-desktop-icon:
  • xdg-desktop-menu:
  • xdg-email:
  • xdg-icon-resource:
  • xdg-mime:
  • xdg-open:
  • xdg-screensaver:
  • xdg-settings:
  • xdg-user-dir:
  • xdg-user-dirs-update:
  • xdpr:
  • xdpyinfo:
  • xdriinfo:
  • Xephyr:
  • xev:
  • xfburn:
  • xfce4-accessibility-settings:
  • xfce4-appearance-settings:
  • xfce4-appfinder:
  • xfce4-display-settings:
  • xfce4-keyboard-settings:
  • xfce4-kiosk-query:
  • xfce4-mime-settings:
  • xfce4-mouse-settings:
  • xfce4-notifyd-config:
  • xfce4-panel:
  • xfce4-pm-helper:
  • xfce4-popup-applicationsmenu:
  • xfce4-popup-directorymenu:
  • xfce4-popup-windowmenu:
  • xfce4-power-manager:
  • xfce4-power-manager-settings:
  • xfce4-session:
  • xfce4-session-logout:
  • xfce4-session-settings:
  • xfce4-settings-editor:
  • xfce4-settings-manager:
  • xfce4-terminal:
  • xfconf-query:
  • xfdesktop:
  • xfdesktop-settings:
  • xfpm-power-backlight-helper:
  • 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:

  • ant-*.jar:
  • c-ares.so:
  • udev.so:
  • libduktape.so:
  • evdev_drv.so:
  • fop.jar:
  • Bibliotecas Glib:
  • libkeybinder.so:
  • libkeybinder-3.0.so:
  • liba52.so:
  • libaa.so:
  • libabiword-3.0.so:
  • libaccountsservice.so:
  • libadwaita.so:
  • libadwaita-1.so:
  • libaio.so:
  • libao.so:
  • libaom.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:
  • libavif.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:
  • 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:
  • libfm-qt.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:
  • libgedit-amtk-5.so:
  • libgee-0.8.so:
  • libgegl-0.4.so:
  • libgegl-npd-0.4.so:
  • libgeocode-glib-2.so:
  • libgexiv2.so:
  • libgif.so:
  • libgimp-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:
  • libinih.so:
  • libINIReader.so:
  • libinkscape_base.so:
  • libinproctrace.so:
  • libinput.so:
  • libinput_drv.so:
  • libisoburn.so:
  • libisofs.so:
  • libiw.so:
  • libjansson.so:
  • libjasper.so:
  • libjavascriptcoregtk-4.1.so:
  • libjavascriptcoregtk-6.0.so:
  • libjpeg.so:
  • libjson-c.so:
  • libjson-glib-1.0.so:
  • libkadm5clnt.so:
  • libkadm5srv.so:
  • libkcddb.so:
  • libkdb5.so:
  • libkeyutils.so:
  • libKF5ConfigCore.so:
  • libKF5ConfigGui.so:
  • libKF5ConfigQml.so:
  • libKF5Screen.so:
  • libKF5ScreenDpms.so:
  • libKF5solid.so:
  • libKF5WaylandClient.so:
  • libKF5WaylandServer.so:
  • libKF5WindowSystem.so:
  • libKF5GuiAddons.so:
  • libkpathsea.so:
  • libkrad.so:
  • libkrb5.so:
  • libksba.{so,a}:
  • liblber.so:
  • liblcms.so:
  • liblcms2.so:
  • libldap.so:
  • libldns.so:
  • liblibgedit-gtksourceview-300.so:
  • liblinear.so:
  • liblua.so:
  • liblua5.2.so:
  • liblxqt.so:
  • liblxqt-config-cursor.so:
  • liblxqt-globalkeys-ui.so:
  • liblzo2.so:
  • libmad.so:
  • libMagick++-7.Q16HDRI.so:
  • libMagickCore-7.Q16HDRI.so:
  • libMagickWand-7.Q16HDRI.so:
  • libmbim-glib.so:
  • libmenu-cache.so:
  • 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-12.so:
  • libmutter-test-12.so:
  • libmypaint.so:
  • libnautilus-extension.so:
  • libneon.so:
  • libnetapi.so:
  • libnghttp2.so:
  • libnl*-3.so:
  • libnm.so:
  • libnma.so:
  • libnma-gtk4.so:
  • libnotify.so:
  • libnpth.so:
  • libnsl.so:
  • libnspr4.so:
  • libnss_winbind.so:
  • libnss_wins.so:
  • libntfs-3g.so:
  • libnvme.so:
  • liboauth.so:
  • libobrender.so:
  • libobt.so:
  • 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-avif.so:
  • libpixbufloader-svg.so:
  • libpixbufloader-webp.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:
  • libQt5Xdg.so:
  • libQt5XdgIconLoader.so:
  • libqtermwidget5.so:
  • libqtlxqt.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:
  • libsysstat-qt5.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:
  • libwebkitgtk-6.0.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":
  • log4cplus.so:
  • lxqt-globalkeys.so:
  • modesetting_drv.so:
  • mod_authz_svn.so:
  • mod_dav_svn.so:
  • muparser.so:
  • p11-kit-proxy.so:
  • pam_pwquality.so:
  • pam_systemd.so:
  • synaptics_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:
  • bubblewrap:
  • Capturando pacotes de rede de intercomunicação :
  • cheese:
  • cifs-utils:
  • cryptsetup:
  • cups:
  • escputil para impressoras usb:
  • Suporte FAT no Núcleo:
  • Fuse 3:
  • gpm:
  • intel-media:
  • intel-vaapi-driver:
  • iptables:
  • iw:
  • Utilitários JFS:
  • Kea:
  • libevdev:
  • libinput:
  • lm_sensors:
  • lsof (testagem):
  • lvm2:
  • mdadm:
  • mesa:
  • NetworkManager (teste):
  • Utilitários do NFS:
  • ntfs-3g:
  • Suporte de leitura e gravação NTFS no núcleo:
  • parted (testagem):
  • pm-utils:
  • qemu:
  • qtwebengine:
  • Aplicativos Reiserfs:
  • rox-filer:
  • Dispositivos de digitalização:
  • UEFI:
  • upower:
  • Suporte para USB do Lado do Anfitrião:
  • Wireless Tools:
  • wpa_supplicant:
  • Aplicativos XFS:
  • xorg-server:
  • xorg-wacom-driver:

  • $PGDATA/pg_hba_conf:
  • $PGDATA/pg_indent.con:
  • $PGDATA/postgresql.conf:
  • ~/.AbiSuite/templates/normal.awt:
  • ~/.ant/ant.conf:
  • ~/.antrc:
  • ~/.asoundrc:
  • ~/.config/openbox/autostart:
  • ~/.bashrc:
  • ~/.bash_logout:
  • ~/.bash_profile:
  • ~/.config/pulse:
  • ~/.config/user-dirs.dirs:
  • ~/.config/.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/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/kea/kea-dhcp-ddns.conf:
  • /etc/kea/kea-dhcp4.conf:
  • /etc/kea/kea-ctrl-agent.conf:
  • /etc/kea/keactrl.conf:
  • /etc/krb5.conf:
  • /etc/ld.so.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/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/sddm.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:
  • dhcpcd:
  • dovecot:
  • exim:
  • fcron:
  • gdm:
  • gitserve:
  • gpm:
  • iptables:
  • krb5:
  • lightdm:
  • ModemManager:
  • mysql:
  • NetworkManager:
  • nfs-client:
  • ntpd.service:
  • php:
  • postfix:
  • postgresql:
  • proftpd:
  • samba:
  • saslauthd:
  • sddm:
  • 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:
  • LXQt-post-install:
  • Pré Instalação do LXQt:
  • Arquivos SGML DTD:
  • Arquivos SGML DTD:
  • arquivos de entidade SGML:
  • Arquivos SGML MOD:
  • Arquivos SGML MOD:
  • Ajustando Fontconfig:
  • /usr/share/consolefonts:
  • links vulnerabilidade:
  • Arquivos DTD de XML:
  • Arquivos DTD de XML:
  • arquivos de entidade XML:
  • Arquivos de entidade de XML:
  • Arquivos MOD de XML:
  • Arquivos de Esquema de XML:
  • Arquivos de esquema de XML:
  • Regras Schematron de XML:
  • Folas de estilo XSL:
  • Folhas de Estilo XSL: