Copyright © 1999-2025 A Equipe de Desenvolvimento do BLFS
Direitos autorais © 1999-2025, A Equipe de Desenvolvimento do BLFS
Todos os direitos reservados.
Este livro está licenciado sob uma Licença da Creative Commons.
As instruções de computador podem ser extraídas a partir do livro sob a Licença do MIT.
Linux® é uma marca comercial registrada de Linus Torvalds.
Publicado em 2025-03-05
Histórico de Revisões | ||
---|---|---|
Revisão 12.3 | 2025-03-05 | Trigésimo primeiro lançamento |
Revisão 12.2 | 2024-09-01 | Trigésimo Lançamento |
Revisão 12.1 | 2024-03-01 | Vigésimo nono lançamento |
Revisão 12.0 | 2023-09-01 | Vigésimo oitavo lançamento |
Revisão 11.3 | 2023-03-01 | Vigésimo sétimo lançamento |
Revisão 11.2 | 2022-09-01 | Vigésimo sexto lançamento |
Revisão 11.1 | 2022-03-01 | Vigésimo quinto lançamento |
Revisão 11.0 | 2021-09-01 | Vigésimo quarto lançamento |
Revisão 10.1 | 2021-03-01 | Vigésimo terceiro lançamento |
Revisão 10.0 | 2020-09-01 | Vigésimo segundo lançamento |
Revisão 9.1 | 2020-03-01 | Vigésimo primeiro lançamento |
Revisão 9.0 | 2019-09-01 | Vigésimo lançamento |
Revisão 8.4 | 2019-03-01 | Décimo nono lançamento |
Revisão 8.3 | 2018-09-01 | Décimo oitavo lançamento |
Revisão 8.2 | 2018-03-02 | Décimo sétimo lançamento |
Revisão 8.1 | 2017-09-01 | Décimo sexto lançamento |
Revisão 8.0 | 2017-02-25 | Décimo quinto lançamento |
Revisão 7.10 | 2016-09-07 | Décimo quarto lançamento |
Revisão 7.9 | 2016-03-08 | Décimo terceiro lançamento |
Revisão 7.8 | 2015-10-01 | Décimo segundo lançamento |
Revisão 7.7 | 2015-03-06 | Décimo primeiro lançamento |
Revisão 7.6 | 2014-09-23 | Décimo lançamento |
Revisão 7.5 | 2014-03-05 | Nono lançamento |
Revisão 7.4 | 2013-09-14 | Oitavo lançamento |
Revisão 6.3 | 2008-08-24 | Sétimo lançamento |
Revisão 6.2 | 2007-02-14 | Sexto lançamento |
Revisão 6.1 | 2005-08-14 | Quinto lançamento |
Revisão 6.0 | 2005-04-02 | Quarto lançamento |
Revisão 5.1 | 2004-06-05 | Terceiro lançamento |
Revisão 5.0 | 2003-11-06 | Segundo lançamento |
Revisão 1.0 | 2003-04-25 | Primeiro lançamento |
Resumo
Este livro é uma continuação do livro Linux From Scratch. Ele introduz e guia o(a) leitor(a) ao longo de adições ao sistema incluindo rede de comunicação, interfaces gráficas, suporte a som e suporte a impressora e escaneadora.
Tendo ajudado com o Linux From Scratch por um curto período, eu percebi que nós estávamos obtendo muitas consultas do tipo como fazer coisas além do sistema LFS base. Na época, a única assistência oferecida especificamente relacionada ao LFS eram as dicas do LFS (https://www.linuxfromscratch.org/hints). A maioria das dicas do LFS é extremamente boa e bem escrita, porém eu (e outros(as)) ainda poderia ver uma necessidade para ajuda mais abrangente para ir Além do LFS — por isso o BLFS.
O BLFS visa a ser mais que as dicas do LFS convertidas para XML, apesar de muito do nosso trabalho ser baseado nas dicas e, de fato, alguns(mas) autores(as) escreverem as dicas e as seções relevantes do BLFS. Nós esperamos poder fornecer a você informação suficiente não apenas para conseguir construir o seu sistema até o que você desejar, seja um servidor da web ou um sistema multimídia de área de trabalho, mas também que você aprenda muito acerca da configuração do sistema conforme avance.
Obrigado, como sempre, a todos(as) na comunidade LFS/BLFS; especialmente aqueles(as) que contribuíram com instruções, textos escritos, responderam a perguntas e geralmente gritaram quando as coisas estavam erradas!
Finalmente, encorajamos você a se envolver na comunidade; faça perguntas na lista de discussão ou portal de notícias e divirta-se em #lfs e #lfs-support no Libera. Você pode encontrar mais detalhes acerca de tudo isso na seção Introdução do livro.
Divirta-se usando o BLFS.
Mark Hymers
markh <at> linuxfromscratch.org
Editor do BLFS (Julho de 2001–Março de 2003)
Eu ainda lembro como encontrei o projeto BLFS e comecei a usar as instruções que estavam completas na época. Eu não podia acreditar quão maravilhoso era ter um aplicativo instalado e funcionando muito rapidamente, com explicações do tipo porque as coisas foram feitas de uma certa maneira. Infelizmente, para mim, não demorou muito antes que estivesse abrindo aplicativos que não tinham nada mais que "A ser feito" na página. Eu fiz o que a maioria faria: esperei que alguém fizesse. Não demorou muito também antes que estivesse procurando, via Bugzilla, por alguma coisa fácil de fazer. Como com qualquer experiência de aprendizado, a definição do que era fácil continuou mudando.
Nós ainda incentivamos você a se envolver, já que o BLFS nunca está realmente finalizado. Contribuindo ou apenas usando, nós esperamos que você aprecie a sua experiência BLFS.
Larry Lawrence
larry <at> linuxfromscratch.org
Editor do BLFS (Março de 2003–Junho de 2004)
O projeto BLFS é uma progressão natural do LFS. Juntos, esses projetos fornecem um recurso único para a Comunidade do Fonte Aberto. Eles tiram o mistério do processo de construir um sistema de software funcional e completo a partir do código fonte contribuído por muitos(as) indivíduos(as) talentosos(as) mundo afora. Eles verdadeiramente permitem que os(as) usuários(as) implementem o lema “Tua distribuição, tuas regras”.
Nossa meta é a de continuar a fornecer o melhor recurso disponível que mostra a você como integrar muitas aplicações significantes de Fonte Aberto. Considerando que essas aplicações são atualizadas constantemente e aplicações novas são desenvolvidas, este livro nunca estará completo. Adicionalmente, sempre existe espaço para melhoramento na explicação das nuances do como instalar os diferentes pacotes. Para fazer esses melhoramentos, nós precisamos do seu feedback. Eu incentivo você a participar das diferentes listas de discussão, grupos de notícias e canais do IRC para ajudar a alcançar essas metas.
Bruce Dubbs
bdubbs <at> linuxfromscratch.org
Editor do BLFS (Junho de 2004–Dezembro de 2006 e Fevereiro de 2011–agora)
Minha introdução ao projeto [B]LFS foi, na verdade, por acidente. Eu estava tentando construir um ambiente GNOME usando alguns HOW-TOs e outras informações que encontrei na web. Algumas vezes, encontrei alguns problemas de construção e a pesquisa no Google me trouxe algumas mensagens antigas da lista de discussão do BLFS. Por curiosidade, visitei o sítio da web do Linux From Scratch e pouco tempo depois estava viciado. Não tenho usado qualquer outra distribuição do Linux para uso pessoal desde então.
Eu não posso prometer que alguém sentirá o senso de satisfação que senti depois de construir meus primeiros sistemas usando as instruções do [B]LFS, porém espero sinceramente que sua experiência BLFS seja tão gratificante para você quanto tem sido para mim.
O projeto BLFS tem crescido significantemente nos dois anos mais recentes. Existem mais instruções de pacote e dependências relacionadas que nunca antes. O projeto exige sua contribuição para o sucesso continuado. Se você descobrir que gosta de construir o BLFS, [então], por favor, considere ajudar da maneira que puder. O BLFS exige centenas de horas de manutenção para mantê-lo até mesmo semi atual. Se você se sentir confiante o suficiente em suas habilidades de edição, [então], por favor, considere ingressar na equipe do BLFS. Simplesmente contribuir para as discussões da lista de discussão com bons conselhos e (ou) fornecer correções para o XML do livro provavelmente resultará em você receber um convite para se juntar à equipe.
Randy McMurchy
randy <at> linuxfromscratch.org
Editor do BLFS (Dezembro de 2006–Janeiro de 2011)
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
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.
Este livro está dividido nas seguintes quatorze partes.
Essa parte contém informações essenciais que são necessárias para compreender o restante do livro.
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.
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.
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.
Aqui mostramos como configurar o correio e outros servidores (como FTP, Apache, etc.).
Essa parte explica como configurar um Sistema de Janelas X básico, junto com algumas bibliotecas X genéricas e gerenciadores de janelas.
Essa parte é para aqueles(as) que desejam usar o K Desktop Environment, ou partes dele.
GNOME é a alternativa principal ao KDE na arena do Ambiente de Área de Trabalho.
Xfce é uma alternativa peso leve ao GNOME e ao KDE.
LXDE é outra alternativa peso leve ao GNOME e ao KDE.
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.
Aqui abordamos bibliotecas e controladores multimídia, juntamente com alguns aplicativos de áudio, vídeo e gravação de CD.
Essa parte cobre o manuseio de documentos, desde aplicativos como Ghostscript, CUPS e DocBook, até o texlive.
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.
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.
Ao contrário do livro Linux From Scratch, o BLFS não foi projetado para ser seguido de maneira linear. O LFS fornece instruções sobre como criar um sistema básico que pode se tornar qualquer coisa, desde um servidor "web" até um sistema multimídia de área de trabalho. O BLFS tenta orientá-lo(a) no processo de passagem do sistema básico até o teu destino pretendido. A escolha está muito envolvida.
Todos(as) que lerem este livro vão querer ler certas seções. A Introdução que você está lendo atualmente contém informações genéricas. Tome nota especial das informações no Capítulo 2, Informação Importante, pois elas contém comentários acerca de como desempacotar software, questões relacionadas ao uso de diferentes localidades e várias outras considerações que se aplicam ao longo do livro.
A parte acerca da Configuração Pós LFS e Software Extra é onde a maioria das pessoas vai querer ir em seguida. Isso trata não apenas de configuração, mas também de Segurança (Capítulo 4, Segurança), Sistemas de Arquivos (Capítulo 5, Sistemas de Arquivos e Gerenciamento de Disco - incluindo "GRUB" para "UEFI"), Editores de Texto (Capítulo 6, Editores de Texto) e "Shells" (Capítulo 7, Shells). Na verdade, você possivelmente deseje consultar algumas partes desse capítulo (especialmente as seções relativas a Editores de Texto e Sistemas de Arquivos) enquanto constrói teu sistema LFS.
Seguindo esses itens básicos, a maioria das pessoas vai querer pelo menos navegar pela parte das Bibliotecas e Utilitários Gerais do livro. Essa contém informações relativas a muitos itens que são pré-requisitos para outras seções do livro, bem como alguns itens (como Capítulo 13, Programação) que são úteis por si só. Você não precisa instalar todas as bibliotecas e pacotes encontradas nessa parte; cada procedimento de instalação do BLFS te informa quais outros pacotes esse depende. Você pode escolher o aplicativo que deseja instalar e ver o que ele precisa. (Não se esqueça de verificar as dependências aninhadas!)
Da mesma forma, a maioria das pessoas provavelmente desejará dar uma olhada na seção Rede de Intercomunicação. Ela lida com a conexão à Internet ou à sua "LAN" (Capítulo 14, Conectando a uma Rede de Intercomunicação) usando uma variedade de métodos, como "DHCP" e "PPP", e com itens como bibliotecas de rede de intercomunicação (Capítulo 17, Bibliotecas de Operação Interativa de Dispositivos Via Rede de Intercomunicação), além de vários aplicativos e utilitários básicos de rede de intercomunicação.
Depois que tiver lidado com esses básicos, você possivelmente desejará configurar serviços mais avançados de rede de intercomunicação. Eles são tratados na parte Servidores do livro. Aqueles(as) desejantes de construir servidores deveriam encontrar um bom ponto de partida aí. Observe que essa seção também contém informações relativas a vários pacotes de base de dados.
Os próximos doze capítulos tratam de sistemas de área de trabalho. Essa parte do livro começa com uma parte falando a respeito de Componentes Gráficos. Essa parte também trata de algumas bibliotecas genéricas baseadas no X (Capítulo 25, Bibliotecas Gráficas de Ambiente). Depois disso, KDE, GNOME, Xfce e LXQt recebem as próprias partes deles, seguidas por uma relativa a Software do X.
O livro então passa a lidar com pacotes Multimídia. Observe que muitas pessoas possivelmente queiram usar as instruções ALSA advindas desse capítulo ao iniciar a jornada BLFS delas; as instruções estão colocadas aqui porque é o lugar mais lógico para elas.
A parte final do livro principal do BLFS trata de Impressão, Digitalização e Composição Tipográfica. Isso é útil para a maioria das pessoas com sistemas de área de trabalho, mas mesmo aqueles(as) que estiverem criando sistemas dedicados de servidores possivelmente achem-na útil.
Esperamos que você goste de usar o BLFS. Que você realize seu sonho de construir o sistema Linux perfeitamente personalizado!
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
Por favor, configure teu navegador para exibir texto de
largura fixa com uma boa fonte mono espaçada, com a qual
você consiga distinguir claramente os glifos de
Il1
ou O0
.
Ênfase
Essa forma de texto é usada para diversos fins, mas principalmente para enfatizar pontos importantes, ou para dar exemplos do que digitar.
https://www.linuxfromscratch.org/
Essa forma de texto é usada para links externos de hipertexto para o livro, como "HowTos", locais de transferência, sítios da "web", etc.
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.
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.
Essas dependências são o mínimo necessário para construir o pacote. Pacotes no LFS e as dependências exigidas desses pacotes exigidos estão omitidos dessa lista. Lembre-se sempre de verificar dependências aninhadas. Se uma dependência for considerada “tempo de execução”, ela não será necessária para construir o pacote, mas somente para usá-lo depois da instalação.
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.
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.
Alguns pacotes exigem opções específicas de configuração do núcleo. O esquema geral para esses se parece com isto:
Master section ---> Subsection ---> [*] Required parameter [REQU_PAR] <*> Required parameter (not as module) [REQU_PAR_NMOD] <*/M> Required parameter (could be a module) [REQU_PAR_MOD] <M> Required parameter (as a module) [REQU_PAR_MOD_ONLY] < /*/M> Optional parameter [OPT_PAR] < /M> Optional parameter (as a module if enabled) [OPT_PAR_MOD_ONLY] [ ] Incompatible parameter [INCOMP_PAR] < > Incompatible parameter (even as module) [INCOMP_PAR_MOD]
[...] na direita fornece o nome simbólico da opção, de forma
que você pode facilmente verificar se ela está configurada no
teu arquivo config
. Observe que
o arquivo .config
contém um
prefixo CONFIG_
antes de todos
os nomes simbólicos. O significado das várias entradas é:
Seção mestre item do topo do menu Subseção item do submenu Parâmetro exigido a opção pode ou estar integrada ou não selecionada: ela precisa ser selecionada Parâmetro exigido (não como módulo) a opção pode ser integrada, um módulo ou não selecionada ("tri-state"): ela precisa ser selecionada como integrada Parâmetro exigido (poderia ser um módulo) a opção pode ser integrada, um módulo, ou não selecionada: ela precisa ser selecionada, ou como integrada ou como um módulo Parâmetro exigido (como um módulo) a opção pode ser integrada, um módulo, ou não selecionada: ela precisa ser selecionada como um módulo; selecioná-la como integrada possivelmente cause efeitos indesejados Parâmetro opcional a opção pode ser integrada, um módulo, ou não selecionada: ela possivelmente seja selecionada como um módulo ou integrada se você precisar dela para controlar o hardware ou recursos opcionais do núcleo Parâmetro opcional (como um módulo se habilitado) a opção pode ser integrada, um módulo, ou não selecionada: ela possivelmente seja selecionada como um módulo se você precisar dela para controlar o hardware ou recursos opcionais do núcleo, mas selecioná-la como integrada possivelmente cause efeitos indesejados Parâmetro incompatível a opção pode ser ou integrada ou não selecionada: ela precisa não ser selecionada Parâmetro incompatível (mesmo como módulo) a opção pode ser integrada, um módulo ou não selecionada: ela precisa não ser selecionada
Observe que, dependendo de outras seleções, os colchetes angulares (<>) no menu de configuração possivelmente apareçam como chaves ({}), se a opção não puder ser desmarcada; ou mesmo traços (-*- ou -M-), quando a escolha for imposta. O texto de ajuda descrevente da opção especifica as outras seleções das quais essa opção depende e como aquelas outras seleções são configuradas.
A letra em azul é a tecla de atalho para essa opção. Se você estiver executando make menuconfig, você pode pressionar uma tecla para percorrer rapidamente todas as opções com essa tecla como a tecla de atalho na tela.
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.
Esta é a versão do Livro do BLFS 12.3 datada de 05 de março de 2025. Esta é a ramificação 12.3-systemd do livro do BLFS, atualmente direcionando para o livro 12.3-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.
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.
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.
Lançamento atual: 12.3 – 05 de março de 2025
Entradas do Registro das Mudanças:
5 março 2025
[bdubbs] - Lançamento do BLFS-12.3.
4 março 2025
[renodr] - Atualização para libreoffice-25.2.1.2. Corrige #21162.
[renodr] - Corrigir reprodução de áudio e vídeo em sistemas SysV e systemd que tenham Wireplumber instalado.
3 março 2025
[renodr] - Atualização para mutt-2.2.14. Corrige #21127.
2 março 2025
[renodr] - Corrigir a suíte de teste do Samba.
[renodr] - Atualização para vte-0.78.4. Corrige #21171.
[bdubbs] - Atualização para vim-9.1.1166 (Atualização de Segurança). Corrige #21172.
[bdubbs] - Atualização para gnumeric-1.12.59. Corrige #21170.
[bdubbs] - Atualização para goffice-0.10.59. Corrige #21169.
[bdubbs] - Atualização para icewm-3.7.1. Corrige #21157.
[bdubbs] - Atualização para postfix-3.10.1. Corrige #21140.
[bdubbs] - Atualização para plasma-6.3.2. Corrige #21153.
[renodr] - Atualização para unrar-7.1.5. Corrige #21098.
[bdubbs] - Atualização para bind9 e bind-utilities-9.20.6. Corrige #21118.
[bdubbs] - Atualização para fltk-1.4.2. Corrige #21142.
[bdubbs] - Atualização para sphinx-8.2.1 (módulo Python). Corrige #21161.
[bdubbs] - Atualização para gi_docgen-2025.3 (módulo Python). Corrige #21160.
[bdubbs] - Atualização para faac-1.31. Corrige #21163.
1 março 2025
[bdubbs] - Atualização para power-profiles-daemon-0.30. Corrige #21111.
[bdubbs] - Atualização para libassuan-3.0.2. Corrige #21108.
[bdubbs] - Atualização para xdg-desktop-portal-1.20.0. Corrige #21143.
[bdubbs] - Atualização para libnotify-0.8.4. Corrige #21128.
[renodr] - Atualização para libavif-1.2.0. Corrige #21154.
[bdubbs] - Atualização para sysmon3-3.0.1..
[bdubbs] - Atualização para libqalculate-5.5.1. Corrige #21148.
28 fevereiro 2025
[bdubbs] - Atualização para python-dbusmock-0.34.3 (módulo Python). Corrige #21132.
[renodr] - Atualização para harfbuzz-10.4.0. Corrige #21126.
[bdubbs] - Atualização para fmt-11.1.4. Corrige #21155.
[renodr] - Atualização para dhcpcd-10.2.2. Corrige #21141.
[renodr] - Atualização para glib-2.82.5. Corrige #21125.
[bdubbs] - Atualização para mercurial-6.9.2. Corrige #21117.
27 fevereiro 2025
[bdubbs] - Atualização para sentry-sdk-2.22.0 (módulo Python). Corrige #21099.
[bdubbs] - Atualização para sphinx-8.2.0 (módulo Python). Corrige #21114.
[bdubbs] - Atualização para libwww-perl-6.78 (módulo Perl). Corrige #21116.
[bdubbs] - Atualização para Net-DNS-1.50 (módulo Perl). Corrige #21131.
[bdubbs] - Atualização para cargo-c-0.10.11. Corrige #21134.
[bdubbs] - Atualização para rustc-1.85.0. Corrige #21124.
[renodr] - Atualização para userspace-rcu-0.15.1 (liburcu). Corrige #21109.
[renodr] - Atualização para sqlite-3.49.1. Corrige #21113.
[renodr] - Atualização para shadow-4.17.3 (sincronia com LFS). Corrige #21146.
[renodr] - Atualização para systemd-257.3 (sincronia com LFS). Corrige #20838.
[renodr] - Atualização para postgresql-17.4. Corrige #21123.
[renodr] - Atualização para exiv2-0.28.5 (Atualização de Segurança). Corrige #21130.
[renodr] - Atualização para libxml2-2.13.6 (Atualização de Segurança). Corrige #21106.
26 fevereiro 2025
[renodr] - Atualização para exim-4.98.1 (Atualização de Segurança). Corrige #21133.
25 fevereiro 2025
24 fevereiro 2025
23 fevereiro 2025
[renodr] - Corrigir construção do fop novamente com Java 23.
[renodr] - Atualização para FreeRDP-3.12.0. Corrige #21089.
[renodr] - Atualização para asymptote-3.01. Corrige #21103.
[bdubbs] - Atualização para emacs-30.1 (Atualização de Segurança). Corrige #21139.
[renodr] - Atualização para xdg-desktop-portal-gnome-47.3. Corrige #21100.
[bdubbs] - Atualização para postfix-3.9.2. Corrige #21094.
[bdubbs] - Atualização para tigervnc-1.15.0. Corrige #21102.
[bdubbs] - Atualização para icewm-3.7.0. Corrige #21135.
21 fevereiro 2025
20 fevereiro 2025
18 fevereiro 2025
18 fevereiro 2025
[bdubbs] - Atualização para xfce4-notifyd-0.9.7. Corrige #21091.
[bdubbs] - Atualização para xfdesktop-4.20.1. Corrige #21101.
[zeckma] - Atualização para thunderbird-128.7.1esr. Corrige #21105.
[bdubbs] - Atualização para qpdf-11.10.1. Corrige #21093.
[bdubbs] - Atualização para libportal-0.9.1. Corrige #21072.
[bdubbs] - Atualização para libblockdev-3.3.0. Corrige #21079.
17 fevereiro 2025
16 fevereiro 2025
15 fevereiro 2025
[bdubbs] - Atualização para ruby-3.4.2. Corrige #21088.
[bdubbs] - Atualização para sentry_sdk-2.21.0 (módulo Python). Corrige #21073.
[bdubbs] - Atualização para psutil-7.0.0 (módulo Python). Corrige #21082.
[bdubbs] - Atualização para numpy-2.2.3 (módulo Python). Corrige #21080.
[bdubbs] - Atualização para php-8.4.4. Corrige #21081.
[renodr] - Atualização para cURL-8.12.1. Corrige #21076.
[thomas] - Atualização para dhcpcd-10.2.0. Corrige #21074.
[thomas] - Atualização para postgresql-17.3. Corrige #21085.
[thomas] - Atualização para cifsutils-7.2. Corrige #21083.
12 fevereiro 2025
[renodr] - Atualização para ImageMagick-7.1.1-43. Corrige #21071.
[renodr] - Atualização para luajit-20250212. Corrige #21070.
[renodr] - Atualização para x264-20250212. Corrige #21069.
[renodr] - Atualizar as Dependências do Módulo Python para BLFS 12.3. Isso inclui atualizações para babel-2.17.0, certifi-2025.1.31, pytz-2025.1, charset-normalizer-3.4.1, idna-3.10, msgpack-1.1.0 e urllib3-2.3.0. Corrige #21068.
[renodr] - Atualização para vim-9.1.1106 (sincronia com LFS). Corrige #21065.
[renodr] - Atualização para libaom-3.12.0. Corrige #21064.
[renodr] - Atualização para Python-3.13.2 (Atualização de Segurança). Corrige #21018.
[renodr] - Atualização para tk-8.6.16. Corrige #21066.
[renodr] - Atualizar as Dependências do Módulo Perl para BLFS 12.3. Isso inclui atualizações para Alien-Build-2.84, Business-ISBN-Data-20250205.001, Capture-Tiny-0.50, Class-Data-Inheritable-0.10, Clone-0.47, DateTime-Locale-1.44, DateTime-TimeZone-2.64, HTTP-Message-7.00, namespace-autoclean-0.31, Specio-0.49, Term-Table-0.024, Test-File-1.994, Test-Simple-1.302209, Test-utf8-1.03, Test-Warnings-0.038, Text-CSV_XS-1.60, Tie-Cycle-1.229 e Try-Tiny-0.32. Corrige #21067.
[renodr] - Arquivar Sub-Identify (Dependência do Módulo Perl). Corrige #21067.
[renodr] - Atualização para cython-3.0.12 (módulo Python). Corrige #21063.
[renodr] - Atualização para gimp-3.0.0-RC3. Corrige #21060.
[renodr] - Atualização para asymptote-2.99. Corrige #21059.
[renodr] - Atualização para gpgme-1.24.2. Corrige #21057.
[renodr] - Atualização para qemu-9.2.1. Corrige #21045.
11 fevereiro 2025
10 fevereiro 2025
[renodr] - Atualização para thunar-4.20.2. Corrige #21056.
[renodr] - Atualização para file-roller-44.5. Corrige #21055.
[renodr] - Atualização para xkeyboard-config-2.44. Corrige #21054.
[renodr] - Atualização para lxml-5.3.1 (módulo Python). Corrige #21053.
[renodr] - Atualização para lcms2-2.17. Corrige #21052.
[renodr] - Atualização para gegl-0.4.54. Corrige #21051.
[renodr] - Atualização para xfce4-settings-4.20.1. Corrige #21049.
[renodr] - Atualização para qpdf-11.10.0. Corrige #21046.
[renodr] - Atualização para lxqt-config-2.1.1. Corrige #21040.
9 fevereiro 2025
[renodr] - Atualização para WebKitGTK-2.46.6 (Atualização de Segurança). Corrige #21039.
[renodr] - Atualização para libreoffice-25.2.0.3. Corrige #21036.
[renodr] - Atualização para make-ca-1.15. Corrige #21048.
[renodr] - Atualização para gnutls-3.8.9 (Atualização de Segurança). Corrige #21044.
[renodr] - Atualização para asymptote-2.98. Corrige #21042.
[renodr] - Atualização para wireplumber-0.5.8. Corrige #21041.
[renodr] - Atualização para gtk-vnc-1.5.0. Corrige #21038.
[renodr] - Atualização para SPIRV-Headers e SPIRV-Tools 1.4.304.1. Corrige #21037.
[renodr] - Atualização para FreeRDP-3.11.1. Corrige #21033.
[renodr] - Corrigir construir Inkscape com poppler-25.02.0. Corrige #21050.
8 fevereiro 2025
[thomas] - Adicionar remendo para corrigir um problema de construção do Kea-dhcp com boost 1.87 ou posterior. Corrige #21043.
7 fevereiro 2025
[bdubbs] - Atualização para talloc-2.4.3. Corrige #21034.
[bdubbs] - Atualização para mako-1.3.9 (módulo Python). Corrige #21017.
[bdubbs] - Atualização para hwdata-0.392. Corrige #21016.
[bdubbs] - Atualização para poppler-25.02.0. Corrige #21015.
[bdubbs] - Atualização para libxkbcommon-1.8.0. Corrige #21014.
[bdubbs] - Atualização para abseil-cpp-20250127.0. Corrige #21013.
[bdubbs] - Atualização para tcsh-6.24.15. Corrige #21012.
[renodr] - Atualização para FreeRDP-3.11.0. Corrige #21033.
[renodr] - Atualização para gcr-4.3.1. Corrige #21030.
[renodr] - Atualização para xwayland-24.1.5. Corrige #21029.
[renodr] - Atualização para pcre2-10.45. Corrige #21028.
[renodr] - Atualização para nss-3.108. Corrige #21027.
[zeckma] - Atualização para sqlite-autoconf-3490000 (3.49.0). Corrige #21035.
6 fevereiro 2025
[renodr] - Atualização para firefox-128.7.0esr (Atualização de Segurança). Corrige #21009.
[renodr] - Atualização para thunderbird-128.7.0esr (Atualização de Segurança). Corrige #21021.
[renodr] - Atualização para cURL-8.12.0 (Atualização de Segurança). Corrige #21020.
[renodr] - Atualização para libtasn1-4.20.0 (Atualização de Segurança). Corrige #21032.
[renodr] - Atualização para mariadb-11.4.5 (Atualização de Segurança). Corrige #21022.
5 fevereiro 2025
[renodr] - Atualização para mutter-47.5. Corrige #21025.
[renodr] - Atualização para gnome-shell-extensions-47.4. Corrige #21024.
[renodr] - Atualização para gnome-shell-47.4. Corrige #21023.
[renodr] - Atualização para nautilus-47.2. Corrige #21019.
[renodr] - Atualização para gnome-control-center-47.4. Corrige #21011.
[renodr] - Atualização para gnome-system-monitor-47.1. Corrige #21002.
[renodr] - Atualização para gdb-16.2. Corrige #21001.
4 fevereiro 2025
[renodr] - Atualização para intel-gmmlib-22.5.5. Corrige #20972.
[renodr] - Atualização para intel-media-24.4.4. Corrige #20973.
[bdubbs] - Atualização para xhost-1.0.10 (aplicação Xorg). Corrige #21005.
[bdubbs] - Atualização para libX11-1.8.11 (biblioteca do Xorg). Corrige #21004.
[bdubbs] - Atualização para protobuf-c-1.5.1. Corrige #21003.
[renodr] - Atualização para lximage-qt-2.1.1. Corrige #20989.
[renodr] - Atualização para lxqt-runner-2.1.2. Corrige #20990.
3 fevereiro 2025
2 fevereiro 2025
1 fevereiro 2025
[renodr] - Atualização para BIND-9.20.5 (Atualização de Segurança). Corrige #20984.
[renodr] - Atualização para epiphany-47.3.1. Corrige #20999.
[renodr] - Atualização para libadwaita-1.6.4. Corrige #20997.
[renodr] - Atualização para gnome-maps-47.4. Corrige #20988.
[thomas] - Atualização para gparted-1.7.0.. Corrige #20994.
[renodr] - Atualização para libshumate-1.3.2. Corrige #20987.
[renodr] - Atualizar a pilha do gstreamer to 1.24.12. Corrige #20991.
[renodr] - Atualização para Text-BibTeX-0.91 (módulo Perl). Corrige #20993.
[renodr] - Atualização para SPIRV-LLVM-Translator-19.1.4. Corrige #20996.
[renodr] - Atualização para wayland-protocols-1.40. Corrige #20992.
31 janeiro 2025
[xry111] - Atualização para rustc-1.84.1.. Corrige #20995.
29 janeiro 2025
28 janeiro 2025
[zeckma] - Atualização para cmake-3.31.5. Corrige #20983.
[renodr] - Atualização para Business-ISSN-1.008 (módulo Perl). Corrige #20981.
[renodr] - Atualização para gtk+-3.24.48. Corrige #20978.
[renodr] - Atualização para dovecot-2.4.0. Corrige #20971.
[renodr] - Atualização para OpenJDK-23.0.2 (Atualização de Segurança). Corrige #20968.
27 janeiro 2025
[zeckma] - Atualização para thunderbird-128.6.1esr. Corrige #20980.
[bdubbs] - Atualização para fmt-11.1.3. Corrige #20979.
[bdubbs] - Atualização para mupdf-1.25.4. Corrige #20974.
[bdubbs] - Atualização para libpng-1.6.46. Corrige #20970.
[bdubbs] - Atualização para fltk-1.4.1. Corrige #20666.
[zeckma] - Vulkan-Loader: Rebaixar Wayland para Recomendado.
24 janeiro 2025
[bdubbs] - Atualização para which-2.22. Corrige #20969.
[renodr] - Atualização para libseccomp-2.6.0. Corrige #20965.
[renodr] - Atualização para libpaper-2.2.6. Corrige #20964.
[renodr] - Atualização para abseil-cpp-20240722.1 (Atualização de Segurança). Corrige #20963.
[bdubbs] - Atualização para httpd-2.4.63. Corrige #20967.
[bdubbs] - Atualização para mc-4.8.33. Corrige #20966.
22 janeiro 2025
20 janeiro 2025
19 janeiro 2025
18 janeiro 2025
17 janeiro 2025
16 janeiro 2025
[renodr] - Atualização para pangomm-2.56.1. Corrige #20942.
[renodr] - Atualização para libsecret-0.21.6. Corrige #20940.
[renodr] - Atualização para rsync-3.4.1. Corrige #20939.
[renodr] - Atualização para libuv-1.50.0. Corrige #20937.
[renodr] - Atualização para LVM2-2.03.30. Corrige #20936.
[renodr] - Atualização para libwnck-43.2. Corrige #20933.
[renodr] - Atualização para gnome-color-manager-3.36.2. Corrige #20932.
[renodr] - Atualização para sqlite-3.48.0. Corrige #20931.
[renodr] - Atualização para shadow-4.17.2 (sincronia com LFS). Corrige #20911.
[renodr] - Atualização para pango-1.56.0. Corrige #20799.
[xry111] - Atualização para cbindgen-0.28.0. Corrige #20938.
[xry111] - Atualização para libclc-19.1.7. Corrige #20462.
[xry111] - Atualização para cargo-c-0.10.8. Corrige #20914.
[xry111] - Atualização para Rustc-1.84.0. Corrige #20897.
[xry111] - Atualização para LLVM-19.1.7. Corrige #20465.
15 janeiro 2025
[renodr] - Atualização para mutter-47.4. Corrige #20927.
[renodr] - Atualização para FreeRDP-3.10.3. Corrige #20926.
[renodr] - Atualização para gnome-shell e gnome-shell-extensions 47.3. Corrige #20925.
[renodr] - Atualização para libqalculate-5.5.0. Corrige #20923.
[renodr] - Atualização para glslc-2024.4. Corrige #20935.
[renodr] - Atualização para glslang-15.1.0. Corrige #20804.
[renodr] - Atualização para Vulkan-Headers e Vulkan-Loader 1.4.304.0. Corrige #20679.
[renodr] - Atualização para SPIRV-Headers e SPIRV-Tools 1.4.304.0. Corrige #20922.
[renodr] - Atualização para polkit-126. Corrige #20921.
14 janeiro 2025
[renodr] - Atualização para vim-9.1.1016 (Atualização de Segurança). Corrige #20930.
[renodr] - Atualização para git-2.48.1 (Atualização de Segurança). Corrige #20928.
[renodr] - Atualização para rsync-3.4.0 (Atualização de Segurança). Corrige #20929.
[zeckma] - Atualização para elogind-255.17. Corrige #20924.
13 janeiro 2025
[renodr] - Atualização para fmt-11.1.2. Corrige #20919.
[renodr] - Atualização para lxqt-runner-2.1.1. Corrige #20918.
[renodr] - Atualização para lxqt-panel-2.1.4. Corrige #20917.
[renodr] - Atualização para gnome-online-accounts-3.52.3.1. Corrige #20916.
[renodr] - Atualização para libsoup-3.6.3. Corrige #20915.
[renodr] - Atualização para Text-CSV-2.05 e Text-CSV_XS-1.59 (Módulos Perl). Corrige #20913.
[renodr] - Atualização para harfbuzz-10.2.0. Corrige #20912.
[renodr] - Atualização para at-spi2-core-2.54.1. Corrige #20910.
[renodr] - Atualização para cmake-3.31.4. Corrige #20907.
[renodr] - Atualização para gnome-control-center-47.3. Corrige #20906.
[renodr] - Atualização para xdg-desktop-portal-gtk-1.15.2. Corrige #20902.
[renodr] - Atualização para libadwaita-1.6.3. Corrige #20901.
[renodr] - Atualizar as instruções da suíte de teste para doxyqml.
[renodr] - Atualização para doxygen-1.13.2. Corrige #20900.
[renodr] - Atualização para libpng-1.6.45. Corrige #20884.
12 janeiro 2025
[renodr] - Atualização para opencv-4.11.0. Corrige #20898.
11 janeiro 2025
10 janeiro 2025
9 janeiro 2025
[renodr] - Atualização para pulseaudio-qt-1.7.0. Corrige #20896.
[renodr] - Atualização para plasma-wayland-protocols-1.16.0. Corrige #20895.
[renodr] - Atualização para cups-browsed-2.1.1. Corrige #20893.
[renodr] - Atualização para glib-networking-2.80.1. Corrige #20892.
[renodr] - Atualização para wireshark-4.4.3. Corrige #20891.
[renodr] - Atualização para protobuf-29.3. Corrige #20890.
8 janeiro 2025
[zeckma] - Atualização para node.js-22.13.0. Corrige #20883.
[renodr] - Atualização para libreoffice-24.8.4.2 (Atualização de Segurança). Corrige #20821.
[renodr] - Atualização para poppler-25.01.0. Corrige #20855.
[renodr] - Atualização para dolphin-24.12.0.1. Corrige #20889.
[renodr] - Atualização para cachecontrol-0.14.2 (Módulos Python). Corrige #20886.
[renodr] - Atualização para highlight-4.15. Corrige #20885.
[renodr] - Atualização para umockdev-0.19.1. Corrige #20854.
[renodr] - Atualização para doxygen-1.13.1. Corrige #20852.
[renodr] - Atualização para gimp-3.0.0-RC2. Corrige #20847.
[renodr] - Atualização para Thunderbird-128.6.0esr (Atualização de Segurança). Corrige #20880.
[thomas] - Atualização para ed-1.21. Corrige #20882.
[thomas] - Atualizar suíte gstreamer para 1.24.11. Corrige #20877.
[renodr] - Atualização para Firefox (e Spidermonkey) 128.6.0esr (Atualização de Segurança). Corrige #20871.
[renodr] - Atualização para Seamonkey-2.53.20 (Atualização de Segurança). Corrige #20888.
7 janeiro 2025
[zeckma] - Atualização para xinit-1.4.3. Corrige #20868.
[zeckma] - Atualização para xf86-input-synaptics-1.10.0 (controlador Xorg). Corrige #20867.
[zeckma] - Atualização para libinput-1.27.1 (controlador Xorg). Corrige #20875.
[renodr] - Atualização para gtk-vnc-1.4.0. Corrige #20876.
[renodr] - Atualização para samba-4.21.3. Corrige #20874.
[renodr] - Atualização para Text-BibTeX-0.90 (módulo Perl). Corrige #20873.
[renodr] - Atualização para ExtUtils-LibBuilder-0.09 (Dependência de Módulo Perl. Corrige #20881.
[renodr] - Atualização para pygments-2.19.1 (módulo Python). Corrige #20866.
[renodr] - Atualização para dvisvgm-3.4.3. Corrige #20865.
[renodr] - Atualização para gnome-maps-47.3. Corrige #20864.
[renodr] - Atualização para libshumate-1.3.1. Corrige #20863.
[renodr] - Atualização para Business-ISBN-3.011 (módulo Perl). Corrige #20862.
[renodr] - Atualização para liblinear-248. Corrige #20861.
[renodr] - Atualização para fetchmail-6.5.2. Corrige #20845.
[renodr] - Atualização para gnome-calculator-47.1. Corrige #20813.
[renodr] - Atualização para tinysparql-3.8.2. Corrige #20810.
[renodr] - Atualização para stunnel-5.74. Corrige #20805.
[renodr] - Atualização para FreeRDP-3.10.2. Corrige #20797.
[renodr] - Atualização para localsearch-3.8.2. Corrige #20788.
[renodr] - Atualização para nautilus-47.1. Corrige #20780.
6 janeiro 2025
[zeckma] - Atualização para xterm-397. Corrige #20869.
5 janeiro 2025
[thomas] - Atualização para evolution-data-server-3.54.3 e evolution-3.54.3. Corrige #20860.
2 janeiro 2025
[renodr] - Atualização para Firefox-128.5.2esr (incluindo Spidermonkey). Corrige #20795.
[renodr] - Atualização para Thunderbird-128.5.2esr (Atualização de Segurança). Corrige #20794.
[renodr] - Atualização para WebKitGTK-2.46.5 (Atualização de Segurança). Corrige #20815.
[renodr] - Atualização para cURL-8.11.1 (Atualização de Segurança). Corrige #20790.
[thomas] - Atualização para SDL2-2.30.11. Corrige #20851.
[renodr] - Corrigir construção de ffmpeg-7.1 com Texinfo-7.2. Agradecimentos vão para Marty Jack por trazer a tona no tíquete do LFS para Texinfo 7.2. Corrige #20853.
[bdubbs] - Atualização para pyparsing-3.2.1 (módulo Python). Corrige #20849.
[bdubbs] - Atualização para SPIRV-LLVM-Translator-19.1.3. Corrige #20848.
[bdubbs] - Atualização para nettle-3.10.1. Corrige #20844.
31 dezembro 2024
28 dezembro 2024
[bdubbs] - Atualização para doxygen-1.13.0. Corrige #20843.
[bdubbs] - Atualização para Net-DNS-1.49 (módulo Perl). Corrige #20842.
[bdubbs] - Atualização para gegl-0.4.52. Corrige #20841.
[bdubbs] - Atualização para umockdev-0.19.0. Corrige #20840.
[bdubbs] - Atualização para ruby-3.4.1. Corrige #20834.
[bdubbs] - Atualização para fmt-11.1.1. Corrige #20833.
27 dezembro 2024
[bdubbs] - Atualização para lxqt-session-2.1.1. Corrige #20831.
[bdubbs] - Atualização para cracklib-2.10.3. Corrige #20829.
[bdubbs] - Atualização para python_dbusmock-0.34.2. Corrige #20827.
[bdubbs] - Atualização para libportal-0.9.0. Corrige #20825.
[bdubbs] - Atualização para wayland-protocols-1.39. Corrige #20823.
[thomas] - Atualização para xfce4-terminal-1.1.4. Corrige #20837.
[thomas] - Atualização para ristretto-0.13.3. Corrige #20836.
[thomas] - Atualização para parole-4.18.2. Corrige #20835.
26 dezembro 2024
24 dezembro 2024
[zeckma] - Atualização para cmake-3.31.3. Corrige #20828.
22 dezembro 2024
21 dezembro 2024
[zeckma] - Atualização para mesa-24.3.2. Corrige #20820.
20 dezembro 2024
19 dezembro 2024
17 dezembro 2024
16 dezembro 2024
15 dezembro 2024
[zeckma] - WebKitGTK: Adicionar remendo de fluxo de desenvolvimento para corrigir falhas de construção.
[zeckma] - Atualização para libXau-1.0.12, libXv-1.0.13, libXxf86vm-1.1.6, libxshmfence-1.3.3 e libxcvt-0.1.3 (bibliotecas Xorg). Corrige #20807.
[thomas] - Atualização para c-ares-1.34.4. Corrige #20806.
13 dezembro 2024
[bdubbs] - Atualização para pacote do kf6 solid-6.9.1.
[bdubbs] - Atualização para plasma-6.2.4. Corrige #20722.
13 dezembro 2024
[bdubbs] - Atualização para kde-gear-24.12.0. Corrige #20796.
[zeckma] - Atualizações para libICE-1.1.2, libSM-1.2.5 e libXrender-0.9.12 (bibliotecas do Xorg). Corrige #20801, #20802 e #20803.
[thomas] - Atualização para bind-9.20.4, bind-utils-9.20.4. Corrige #20792.
[bdubbs] - Atualização para plasma-wayland-protocols-1.15.0. Corrige #20773.
[bdubbs] - Atualização para kf6-6.9.0 com extra-cmake-modules e breeze-icons. Corrige #20800.
12 dezembro 2024
11 dezembro 2024
[xry111] - Atualização para rust-bindgen-0.71.1. Corrige #20765.
[bdubbs] - Atualização para qemu-9.2.0. Corrige #20783.
[bdubbs] - Atualização para python-dbusmock-0.33.0 (módulo Python). Corrige #20785.
[bdubbs] - Atualização para json-glib-1.10.6. Corrige #20784.
[bdubbs] - Atualização para glib-2.82.4. Corrige #20781.
[bdubbs] - Atualização para LVM2.2.03.29. Corrige #20778.
[bdubbs] - Arquivar sysmon-qt.
10 dezembro 2024
[zeckma] - Atualização para openjpeg-2.5.3. Corrige #20779.
[bdubbs] - Adicionar utilitário de monitoramento do sistema sysmon3/sysmond.
9 dezembro 2024
8 dezembro 2024
7 dezembro 2024
[bdubbs] - Atualização para xapian-core-1.4.27. Corrige #20764.
[rahul] - Atualização para SDL2-2.30.10. Corrige #20766.
[rahul] - Atualização para sqlite-3.74.2. Corrige #20767.
[rahul] - Atualização para graphviz-12.2.1. Corrige #20771.
[rahul] - Atualização para gedit-48.1. Corrige #20768.
[rahul] - Atualização para libgedit-tepl-6.12.0. Corrige #20770.
[rahul] - Atualização para libgedit-gtksourceview-299.4.0. Corrige #20772.
[rahul] - Atualização para libgedit-gfls-0.2.1. Corrige #20769.
6 dezembro 2024
[renodr] - Atualização para mutter-47.3. Corrige #20762.
5 dezembro 2024
[zeckma] - Atualização para mesa-24.3.1. Corrige #20681.
[rahul] - Atualização para samba-4.21.2. Corrige #20703.
[bdubbs] - Atualização para protobuf-29.1. Corrige #20754.
[bdubbs] - Atualização para unrar-7.1.2. Corrige #20759.
[bdubbs] - Atualização para libdrm-2.4.124. Corrige #20758.
[bdubbs] - Atualização para xkbevd-1.1.6 (app Xorg). Corrige #20757.
[bdubbs] - Atualização para six-1.17.0 (módulo Python). Corrige #20755.
[thomas] - Atualizar postfix para 3.9.1. Corrige #20756.
4 dezembro 2024
[renodr] - Atualizar a pilha gstreamer para 1.22.10 (Atualização de Segurança). Corrige #20747.
[renodr] - Atualização para qtwebengine-6.8.1 (Atualização de Segurança). Corrige #20743.
[xry111] - Atualização para gpgme-1.24.1 e corrigir falha de construção do módulo Python gpgme com Python-3.13. Corrige #20753.
[renodr] - Atualização para qt-6.8.1. Corrige #20743.
[bdubbs] - Atualização para xfsprogs-6.12.0. Corrige #20748.
[bdubbs] - Atualização para mako-1.3.7. Corrige #20749.
[bdubbs] - Atualização para hwdata-0.390. Corrige #20752.
[zeckma] - Atualização para node.js-22.12.0. Corrige #20751.
3 dezembro 2024
[renodr] - Corrigir construção do libreoffice com poppler-24.12.0.
[zeckma] - Atualização para thunderbird-128.5.1esr. Corrige #20746.
[renodr] - Corrigir construção do Inkscape com poppler-24.12.0 e restaurar a funcionalidade PDF. Remendos foram submetidos por Joe Locash e por Uwe Duffert, mas um ajuste adicional foi feito por mim para permitir construir com poppler-24.12.0.
[renodr] - Atualização para poppler-24.12.0. Corrige #20741.
[renodr] - Atualização para wireplumber-0.5.7. Corrige #20744.
[renodr] - Atualização para lxqt-panel-2.1.3. Corrige #20738.
[renodr] - Atualização para lxqt-notificationd-2.1.1. Corrige #20737.
[zeckma] - Atualização para xterm-396. Corrige #20742.
[zeckma] - Atualização para pixman-0.44.2. Corrige #20745.
2 dezembro 2024
[zeckma] - Atualização para pytest-8.3.4 (módulo Python). Corrige #20739.
30 novembro 2024
29 novembro 2024
[renodr] - Atualização para firefox-128.5.1esr. Corrige #20732.
[renodr] - Atualização para webkitgtk-2.46.4 (Atualização de Segurança). Corrige #20728.
[renodr] - Atualização para libjxl-0.11.1 (Atualização de Segurança). Corrige #20721.
[renodr] - Atualização para protobuf-29.0. Corrige #20726.
[renodr] - Atualização para openldap-2.6.9. Corrige #20725.
29 novembro 2024
28 novembro 2024
[zeckma] - Atualização para pango-1.55.0. Corrige #20727.
27 novembro 2024
[bdubbs] - Atualização para pipewire-1.2.7. Corrige #20724.
[bdubbs] - Atualização para mupdf-1.25.1. Corrige #20723.
[bdubbs] - Atualização para tcsh-6.24.14. Corrige #20720.
[bdubbs] - Atualização para libqalculate-5.4.0. Corrige #20709.
[bdubbs] - Atualização para gnupg-2.4.7. Corrige #20708.
[bdubbs] - Atualização para x265_4.1. Corrige #20368.
[zeckma] - Combinados os Utilitários XCB em uma página.
26 novembro 2024
[renodr] - Atualização para thunderbird-128.5.0esr (Atualização de Segurança). Corrige #20719.
[renodr] - Atualização para firefox-128.5.0esr (Atualização de Segurança). Corrige #20704.
[renodr] - Atualização para spidermonkey-128.5.0. Corrige #20705.
[renodr] - Atualização para tree-2.2.1. Corrige #20710.
[thomas] - Atualização para sqlite-3.47.1. Corrige #20711.
[thomas] - Atualização para git-2.47.1. Corrige #20706.
[thomas] - Atualização para sudo-1.9.16p2. Corrige #20716.
[thomas] - Atualização para cmake-3.31.1. Corrige #20707.
[renodr] - Atualização para gnome-shell-extensions-47.2. Corrige #20714.
[renodr] - Atualização para gnome-shell-47.2. Corrige #20714.
[renodr] - Atualização para mutter-47.2. Corrige #20715.
[renodr] - Atualização para gnome-control-center-47.2. Corrige #20713.
[renodr] - Atualização para file-roller-44.4. Corrige #20701.
[renodr] - Atualização para gnome-maps-47.2. Corrige #20698.
25 novembro 2024
[renodr] - Atualização para gnome-terminal-3.54.2. Corrige #20697.
[renodr] - Atualização para gnome-online-accounts-3.52.2. Corrige #20695.
[renodr] - Atualização para evolution-3.54.2. Corrige #20693.
[renodr] - Atualização para evolution-data-server-3.54.2. Corrige #20693.
[renodr] - Atualização para localsearch-3.8.1. Corrige #20689.
[renodr] - Atualização para tinysparql-3.8.1. Corrige #20690.
[renodr] - Atualização para gnome-user-docs-47.2. Corrige #20688.
[renodr] - Atualização para gnome-settings-daemon-47.2. Corrige #20687.
[renodr] - Atualização para gtksourceview-5.14.2. Corrige #20686.
[renodr] - Atualização para dvisvgm-3.4.2. Corrige #20662.
[renodr] - Atualização para asymptote-2.95. Corrige #20655.
[renodr] - Atualização para libsoup-3.6.1 (Atualização de Segurança). Corrige #20671.
[bdubbs] - Atualização para lxqt-panel-2.1.2. Corrige #20702.
[bdubbs] - Atualização para postgresql-17.2. Corrige #20685.
[bdubbs] - Atualização para wireshark-4.4.2 (Atualização de Segurança). Corrige #20676.
[renodr] - Finalizar restauro de kio-extras para o livro. Corrige #20672.
[renodr] - Adicionar kdsoap-ws-discovery-client para kio-extras.
[zeckma] - Atualização para gtk4-4.16.7. Corrige #20700.
[zeckma] - Atualização para unix-tree-2.2.0. Corrige #20699.
24 novembro 2024
[zeckma] - Atualização para mercurial-6.9. Corrige #20675.
[renodr] - Adicionar plasma-activities-stats para kio-extras. Observe que se um(a) usuário(a) tiver instalado uma construção completa do Plasma, esse pacote não é exigido.
[renodr] - Restaurar KDSoap para o livro para kio-extras.
23 novembro 2024
22 novembro 2024
21 novembro 2024
[renodr] - Remover um sed desnecessário do lxqt-panel.
[renodr] - Desconfigurar CLASSPATH quando construir OpenJDK.
20 novembro 2024
[zeckma] - Atualização para node.js-20.18.1. Corrige #20674.
[rahul] - Atualização para gtk4-4.16.6. Corrige #20678.
[rahul] - Atualização para qemu-9.1.2. Corrige #20673.
[rahul] - Atualização para Vulkan-Headers e Vulkan-Loader 1.3.301. Corrige #20576.
[renodr] - Remover x11perf dos Aplicativos Xorg. Corrige #20649.
[zeckma] - Atualização para libinput-1.27.0 (controlador de entrada do Xorg). Corrige #20670.
[zeckma] - Atualização para thunderbird-128.4.4esr. Corrige #20669.
18 novembro 2024
16 novembro 2024
15 novembro 2024
14 novembro 2024
13 novembro 2024
[zeckma] - Documentar a opção de núcleo do firmware GSP nouveau.
[zeckma] - Atualização para mesa-24.2.7. Corrige #20657.
[zeckma] - Atualização para thunderbird-128.4.3esr (Atualização de Segurança). Corrige #20656.
[bdubbs] - Atualização para sudo-1.9.16p1. Corrige #20652.
[bdubbs] - Atualização para fetchmail-6.5.1. Corrige #20654.
12 novembro 2024
10 novembro 2024
[bdubbs] - Atualização para wget-1.25.0 (Atualização de Segurança). Corrige #20646.
[renodr] - Atualização para cmake-3.31.0. Corrige #20639.
[bdubbs] - Corrigir dovecot-2.3.21.1 para construir com icu-76.1 ou posterior.
[bdubbs] - Atualização para xtrans-1.5.2 (biblioteca Xorg). Corrige #20645.
[bdubbs] - Atualização para c-ares-1.34.3. Corrige #20644.
[bdubbs] - Atualização para packaging-24.2 (módulo Python). Corrige #20643.
[bdubbs] - Atualização para Net-DNS-1.48 (módulo Perl). Corrige #20642.
[bdubbs] - Atualização para ibus-1.5.31.. Corrige #20641.
[bdubbs] - Atualização para iptables-1.8.11.. Corrige #20640.
9 novembro 2024
[bdubbs] - Atualização para lxqt-2.1.0.. Corrige #20622.
8 novembro 2024
[bdubbs] - Atualização para plasma-6.2.3. Para lxqt, inclui kwayland, libkscreen e layer-shell-qt. Corrige #20351.
[bdubbs] - Atualização para kde-gear-24.08.3 Incluindo falkon e kate. Corrige #20362.
[bdubbs] - Atualização para kf6-6.8.0. Inclui extra-cmake-modules, kconfig, kidletime, kwindowsystem, solid e breeze-icons. Corrige #20367.
[renodr] - Atualização para xrandr-1.5.3 (Aplicativo Xorg). Corrige #20638.
[renodr] - Atualização para libblockdev-3.2.1. Corrige #20637.
[renodr] - Atualização para intel-gmmlib-22.5.3. Corrige #20573.
[renodr] - Atualização para intel-media-driver-24.3.4. Corrige #20573.
7 novembro 2024
[renodr] - Atualização para Thunderbird-128.4.2esr. Corrige #20629.
[bdubbs] - Atualização para gpgme-1.24.0. Corrige #20630.
[bdubbs] - Atualização para dtc-1.7.2. Corrige #20633.
[renodr] - Atualização para unrar-7.1.1. Corrige #20631.
[renodr] - Atualização para libXcursor-1.2.3 (Bibliotecas Xorg). Corrige #20624.
[renodr] - Atualização para harfbuzz-10.1.0. Corrige #20625.
[renodr] - Atualização para pixman-0.44.0. Corrige #20626.
[renodr] - Atualização para gnutls-3.8.8. Corrige #20627.
[renodr] - Atualização para curl-8.11.0 (Atualização de Segurança). Corrige #20628.
[bdubbs] - Atualização para URI-5.31 (módulo Perl). Corrige #20632.
6 novembro 2024
[bdubbs] - Atualização para ruby-3.3.6. Corrige #20623.
5 novembro 2024
[renodr] - Atualização para fop-2.10 (Atualização de Segurança). Corrige #20501.
[renodr] - Atualização para OpenJDK-23.0.1 (Atualização de Segurança). Corrige #20540.
[renodr] - Corrigir construir Libreoffice com ICU-76.
[renodr] - Corrigir construir Node.js com ICU-76.
[renodr] - Atualização para icu-76.1. Corrige #20568.
[renodr] - Corrigir construir Texlive a partir do fonte em i686.
[bdubbs] - Atualização para mariadb-11.4.4. Corrige #20620.
[bdubbs] - Atualização para cachecontrol-0.14.1 (módulo Python). Corrige #20621.
[bdubbs] - Atualização para sentry_sdk-2.18.0 (módulo Python). Corrige #20619.
[bdubbs] - Atualização para hwdata-0.389. Corrige #20618.
[bdubbs] - Atualização para LVM2.2.03.28. Corrige #20617.
4 novembro 2024
[bdubbs] - Atualização para SDL2-2.30.9. Corrige #20615.
[bdubbs] - Atualização para audacious e audacious-plugins-4.4.2. Corrige #20614.
[bdubbs] - Atualização para graphviz-12.2.0. Corrige #20613.
[bdubbs] - Atualização para gegl-0.4.50. Corrige #20612.
[bdubbs] - Atualização para utfcpp-4.0.6. Corrige #20611.
[bdubbs] - Atualização para poppler-24.11.0. Corrige #20521.
3 novembro 2024
[renodr] - Corrigir construção de xfsprogs com ICU-76.
2 novembro 2024
[bdubbs] - Atualização para numpy-2.1.3 (módulo Python). Corrige #20609.
[bdubbs] - Atualização para mpg123-1.32.9. Corrige #20610.
[renodr] - Corrigir construção de evolution-data-server com ICU-76.
[bdubbs] - Atualização para libvpx-1.15.0. Corrige #20608.
[bdubbs] - Atualização para gtk4-4.16.5. Corrige #20606.
[bdubbs] - Atualização para valgrind-3.24.0. Corrige #20605.
[bdubbs] - Atualização para bluez-5.79. Corrige #20604.
[renodr] - Atualização para WebKitGTK-2.46.3 (Atualização de Segurança). Corrige #20597.
1 novembro 2024
31 outubro 2024
[bdubbs] - Atualização para mesa-24.2.6. Corrige #20600.
[bdubbs] - Atualização para libnl-3.11.0. Corrige #20599.
[bdubbs] - Atualização para bubblewrap-0.11.0. Corrige #20598.
[bdubbs] - Atualização para fetchmail-6.5.0 (Atualização de Segurança). Corrige #20594.
[bdubbs] - Atualização para librsvg-2.59.2. Corrige #20590.
[bdubbs] - Atualização para gnupg-2.4.6. Corrige #20588.
30 outubro 2024
[renodr] - Atualização para thunderbird-128.4.0esr (Atualização de Segurança). Corrige #20587.
[renodr] - Atualização para firefox-128.4.0esr (Atualização de Segurança). Corrige #20586.
[renodr] - Atualização para spidermonkey-128.4.0. Corrige #20584.
[renodr] - Atualização para xwayland-24.1.4 (Atualização de Segurança). Corrige #20593.
[renodr] - Atualização para xorg-server-21.1.14 (Atualização de Segurança). Corrige #20592.
[renodr] - Atualização para xf86-input-wacom-1.2.3 (Controlador de Xorg). Corrige #20591.
[renodr] - Atualização para pipewire-1.2.6. Corrige #20563.
29 outubro 2024
28 outubro 2024
27 outubro 2024
[xry111] - Adicionar docbook-xsl-ns-1.79.2. Corrige #20580.
[bdubbs] - Atualização para mpg123-1.32.8 (Atualização de Segurança). Corrige #20579.
[bdubbs] - Atualização para sphinxcontrib_htmlhelp-2.1.0 (módulo Python). Corrige #20577.
[bdubbs] - Atualização para desktop-file-utils-0.28. Corrige #20575.
[bdubbs] - Atualização para tigervnc-1.14.1. Corrige #20572.
[bdubbs] - Atualização para php-8.3.13. Corrige #20570.
[bdubbs] - Atualização para nss-3.106. Corrige #20566.
26 outubro 2024
[bdubbs] - Atualização para Linux-PAM-1.7.0. Corrige #20565.
25 outubro 2024
24 outubro 2024
[bdubbs] - Reverter para URI-6.29 (Módulo Perl). Corrige #20521.
23 outubro 2024
[renodr] - Atualização para thunderbird-128.3.3esr. Corrige #20560.
[renodr] - Atualização para gnome-weather-47.0. Corrige #20406.
[renodr] - Atualização para baobab-47.0. Corrige #20405.
[renodr] - Atualização para gnome-terminal-3.54.1. Corrige #20388.
[renodr] - Atualização para gnome-system-monitor-47.0. Corrige #20387.
[renodr] - Atualização para gnome-calculator-47.0. Corrige #20386.
[renodr] - Atualização para gnome-maps-47.1. Corrige #20370.
[renodr] - Atualização para gucharmap-16.0.2. Corrige #20352.
[renodr] - Atualização para eog-47.0. Corrige #20337.
[renodr] - Atualização para gedit-48.0. Inclui atualizações para libgedit-gfls-0.2.0 e libgedit-tepl-6.11.0. Corrige #20378.
[renodr] - Atualização para libgedit-gtksourceview-299.3.0. Corrige #20561.
[renodr] - Atualização para epiphany-47.2. Corrige 20559.
[renodr] - Atualização para NetworkManager-1.50.0. Corrige #20473.
[renodr] - Atualização para dhcpcd-10.1.0. Corrige #20482.
[renodr] - Atualização para gnome-user-docs-47.0. Corrige #20384.
[renodr] - Atualização para gnome-session-47.0.1. Corrige #20414.
[renodr] - Atualização para gnome-shell-extensions-47.1. Corrige #20383.
[renodr] - Atualização para gdm-47.0. Corrige #20415.
[renodr] - Atualização para gnome-shell-47.1. Corrige #20383.
[renodr] - Atualização para mutter-47.1. Corrige #20385.
[renodr] - Atualização para gnome-control-center-47.1.1. Corrige #20396.
[renodr] - Atualização para tecla-47.0. Corrige #20403.
[renodr] - Atualização para gnome-settings-daemon-47.1. Corrige #20391.
[bdubbs] - Atualização para usbutils-018. Corrige #20558.
[bdubbs] - Atualização para protobuf-28.3. Corrige #20557.
[bdubbs] - Atualização para FreeRDP-3.9.0. Corrige #20556.
[bdubbs] - Atualização para sqlite-autoconf-3470000 (3.47.0). Corrige #20553.
[bdubbs] - Atualização para nghttp2-1.64.0. Corrige #20552.
[renodr] - Atualização para gnome-bluetooth-47.1. Corrige #20397.
[bdubbs] - Atualização para mako-1.3.6 (observe mudança de Mako). Corrige #20551.
[bdubbs] - Atualização para nspr-4.36. Corrige #20550.
[bdubbs] - Atualização para mousepad-0.6.3. Corrige #20549.
[renodr] - Atualização para nautilus-47.0. Corrige #20393.
[renodr] - Atualização para gvfs-1.56.1. Corrige #20019.
[renodr] - Atualização para snapshot-47.1. Corrige #20394.
[renodr] - Adicionar libgstgtk4 ao livro em suporte do Snapshot. Parte de #20394.
22 outubro 2024
[renodr] - Substituir tracker-miners3 por localsearch e atualizar para localsearch-3.8.0. Corrige #20413.
[renodr] - Substituir tracker3 por tinysparql e atualizar para tinysparql-3.8.0. Corrige #20412.
[renodr] - Atualização para evolution-3.54.1. Corrige #20016.
[renodr] - Atualização para evolution-data-server-3.54.1. Corrige #20016.
[renodr] - Arquivar Grilo, pois ele não mais é usado por nada no livro.
[renodr] - Atualização para gnome-online-accounts-3.52.1. Corrige #20018.
[renodr] - Atualização para gjs-1.82.1. Corrige #20555.
[renodr] - Atualização para vte-0.78.1. Corrige #20389.
[renodr] - Atualização para WebKitGTK-2.46.2. Corrige #20554.
21 outubro 2024
[renodr] - Atualização para libppd-2.1.0. Corrige #20539.
[renodr] - Atualização para libcupsfilters-2.1.0. Corrige #20538.
[renodr] - Atualização para cups-browsed-2.1.0. Corrige #20537.
[renodr] - Atualização para epiphany-47.1. Corrige #20523.
[renodr] - Atualização para samba-4.21.1. Corrige #20522.
[renodr] - Atualização para cups-2.4.11. Corrige #20505.
[renodr] - Atualização para wireshark-4.4.1 (Atualização de Segurança). Corrige #20503.
[bdubbs] - Atualização para subversion-1.14.4. Corrige #20500.
[bdubbs] - Atualização para swig-4.3.0. Corrige #20548.
[bdubbs] - Atualização para SDL2-2.30.8. Corrige #20508.
[bdubbs] - Atualização para qemu-9.1.1. Corrige #20542.
[renodr] - Atualização para libreoffice-24.8.2.1. Corrige #20365.
20 outubro 2024
[bdubbs] - Atualização para libwnck-43.1. Corrige #20486.
[bdubbs] - Atualização para gtk4-4.16.3. Corrige #20484.
[bdubbs] - Atualização para qcoro-0.11.0. Corrige #20481.
[bdubbs] - Atualização para mesa-24.2.5. Corrige #20480.
[bdubbs] - Atualização para nfs-utils-2.8.1. Corrige #20547.
[bdubbs] - Atualização para libuv-v1.49.2. Corrige #20543.
[bdubbs] - Atualização para Vulkan-Headers e Vulkan-Loader 1.3.299. Corrige #20541.
[thomas] - Atualização para xfsprogs-6.11.0.. Corrige #20546.
18 outubro 2024
17 outubro 2024
[bdubbs] - Temporariamente reverter para poppler-24.09.0 até que outros pacotes sejam atualizados para usá-lo (por exemplo, inkscape, libreoffice)
[renodr] - Atualização para thunderbird-128.3.2esr. Corrige #20509.
[bdubbs] - Atualização para unbound-1.22.0. Corrige #20536.
[bdubbs] - Atualização para sentry_sdk-2.17.0 (módulo Python). Corrige #20534.
[bdubbs] - Atualização para psutil-6.1.0 (módulo Python). Corrige #20532.
[bdubbs] - Atualização para glib-2.82.2. Corrige #20531.
[renodr] - Atualização para asymptote-2.92. Corrige #20495.
[thomas] - Atualização para libtirpc-1.3.6. Corrige #20535.
[thomas] - Atualização para bind 9.20.3, bind-utils-9.20.3. Corrige #20527.
17 outubro 2024
[bdubbs] - Atualização para libgedit-amtk-5.9.0. Corrige #20530.
[bdubbs] - Atualização para libunistring-1.3. Corrige #20529.
[bdubbs] - Atualização para libssh2-1.11.1. Corrige #20528.
[bdubbs] - Atualização para xf86-input-libinput-1.5.0 (Controlador Xorg). Corrige #20526.
[bdubbs] - Atualização para xf86-input-evdev-2.11.0 (Controlador Xorg). Corrige #20525.
[bdubbs] - Atualização para c-ares-1.34.2. Corrige #20524.
[bdubbs] - Atualização para poppler-24.10.0. Corrige #20521.
[bdubbs] - Atualização para libxmlb-0.3.21. Corrige #20520.
14 outubro 2024
[bdubbs] - Atualização para libarchive-3.7.7 (Atualização de Segurança). Corrige #20519.
[bdubbs] - Atualização para pyparsing-3.2.0 (módulo Python). Corrige #20518.
[bdubbs] - Atualização para libadwaita-1.6.1. Corrige #20517.
[bdubbs] - Atualização para inkscape-1.4. Corrige #20516.
[bdubbs] - Atualização para wayland-protocols-1.38. Corrige #20515.
[bdubbs] - Atualização para xwud-1.0.7 (aplicativo do Xorg). Corrige #20514.
[bdubbs] - Atualização para xtrans-1.5.1 (biblioteca do Xorg). Corrige #20513.
[bdubbs] - Atualização para xcmsdb-1.0.7 (aplicativo do Xorg). Corrige #20512.
[bdubbs] - Atualização para libqtxdg-4.0.1. Corrige #20511.
[bdubbs] - Atualização para libuv-v1.49.1. Corrige #20510.
13 outubro 2024
[bdubbs] - Atualização para sphinx_rtd_theme-3.0.1 (módulo Python). Corrige #20494.
[bdubbs] - Atualização para sphinx-8.1.3 (módulo Python). Corrige #20506.
[bdubbs] - Atualização para sentry_sdk-2.16.0 (módulo Python). Corrige #20499.
[bdubbs] - Atualização para SPIRV-Headers e SPIRV-Tools-1.3.296.0. Corrige #20496.
[bdubbs] - Atualização para URI-5.30 (módulo Perl). Corrige #20497.
[bdubbs] - Atualização para git-2.47.0. Corrige #20490.
[bdubbs] - Atualização para gtksourceview-5.14.1. Corrige #20485.
[bdubbs] - Atualização para qtwebengine-6.8.0 (Atualização de Segurança). Corrige #20493.
[bdubbs] - Atualização para qt-everywhere-src-6.8.0 (Atualização de Segurança). Corrige #20492.
[bdubbs] - Atualização para libqalculate-5.3.0. Corrige #20489.
[bdubbs] - Atualização para Vulkan-Headers e Vulkan-Loader 1.3.298. Corrige #20483.
[bdubbs] - Atualização para node-20.18.0. Corrige #20477.
10 outubro 2024
9 outubro 2024
[renodr] - Atualização para thunderbird-128.3.0esr (Atualização de Segurança). Corrige #20469.
[renodr] - Atualização para firefox-128.3.1esr (Atualização de Segurança). Corrige #20460.
[renodr] - Corrigir uma cadeia de vulnerabilidades no CUPS que é conhecida por permitir execução remota de código não autenticado, sem intervenção do(a) usuário(a). Corrige #20456.
[renodr] - Corrigir um defeito no Cairo que causa problemas com impressão de arquivos PDF. Corrige #20443.
[renodr] - Atualização para epiphany-47.0. Corrige #20364.
[renodr] - Atualização para seahorse-47.0.1. Corrige #20423.
[renodr] - Atualização para WebKitGTK-2.46.1 (Atualização de Segurança). Corrige #20409.
[xry111] - Atualização para pyproject-metadata-0.8.1 (dependência Python). Endereça #18562.
[xry111] - Atualização para Markdown-3.7 (dependência Python). Endereça #18562.
[xry111] - Atualização para trove-classifiers-2024.9.12 (dependência Python). Endereça #18562.
8 outubro 2024
[thomas] - Atualização para cifs-utils-7.1. Corrige #20488.
7 outubro 2024
[renodr] - Atualização para xdg-dbus-proxy-0.1.6. Corrige #20428.
[renodr] - Atualização para xdg-desktop-portal-gnome-47.1. Corrige #20404.
[renodr] - Atualização para adwaita-icon-theme-47.0. Corrige #20401.
[renodr] - Atualização para gnome-backgrounds-47.0. Corrige #20402.
[renodr] - Atualização para xdg-desktop-portal-0.18.4 (Atualização de Segurança). Corrige #20430.
[renodr] - Atualização para pipewire-1.2.5. Corrige #20429.
[renodr] - Atualização para upower-1.90.6. Corrige #20421.
[renodr] - Corrigir executar a suíte de teste XML-LibXML com libxml2-2.13. Corrige #20457.
[renodr] - Atualização para unbound-1.21.1 (Atualização de Segurança). Corrige #20479.
[bdubbs] - Atualização para numpy-2.1.2 (módulo Python). Corrige #20487.
[bdubbs] - Atualização para python-dbusmock-0.32.2 (módulo Python). Corrige #20478.
3 outubro 2024
[bdubbs] - Atualização para mupdf-1.24.10. Corrige #20475.
[bdubbs] - Atualização para xwayland-24.1.3. Corrige #20474.
[bdubbs] - Atualização para LVM2.2.03.27. Corrige #20471.
[bdubbs] - Atualização para hwdata-0.388. Corrige #20472.
[bdubbs] - Atualização para xkeyboard-config-2.43. Corrige #20468.
[bdubbs] - Atualização para sentry_sdk-2.15.0. Corrige #20467.
[bdubbs] - Atualização para Python3-3.12.7. Corrige #20466.
[bdubbs] - Atualização para libgsf-1.14.53 (Atualização de Segurança). Corrige #20463.
[bdubbs] - Atualização para btrfs-progs-v6.11. Corrige #20411.
[bdubbs] - Atualização para ffmpeg-7.1. Corrige #20461.
[bdubbs] - Atualização para gdb-15.2. Corrige #20459.
[bdubbs] - Atualização para glad-2.0.8. Corrige #20458.
[bdubbs] - Atualização para postgresql-17.0. Corrige #20450.
[bdubbs] - Atualização para shaderc-2024.3 (glslc). Corrige #20438.
[renodr] - Atualizar a pilha gstreamer para 1.24.8. Corrige #20427.
2 outubro 2024
[renodr] - Corrigir construir libplacebo com glslang-15.0.0. Corrige #20470.
30 setembro 2024
[bdubbs] - Atualização para graphviz-12.1.2. Corrige #20455.
[bdubbs] - Atualização para nss-3.105. Corrige #20452.
[bdubbs] - Atualização para audacious e audacious-plugins-4.4.1. Corrige #20448.
[bdubbs] - Atualização para mpv-0.39.0. Corrige #20442.
[bdubbs] - Atualização para harfbuzz-10.0.1. Corrige #20437.
[xry111] - Atualização para unifont-16.0.01 (dados de fonte do GRUB para UEFI). Corrige #20395.
28 setembro 2024
[bdubbs] - Atualização para cmake-3.30.4. Corrige #20453.
[bdubbs] - Atualização para Vulkan-Headers e Vulkan-Loader-1.3.296. Corrige #20451.
[bdubbs] - Atualização para libuv-v1.49.0. Corrige #20444.
[bdubbs] - Atualização para gtk-4.16.2. Corrige #20441.
[bdubbs] - Atualização para glib-2.82.1. Corrige #20434.
[bdubbs] - Atualização para librsvg-2.59.1. Corrige #20359.
[bdubbs] - Adicionar cargo-c-0.10.4 necessário para librsvg-2.59.1.
28 setembro 2024
[bdubbs] - Atualização para QtWebEngine-6.7.3. Corrige #20454.
[bdubbs] - Atualização para qt-6.7.3 (Atualização de Segurança). Corrige #20454.
[bdubbs] - Atualização para php-8.3.12 (Atualização de Segurança). Corrige #20449.
[bdubbs] - Atualização para glslang-15.0.0. Corrige #20446.
[bdubbs] - Atualização para fribidi-1.0.16. Corrige #20445.
[bdubbs] - Atualização para git-2.46.2. Corrige #20439.
[bdubbs] - Atualização para bluefish-2.2.16. Corrige #20436.
[bdubbs] - Atualização para LibRaw-0.21.3. Corrige #20419.
27 setembro 2024
[thomas] - Atualização para libarchive-3.7.6.. Corrige #20440.
[thomas] - Atualização para openssh-9.9p1.. Corrige #20432.
[thomas] - Atualização para libxml2-2.13.4.. Corrige #20418.
[rahul] - Atualização para protobuf-28.2.. Corrige #20354.
[rahul] - Atualização para libpng-1.6.44.. Corrige #20358.
[rahul] - Atualização para bluez-5.78.. Corrige #20341.
[rahul] - Atualização para curl-8.10.1 (Atualização de Segurança). Corrige #20355.
[rahul] - Atualização para qemu-9.1.0.. Corrige #20161.
[rahul] - Atualização para power-profiles-daemon-0.23.. Corrige #20342.
26 setembro 2024
22 setembro 2024
[bdubbs] - Atualização para Net-DNS-1.47 (módulo Perl). Corrige #20422.
[bdubbs] - Atualização para tk8.6.15. Corrige #20400.
[bdubbs] - Atualização para highlight-4.14. Corrige #20398.
[bdubbs] - Atualização para pulseaudio-qt-1.6.0. Corrige #20398.
[thomas] - Atualização para bind-9.20.2, bind-utils-9.20.2. Corrige #20260.
20 setembro 2024
[xry111] - Atualização para libclc-19.1.0.. Corrige #19985.
[xry111] - Atualização para SPIRV-LLVM-Translator-19.1.0.. Corrige #20417.
[xry111] - Atualização para LLVM-19.1.0.. Corrige #19968.
[renodr] - Atualização para bubblewrap-0.10.0 (parte de uma atualização de segurança). Corrige #20431.
[renodr] - Atualização para tiff-4.7.0 (Atualização de Segurança). Corrige #20420.
19 setembro 2024
[renodr] - Atualização para mesa-24.2.3. Corrige #20416.
18 setembro 2024
[renodr] - Atualização para gsettings-desktop-schemas-47.1. Corrige #20390.
17 setembro 2024
[renodr] - Arquivar Lua 5.2.
[renodr] - Adicionar LuaJIT ao livro para substituir Lua 5.2. Corrige #20312.
16 setembro 2024
[renodr] - Atualização para dvisvgm-3.4.1. Corrige #20407.
[renodr] - Atualização para json-c-0.18. Corrige #20392.
[renodr] - Atualização para gspell-1.14.0. Corrige #20372.
[renodr] - Atualização para libshumate-1.3.0. Corrige #20369.
[renodr] - Adaptar as unidades do systemd para as mudanças no MariaDB. O novo número de versão é 20240916.
15 setembro 2024
14 setembro 2024
[bdubbs] - Atualização para libadwaita-1.6.0. Corrige #20377.
[bdubbs] - Atualização para traceroute-2.1.6. Corrige #20375.
[bdubbs] - Atualização para libjxl-0.11.0. Corrige #20374.
[bdubbs] - Atualização para libarchive-3.7.5 (Atualização de Segurança). Corrige #20373.
[bdubbs] - Atualização para mlt-7.28.0. Corrige #20366.
[bdubbs] - Atualização para plasma-wayland-protocols-1.14.0. Corrige #20361.
[bdubbs] - Atualização para pygobject3-3.50.0 (módulo Python). Corrige #20360.
[bdubbs] - Atualização para xcb-util-cursor-0.1.5. Corrige #20356.
[bdubbs] - Atualização para gtkmm-4.16.0. Corrige #20350.
[bdubbs] - Atualização para luit-20240910. Corrige #20349.
[bdubbs] - Atualização para gtk-4.16.1. Corrige #20376.
[xry111] - Atualização para gobject-introspection-1.82.0 (transferência adicional do glib). Corrige #20371.
13 setembro 2024
[bdubbs] - Atualização para libblockdev-3.2.0. Corrige #20345.
[bdubbs] - Atualização para graphviz-12.1.1. Corrige #20346.
[bdubbs] - Atualização para pytest-8.3.3 (módulo Python). Corrige #20348.
[bdubbs] - Atualização para mariadb-11.4.3. Corrige #20344.
[bdubbs] - Atualização para sentry_sdk-2.14.0 (módulo Python). Corrige #20343.
[bdubbs] - Atualização para stunnel-5.73. Corrige #20340.
12 setembro 2024
[bdubbs] - Atualização para gtk4-4.16.0. Corrige #20336.
[bdubbs] - Adicionar glslc proveniente de shaderc-2024.2 necessário para gtk4-4.16.0.
9 setembro 2024
7 setembro 2024
[xry111] - Atualização para rustc-1.81.0.. Corrige #20332.
6 setembro 2024
[renodr] - Atualização para wireplumber-0.5.6. Corrige #20334.
[renodr] - Atualização para mesa-24.2.2. Corrige #20333.
[renodr] - Atualização para gnome-disk-utility-46.1. Corrige #20311.
[renodr] - Atualização para libwacom-2.13.0. Corrige #20307.
[renodr] - Atualização para libportal-0.8.1. Corrige #20306.
[renodr] - Atualização para libgweather-4.4.4. Corrige #20304.
[renodr] - Atualização para gnome-autoar-0.4.5. Corrige #20295.
[renodr] - Atualização para Vulkan-Headers e Vulkan-Loader 1.3.295. Corrige #20293.
[bdubbs] - Atualização para URI-5.29 (módulo Perl). Corrige #20331.
[bdubbs] - Atualização para cairo-1.18.2. Corrige #20303.
[bdubbs] - Atualização para SPIRV-LLVM-Translator-18.1.4. Corrige #20299.
[bdubbs] - Atualização para apache-ant-1.10.15. Corrige #20287.
[bdubbs] - Atualização para screen-5.0.0. Corrige #20284.
[renodr] - Atualização para ruby-3.3.5 (Atualização de Segurança). Corrige #20317.
[renodr] - Restaurar -DGIT_ARCHETYPE=1 para as instruções de construção para x265, de forma que não exija git para o arquivo de pkg-config ou a biblioteca compartilhada.
[bdubbs] - Atualização para glad-2.0.7. Corrige #20328.
[bdubbs] - Atualização para glibmm-2.82.0. Corrige #20327.
[bdubbs] - Atualização para nano-8.2. Corrige #20326.
[renodr] - Atualização para thunderbird-128.2.0esr (Atualização de Segurança). Corrige #20320.
[renodr] - Atualização para firefox-128.2.0esr (Atualização de Segurança). Corrige #20305.
5 setembro 2024
[bdubbs] - Atualização para SDL2-2.30.7. Corrige #20323.
[bdubbs] - Atualização para libXi-1.8.2 (biblioteca do Xorg). Corrige #20322.
[bdubbs] - Atualização para umockdev-0.18.4. Corrige #20321.
[bdubbs] - Atualização para libevdev-1.13.3 (controlador do Xorg). Corrige #20319.
[bdubbs] - Atualização para geoclue-2.7.2. Corrige #20318.
[bdubbs] - Atualização para cryptsetup-2.7.5. Corrige #20313.
[bdubbs] - Atualização para numpy-2.1.1 (módulo Python). Corrige #20316.
[bdubbs] - Atualização para scons-4.8.1. Corrige #20315.
[bdubbs] - Atualização para hwdata-0.387. Corrige #20330.
4 setembro 2024
[rahul] - Atualização para nss-3.104. Corrige #20290.
[rahul] - Atualização para cmake-3.30.3. Corrige #20288.
[rahul] - Atualização para samba-4.21.0. Corrige #20309.
[rahul] - Atualização para FreeRDP-3.8.0. Corrige #20296.
[rahul] - Atualização para wayland-protocols-1.37. Corrige #20298.
[rahul] - Atualização para json-glib-1.10.0. Corrige #20291.
[rahul] - Atualização para sudo-1.9.16. Corrige #20301.
[rahul] - Atualização para NetworkManager-1.48.10. Corrige #20276.
[rahul] - Atualização para power-profiles-daemon-0.22. Corrige #20308.
[rahul] - Atualização para xterm-394. Corrige #20310.
[rahul] - Atualização para dhcpcd-10.0.10. Corrige #20262.
[bdubbs] - Atualização para poppler-24.09.0. Corrige #20302.
[bdubbs] - Atualização para php-8.3.11. Corrige #20289.
[bdubbs] - Atualização para userspace-rcu-0.14.1 (liburcu). Corrige #20283.
[bdubbs] - Atualização para nghttp2-1.63.0. Corrige #20282.
[bdubbs] - Atualização para protobuf-28.0. Corrige #20281.
[bdubbs] - Atualização para upower-v1.90.5. Corrige #20275.
3 setembro 2024
[bdubbs] - Atualização para glibmm-2.80.1. Corrige #20280.
[bdubbs] - Atualização para glib-2.82.0. Corrige #20279.
[bdubbs] - Atualização para libdrm-2.4.123. Corrige #20277.
[bdubbs] - Atualização para apr-1.7.5 (Atualização de Segurança). Corrige #20273.
[bdubbs] - Atualização para node-20.17.0. Corrige #20259.
[bdubbs] - Atualização para rust-bindgen-0.70.1. Corrige #20254.
[bdubbs] - Atualização para mesa-24.2.1. Corrige #20232.
[bdubbs] - Atualização para mupdf-1.24.9. Corrige #20297.
[bdubbs] - Atualização para libpcap-1.10.5 (Correções de Segurança). Corrige #20292.
[bdubbs] - Atualização para wireshark-4.4.0. Corrige #20285.
[bdubbs] - Atualização para xfsprogs-6.10.1. Corrige #20274.
[bdubbs] - Atualização para pyparsing-3.1.4 (módulo Python). Corrige #20271.
[bdubbs] - Atualização para taglib-2.0.2. Corrige #20270.
[bdubbs] - Atualização para c-ares-1.33.1. Corrige #20268.
[bdubbs] - Atualização para nfs-utils-2.7.1. Corrige #20261.
[bdubbs] - Atualização para libinput-1.26.2 (controlador de entrada do Xorg). Corrige #20250.
2 setembro 2024
[bdubbs] - Atualização para IO-Socket-SSL-2.089 (módulo Perl). Corrige #20286.
[bdubbs] - Arquivar Qt5.
1 setembro 2024
[bdubbs] - Lançamento do BLFS-12.2.
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.
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).
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.
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.
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/
.
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.
<pacote>
Além de uma breve explicação do problema que você está enfrentando, as coisas essenciais a se incluir na sua solicitação são:
a versão do livro que você está usando (sendo 12.3),
o pacote ou seção dando problemas para você,
a mensagem de erro exata ou sintoma que você está recebendo,
se você tiver se desviado do livro ou do LFS de alguma forma (colocar as instruções do livro em um conjunto de comandos sequenciais enquanto o livro não diz para fazer isso é sempre considerado um desvio, porque tem existido muitos casos de problemas onde pessoas falham em notar uma diferença sutil entre o conjunto de comandos sequenciais e o livro),
se você está instalando um pacote do BLFS em um sistema que não é o LFS.
Note que dizer que você se desviou do livro não significa que nós não te ajudaremos. Isso apenas nos ajudará a ver outras possíveis causas do teu problema. Se você tiver se desviado do livro, você também deveria dizer precisamente qual é o desvio, de forma que outras pessoas consigam reproduzi-lo. Um conjunto de comandos sequenciais pode ser anexado para mostrar o que você fez exatamente (especialmente se você já tiver um conjunto de comandos sequenciais desse, ou seja, você já tiver se desviado do livro ao empacotar as instruções do livro em um conjunto de comandos sequenciais e executá-lo).
Espere por orientação em vez de instruções específicas. Se você for instruído(a) a ler alguma coisa, [então], por favor, faça isso. Geralmente implica que a resposta era óbvia demais e que a pergunta não teria sido feita se um pouco de pesquisa fosse feita antes de perguntar. Os(As) voluntários(as) na lista de discussão preferem não serem usados(as) como uma alternativa a fazer uma pesquisa razoável de sua parte. Adicionalmente, a qualidade da sua experiência com o BLFS também é grandemente melhorada por essa pesquisa e a qualidade dos(as) voluntários(as) é melhorada, pois eles(as) não sentem que o tempo deles(as) foi desperdiçado, de forma que é muito mais provável que eles(as) participem.
Um artigo excelente acerca de como pedir ajuda na Internet em geral foi escrito por Eric S. Raymond. Ele está disponível online em http://www.catb.org/~esr/faqs/smart-questions.html. Leia e siga as dicas naquele documento e é muito mais provável que você obtenha uma resposta inicial e também obtenha a ajuda que você precisa realmente.
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.
Rahul Chandra
Bruce Dubbs
Pierre Labastie
Douglas Reno
Xi Ruoyao
Thomas Trepl
A lista dos(as) colaboradores(as) é ampla demais para fornecer informação detalhada acerca das contribuições para cada colaborador(a). Ao longo dos anos, os seguintes indivíduos forneceram contribuições significantes para o livro:
Timothy Bauscher
Daniel Bauman
Jeff Bauman
Andy Benton
Wayne Blaszczyk
Paul Campbell
Nathan Coulson
Jeroen Coumans
Guy Dalziel
Robert Daniels
Richard Downing
Manuel Canales Esparcia
Jim Gifford
Manfred Glombowski
Ag Hatzimanikas
Mark Hymers
James Iwanek
David Jensen
Jeremy Jones
Seth Klein
Alex Kloss
Eric Konopka
Larry Lawrence
D-J Lucas
Chris Lynn
Andrew McMurry
Randy McMurchy
Ken Moffat
Denis Mugnier
Billy O'Connor
Fernando de Oliveira
Alexander Patrakov
Olivier Peres
Andreas Pedersen
Henning Rohde
Matt Rogers
James Robertson
Henning Rohde
Chris Staub
Jesse Tie-Ten-Quee
Ragnar Thomsen
Tushar Teredesai
Jeremy Utley
Zack Winkles
Christian Wurst
Igor Živković
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
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.
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.
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 Makefile
s e código C; porém, se em dúvida,
[então] inicie a partir de uma árvore limpa.
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
.
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
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
Geralmente, para se averiguar se o arquivo transferido está
completo, muitos(as) mantenedores(as) de pacote também
distribuem somas de verificação md5 dos arquivos. Para
averiguar a soma de verificação md5 dos arquivos
transferidos, transfira ambos, o arquivo e o arquivo
correspondente de soma de verificação md5, para o mesmo
diretório (preferencialmente a partir de locais diferentes
online) e (assumindo que arquivo.md5sum
seja o arquivo de soma de
verificação md5 transferido) execute o seguinte comando:
md5sum -c arquivo.md5sum
Se existirem quaisquer erros, [então] eles serão informados.
Observe que o livro BLFS inclui somas de verificação md5 para
todos os arquivos de fonte também. Para usar as somas de
verificação md5 fornecidas pelo BLFS, você pode criar um
arquivo.md5sum
(coloque os
dados da soma de verificação md5 e o nome exato do arquivo
transferido na mesma linha de um arquivo, separados por
espaço em branco) e executar o comando mostrado acima.
Alternativamente, simplesmente execute o comando mostrado
abaixo e compare a saída gerada para os dados da soma de
verificação md5 mostrada no livro BLFS.
md5sum <nome_do_arquivo_transferido>
MD5 não é seguro criptograficamente, de forma que as somas de verificação md5 são fornecidas somente para se detectar mudanças não maliciosas para o conteúdo do arquivo. Por exemplo, um erro ou truncamento introduzido durante a transferência de rede de comunicação; ou uma atualização “furtiva” para o pacote oriunda do(a) desenvolvedor(a) (atualizando o conteúdo de um tarball liberado em vez de fazer um lançamento novo adequadamente).
Não existe maneira “100%” segura de garantir a genuinidade dos arquivos do fonte. Assumindo que o(a) desenvolvedor(a) esteja gerenciando corretamente o sítio da web dele(a) (a chave privada não vazou e o domínio não esteja sequestrado); e que as âncoras de confiança tenham sido configuradas corretamente usando make-ca-1.15 no sistema BLFS; nós podemos razoavelmente confiar nos URLs de transferência para o sítio oficial da web do(a) desenvolvedor(a) com protocolo https. Observe que o próprio livro BLFS está publicado em um sítio da web com https, de forma que você já deveria ter alguma confiança no protocolo https ou você não confiaria no conteúdo do livro.
Se o pacote for transferido a partir de um local não oficial (por exemplo, um espelho local), [então] as somas de verificação geradas por algoritmos de resumo criptograficamente seguros (por exemplo, SHA256) podem ser usadas para averiguar a genuinidade do pacote. Transfira o arquivo da soma de verificação a partir do sítio da web oficial do(a) desenvolvedor(a) (ou algum lugar que você possa confiar) e compare a soma de verificação do pacote oriunda do local não oficial com ele. Por exemplo, a soma de verificação SHA256 pode ser verificada com o comando:
Se a soma de verificação e o pacote forem transferidos a partir do mesmo local não confiável, [então] você não ganharia melhoramento de segurança averiguando o pacote com a soma de verificação. O(A) atacante pode falsear a soma de verificação assim como comprometer o próprio pacote.
sha256sum -c arquivo
.sha256sum
Se o GnuPG-2.4.7 estiver instalado, [então] você também pode averiguar a genuinidade do pacote com uma assinatura GPG. Importe a chave pública GPG do(a) desenvolvedor(a) com:
gpg --recv-key ID_da_chave
ID_da_chave
deveria
ser substituído pelo ID da chave oriundo de algum lugar que
você possa confiar
(por exemplo, copie-o a partir do sítio da web oficial do(a)
desenvolvedor(a) usando https). Agora, você consegue
averiguar a assinatura com:
gpg --recv-keyarquivo
.sigarquivo
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.
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.
Para muitos sistemas modernos com múltiplos processadores (ou núcleos) o tempo de compilação para um pacote pode ser reduzido realizando-se um "make paralelo", ou configurando-se uma variável de ambiente, ou dizendo-se ao aplicativo make para simultaneamente executar múltiplas tarefas.
Por exemplo, uma CPU Intel Core i9-13900K contém 8 núcleos de desempenho (P) e 16 núcleos de eficiência (E), e os núcleos P suportam SMT (Simultaneous MultiThreading, também conhecido como “Hyper-Threading”), portanto cada núcleo P pode executar duas camadas simultaneamente e o núcleo Linux tratará cada núcleo P como dois núcleos lógicos. Como resultado, existem 32 núcleos lógicos no total. Para utilizar todos esses núcleos lógicos executando make, nós podemos configurar uma variável de ambiente para dizer ao make para executar 32 tarefas simultaneamente:
export MAKEFLAGS='-j32'
ou apenas construir com:
make -j32
Se você tiver aplicado o sed opcional quando da construção do ninja no LFS, [então] você pode usar:
export NINJAJOBS=32
quando um pacote usar o ninja; ou apenas:
ninja -j32
Se você não tiver certeza acerca do número de núcleos lógicos, execute o comando nproc.
Para make, o número padrão de tarefas é 1. Mas para ninja, o número padrão de tarefas é N + 2, se o número de núcleos lógicos N for maior que 2; ou N + 1 se N for 1 ou 2. A razão para usar um número de tarefas ligeiramente maior que o número de núcleos lógicos é a de manter todos os processadores lógicos ocupados, mesmo se algumas tarefas estiverem realizando operações de E/S.
Observe que as chaves -j
somente
limitam as tarefas paralelas iniciadas por make ou ninja, mas cada tarefa
possivelmente ainda gere os próprios processos ou camadas
dela. Por exemplo, alguns testes de pacotes podem gerar
várias camadas para testar propriedades de segurança de
camadas. Não existe uma maneira genérica de o sistema de
construção saber o número de processos ou camadas gerados por
uma tarefa. Portanto, geralmente nós não deveríamos
considerar o valor passado com -j
como um limite rígido do número de núcleos lógicos a serem
usados. Leia-se
“Use o Grupo de Controle do Linux para Limitar o Uso de
Recursos” se você quiser configurar tal limite tão
rígido.
Geralmente o número de processos não deveria exceder muito o
número de elementos de processamento suportados pela CPU.
Para listar os processadores em teu sistema, emita:
grep processor
/proc/cpuinfo
.
Em alguns casos, usar múltiplos processos possivelmente resulte em uma condição de 'corrida' onde o sucesso da construção depende da ordem dos comandos executados pelo aplicativo make. Por exemplo, se um executável precisar do Arquivo A e do Arquivo B, [então] tentar-se vincular o aplicativo antes que um dos componentes dependentes esteja disponível resultará em uma falha. Essa condição geralmente surge, pois o(a) desenvolvedor(a) do aplicativo não designou adequadamente todos os pré requisitos necessários para realizar uma etapa no Makefile.
Se isso ocorrer, a melhor maneira de se proceder é a de se
voltar para uma construção de processador único. Adicionar
-j1
a um comando make substituirá
a configuração semelhante na variável de ambiente
MAKEFLAGS
.
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.
Às vezes queremos limitar o uso de recursos quando construímos um pacote. Por exemplo, quando temos 8 núcleos lógicos, podemos querer usar somente 6 núcleos para construir o pacote e reservar outros 2 núcleos para reproduzir um filme. O núcleo Linux fornece um recurso chamado grupos de controle (cgroup) para tal necessidade.
Habilite o grupo de controle na configuração do núcleo, em seguida reconstrua o núcleo e reinicialize se necessário:
General setup ---> [*] Control Group support ---> [CGROUPS] [*] Memory controller [MEMCG] [*] Cpuset controller [CPUSETS]
Certifique-se de que Systemd-257.3 e Shadow-4.17.3 tenham sido
reconstruídos com suporte Linux-PAM-1.7.0 (se você estiver
interagindo por meio de SSH ou sessão gráfica, certifique-se
também de que o servidor OpenSSH-9.9p2 ou o gerenciador de
área de trabalho tenha sido construído com Linux-PAM-1.7.0). Como o(a) usuário(a)
root
, crie um arquivo de
configuração para permitir o controle de recursos sem o
privilégio de root
e instrua
systemd a
recarregar a configuração:
mkdir -pv /etc/systemd/system/user@.service.d &&
cat > /etc/systemd/system/user@.service.d/delegate.conf << EOF &&
[Service]
Delegate=memory cpuset
EOF
systemctl daemon-reload
Em seguida, deslogue-se e logue-se novamente. Agora, para executar make -j5 com os primeiros 4 núcleos lógicos e 8 GB de memória do sistema, emita:
systemctl --user start dbus && systemd-run --user --pty --pipe --wait -G -d \ -p MemoryHigh=8G \ -p AllowedCPUs=0-3 \ make -j5
Com MemoryHigh=8G
, um limite
flexível de uso de memória está configurado. Se os processos
no cgroup (make
e todos os descendentes dele) usarem mais que 8 GB de memória
do sistema no total, o núcleo irá desacelerar os processos e
tentará recuperar a memória do sistema proveniente deles. Mas
eles ainda podem usar mais que 8 GB de memória do sistema. Se
você quiser definir um limite rígido, substitua MemoryHigh
por MemoryMax
.
Mas fazer isso causará a interrupção dos processos se 8 GB
não forem suficientes para eles.
AllowedCPUs=0-3
faz com
que o núcleo execute somente os processos no cgroup nos
núcleos lógicos com números 0, 1, 2 ou 3. Você possivelmente
precise ajustar essa configuração baseada no mapeamento entre
os núcleos lógicos e os núcleos físicos. Por exemplo, com uma
CPU Intel Core i9-13900K, os núcleos lógicos 0, 2, 4, ..., 14
são mapeados para as primeiras camadas dos oito núcleos P
físicos; os núcleos lógicos 1, 3, 5, ..., 15 são mapeados
para as segundas camadas dos núcleos P físicos; e os núcleos
lógicos 16, 17, ..., 31 são mapeados para os 16 núcleos E
físicos. Portanto, se quisermos usar quatro camadas de quatro
núcleos P, precisamos especificar 0,2,4,6
em vez de 0-3
. Observe que os outros modelos de CPU
podem usar um esquema de mapeamento diferente. Se você não
tiver certeza acerca do mapeamento entre os núcleos lógicos e
os núcleos físicos, execute o comando lscpu --extended que gerará
IDs de núcleo lógico na coluna CPU
e IDs de núcleo físico na coluna
CORE
.
Quando o comando nproc ou ninja executa em um cgroup,
ele usará o número de núcleos lógicos atribuídos para o
cgroup como a “contagem de núcleos lógicos do
sistema”. Por exemplo, em um cgroup com núcleos
lógicos 0-3 atribuídos, nproc imprimirá
4
e ninja executará 6 (4 + 2)
tarefas simultaneamente se nenhuma configuração -j
for fornecida explicitamente.
Leiam-se as páginas de manual systemd-run(1) e systemd.resource-control(5) para a explicação detalhada dos parâmetros no comando.
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 Makefile
s;
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.
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.
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.
Para a finalidade de automatizar a construção de alguns pacotes, especialmente aqueles que exigem que você leia um acordo de licença em uma página por vez, exige-se usar um método que evite ter que pressionar uma tecla para exibir cada página. Redirecionar a saída gerada para um arquivo pode ser usado nessas instâncias para auxiliar com a automação. A seção anterior nesta página tocou na criação de arquivos de registro da saída gerada da construção. O método de redirecionamento mostrado lá usou o comando tee para redirecionar a saída gerada para um arquivo enquanto também exibia a saída gerada na tela. Aqui, a saída gerada somente será enviada para um arquivo.
Novamente, a maneira mais fácil para demonstrar a técnica é de mostrar um exemplo. Primeiro, emita o comando:
ls -l /usr/bin | less
Certamente, você será exigido(a) a visualizar a saída gerada
uma página por vez, pois o filtro less foi usado. Agora tente
o mesmo comando, porém, dessa vez, redirecione a saída gerada
para um arquivo. O arquivo especial /dev/null
pode ser usado em vez do nome de
arquivo mostrado, porém você não terá arquivo de registro
para examinar:
ls -l /usr/bin | less > redirect_test.log 2>&1
Perceba que, dessa vez, o comando imediatamente retornou ao prompt do shell sem ter que paginar ao longo da saída gerada. Você agora possivelmente remova o arquivo de registro.
O último exemplo usará o comando yes em combinação com o
redirecionamento da saída gerada para desviar-se de ter que
paginar ao longo da saída gerada e, então, fornecerá um
y para uma
solicitação. Essa técnica poderia ser usada em instâncias
quando, de outra maneira, você teria que paginar ao longo da
saída gerada de um arquivo (como um acordo de licença) e,
então, responder à pergunta de você aceita o acima?
. Para esse
exemplo, outro conjunto curto de comandos sequenciais do
Bash é exigido:
cat > blfs-yes-test2 << "EOF"
#!/bin/bash
ls -l /usr/bin | less
echo -n -e "\n\nVocê curtiu ler isso? (y,n) "
read A_STRING
if test "$A_STRING" = "y"; then A_STRING="Você informou a tecla 'y'"
else A_STRING="Você NÃO informou a tecla 'y'"
fi
echo -e "\n\n$A_STRING\n\n"
EOF
chmod 755 blfs-yes-test2
Esse script pode ser usado para simular um aplicativo que exige que você leia um acordo de licença, então responda apropriadamente que aceita o acordo antes do aplicativo instalar qualquer coisa. Primeiro, execute o script sem quaisquer técnicas de automação emitindo ./blfs-yes-test2.
Agora emita o seguinte comando que usa duas técnicas de automação, tornando-o adequado para uso em um script automatizado de construção:
yes | ./blfs-yes-test2 > blfs-yes-test2.log 2>&1
Se desejado, emita tail blfs-yes-test2.log para ver o final da saída gerada paginada e a confirmação de que y foi passada ao longo para o script. Tão logo satisfeito que ele funciona como deveria, você possivelmente remova o script e o arquivo de registro.
Finalmente, tenha em mente que existem muitas maneiras de automatizar e (ou) roteirizar os comandos de construção. Não existe maneira única “correta” para fazê-lo. Sua imaginação é o único limite.
Para cada pacote descrito, o BLFS lista as dependências conhecidas. Essas são listadas sob vários títulos, cujo significado é como segue:
Exigida significa que o pacote alvo não pode ser construído corretamente sem que a dependência tenha sido instalada primeiro, exceto se a dependência for considerada de “tempo de execução”, o que significa que o pacote alvo pode ser construído, mas não pode funcionar sem ela.
Observe que um pacote alvo pode começar a “funcionar” de muitas maneiras sutis: um arquivo de configuração instalado pode fazer o sistema init, o processo de segundo plano cron ou o processo de segundo plano de barramento executar um aplicativo automaticamente; outro pacote usando o pacote alvo como dependência pode executar um aplicativo oriundo do pacote alvo no sistema de construção; e as seções de configuração no livro BLFS também podem executar um aplicativo a partir de um pacote recém-instalado. Portanto, se estiver instalando o pacote alvo sem uma dependência Exigida (tempo de execução) instalada, você deveria instalar a dependência o mais rápido possível depois da instalação do pacote alvo.
Recomendada significa que o BLFS sugere fortemente que esse pacote seja instalado primeiro (exceto se for dito ser “tempo de execução,” veja-se abaixo) para uma construção limpa e sem problemas, que não terá problemas nem durante o processo de construção nem em tempo de execução. As instruções no livro pressupõem que esses pacotes estejam instalados. Em muitos casos, se uma dependência recomendada (não apenas “tempo de execução”) não estiver instalada, o pacote construído pode carecer algumas funcionalidades importantes (por exemplo, um reprodutor de vídeo pode reproduzir somente áudio). Às vezes, é necessário modificar as instruções do livro para desabilitar essas funcionalidades importantes. Em outros casos, o sistema de construção do pacote pode construir uma cópia da dependência (frequentemente desatualizada e às vezes com vulnerabilidades conhecidas de segurança) enviada na árvore do fonte ou pode ser baixada da a partir da Internet durante o processo de construção. Isso aumenta o tempo de construção e o uso do disco. Isso poderia causar outros problemas. Se uma dependência recomendada for “tempo de execução,” isso significa que o BLFS sugere fortemente que essa dependência seja instalada antes de usar o pacote, para obter funcionalidade completa.
Opcional significa que esse pacote pode ser instalado para funcionalidade adicional. Frequentemente, o BLFS descreverá a dependência para explicar a funcionalidade adicional que resultará. Algumas dependências opcionais são automaticamente selecionadas pelo pacote alvo se a dependência estiver instalada, enquanto outras também precisam de opções de configuração adicionais para serem habilitadas quando o pacote alvo for construído. Essas opções adicionais frequentemente estão documentadas no livro BLFS. Se uma dependência opcional for dita como “tempo de execução”, significa que você pode instalar a dependência depois de instalar o pacote alvo para suportar alguns recursos opcionais do pacote alvo se precisar desses recursos.
Uma dependência opcional pode estar fora do BLFS. Se você precisar de uma tal dependência opcional externa para alguns recursos necessários, leia Indo Além do BLFS para as dicas gerais acerca de instalar um pacote fora do BLFS.
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).
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.
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:
Os métodos a seguir que usam o recurso de um sistema de construção ("autotools", "meson" ou "cmake") não despojarão bibliotecas estáticas, se alguma estiver instalada. Felizmente não existem muitas bibliotecas estáticas no BLFS, e uma biblioteca estática sempre pode ser despojada com segurança executando strip --strip-unneeded nela manualmente.
Os pacotes que usam "Autotools" geralmente tem um alvo
install-strip
nos arquivos Makefile
gerados deles. Portanto, instalar executáveis
despojados é apenas uma questão de usar make install-strip em
vez de make
install.
Os pacotes que usam o sistema de construção do meson
conseguem aceitar -D
strip=true
ao executar meson. Se tiver
esquecido de adicionar essa opção executando o
meson,
você também consegue executar meson install --strip
em vez de ninja
install.
cmake
gera alvos install/strip
para ambos
os geradores Unix
Makefiles
e Ninja
(o padrão é
Unix Makefiles
no Linux). Portanto, basta executar make install/strip ou
ninja
install/strip em vez das contrapartes
install.
A remoção (ou não geração) de símbolos de depuração
também consegue ser obtida removendo-se as opções
-g<alguma_coisa>
em
chamadas "C/C++". Como fazer isso é muito específico
para cada pacote. E não remove entradas desnecessárias
da tabela de símbolos. Portanto, não será explicado em
detalhes aqui. Veja-se também abaixo os parágrafos
acerca de otimização.
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.
Existem, agora, três sistemas de construção em uso comum para
converter código fonte C ou C++ em aplicativos ou bibliotecas
compilados e os detalhes deles (particularmente, descobrir
acerca de opções disponíveis e os valores padrão delas)
diferem. Possivelmente seja mais fácil entender os problemas
causados por algumas escolhas (tipicamente, execução lenta;
ou uso inesperado de, ou omissão de, otimizações)
iniciando-se com as variáveis de ambiente CFLAGS
, CXXFLAGS
e
LDFLAGS
. Também existem alguns
aplicativos que usam Rust.
A maioria dos(as) construtores(as) do LFS e do BLFS
provavelmente está ciente dos básicos de CFLAGS
e CXXFLAGS
para alterar como um aplicativo é compilado. Tipicamente,
alguma forma de otimização é usada pelos(as)
desenvolvedores(as) de aplicativos (-O2
ou -O3
),
ocasionalmente com a criação de símbolos de depuração
(-g
), como padrões.
Se existirem sinalizadores contraditórios (por exemplo,
múltiplos valores -O
), o
último valor será
usado. Ocasionalmente, isso significa que os sinalizadores
especificados em variáveis de ambiente serão escolhidos antes
dos valores codificados rigidamente no Makefile, e, portanto,
ignorados. Por exemplo, onde um(a) usuário(a) especificar
-O2
e isso for seguido por
-O3
, a construção usará
-O3
.
Existem várias outras coisas que podem ser passadas em CFLAGS
ou em CXXFLAGS, tais como permitir-se usar as extensões de
conjunto de instruções disponíveis com uma microarquitetura
específica (por exemplo, -march=amdfam10
ou -march=native
) ajustar o código gerado para
uma microarquitetura específica (por exemplo, -mtune=tigerlake
ou -mtune=native
; se -mtune=
não for usada, a microarquitetura
oriunda da configuração -march=
será usada) ou especificar-se um padrão específico para C ou
C++ (-std=c++17
, por exemplo).
Porém, uma coisa que agora veio à tona é que os(as)
programadores(as) poderiam incluir asserções de depuração no
código deles(as), esperando que sejam desabilitadas em
lançamentos usando-se -D NDEBUG
.
Especificamente, se o Mesa-24.3.4 for construído com essas
asserções habilitadas, algumas atividades, tais como o
carregamento de níveis dos jogos, podem tomar tempos
extremamente longos, mesmo em placas de vídeo de alta
qualidade.
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.
O CMake funciona de uma maneira muito diferente e ele tem
duas estruturas de retaguarda que conseguem ser usadas no
BLFS: make e
ninja. A
estrutura de retaguarda padrão é o make, porém o ninja pode
ser mais rápido sobre pacotes grandes com múltiplos
processadores. Para usar o ninja, especifique -G Ninja
no comando cmake. Entretanto,
existem alguns pacotes que criam erros fatais nos arquivos
ninja deles, porém constroem com sucesso usando o padrão dos
Makefiles do Unix.
A parte mais difícil do usar-se o CMake é saber quais opções você poderia desejar especificar. A única maneira de se obter uma lista do que o pacote conhece é a de executar cmake -LAH e olhar para a saída gerada para esta configuração padrão.
Talvez a coisa mais importante acerca do CMake é que ele tem
uma variedade de valores CMAKE_BUILD_TYPE e esses afetam os
sinalizadores. O padrão é o de que isso não seja configurado
e nenhum sinalizador seja gerado. Quaisquer CFLAGS
ou CXXFLAGS
no ambiente serão usadas. Se o(a) programador(a) tiver
codificado quaisquer asserções de depuração, essas estarão
habilitadas, a menos que -D NDEBUG seja usado. Os seguintes
valores CMAKE_BUILD_TYPE gerarão os sinalizadores mostrados e
esses virão depois de
quaisquer sinalizadores no ambiente e, portanto, terão
precedência.
Valor | Sinalizadores |
---|---|
Debug |
-g
|
Release |
-O3 -D NDEBUG
|
RelWithDebInfo |
-O2 -g -D NDEBUG
|
MinSizeRel |
-Os -D NDEBUG
|
O "CMake" tenta produzir construções silenciosas. Para ver os detalhes dos comandos que estão sendo executados, use make VERBOSE=1 ou ninja -v.
Por padrão, o "CMake" trata a instalação de arquivos
diferentemente dos outros sistemas de construção: se um
arquivo já existir e não for mais recente que um arquivo que
o sobrescreveria, então o arquivo não será instalado. Isso
possivelmente seja um problema se um(a) usuário(a) quiser
registrar qual arquivo pertence a um pacote, seja usando
LD_PRELOAD
, ou listando arquivos
mais recentes que um carimbo de tempo. O padrão pode ser
mudado definindo-se a variável CMAKE_INSTALL_ALWAYS
como um ("1") no
ambiente, por exemplo,
via export.
O Meson tem algumas semelhanças com o CMake, porém muitas
diferenças. Para obter os detalhes das definições que você
possivelmente queira mudar, você pode olhar para o
meson_options.txt
que
normalmente está no diretório de nível de topo.
Se você já configurou o pacote executando o meson e, agora, deseja mudar uma ou mais configurações, [então] você ou pode remover o diretório de construção, recriá-lo e usar as opções alteradas; ou, dentro do diretório de construção, executar meson configure, por exemplo, para configurar uma opção:
meson configure -D <some_option>=true
Se você fizer isso, [então] o arquivo meson-private/cmd_line.txt
mostrará os
últimos comandos que
foram usados.
O Meson fornece os seguintes valores de tipo de construção e os sinalizadores que eles habilitam vem depois de quaisquer sinalizadores fornecidos no ambiente e, portanto, tem precedência.
simples: nenhum sinalizador adicionado. Isso é para
os(as) distribuidores(as) fornecerem os próprios
CFLAGS
, CXXFLAGS
e LDFLAGS
deles(as). Não existe razão
óbvia para usar isso no BLFS.
depuração: -g
- isso é o
padrão, se nada for especificado, seja no meson.build
, seja na linha de
comando. Entretanto, resulta em binários grandes e
lentos, de forma que nós deveríamos substitui-lo no
BLFS.
depuração otimizada: -O2 -g
: isso é o padrão, especificado no meson.build
, de alguns pacotes.
lançamento: -O3
(ocasionalmente um pacote forçará -O2
aqui) - esse é o tipo de construção
que usamos para a maioria dos pacotes com sistema de
construção Meson no BLFS.
O sinalizador -D NDEBUG
está
implícito pelo tipo de construção de lançamento para alguns
pacotes (por exemplo Mesa-24.3.4). Também pode ser fornecido
explicitamente passando-se -D
b_ndebug=true
.
Para ver os detalhes dos comandos que estão sendo executados em um pacote usando o meson, use ninja -v.
A maioria dos aplicativos rustc lançados é fornecida como
engradado (tarballs de fonte), que consultarão um servidor
para verificar as versões atuais de dependências e, então, as
baixarão conforme necessário. Esses pacotes são construídos
usando-se cargo
--release. Na teoria, você consegue manipular
a RUSTFLAGS para mudar o nível de otimização (padrão para
--release
é 3, isto é,
-Copt-level=3
, semelhante a
-03
) ou para forçá-lo a construir
para a máquina na qual está sendo compilado, usando
-Ctarget-cpu=native
; porém, na
prática, isso parece não fazer uma diferença significante.
Se você estiver compilando um programa Rust independente
(como um arquivo .rs
desempacotado) executando rustc diretamente, você
deveria especificar -O
(a
abreviatura de -Copt-level=2
) ou
-Copt-level=3
, caso contrário ele
fará uma compilação não otimizada e executará muito mais lento. Se estiver
compilando o programa para depurá-lo, substitua as opções
-O
ou -Copt-level=
por -g
para produzir um programa não otimizado
com informações de depuração.
Semelhante ao ninja, por padrão
cargo usa todos
os núcleos lógicos. Isso frequentemente pode ser contornado,
seja exportando-se CARGO_BUILD_JOBS=
seja
passando-se <N>
--jobs
para
cargo. Para
compilar o próprio rustc, especificar-se <N>
--jobs
para
invocações do x.py (juntamente com a
variável de ambiente <N>
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.
Muitas pessoas preferirão otimizar compilações como acharem
melhor, fornecendo CFLAGS
ou
CXXFLAGS
. Para uma introdução às
opções disponíveis com o gcc e com o g++, veja-se
https://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/Optimize-Options.html.
O mesmo conteúdo também pode ser encontrado em info gcc.
Alguns pacotes são padronizados como -O2
-g
, outros como -O3 -g
, e
se CFLAGS
ou CXXFLAGS
forem fornecidas, elas podem ser
adicionadas aos padrões do pacote, substituir os padrões do
pacote ou até mesmo serem ignoradas. Existem detalhes acerca
de alguns pacotes de área de trabalho que estavam mais
atualizados em abril de 2019 em https://www.linuxfromscratch.org/~ken/tuning/
- em particular, README.txt
,
tuning-1-packages-and-notes.txt
e tuning-notes-2B.txt
. A coisa
específica a lembrar é que se quiser experimentar alguns dos
sinalizadores mais interessantes, você possivelmente precise
forçar construções detalhadas para confirmar o que está sendo
usado.
Claramente, se estiver otimizando teu próprio aplicativo,
você pode gastar tempo para perfilá-lo e, talvez, recodificar
algo dele, se ele estiver lento demais. Porém, para construir
um sistema inteiro, essa abordagem é impraticável. No geral,
-O3
geralmente produz aplicativos
mais rápidos que -O2
.
Especificar-se -march=native
também é benéfico, porém significa que você não pode mover os
binários para uma máquina incompatível - isso também pode se
aplicar a máquinas mais novas, não apenas às máquinas mais
antigas. Por exemplo, os aplicativos compilados para
amdfam10
executam em Phenoms
antigos; Kaveris; e Ryzens; porém, os aplicativos compilados
para um Kaveri não executarão em um Ryzen, pois certos
códigos de operação não estão presentes. Similarmente, se
você construir para um Haswell, nem tudo executará em um
SandyBridge.
Atente-se que o nome de uma configuração -march
nem sempre corresponde à linha de
base da microarquitetura com o mesmo nome. Por exemplo, os
processadores Intel Celeron baseados em Skylake não
suportam AVX, mas -march=skylake
assume AVX e até mesmo AVX2.
Quando uma biblioteca compartilhada é construída pelo GCC, um
recurso chamado “interposição semântica” é habilitado
por padrão. Quando a biblioteca compartilhada se refere a um
nome de símbolo com ligação externa e visibilidade padrão, se
o símbolo existir tanto na biblioteca compartilhada quanto no
executável principal, a interposição semântica garante que o
símbolo no executável principal sempre seja usado. Esse
recurso foi inventado na tentativa de tornar o comportamento
de vincular uma biblioteca compartilhada e vincular uma
biblioteca estática o mais semelhante possível. Hoje, somente
um pequeno número de pacotes ainda depende da interposição
semântica, mas o recurso ainda está ativado por padrão do
GCC, fazendo com que muitas otimizações sejam desabilitadas
para bibliotecas compartilhadas porque entram em conflito com
a interposição semântica. A opção -fno-semantic-interposition
pode ser passada
para gcc ou
g++ para
desabilitar a interposição semântica e habilitar mais
otimizações para bibliotecas compartilhadas. Essa opção é
usada como padrão de alguns pacotes (por exemplo Python-3.13.2) e também é o padrão do
Clang.
Existem também várias outras opções que algumas pessoas alegam que são benéficas. Na pior das hipóteses, você consegue recompilar e testar e, então, descobrir que, em seu uso, as opções não fornecem um benefício.
Se construir módulos Perl ou Python, em geral as CFLAGS
e CXXFLAGS
usadas são aquelas que foram usadas por esses pacotes
“ancestrais”.
Para LDFLAGS
, três opções podem
ser usadas para otimização. Elas são bastante seguras de usar
e o sistema de construção de alguns pacotes usa algumas
dessas opções como padrão.
Com -Wl,-O1
, o vinculador
otimizará a tabela de resumo para acelerar a vinculação
dinâmica. Observe que -Wl,-O1
não
tem nenhuma relação com o sinalizador de otimização do
compilador -O1
.
Com -Wl,--as-needed
, o vinculador
desconsiderará opções -l
desnecessárias da
linha de comando, ou seja, a biblioteca compartilhada
foo
lib
só será vinculada
se um símbolo em foo
lib
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.
foo
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.
Mesmo em sistemas de área de trabalho, existe ainda um monte de vulnerabilidades exploráveis. Para muitas dessas, o ataque vem via javascript em um navegador. Frequentemente, uma série de vulnerabilidades é usada para ganhar acesso a dados (ou, às vezes, para pwn, isto é, dominar, a máquina e instalar rootkits). A maioria das distribuições comerciais aplicará várias medidas de fortalecimento.
No passado, existia o LFS Reforçado, onde o gcc (uma versão
muito mais antiga) era forçado a usar o reforçamento (com
opções para desativar parte dele na base do por pacote). Os
livros atuais do LFS e BLFS estão levando adiante uma parte
do espírito dele ao habilitar PIE (-fPIE
-pie
) e SSP (-fstack-protector-strong
) como padrões para
GCC e clang. E o lincador (ld) também habilitou
-Wl,-z,relro
, o que torna uma
parte da Global Offset Table (GOT) imutável, por padrão desde
Binutils 2.27. O que está sendo coberto aqui é diferente -
primeiro você tem que ter certeza de que o pacote está
realmente usando teus sinalizadores adicionados e não os
substituindo.
Para opções de reforço que são razoavelmente baratas, existe
alguma discussão no link "ajuste" acima (ocasionalmente, uma
ou mais dessas opções podem ser inadequadas para um pacote).
Essas opções são -D
_FORTIFY_SOURCE=2
(ou -D
_FORTIFY_SOURCE=3
que é mais seguro, mas com maior
sobrecarga de desempenho) e (para C++) -D _GLIBCXX_ASSERTIONS
. Nas máquinas
modernas, isso deveria ter somente um pequeno impacto na
rapidez com que as coisas executam e, muitas vezes, não serão
perceptíveis.
As principais distribuições usam muito mais, como:
-Wl,-z,now
: desabilita
vinculação preguiçosa para aprimorar -Wl,-z,relro
, de forma que todo o GOT possa se tornar
imutável.
-fstack-clash-protection
:
impede o(a) atacante de usar um deslocamento grande o
suficiente e não verificado adequadamente para pular a
página de proteção de pilha colocada pelo núcleo e o
canário de pilha colocado por -fstack-protector=strong
, e modificar a
pilha a partir de um endereço de pilha, ou vice-versa.
-ftrivial-auto-var-init=zero
:
inicializa algumas variáveis preenchendo zero bytes se
elas não forem inicializadas por outros meios.
-fcf-protection=full
:
utiliza a tecnologia CET da Intel e da AMD para limitar
os endereços alvo das instruções de transferência de
fluxo de controle. Para torná-lo realmente eficaz para
um pacote, todos os pacotes que fornecem uma biblioteca
compartilhada para o pacote usar precisam ser
construídos com essa opção, bem como o próprio pacote,
a Glibc precisa ser configurada com a opção
--enable-cet
habilitada, e
o sistema precisa executar no Intel Tiger Lake ou mais
recente, ou no AMD Zen 3 ou mais recente. Se o critério
não for atendido, o programa compilado com essa opção
ainda executará, mas não realmente protegido pelo CET.
No GCC 14, a opção -fhardened
é
uma abreviação para habilitar todas as opções de reforçamento
mencionadas acima. Ela configura -D
_FORTIFY_SOURCE=3
em vez de -D
_FORTIFY_SOURCE=2
.
Você também pode encontrar o assim chamado “retpoline de espaço de
usuário(a)” (-mindirect-branch=thunk
etc.), que é o
equivalente das mitigações de espectro aplicadas para o
núcleo Linux no final de 2018. As mitigações do núcleo
causaram muitas reclamações acerca da perda de desempenho. Se
tiver um servidor de produção, você pode desejar considerar
testar isso, junto com as outras opções disponíveis, para ver
se o desempenho ainda é suficiente.
Embora o gcc tenha muitas opções de fortalecimento, os pontos fortes do clang/LLVM estão em outro lugar. Algumas opções que o gcc fornece são ditas serem menos efetivas no clang/LLVM.
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.
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.
O pacote "Systemd Units" do BLFS contém os arquivos de unidade do systemd que são usados ao longo do livro.
Informação do Pacote
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.
É aconselhável examinar cuidadosamente cada unidade do systemd antes da instalação para determinar se os arquivos instalados atendem às suas necessidades.
No LFS e no BLFS, muitos pacotes usam uma cópia da libtool enviada internamente para construir em uma variedade de plataformas Unix. Isso inclui plataformas como AIX, Solaris, IRIX, HP-UX e Cygwin, bem como Linux. As origens dessa ferramenta são bastante antigas. Ela era destinada gerenciar bibliotecas em sistemas com capacidades menos avançadas que um sistema Linux moderno.
Em um sistema Linux, os arquivos específicos da "libtool" geralmente são desnecessários. Normalmente as bibliotecas são especificadas no processo de construção durante a fase de ligação. Como um sistema Linux usa o Executable and Linkable Format (ELF) para executáveis e bibliotecas dinâmicas, as informações necessárias para concluir a tarefa são embutidas nos arquivos. Tanto o vinculador quanto o carregador de aplicativos podem consultar os arquivos apropriados e vincular ou executar o aplicativo adequadamente.
Bibliotecas estáticas raramente são usadas no LFS e no BLFS. E hoje em dia a maioria dos pacotes armazena as informações necessárias para vincular a uma biblioteca estática em um arquivo ".pc", em vez de depender da "libtool". Um comando pkg-config --static --libs gerará os sinalizadores suficientes para o vinculador para vincular-se a uma biblioteca estática sem qualquer mágica da "libtool".
O problema é que a "libtool" geralmente cria um ou mais arquivos de texto para bibliotecas de pacotes, chamados arquivamentos "libtool". Esses pequenos arquivos tem uma extensão ".la" e contém informações semelhantes àquelas embutidas nas bibliotecas ou nos arquivos "pkg-config". Ao construir um pacote que usa "libtool", o processo procura automaticamente por esses arquivos. Às vezes, um arquivo ".la" pode conter o nome ou caminho de uma biblioteca estática usada durante a construção, mas não instalada, então o processo de construção será interrompido porque o arquivo ".la" se refere a algo inexistente no sistema. Da mesma forma, se um pacote for atualizado e não mais usar o arquivo ".la", então o processo de construção poderá quebrar com os arquivos ".la" antigos.
A solução é a de remover os arquivos .la. No entanto, existe uma pegadinha. Alguns pacotes, tais como o ImageMagick-7.1.1-43, usam uma função do libtool, lt_dlopen, para carregar bibliotecas conforme necessárias durante a execução e resolver as dependências deles em tempo de execução. Nesse caso, os arquivos .la deveriam permanecer.
O script abaixo remove todos os arquivos .la desnecessários e os salva em um diretório, /var/local/la-files, por padrão, não no caminho normal de biblioteca. Ele também procura em todos os arquivos pkg-config (.pc) por referências embutidas a arquivos .la e os corrige para serem referências convencionais de biblioteca necessárias quando uma aplicação ou biblioteca for construída. Ele pode ser executado conforme necessário para limpar os diretórios que possivelmente estejam causando problemas.
cat > /usr/sbin/remove-la-files.sh << "EOF"
#!/bin/bash
# /usr/sbin/remove-la-files.sh
# Escrito para o Beyond Linux From Scratch
# por Bruce Dubbs <bdubbs@linuxfromscratch.org>
# Certifique-se de que estamos executando com privilégios de "root"
if test "${EUID}" -ne 0; then
echo "Erro: $(basename ${0}) precisa ser executado como o(a) usuário(a) root! Saindo..."
exit 1
fi
# Certifique-se de que PKG_CONFIG_PATH esteja definido se descartado pelo "sudo"
source /etc/profile
OLD_LA_DIR=/var/local/la-files
mkdir -p $OLD_LA_DIR
# Pesquise somente diretórios em /opt, mas não links simbólicos para diretórios
OPTDIRS=$(find /opt -mindepth 1 -maxdepth 1 -type d)
# Mova todos os arquivos ".la" encontrados para um diretório fora do caminho
find /usr/lib $OPTDIRS -name "*.la" ! -path "/usr/lib/ImageMagick*" \
-exec mv -fv {} $OLD_LA_DIR \;
###############
# Corrija quaisquer arquivos ".pc" que possam ter referências ".la"
STD_PC_PATH='/usr/lib/pkgconfig
/usr/share/pkgconfig
/usr/local/lib/pkgconfig
/usr/local/share/pkgconfig'
# Para cada diretório que pode conter arquivos ".pc"
for d in $(echo $PKG_CONFIG_PATH | tr : ' ') $STD_PC_PATH; do
# Para cada arquivo "pc"
for pc in $d/*.pc ; do
if [ $pc == "$d/*.pc" ]; then continue; fi
# Verifique cada palavra em uma linha com uma referência ".la"
for word in $(grep '\.la' $pc); do
if $(echo $word | grep -q '.la$' ); then
mkdir -p $d/la-backup
cp -fv $pc $d/la-backup
basename=$(basename $word )
libref=$(echo $basename|sed -e 's/^lib/-l/' -e 's/\.la$//')
# Corrige o arquivo ".pc"
sed -i "s:$word:$libref:" $pc
fi
done
done
done
EOF
chmod +x /usr/sbin/remove-la-files.sh
As bibliotecas originais eram simplesmente um arquivamento de
rotinas a partir do qual as rotinas necessárias eram
extraídas e vinculadas ao aplicativo executável. Elas são
descritas como bibliotecas estáticas, com nomes no formato
libfoo.a
em sistemas
operacionais do tipo UNIX. Em alguns sistemas operacionais
antigos elas são o único tipo disponível.
Em quase todas as plataformas Linux também existem
bibliotecas “compartilhadas” (ou equivalentemente
“dinâmicas”) (com nomes no formato
libfoo.so
) – uma cópia da
biblioteca é carregada na memória virtual e compartilhada por
todos os aplicativos que chamam alguma das funções dela. Isso
é eficiente em termos de espaço.
No passado, aplicativos essenciais, como um "shell",
frequentemente eram vinculados estaticamente, de forma que
existisse alguma forma de sistema mínimo de recuperação,
mesmo se bibliotecas compartilhadas, como libc.so
, se tornassem danificadas (por
exemplo, movidas para lost+found
depois de fsck após um desligamento
incorreto). Hoje em dia, a maioria das pessoas usa uma
instalação alternativa de sistema ou um pendrive se precisar
se recuperar. Os sistemas de arquivos com registro em diário
também reduzem a probabilidade desse tipo de problema.
Dentro do livro, existem vários locais onde chaves de
configuração, tais como --disable-static
, são
empregadas; e outros locais onde a possibilidade de usar
versões de sistema das bibliotecas em vez das versões
inclusas em outro pacote é discutida. A razão principal para
isso é a de simplificar as atualizações de bibliotecas.
Se um pacote for vinculado a uma biblioteca dinâmica, [então]
a atualização para uma versão mais recente da biblioteca é
automática tão logo a biblioteca mais recente seja instalada
e o aplicativo for (re)iniciado (condicionada a que a versão
maior da biblioteca não seja modificada, por exemplo, indo de
libfoo.so.2.0
para libfoo.so.2.1
. Ir para libfoo.so.3
exigirá recompilação – o
ldd pode ser
usado para encontrar quais aplicativos usam a versão antiga).
Se um aplicativo for vinculado a uma biblioteca estática,
[então] o aplicativo sempre tem de ser recompilado. Se você
souber quais aplicativos estão vinculados a uma biblioteca
estática em particular, [então] isso é meramente um
aborrecimento. Entretanto, normalmente você não saberá quais aplicativos
recompilar.
Uma forma de identificar quando uma biblioteca estática é
usada é a de tratar disso ao final da instalação de cada
pacote. Escreva um script para achar todas as bibliotecas
estáticas em /usr/lib
ou onde
quer que você esteja instalando, e, ou mova-as para outro
diretório, de forma que não mais sejam encontradas pelo
vinculador; ou renomeie-as, de forma que libfoo.a
se torne, por exemplo.
libfoo.a.oculta
. A biblioteca
estática pode então ser restaurada temporariamente se for
efetivamente necessária, e o pacote que precisa dela pode ser
identificado. Isso não deveria ser feito às cegas, pois
muitas bibliotecas existem somente em uma versão estática.
Por exemplo, algumas bibliotecas originárias dos pacotes
glibc e gcc deveriam sempre estar presentes no
sistema (libc_nonshared.a, libg.a,
libpthread_nonshared.a, libssp_nonshared. a,
libsupc++.a
desde "glibc-2.36" e "gcc-12.2").
Se você usar essa abordagem, [então] você possivelmente descubra que mais pacotes que o que estava esperando usam uma biblioteca estática. Esse foi o caso com o nettle-2.4 na configuração padrão somente estática dele: Ele era exigido pelo GnuTLS-3.0.19, porém vinculado também em pacote(s) que usa(m) o GnuTLS, tais como o glib-networking-2.32.3.
Muitos pacotes colocam algumas das funções comuns deles em uma biblioteca estática que somente é usada pelos aplicativos dentro do pacote e, crucialmente, a biblioteca não é instalada como uma biblioteca independente. Essas bibliotecas internas não são um problema – se o pacote tiver de ser reconstruído para corrigir um defeito ou uma vulnerabilidade, [então] nada mais é vinculado a elas.
Quando o BLFS menciona bibliotecas de sistema, significa versões compartilhadas de bibliotecas. Alguns pacotes como Firefox-128.7.0 e ghostscript-10.04.0 agrupam muitas outras bibliotecas na árvore de construção deles. A versão que eles enviam geralmente é mais antiga que a versão usada no sistema, portanto possivelmente contenham defeitos – às vezes os(as) desenvolvedores(as) se dão ao trabalho de consertar defeitos nas bibliotecas incluídas deles(as), outras vezes não.
Ocasionalmente, decidir usar as bibliotecas do sistema é uma decisão fácil. Outras vezes, possivelmente exija que você altere a versão do sistema (por exemplo, para a libpng-1.6.46, se usada pelo Firefox-128.7.0). De vez em quando, um pacote envia uma biblioteca antiga e não mais pode se vincular à versão atual, porém pode se vincular a uma versão mais antiga. Nesse caso, o BLFS normalmente usará apenas a versão enviada. De quando em quando, a biblioteca inclusa não mais é desenvolvida separadamente; ou o(a) desenvolvedor(a) dela é o(a) mesmo(a) que o desenvolvedor(a) do pacote e você não tem outros pacotes que a usarão. Nesses casos, você será levado(a) a usar a biblioteca inclusa, mesmo se geralmente preferir usar as bibliotecas do sistema.
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.
Gravidade: Crítica
Alguns aplicativos exigem que o(a) usuário(a) especifique a
codificação de caracteres para os dados de entrada gerada ou
de saída gerada deles e apresentam somente uma escolha
limitada de codificações. Esse é o caso para a opção
-X
no Enscript-1.6.6; para a
opção -input-charset
no Cdrtools-3.02a09 não remendado; e para
os conjuntos de caracteres oferecidos para exibição no menu
do Links-2.30. Se a codificação exigida não
estiver na lista, [então] o aplicativo geralmente se torna
completamente inutilizável. Para os aplicativos não
interativos, possivelmente seja possível contornar isso
convertendo-se o documento para um conjunto suportado de
caracteres de entrada gerada antes de submetê-lo ao
aplicativo.
Uma solução para esse tipo de problema é a de implementar o suporte necessário para a codificação ausente como um remendo para o aplicativo original ou encontrar um substituto.
Gravidade: Alta para documentos não textuais; baixa para documentos de texto
Alguns aplicativos, nano-8.3 ou JOE-4.6, por exemplo, assumem que os documentos sempre estejam na codificação implícita pelo locale atual. Enquanto essa presunção possivelmente seja válida para os documentos criados pelo(a) usuário(a), ela não é segura para os externos. Quando essa presunção falha, os caracteres não ASCII são exibidos incorretamente e o documento possivelmente se torne ilegível.
Se o documento externo for inteiramente baseado em texto, [então] ele pode ser convertido para a codificação atual do locale usando-se o aplicativo iconv.
Para documentos que não sejam baseados em texto, isso não é possível. De fato, a presunção feita no aplicativo possivelmente seja completamente inválida para documentos onde o sistema operacional Windows da Microsoft tenha configurado padrões efetivos. Um exemplo desse problema são as etiquetas ID3v1 nos arquivos MP3. Para esses casos, a única solução é a de encontrar um aplicativo substituto que não tenha o problema (por exemplo, um que te permitirá especificar a codificação presumida do documento).
Entre os pacotes do BLFS, esse problema se aplica ao nano-8.3; ao JOE-4.6; e a todos os reprodutores de mídia, exceto o Audacious-4.4.2.
Outro problema nessa categoria é quando alguém não consegue ler os documentos que você enviou, pois o sistema operacional dessa pessoa está configurado para manusear diferentemente as codificações de caracteres. Isso pode acontecer frequentemente quando a outra pessoa estiver usando o Microsoft Windows, o qual fornece apenas uma codificação de caracteres para um dado país. Por exemplo, isso causa problemas com documentos do TeX codificados em UTF-8 criados no Linux. No Windows, a maioria dos aplicativos assumirá que esses documentos tenham sido criados usando a codificação padrão de oito (08) bits do Windows.
Em casos extremos, os problemas de compatibilidade de codificação do Windows possivelmente somente sejam resolvidos executando-se os aplicativos do Windows sob o Wine.
Gravidade: Crítica
O padrão POSIX manda que a codificação do nome de arquivo
seja a codificação implícita pela categoria de locale
LC_CTYPE atual. Essa informação está bem ocultada na página
que especifica o comportamento dos aplicativos Tar e Cpio. Alguns aplicativos obtém isso
errado por padrão (ou, simplesmente, não tem informação
suficiente para obter isso certo). O resultado é o de que
eles criam nomes de arquivo que não são subsequentemente
mostrados corretamente pelo ls; ou eles se recusam a
aceitar nomes de arquivo que o ls mostra adequadamente.
Para a biblioteca GLib-2.82.5, o problema pode ser corrigido
configurando-se a variável de ambiente G_FILENAME_ENCODING
para o valor especial
"@locale". Os aplicativos baseados na Glib2 que não respeitarem essa variável
de ambiente são defeituosos.
O formato .zip
tem esse
problema porque não salva a codificação para os nomes dos
arquivos arquivados. Quando unzip (na verdade, um link
simbólico para bsdunzip proveniente de
libarchive-3.7.7) o extrai, por padrão
os nomes são assumidos como codificados como CP850, a página
de código do Windows para idiomas da Europa Ocidental. Mas os
nomes podem ser realmente codificados de uma maneira
diferente se contiverem caracteres não latinos (por exemplo,
CP936 para chinês simplificado). Então, sem especificar-se
manualmente a codificação, esses caracteres não latinos serão
transformados em sequências ilegíveis pelo bsdunzip.
A regra geral para se evitar essa classe de problemas é a de se evitar instalar aplicativos quebrados. Se isso for impossível, [então] a ferramenta de linha de comando convmv pode ser usada para corrigir os nomes de arquivos criados por esses aplicativos quebrados; ou, intencionalmente, desfigurar os nomes de arquivos existentes para satisfazer as expectativas quebradas de tais aplicativos.
Em outros casos, um problema similar é causado importando-se nomes de arquivos a partir de um sistema usando um locale diferente com uma ferramenta que não é ciente do locale (por exemplo, o OpenSSH-9.9p2). Para a finalidade de se evitar desfigurar os caracteres não ASCII quando se transferir arquivos para um sistema com um locale diferente, quaisquer dos seguintes métodos podem ser usados:
Transfira de qualquer modo; corrija o dano com o convmv.
No lado do(a) remetente, crie um arquivamento tar com a
chave --format=posix
passada
para o tar (isso será o
padrão em uma versão futura do tar).
Envie os arquivos como anexos de mensagem de correio eletrônico. Os clientes de correio eletrônico especificam a codificação dos nomes de arquivos anexados.
Escreva os arquivos para um disco removível formatado com um sistema de arquivos FAT ou FAT32.
Transfira os arquivos usando o Samba.
Transfira os arquivos via FTP usando um servidor (atualmente, isso significa somente o wu-ftpd, que tem um mau histórico de segurança) e um cliente (por exemplo, o lftp) cientes da RFC2640.
Os últimos quatro métodos funcionam, pois os nomes de arquivos são convertidos automaticamente do locale do(a) remetente para UNICODE e armazenados ou enviados nessa forma. Eles são então convertidos transparentemente do UNICODE para a codificação do locale do(a) recipiente.
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.
Os pacotes que são instalados neste livro são apenas a ponta do iceberg. Nós esperamos que a experiência que você ganhou com o livro LFS e com o livro BLFS te dará o conhecimento necessário para compilar, instalar e configurar pacotes que não estejam inclusos neste livro.
Quando você quiser instalar um pacote para um local outro que
/
ou /usr
, você estará instalando fora das
configurações padrão de ambiente na maioria das máquinas. Os
seguintes exemplos deveriam te auxiliar a determinar como
corrigir essa situação. Os exemplos cobrem o intervalo completo
de configurações que possivelmente precisem de atualização,
porém eles não são todo o necessário em cada situação.
Expanda a PATH
para incluir
$PREFIX/bin
.
Expanda a PATH
para o(a)
root
para incluir
$PREFIX/sbin
.
Adicione $PREFIX/lib
ao
/etc/ld.so.conf
; ou expanda
a LD_LIBRARY_PATH
para
inclui-lo. Antes de usar a última opção, consulte
http://xahlee.info/UnixResource_dir/_/ldpath.html.
Se você modificar o /etc/ld.so.conf
, [então] lembre-se de
atualizar o /etc/ld.so.cache
, executando
ldconfig
como o(a) usuário(a) root
.
Adicione $PREFIX/man
ao
/etc/man_db.conf
.
Adicione $PREFIX/info
a
INFOPATH
.
Adicione $PREFIX/lib/pkgconfig
a PKG_CONFIG_PATH
. Alguns pacotes agora
estão instalando arquivos .pc
em $PREFIX/share/pkgconfig
, de forma que
você possivelmente tenha que incluir esse diretório
também.
Adicione $PREFIX/include
a
CPPFLAGS
quando compilar
pacotes que dependam do pacote que você instalou.
Adicione $PREFIX/lib
a
LDFLAGS
quando compilar
pacotes que dependam de uma biblioteca instalada pelo
pacote.
Se você estiver em busca de um pacote que não estiver no livro, [então] as seguintes são maneiras diferentes que você pode procurar pelo pacote desejado.
Se você souber o nome do pacote, então procure no
"SourceForge" por ele em https://sourceforge.net/directory/;
e procure no "GitHub" por ele em https://github.com/. Também,
procure no "Google" em https://google.com/.
Ocasionalmente, uma busca pelo rpm
em https://rpmfind.net/; ou pelo
deb
em
https://www.debian.org/distrib/packages#search_packages
também pode levar a um link para o pacote.
Se você souber o nome do executável, porém não o do pacote ao qual o executável pertence, [então], primeiro, tente uma busca "Google" com o nome do executável. Se os resultados forem sobrecarregadores, [então] tente buscar pelo dado executável no repositório do "Debian" em https://www.debian.org/distrib/packages#search_contents.
Algumas dicas gerais acerca de manusear pacotes novos:
Muitos dos pacotes mais recentes seguem o processo ./configure && make && make install. Ajuda acerca das opções aceitas pelo configure pode ser obtida via o comando ./configure --help.
A maioria dos pacotes contém documentação acerca de compilar e de instalar o pacote. Alguns dos documentos são excelentes; alguns, não tão excelentes. Consulte a página do pacote para quaisquer dicas adicionais e atualizadas para compilar e configurar o pacote.
Se você estiver tendo um problema compilando o pacote, [então] tente procurar nos arquivamentos do LFS em https://www.linuxfromscratch.org/search.html pelo erro; ou, se isso falhar, [então] tente procurar no Google. Frequentemente, uma distribuição já terá solucionado o problema (muitas delas usam versões de desenvolvimento dos pacotes, de forma que elas veem as mudanças mais breve que aqueles de nós que normalmente usamos versões estáveis lançadas). Porém, seja cauteloso(a) - todos(as) os(as) construtores(as) tendem a carregar remendos que não mais são necessários; e terem correções que somente são exigidas por causa das escolhas particulares deles(as) em como constroem um pacote. Você possivelmente tenha que procurar profundamente para encontrar uma correção para a versão do pacote que estiver tentando usar; ou até mesmo para encontrar o pacote (os nomes, ocasionalmente, não são o que você poderia esperar; por exemplo, o ghostscript frequentemente tem um prefixo ou um sufixo no nome dele); entretanto, as observações seguintes poderiam ajudar, particularmente aqueles(as) que, como os(as) editores(as), estão tentando construir as versões mais recentes e encontrar problemas:
"Arch" https://www.archlinux.org/packages/
- informe o nome do pacote na caixa 'Keywords';
selecione o nome do pacote; selecione o campo
'Source Files'; e, então, selecione a entrada
PKGBUILD
para ver
como eles constroem esse pacote.
Debian http://ftp.debian.org/debian/pool
(use a versão do teu país, se existir uma) - o
fonte estará em tarballs .tar.gz (ou o fonte
original .orig
do
fluxo de desenvolvimento; ou, do contrário, um
dfsg
contendo aquelas
partes que cumprem as diretrizes de software livre
do Debian) acompanhado por adições versionadas
.diff.gz ou .tar.gz. Essas adições frequentemente
mostram como o pacote é construído e possivelmente
contenham remendos. Nas versões .diff.gz, quaisquer
remendos criam arquivos em debian/patches
.
O fonte do pacote do Fedora é reorganizado de tempos em tempos. No momento, o fonte do pacote para rpms está em https://src.fedoraproject.org/projects/rpms/%2A e, a partir de lá, você pode tentar colocando um nome de pacote na caixa de busca. Se o pacote for encontrado, [então] você pode olhar nos arquivos ("specfile" para controlar a construção; vários remendos) ou nos commits. Se isso falhar, [então] você pode baixar um srpm (source rpm) e usar o rpm2cpio (veja-se a Dica ao final da página). Para rpms, vá para https://dl.fedoraproject.org/pub/fedora/linux/ e, então, escolha qual repositório deseja olhar - development/rawhide é o desenvolvimento mais recente; ou, escolha "releases", para o que foi embarcado em um lançamento; "updates", para as atualizações para um lançamento; ou, "updates/testing", para as atualizações mais recentes, que poderiam funcionar ou poderiam ter problemas.
Gentoo - Primeiro use um mecanismo de busca para
encontrar um ebuild que pareça resolver o problema,
ou pesquise em https://packages.gentoo.org/
- use o campo de busca. Observe onde o pacote
reside na hierarquia do portage, por exemplo,
app-alguma_coisa/
. Em
geral você pode tratar o ebuild como uma espécie de
combinação de pseudocódigo/shell com algumas
funções que você pode arriscar, como dodoc. Se a
correção for apenas um sed, [então]
tente. No entanto, na maioria dos casos, a correção
usará um remendo. Para encontrar o remendo, use um
espelho gentoo-portage: Dois links para espelhos
nos Estados Unidos da América do Norte que parecem
estar atualizados são https://mirror.rackspace.com/gentoo-portage/
e https://mirror.steadfast.net/gentoo-portage/.
Navegue pela árvore até o pacote e depois até o
diretório files/
para
procurar o remendo. Às vezes um espelho do portage
ainda não foi atualizado, especialmente para um
novo remendo recente. Em alguns casos, o Gentoo
agrupa os remendos em um tarball e o ebuild terá um
link no formato
https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${P}-patches-${PATCH_VER
}.tar.xz aqui, procure PATCH_DEV e PATCH_VER na
construção e formate o URL completo em seu
navegador ou para o wget. Lembre-se do "~" antes do
ID do(a) desenvolvedor(a) e observe que tentar
pesquisar os níveis anteriores do URL em um
navegador possivelmente te levará para
www.gentoo.org ou retornará 403 (proibido).
O "openSUSE" fornece um lançamento contínuo; algumas versões de pacote estão em https://download.opensuse.org/source/tumbleweed/repo/oss/src/, porém outras estão em ../update/openSUSE-current/src - o fonte parece somente estar disponível em "source rpms".
"Slackware" - o navegador de pacote oficial
atualmente está quebrado. O sítio em https://slackbuilds.org/
tem versões atuais e anteriores no repositório não
oficial delas com links para páginas iniciais,
transferências e alguns arquivos individuais,
particularmente os arquivos .SlackBuild
.
Ubuntu http://ftp.ubuntu.com/ubuntu/pool/ - vejam-se as observações Debian acima.
Se tudo o mais falhar, [então] tente a lista de discussão "blfs-support".
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.
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.
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.
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.
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.
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.
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.
As telas modernas frequentemente tem muito mais pixeis que as telas usadas no passado. Se a tua tela for da largura de mil e seiscentos (1.600) pixeis, uma fonte 8x16 te dará duzentas (200) colunas de texto - a menos que o teu monitor seja enorme, o texto será pequeno. Uma das maneiras de se contornar isso é a de se dizer ao GRUB e ao núcleo para usar uma resolução menor, tal como 1.024x768 ou 800x600; ou mesmo 640x480. Mesmo se a tua tela não tiver uma proporção de aspecto de 4:3, isso deveria funcionar.
Se você tiver seguido o livro LFS para configurar teu núcleo
com SimpleDRM habilitado e o controlador dedicado de núcleo
para tua GPU (por exemplo, i915 ou AMDGPU) for construído
como um módulo de núcleo, antes que o controlador dedicado
seja carregado, o controlador SimpleDRM será usado para
exibição. O controlador SimpleDRM em si não consegue mudar a
resolução, de forma que você precisa dizer ao GRUB para
configurar a resolução adequada antes de carregar o núcleo
modificando a linha set
gfxpayload=1024x768x32
no arquivo
grub.cfg
.
Quando o controlador dedicado da GPU começa a funcionar (tão
logo que o núcleo ou o módulo seja carregado, dependendo se
você o tiver construído como parte da imagem do núcleo ou
como um módulo), ele tira o controle de exibição do
controlador SimpleDRM e muda a resolução de exibição. Para
fazê-lo usar a resolução que você quer, edite novamente o
arquivo grub.cfg
para inserir
um parâmetro video=
na linha de
comando do núcleo, por exemplo root=/dev/sda2 video=DP-1:800x600 ro
.
Observe que é necessário especificar explicitamente o nome de
saída como DP-1
aqui: um
parâmetro video=
sem um nome de
saída é reconhecido somente pelo GRUB (como um apelido
obsoleto de set gfxpayload=
) e
completamente ignorado pelo núcleo. O conteúdo de
/sys/class/drm/
pode ser útil
para descobrir o nome da saída gerada; por exemplo, o
subdiretório card1-DP-1
indica
uma saída gerada chamada DP-1
.
Para alinhar o nome da saída gerada com teu monitor, instale
o utilitário
edid-decode e execute o comando edid-decode /sys/class/drm/card<ID da
placa>
-<nome
da saída gerada>
/edid para
mostrar as informações (incluindo o nome do modelo e as
resoluções suportadas) acerca do monitor conectado na saída.
Se decidir que deseja fazer isso, você pode então (como o(a)
usuário(a) root
) editar
/boot/grub/grub.cfg
.
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.
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.3-systemd/chapter09/console.html.
Para fontes não fornecidas com o pacote kbd, você precisará opcionalmente
comprimi-la(s) com o gzip e então instalá-la(s)
como o(a) usuário(a) root
.
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.
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
Em alguns PCs recentes, pode ser necessário, ou desejável,
carregar firmware para fazê-los funcionar da melhor forma
possível. O núcleo ou os controladores de núcleo procuram
imagens de firmware em /lib/firmware
. Mas no LFS /lib
é um link simbólico para usr/lib
, de forma que o diretório que contém
os arquivos de firmware é, na verdade, /usr/lib/firmware
.
Atualmente, a maioria do firmware pode ser encontrada em um
repositório git
, o qual pode ser
visualizado no navegador com a URL
https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain.
Por conveniência, o Projeto LFS criou um espelho, atualizado
diariamente, onde esses arquivos de firmware podem ser
acessados via wget
ou via um navegador da
web em https://anduin.linuxfromscratch.org/BLFS/linux-firmware/.
Para obter o firmware, aponte um navegador para um dos
repositórios acima e, então, baixe o(s) item(s) que você
precisar. Se você quiser todos esses arquivos de firmware (por
exemplo, você estiver distribuindo o sistema em vários sistemas
de hardware), ou instale git-2.48.1 e clone
https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git,
ou abra essa URL em um navegador e baixe o instantâneo mais
recente listado na tabela Tag
.
Observe que alguns
arquivos de firmware exigidos (e diretórios) são, na verdade,
links simbólicos para outros arquivos (ou diretórios). Esses
links simbólicos não são armazenados no repositório Git; em
vez disso, eles estão documentados no arquivo WHENCE
. Cada linha começando com
Link:
descreve um link
simbólico. Se você estiver baixando um item que precisa e ele
for um link simbólico (ou em um diretório que seja um link
simbólico), você precisa criar o link simbólico manualmente e
baixar o alvo. Por outro lado, se você quiser todos os
arquivos de firmware, use o comando ./copy-firmware.sh
/usr/lib/firmware que copiará os arquivos de
firmware e criará todos os links simbólicos no arquivo
WHENCE
, em vez de um comando de
cópia simples como cp -r *
/usr/lib/firmware/.
Para algum outro firmware, particularmente para microcódigo da Intel e certos dispositivos wifi, o firmware necessário não está disponível no repositório acima. Algo disso será endereçado abaixo, porém uma busca da Internet pelo firmware necessário de vez em quando é necessária.
Os arquivos de firmware convencionalmente são referenciados como blobs, pois você não consegue determinar o que eles farão. Observe que o firmware é distribuído sob diferentes licenças que não permitem desmontagem ou engenharia reversa.
Firmware para PCs caem em quatro categorias:
Atualizações para a CPU contornar erros, geralmente referenciadas como microcódigo.
Firmware para controladores de vídeo. Em máquinas x86, isso é exigido para dispositivos ATI (chips Radeon e AMDGPU); e possivelmente seja útil para GPUs Intel (Skylake e posteriores) e NVIDIA (Kepler e posteriores).
Dispositivos ATI Radeon e AMDGPU todos exigem firmware para estarem aptos para usar KMS (kernel modesetting - a opção preferida), bem como para o Xorg.
GPUs integradas Intel a partir do Skylake em diante conseguem usar firmware para GuC (o microcontrolador Graphics) e, também, para o HuC (microcontrolador HEVC/H265, que descarrega para a GPU); e o DMC (Display Microcontroller) para fornecer estados adicionais de baixa eletricidade. O GuC e o HuC tiveram um histórico duvidoso no núcleo e o firmware atualizado possivelmente esteja desabilitado por padrão, dependendo da sua versão de núcleo. Maiores detalhes podem ser encontrados em 01.org; e Arch linux.
GPUs NVIDIA a partir do Kepler em diante exigem firmware assinado, caso contrário o controlador nouveau estará inapto para fornecer aceleração de hardware. A NVIDIA agora lançou firmware até Ada Lovelace (série GeForce 40) para linux-firmware.
Atualizações de firmware para portas cabeadas de rede de comunicação. A maioria delas funciona mesmo sem as atualizações, porém provavelmente funcionarão melhor com o firmware atualizado. Para alguns laptops modernos, o firmware para ambos, ethernet cabeado (por exemplo, rtl_nic), e também para dispositivos bluetooth (por exemplo, qca), é exigido antes que a rede de comunicação cabeada possa ser usada.
Firmware para outros dispositivos, tais como NICs sem fios. Esses dispositivos não são exigidos para o PC inicializar, porém precisam do firmware antes que esses dispositivos possam ser usados.
Apesar de não necessárias para carregar um blob de firmware, as seguintes ferramentas possivelmente sejam úteis para determinar, obter ou preparar o firmware necessário para a finalidade de carregá-lo no sistema: cpio-2.15; git-2.48.1; pciutils-3.13.0; e Wget-1.25.0
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.
Em alguns casos raros, uma atualização de microcódigo oriunda do núcleo pode ser inefetiva. Por exemplo, apesar de intel-microcode-20241029 conter a revisão de microcódigo Raptor Lake 0x12b, que visa a corrigir um problema notório de voltagem excessiva que causa problemas de estabilidade e até mesmo danos permanentes para a CPU, quando o núcleo inicializa, já é tarde demais para o microcódigo corrigir o problema. A única maneira de corrigir esse problema é a de atualizar o BIOS.
A "Intel" fornece atualizações do microcódigo dela para os processadores "Skylake" e posteriores conforme vulnerabilidades novas surjam e forneceu no passado atualizações para processadores a partir do "SandyBridge" em diante, apesar daqueles não mais serem suportados para correções novas. Versões novas do "firmware" "AMD" são raras e geralmente somente se aplicam a uns poucos modelos, apesar dos(as) fabricantes de placas mãe obterem atualizações "AMD Generic Encapsulated Software Architecture" ("AGESA") para mudar os valores do "BIOS", por exemplo, para suportar mais variantes de memória, correções novas de vulnerabilidades ou "CPUs" mais recentes.
Existiam duas maneiras de carregar o microcódigo, descritas como "antecipada" e "atrasada". O carregamento antecipado ocorre antes que o espaço de usuário(a) tenha sido iniciado; o carregamento atrasado ocorre depois que o espaço de usuário(a) iniciou. No entanto, o carregamento atrasado é conhecido por ser problemático e não mais é suportado (veja-se o "commit" do núcleo x86/microcode: Taint and warn on late loading). Na verdade, o carregamento antecipado é necessário para contornar uma errata específica nos primeiros processadores "Intel" "Haswell" que tinham "TSX" habilitado. (Veja-se Intel Disables TSX Instructions: Erratum Found in Haswell, Haswell-E/EP, Broadwell-Y). Sem essa atualização, a "glibc" pode fazer a coisa errada em situações incomuns.
Nas versões anteriores deste livro, era recomendado o carregamento atrasado do microcódigo para verificar se ele seria aplicado, seguido pelo uso de um "initrd" para forçar o carregamento antecipado. Mas agora que o conteúdo do "tarball" do microcódigo "Intel" está documentado e o microcódigo "AMD" pode ser lido por um script "Python" para determinar quais máquinas ele cobre, não existe razão real para usar o carregamento atrasado.
Ainda pode ser possível forçar manualmente o carregamento atrasado do microcódigo. Mas isso possivelmente cause mau funcionamento do núcleo e você mesmo(a) deveria correr o risco. Você precisará reconfigurar teu núcleo para carregamento atrasado, mas carregamento antecipado sempre é suportado pelo núcleo Linux versão 6.6 ou posterior em um sistema x86 (não importa se 32 bits ou 64 bits). As instruções aqui te mostrarão como criar um initrd para carregamento antecipado. Também é possível construir o mesmo arquivo binário de microcódigo interno ao núcleo, o que permite carregamento antecipado, mas exige que o núcleo seja recompilado para atualizar o microcódigo.
Para confirmar qual(is) processador(es) você tem (se mais que um, eles serão idênticos) olhe em "/proc/cpuinfo". Determine os valores decimais da família da "CPU"; do modelo; e da revisão executando o seguinte comando (também informará a versão atual do microcódigo):
head -n7 /proc/cpuinfo
Converta a família da "CPU", o modelo e a revisão em pares de dígitos hexadecimais e lembre-se do valor do campo “microcode”. Agora você pode verificar se existe algum microcódigo disponível.
Se você estiver criando um "initrd" para atualizar "firmware" para máquinas diferentes, como uma distribuição faria, [então] vá para baixo até 'Carregamento antecipado do microcódigo' e concatene todos os "blobs" "Intel" para "GenuineIntel.bin"; ou concatene todos os "blobs" "AMD" para "AuthenticAMD.bin". Isso cria um "initrd" mais largo - para todas as máquinas "Intel" na atualização 20200609, o tamanho era de três (3,0) MB comparado a tipicamente vinte e quatro (24) KB para uma máquina.
O primeiro passo é o de obter a versão mais recente do
microcódigo da Intel. Isso precisa ser feito navegando-se
até
https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files/releases/
e baixando-se o arquivo mais recente lá. Ao tempo da
escrita deste texto, a versão mais segura do microcódigo
era microcode-20250211. Extraia esse arquivo da maneira
normal; o microcódigo estará no diretório intel-ucode
, contendo vários blobs com
nomes na forma XX-YY-ZZ. Também existem vários outros
arquivos e uma observação de lançamento.
No passado, a Intel não fornecia quaisquer detalhes
relativos a quais blobs tinham versões mudadas, mas agora a
nota de lançamento detalha isso. Você consegue comparar a
versão do microcódigo em /proc/cpuinfo
com a versão para teu
modelo de CPU na nota de lançamento para saber se existe
uma atualização.
O firmware recente para processadores mais antigos é fornecido para lidar com vulnerabilidades que agora tenham sido tornadas públicas e, para algumas dessas, tais como Microarchitectural Data Sampling (MDS), você poderia desejar aumentar a proteção desabilitando hyperthreading; ou, alternativamente, desabilitar a mitigação padrão do núcleo, por causa do impacto dela sobre os tempos de compilação. Por favor, leia a documentação online em https://www.kernel.org/doc/html/latest/admin-guide/hw-vuln/index.html.
Para um dispositivo móvel Tigerlake (descrito como CPU
Intel(R) Core(TM) i5-11300H), os valores relevantes são cpu
family 6, model 140, stepping 1, de modo que, nesse caso, a
identificação exigida é 06-8c-01. A observação de
lançamento diz que o microcódigo mais recente para ele está
versionado 0xb8. Se o valor do campo “microcode” em
/proc/cpuinfo
for 0xb8 ou
superior, isso indica que a atualização do microcódigo já
foi aplicada pelo BIOS. Caso contrário, prossiga para
“Carregamento
antecipado do microcódigo”.
Comece baixando um contêiner do "firmware" para a família da sua "CPU" a partir de https://anduin.linuxfromscratch.org/BLFS/linux-firmware/amd-ucode/. A família sempre é especificada em hexadecimal. As famílias "10h" até "14h" (16 até 20) estão no "microcode_amd.bin". As famílias "15h", "16h", "17h" ("Zen", "Zen+", "Zen2") e "19h" ("Zen3") tem os contêineres próprios delas, mas pouquíssimas máquinas provavelmente receberão microcódigo atualizado. Em vez disso, a "AMD" fornece um "AGESA" atualizado para os(as) fabricantes de placas-mãe, que possivelmente forneçam um "BIOS" atualizado usando-o. Existe um script "Python3" em https://github.com/AMDESE/amd_ucode_info/blob/master/amd_ucode_info.py. Baixe esse script e execute-o em relação ao arquivo "bin" para verificar quais processadores tem atualizações.
Para o muito antigo "Athlon(tm) II X2" nesses exemplos os valores eram "cpu family 16", "model 5", "stepping 3", dando uma identificação de Família=0x10 Modelo=0x05 Passo=0x03. Uma linha da saída gerada do script amd_ucode_info.py descreve a versão do microcódigo para ele:
Family=0x10 Model=0x05 Stepping=0x03: Patch=0x010000c8 Length=960 bytes
Se o valor do campo “microcode” em /proc/cpuinfo
for 0x10000c8 ou superior,
isso indica que o BIOS já aplicou a atualização do
microcódigo. Caso contrário, prossiga para “Carregamento
antecipado do microcódigo”.
Se você tiver estabelecido que o microcódigo atualizado está disponível para o seu sistema, [então] é hora de prepará-lo para o carregamento antecipado. Isso exige um pacote adicional, o cpio-2.15 e a criação de um initrd que precisará ser adicionado ao grub.cfg.
Não importa onde você prepara o initrd e, tão logo ele esteja funcionando, você pode aplicar o mesmo initrd a sistemas LFS posteriores ou a núcleos mais recentes na mesma máquina, ao menos até que algum microcódigo mais recente seja liberado. Use os seguintes comandos:
mkdir -p initrd/kernel/x86/microcode cd initrd
Para uma máquina AMD, use o seguinte comando (substitua <MEUCONTEINER> pelo nome do contêiner para a família da sua CPU):
cp -v ../<MEU_CONTẼINER> kernel/x86/microcode/AuthenticAMD.bin
Ou, para uma máquina Intel, copie o blob apropriado usando este comando:
cp -v ../intel-ucode/<XX-YY-ZZ> kernel/x86/microcode/GenuineIntel.bin
Agora, prepare o initrd:
find . | cpio -o -H newc > /boot/microcode.img
Agora você precisa adicionar uma entrada nova a /boot/grub/grub.cfg e aqui você deveria adicionar uma linha nova depois da linha linux dentro da estância. Se /boot for um ponto de montagem separado:
initrd /microcode.img
ou isto, se ele não for:
initrd /boot/microcode.img
Se já estiver inicializando com um initrd (veja-se
“A respeito do initramfs”),
você deveria executar mkinitramfs novamente
depois de colocar o blob ou contêiner apropriado em
/usr/lib/firmware
. Mais
precisamente, coloque um blob da Intel em um diretório
/usr/lib/firmware/intel-ucode
ou um contêiner da AMD em um diretório /usr/lib/firmware/amd-ucode
antes de
executar mkinitramfs.
Alternativamente, você pode ter ambos os initrd na mesma
linha, como initrd
/microcode.img /other-initrd.img
(adapte
isso como acima se /boot não for um ponto de montagem
separado).
Você agora pode reinicializar com o "initrd" adicionado e, então, usar o seguinte comando para verificar se o carregamento antecipado funcionou:
dmesg | grep -e 'microcode' -e 'Linux version' -e 'Command line'
Se atualizou para endereçar vulnerabilidades, [então] você pode olhar a saída gerada do comando lscpu para ver o que é informado agora.
Os locais e horários onde o carregamento antecipado acontece são muito diferentes em máquinas AMD e Intel. Primeiro, um exemplo de uma Intel (dispositivo móvel Tigerlake) com carregamento antecipado:
[ 0.000000] Linux version 6.10.4 (xry111@stargazer) (gcc (GCC) 14.2.0, GNU ld (GNU Binutils) 2.43) #4 SMP PREEMPT_DYNAMIC Tue Aug 15 18:04:11 CST 2024
[ 0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-6.10.0 root=PARTUUID=<CLASSIFIED>
ro
[ 0.585605] microcode: Current revision: 0x000000b8
[ 0.585611] microcode: Updated early from: 0x00000086
Um exemplo histórico AMD:
[ 0.000000] Linux version 4.15.3 (ken@testserver) (gcc version 7.3.0 (GCC))
#2 SMP Sun Feb 18 02:32:03 GMT 2018
[ 0.000000] Command line: BOOT_IMAGE=/vmlinuz-4.15.3-sda5 root=/dev/sda5 ro
[ 0.307619] microcode: microcode updated early to new patch_level=0x010000c8
[ 0.307678] microcode: CPU0: patch_level=0x010000c8
[ 0.307723] microcode: CPU1: patch_level=0x010000c8
[ 0.307795] microcode: Microcode Update Driver: v2.2.
Os dispositivos iniciais Radeon precisavam somente de um blob de firmware de 2K. Os dispositivos recentes precisam de vários blobs e alguns deles são muito maiores. O tamanho total do diretório do firmware Radeon é de mais que 500K — em um sistema largo moderno você provavelmente pode poupar o espaço, porém ainda é redundante instalar todos os arquivos não usados a cada vez que construir um sistema.
Uma abordagem melhor é a de instalar o pciutils-3.13.0 e, então, usar o
lspci
para
identificar qual controlador VGA está instalado.
Com essa informação, verifique a página "RadeonFeature" da "wiki" do "Xorg" para Decoder ring for engineering vs marketing names para identificar a família (você possivelmente precise saber disso para o controlador "Xorg" no BLFS — Ilhas do Sul e Ilhas do Mar usam o controlador "radeonsi") e o modelo específico.
Agora que você sabe qual controlador está usando, consulte a página Radeon da wiki do Gentoo a qual tem uma tabela listando os blobs de firmware exigidos para os vários chipsets. Observe que os chips das Ilhas do Sul e os das Ilhas do Mar usam firmware diferente para o núcleo 3.17 e posteriores comparados a núcleos anteriores. Identifique e baixe os blobs exigidos; então instale-os:
mkdir -pv /usr/lib/firmware/radeon cp -v <YOUR_BLOBS> /usr/lib/firmware/radeon
Construir o controlador amdgpu do núcleo como um módulo é recomendado porque os arquivos de firmware precisam estar acessíveis ao tempo que ele for carregado. Se você estiver construindo-o como parte da imagem do núcleo por qualquer motivo, você precisará incluir os arquivos de firmware no initramfs (leia-se “A respeito do initramfs” para detalhes) ou incluí-los na própria imagem do núcleo (leia-se “Incluir Blobs de Firmware na Imagem do Núcleo” para detalhes).
Todos os controladores de vídeo que usam o controlador "amdgpu" do núcleo exigem "firmware", se você estará usando o controlador "amdgpu" do "Xorg", o controlador "modesetting" do "xserver" ou apenas o "modesetting" do núcleo para obter um "framebuffer" do console maior que "80x25".
Instale pciutils-3.13.0 e use-o para verificar o nome do modelo (procure por "VGA compatible controller:"). Se você tiver uma "Unidade de Processamento Acelerado" ("APU"), ou seja, "CPU" e vídeo no mesmo chip), provavelmente te dirá o nome. Se você tiver uma placa de vídeo "amdgpu" separada, [então] precisará pesquisar para determinar qual nome ela usa (por exemplo, uma placa descrita como "Advanced Micro Devices, Inc." ["AMD"/"ATI"] "Baffin" ["Radeon RX 550 640SP / RX 560/560X"] precisa de "firmware" "Polaris11". Existe uma tabela de "Família, nome do "Chipset", nome do Produto e Firmware" no final das seções "Kernel" na página AMDGPU do "wiki" do "Gentoo".
Depois que você tiver identificado o nome do "firmware", instale todos os arquivos relevantes para ele. Por exemplo, a placa "Baffin" mencionada acima tem vinte e um (21) arquivos "polaris11*", "APUs" como "renoir" e "picasso" tem pelo menos doze (12) arquivos e podem ganhar mais em atualizações futuras (por exemplo, a "APU" "raven" agora tem um décimo terceiro (13º) arquivo, "raven_ta.bin").
mkdir -pv /usr/lib/firmware/amdgpu cp -v <YOUR_BLOBS> /usr/lib/firmware/amdgpu
Se espaço em disco não for um problema, [então] você poderá instalar todos os arquivos atuais de "firmware" "amdgpu" e não se preocupar exatamente com qual "chipset" está instalado.
Construir o controlador amdgpu do núcleo como um módulo é recomendado porque os arquivos de firmware precisam estar acessíveis ao tempo que ele for carregado. Se você estiver construindo-o como parte da imagem do núcleo por qualquer motivo, você precisará incluir os arquivos de firmware no initramfs (leia-se “A respeito do initramfs” para detalhes) ou incluí-los na própria imagem do núcleo (leia-se “Incluir Blobs de Firmware na Imagem do Núcleo” para detalhes).
Algumas GPUs NVIDIA a partir da Kepler em diante (incluindo
todas as GPUs NVIDIA GeForce RTX e séries GTX 9xx em
diante) exigem firmware assinado pela NVIDIA para
funcionar. Para o controlador Nouveau, a NVIDIA lançou os
arquivos assinados de firmware no diretório nvidia/
do linux-firmware. Leia-se
a página
CodeNames do wiki Nouveau para descobrir o nome do
código da tua GPU NVIDIA (por exemplo, o nome do código da
GeForce RTX 4060 Ti é AD106). O diretório para os arquivos
de firmware que você precisa é nomeado como resultado da
conversão do nome do código para letras minúsculas
(ad106
para o exemplo). O
diretório (ou parte do conteúdo dele) pode ser, na verdade,
um link simbólico para outro diretório (ou alguns arquivos
em outro diretório) e você precisará então criar o link simbólico e
baixar o alvo dele você mesmo(a) (por exemplo,
ad106
é um link simbólico
para ad102
).
Se você não conseguir encontrar o diretório da tua GPU nem
na árvore linux-firmware nem no arquivo WHENCE
(como um link simbólico), isso
significa que, ou tua GPU não precisa de nenhum firmware,
ou ela é mais recente que a Ada Lovelace (série RTX 40xx) e
o firmware para ela ainda não foi lançado (no final de
2024).
Para as GPUs NVIDIA a partir da Tesla até a Kepler, o controlador Nouveau exige algum firmware extra para suportar aceleração de decodificação de vídeo. Esses arquivos de firmware não são lançados pela NVIDIA, mas eles podem ser extraídos a partir do controlador binário da NVIDIA. Para informações mais exatas acerca de quais chips precisam de firmware extraído, veja-se o VideoAcceleration do wiki Nouveau. Para extrair e instalar esses arquivos de firmware, emita:
wget https://anduin.linuxfromscratch.org/BLFS/nvidia-firmware/extract_firmware.py wget https://us.download.nvidia.com/XFree86/Linux-x86/340.32/NVIDIA-Linux-x86-340.32.run sh NVIDIA-Linux-x86-340.32.run --extract-only python3 extract_firmware.py mkdir -p /usr/lib/firmware/nouveau cp -d nv* vuc-* /usr/lib/firmware/nouveau/
O núcleo gosta de carregar firmware para alguns controladores
de rede de intercomunicação, particularmente aqueles
provenientes da Realtek (o diretório /usr/lib/linux-firmware/rtl_nic/
), mas eles
geralmente parecem funcionar sem ele. Portanto, você pode
inicializar o núcleo, verificar o dmesg para mensagens acerca
desse firmware ausente e, se necessário, baixar o firmware e
colocá-lo no diretório especificado em /usr/lib/firmware
, de forma que ele seja
encontrado em inicializações subsequentes. Observe que com os
núcleos atuais isso funciona independentemente de o
controlador ser compilado internamente ou construído como um
módulo; não existe necessidade de construir esse firmware
internamente no núcleo. Aqui está um exemplo onde o
controlador R8169 foi compilado internamente, mas o firmware
não foi disponibilizado. Uma vez que o firmware tenha sido
fornecido, não existiu menção a ele em inicializações
posteriores.
dmesg | grep firmware | grep r8169
[ 7.018028] r8169 0000:01:00.0: Direct firmware load for rtl_nic/rtl8168g-2.fw failed with error -2
[ 7.018036] r8169 0000:01:00.0 eth0: unable to load firmware patch rtl_nic/rtl8168g-2.fw (-2)
Diferentes países tem diferentes regulamentações acerca do
uso do espectro de rádio de dispositivos sem fio. Você pode
instalar um firmware para fazer os dispositivos sem fio
obedecerem às regulamentações locais do espectro, de forma
que você não seja questionado(a) por autoridades locais ou
encontre tua placa de rede sem fio bloqueando as frequências
de outros dispositivos (por exemplo, controles remotos). O
firmware da base de dados regulatória pode ser baixado a
partir de https://kernel.org/pub/software/network/wireless-regdb/.
Para instalá-lo, basta extrair regulatory.db
e regulatory.db.p7s
a partir do tarball em
/usr/lib/firmware
. Observe que
ou o controlador cfg80211
precisa
estar selecionado como um módulo para que os arquivos
regulatory.*
sejam carregados,
ou esses arquivos precisam estar incluídos como firmware no
núcleo, conforme explicado acima em “Firmware para Placas de
Vídeo”.
O ponto de acesso (AP) enviaria um código de país para tua
NIC sem fio e wpa_supplicant-2.11 diria ao núcleo
para carregar a regulação desse país a partir de regulatory.db
, e aplicá-la. Observe que
vários AP não enviam esse código de país, de forma que você
possivelmente fique bloqueado(a) para um uso bastante
restrito (especialmente se quiser usar tua interface como um
AP).
Alguns sistemas (especialmente laptops econômicos) utilizam
um DSP fornecido com a CPU para conexão com o codificador de
áudio. O Firmware Aberto de Som precisa ser carregado no DSP
para torná-lo funcional. Esses arquivos de firmware podem ser
baixados a partir de https://github.com/thesofproject/sof-bin/releases.
Extraia o tarball e mude para o diretório extraído e, em
seguida, como o(a) usuário(a) root
instale o firmware:
install -vdm755 /usr/lib/firmware/intel && cp -av -T --no-preserve=ownership sof \ /usr/lib/firmware/intel/sof && cp -av -T --no-preserve=ownership sof-tplg \ /usr/lib/firmware/intel/sof-tplg
alsa-lib-1.2.13 precisa de arquivos de configuração do Use Case Manager para os sistemas que usam o Sound Open Firmware também. Leia-se a página alsa-lib-1.2.13 para as instruções para instalá-los. Depois que o firmware for carregado (você possivelmente precise reinicializar para que o núcleo os carregue) e os arquivos de configuração do UCM forem instalados, siga “Configurando o ALSA Utilities” para configurar tua placa de som para ALSA corretamente.
Identificar o firmware correto tipicamente exigirá que você
instale o pciutils-3.13.0 e, então, use o
lspci
para
identificar o dispositivo. Você deveria então procurar online
para verificar qual módulo ele usa; qual firmware; e onde
obter o firmware — nem todos eles estão no linux-firmware.
Se possível, você deveria iniciar usando uma conexão com fios quando inicializar pela primeira vez o teu sistema LFS. Para usar uma conexão sem fios, você precisará usar ferramentas de rede de comunicação, tais como iw-6.9, Wireless Tools-29 or wpa_supplicant-2.11.
Firmware possivelmente também seja necessário para outros dispositivos, tais como alguns controladores SCSI; adaptadores bluetooth; ou gravadores de TV. Os mesmos princípios se aplicam.
Alguns controladores, principalmente os controladores para
GPU ATI ou AMD, exigem os arquivos de firmware acessíveis no
momento em que são carregados. O método mais fácil de lidar
com esses controladores é o de construí-los como um módulo do
núcleo. Um método alternativo é o de criar um initramfs
(leia-se “A respeito do initramfs” para
detalhes) incluindo os arquivos de firmware. Se não quiser
usar nenhum dos métodos, você pode incluir os arquivos de
firmware na própria imagem do núcleo. Instale os arquivos de
firmware necessários em /usr/lib/firmware
primeiro, depois
configure a seguinte configuração do núcleo e reconstrua o
núcleo:
Device Drivers ---> Generic Driver Options ---> Firmware loader ---> <*> Firmware loading facility [FW_LOADER] (xx/aa.bin xx/bb.bin) Build named firmware blobs into the kernel binary ... [EXTRA_FIRMWARE] # This is the default, you can change it to "/usr/lib/firmware" # if you want: (/lib/firmware) Firmware blobs root directory ... [EXTRA_FIRMWARE_DIR]
Substitua xx/aa.bin
xx/bb.bin
por uma lista de caminhos separados por
espaços em branco para os arquivos de firmware necessários,
relativos a /usr/lib/firmware
.
Um método mais fácil que digitar manualmente a lista (ele
possivelmente seja longa) é o de executar o seguinte comando:
echo CONFIG_EXTRA_FIRMWARE='"'$({ cd /usr/lib/firmware; echo amdgpu/*
})'"' >> .config
make oldconfig
Substitua amdgpu/*
por um padrão de shell que corresponda aos arquivos de
firmware necessários.
Não distribua uma imagem do núcleo contendo o firmware para terceiros(as) ou você possivelmente viole a GPL.
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.
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
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.
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"
A linha acima é usada somente para propósitos descritivos. As regras do udev da escaneadora são colocadas no lugar quando se instalar o SANE-1.2.1.
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
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).
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.
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 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)>
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 | |
34 | ||
vmailman | 35 | 35 |
news | 36 | 36 |
kdm | 37 | 37 |
fetchmail | 38 | |
mariadb | 40 | 40 |
postgres | 41 | 41 |
dovecot | 42 | 42 |
dovenull | 43 | 43 |
ftp | 45 | 45 |
proftpd | 46 | 46 |
vsftpd | 47 | 47 |
rsyncd | 48 | 48 |
sshd | 50 | 50 |
stunnel | 51 | 51 |
dhcpcd | 52 | 52 |
svn | 56 | 56 |
svntest | 57 | |
git | 58 | 58 |
games | 60 | 60 |
kvm | 61 | |
wireshark | 62 | |
sddm | 64 | 64 |
lightdm | 65 | 65 |
scanner | 70 | |
colord | 71 | 71 |
systemd-journal-gateway | 73 | 73 |
systemd-journal-remote | 74 | 74 |
systemd-journal-upload | 75 | 75 |
systemd-network | 76 | 76 |
systemd-resolve | 77 | 77 |
systemd-timesync | 78 | 78 |
systemd-coredump | 79 | 79 |
uuidd | 80 | 80 |
systemd-oom | 81 | 81 |
ldap | 83 | 83 |
avahi | 84 | 84 |
avahi-autoipd | 85 | 85 |
netdev | 86 | |
ntp | 87 | 87 |
unbound | 88 | 88 |
plugdev | 90 | |
wheel | 97 | |
anonymous | 98 | |
nobody | 65534 | |
nogroup | 65534 |
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.
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
Aqui está um /etc/profile
base.
Esse arquivo começa configurando algumas funções auxiliares e
alguns parâmetros básicos. Ele especifica alguns parâmetros
de histórico do bash e, para propósitos de
segurança, desabilita a manutenção de um arquivo permanente
de histórico para o(a) usuário(a) root
. Em seguida, ele chama conjuntos de
comandos sequenciais pequenos e de propósito único no
diretório /etc/profile.d
para
fornecer a maior parte da inicialização.
cat > /etc/profile << "EOF"
# Begin /etc/profile
# Written for Beyond Linux From Scratch
# by James Robertson <jameswrobertson@earthlink.net>
# modifications by Dagmar d'Surreal <rivyqntzne@pbzpnfg.arg>
# System wide environment variables and startup programs.
# System wide aliases and functions should go in /etc/bashrc. Personal
# environment variables and startup programs should go into
# ~/.bash_profile. Personal aliases and functions should go into
# ~/.bashrc.
# Functions to help us manage paths. Second argument is the name of the
# path variable to be modified (default: PATH)
pathremove () {
local IFS=':'
local NEWPATH
local DIR
local PATHVARIABLE=${2:-PATH}
for DIR in ${!PATHVARIABLE} ; do
if [ "$DIR" != "$1" ] ; then
NEWPATH=${NEWPATH:+$NEWPATH:}$DIR
fi
done
export $PATHVARIABLE="$NEWPATH"
}
pathprepend () {
pathremove $1 $2
local PATHVARIABLE=${2:-PATH}
export $PATHVARIABLE="$1${!PATHVARIABLE:+:${!PATHVARIABLE}}"
}
pathappend () {
pathremove $1 $2
local PATHVARIABLE=${2:-PATH}
export $PATHVARIABLE="${!PATHVARIABLE:+${!PATHVARIABLE}:}$1"
}
export -f pathremove pathprepend pathappend
# Set the initial path
export PATH=/usr/bin
# Attempt to provide backward compatibility with LFS earlier than 11
if [ ! -L /bin ]; then
pathappend /bin
fi
if [ $EUID -eq 0 ] ; then
pathappend /usr/sbin
if [ ! -L /sbin ]; then
pathappend /sbin
fi
unset HISTFILE
fi
# Set up some environment variables.
export HISTSIZE=1000
export HISTIGNORE="&:[bf]g:exit"
# Set some defaults for graphical systems
export XDG_DATA_DIRS=${XDG_DATA_DIRS:-/usr/share}
export XDG_CONFIG_DIRS=${XDG_CONFIG_DIRS:-/etc/xdg}
export XDG_RUNTIME_DIR=${XDG_RUNTIME_DIR:-/tmp/xdg-$USER}
for script in /etc/profile.d/*.sh ; do
if [ -r $script ] ; then
. $script
fi
done
unset script
# End /etc/profile
EOF
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
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.
Este script usa os arquivos ~/.dircolors
e /etc/dircolors
para controlar as cores
dos nomes de arquivos em uma listagem de diretório. Eles
controlam a saída gerada colorida de coisas como
ls --color. A
explicação do como inicializar esses arquivos está ao final
desta seção.
cat > /etc/profile.d/dircolors.sh << "EOF"
# Setup for /bin/ls and /bin/grep to support color, the alias is in /etc/bashrc.
if [ -f "/etc/dircolors" ] ; then
eval $(dircolors -b /etc/dircolors)
fi
if [ -f "$HOME/.dircolors" ] ; then
eval $(dircolors -b $HOME/.dircolors)
fi
EOF
Este script adiciona alguns caminhos úteis à PATH
e pode ser usado para personalizar
outras variáveis de ambiente relacionadas a PATH (por
exemplo, LD_LIBRARY_PATH, etc) que possivelmente sejam
necessárias para todos(as) os(as) usuários(as).
cat > /etc/profile.d/extrapaths.sh << "EOF"
if [ -d /usr/local/lib/pkgconfig ] ; then
pathappend /usr/local/lib/pkgconfig PKG_CONFIG_PATH
fi
if [ -d /usr/local/bin ]; then
pathprepend /usr/local/bin
fi
if [ -d /usr/local/sbin -a $EUID -eq 0 ]; then
pathprepend /usr/local/sbin
fi
if [ -d /usr/local/share ]; then
pathprepend /usr/local/share XDG_DATA_DIRS
fi
# Set some defaults before other applications add to these paths.
pathappend /usr/share/info INFOPATH
EOF
O programa man deduz
automaticamente o caminho de pesquisa para páginas de
manual examinando o conteúdo da variável PATH
; veja-se manpath(5)
para detalhes. Configurar a variável MANPATH
possivelmente substitua a dedução
automática, de forma que os(as) editores(as) do BLFS não
recomendam configurá-la. Se você precisar configurá-la
por qualquer motivo, é melhor iniciar o valor dela com
dois pontos (:
), por exemplo
MANPATH=:/opt/somepkg/share/man:/opt/otherpkg/share/man,
de forma que os caminhos listados na variável
MANPATH
sejam pospostos ao
valor deduzido automaticamente em vez de substituí-lo.
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
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
Este script configura uma variável de ambiente necessária para o suporte ao idioma nativo. Uma discussão completa acerca de se determinar esta variável pode ser encontrada na página Configurando o Local do Sistema.
cat > /etc/profile.d/i18n.sh << "EOF"
# Configura variáveis de i18n
for i in $(locale); do
unset ${i%=*}
done
if [[ "$TERM" = linux ]]; then
export LANG=C.UTF-8
else
source /etc/locale.conf
for i in $(locale); do
key=${i%=*}
if [[ -v $key ]]; then
export $key
fi
done
fi
EOF
Aqui está um /etc/bashrc
de
base. Os comentários no arquivo deveriam explicar tudo o que
você precisa.
cat > /etc/bashrc << "EOF"
# Begin /etc/bashrc
# Written for Beyond Linux From Scratch
# by James Robertson <jameswrobertson@earthlink.net>
# updated by Bruce Dubbs <bdubbs@linuxfromscratch.org>
# System wide aliases and functions.
# System wide environment variables and startup programs should go into
# /etc/profile. Personal environment variables and startup programs
# should go into ~/.bash_profile. Personal aliases and functions should
# go into ~/.bashrc
# Provides colored /bin/ls and /bin/grep commands. Used in conjunction
# with code in /etc/profile.
alias ls='ls --color=auto'
alias grep='grep --color=auto'
# Provides prompt for interactive shells, specifically shells started
# in the X environment. [Review the LFS archive thread titled
# PS1 Environment Variable for a great case study behind this script
# addendum.]
NORMAL="\[\e[0m\]"
RED="\[\e[1;31m\]"
GREEN="\[\e[1;32m\]"
if [[ $EUID == 0 ]] ; then
PS1="$RED\u [ $NORMAL\w$RED ]# $NORMAL"
else
PS1="$GREEN\u [ $NORMAL\w$GREEN ]\$ $NORMAL"
fi
unset RED GREEN NORMAL
# GnuPG wants this or it'll fail with pinentry-curses under some
# circumstances (for example signing a Git commit)
tty -s && export GPG_TTY=$(tty)
# End /etc/bashrc
EOF
Para mais informação acerca das sequências de escape que você
pode usar para o seu prompt (isto é, a variável de ambiente
PS1
), veja-se info bash -- Nó: Imprimindo um Prompt.
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
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
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
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
Se você quiser usar o recurso dircolors
, então execute o seguinte
comando. As etapas de configuração do /etc/skel
mostradas acima também podem ser
usadas aqui para fornecer um arquivo ~/.dircolors
quando um(a) usuário(a)
novo(a) for configurado(a). Como antes, apenas mude o nome de
arquivo da saída gerada no seguinte comando e se assegure de
que as permissões, proprietário(a) e grupo estejam corretas
nos arquivos criados e (ou) copiados.
dircolors -p > /etc/dircolors
Se desejar personalizar as cores usadas para os diferentes
tipos de arquivo, [então] você pode editar o arquivo
/etc/dircolors
. As instruções
para configurar as cores estão embutidas no arquivo.
Finalmente, Ian Macdonald escreveu uma excelente coleção de dicas e de truques para melhorar o teu ambiente de shell. Você consegue lê-la online em https://caliban.org/bash/index.shtml.
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).
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.
Sequências de escape do terminal são códigos especiais reconhecidos pelo terminal. O ^[ representa um caractere ASCII ESC. A sequência ESC [ H coloca o cursor no canto superior esquerdo da tela; e ESC 2 J apaga a tela. Para mais informação acerca das sequências de escape do terminal, veja-se https://invisible-mirror.net/xterm/ctlseqs/ctlseqs.html
As seguintes sequências são reconhecidas pelo agetty (o aplicativo que
normalmente analisa o /etc/issue
). Esta informação é originária do
man agetty, onde
você consegue encontrar informação extra acerca do processo do
logon.
O arquivo issue
pode conter
certas sequências de caracteres para exibir várias informações.
Todas as sequências do issue
consistem de uma contra barra (\) imediatamente seguida de uma
das letras explicadas abaixo (assim, \d
no /etc/issue
inseriria a data atual).
b Insere a taxa de transmissão da linha atual.
d Insere a data atual.
s Insere o nome do sistema; o nome do sistema operacional.
l Insere o nome da linha tty atual.
m Insere o identificador da arquitetura da máquina, por exemplo, i686.
n Insere o nome do nó da máquina, também conhecido como nome do host.
o Insere o nome de domínio da máquina.
r Insere o número de lançamento do núcleo, por exemplo, 2.6.11.12.
t Insere a hora atual.
u Insere o número de usuários(as) atuais conectados(as).
U Insere a string "1 usuário(a)" ou "<n> usuários" onde <n> é o
número de usuários(as) atuais conectados(as).
v Insere a versão do sistema operacional, por exemplo, a data de construção, etc.
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.
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.
A Infraestrutura de Chave Pública (ICP) é um método para validar a autenticidade de uma entidade desconhecida ao longo de redes de comunicação não confiáveis. A ICP funciona estabelecendo uma cadeia de confiança, em vez de confiar explicitamente em cada dispositivo individual ou entidade. Para a finalidade de um certificado apresentado por uma entidade remota ser acreditado, esse certificado precisa apresentar uma cadeia completa de certificados que possa ser validada usando-se o certificado raiz de uma Autoridade Certificadora (AC) que é acreditada pela máquina local.
Estabelecer confiança com uma AC envolve validar coisas como endereço da companhia, titularidade de propriedade, informação de contato, etc., e assegurar que a AC tenha seguido as melhores práticas, tais como se submeter a auditorias periódicas de segurança por investigadores(as) independentes e manter uma sempre disponível lista de revogação de certificado. Isso está bem fora do escopo do BLFS (como está para a maior parte das distribuições do Linux). A loja de certificado fornecida aqui é tomada a partir da Fundação Mozilla, que estabeleceu políticas de inclusão muito estritas descritas aqui.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/lfs-book/make-ca/archive/v1.15/make-ca-1.15.tar.gz
Tamanho da transferência: 40 KB
Somas de verificação MD5 da transferência: 1af805d92b55091b5f11fd7db77c9b0e
Espaço em disco estimado exigido: 164 KB (com todas as dependências em tempo de execução)
Tempo de construção estimado: menos que 0,1 UPC (com todas as dependências em tempo de execução)
Esse pacote envia um certificado de AC para validar a
identidade de https://hg.mozilla.org/. Se a
cadeia de confiança desse sítio da web tiver sido mudada
depois do lançamento do make-ca-1.15, ele poderá falhar ao
obter a revisão do certdata.txt
a partir do servidor. Use
uma versão atualizada do make-ca na página de
lançamento se esse problema ocorrer.
p11-kit-0.25.5 (tempo de execução, construído depois do libtasn1-4.20.0, exigido nas instruções a seguir para gerar armazenamentos de certificados a partir de âncoras de confiança, e a cada vez que make-ca for executado)
nss-3.108 (para gerar um NSSDB compartilhado)
O script make-ca baixará e
processará os certificados incluídos no arquivo certdata.txt
para uso como âncoras de
confiança para o módulo de confiança p11-kit-0.25.5.
Adicionalmente, gerará lojas de certificado do sistema usadas
pelos aplicativos do BLFS (se os aplicativos recomendados e
os opcionais estiverem presentes no sistema). Quaisquer
certificados locais armazenados em /etc/ssl/local
serão importados para ambos:
as âncoras de confiança; e as lojas de certificado geradas
(substituindo a confiança do Mozilla). Adicionalmente,
quaisquer valores de confiança modificados serão copiados a
partir das âncoras de confiança para /etc/ssl/local
antes de quaisquer
atualizações, preservando os valores de confiança
personalizados que divergirem do Mozilla quando se usar o
utilitário trust oriundo do
p11-kit para operar sobre a
loja de confiança.
Para instalar as várias lojas de certificados, primeiro
instale o script make-ca no
local correto. Como o(a) usuário(a) root
:
make install && install -vdm755 /etc/ssl/local
Tecnicamente, esse pacote já está instalado neste ponto. Mas, a maioria dos pacotes que listam make-ca como uma dependência na verdade exige a loja de certificados do sistema configurado por esse pacote, em vez do próprio programa make-ca. Portanto, as instruções para usar make-ca para configurar a loja de certificados do sistema estão incluídas nesta seção. Você deveria certificar-se de que a dependência de tempo de execução exigida para make-ca esteja satisfeita agora e continuar para seguir as instruções.
Como o(a) usuário(a) root
,
baixe o fonte do certificado e apronte para uso do sistema
com o seguinte comando:
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
Para a maioria dos(as) usuários(as), nenhuma configuração
adicional é necessária; entretanto, o arquivo certdata.txt
padrão fornecido pelo
"make-ca" é obtido a partir da ramificação "mozilla-release"
e é modificado para fornecer uma revisão "Mercurial". Essa
será a versão correta para a maior parte dos sistemas.
Existem muitas outras variantes do arquivo disponíveis para
uso que poderiam ser preferidas por uma razão ou por outra,
incluindo os arquivos enviados com os produtos da "Mozilla"
neste livro. "RedHat" e "OpenSUSE", por exemplo, usam a
versão inclusa no nss-3.108. Transferências adicionais do(a)
desenvolvedor(a) estão disponíveis nos links inclusos em
/etc/make-ca/make-ca.conf.dist
.
Simplesmente copie o arquivo para /etc/make-ca.conf
e edite conforme
apropriado.
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.
O diretório /etc/ssl/local
está
disponível para acrescentar certificados adicionais de AC à
loja de confiança do sistema. Esse diretório também é usado
para armazenar certificados que foram acrescentados a ou
modificados na loja de confiança do sistema pelo p11-kit-0.25.5, de forma que os valores
de confiança sejam mantidos ao longo de atualizações. Os
arquivos nesse diretório precisam estar no formato de
certificado confiável do OpenSSL. Os certificados importados
usando o utilitário trust originário do
p11-kit-0.25.5 utilizarão os valores Uso
Estendido de Chave x509 para atribuir valores confiáveis
padrão para as âncoras do sistema.
Se você precisar substituir os valores de confiança ou, do
contrário, precisar criar um certificado de confiança do
OpenSSL manualmente a partir
de um arquivo codificado PEM comum, [então] você precisa
acrescentar argumentos de confiança ao comando openssl e criar um
certificado novo. Por exemplo, usando as raízes do CAcert, se você
quiser confiar em ambos para todas as três funções, [então]
os seguintes comandos criarão os certificados confiáveis do
OpenSSL adequados (execute como o(a) usuário(a) root
depois que o Wget-1.25.0 estiver
instalado):
wget http://www.cacert.org/certs/root.crt && wget http://www.cacert.org/certs/class3.crt && openssl x509 -in root.crt -text -fingerprint -setalias "CAcert Class 1 root" \ -addtrust serverAuth -addtrust emailProtection -addtrust codeSigning \ > /etc/ssl/local/CAcert_Class_1_root.pem && openssl x509 -in class3.crt -text -fingerprint -setalias "CAcert Class 3 root" \ -addtrust serverAuth -addtrust emailProtection -addtrust codeSigning \ > /etc/ssl/local/CAcert_Class_3_root.pem && /usr/sbin/make-ca -r
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
O pacote CrackLib contém uma biblioteca usada para impor senhas fortes comparando senhas selecionadas pelo(a) usuário(a) a palavras em listas de palavras escolhidas.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/cracklib/cracklib/releases/download/v2.10.3/cracklib-2.10.3.tar.xz
Soma de verificação MD5 da transferência: e8ea2b86de774fc09fdd0f2829680b19
Tamanho da transferência: 456 KB
Espaço em disco estimado exigido: 5,0 MB
Tempo de construção estimado: menos que 0,1 UPC
Lista de palavras recomendadas para países de idioma inglês:
Transferência (HTTP): https://github.com/cracklib/cracklib/releases/download/v2.10.3/cracklib-words-2.10.3.xz
Soma de verificação MD5 da transferência: f27804022dbf2682a7f7c353317f9a53
Tamanho da transferência: 4,0 MB
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.
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 .
Instale o CrackLib executando os seguintes comandos:
CPPFLAGS+=' -I /usr/include/python3.13' \ ./configure --prefix=/usr \ --disable-static \ --with-default-dict=/usr/lib/cracklib/pw_dict && make
Agora, como o(a) usuário(a) root
:
make install
Emita os seguintes comandos como o(a) usuário(a) root
para instalar a lista de palavras
recomendadas e criar o dicionário CrackLib. Outras listas de palavras
(baseadas em texto, uma palavra por linha) também podem ser
usadas simplesmente instalando-as em /usr/share/dict
e adicionando-as ao comando
create-cracklib
-dict.
xzcat ../cracklib-words-2.10.3.xz \ > /usr/share/dict/cracklib-words && ln -v -sf cracklib-words /usr/share/dict/words && echo $(hostname) >> /usr/share/dict/cracklib-extra-words && install -v -m755 -d /usr/lib/cracklib && create-cracklib-dict /usr/share/dict/cracklib-words \ /usr/share/dict/cracklib-extra-words
Se desejado, verifique a operação adequada da biblioteca como um(a) usuário(a) não privilegiado(a) emitindo o seguinte comando:
make test
Se desejado, teste o módulo Python com:
python3 -c 'import cracklib; cracklib.test()'
Se você estiver instalando o CrackLib depois que seu sistema LFS tiver sido concluído e você tiver o pacote Shadow instalado, [então] você precisa reinstalar o Shadow-4.17.3 se desejar fornecer suporte de senha forte em seu sistema. Se for instalar agora o pacote Linux-PAM-1.7.0, você pode desconsiderar essa observação, pois o Shadow será reinstalado depois da instalação do Linux-PAM.
CPPFLAGS+=' -I
/usr/include/python3.13'
: Essa variável de ambiente é
necessária para permitir que o pacote encontre os arquivos de
inclusão do Python-3.13.
--with-default-dict=/usr/lib/cracklib/pw_dict
:
Esse parâmetro força a instalação do dicionário CrackLib na hierarquia /lib
.
--disable-static
:
Essa chave impede a instalação das versões estáticas das
bibliotecas.
sed ... ./python/test_cracklib.py: Esse comando atualiza o procedimento de construção para o módulo Python para Python-3.13 e posteriores.
install -v -m644 -D
...: Esse comando cria o diretório
/usr/share/dict
(se já não
existir) e instala a lista compactada de palavras lá.
ln -v -s cracklib-words
/usr/share/dict/words: A lista de palavras
está vinculada a /usr/share/dict/words
como historicamente;
words
é a lista principal de
palavras no diretório /usr/share/dict
. Omita esse comando se você
já tiver um arquivo /usr/share/dict/words
instalado em seu
sistema.
echo $(hostname)
>>...: O valor de hostname é ecoado para um
arquivo chamado cracklib-extra-words
. Esse arquivo extra
destina-se a ser uma lista específica do sítio que inclui
senhas fáceis de adivinhar, como nomes de organizações
empresariais ou departamentos, nomes de usuários(as), nomes
de produtos, nomes de computadores, nomes de domínio, etc.
create-cracklib-dict ...: Esse comando cria o dicionário CrackLib a partir das listas de palavras. Modifique o comando para adicionar quaisquer listas adicionais de palavras que você tiver instalado.
é usado para determinar se uma senha é forte |
|
é usado para formatar arquivos de texto (minuscula todas as palavras, remove caracteres de controle e ordena as listas) |
|
cria uma base de dados com palavras lidas a partir da entrada gerada padrão |
|
exibe na saída gerada padrão a base de dados especificada |
|
é usado para criar o dicionário CrackLib a partir da(s) lista(s) fornecida(s) de palavras |
|
fornece um método rápido de pesquisa de dicionário para imposição de senha forte |
cryptsetup é usado para configurar a encriptação transparente de dispositivos de bloco usando a API criptográfica do núcleo.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.kernel.org/pub/linux/utils/cryptsetup/v2.7/cryptsetup-2.7.5.tar.xz
Soma de verificação MD5 da transferência: f663f37dd478484f61ace54902c17274
Tamanho da transferência: 11 MB
Espaço em disco estimado exigido: 33 MB (adicionar 5 MB para os testes)
Tempo de construção estimado: 0,2UPC (adicionar 8,1UPC para os testes)
JSON-C-0.18, LVM2-2.03.30 e popt-1.19
asciidoctor-2.0.23, libpwquality-1.4.5, argon2, libssh e passwdqc
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]
Instale cryptsetup executando os seguintes comandos:
./configure --prefix=/usr \ --disable-ssh-token \ --disable-asciidoc && make
Para testar o resultado, emita como o(a) usuário(a)
root
: make check. Alguns testes
falharão se opções apropriadas de configuração do núcleo não
estiverem configuradas. Algumas opções adicionais que
possivelmente sejam necessárias para testes são:
CONFIG_SCSI_LOWLEVEL,
CONFIG_SCSI_DEBUG,
CONFIG_BLK_DEV_DM_BUILTIN,
CONFIG_CRYPTO_USER,
CONFIG_CRYPTO_CRYPTD,
CONFIG_CRYPTO_LRW,
CONFIG_CRYPTO_XTS,
CONFIG_CRYPTO_ESSIV,
CONFIG_CRYPTO_CRCT10DIF,
CONFIG_CRYPTO_AES_TI,
CONFIG_CRYPTO_AES_NI_INTEL,
CONFIG_CRYPTO_BLOWFISH,
CONFIG_CRYPTO_CAST5,
CONFIG_CRYPTO_SERPENT,
CONFIG_CRYPTO_SERPENT_SSE2_X86_64,
CONFIG_CRYPTO_SERPENT_AVX_X86_64,
CONFIG_CRYPTO_SERPENT_AVX2_X86_64, and
CONFIG_CRYPTO_TWOFISH_X86_64
Agora, como o(a) usuário(a) root
:
make install
--disable-ssh-token
:
Essa chave é exigida se a dependência opcional libssh não
estiver instalada.
--disable-asciidoc
:
Essa chave desabilita regeneração das páginas de manual.
Remova essa chave se você tiver asciidoctor-2.0.23 instalado e
desejar regenerar as páginas de manual. Observe que mesmo se
essa chave for usada, as páginas de manual pré geradas são
enviadas no tarball e ainda serão instaladas.
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.
é usado para configurar mapeamentos de mapeadores de dispositivos gerenciados pelo dm-crypt |
|
é uma ferramenta para re-encriptação offline de dispositivo LUKS |
|
é uma ferramenta para gerenciar volumes dm-integrity (integridade em nível de bloco) |
|
é usado para configurar mapeamentos de mapeadores de dispositivos gerenciados dm-verity. O alvo de veracidade do mapeador de dispositivos fornece verificação de integridade transparente somente leitura de dispositivos de bloco usando a API criptográfica do núcleo |
O pacote Cyrus SASL contém uma implementação de Autenticação Simples e Camada de Segurança, um método para adicionar suporte de autenticação a protocolos baseados em conexão. Para usar o SASL, um protocolo inclui um comando para identificar e autenticar um(a) usuário(a) em um servidor e, opcionalmente, negociar a proteção de interações subsequentes de protocolo. Se o uso dele for negociado, [então] uma camada de segurança é inserida entre o protocolo e a conexão.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/cyrusimap/cyrus-sasl/releases/download/cyrus-sasl-2.1.28/cyrus-sasl-2.1.28.tar.gz
Soma de verificação MD5 da transferência: 6f228a692516f5318a64505b46966cfa
Tamanho da transferência: 3,9 MB
Espaço em disco estimado exigido: 28 MB
Tempo de construção estimado: 0,2 UPC
Linux-PAM-1.7.0, MIT Kerberos V5-1.21.3, MariaDB-11.4.5 ou MySQL, OpenLDAP-2.6.9, PostgreSQL-17.4, sphinx-8.2.1, SQLite-3.49.1, Berkeley DB (obsoleto), krb4, Dmalloc e Pod::POM::View::Restructured
Esse pacote não suporta construção paralela.
Primeiro, corrija um problema revelado pelo gcc-14:
sed '/saslint/a #include <time.h>' -i lib/saslutil.c && sed '/plugin_common/a #include <time.h>' -i plugins/cram.c
Instale o Cyrus SASL executando os seguintes comandos:
./configure --prefix=/usr \ --sysconfdir=/etc \ --enable-auth-sasldb \ --with-dblib=lmdb \ --with-dbpath=/var/lib/sasl/sasldb2 \ --with-sphinx-build=no \ --with-saslauthd=/var/run/saslauthd && make -j1
Esse pacote não vem com uma suíte de teste. Se estiver planejando usar o mecanismo de autenticação GSSAPI, [então teste-o depois de instalar o pacote usando os aplicativos de amostra servidor e cliente que foram construídos na etapa anterior. As instruções para realizar os testes podem ser encontradas em https://www.linuxfromscratch.org/hints/downloads/files/cyrus-sasl.txt.
Agora, como o(a) usuário(a) root
:
make install && install -v -dm755 /usr/share/doc/cyrus-sasl-2.1.28/html && install -v -m644 saslauthd/LDAP_SASLAUTHD /usr/share/doc/cyrus-sasl-2.1.28 && install -v -m644 doc/legacy/*.html /usr/share/doc/cyrus-sasl-2.1.28/html && install -v -dm700 /var/lib/sasl
--with-dbpath=/var/lib/sasl/sasldb2
:
Essa chave força a base de dados sasldb a ser criada em
/var/ lib/sasl
em vez de
/etc
.
--with-saslauthd=/var/run/saslauthd
:
Essa chave força saslauthd a usar o
diretório conforme com FHS /var/run/
saslauthd
para dados variáveis de tempo de execução.
--enable-auth-sasldb
:
Essa chave habilita a estrutura de retaguarda de autenticação
SASLDB.
--with-dblib=gdbm
: Essa chave
força GDBM a ser usado em
vez de LMDB.
--with-ldap
: Essa chave habilita
o suporte OpenLDAP.
--enable-ldapdb
: Essa chave
habilita a estrutura de retaguarda de autenticação LDAPDB.
--enable-login
: Essa opção
habilita a autenticação não suportada LOGIN.
--enable-ntlm
: Essa opção
habilita a autenticação não suportada NTLM.
install -v -m644 ...: Esses comandos instalam a documentação que não é instalada pelo comando make install.
install -v -m700 -d /var/lib/sasl: Esse diretório precisa existir ao iniciar saslauthd ou usar o plug-in sasldb. Se não vai executar o processo de segundo plano ou usar os plugins, [então] você pode omitir a criação desse diretório.
/etc/saslauthd.conf
(para
configuração LDAP do saslauthd) e /etc/sasl2/Appname.conf
(onde "Appname" é
o nome definido do aplicativo do aplicativo)
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.
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-20241211
usando o seguinte comando:
make install-saslauthd
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".
é usado para listar plugins carregáveis SASL e as propriedades deles |
|
é o servidor de autenticação SASL |
|
é usado para listar os(as) usuários(as) na base de
dados de senha SASL |
|
é 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
|
|
é um utilitário de teste para o servidor de autenticação SASL |
|
é uma biblioteca de autenticação de uso geral para aplicativos servidor e cliente |
O pacote GnuPG é a ferramenta do GNU para comunicação e armazenamento de dados segura. Ela pode ser usada para encriptar dados e para criar assinaturas digitais. Ela inclui uma facilidade avançada de gerenciamento de chave e é conforme com o padrão proposto da Internet OpenPGP conforme descrito na RFC2440 e com o padrão S/MIME conforme descrito por várias RFCs. O GnuPG 2 é a versão estável do suporte de integração GnuPG para o OpenPGP e o S/MIME.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.gnupg.org/ftp/gcrypt/gnupg/gnupg-2.4.7.tar.bz2
Soma de verificação MD5 da transferência: 59ec68633deefcd38a5012f39a9d9311
Tamanho da transferência: 7,6 MB
Espaço em disco estimado exigido: 135 MB (com testes)
Tempo de construção estimado: 0,7 UPC (com testes; ambos usando paralelismo=4)
libassuan-3.0.2, libgcrypt-1.11.0, libksba-1.6.7, npth-1.8 e OpenLDAP-2.6.9
GnuTLS-3.8.9 (exigido para se comunicar com servidores de chave usando o protocolo https ou o hkps); e pinentry-1.3.1 (Exigência em tempo de execução para a maioria das funcionalidades do pacote)
cURL-8.12.1, Fuse-3.16.2, ImageMagick-7.1.1-43 (para o utilitário convert, usado para gerar a documentação), libusb-1.0.27, um MTA, SQLite-3.49.1, texlive-20240312 (ou install-tl-unx), fig2dev (para gerar a documentação) e GNU adns
Instale GnuPG executando os seguintes comandos:
mkdir build && cd build && ../configure --prefix=/usr \ --localstatedir=/var \ --sysconfdir=/etc \ --docdir=/usr/share/doc/gnupg-2.4.7 && make && makeinfo --html --no-split -I doc -o doc/gnupg_nochunks.html ../doc/gnupg.texi && makeinfo --plaintext -I doc -o doc/gnupg.txt ../doc/gnupg.texi && make -C doc html
Se tiver o texlive-20240312 instalado e você desejar criar documentação no formato PDF, emita o seguinte comando:
make -C doc pdf
Para testar os resultados, emita: make check.
Agora, como o(a) usuário(a) root
:
make install && install -v -m755 -d /usr/share/doc/gnupg-2.4.7/html && install -v -m644 doc/gnupg_nochunks.html \ /usr/share/doc/gnupg-2.4.7/html/gnupg.html && install -v -m644 ../doc/*.texi doc/gnupg.txt \ /usr/share/doc/gnupg-2.4.7 && install -v -m644 doc/gnupg.html/* \ /usr/share/doc/gnupg-2.4.7/html
Se você criou o formato PDF da documentação, instale-os
usando o seguinte comando como o(a) usuário(a) root
:
install -v -m644 doc/gnupg.pdf \ /usr/share/doc/gnupg-2.4.7
mkdir build && cd build: os(as) desenvolvedores(as) do "GnuPG2" recomendam construir o pacote em um diretório dedicado.
--docdir=/usr/share/doc/gnupg-2.4.7
:
Essa chave muda o diretório padrão da documentação para
/usr/share/doc/gnupg-2.4.7
.
--enable-all-tests
: Essa chave
permite que mais testes sejam executados com make check.
--enable-g13
: Essa chave habilita
a construção do aplicativo g13.
é usado para criar e povoar os diretórios
|
|
é um script amarrador usado para executar o
gpgconf com o
parâmetro |
|
é uma ferramenta que se encarrega de acessar os servidores de chave OpenPGP |
|
é uma ferramenta para contactar um dirmngr em execução e testar quando um certificado tenha sido revogado |
|
é uma ferramenta para criar, montar ou desmontar um contêiner de sistema de arquivos encriptado (opcional) |
|
é 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 |
|
é uma ferramenta para gerenciar cartões inteligentes e "tokens" |
|
é um utilitário usado para comunicar com um gpg-agent em execução |
|
é 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 |
|
é um utilitário usado para consultar e para
modificar arquivos de configuração automática e
razoavelmente seguramente no diretório home
|
|
é um utilitário atualmente útil somente para
depuração. Execute-o com |
|
executa o aplicativo de esquema dado ou gera um shell interativo |
|
é 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 |
|
divide uma mensagem OpenPGP em pacotes |
|
é uma ferramenta para encriptar ou para assinar arquivos dentro de um arquivamento |
|
é uma versão somente verificação do gpg |
|
é um cliente para o protocolo Web Key Service |
|
fornece um servidor para o protocolo Web Key Service |
|
é usado para listar, exportar e importar dados Keybox |
|
é usado para ouvir um soquete Unix Domain criado por quaisquer das ferramentas GnuPG |
O pacote GnuTLS contém bibliotecas e ferramentas do espaço de usuário(a) que fornecem uma camada segura sobre uma camada de transporte confiável. Atualmente, a biblioteca GnuTLS implementa os padrões propostos pelo grupo de trabalho TLS da IETF. Citando a especificação do protocolo TLS 1.3 :
“O TLS permite que aplicativos cliente/servidor se comuniquem pela Internet de uma maneira projetada para evitar espionagem, adulteração e falsificação de mensagens.”
O GnuTLS fornece suporte para os protocolos TLS 1.3, TLS 1.2, TLS 1.1, TLS 1.0 e (opcionalmente) SSL 3.0. Ele também suporta extensões TLS, incluindo nome do servidor e tamanho máximo do registro. Além disso, a biblioteca suporta autenticação usando o protocolo SRP, certificados X.509 e chaves OpenPGP, junto com suporte para a extensão TLS Pre-Shared-Keys (PSK), a extensão Inner Application (TLS/IA) e manuseio de certificados OpenPGP e X.509.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.gnupg.org/ftp/gcrypt/gnutls/v3.8/gnutls-3.8.9.tar.xz
Soma de verificação MD5 da transferência: 33f4c800c20af2983c45223a803da865
Tamanho da transferência: 6,5 MB
Espaço em disco estimado exigido: 178 MB (adicionar 111 MB para os testes)
Tempo de construção estimado: 0,6 UPC (adicionar 1,4 UPC para testes; ambos usando paralelismo=8)
make-ca-1.15, libunistring-1.3, libtasn1-4.20.0 e p11-kit-0.25.5
Brotli-1.1.0, Doxygen-1.13.2, GTK-Doc-1.34.0, libidn-1.42 ou libidn2-2.3.7, libseccomp-2.6.0, Net-tools-2.10 (usado durante a suíte de teste), texlive-20240312 ou install-tl-unx, Unbound-1.22.0 (para construir a biblioteca DANE), Valgrind-3.24.0 (usado durante a suíte de teste), autogen, cmocka e datefudge (usado durante a suíte de teste se a biblioteca DANE for construída), leancrypto, liboqs e Trousers (suporte ao módulo Trusted Platform)
Observe que, se você não instalar o libtasn1-4.20.0, [então] uma versão enviada no tarball GnuTLS será usada em vez.
Instale GnuTLS executando os seguintes comandos:
./configure --prefix=/usr \ --docdir=/usr/share/doc/gnutls-3.8.9 \ --with-default-trust-store-pkcs11="pkcs11:" && make
Para testar os resultados, agora emita: make check.
Agora, instale o pacote como o(a) usuário(a) root
:
make install
--with-default-trust-store-pkcs11="pkcs11:"
:
Essa chave diz ao gnutls para usar o armazenamento de
confiança PKCS #11 como a confiança padrão. Omita essa chave
se p11-kit-0.25.5 não estiver instalado.
--with-default-trust-store-file=/etc/pki/tls/certs/ca-bundle.crt
:
Essa chave informa ao configure onde encontrar o
pacote legado de certificados da AC e usá-lo em vez do módulo
PKCS #11 por padrão. Use isso se p11-kit-0.25.5 não
estiver instalado.
--enable-gtk-doc
: Use esse
parâmetro se GTK-Doc estiver
instalado e você desejar reconstruir e instalar a
documentação da API.
--enable-openssl-compatibility
:
Use essa chave se desejar construir a biblioteca de
compatibilidade OpenSSL.
--without-p11-kit
: Use essa chave
se você não tiver instalado o p11-kit-0.25.5.
--with-included-unistring
: Essa
chave usa a versão empacotada da libunistring, em vez da do
sistema. Use essa chave se você não tiver instalado libunistring-1.3.
--disable-dsa
: Essa chave
desabilita completamente o suporte ao algoritmo DSA.
é usado para gerar certificados X.509, solicitações de certificados e chaves privadas |
|
é uma ferramenta usada para gerar e verificar registros de recursos DNS para o protocolo DANE |
|
é um aplicativo cliente simples para configurar uma conexão TLS com algum outro computador |
|
é um aplicativo cliente simples para configurar uma conexão TLS com algum outro computador e produz resultados de progresso muito detalhados |
|
é um aplicativo servidor simples que escuta as conexões TLS entrantes |
|
é um aplicativo que pode analisar e imprimir informação relativa a solicitações/respostas OCSP, gerar solicitações e verificar respostas |
|
é um aplicativo que permite manusear dados procedentes de cartões inteligentes PKCS #11 e de módulos de segurança |
|
é um aplicativo simples que gera chaves aleatórias para uso com TLS-PSK |
|
é um aplicativo simples que emula os aplicativos nas bibliotecas Stanford SRP (Secure Remote Password) usando o GnuTLS |
|
contém as funções centrais da API e as funções da API de certificado X.509 |
O pacote GPGME é uma biblioteca C que permite que suporte à criptografia seja adicionada a um aplicativo. Ele é projetado para tornar o acesso a mecanismos de criptografia de chave pública, como o GnuPG ou o GpgSM, mais fácil para os aplicativos. O GPGME fornece uma API criptográfica de alto nível para encriptação, desencriptação, assinatura, verificação de assinatura e gerenciamento de chaves.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.gnupg.org/ftp/gcrypt/gpgme/gpgme-1.24.2.tar.bz2
Soma de verificação MD5 da transferência: 2e0cc1df9f3da8c2a7d7c9dc33b7f0bf
Tamanho da transferência: 1,8 MB
Espaço em disco estimado exigido: 404 MB (com testes)
Tempo de construção estimado: 1,5 UPC (com todas as ligações e testes; com paralelismo=4)
Doxygen-1.13.2 e Graphviz-12.2.1 (para documentação da API), GnuPG-2.4.7 (exigido se Qt ou SWIG estiverem instalados; usado durante a suíte de teste), Clisp-2.49 e SWIG-4.3.0 (para ligações de idioma)
Instale GPGME executando os seguintes comandos:
mkdir build && cd build && ../configure --prefix=/usr --disable-gpg-test && make PYTHONS=
Se SWIG-4.3.0 estiver instalado, construa a ligação Python 3 como uma wheel:
if swig -version > /dev/null; then srcdir=$PWD/../lang/python \ top_builddir=$PWD \ pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD/lang/python fi
Para testar os resultados, você deveria ter GnuPG-2.4.7 instalado
e remover o --disable-gpg-test
acima. Emita:
if swig -version > /dev/null; then python3 -m venv testenv && testenv/bin/pip3 install --no-index --find-links=dist --no-cache-dir \ gpg && sed '/PYTHON/s#run-tests.py#& --python-libdir=/dev/null#' \ -i lang/python/tests/Makefile fi && make -k check PYTHONS= PYTHON=$PWD/testenv/bin/python3
Agora, como o(a) usuário(a) root
:
make install PYTHONS=
Se SWIG-4.3.0 estiver instalado, ainda como
o(a) usuário(a) root
, instale
a ligação do Python 3:
if swig -version > /dev/null; then pip3 install --no-index --find-links dist --no-user gpg fi
--disable-gpg-test
:
se esse parâmetro não for passado para configurar, [então] os
aplicativos de teste são construídos durante o estágio
make, que exige
GnuPG-2.4.7. Esse parâmetro não é
necessário se GnuPG-2.4.7 estiver instalado.
PYTHONS=
: Desabilite
a construção de ligação Python usando o comando obsoleto
python3 setup.py
build. A instrução explícita para construir a
ligação Python 3 com o comando pip3 wheel é fornecida.
gera comandos GPGME no formato JSON |
|
é um servidor assuan que expõe operações GPGME, como impressão de impressões digitais e identificadores de chave com servidores de chaves |
|
contém as funções da API GPGME |
|
contém as funções da API C++ GPGME |
|
contém funções de API para lidar com operações GPG em aplicativos Qt |
O iptables é um aplicativo de linha de comando do espaço do(a) usuário(a) usado para configurar o conjunto de regras de filtragem de pacote do núcleo Linux 2.4 e posteriores.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.netfilter.org/projects/iptables/files/iptables-1.8.11.tar.xz
Soma de verificação MD5 da transferência: 44191ce12055da9790a92429c771ba50
Tamanho da transferência: 636 KB
Espaço em disco estimado exigido: 16 MB
Tempo de construção estimado: 0,1 UPC
libpcap-1.10.5 (exigido para suporte ao compilador BPF ou nfsynproxy), bpf-utils (exigido para suporte ao Berkeley Packet Filter), libnfnetlink (exigido para suporte ao connlabel), libnetfilter_conntrack (exigido para suporte ao connlabel) e nftables
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.
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
--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.
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.
Um Firewall Pessoal é projetado para permitir que você acesse todos os serviços oferecidos na Internet enquanto mantém o seu computador seguro e os seus dados privados.
Abaixo está uma versão ligeiramente modificada da recomendação do Rusty Russell oriunda do Linux 2.4 Packet Filtering HOWTO. Ela ainda é aplicável aos núcleos Linux 6.x.
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.
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.
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.
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.
Para configurar o firewall iptables na inicialização,
instale a unidade iptables.service
inclusa no pacote
blfs-systemd-units-20241211.
make install-iptables
é usado para configurar, manter e inspecionar as tabelas de regras de filtro de pacote IP no núcleo Linux |
|
é uma maneira mais segura para atualizar o iptables remotamente |
|
é usado para interagir com o iptables usando o conjunto legado de comandos |
|
é usado para restaurar um conjunto de regras legadas do iptables |
|
é usado para salvar um conjunto de regras legadas do iptables |
|
é 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 |
|
é 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 |
|
é usado para converter a saída gerada do
iptables-save
para um formato XML. Usar a folha de estilo
|
|
é um conjunto de comandos para IPv6 que paraleliza os comandos do iptables acima |
|
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 |
|
é um binário que se comporta de acordo com o nome pelo qual ele for chamado |
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.
A palavra firewall pode ter diferentes significados.
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.
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.
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.
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.
As configurações de exemplo fornecidas para o iptables-1.8.11 não são destinadas para serem um guia completo para a segurança de sistemas. As técnicas de firewall são um problema complexo que exige configuração cuidadosa. As configurações fornecidas pelo BLFS são destinadas somente para dar exemplos do como um firewall funciona. Elas não são destinadas a se adequarem a qualquer configuração específica e possivelmente não forneçam proteção completa contra um ataque.
O BLFS fornece um utilitário para gerenciar a interface Netfilter do núcleo, o iptables-1.8.11. Ele tem estado por aí desde os primeiros núcleos 2.4 e tem sido o padrão desde então. Esse provavelmente é o conjunto de ferramentas que será mais familiar para os(as) administradores(as) existentes. Outras ferramentas tem sido desenvolvidas mais recentemente; veja-se a lista das leituras adicionais abaixo para mais detalhes. Aqui você encontrará uma lista de URLs que contém informação compreensível acerca do construir firewalls e de proteção adicional ao seu sistema.
www.netfilter.org - Página inicial dos projetos netfilter/iptables/nftables
Perguntas Frequentes relacionadas ao Netfilter
Tutoriais relacionados ao Netfilter
Tutoriais do nftables
tldp.org/LDP/nag2/x-087-2-firewall.html
tldp.org/HOWTO/Security-HOWTO.html
tldp.org/HOWTO/Firewall-HOWTO.html
linuxsecurity.com/howtos
www.circlemud.org/jelson/writings/security/index.htm
insecure.org/reading.html
O pacote libcap foi instalado no LFS, porém se o suporte Linux-PAM for desejado, [então] o módulo PAM precisa ser construído (depois da instalação do Linux-PAM).
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.kernel.org/pub/linux/libs/security/linux-privs/libcap2/libcap-2.73.tar.xz
Soma de verificação MD5 da transferência: 0e186df9de9b1e925593a96684fe2e32
Tamanho da transferência: 192 KB
Espaço em disco estimado exigido: 2,2 MB
Tempo de construção estimado: menos que 0,1 UPC
Se você estiver atualizando o libcap a partir de uma versão anterior, [então] use as instruções na página libcap do LFS para atualizar o libcap. Se Linux-PAM-1.7.0 tiver sido construído, o módulo PAM também será construído automaticamente.
Instale libcap executando os seguintes comandos:
make -C pam_cap
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
install -v -m755 pam_cap/pam_cap.so /usr/lib/security && install -v -m644 pam_cap/capability.conf /etc/security
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.
O pacote Linux PAM contém Módulos Plugáveis de Autenticação usados pelo(a) administrador(a) local do sistema para controlar como os aplicativos autenticam usuários(as).
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/linux-pam/linux-pam/releases/download/v1.7.0/Linux-PAM-1.7.0.tar.xz
Soma de verificação MD5 da transferência: c1e41d59d6852e45d0f953c8c8f869d6
Tamanho da transferência: 496 KB
Espaço em disco estimado exigido: 16 MB (com testes)
Tempo de construção estimado: 0,3 UPC (com testes)
Documentação Opcional
Transferência (HTTP): https://anduin.linuxfromscratch.org/BLFS/Linux-PAM/Linux-PAM-1.7.0-docs.tar.xz
Soma de verificação MD5 da transferência: dba9e555df98004fe9cea233c927a551
Tamanho da transferência: 495 KB
libnsl-2.0.1, libtirpc-1.3.6, rpcsvc-proto-1.4.4, Berkeley DB (obsoleto), libaudit e libeconf
docbook-xml-5.0, docbook-xsl-ns-1.79.2, fop-2.10 (para o formato PDF), libxslt-1.1.42 e Lynx-2.9.2 (para o formato de texto simples)
Shadow-4.17.3 e Systemd-257.3 precisa ser reinstalado e reconfigurado depois de instalar e de configurar o Linux PAM.
Com o Linux-PAM-1.4.0 e superior, o módulo pam_cracklib não é instalado por padrão. Use libpwquality-1.4.5 para impor senhas fortes.
Para o módulo PAM pam_loginuid.so
(referido pelo arquivo de
configuração PAM system-session
, se Systemd-257.3 for reconstruído com
suporte a PAM posteriormente) funcionar, um parâmetro
de configuração do núcleo precisa ser configurado ou o módulo
simplesmente não fará nada:
General setup ---> [*] Auditing support [AUDIT]
Se você tiver instalado docbook-xml-5.0, docbook-xsl-ns-1.79.2, libxslt-1.1.42 e Lynx-2.9.2 e desejar gerar o
formato de texto simples das documentações, modifique
meson.build
para usar Lynx-2.9.2 em vez
de W3m ou Elinks que o BLFS não fornece:
sed -e "s/'elinks'/'lynx'/" \ -e "s/'-no-numbering', '-no-references'/ \ '-force-html', '-nonumbers', '-stdin'/" \ -i meson.build
Compile e vincule o Linux PAM executando os seguintes comandos:
mkdir build && cd build && meson setup .. \ --prefix=/usr \ --buildtype=release \ -D docdir=/usr/share/doc/Linux-PAM-1.7.0 && ninja
Para testar os resultados, um arquivo de configuração
adequado /etc/pam.d/other
precisa existir.
Se você tiver um sistema com Linux PAM instalado e
funcionando, seja cuidadoso(a) ao modificar os arquivos em
/etc/pam.d
, pois seu sistema
possivelmente se torne totalmente inutilizável. Se você
deseja executar os testes, [então] não precisa criar outro
arquivo /etc/pam.d/other
. O
arquivo existente pode ser usado para os testes.
Você também deveria estar ciente de que ninja install sobrescreve
os arquivos de configuração em /etc/security
, assim como em /etc/environment
. Se você tiver
modificado esses arquivos, certifique-se de produzir uma
cópia de segurança deles.
Para uma primeira instalação, crie um arquivo de configuração
emitindo os seguintes comandos como o(a) usuário(a)
root
:
install -v -m755 -d /etc/pam.d &&
cat > /etc/pam.d/other << "EOF"
auth required pam_deny.so
account required pam_deny.so
password required pam_deny.so
session required pam_deny.so
EOF
Agora execute os testes emitindo ninja test. Certifique-se de que os testes não produziram erros antes de continuar a instalação.
Para uma primeira instalação, remova o arquivo de
configuração criado anteriormente emitindo o seguinte comando
como o(a) usuário(a) root
:
rm -fv /etc/pam.d/other
Agora, como o(a) usuário(a) root
:
ninja install && chmod -v 4755 /usr/sbin/unix_chkpwd
Se você não tiver as dependências opcionais instaladas para
construir a documentação e baixou a documentação opcional pré
construída, novamente como o(a) usuário(a) root
:
tar -C / -xvf ../../Linux-PAM-1.7.0-docs.tar.xz
A informação de configuração é colocada em /etc/pam.d/
. Aqui está um arquivo de
amostra:
# Início /etc/pam.d/other
auth required pam_unix.so nullok
account required pam_unix.so
session required pam_unix.so
password required pam_unix.so nullok
# Fim /etc/pam.d/other
Agora, crie alguns arquivos genéricos de configuração. Como
o(a) usuário(a) root
:
install -vdm755 /etc/pam.d && cat > /etc/pam.d/system-account << "EOF" &&# Inicia /etc/pam.d/system-account account required pam_unix.so # Termina /etc/pam.d/system-account
EOF cat > /etc/pam.d/system-auth << "EOF" &&# Inicia /etc/pam.d/system-auth auth required pam_unix.so # Termina /etc/pam.d/system-auth
EOF cat > /etc/pam.d/system-session << "EOF" &&# Inicia /etc/pam.d/system-session session required pam_unix.so # Termina /etc/pam.d/system-session
EOF cat > /etc/pam.d/system-password << "EOF"# Inicia /etc/pam.d/system-password # Use resumo 'yescrypt' para encriptação; use sombra e tente usar # qualquer token de autenticação previamente definido (senha escolhida) # configurado por qualquer módulo anterior. password required pam_unix.so yescrypt shadow try_first_pass # Termina /etc/pam.d/system-password
EOF
Se você deseja ativar o suporte a senhas fortes, [então] instale libpwquality-1.4.5 e siga as instruções naquela página para configurar o módulo PAM pam_pwquality com suporte a senhas fortes.
Em seguida, adicione um arquivo de configuração
/etc/pam.d/other
restritivo.
Com esse arquivo, os aplicativos que reconhecem o PAM não
serão executados, a menos que exista um arquivo de
configuração específico para esse aplicativo.
cat > /etc/pam.d/other << "EOF"
# Início /etc/pam.d/other
auth required pam_warn.so
auth required pam_deny.so
account required pam_warn.so
account required pam_deny.so
password required pam_warn.so
password required pam_deny.so
session required pam_warn.so
session required pam_deny.so
# Fim /etc/pam.d/other
EOF
A página de manual do PAM
(man pam)
fornece um bom ponto de partida para aprender a respeito
dos diversos campos e entradas permissíveis. O Guia
Linux-PAM do(a) Administrador(a) do Sistema em /usr/share/doc/Linux-PAM-1.7.0/Linux-PAM_SAG.txt
é recomendado para informações adicionais.
Você agora deveria reinstalar os pacotes Systemd-257.3 e Shadow-4.17.3.
exibe e modifica os arquivos de registro de falha de autenticação |
|
é um binário auxiliar que cria diretórios home |
|
é um aplicativo auxiliar usado para configurar um espaço de nome privado para uma sessão de usuário(a) |
|
é um aplicativo auxiliar que transfere hashes de senha de passwd ou shadow para opasswd |
|
é usado para verificar se o carimbo padrão de tempo é válido |
|
é um binário auxiliar que verifica a senha do(a) usuário(a) atual |
|
é um binário auxiliar que atualiza a senha de um(a) determinado(a) usuário(a) |
|
fornece as interfaces entre os aplicativos e os módulos PAM |
liboauth é uma coleção de funções POSIX-C implementando o padrão OAuth Core RFC 5849. Liboauth fornece funções para escapar e codificar parâmetros de acordo com a especificação OAuth e oferece funcionalidade de alto nível para assinar solicitações ou verificar assinaturas OAuth, bem como realizar solicitações HTTP.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://downloads.sourceforge.net/liboauth/liboauth-1.0.3.tar.gz
Soma de verificação MD5 da transferência: 689b46c2b3ab1a39735ac33f714c4f7f
Tamanho da transferência: 496 KB
Espaço em disco estimado exigido: 3,5 MB
Tempo de construção estimado: menos que 0,1 UPC
Remendo exigido para uso com o OpenSSL: https://www.linuxfromscratch.org/patches/blfs/12.3/liboauth-1.0.3-openssl-1.1.0-3.patch
nss-3.108 e Doxygen-1.13.2 (para construir a documentação)
Aplique um remendo para a versão atual do OpenSSL:
patch -Np1 -i ../liboauth-1.0.3-openssl-1.1.0-3.patch
Instale liboauth executando os seguintes comandos:
./configure --prefix=/usr --disable-static && make
Se você deseja construir a documentação (precisa do Doxygen-1.13.2), emita:
make dox
Para testar os resultados, emita: make check.
Agora, como o(a) usuário(a) root
:
make install
Se você previamente já tiver criado a documentação, [então]
instale-a executando os seguintes comandos como o(a)
usuário(a) root
:
install -v -dm755 /usr/share/doc/liboauth-1.0.3 && cp -rv doc/html/* /usr/share/doc/liboauth-1.0.3
--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.
O pacote libpwquality fornece funções comuns para verificação da qualidade da senha e também pontuação com base na aparente aleatoriedade dela. A biblioteca também fornece uma função para gerar senhas aleatórias com boa pronúncia.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/libpwquality/libpwquality/releases/download/libpwquality-1.4.5/libpwquality-1.4.5.tar.bz2
Soma de verificação MD5 da transferência: 6b70e355269aef0b9ddb2b9d17936f21
Tamanho da transferência: 424 KB
Espaço em disco estimado exigido: 5,4 MB
Tempo de construção estimado: 0,1 UPC
Instale libpwquality executando os seguintes comandos:
./configure --prefix=/usr \ --disable-static \ --with-securedir=/usr/lib/security \ --disable-python-bindings && make && pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD/python
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install && pip3 install --no-index --find-links dist --no-user pwquality
--disable-python-bindings
: Esse
parâmetro desabilita construir ligações Python com o comando
obsoleto python3 setup.py
build. A instrução explícita para construir a
ligação Python 3 com o comando pip3 wheel é fornecida.
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
é uma ferramenta configurável simples para gerar senhas aleatórias e relativamente fáceis de pronunciar |
|
é uma ferramenta simples para verificar a qualidade de uma senha |
|
contém funções de API para verificar a qualidade da senha |
|
é um módulo Linux PAM usado para realizar verificação da qualidade da senha |
MIT Kerberos V5 é uma implementação livre do Kerberos 5. Kerberos é um protocolo de autenticação de rede de comunicação. Ele centraliza a base de dados de autenticação e usa aplicativos kerberizados para trabalhar com servidores ou serviços que suportem Kerberos, permitindo logins únicos e comunicação criptografada em redes internas de comunicação ou na Internet.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://kerberos.org/dist/krb5/1.21/krb5-1.21.3.tar.gz
Soma de verificação MD5 da transferência: beb34d1dfc72ba0571ce72bed03e06eb
Tamanho da transferência: 8,7 MB
Espaço em disco estimado exigido: 95 MB (adicionar 14 MB para os testes)
Tempo de construção estimado: 0,3 UPC (Usando paralelismo=4; adicionar 1,1 UPC para testes)
Utilitários BIND-9.20.6,
CrackLib-2.10.3 (/usr/share/dict/words
referenciado por
alguns testes), GnuPG-2.4.7 (para autenticar o pacote),
keyutils-1.6.3, OpenLDAP-2.6.9,
Valgrind-3.24.0 (usado durante a suíte
de teste), yasm-1.3.0, libedit, cmocka, kdcproxy, pyrad e
resolv_wrapper
Algum tipo de recurso de sincronização de tempo em seu sistema (como o ntp-4.2.8p18) é necessário, pois o Kerberos não autenticaria se houvesse uma diferença de horário entre um cliente kerberizado e o servidor KDC.
Construa MIT Kerberos V5 executando os seguintes comandos:
cd src && sed -i -e '/eq 0/{N;s/12 //}' plugins/kdb/db2/libdb2/test/run.test && ./configure --prefix=/usr \ --sysconfdir=/etc \ --localstatedir=/var/lib \ --runstatedir=/run \ --with-system-et \ --with-system-ss \ --with-system-verto=no \ --enable-dns-for-realm \ --disable-rpath && make
Para testar a construção, emita: make -j1 -k check. Alguns
testes possivelmente falhem com a versão mais recente de
dejagnu e glibc. Alguns testes possivelmente travem por um
tempo longo e falhem se o sistema não estiver conectado a uma
rede de comunicação. Um teste, t_kadm5srv
, é conhecido por falhar. Se
keyutils-1.6.3 estiver instalado, mas
Configuração de Núcleo do
Keyutils não estiver satisfeita, alguns testes falharão,
reclamando que keyctl falhou com
o código 1
.
Agora, como o(a) usuário(a) root
:
make install && cp -vfr ../doc -T /usr/share/doc/krb5-1.21.3
O comando sed remove um teste que é conhecido por falhar.
--localstatedir=/var/lib
: Essa
opção é usada de forma que os dados variáveis de tempo de
execução do Kerberos estejam localizados em /var/lib
em vez de /usr/var
.
--runstatedir=/run
:
Essa opção é usada de forma que a informação de estado em
tempo de execução do Kerberos esteja localizada em
/run
em vez do obsoleto
/var/run
.
--with-system-et
:
Essa chave faz com que a construção use as versões instaladas
do sistema do software de suporte à tabela de erros.
--with-system-ss
:
Essa chave faz com que a construção use as versões instaladas
do sistema do software de interface de linha de comando do
subsistema.
--with-system-verto=no
: Essa
chave corrige um defeito no pacote: ele não reconhece a
própria biblioteca verto dele instalada anteriormente. Isso
não é um problema, se reinstalar-se a mesma versão; mas, se
estiver atualizando, [então] a biblioteca antiga é usada como
a do sistema, ao invés de instalar a nova versão.
--enable-dns-for-realm
: Essa
chave permite que os domínios sejam resolvidos usando o
servidor DNS.
--disable-rpath
: Essa
chave evita codificar rigidamente caminhos de pesquisa de
biblioteca (rpath) nos arquivos executáveis binários e
bibliotecas compartilhadas. Esse pacote não precisa do rpath
para uma instalação no local padrão, e o rpath às vezes pode
causar efeitos indesejados ou até mesmo problemas de
segurança.
--with-ldap
: Use essa chave se
desejar compilar o módulo de estrutura de retaguarda da base
de dados OpenLDAP.
Você deveria considerar instalar algum tipo de
dicionário de verificação de senha, de forma que
consiga configurar a instalação para aceitar somente
senhas fortes. Um dicionário adequado para usar é
mostrado nas instruções do CrackLib-2.10.3. Observe que
somente um arquivo pode ser usado, mas você pode
concatenar muitos arquivos em um. O arquivo de
configuração mostrado abaixo assume que você tenha
instalado um dicionário em /usr/share/dict/words
.
Crie o arquivo de configuração do Kerberos com os
seguintes comandos emitidos pelo(a) usuário(a)
root
:
cat > /etc/krb5.conf << "EOF"
# Início /etc/krb5.conf
[libdefaults]
default_realm = <EXAMPLE.ORG>
encrypt = true
[realms]
<EXAMPLE.ORG>
= {
kdc = <belgarath.example.org>
admin_server = <belgarath.example.org>
dict_file = /usr/share/dict/words
}
[domain_realm]
.<example.org>
= <EXAMPLE.ORG>
[logging]
kdc = SYSLOG:INFO:AUTH
admin_server = SYSLOG:INFO:AUTH
default = SYSLOG:DEBUG:DAEMON
# Fim /etc/krb5.conf
EOF
Você precisará substituir seu domínio e nome adequado do
dispositivo para as ocorrências dos nomes <belgarath>
e
<example.org>
.
default_realm
deveria ser o
nome do seu domínio mudado para TUDO EM MAIÚSCULAS. Isso
não é obrigatório, mas tanto o Heimdal quanto o MIT o recomendam.
encrypt = true
fornece
encriptação de todo o tráfego entre clientes e servidores
kerberizados. Não é necessário e pode ser deixado de
lado. Se você deixá-lo desativado, [então] consegue
encriptar todo o tráfego procedente do cliente para o
servidor usando uma chave no aplicativo cliente.
Os parâmetros [realms]
dizem
aos aplicativos clientes onde procurar pelos serviços de
autenticação do KDC.
A seção [domain_realm]
mapeia
um domínio para um reino.
Crie a base de dados do KDC:
kdb5_util create -r <EXEMPLO.ORG>
-s
Agora você deveria povoar a base de dados com principais
(usuários(as)). Por enquanto, apenas use seu nome normal
de login ou root
.
kadmin.localkadmin.local:
add_policy dict-onlykadmin.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
:
ktutilktutil:
rkt /etc/krb5.keytabktutil:
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.
Para informação adicional, consulte a documentação para krb5-1.21.3 na qual as instruções acima são baseadas.
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-20241211
usando o seguinte comando:
make install-krb5
é um cliente de teste da API GSS |
|
é um servidor de teste da API GSS |
|
é um utilitário de manipulação da tabela de chaves do dispositivo |
|
é um utilitário usado para fazer modificações na base de dados Kerberos |
|
é 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 |
|
é um servidor para acesso administrativo a uma base de dados Kerberos |
|
permite que um(a) administrador(a) gerencie reinos, serviços Kerberos e políticas de tíquete |
|
é o utilitário de base de dados KDC |
|
remove o conjunto atual de tíquetes |
|
é 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 |
|
lê e exibe os tíquetes atuais no cache de credenciais |
|
é um aplicativo para mudar as senhas do Kerberos 5 |
|
pega uma base de dados principal em um formato especificado e a converte em um fluxo de registros de base de dados |
|
recebe uma base de dados enviada pelo kprop e a grava como uma base de dados local |
|
exibe o conteúdo do registro de atualização da base de dados KDC na saída gerada padrão |
|
fornece informação a respeito do como vincular aplicativos a bibliotecas |
|
é o servidor Kerberos 5 |
|
envia um Informe de Problema (IP) para um sítio central de suporte |
|
é o aplicativo de superusuário(a) que usa o
protocolo Kerberos. Exige um |
|
torna o cache especificado de credenciais o cache primário para a coleção, se uma coleção de cache estiver disponível |
|
é um aplicativo para gerenciar tabelas de chave do Kerberos |
|
imprime os números de versão de chave dos principais do Kerberos |
|
é usado para contactar um servidor de amostra e autenticar-se nele usando tíquetes Kerberos 5 e, em seguida, exibir a resposta do servidor |
|
é um simples aplicativo cliente de amostra baseado em UDP, para demonstração |
|
é um simples aplicativo servidor baseado em UDP, para demonstração |
|
é o servidor de amostra Kerberos 5 |
|
é outro cliente de amostra |
|
é outro servidor de amostra |
|
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 |
|
contém as funções administrativas de autenticação e verificação de senha exigidas pelos aplicativos Kerberos 5 do lado do cliente |
|
contém as funções administrativas de autenticação e verificação de senha exigidas pelos servidores Kerberos 5 |
|
é uma biblioteca de acesso à base de dados de autenticação/autorização Kerberos 5 |
|
contém a biblioteca interna de suporte para a funcionalidade RADIUS |
|
é uma biblioteca Kerberos 5 multifuncional |
O pacote Nettle contém uma biblioteca criptográfica de baixo nível que é projetada para caber facilmente em muitos contextos.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://ftp.gnu.org/gnu/nettle/nettle-3.10.1.tar.gz
Soma de verificação MD5 da transferência: c3dc1729cfa65fcabe2023dfbff60beb
Tamanho da transferência: 2,5 MB
Espaço em disco estimado exigido: 100 MB (com testes)
Tempo de construção estimado: 0,2 UPC (com testes; ambos usando paralelismo=4)
Valgrind-3.24.0 (opcional para os testes)
Instale Nettle executando os seguintes comandos:
./configure --prefix=/usr --disable-static && make
Para testar os resultados, emita: make check.
Agora, como o(a) usuário(a) root
:
make install && chmod -v 755 /usr/lib/lib{hogweed,nettle}.so && install -v -m755 -d /usr/share/doc/nettle-3.10.1 && install -v -m644 nettle.{html,pdf} /usr/share/doc/nettle-3.10.1
--disable-static
:
Essa chave impede a instalação das versões estáticas das
bibliotecas.
calcula um valor de hash usando um algoritmo especificado |
|
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 |
|
é 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. |
|
converte chaves RSA privadas e públicas do formato PKCS #1 para o formato sexp |
|
converte uma expressão s para uma codificação diferente |
O pacote Network Security Services (NSS) é um conjunto de bibliotecas projetadas para suportar o desenvolvimento em plataforma cruzada de aplicativos cliente e servidor habilitados para segurança. Aplicativos construídos com NSS podem suportar SSL v2 e v3, TLS, PKCS #5, PKCS #7, PKCS #11, PKCS #12, S/MIME, certificados X.509 v3 e outros padrões de segurança. Isso é útil para implementar SSL e S/MIME ou outros padrões de segurança da Internet em um aplicativo.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://archive.mozilla.org/pub/security/nss/releases/NSS_3_108_RTM/src/nss-3.108.tar.gz
Soma de verificação MD5 da transferência: 9208c05e756a06be19ce0e683777466e
Tamanho da transferência: 73 MB
Espaço em disco estimado exigido: 315 MB (adicionar 449 MB para os testes)
Tempo de construção estimado: 0,9 UPC (com paralelismo=4; adicionar 16 UPC para testes em Ryzens da AMD ou ao menos 29 UPC em máquinas Intel)
SQLite-3.49.1 e p11-kit-0.25.5 (tempo de execução)
Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/nss
Instale NSS executando os seguintes comandos:
patch -Np1 -i ../nss-standalone-1.patch && cd nss && make BUILD_OPT=1 \ NSPR_INCLUDE_DIR=/usr/include/nspr \ USE_SYSTEM_ZLIB=1 \ ZLIB_LIBS=-lz \ NSS_ENABLE_WERROR=0 \ $([ $(uname -m) = x86_64 ] && echo USE_64=1) \ $([ -f /usr/include/sqlite3.h ] && echo NSS_USE_SYSTEM_SQLITE=1)
Para executar os testes, execute os seguintes comandos:
cd tests && HOST=localhost DOMSUF=localdomain ./all.sh cd ../
Alguma informação relativa aos testes:
HOST=localhost e DOMSUF=localdomain são exigidas. Sem
essas variáveis, um FQDN é exigido que seja
especificado e essa forma genérica deveria funcionar
para todos(as), desde que localhost.localdomain
esteja
definido pelo módulo Name
Service Switch da myhostname
, conforme especificado
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
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.
Se p11-kit-0.25.5 estiver instalado, o
módulo de confiança do p11-kit (/usr/lib/pkcs11/p11-kit-trust.so
) pode ser
usado como um substituto imediato para /usr/lib/libnssckbi.so
para
transparentemente tornar as ACs do sistema disponíveis para
aplicativos cientes de NSS,
em vez da biblioteca estática fornecida por /usr/lib/libnssckbi.so
. Como o(a)
usuário(a) root
, execute o
seguinte comando:
ln -sfv ./pkcs11/p11-kit-trust.so /usr/lib/libnssckbi.so
Além disso, para aplicativos dependentes que não usam a base
de dados interna (/usr/lib/libnssckbi.so
), o script
/usr/sbin/make-ca
incluído na
página make-ca-1.15 pode gerar uma base de dados
NSS abrangente ao sistema com a chave -n
ou modificando o arquivo
/etc/make-ca/make-ca. conf
.
é 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 |
|
é usado para determinar as configurações da biblioteca NSS das bibliotecas instaladas NSS |
|
é 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 |
O pacote OpenSSH contém clientes ssh e o processo de segundo plano sshd. Isso é útil para encriptar a autenticação e o tráfego subsequente em uma rede de comunicação. Os comandos ssh e scp são implementações seguras do telnet e do rcp respectivamente.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.9p2.tar.gz
Soma de verificação MD5 da transferência: f617b95fe278bfea8d004589c7a68a85
Tamanho da transferência: 1,9 MB
Espaço em disco estimado exigido: 46 MB (adicionar 22 MB para os testes)
Tempo de construção estimado: 0,3 UPC (Usando paralelismo=4; executar os testes leva cerca de 20 minutos, independentemente da velocidade do processador)
GDB-16.2 (para testes), Linux-PAM-1.7.0 (arquivos de configuração de PAM oriundos de Shadow-4.17.3 são usados para criar arquivos do openssh), Aplicativos do Xorg (ou Ambiente de construção do "Xorg", veja-se Explicação dos Comandos), MIT Kerberos V5-1.21.3, Which-2.23 (para testes), libedit, LibreSSL Portable, OpenSC e libsectok
O OpenSSH executa como dois
processos ao se conectar a outros computadores. O primeiro
processo é um processo privilegiado e controla a emissão de
privilégios conforme necessário. O segundo processo se
comunica com a rede de intercomunicação. Etapas adicionais de
instalação são necessárias para configurar o ambiente
adequado, que são realizadas emitindo os seguintes comandos
como o(a) usuário(a) root
:
install -v -g sys -m700 -d /var/lib/sshd && groupadd -g 50 sshd && useradd -c 'sshd PrivSep' \ -d /var/lib/sshd \ -g sshd \ -s /bin/false \ -u 50 sshd
Instale o OpenSSH executando os seguintes comandos:
./configure --prefix=/usr \ --sysconfdir=/etc/ssh \ --with-privsep-path=/var/lib/sshd \ --with-default-path=/usr/bin \ --with-superuser-path=/usr/sbin:/usr/bin \ --with-pid-dir=/run && make
Para testar os resultados, emita: make -j1 tests.
Agora, como o(a) usuário(a) root
:
make install && install -v -m755 contrib/ssh-copy-id /usr/bin && install -v -m644 contrib/ssh-copy-id.1 \ /usr/share/man/man1 && install -v -m755 -d /usr/share/doc/openssh-9.9p2 && install -v -m644 INSTALL LICENCE OVERVIEW README* \ /usr/share/doc/openssh-9.9p2
--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.
~/.ssh/*
, /etc/ssh/ssh_config
e /etc/ssh/sshd_config
Não existem mudanças exigidas para nenhum desses arquivos.
No entanto, você possivelmente deseje visualizar os
arquivos do /etc/ssh/
e fazer
quaisquer mudanças apropriadas para a segurança do teu
sistema. Uma mudança recomendada é a de desabilitar o login
do(a) root
via ssh. Execute o seguinte
comando como o(a) usuário(a) root
para desabilitar o login do(a)
root
via ssh:
echo "PermitRootLogin no" >> /etc/ssh/sshd_config
Se quiser estar apto(a) a se logar sem digitar tua senha, crie primeiro ~/.ssh/id_rsa e ~/.ssh/id_rsa.pub com o ssh-keygen e depois copie ~/.ssh /id_rsa.pub para ~/.ssh/authorized_keys no computador remoto no qual deseja se logar. Você precisará mudar NOME_USUARIO(A)_REMOTO e NOME_DISPOSITIVO_REMOTO para o nome de usuário(a) e nome do dispositivo do computador remoto e também precisará inserir tua senha para que o comando ssh-copy-id seja bem-sucedido:
ssh-keygen && ssh-copy-id -i ~/.ssh/id_ed25519.pubNOME_USUÁRIO(A)_REMOTO
@NOME_DISPOSITIVO_REMOTO
Tão logo tenha obtido logins sem senha funcionando,
atualmente é mais seguro que se logar com uma senha (já que
a chave privada é muito mais longa que as senhas da maioria
das pessoas). Se você gostaria de desabilitar logins de
senha agora, como o(a) usuário(a) root
:
echo "PasswordAuthentication no" >> /etc/ssh/sshd_config && echo "KbdInteractiveAuthentication no" >> /etc/ssh/sshd_config
Se você adicionou suporte Linux-PAM e deseja que o ssh o use,
então precisará adicionar um arquivo de configuração para o
sshd e habilitar o uso do
Linux-PAM. Observe que o
ssh somente usa PAM para verificar senhas; se tiver
desabilitado os logins de senha, estes comandos não são
necessários. Se você deseja usar o PAM, emita os seguintes
comandos como o(a) usuário(a) root
:
sed 's@d/login@d/sshd@g' /etc/pam.d/login > /etc/pam.d/sshd && chmod 644 /etc/pam.d/sshd && echo "UsePAM yes" >> /etc/ssh/sshd_config
Informação adicional de configuração pode ser encontrada nas páginas de manual para sshd, ssh e ssh-agent.
Para iniciar o servidor SSH na inicialização do sistema,
instale a unidade sshd.service
incluída no pacote blfs-systemd-units-20241211.
Mudar a configuração de ListenAddress
em /etc/sshd/sshd_config
não é suportado
com a unidade de systemd do
sshd do BLFS.
make install-sshd
é um aplicativo de cópia de arquivo que age como rcp, exceto que usa um protocolo encriptado |
|
é um aplicativo do tipo FTP que funciona ao longo dos protocolos SSH1 e SSH2 |
|
é um aplicativo cliente do tipo rlogin/rsh, exceto que usa um protocolo encriptado |
|
é um processo de segundo plano que escuta solicitações de login do ssh |
|
é uma ferramenta que adiciona chaves ao ssh-agent |
|
é um agente de autenticação que consegue armazenar chaves privadas |
|
é um conjunto de comandos sequenciais que habilita logins em máquinas remotas usando chaves locais |
|
é uma ferramenta de geração de chave |
|
é um utilitário para coletar chaves públicas de dispositivo a partir de vários dispositivos |
O pacote p11-kit fornece uma maneira de carregar e de enumerar módulos PKCS #11 (um padrão de interface de token criptográfico).
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/p11-glue/p11-kit/releases/download/0.25.5/p11-kit-0.25.5.tar.xz
Soma de verificação MD5 da transferência: e9c5675508fcd8be54aa4c8cb8e794fc
Tamanho da transferência: 980 KB
Espaço em disco estimado exigido: 94 MB (com testes)
Tempo de construção estimado: 0,7UPC (com testes)
GTK-Doc-1.34.0, libxslt-1.1.42 e nss-3.108 (tempo de execução)
Prepare o gancho de ancoragem específico para distribuição:
sed '20,$ d' -i trust/trust-extract-compat &&
cat >> trust/trust-extract-compat << "EOF"
# Copiar modificações existentes de âncora para /etc/ssl/local
/usr/libexec/make-ca/copy-trust-modifications
# Atualizar lojas de confiança
/usr/sbin/make-ca -r
EOF
Instale p11-kit executando os seguintes comandos:
mkdir p11-build && cd p11-build && meson setup .. \ --prefix=/usr \ --buildtype=release \ -D trust_paths=/etc/pki/anchors && ninja
Para testar os resultados, emita: LC_ALL=C ninja test.
Agora, como o(a) usuário(a) root
:
ninja install && ln -sfv /usr/libexec/p11-kit/trust-extract-compat \ /usr/bin/update-ca-certificates
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
-D
trust_paths=/etc/pki/anchors
: essa chave
configura o local dos certificados confiáveis usados pela
libp11-kit.so.
-D hash_impl=freebl
: Use essa
chave se quiser usar a biblioteca Freebl proveniente da
NSS para hash SHA1 e MD5.
-D gtk_doc=true
: Use essa chave
se você tiver instalado GTK-Doc-1.34.0 e libxslt-1.1.42 e
deseja reconstruir a documentação e gerar páginas de manual .
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
é uma ferramenta de linha de comando que pode ser usada para realizar operações em módulos PKCS#11 configurados no sistema |
|
é uma ferramenta de linha de comando para examinar e modificar o armazenamento de política de confiança compartilhada |
|
é 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 |
|
contém funções usadas para coordenar a inicialização e a finalização de qualquer módulo PKCS#11 |
|
é o módulo proxy PKCS#11 |
Polkit é um kit de ferramentas para definir e para manusear autorizações. Ele é usado para permitir que processos não privilegiados se comuniquem com processos privilegiados.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/polkit-org/polkit/archive/126/polkit-126.tar.gz
Soma de verificação MD5 da transferência: db4ce0a42d5bf8002061f8e34ee9bdd0
Tamanho da transferência: 448 KB
Espaço em disco estimado exigido: 7,4 MB (com testes)
Tempo de construção estimado: 0,2 UPC (com testes; usando paralelismo=4)
duktape-2.7.0 e GLib-2.82.5 (GObject Introspection recomendado)
libxslt-1.1.42, e Linux-PAM-1.7.0
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.
GTK-Doc-1.34.0 e dbusmock-0.34.3 (exigido para testes)
Um agente de autenticação polkit para usar polkit no ambiente gráfico: polkit-kde-agent em Plasma-6.3.2 para KDE, o agente construído em gnome-shell-47.4 para GNOME3, polkit-gnome-0.105 para XFCE e lxqt-policykit-2.1.0 para LXQt
Se libxslt-1.1.42 estiver instalado,
então docbook-xml-4.5 e docbook-xsl-nons-1.79.2 serão
exigidos. Se você tiver instalado libxslt-1.1.42, mas
não deseja instalar nenhum dos pacotes DocBook mencionados,
você precisará usar -D
man=false
nas instruções abaixo.
Alguns testes precisam de suporte a espaços de nome de usuário(a). Se você for executar a suíte de teste, habilite o suporte e recompile o núcleo se necessário:
General setup ---> -*- Namespaces support ---> [NAMESPACES] [*] User namespace [USER_NS]
Deveria existir um(a) usuário(a) e um grupo dedicado(a) para
assumir o controle do processo de segundo plano polkitd depois que ele for
iniciado. Emita os seguintes comandos como o(a) usuário(a)
root
:
groupadd -fg 27 polkitd && useradd -c "Dono(a) do Processo de Segundo Plano do PolicyKit" -d /etc/polkit-1 -u 27 \ -g polkitd -s /bin/false polkitd
Instale o Polkit executando os seguintes comandos:
mkdir build && cd build && meson setup .. \ --prefix=/usr \ --buildtype=release \ -D man=true \ -D session_tracking=logind \ -D tests=true
Construa o pacote:
ninja
Para testar os resultados, primeiro certifique-se de que o processo de segundo plano D-Bus do sistema esteja executando e que D-Bus Python-1.3.2 e dbusmock-0.34.3 estejam instalados. Em seguida, execute ninja test.
Agora, como o(a) usuário(a) root
:
ninja install
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
-D tests=true
: Essa
chave permite executar a suíte de teste deste pacote. Como
Polkit é usado para
autorizações, a integridade dele pode afetar a segurança do
sistema. Portanto, é recomendado executar a suíte de teste
construindo este pacote.
-D os_type=lfs
: Use essa chave se
você não criou o arquivo /etc/lfs-release
ou a detecção automática
da distribuição falhará e você estará inapto(a) a usar o
Polkit.
-D authfw=shadow
: Essa chave
habilita o pacote a usar o Shadow em vez da estrutura de
autenticação Linux PAM.
Use-a se você não tiver instalado Linux PAM.
-D introspection=false
: Use essa
opção se você tiver certeza de que não precisa de arquivos do
gobject-introspection para polkit ou não tiver instalado
GLib-2.82.5 com GObject Introspection.
-D man=false
: Use essa opção para
desabilitar a geração e a instalação das páginas de manual.
Isso é útil se libxslt não estiver instalado.
-D examples=true
: Use essa opção
para construir os aplicativos de exemplo.
-D gtk_doc=true
: Use essa opção
para habilitar a construção e a instalação da documentação da
API.
é usado para obter informação relativa às ações registradas do PolicyKit |
|
é usado para verificar se um processo está autorizado para ação |
|
permite que um(a) usuário(a) autorizado(a) execute um comando como outro(a) usuário(a) |
|
é usado para iniciar um agente textual de autenticação para o assunto |
|
fornece o serviço D-Bus do org.freedesktop.PolicyKit1 no barramento de mensagem do sistema |
|
contém as funções de API do agente de autenticação Polkit |
|
contém as funções da API de autorização Polkit |
O pacote Polkit GNOME fornece um Agente de Autenticação para Polkit que se integra bem com o ambiente de área de trabalho GNOME.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/polkit-gnome/0.105/polkit-gnome-0.105.tar.xz
Soma de verificação MD5 da transferência: 50ecad37c8342fb4a52f590db7530621
Tamanho da transferência: 305 KB
Espaço em disco estimado exigido: 5,0 MB
Tempo de construção estimado: 0,1 UPC
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
Para que a estrutura de autenticação funcione, polkit-gnome-authentication-agent-1 precisa ser iniciado. No entanto, make install não instalou um arquivo de iniciação para o Polkit GNOME, de modo que você tem de criá-lo você mesmo(a).
Emita os seguintes comandos como o(a) usuário(a)
root
para criar um arquivo
de iniciação para Polkit
GNOME:
mkdir -p /etc/xdg/autostart &&
cat > /etc/xdg/autostart/polkit-gnome-authentication-agent-1.desktop << "EOF"
[Desktop Entry]
Name=PolicyKit Authentication Agent
Comment=PolicyKit Authentication Agent
Exec=/usr/libexec/polkit-gnome-authentication-agent-1
Terminal=false
Type=Application
Categories=
NoDisplay=true
OnlyShowIn=GNOME;XFCE;Unity;
AutostartCondition=GNOME3 unless-session gnome
EOF
Shadow foi realmente instalado no LFS e não existe razão para reinstalá-lo, a menos que você instalou Linux-PAM depois que teu sistema LFS foi concluído. Com Linux-PAM instalado, reinstalar Shadow permitirá que programas como login e su utilizem o PAM.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/shadow-maint/shadow/releases/download/4.17.3/shadow-4.17.3.tar.xz
Soma de verificação MD5 da transferência: 0da190e53ecee76237e4c8f3f39531ed
Tamanho da transferência: 2,3 MB
Espaço em disco estimado exigido: 103 MB
Tempo de construção estimado: 0,2 UPC
Os comandos de instalação mostrados abaixo são para instalações onde o Linux-PAM tenha sido instalado e o Shadow esteja sendo reinstalado para suportar a instalação do Linux-PAM.
Reinstale Shadow executando os seguintes comandos:
sed -i 's/groups$(EXEEXT) //' src/Makefile.in && find man -name Makefile.in -exec sed -i 's/groups\.1 / /' {} \; && find man -name Makefile.in -exec sed -i 's/getspnam\.3 / /' {} \; && find man -name Makefile.in -exec sed -i 's/passwd\.5 / /' {} \; && sed -e 's@#ENCRYPT_METHOD DES@ENCRYPT_METHOD YESCRYPT@' \ -e 's@/var/spool/mail@/var/mail@' \ -e '/PATH=/{s@/sbin:@@;s@/bin:@@}' \ -i etc/login.defs && ./configure --sysconfdir=/etc \ --disable-static \ --without-libbsd \ --with-{b,yes}crypt && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make exec_prefix=/usr pamddir= install
As páginas de manual foram instaladas no LFS, mas se a
reinstalação for desejada, execute (como o(a) usuário(a)
root
):
make -C man install-man
sed -i 's/groups$(EXEEXT) //' src/Makefile.in: Esse sed é usado para suprimir a instalação do aplicativo groups, pois a versão originária do pacote Coreutils instalado durante o LFS é a preferida.
find man -name Makefile.in -exec ... {} \;: O primeiro comando é usado para suprimir a instalação das páginas de manual do groups, de modo que as existentes instaladas a partir do pacote Coreutils não sejam substituídas. Os outros dois comandos impedem a instalação de páginas de manual que já estão instaladas pelo Man-pages no LFS.
sed -e 's@#ENCRYPT_METHOD
DES@ENCRYPT_METHOD YESCRYPT@' -e
's@/var/spool/mail@/var/mail@' -e
'/PATH=/{s@/sbin:@@;s@/bin:@@}' -i
etc/login.defs: Em vez de usar o método
padrão 'DES ', esse comando modifica a instalação para usar o
método muito mais seguro 'YESCRYPT' de resumo de senhas, que
também permite senhas maiores que oito caracteres. O comando
também muda o local obsoleto /var/spool/mail
para caixas de correio de
usuário(a) que Shadow usa
por padrão para o local /var/mail
. Ele também muda o caminho padrão
para estar consistente com aquele configurado no LFS.
--without-libbsd
:
Impede a procura pela função readpassphrase, que pode
ser encontrada somente na libbsd
, a qual nós não temos no BLFS. Uma
implementação interna de readpassphrase é usada no
lugar.
pamddir=
: Impede
instalação dos arquivos enviados de configuração do PAM em
/etc/pam.d
. A configuração
enviada não funciona com a configuração PAM do BLFS e nós
criaremos esses arquivos de configuração explicitamente.
O restante desta página é dedicado para configurar o Shadow para funcionar corretamente com o Linux-PAM.
/etc/pam.d/*
ou,
alternativamente, /etc/pam.conf
, /etc/login.defs
e /etc/security/*
Configurar seu sistema para usar Linux-PAM pode ser uma tarefa complexa. A informação abaixo fornecerá uma configuração básica, de modo que a funcionalidade de login e senha do Shadow funcione efetivamente com o Linux-PAM. Revise a informação e os links na página Linux-PAM-1.7.0 para informação adicional de configuração. Para informação específica relativa a integrar o Shadow, Linux-PAM e o libpwquality, você pode visitar o seguinte link:
O aplicativo login atualmente
realiza muitas funções que os módulos Linux-PAM agora deveriam manusear. O
seguinte comando sed comentará as linhas
apropriadas em /etc/login.defs
e impedirá login de realizar essas
funções (um arquivo de cópia de segurança chamado
/etc/login.defs.orig
também
é criado para preservar o conteúdo do arquivo original).
Emita os seguintes comandos como o(a) usuário(a)
root
:
install -v -m644 /etc/login.defs /etc/login.defs.orig && for FUNCTION in FAIL_DELAY \ FAILLOG_ENAB \ LASTLOG_ENAB \ MAIL_CHECK_ENAB \ OBSCURE_CHECKS_ENAB \ PORTTIME_CHECKS_ENAB \ QUOTAS_ENAB \ CONSOLE MOTD_FILE \ FTMP_FILE NOLOGINS_FILE \ ENV_HZ PASS_MIN_LEN \ SU_WHEEL_ONLY \ PASS_CHANGE_TRIES \ PASS_ALWAYS_WARN \ CHFN_AUTH ENCRYPT_METHOD \ ENVIRON_FILE do sed -i "s/^${FUNCTION}/# &/" /etc/login.defs done
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:
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
cat > /etc/pam.d/passwd << "EOF"
# Início /etc/pam.d/passwd
password include system-password
# Fim /etc/pam.d/passwd
EOF
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
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
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
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
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.
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
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
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.
Uma lista dos arquivos instalados, juntamente com as descrições curtas deles, pode ser encontrada em ../../../../lfs/view/12.3-systemd/chapter08/shadow.html#contents-shadow.
O ssh-askpass é um nome executável genérico para muitos pacotes, com nomes semelhantes, que fornecem um serviço interativo do X para obter senha para pacotes que exigem privilégios administrativos para serem executados. Ele exibe para o(a) usuário(a) uma caixa de janela onde a senha necessária pode ser inserida. Aqui, escolhemos o pacote de Damien Miller distribuído no tarball do OpenSSH.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.9p2.tar.gz
Soma de verificação MD5 da transferência: f617b95fe278bfea8d004589c7a68a85
Tamanho da transferência: 1,9 MB
Espaço em disco estimado exigido: 11 MB
Tempo de construção estimado: menos que 0,1 UPC
GTK-3.24.48, Sudo-1.9.16p2 (tempo de execução), Bibliotecas do Xorg e um ambiente gráfico (tempo de execução)
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.
Como o(a) usuário(a) root
,
configure Sudo-1.9.16p2 para usar ssh-askpass:
cat >> /etc/sudo.conf << "EOF" &&
# Caminho para o aplicativo auxiliar askpass
Path askpass /usr/libexec/openssh/ssh-askpass
EOF
chmod -v 0644 /etc/sudo.conf
Se um dado <aplicativo> gráfico exigir privilégios administrativos, [então] use sudo -A <aplicativo> a partir de um terminal do X, a partir de um menu do Gerenciador de janelas e(ou) substitua "Exec=<aplicativo> ..." por "Exec=sudo -A <aplicativo> ..." no arquivo <aplicativo>.desktop.
gnome-ssh-askpass3
)
O pacote stunnel contém um aplicativo que permite encriptar conexões arbitrárias TCP dentro de SSL (Secure Sockets Layer), de modo que você consiga se comunicar facilmente com clientes ao longo de canais seguros. stunnel também pode ser usado para encapsular PPP ao longo de soquetes de rede de comunicação sem mudanças no código-fonte do pacote do servidor.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.stunnel.org/downloads/archive/5.x/stunnel-5.74.tar.gz
Soma de verificação MD5 da transferência: 3cd8cd1434db7160daa75799127ccde7
Tamanho da transferência: 884 KB
Espaço em disco estimado exigido: 7,5 MB
Tempo de construção estimado: menos que 0,1 UPC
libnsl-2.0.1, netcat (exigido para os testes), tcpwrappers e TOR
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
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.74 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
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.
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.
O pacote Sudo permite que
um(a) administrador(a) do sistema dê a certos(as)
usuários(as) (ou a grupos de usuários(as)) a capacidade de
executar alguns (ou todos) comandos como root
ou outro usuário(a) enquanto
registra os comandos e argumentos.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.sudo.ws/dist/sudo-1.9.16p2.tar.gz
Soma de verificação MD5 da transferência: 52681ba928fb7aba46998f061d9ba85c
Tamanho da transferência: 5,1 MB
Espaço em disco estimado exigido: 53 MB (adicionar 10 MB para os testes)
Tempo de construção estimado: 0,2 UPC (com paralelismo=4; adicionar 0,1 UPC para testes)
Linux-PAM-1.7.0, MIT Kerberos V5-1.21.3, OpenLDAP-2.6.9, MTA (isso fornece um comando sendmail), AFS, libaudit, Opie e Sssd
Instale Sudo executando os seguintes comandos:
./configure --prefix=/usr \ --libexecdir=/usr/lib \ --with-secure-path \ --with-env-editor \ --docdir=/usr/share/doc/sudo-1.9.16p2 \ --with-passprompt="[sudo] password for %p: " && make
Para testar os resultados, emita: env LC_ALL=C make check |& tee make-check.log. Verifique os resultados com grep failed make-check.log.
Agora, como o(a) usuário(a) root
:
make install
--libexecdir=/usr/lib
: Essa
chave controla onde os aplicativos privados são instalados.
Tudo nesse diretório é uma biblioteca, de forma que eles
pertencem a /usr/lib
em vez de
/usr/libexec
.
--with-secure-path
:
Essa chave adiciona transparentemente os diretórios
/sbin
e /usr/sbin
à variável de ambiente
PATH
.
--with-env-editor
:
Essa chave habilita o uso da variável de ambiente EDITOR para
o visudo.
--with-passprompt
:
Essa chave configura o prompt de senha. O %p
será expandido para o nome
do(a) usuário(a) cuja senha está sendo solicitada.
--without-pam
: Essa chave evita a
construção do suporte a Linux-PAM quando o Linux-PAM estiver instalado no sistema.
--with-all-insults
: Essa chave
inclui todos os conjuntos de insultos do sudo. Os insultos
serão impressos se o(a) usuário(a) digitar uma senha
incorreta e se estiver habilitados em /etc/sudoers
. Use --with-insults
para tê-los habilitados por
padrão. Vários conjuntos de insultos podem ser selecionados
com algumas outras chaves.
Existem muitas opções para o comando configure do sudo. Verifique a saída gerada do configure --help para uma lista completa.
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
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.
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
converte entre formatos de arquivo sudoers |
|
executa um comando como outro(a) usuário(a)
conforme permitido pelo arquivo de configuração
|
|
é um servidor de registro de Entrada/Saída e de evento do sudo |
|
envia registros de Entrada/Saída do sudo para o servidor de registro |
|
é um link simbólico para sudo que implica
a opção |
|
é usado para reproduzir ou para listar os registros de saída gerada criados pelo sudo |
|
permite uma edição mais segura do arquivo
|
O pacote Tripwire contém aplicativos usados para verificar a integridade dos arquivos em um determinado sistema.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/Tripwire/tripwire-open-source/releases/download/2.4.3.7/tripwire-open-source-2.4.3.7.tar.gz
Soma de verificação MD5 da transferência: a5cf1bc2f235f5d8ca458f00548db6ee
Tamanho da transferência: 980 KB
Espaço em disco estimado exigido: 29 MB
Tempo de construção estimado: 1,6 UPC (instalação via scripts)
Um MTA
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
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
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
sed ...
installer/install.cfg: Esse comando informa
ao pacote para instalar a base de dados do aplicativo e
informa em /var/lib/tripwire
e
configura o local adequado para páginas de manual e
documentação.
find ..., sed ... e autoreconf -fi: O sistema de construção é inutilizável como está e tem de ser modificado para que a construção tenha sucesso.
CPPFLAGS=-std=c++11
:
Configurar os sinalizadores do pré processador C++ para a
versão 11 é necessário para evitar um conflito com a versão
padrão que é c++17 na versão recente do GCC.
make install:
Esse comando cria as chaves de segurança do Tripwire assim como instala os binários.
Existem duas chaves: uma chave do sítio e uma chave local que
são armazenadas em /etc/tripwire/
.
cp -v policy/*.txt /usr/doc/tripwire-2.4.3.7: Esse comando instala os arquivos de amostra da política do tripwire com a outra documentação do tripwire.
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.
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.
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
é um utilitário de coleta de assinatura que exibe os valores da função hash para os arquivos especificados |
|
é o principal aplicativo de verificação de integridade de arquivo |
|
ferramenta administrativa e utilitária usada para realizar certas funções administrativas relacionadas a arquivos e opções de configuração do Tripwire |
|
imprime a base de dados e arquivos de informe do Tripwire em formato de texto simples |
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.
O único propósito de um initramfs é o do montar o sistema de arquivos raiz. O initramfs é um conjunto completo de diretórios que você encontraria em um sistema de arquivos raiz normal. Ele é agrupado em um arquivamento cpio e comprimido com um dos vários algoritmos de compressão.
Ao tempo da inicialização, o carregador de inicialização carrega o núcleo e a imagem initramfs na memória e inicia o núcleo. O núcleo verifica a presença do initramfs e, se encontrado, o monta como / e executa /init. O aplicativo init é tipicamente um conjunto de comandos sequenciais de shell. Observe que o processo de inicialização leva mais tempo, possivelmente significativamente mais, se um initramfs for usado.
Para a maioria das distribuições, os módulos do núcleo são a maior razão para ter um initramfs. Em uma distribuição geral, existem muitas incógnitas, como tipos de sistema de arquivos e esquemas de disco. De certa forma, isso é o oposto do LFS, onde os recursos e o esquema do sistema são conhecidos e um núcleo personalizado normalmente é construído. Nessa situação, um initramfs raramente é necessário.
Existem somente quatro razões principais para se ter um initramfs no ambiente LFS: carregar o sistema de arquivos raiz a partir de uma rede; carregá-lo a partir de um volume lógico LVM; ter um sistema de arquivos raiz encriptado onde uma senha seja exigida; ou para a conveniência de se especificar o sistema de arquivos raiz como um RÓTULO ou como um UUID. Qualquer outra coisa geralmente significa que o núcleo não foi configurado adequadamente.
Se você decidir construir um initramfs, os conjuntos de comandos sequenciais a seguir fornecerão uma base para isso. Os conjuntos de comandos sequenciais permitirão especificar um sistema de arquivos raiz via partição UUID ou partição RÓTULO ou um sistema de arquivos raiz em um volume lógico LVM. Eles não suportam um sistema de arquivos raiz encriptado ou montar o sistema de arquivos raiz passando por uma placa de rede de comunicação. Para uma capacidade mais completa, vejam-se as Dicas do LFS ou dracut.
Para instalar estes conjuntos de comandos sequenciais,
execute os seguintes comandos como o(a) usuário(a)
root
:
cat > /usr/sbin/mkinitramfs << "EOF"
#!/bin/bash
# Este arquivo é baseado em parte no script mkinitramfs para o LiveCD do LFS
# escrito por Alexander E. Patrakov e Jeremy Huntwork.
copy()
{
local file
if [ "$2" = "lib" ]; then
file=$(PATH=/usr/lib type -p $1)
else
file=$(type -p $1)
fi
if [ -n "$file" ] ; then
cp $file $WDIR/usr/$2
else
echo "Ausente arquivo exigido: $1 para o diretório $2"
rm -rf $WDIR
exit 1
fi
}
if [ -z $1 ] ; then
INITRAMFS_FILE=initrd.img-no-kmods
else
KERNEL_VERSION=$1
INITRAMFS_FILE=initrd.img-$KERNEL_VERSION
fi
if [ -n "$KERNEL_VERSION" ] && [ ! -d "/usr/lib/modules/$1" ] ; then
echo "Sem diretório dos módulos chamado $1"
exit 1
fi
printf "Criando $INITRAMFS_FILE... "
binfiles="sh cat cp dd killall ls mkdir mknod mount "
binfiles="$binfiles umount sed sleep ln rm uname"
binfiles="$binfiles readlink basename"
# O systemd instala udevadm em /bin. Outras implementações do udev o tem em /sbin
if [ -x /usr/bin/udevadm ] ; then binfiles="$binfiles udevadm"; fi
sbinfiles="modprobe blkid switch_root"
# Arquivos e locais opcionais
for f in mdadm mdmon udevd udevadm; do
if [ -x /usr/sbin/$f ] ; then sbinfiles="$sbinfiles $f"; fi
done
# Adiciona lvm se presente (não pode ser feito com os outros, pois
# também precisa do dmsetup
if [ -x /usr/sbin/lvm ] ; then sbinfiles="$sbinfiles lvm dmsetup"; fi
unsorted=$(mktemp /tmp/unsorted.XXXXXXXXXX)
DATADIR=/usr/share/mkinitramfs
INITIN=init.in
# Cria um diretório temporário de trabalho
WDIR=$(mktemp -d /tmp/initrd-work.XXXXXXXXXX)
# Cria a estrutura básica de diretório
mkdir -p $WDIR/{dev,run,sys,proc,usr/{bin,lib/{firmware,modules},sbin}}
mkdir -p $WDIR/etc/{modprobe.d,udev/rules.d}
touch $WDIR/etc/modprobe.d/modprobe.conf
ln -s usr/bin $WDIR/bin
ln -s usr/lib $WDIR/lib
ln -s usr/sbin $WDIR/sbin
ln -s lib $WDIR/lib64
# Cria os nós necessários de dispositivo
mknod -m 640 $WDIR/dev/console c 5 1
mknod -m 664 $WDIR/dev/null c 1 3
# Instala os arquivos de configuração do udev
if [ -f /etc/udev/udev.conf ]; then
cp /etc/udev/udev.conf $WDIR/etc/udev/udev.conf
fi
for file in $(find /etc/udev/rules.d/ -type f) ; do
cp $file $WDIR/etc/udev/rules.d
done
# Instala quaisquer firmware presentes
cp -a /usr/lib/firmware $WDIR/usr/lib
# Copia o arquivo de configuração RAID se presente
if [ -f /etc/mdadm.conf ] ; then
cp /etc/mdadm.conf $WDIR/etc
fi
# Instala o arquivo init
install -m0755 $DATADIR/$INITIN $WDIR/init
if [ -n "$KERNEL_VERSION" ] ; then
if [ -x /usr/bin/kmod ] ; then
binfiles="$binfiles kmod"
else
binfiles="$binfiles lsmod"
sbinfiles="$sbinfiles insmod"
fi
fi
# Instala binários básicos
for f in $binfiles ; do
ldd /usr/bin/$f | sed "s/\t//" | cut -d " " -f1 >> $unsorted
copy /usr/bin/$f bin
done
for f in $sbinfiles ; do
ldd /usr/sbin/$f | sed "s/\t//" | cut -d " " -f1 >> $unsorted
copy $f sbin
done
# Adiciona bibliotecas do udevd se não em /usr/sbin
if [ -x /usr/lib/udev/udevd ] ; then
ldd /usr/lib/udev/udevd | sed "s/\t//" | cut -d " " -f1 >> $unsorted
elif [ -x /usr/lib/systemd/systemd-udevd ] ; then
ldd /usr/lib/systemd/systemd-udevd | sed "s/\t//" | cut -d " " -f1 >> $unsorted
fi
# Adiciona links simbólicos de módulo se apropriado
if [ -n "$KERNEL_VERSION" ] && [ -x /usr/bin/kmod ] ; then
ln -s kmod $WDIR/usr/bin/lsmod
ln -s kmod $WDIR/usr/bin/insmod
fi
# Adiciona links simbólicos do lvm se apropriado
# Também copia o arquivo lvm.conf
if [ -x /usr/sbin/lvm ] ; then
ln -s lvm $WDIR/usr/sbin/lvchange
ln -s lvm $WDIR/usr/sbin/lvrename
ln -s lvm $WDIR/usr/sbin/lvextend
ln -s lvm $WDIR/usr/sbin/lvcreate
ln -s lvm $WDIR/usr/sbin/lvdisplay
ln -s lvm $WDIR/usr/sbin/lvscan
ln -s lvm $WDIR/usr/sbin/pvchange
ln -s lvm $WDIR/usr/sbin/pvck
ln -s lvm $WDIR/usr/sbin/pvcreate
ln -s lvm $WDIR/usr/sbin/pvdisplay
ln -s lvm $WDIR/usr/sbin/pvscan
ln -s lvm $WDIR/usr/sbin/vgchange
ln -s lvm $WDIR/usr/sbin/vgcreate
ln -s lvm $WDIR/usr/sbin/vgscan
ln -s lvm $WDIR/usr/sbin/vgrename
ln -s lvm $WDIR/usr/sbin/vgck
# Arquivo(s) de configuração
cp -a /etc/lvm $WDIR/etc
fi
# Instala bibliotecas
sort $unsorted | uniq | while read library ; do
# linux-vdso e linux-gate são pseudo bibliotecas e não correspondem a um arquivo
# libsystemd-shared está em /lib/systemd, de forma que não é encontrada pela cópia, e
# é copiada abaixo de qualquer forma
if [[ "$library" == linux-vdso.so.1 ]] ||
[[ "$library" == linux-gate.so.1 ]] ||
[[ "$library" == libsystemd-shared* ]]; then
continue
fi
copy $library lib
done
if [ -d /usr/lib/udev ]; then
cp -a /usr/lib/udev $WDIR/usr/lib
fi
if [ -d /usr/lib/systemd ]; then
cp -a /usr/lib/systemd $WDIR/usr/lib
fi
if [ -d /usr/lib/elogind ]; then
cp -a /usr/lib/elogind $WDIR/usr/lib
fi
# Instala os módulos do núcleo se solicitado
if [ -n "$KERNEL_VERSION" ]; then
find \
/usr/lib/modules/$KERNEL_VERSION/kernel/{crypto,fs,lib} \
/usr/lib/modules/$KERNEL_VERSION/kernel/drivers/{block,ata,nvme,md,firewire} \
/usr/lib/modules/$KERNEL_VERSION/kernel/drivers/{scsi,message,pcmcia,virtio} \
/usr/lib/modules/$KERNEL_VERSION/kernel/drivers/usb/{host,storage} \
-type f 2> /dev/null | cpio --make-directories -p --quiet $WDIR
cp /usr/lib/modules/$KERNEL_VERSION/modules.{builtin,order} \
$WDIR/usr/lib/modules/$KERNEL_VERSION
if [ -f /usr/lib/modules/$KERNEL_VERSION/modules.builtin.modinfo ]; then
cp /usr/lib/modules/$KERNEL_VERSION/modules.builtin.modinfo \
$WDIR/usr/lib/modules/$KERNEL_VERSION
fi
depmod -b $WDIR $KERNEL_VERSION
fi
( cd $WDIR ; find . | cpio -o -H newc --quiet | gzip -9 ) > $INITRAMFS_FILE
# Prepare o carregamento antecipado do micro código se disponível
if ls /usr/lib/firmware/intel-ucode/* >/dev/null 2>&1 ||
ls /usr/lib/firmware/amd-ucode/* >/dev/null 2>&1; then
# Primeiro, esvazia WDIR para reusá-lo
rm -r $WDIR/*
DSTDIR=$WDIR/kernel/x86/microcode
mkdir -p $DSTDIR
if [ -d /usr/lib/firmware/amd-ucode ]; then
cat /usr/lib/firmware/amd-ucode/microcode_amd*.bin > $DSTDIR/AuthenticAMD.bin
fi
if [ -d /usr/lib/firmware/intel-ucode ]; then
cat /usr/lib/firmware/intel-ucode/* > $DSTDIR/GenuineIntel.bin
fi
( cd $WDIR; find . | cpio -o -H newc --quiet ) > microcode.img
cat microcode.img $INITRAMFS_FILE > tmpfile
mv tmpfile $INITRAMFS_FILE
rm microcode.img
fi
# Remove os arquivos e diretórios temporários
rm -rf $WDIR $unsorted
printf "done.\n"
EOF
chmod 0755 /usr/sbin/mkinitramfs
mkdir -p /usr/share/mkinitramfs &&
cat > /usr/share/mkinitramfs/init.in << "EOF"
#!/bin/sh
PATH=/usr/bin:/usr/sbin
export PATH
problem()
{
printf "Encontrado um problema!\n\nDeixando você em um shell.\n\n"
sh
}
no_device()
{
printf "O dispositivo %s, que se presume conter o\n" $1
printf "sistema de arquivos raiz, não existe.\n"
printf "Por favor, corrija esse problema e saia deste shell.\n\n"
}
no_mount()
{
printf "Não poderia montar o dispositivo %s\n" $1
printf "Dormindo para sempre. Por favor, reinicialize e corrija a linha de comando do núcleo.\n\n"
printf "Talvez o dispositivo esteja formatado com um sistema de arquivos não suportado?\n\n"
printf "Ou talvez a auto detecção do tipo do sistema de arquivos foi errada, caso no qual\n"
printf "você deveria adicionar o parâmetro rootfstype=... à linha de comando do núcleo.\n\n"
printf "Partições disponíveis:\n"
}
do_mount_root()
{
mkdir /.root
[ -n "$rootflags" ] && rootflags="$rootflags,"
rootflags="$rootflags$ro"
case "$root" in
/dev/* ) device=$root ;;
UUID=* ) eval $root; device="/dev/disk/by-uuid/$UUID" ;;
PARTUUID=*) eval $root; device="/dev/disk/by-partuuid/$PARTUUID" ;;
LABEL=* ) eval $root; device="/dev/disk/by-label/$LABEL" ;;
"" ) echo "Nenhum dispositivo raiz especificado." ; problem ;;
esac
while [ ! -b "$device" ] ; do
no_device $device
problem
done
if ! mount -n -t "$rootfstype" -o "$rootflags" "$device" /.root ; then
no_mount $device
cat /proc/partitions
while true ; do sleep 10000 ; done
else
echo "Dispositivo montado com sucesso $root"
fi
}
do_try_resume()
{
case "$resume" in
UUID=* ) eval $resume; resume="/dev/disk/by-uuid/$UUID" ;;
LABEL=*) eval $resume; resume="/dev/disk/by-label/$LABEL" ;;
esac
if $noresume || ! [ -b "$resume" ]; then return; fi
ls -lH "$resume" | ( read x x x x maj min x
echo -n ${maj%,}:$min > /sys/power/resume )
}
init=/sbin/init
root=
rootdelay=
rootfstype=auto
ro="ro"
rootflags=
device=
resume=
noresume=false
mount -n -t devtmpfs devtmpfs /dev
mount -n -t proc proc /proc
mount -n -t sysfs sysfs /sys
mount -n -t tmpfs tmpfs /run
read -r cmdline < /proc/cmdline
for param in $cmdline ; do
case $param in
init=* ) init=${param#init=} ;;
root=* ) root=${param#root=} ;;
rootdelay=* ) rootdelay=${param#rootdelay=} ;;
rootfstype=*) rootfstype=${param#rootfstype=} ;;
rootflags=* ) rootflags=${param#rootflags=} ;;
resume=* ) resume=${param#resume=} ;;
noresume ) noresume=true ;;
ro ) ro="ro" ;;
rw ) ro="rw" ;;
esac
done
# Local do udevd depende da versão
if [ -x /sbin/udevd ]; then
UDEVD=/sbin/udevd
elif [ -x /lib/udev/udevd ]; then
UDEVD=/lib/udev/udevd
elif [ -x /lib/systemd/systemd-udevd ]; then
UDEVD=/lib/systemd/systemd-udevd
else
echo "Não consigo encontrar o udevd nem o systemd-udevd"
problem
fi
${UDEVD} --daemon --resolve-names=never
udevadm trigger
udevadm settle
if [ -f /etc/mdadm.conf ] ; then mdadm -As ; fi
if [ -x /sbin/vgchange ] ; then /sbin/vgchange -a y > /dev/null ; fi
if [ -n "$rootdelay" ] ; then sleep "$rootdelay" ; fi
do_try_resume # Esta função não retornará se retomar a partir do disco
do_mount_root
killall -w ${UDEVD##*/}
exec switch_root /.root "$init" "$@"
EOF
LVM2-2.03.30 e(ou) mdadm-4.3 precisam ser instalados antes de gerar o initramfs, se a partição do sistema os usar.
Para construir um initramfs, execute o seguinte como o(a)
usuário(a) root
:
mkinitramfs [VERSÃO DO NÚCLEO]
O argumento opcional é o diretório onde os módulos
apropriados do núcleo estão localizados. Esse precisa ser um
subdiretório de /lib/modules
.
Se nenhum módulo for especificado, então o initramfs é
nomeado initrd.img-no-kmods. Se uma versão
do núcleo for especificada, o initrd é nomeado de
initrd.img-$VERSÃO_DO_NÚCLEO
e é apropriado somente para o núcleo específico especificado.
O arquivo de saída gerada será colocado no diretório atual.
Se for necessário o carregamento antecipado do microcódigo
(veja-se “Atualizações de
microcódigo para CPUs”), você pode instalar o blob ou
contêiner apropriado em /lib/firmware
. Ele será adicionado
automaticamente ao initrd ao executar mkinitramfs.
Depois de gerar o initrd, copie-o para o diretório
/boot
.
Agora edite /boot/grub/grub.cfg
e adicione uma nova entrada de menu. Abaixo estão vários
exemplos.
# initramfs genérico e sistema de arquivos raiz identificado por UUID menuentry "LFS Dev (LFS-7.0-Feb14) initrd, Linux 3.0.4" { linux /vmlinuz-3.0.4-lfs-20120214 root=UUID=54b934a9-302d-415e-ac11-4988408eb0a8 ro initrd /initrd.img-no-kmods }
# initramfs genérico e sistema de arquivos raiz na partição LVM menuentry "LFS Dev (LFS-7.0-Feb18) initrd lvm, Linux 3.0.4" { linux /vmlinuz-3.0.4-lfs-20120218 root=/dev/mapper/myroot ro initrd /initrd.img-no-kmods }
# initramfs específico e sistema de arquivos raiz identificado por RÓTULO menuentry "LFS Dev (LFS-7.1-Feb20) initrd label, Linux 3.2.6" { linux /vmlinuz-3.2.6-lfs71-120220 root=LABEL=lfs71 ro initrd /initrd.img-3.2.6-lfs71-120220 }
Finalmente, reinicialize o sistema e selecione o sistema desejado.
O pacote btrfs-progs contém ferramentas de administração e de depuração para o sistema de arquivos B-tree (btrfs).
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.kernel.org/pub/linux/kernel/people/kdave/btrfs-progs/btrfs-progs-v6.13.tar.xz
Soma de verificação MD5 da transferência: 9dced32d9f63118d214c01fed08c1439
Tamanho da transferência: 2,6 MB
Espaço em disco estimado exigido: 65 MB (arquivos temporários criados durante testes precisam de até 10 GB)
Tempo de construção estimado: 0,3 UPC (com paralelismo=4; adicionar 3,7 UPC para testes, até 14 UPC em discos lentos)
LVM2-2.03.30 (dmsetup é usado em testes), sphinx-8.2.1 e sphinx_rtd_theme-3.0.2 (exigido para construir documentação) e reiserfsprogs (para testes).
Habilite a seguinte opção na configuração do núcleo e recompile o núcleo:
File systems ---> <*/M> Btrfs filesystem support [BTRFS_FS]
Além do acima e das opções exigidas para LVM2-2.03.30, as seguintes opções precisam estar configuradas para executar-se testes. As opções marcadas como vazias não deveriam estar selecionadas porque elas são para desenvolvedores(as) e fazem alguns testes falharem.
File systems ---> <*/M> Btrfs filesystem support [BTRFS_FS] [*] Btrfs POSIX Access Control Lists [BTRFS_FS_POSIX_ACL] [ ] Btrfs will run sanity tests upon loading [BTRFS_FS_RUN_SANITY_TESTS] [ ] Btrfs debugging support [BTRFS_DEBUG] [ ] Btrfs assert support [BTRFS_ASSERT] [ ] Btrfs with the ref verify tool compiled in [BTRFS_FS_REF_VERIFY]
Instale o btrfs-progs executando os seguintes comandos:
./configure --prefix=/usr \ --disable-static \ --disable-documentation && make
Alguns testes exigem grep construído com expressões regulares perl. Para obter isso, reconstrua o grep com as instruções do Capítulo 8 do LFS depois de instalar o pcre2-10.45.
Antes de executar os testes, construa um aplicativo de suporte:
make fssum
Agora remova um teste conhecido por falhar. Como root
:
mv tests/mkfs-tests/013-reserved-1M-for-single/test.sh{,.broken}
Para testar os resultados, emita (como o(a) usuário(a)
root
):
pushd tests ./fsck-tests.sh ./mkfs-tests.sh ./cli-tests.sh ./convert-tests.sh ./misc-tests.sh ./fuzz-tests.sh popd
Se as opções de núcleo mencionadas acima não estiverem habilitadas, alguns testes falharão e impedirão que todos os testes restantes executem, porque a imagem do disco de teste não foi desmontada corretamente. Certifique-se também de que o módulo de núcleo do btrfs esteja carregado.
Instale o pacote como o(a) usuário(a) root
:
make install
Se você tiver passado --disable-documentation
para
configure e
precisar das páginas de manual, instale-as executando, como
o(a) usuário(a) root
:
for i in 5 8; do install Documentation/*.$i /usr/share/man/man$i done
--disable-static
:
Essa chave impede a instalação das versões estáticas das
bibliotecas.
--disable-documentation
: Essa
chave desabilita reconstruir as páginas de manual, porque
isso exige sphinx-8.2.1.
é a interface principal para as operações do sistema de arquivos btrfs |
|
converte a partir de um sistema de arquivos ext2/3/4 ou reiserfs para btrfs |
|
é um filtro para encontrar a raiz do btrfs |
|
mapeia a extensão lógica do btrfs para a extensão física |
|
sobrescreve o superbloco primário com uma cópia da cópia de segurança |
|
ajusta vários parâmetros do sistema de arquivos |
|
não faz nada, mas está presente para consistência com fstab |
|
cria um sistema de arquivos btrfs |
O pacote dosfstools contém vários utilitários para uso com a família FAT de sistemas de arquivos.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/dosfstools/dosfstools/releases/download/v4.2/dosfstools-4.2.tar.gz
Soma de verificação MD5 da transferência: 49c8e457327dc61efab5b115a27b087a
Tamanho da transferência: 314 KB
Espaço em disco estimado exigido: 4,5 MB (com testes)
Tempo de construção estimado: menos que 0,1 UPC
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.
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
--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.
FUSE (Filesystem in Userspace) é uma interface simples para aplicativos do espaço de usuário(a) para exportar um sistema de arquivos virtual para o núcleo Linux. O Fuse também visa a fornecer um método seguro para usuários(as) não privilegiados(as) criarem e montarem as próprias implementações de sistema de arquivos deles(as).
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/libfuse/libfuse/releases/download/fuse-3.16.2/fuse-3.16.2.tar.gz
Soma de verificação MD5 da transferência: b00bf08b27ead4a9411578777e94a1cc
Tamanho da transferência: 14 MB
Espaço em disco estimado exigido: 222 MB (com testes e documentação)
Tempo de construção estimado: 0,2 UPC (adicionar 0,3 UPC para testes)
Doxygen-1.13.2 (para reconstruir a documentação da API), pytest-8.3.4 (exigido para testes) e looseversion (para testes)
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]
Instale Fuse executando os seguintes comandos:
sed -i '/^udev/,$ s/^/#/' util/meson.build && mkdir build && cd build && meson setup --prefix=/usr --buildtype=release .. && ninja
A documentação da API está incluída no pacote, mas se você tiver o Doxygen-1.13.2 instalado e quiser reconstruí-la, [então] emita:
pushd .. && doxygen doc/Doxyfile && popd
Para testar os resultados, emita os seguintes comandos (como
o(a) usuário(a) root
):
python3 -m venv --system-site-packages testenv && source testenv/bin/activate && pip3 install looseversion && python3 -m pytest deactivate
O módulo Python pytest-8.3.4 é exigido para os testes. Um
teste chamado test_cuse
falhará
se o item de configuração CONFIG_CUSE
não foi habilitado
quando o núcleo foi construído. Um teste, test/util.py
, gerará um aviso devido ao uso
de uma marca desconhecida no pytest.
Agora, como o(a) usuário(a) root
:
ninja install && chmod u+s /usr/bin/fusermount3 && cd .. && cp -Rv doc/html -T /usr/share/doc/fuse-3.16.2 && install -v -m644 doc/{README.NFS,kernel.txt} \ /usr/share/doc/fuse-3.16.2
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.
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.
O pacote jfsutils contém ferramentas de administração e de depuração para o sistema de arquivos jfs.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://jfs.sourceforge.net/project/pub/jfsutils-1.1.15.tar.gz
Soma de verificação MD5 da transferência: 8809465cd48a202895bc2a12e1923b5d
Tamanho da transferência: 532 KB
Espaço em disco estimado exigido: 8,9 MB
Tempo de construção estimado: 0,1 UPC
Remendo necessário para corrigir problemas expostos pelo GCC 10 e posterior: https://www.linuxfromscratch.org/patches/blfs/12.3/jfsutils-1.1.15-gcc10_fix-1.patch
Habilite a seguinte opção na configuração do núcleo e recompile o núcleo:
File systems ---> <*/M> JFS filesystem support [JFS_FS]
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
sed ...: Corrige a construção com a glibc 2.28.
é usado para reproduzir o registro de transações do JFS, verificar um dispositivo formatado do JFS para erros e corrigir quaisquer erros encontrados |
|
é um link rígido para fsck.jfs |
|
constrói um sistema de arquivos JFS |
|
é um link rígido para mkfs.jfs |
|
é um aplicativo que pode ser usado para realizar várias ações de baixo nível em um dispositivo formatado do JFS |
|
extrai um registro de serviço fsck do JFS em um arquivo e(ou) formata e exibe o arquivo extraído |
|
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 |
|
ajusta os parâmetros ajustáveis do sistema de arquivos em sistemas de arquivos JFS |
O pacote LVM2 é um conjunto de ferramentas que gerenciam partições lógicas. Ele permite a extensão completa de sistemas de arquivos transversalmente entre vários discos físicos e partições de disco e fornece crescimento dinâmico ou redução de partições lógicas, espelhamento e instantâneos de baixo consumo de armazenamento.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://sourceware.org/ftp/lvm2/LVM2.2.03.30.tgz
Soma de verificação MD5 da transferência: 048cd0e39cce7b15e48a8d3ba5c8d80c
Tamanho da transferência: 2,7 MB
Espaço em disco estimado exigido: 39 MB (adicionar 20 MB para testes; arquivos transitórios podem crescer até cerca de 300 MB no diretório /tmp durante testes)
Tempo de construção estimado: 0,4 UPC (adicionar 9 a 48 UPC para testes, dependendo da velocidade do disco e de se o dispositivo de bloco de RAM estiver habilitado no núcleo)
mdadm-4.3, Valgrind-3.24.0, Which-2.23, xfsprogs-6.13.0 (todos quatro possivelmente sejam usados, mas não são exigidos, para testes), reiserfsprogs, thin-provisioning-tools e vdo
Habilite as seguintes opções na configuração do núcleo e recompile o núcleo:
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]
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).
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
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.
é um utilitário para desativar dispositivos de bloco |
|
(opcional) é o processo de segundo plano de evento do Device Mapper |
|
é uma ferramenta de baixo nível de gerenciamento de volume lógico |
|
é um utilitário usado para redimensionar ou para verificar o sistema de arquivos em um dispositivo |
|
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*) |
|
é uma ferramenta usada para despejar várias informações concernentes ao LVM2 |
|
é usado para importar um VG duplicado (por exemplo, instantâneo de hardware) |
|
contém as funções da API Device Mapper |
O LVM gerencia as unidades de disco. Ele permite que várias unidades e partições sejam combinadas em grupos de volumes maiores; ajuda na produção de cópias de segurança por meio de um instantâneo e permite o redimensionamento dinâmico do volume. Ele também pode fornecer espelhamento semelhante a uma matriz RAID 1.
Uma discussão completa do LVM está além do escopo desta introdução, mas os conceitos básicos são apresentados abaixo.
Para executar qualquer dos comandos apresentados aqui, o pacote
LVM2-2.03.30 precisa estar instalado. Todos
os comandos precisam ser executados como o(a) usuário(a)
root
.
O gerenciamento de discos com LVM é realizado usando os seguintes conceitos:
Esses são discos físicos ou partições, como /dev/sda3 ou /dev/sdb.
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.
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
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, 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
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 tecnologia de armazenamento conhecida como RAID (Redundant Array of Independent Disks) combina vários discos físicos em uma unidade lógica. As unidades geralmente podem ser combinadas para fornecer redundância de dados ou para estender o tamanho das unidades lógicas além da capacidade dos discos físicos ou de ambos. A tecnologia também permite fornecer manutenção de hardware sem desligar o sistema.
Os tipos de organização de RAID são descritos no RAID Wiki.
Observe que, embora o RAID forneça proteção contra falhas de disco, ele não é um substituto para as cópias de segurança. Um arquivo deletado ainda é deletado em todos os discos de uma matriz RAID. As cópias de segurança modernas geralmente são feitas via rsync-3.4.1.
Existem três tipos principais de implementação de RAID: RAID de hardware, RAID baseado em BIOS e RAID de software.
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.
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.
O RAID baseado em software é a forma mais flexível de RAID. É fácil instalar e atualizar e fornece capacidade total em todas ou em parte de quaisquer unidades disponíveis para o sistema. No BLFS, o software RAID é encontrado em mdadm-4.3.
A configuração de um dispositivo RAID é direta usando
mdadm. Geralmente os
dispositivos são criados no diretório /dev
como /dev/mdx
onde x é um número inteiro.
A primeira etapa na criação de uma matriz RAID é a de usar um
software de particionamento, como o fdisk
ou o parted-3.6, para
definir as partições necessárias para a matriz. Normalmente,
existirá uma partição em cada unidade participante da matriz
RAID, mas isso não é estritamente necessário. Para este
exemplo, existirão quatro unidades de disco: /dev/sda
, /dev/sdb
, /dev/sdc
e /dev/sdd
. Eles serão particionados como
segue:
Tamanho da partição Tipo Uso
sda1: 100 MB fd Linux raid auto /boot (RAID 1) /dev/md0
sda2: 10 GB fd Linux raid auto / (RAID 1) /dev/md1
sda3: 2 GB 83 Linux swap swap
sda4 300 GB fd Linux raid auto /home (RAID 5) /dev/md2
sdb1: 100 MB fd Linux raid auto /boot (RAID 1) /dev/md0
sdb2: 10 GB fd Linux raid auto / (RAID 1) /dev/md1
sdb3: 2 GB 83 Linux swap swap
sdb4 300 GB fd Linux raid auto /home (RAID 5) /dev/md2
sdc1: 12 GB fd Linux raid auto /usr/src (RAID 0) /dev/md3
sdc2: 300 GB fd Linux raid auto /home (RAID 5) /dev/md2
sdd1: 12 GB fd Linux raid auto /usr/src (RAID 0) /dev/md3
sdd2: 300 GB fd Linux raid auto /home (RAID 5) /dev/md2
Nesse arranjo, uma partição separada de inicialização é
criada como a primeira matriz RAID pequena e um sistema de
arquivos raiz como a segunda matriz RAID, ambas espelhadas. A
terceira partição é uma matriz grande (cerca de 1 TB) para o
diretório /home
. Isso fornece
uma capacidade de distribuir dados entre vários dispositivos,
melhorando a velocidade de leitura e de gravação de arquivos
grandes. Por fim, uma quarta matriz é criada que concatena
duas partições em um dispositivo maior.
Todos os comandos mdadm
precisam ser executados como o(a) usuário(a) root
.
Para criar essas matrizes RAID, os comandos são:
/sbin/mdadm -Cv /dev/md0 --level=1 --raid-devices=2 /dev/sda1 /dev/sdb1 /sbin/mdadm -Cv /dev/md1 --level=1 --raid-devices=2 /dev/sda2 /dev/sdb2 /sbin/mdadm -Cv /dev/md3 --level=0 --raid-devices=2 /dev/sdc1 /dev/sdd1 /sbin/mdadm -Cv /dev/md2 --level=5 --raid-devices=4 \ /dev/sda4 /dev/sdb4 /dev/sdc2 /dev/sdd2
Os dispositivos criados podem ser examinados por dispositivo.
Por exemplo, para ver os detalhes de /dev/md1
, use /sbin/mdadm --detail
/dev/md1
:
Version : 1.2
Creation Time : Tue Feb 7 17:08:45 2012
Raid Level : raid1
Array Size : 10484664 (10.00 GiB 10.74 GB)
Used Dev Size : 10484664 (10.00 GiB 10.74 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Update Time : Tue Feb 7 23:11:53 2012
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Name : core2-blfs:0 (local to host core2-blfs)
UUID : fcb944a4:9054aeb2:d987d8fe:a89121f8
Events : 17
Number Major Minor RaidDevice State
0 8 1 0 active sync /dev/sda1
1 8 17 1 active sync /dev/sdb1
A partir deste ponto, as partições podem ser formatadas com o
sistema de arquivos de escolha (por exemplo, ext3, ext4,
xfsprogs-6.13.0, etc). As partições
formatadas podem então serem montadas. O arquivo /etc/fstab
pode usar os dispositivos
criados para montagem em tempo de inicialização e a linha de
comando linux em /boot/grub/grub.cfg
pode especificar
root=/dev/md1
.
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.
O pacote mdadm contém ferramentas de administração para RAID de software.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.kernel.org/pub/linux/utils/raid/mdadm/mdadm-4.3.tar.xz
Soma de verificação MD5 da transferência: a42def84e31734a529111394f2289e0e
Tamanho da transferência: 456 KB
Espaço em disco estimado exigido: 5,5 MB
Tempo de construção estimado: 0,1 UPC
Um MTA
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]
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
make everything: Esse alvo opcional cria aplicativos extras, particularmente uma versão vinculada estaticamente do mdadm. Isso precisa ser instalado manualmente.
Um novo controlador de leitura e gravação para NTFS, chamado NTFS3, foi adicionado ao núcleo Linux desde o lançamento 5.15. O desempenho do NTFS3 é muito melhor que o do NTFS-3G. Para habilitar o NTFS3, habilite as seguintes opções na configuração do núcleo e recompile o núcleo, se necessário:
File systems ---> DOS/FAT/EXFAT/NT Filesystems ---> <*/M> NTFS Read-Write file system support [NTFS3_FS]
Para garantir que o comando mount use NTFS3 para partições NTFS, crie um script vinculador:
cat > /usr/sbin/mount.ntfs << "EOF" &&
#!/bin/sh
exec mount -t ntfs3 "$@"
EOF
chmod -v 755 /usr/sbin/mount.ntfs
Com o suporte do núcleo disponível, o ntfs-3g é necessário somente se você precisar dos utilitários oriundos dele (por exemplo, para criar sistemas de arquivos NTFS).
O pacote Ntfs-3g contém um controlador estável, de leitura e gravação e de código aberto para partições NTFS. As partições NTFS são usadas pela maioria dos sistemas operacionais da Microsoft. O Ntfs-3g permite que você monte partições NTFS no modo de leitura e gravação a partir do seu sistema Linux. Ele usa o módulo do núcleo FUSE para poder implementar o suporte NTFS no espaço do(a) usuário(a). O pacote também contém vários utilitários úteis para manipular partições NTFS.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://tuxera.com/opensource/ntfs-3g_ntfsprogs-2022.10.3.tgz
Soma de verificação MD5 da transferência: a038af61be7584b79f8922ff11244090
Tamanho da transferência: 1,3 MB
Espaço em disco estimado exigido: 22 MB
Tempo de construção estimado: 0,2 UPC
fuse 2.x (isso desabilita as montagens do(a) usuário(a))
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.
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
--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.
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
é semelhante ao ntfs-3g, mas usa a interface de baixo nível Fuse |
|
é um link simbólico para mkntfs |
|
cria um sistema de arquivos NTFS |
|
é um link simbólico para lowntfs-3g |
|
monta um sistema de arquivos NTFS |
|
é um link simbólico para 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 |
|
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 |
|
identifica arquivos em uma região especificada de um volume NTFS |
|
copia um arquivo para um volume NTFS |
|
corrige erros comuns e força o Windows a verificar uma partição NTFS |
|
lista o conteúdo do diretório em um sistema de arquivos NTFS |
|
imprime arquivos e fluxos NTFS na saída gerada padrão |
|
clona um sistema de arquivos NTFS |
|
compara dois sistemas de arquivos NTFS e mostra as diferenças |
|
despeja os atributos de um arquivo |
|
exibe ou muda o rótulo em um sistema de arquivos NTFS |
|
redimensiona um sistema de arquivos NTFS sem perda de dados |
|
recupera um arquivo deletado a partir de um volume NTFS |
|
contém as funções da API do Ntfs-3g |
O pacote gptfdisk é um conjunto de aplicativos para criação e manutenção de unidades de disco GUID Partition Table (GPT). Um disco particionado GPT é exigido para unidades maiores que 2 TB e é um substituto moderno para unidades de disco particionadas do BIOS legado do PC que usam um Master Boot Record (MBR). O aplicativo principal, gdisk, tem uma interface semelhante ao aplicativo clássico fdisk.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://downloads.sourceforge.net/gptfdisk/gptfdisk-1.0.10.tar.gz
Soma de verificação MD5 da transferência: 1970269eb7a97560e238611524b7797a
Tamanho da transferência: 216 KB
Espaço em disco estimado exigido: 2,4 MB
Tempo de construção estimado: menos que 0,1 UPC (adicionar 0,2 UPC para testes)
O pacote gptfdisk vem com um
Makefile
rudimentar. Primeiro,
nós o atualizamos para fornecer uma interface simples de
construção e instalação e corrigimos o local de um arquivo de
cabeçalho e corrigimos alguns problemas menores de local.
Instale o gptfdisk
executando os seguintes comandos:
patch -Np1 -i ../gptfdisk-1.0.10-convenience-1.patch && sed -i 's|ncursesw/||' gptcurses.cc && sed -i 's|sbin|usr/sbin|' Makefile && make
Para testar os resultados, emita: make test.
Agora, como o(a) usuário(a) root
:
make install
patch -Np1 ...:
Esse remendo modifica o arquivo Makefile
, de forma que ele forneça um alvo
“install”.
O pacote Parted é uma ferramenta de particionamento de disco e de redimensionamento de partição.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://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)
LVM2-2.03.30 (device-mapper, exigido se construir udisks)
dosfstools-4.2, texlive-20240312 (ou install-tl-unx) e Digest::CRC (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]
Instale Parted executando os seguintes comandos:
./configure --prefix=/usr --disable-static && make && make -C doc html && makeinfo --html -o doc/html doc/parted.texi && makeinfo --plaintext -o doc/parted.txt doc/parted.texi
Se você tiver texlive-20240312 instalado e desejar criar documentação em PDF e Postscript, [então] emita os seguintes comandos:
cp build-aux/texinfo.tex doc && texi2pdf -o doc/parted.pdf doc/parted.texi && texi2dvi -o doc/parted.dvi doc/parted.texi && dvips -o doc/parted.ps doc/parted.dvi
Para testar os resultados, emita, como o(a) usuário(a)
root
:
make check
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
--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.
O pacote smartmontools contém aplicativos utilitários (smartctl, smartd) para controlar/monitorar sistemas de armazenamento usando o Self-Monitoring, Analysis and Reporting Technology System (S.M.A.R.T.) embutido nos discos ATA e SCSI mais modernos.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://downloads.sourceforge.net/smartmontools/smartmontools-7.4.tar.gz
Soma de verificação MD5 da transferência: 178d31a6ff5256c093227ab45a3f52aa
Tamanho da transferência: 1 MB
Espaço em disco estimado exigido: 27 MB
Tempo de construção estimado: 0,2 UPC
cURL-8.12.1 ou Lynx-2.9.2 ou Wget-1.25.0 (ferramentas de transferência) e GnuPG-2.4.7 (discos rígidos encriptados)
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
Consulte os comentários embutidos em /etc/smartd.conf
para instruções
detalhadas a respeito de personalizar o processo de segundo
plano smartd.
O pacote Sshfs contém um cliente de sistema de arquivos baseado no File Transfer Protocol do SSH. Isso é útil para montar um computador remoto ao qual você tenha acesso ssh como um sistema de arquivos local. Isso permite que você arraste e solte arquivos ou execute comandos de shell nos arquivos remotos como se estivessem em seu computador local.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/libfuse/sshfs/releases/download/sshfs-3.7.3/sshfs-3.7.3.tar.xz
Soma de verificação MD5 da transferência: f704f0d1800bdb5214030a1603e8c6d6
Tamanho da transferência: 56 KB
Espaço em disco estimado exigido: 0,9 MB
Tempo de construção estimado: menos que 0,1 UPC
Fuse-3.16.2, GLib-2.82.5 e OpenSSH-9.9p2.
docutils-0.21.2 (exigido para construir a página de manual)
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
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.
O pacote xfsprogs contém ferramentas de administração e de depuração para o sistema de arquivos XFS.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.kernel.org/pub/linux/utils/fs/xfs/xfsprogs/xfsprogs-6.13.0.tar.xz
Soma de verificação MD5 da transferência: 42b00213982d16c6df3fc17a0706b773
Tamanho da transferência: 1,4 MB
Espaço em disco estimado exigido: 99 MB
Tempo de construção estimado: 0,2 UPC (Usando paralelismo=4)
ICU-76.1 (para escaneamento de nome Unicode em xfs_scrub)
Habilite as seguintes opções na configuração do núcleo e recompile o núcleo:
File systems ---> <*/M> XFS filesystem support [XFS_FS]
Primeiro, adapte o conjunto de comandos sequenciais configure para ICU-76:
sed -i 's/icu-i18n/icu-uc &/' configure
Instale xfsprogs executando os seguintes comandos:
case "$(uname -m)" in i?86) sed -e "s/static long filesize/static off_t filesize/" -i mkfs/proto.c ;; esac && make DEBUG=-DNDEBUG \ INSTALL_USER=root \ INSTALL_GROUP=root \ LOCAL_CONFIGURE_OPTIONS="--localstatedir=/var"
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make PKG_DOC_DIR=/usr/share/doc/xfsprogs-6.13.0 install && make PKG_DOC_DIR=/usr/share/doc/xfsprogs-6.13.0 install-dev && rm -rfv /usr/lib/libhandle.{a,la}
sed ... static long
filesize...
: Esse sed corrige um problema que
aparece ao se construir em sistemas de 32 bits, somente.
Existe uma descorrespondência no protótipo e no cabeçalho da
função, o que resulta em erro nessa arquitetura.
DEBUG=-DNDEBUG
:
Desliga os símbolos de depuração.
INSTALL_USER=root
INSTALL_GROUP=root
:
Isso configura o(a) proprietário(a) e o grupo dos arquivos
instalados.
LOCAL_CONFIGURE_OPTIONS="--localstatedir=/var"
:
Isso configura o diretório de estado como /var, impedindo que
/usr/var seja criado.
OPTIMIZER="..."
: Adicionar esse
parâmetro ao final do comando make substitui as
configurações padrão de otimização.
simplesmente sai com um status zero, pois as partições XFS são verificadas ao tempo da montagem |
|
constrói um sistema de arquivos XFS |
|
muda os parâmetros de um sistema de arquivos XFS |
|
imprime o mapeamento de bloco para um arquivo XFS |
|
copia o conteúdo de um sistema de arquivos XFS para um ou mais destinos em paralelo |
|
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) |
|
é usado para depurar um sistema de arquivos XFS |
|
suspende o acesso a um sistema de arquivos XFS |
|
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) |
|
expande um sistema de arquivos XFS |
|
é equivalente a invocar xfs_growfs, mas especificando que nenhuma mudança no sistema de arquivos é para ser feita |
|
é 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 |
|
imprime o registro de um sistema de arquivos XFS |
|
restaura uma imagem do meta despejo XFS para uma imagem do sistema de arquivos |
|
copia os metadados do sistema de arquivos XFS para um arquivo |
|
cria um arquivo XFS, preenchido com zeros por padrão |
|
gera nomes de caminhos a partir de números de "inode" para um sistema de arquivos XFS |
|
examina e edita propriedades acerca de um sistema de arquivos XFS |
|
cria um protótipo para uso com mkfs.xfs |
|
é um utilitário para informar e para editar vários aspectos das cotas do sistema de arquivos |
|
repara sistemas de arquivos XFS corrompidos ou danificados |
|
copia um arquivo para a partição em tempo real em um sistema de arquivos XFS |
|
verifica e repara o conteúdo de um sistema de arquivos XFS montado |
|
limpa todos os sistemas de arquivos XFS montados |
|
informa e controla o uso de espaço livre em um sistema de arquivos XFS |
|
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 |
O pacote efivar fornece ferramentas e bibliotecas para manipular variáveis EFI.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/rhboot/efivar/archive/39/efivar-39.tar.gz
Soma de verificação MD5 da transferência: a8fc3e79336cd6e738ab44f9bc96a5aa
Tamanho da transferência: 456 KB
Espaço em disco estimado exigido: 21 MB
Tempo de construção estimado: menos que 0,1 UPC
mandoc (para a página de manual do efisecdb)
Esse pacote não pode funcionar corretamente em um sistema de 32 bits com uma implementação de UEFI de 64 bits. Não instale esse pacote (ou o efibootmgr) em um sistema de 32 bits, a menos que você esteja absolutamente seguro(a) de que tem uma implementação UEFI de 32 bits, o que é muito raro na prática.
Construa o efivar com os seguintes comandos:
make ENABLE_DOCS=0
A suíte de teste desse pacote é perigosa. Executá-la pode deflagrar erros de firmware e tornar seu sistema inutilizável sem usar algum hardware especial para reprogramar o firmware.
Agora, como o(a) usuário(a) root
:
make install ENABLE_DOCS=0 LIBDIR=/usr/lib
Para evitar uma dependência rígida em relação ao mandoc nós usamos
ENABLE_DOCS=0
, mas
isso faz com que todas as páginas de manual sejam ignoradas
da instalação, embora a maioria delas, na verdade, não
precise do mandoc. Ainda como o(a)
usuário(a) root
, instale
essas páginas de manual:
install -vm644 docs/efivar.1 /usr/share/man/man1 && install -vm644 docs/*.3 /usr/share/man/man3
ENABLE_DOCS=0
:
Desabilite a geração de páginas de manual para a finalidade
de permitir construir este pacote sem o mandoc instalado.
LIBDIR=/usr/lib
: Essa
opção substitui o diretório padrão da biblioteca do pacote
(/usr/lib64
, que não é usado
pelo LFS).
O pacote efibootmgr fornece ferramentas e bibliotecas para manipular variáveis EFI.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/rhboot/efibootmgr/archive/18/efibootmgr-18.tar.gz
Soma de verificação MD5 da transferência: e170147da25e1d5f72721ffc46fe4e06
Tamanho da transferência: 48 KB
Espaço em disco estimado exigido: 1,1 MB
Tempo de construção estimado: menos que 0,1 UPC
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
EFIDIR=LFS
: Essa
opção especifica o nome do subdiretório da distribuição sob
/boot/efi/EFI
. O sistema de
construção desse pacote precisa que essa seja configurada
explicitamente.
EFI_LOADER=grubx64.efi
: Essa
opção especifica o nome do carregador padrão de inicialização
EFI. Ele está configurado para corresponder ao carregador de
inicialização EFI fornecido pelo GRUB.
O pacote GRUB fornece o GRand Unified Bootloader. Nesta página, ele será construído com suporte UEFI, que não está habilitado para o GRUB construído no LFS.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://ftp.gnu.org/gnu/grub/grub-2.12.tar.xz
Soma de verificação MD5 da transferência: 60c564b1bdc39d8e43b3aab4bc0fb140
Tamanho da transferência: 6,4 MB
Espaço em disco estimado exigido: 183 MB
Tempo de construção estimado: 0,4 UPC (no LFS de 64 bits, usando paralelismo=4)
Dados opcionais de fonte Unicode para o menu do GRUB
Transferência (HTTP): https://unifoundry.com/pub/unifont/unifont-16.0.01/font-builds/unifont-16.0.01.pcf.gz
Soma de verificação MD5 da transferência: 007ffa7aab47ed3f270caee84d12148b
Tamanho da transferência: 1,3 MB
efibootmgr-18 (tempo de execução)
FreeType-2.13.3, Fuse-3.16.2 e LVM2-2.03.30
Se você estiver construindo o GRUB para um sistema LFS de 32
bits para inicializá-lo em um firmware UEFI de 64 bits,
reconstrua GCC-14.2.0 com a chave --enable-targets=all
posposta
ao comando ../configure.
Primeiro, instale os dados da fonte como o(a) usuário(a)
root
se você os tiver baixado
e tiver instalado a dependência opcional FreeType-2.13.3:
mkdir -pv /usr/share/fonts/unifont && gunzip -c ../unifont-16.0.01.pcf.gz > /usr/share/fonts/unifont/unifont.pcf
Desconfigure quaisquer variáveis de ambiente que possivelmente afetem a construção:
unset {C,CPP,CXX,LD}FLAGS
Não tente “ajustar” esse pacote com sinalizadores personalizados de compilação: esse pacote é um carregador de inicialização, com operações de baixo nível no código-fonte, as quais provavelmente sejam quebradas por algumas otimizações agressivas.
Adicionar um arquivo ausente proveniente do tarball de lançamento:
echo depends bli part_gpt
> grub-core/extra_deps.lst
Construa o GRUB com os seguintes comandos:
./configure --prefix=/usr \ --sysconfdir=/etc \ --disable-efiemu \ --with-platform=efi \ --target=x86_64 \ --disable-werror && make
Esse pacote não tem uma suíte de teste que forneça resultados significativos.
Agora, se você tiver pulado o pacote GRUB do LFS, como o(a)
usuário(a) root
, instale o
GRUB e pule as instruções restantes nesta seção:
make install && mv -v /etc/bash_completion.d/grub /usr/share/bash-completion/completions
Se você não tiver ignorado o pacote GRUB do LFS, como o(a)
usuário(a) root
, instale
somente os componentes não instalados a partir do pacote GRUB
do LFS:
make -C grub-core install
Se você tiver instalado os dados opcionais de fonte e FreeType-2.13.3, instale o programa grub-mkfont e os arquivos de dados de fonte (sem os arquivos de dados de fonte, o GRUB ainda pode funcionar normalmente, mas o menu de inicialização será exibido usando uma fonte grosseira ou em uma região menor na tela).
install -vm755 grub-mkfont /usr/bin/ && install -vm644 ascii.h widthspec.h *.pf2 /usr/share/grub/
Se Fuse-3.16.2 e LVM2-2.03.30 estiverem instalados, instale também o programa grub-mount:
install -vm755 grub-mount /usr/bin/
--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.
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.
Uma lista dos arquivos instalados, juntamente com descrições curtas deles, pode ser encontrada em ../../../../lfs/view/12.3-systemd/chapter08/grub.html#contents-gRUB.
Listados abaixo estão os programas recém-instalados, juntamente com descrições curtas.
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.
Habilite as seguintes opções na configuração do núcleo e recompile o núcleo se necessário:
Processor type and features ---> [*] EFI runtime service support [EFI] [*] EFI stub support [EFI_STUB] -*- Enable the block layer ---> [BLOCK] Partition Types ---> [ /*] Advanced partition selection [PARTITION_ADVANCED] [*] EFI GUID Partition support [EFI_PARTITION] File systems ---> DOS/FAT/EXFAT/NT Filesystems ---> <*/M> VFAT (Windows-95) fs support [VFAT_FS] Pseudo filesystems ---> <*/M> EFI Variable filesystem [EFIVAR_FS] -*- Native language support ---> [NLS] <*/M> Codepage 437 (United States, Canada) [NLS_CODEPAGE_437] <*/M> NLS ISO 8859-1 (Latin 1; Western European Languages) [NLS_ISO8859_1]
O significado das opções de configuração:
CONFIG_PARTITION_ADVANCED
Se não estiver habilitado, CONFIG_EFI_PARTITION
será
habilitado automaticamente. Mas quando estiver
habilitado, você precisa configurar CONFIG_EFI_PARTITION
como
habilitado também.
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
:
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/sdxWelcome 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):
tPartition number (1-9, default 9):
1Partition type or alias (type L to list all):
uefiChanged type of partition 'Linux filesystem' to 'EFI System'. Command (m for help):
wThe partition table has been altered. Syncing disks.
Ainda como o(a) usuário(a) root
, crie um ponto de montagem para a
partição EFI na unidade flash USB e monte-o:
mount --mkdir -v -t vfat /dev/sdx1 -o codepage=437,iocharset=iso8859-1 \ /mnt/rescue
Instale o GRUB para EFI na partição:
grub-install --target=x86_64-efi --removable \ --efi-directory=/mnt/rescue --boot-directory=/mnt/rescue
Desmonte a partição:
umount /mnt/rescue
Agora a unidade flash USB pode ser usada como um disco de inicialização de emergência em qualquer plataforma UEFI x86-64. Para saber como selecionar essa unidade flash como o dispositivo de inicialização, leia o manual da tua placa-mãe ou laptop. Ele inicializará o sistema e mostrará o shell do GRUB. Em seguida, você pode digitar comandos para inicializar teu sistema operacional a partir da unidade rígida.
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.
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
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:
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.
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”.
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
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.
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.
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.
Gere o /boot/grub/grub.cfg
para
configurar o menu de inicialização do GRUB:
cat > /boot/grub/grub.cfg << EOF
# Begin /boot/grub/grub.cfg
set default=0
set timeout=5
insmod part_gpt
insmod ext2
set root=(hd0,2)
insmod efi_gop
insmod efi_uga
if loadfont /boot/grub/fonts/unicode.pf2; then
terminal_output gfxterm
fi
menuentry "GNU/Linux, Linux 6.13.2-lfs-12.3" {
linux /boot/vmlinuz-6.13.2-lfs-12.3 root=/dev/sda2 ro
}
menuentry "Firmware Setup" {
fwsetup
}
EOF
Consulte-se o
livro LFS para o conhecimento básico acerca do arquivo
grub.cfg
. (hd0,2)
, sda2
e
6.13.2-lfs-12.3
precisam
corresponderem à tua configuração.
As diretivas insmod
efi_gop e insmod efi_uga carregam
dois módulos para suporte de vídeo baseado em EFI. Na maioria
dos sistemas, o módulo efi_gop
é
suficiente. O módulo efi_uga
é
útil somente para sistemas legados, mas é inofensivo
carregá-lo de qualquer maneira. O suporte de vídeo é
necessário para a diretiva terminal_output gfxterm
realmente funcionar.
A diretiva terminal_output
gfxterm muda a resolução da tela do menu do
GRUB para corresponder ao teu dispositivo de exibição. Isso
quebrará a renderização se o arquivo de dados da fonte
unicode.pf2
não estiver
carregado, de forma que ele é protegido por uma diretiva
if.
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”).
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.
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.
O Bluefish é um editor de texto GTK+ voltado para programadores(as) e projetistas web, com muitas opções para escrever sítios web, scripts e códigos de programação. O Bluefish suporta muitas linguagens de programação e de marcação e se concentra na edição de sítios da web dinâmicos e interativos.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.bennewitz.com/bluefish/stable/source/bluefish-2.2.16.tar.bz2
Soma de verificação MD5 da transferência: 6982e68b978777b7eac16c97bd7af834
Tamanho da transferência: 4,5 MB
Espaço em disco estimado exigido: 53 MB
Tempo de construção estimado: 0,1 UPC (Usando paralelismo=4)
desktop-file-utils-0.28 (para atualizar a base de dados da área de trabalho)
enchant-2.8.2 (para verificação ortográfica), Gucharmap-16.0.2 e Jing
Primeiro, desabilite um plugin que requer funções removidas na libxml-2.13.0 ou posterior:
sed '/infbrowser/d' -i src/Makefile.am && autoreconf
Instale Bluefish executando os seguintes comandos:
./configure --prefix=/usr --docdir=/usr/share/doc/bluefish-2.2.16 && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
Esse pacote instala arquivos de ícone na hierarquia
/usr/share/icons/hicolor
e
arquivos de área de trabalho na hierarquia /usr/share/applications
. Você pode
melhorar o desempenho do sistema e o uso da memória
atualizando /usr/share/icons/hicolor/icon-theme.cache
e /usr/share/applications/mimeinfo.cache
.
Para realizar a atualização, você precisa ter desktop-file-utils-0.28 (para
o cache da área de trabalho) e emitir os seguintes comandos
como o(a) usuário(a) root
:
gtk-update-icon-cache -t -f --include-image-data /usr/share/icons/hicolor && update-desktop-database
Ed é um editor de texto orientado a linhas. Ele é usado para criar, exibir, modificar e manipular arquivos de texto, tanto interativamente quanto por meio de scripts de shell. Ed não é algo que muitas pessoas usam. Ele é descrito aqui porque pode ser usado pelo aplicativo "patch" se você encontrar um arquivo de remendo baseado em ed. Isso acontece raramente porque os remendos baseados em diferenças são os preferidos atualmente.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://ftp.gnu.org/gnu/ed/ed-1.21.tar.lz
Soma de verificação MD5 da transferência: a68c643733b7123ddad15f7395cb8c61
Tamanho da transferência: 68 KB
Espaço em disco estimado exigido: 1,0 MB
Tempo de construção estimado: menos que 0,1 UPC
libarchive-3.7.7 (para bsdtar)
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
O pacote Emacs contém um editor extensível, personalizável, auto documentado e de exibição em tempo real.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://ftp.gnu.org/gnu/emacs/emacs-30.1.tar.xz
Soma de verificação MD5 da transferência: 88d665794fdecba7769c11ab1ccea6e4
Tamanho da transferência: 52 MB
Espaço em disco estimado exigido: 558 MB
Tempo de construção estimado: 0,6 UPC (Usando paralelismo=4)
harfBuzz-10.4.0, giflib-5.2.2, GnuTLS-3.8.9, jansson-2.14 e libtiff-4.7.0
um ambiente gráfico, alsa-lib-1.2.13, Cairo-1.18.2, dbus-1.16.0, GLib-2.82.5 (com GObject Introspection), gsettings-desktop-schemas-47.1, GPM-1.20.7, GTK-3.24.48, ImageMagick-7.1.1-43, Little CMS-2.17, libjpeg-turbo-3.0.1, libpng-1.6.46, librsvg-2.59.2, libseccomp-2.6.0, libwebp-1.5.0, libxml2-2.13.6, MIT Kerberos V5-1.21.3, SQLite-3.49.1, Valgrind-3.24.0, intlfonts, libungif, libotf e m17n-lib - para exibir corretamente tais conjuntos complexos de comandos sequenciais, tais como Índico e Khmer, e também para conjuntos de comandos sequenciais que exigem suporte para formato Árabe (Árabe e Farsi), mailutils e libXaw3d
Instale Emacs executando os seguintes comandos:
./configure --prefix=/usr && make
Esse pacote não vem com uma suíte de teste. Se o "make" for bem-sucedido, [então] você consegue testar o resultado executando src/emacs -Q, que é o aplicativo que será instalado, com os arquivos auxiliares dele. Isso deveria iniciar e exibir a tela de abertura do aplicativo.
Agora, como o(a) usuário(a) root
:
make install && chown -v -R root:root /usr/share/emacs/30.1
Esse pacote instala arquivos de ícone na hierarquia
/usr/share/icons/hicolor
e
você pode melhorar o desempenho do sistema e o uso de
memória atualizando /usr/share/icons/hicolor/index.theme
.
Para realizar a atualização, você precisa ter o GTK-3.24.48
instalado e emitir o seguinte comando como o(a) usuário(a)
root
:
gtk-update-icon-cache -qtf /usr/share/icons/hicolor
--with-imagemagick
: Use isso se
você tiver instalado o ImageMagick-7.1.1-43 e
desejar vincular a ele.
--with-gif=no
: Use isso se você
não tiver instalado giflib-5.2.2 ou libungif.
--with-tiff=no
: Use isso se você
não tiver instalado libtiff-4.7.0.
--with-gnutls=no
: Use isso se
você não tiver instalado GnuTLS-3.8.9.
--without-harfbuzz
: Use isso se
você não tiver instalado o harfBuzz-10.4.0.
--with-json=no
: Use isso se você
não tiver instalado jansson-2.14.
cria arquivos de base de dados arquivo de marca de referência cruzada para código-fonte |
|
permite navegar pelas hierarquias de classe C++ a partir de dentro do emacs |
|
é um editor |
|
anexa uma sessão do emacs a uma instância do emacsserver já em execução |
|
é outro aplicativo para gerar arquivos de marca de referência cruzada de código-fonte |
O pacote Gedit contém um editor UTF-8 leve de texto para a área de trabalho GNOME.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/gedit/48/gedit-48.1.tar.xz
Soma de verificação MD5 da transferência: 1aa72a59d51be4597490220af3ad0421
Tamanho da transferência: 2,8 MB
Espaço em disco estimado exigido: 48 MB (com testes)
Tempo de construção estimado: 0,2 UPC (usando paralelismo = 4; com testes)
Transferência (HTTP): https://gitlab.gnome.org/World/gedit/libgedit-tepl/-/archive/6.12.0/libgedit-tepl-6.12.0.tar.bz2
Soma de verificação MD5 da transferência: a77de364f1c5848c7a487aa84a30523c
Tamanho da transferência: 188 KB
Espaço em disco estimado exigido: 13 MB (com testes)
Tempo de construção estimado: 0,3 UPC (com testes)
Transferência (HTTP): https://gitlab.gnome.org/World/gedit/libgedit-gfls/-/archive/0.2.1/libgedit-gfls-0.2.1.tar.bz2
Soma de verificação MD5 da transferência: dea4a673ede783d59a4df1276911de10
Tamanho da transferência: 24 KB
Espaço em disco estimado exigido: 1,4 MB (com testes)
Tempo de construção estimado: menos que 0,1 UPC (com testes)
gsettings-desktop-schemas-47.1, itstool-2.0.7, libgedit-amtk-5.9.0, libgeditsourceview-299.4.0, libhandy-1.8.3 e libpeas-1.36.0
gspell-1.14.0, Gvfs-1.56.1 (tempo de execução), ISO Codes-4.17.0 e PyGObject-3.50.0 (módulo Python3)
Primeiro, construa a biblioteca gfls:
tar -xf ../libgedit-gfls-0.2.1.tar.bz2 && pushd libgedit-gfls-0.2.1 && mkdir gfls-build && cd gfls-build && meson setup --prefix=/usr \ --buildtype=release \ -D gtk_doc=false \ .. && ninja
Para testar os resultados, execute: ninja test.
Agora, como o(a) usuário(a) root
:
ninja install
Mude de volta para o diretório superior de construção:
popd
Segundo, construa a biblioteca tepl:
tar -xf ../libgedit-tepl-6.12.0.tar.bz2 && pushd libgedit-tepl-6.12.0 && mkdir tepl-build && cd tepl-build && meson setup --prefix=/usr \ --buildtype=release \ -D gtk_doc=false \ .. && ninja
Para testar os resultados, execute: ninja test.
Agora, como o(a) usuário(a) root
:
ninja install
Novamente, mude de volta para o diretório superior de construção:
popd
Finalmente, instale Gedit executando os seguintes comandos:
mkdir gedit-build && cd gedit-build && meson setup --prefix=/usr \ --buildtype=release \ -D gtk_doc=false \ .. && ninja
Para testar os resultados, emita: ninja test.
Agora, como o(a) usuário(a) root
:
ninja install
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
-D gtk_doc=false
:
Essa chave desabilita a geração da documentação da API. Omita
essa chave se você tiver GTK-Doc-1.34.0 instalado e desejar
gerar a documentação da API.
JOE (Joe's Own Editor) é um pequeno editor de texto capaz de emular WordStar, Pico e Emacs.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://downloads.sourceforge.net/joe-editor/joe-4.6.tar.gz
Soma de verificação MD5 da transferência: 9017484e6116830d846678b625ea5c43
Tamanho da transferência: 1,8 MB
Espaço em disco estimado exigido: 22 MB
Tempo de construção estimado: 0,2 UPC
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
é um link simbólico para joe usado para iniciar o modo de emulação Emacs |
|
é um pequeno editor de texto capaz de emular WordStar, Pico e Emacs |
|
é um link simbólico para joe usado para iniciar o modo de emulação Pico |
|
é um link simbólico para joe usado para iniciar o modo de emulação do WordStar |
|
é um link simbólico para joe que restringe o JOE a editar somente os arquivos que estejam especificados na linha de comando |
|
é 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) |
|
é um aplicativo usado pelo joe para gerar o arquivo de índice termcap (veja-se /usr/share/doc/joe-4.6/util/README) |
|
é 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) |
O pacote Kate contém um editor gráfico avançado de texto baseado em KF6.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.kde.org/stable/release-service/24.12.2/src/kate-24.12.2.tar.xz
Soma de verificação MD5 da transferência: 6517550d19fca2d139c6288f44283e70
Tamanho da transferência: 7,9 MB
Espaço em disco estimado exigido: 504 MB
Tempo de construção estimado: 1,0 UPC (usando paralelismo = 4)
Instale Kate executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=$KF6_PREFIX \ -D CMAKE_BUILD_TYPE=Release \ -D BUILD_TESTING=OFF \ -W no-dev .. && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
Mousepad é um editor simples de texto GTK+ 3 para o ambiente de área de trabalho Xfce.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://archive.xfce.org/src/apps/mousepad/0.6/mousepad-0.6.3.tar.bz2
Soma de verificação MD5 da transferência: 6e46d6a22e0656fbddf2655d1e9dfc1f
Tamanho da transferência: 1,4 MB
Espaço em disco estimado exigido: 16 MB
Tempo de construção estimado: 0,1 UPC
gtksourceview4-4.8.4 e libxfce4ui-4.20.0
DConf-0.40.0 (tempo de execução) e dbus-glib-0.112
Instale Mousepad executando os seguintes comandos:
./configure --prefix=/usr \ --enable-gtksourceview4 \ --enable-keyfile-settings && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
--enable-keyfile-settings
: Use
a estrutura de retaguarda do arquivo de chaves GSettings em
vez do padrão DConf-0.40.0.
--disable-plugin-gspell
: Use essa
opção para desabilitar construir o plugin gspell-1.14.0 se
você não tiver instalado o gspell.
O pacote Nano contém um pequeno e simples editor de texto que pretende substituir o Pico, o editor padrão no pacote Pine.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.nano-editor.org/dist/v8/nano-8.3.tar.xz
Soma de verificação MD5 da transferência: e64276780e23efb273480c4279050f74
Tamanho da transferência: 1,6 MB
Espaço em disco estimado exigido: 24 MB
Tempo de construção estimado: 0,2 UPC
Instale Nano executando os seguintes comandos:
./configure --prefix=/usr \ --sysconfdir=/etc \ --enable-utf8 \ --docdir=/usr/share/doc/nano-8.3 && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install && install -v -m644 doc/{nano.html,sample.nanorc} /usr/share/doc/nano-8.3
--enable-utf8
: Essa
chave habilita o suporte Unicode no Nano.
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.
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.
A versão do vim muda diariamente. Para obter a versão mais recente, acesse https://github.com/vim/vim/releases.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/vim/vim/archive/v9.1.1166/vim-9.1.1166.tar.gz
Soma de verificação MD5 da transferência: 718d43ce957ab7c81071793de176c2eb
Tamanho da transferência: 18 MB
Espaço em disco estimado exigido: 139 MB (adicionar 75 MB para os testes)
Tempo de construção estimado: 0,4 UPC (com paralelismo=4; adicionar 14 UPC para testes)
um ambiente gráfico e GTK-3.24.48
cURL-8.12.1 (ou Wget-1.25.0, exigido por alguns testes), GPM-1.20.7, Lua-5.4.7, Ruby-3.4.2 e rsync-3.4.1
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:
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
Se o arquivo global de configuração /etc/vimrc
referenciar a variável de
ambiente VIMRUNTIME
, alguns
testes possivelmente reclamem a respeito de estarem inaptos
para encontrarem o diretório correspondente e aguardem por
entrada gerada do(a) usuário(a). Se esse for o caso, esse
arquivo deveria ser salvo e removido antes de executar os
testes. Ou se bubblewrap-0.11.0 estiver
instalado, também é possível criar um ambiente leve de
contêiner onde esse arquivo fique oculto e executar os
testes no contêiner.
Para testar os resultados, emita: make -j1 test. Falhas de
teste, se existirem, produzirão o arquivo test.log
em src/testdir
. Os testes restantes ainda
serão executados. Se tudo correr bem, o registro informará
ALL DONE
. Alguns testes
rotulados como “escamosos” possivelmente falhem
ocasionalmente e podem ser ignorados. Os testes são
conhecidos por falharem se a saída gerada for redirecionada
para um arquivo e também se forem executados em uma sessão do
'screen'.
Se executar os testes com bubblewrap-0.11.0 e /etc/vimrc
ocultos, use bwrap --dev-bind / / --dev-bind /dev/null
/etc/vimrc make -j1 test.
Alguns testes de cores esperam ser executados sob o emulador de terminal xterm.
Agora, como o(a) usuário(a) root
:
make install
Por padrão, a documentação do Vim é instalada em /usr/share/vim
. O link simbólico a seguir
permite que a documentação seja acessada via /usr/share/doc/vim-9.1.1166
, tornando-o
consistente com o local da documentação para outros pacotes:
ln -snfv ../vim/vim91/doc /usr/share/doc/vim-9.1.1166
Se você desejar atualizar os arquivos de tempo de execução, emita o seguinte comando (exige rsync-3.4.1) para baixá-los:
rsync -avzcP --exclude="/dos/" --exclude="/spell/" \ ftp.nluug.nl::Vim/runtime/ ./runtime/
E, então, instalar os arquivos atualizados de tempo de
execução e gerar novamente o arquivo tags
, como o(a) usuário(a) root
, emita:
make -C src installruntime && vim -c ":helptags /usr/share/doc/vim-9.1.1166" -c ":q"
--with-features=huge
:
Essa chave habilita todos os recursos adicionais disponíveis
no Vim, incluindo suporte
para caracteres múltiplos bytes.
--with-tlib=ncursesw
:
Essa chave força o Vim a vincular-se à biblioteca
libncursesw
.
--enable-gui=no
: Isso impedirá a
compilação da GUI. O Vim
ainda se vinculará ao X, de
modo que alguns recursos, tais como o modelo cliente-servidor
ou a seleção x11 (área de transferência), ainda estejam
disponíveis.
--without-x
: Se você preferir não
vincular o Vim ao
X, [então] use essa chave.
--enable-luainterp
, --enable-perlinterp
, --enable-python3interp=dynamic
, --enable-tclinterp --with-tclsh=tclsh
,
--enable-rubyinterp
: Essas opções
incluem os interpretadores Lua, Perl, Python3, Tcl ou Ruby
que permitem usar código de outro aplicativo em conjuntos de
comandos sequenciais do vim.
Todas as opções --enable-*
conseguem aceitar =dynamic
para
carregar dinamicamente o interpretador quando necessário.
Isso é exigido para Python 3
para evitar falhas de segmentação. Para tcl, é necessário indicar o nome do
executável tclsh, pois configure somente pesquisa
nomes versionados com versões antigas.
O Vim tem um verificador ortográfico integrado que você consegue habilitar emitindo o seguinte em uma janela do vim:
:setlocal spell spelllang=ru
Essa configuração habilitará a verificação ortográfica para o idioma russo para a sessão atual.
Por padrão, o Vim somente
instala arquivos ortográficos para o idioma inglês. Se um
arquivo ortográfico não estiver disponível para um idioma,
[então] o Vim chamará o
plug-in $VIMRUNTIME/plugin/spellfile.vim
e
tentará obter o *.spl e opcionalmente *.sug a partir do
servidor FTP do vim, usando o plug-in $VIMRUNTIME/plugin/netrwPlugin.vim
.
Alternativamente, você consegue baixar manualmente os
arquivos *.spl e *.sug a partir de: ftp://ftp.vim.org/pub/vim/runtime/spell/
e salvá-los em ~/.vim/spell
ou em /usr/share/vim/vim91/spell/
.
Para saber o que há de novo no Vim-9.1.1166 emita o seguinte comando:
:help version-9.1.1166
Para informação adicional a respeito do como configurar os arquivos de configuração do Vim, veja-se Os Arquivos vimrc e https://vim.fandom.com/wiki/Example_vimrc.
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.
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 é um shell compatível
com POSIX. Ele pode ser instalado como /bin/sh ou como o
shell padrão para root
ou
um(a) segundo(a) usuário(a) com um ID de usuário(a) zero (0).
Depende de menos bibliotecas que o shell Bash e, portanto, é menos provável que
seja afetado por um problema de atualização ou falha de
disco. Dash também é útil
para verificar se um script é totalmente compatível com a
sintaxe POSIX.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): http://gondor.apana.org.au/~herbert/dash/files/dash-0.5.12.tar.gz
Soma de verificação MD5 da transferência: 57222b768b84003ea4b801e5d5e0e52b
Tamanho da transferência: 244 KB
Espaço em disco estimado exigido: 2,9 MB
Tempo de construção estimado: menos que 0,1 UPC
libedit (biblioteca do editor de linha de comando)
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
:
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
--bindir=/bin
: Esse
parâmetro coloca o binário dash no sistema de arquivos
raiz.
--with-libedit
: Para compilar
Dash com suporte a libedit.
O pacote Tcsh contém “uma versão aprimorada, mas completamente compatível, do shell C do Unix da Berkeley (csh)”. Isso é útil como um shell alternativo para aqueles que preferem a sintaxe C a aquela do shell bash e também porque alguns aplicativos exigem o shell C para a finalidade de realizar tarefas de instalação.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://astron.com/pub/tcsh/tcsh-6.24.15.tar.gz
Soma de verificação MD5 da transferência: 7a6c216fca177279ee2fb93fd3f9ccd4
Tamanho da transferência: 940 KB
Espaço em disco estimado exigido: 11 MB (com testes)
Tempo de construção estimado: 0,2 UPC (com testes)
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
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.
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).
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
O pacote zsh contém um interpretador de comandos (shell) utilizável como um shell de login interativo e como um processador de comando de script de shell. Dos shells padrão, o zsh é o que mais se assemelha ao ksh, mas inclui muitos aprimoramentos.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.zsh.org/pub/zsh-5.9.tar.xz
Soma de verificação MD5 da transferência: 182e37ca3fe3fa6a44f69ad462c5c30e
Tamanho da transferência: 3,2 MB
Espaço em disco estimado exigido: 48 MB (inclui documentação e testes)
Tempo de construção estimado: 1,6 UPC (Usando paralelismo=4; inclui documentação e testes)
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/ .
Adapte o sistema de construção de documentação para texinfo-7.0 ou posterior:
sed -e 's/set_from_init_file/texinfo_&/' \ -i Doc/Makefile.in
Alguns programas fornecidos no sistema de construção para detectar recursos do sistema usam sintaxe pré-C99 rejeitada pelo GCC-14.1 ou posterior. Corrija-os porque o Zsh será configurado incorretamente e falhará caso contrário:
sed -e 's/^main/int &/' \ -e 's/exit(/return(/' \ -i aczsh.m4 configure.ac && sed -e 's/test = /&(char**)/' \ -i configure.ac && autoconf
Os arquivos de documentação contém referências aos arquivos
de configuração do zsh em /etc
,
mas nós usaremos /etc/zsh
para
armazenar esses arquivos de configuração em vez disso. O
sistema de construção atualizará essas referências se o
pacote yodl estiver
disponível, mas ele está fora do escopo do BLFS. Como
resultado, nós precisamos corrigir as referências
manualmente:
sed -e 's|/etc/z|/etc/zsh/z|g' \ -i Doc/*.*
Instale zsh executando os seguintes comandos:
./configure --prefix=/usr \ --sysconfdir=/etc/zsh \ --enable-etcdir=/etc/zsh \ --enable-cap \ --enable-gdbm && make && makeinfo Doc/zsh.texi --html -o Doc/html && makeinfo Doc/zsh.texi --plaintext -o zsh.txt && makeinfo Doc/zsh.texi --html --no-split --no-headers -o zsh.html
Se você tiver texlive-20240312 instalado, poderá construir a documentação no formato PDF emitindo o seguinte comando:
texi2pdf Doc/zsh.texi -o Doc/zsh.pdf
Para testar os resultados, emita: make check.
Agora, como o(a) usuário(a) root
:
make install && make infodir=/usr/share/info install.info && make htmldir=/usr/share/doc/zsh-5.9/html install.html && install -v -m644 zsh.{html,txt} Etc/FAQ /usr/share/doc/zsh-5.9
Se você construiu o formato PDF da documentação, [então]
instale-o emitindo o seguinte comando como o(a) usuário(a)
root
:
install -v -m644 Doc/zsh.pdf /usr/share/doc/zsh-5.9
--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.
Existe toda uma série de arquivos de configuração para o
zsh, incluindo
/etc/zsh/zshenv
, /etc/zsh/zprofile
, /etc/zsh/zshrc
, /etc/zsh/zlogin
e /etc/zsh/zlogout
. Você consegue encontrar
mais informação a respeito deles na zsh(1) e nas
páginas de manual relacionadas.
Na primeira vez que o zsh for executado, você será
avisado(a) por mensagens com várias perguntas. As respostas
serão usadas para criar um arquivo ~/.zshrc
. Se desejar executar essas
perguntas novamente, [então] execute zsh
/usr/share/zsh/5.9/functions/zsh-newuser-install
-f.
Existem vários prompts avançados integrados. No shell
zsh, inicie o
suporte avançado de prompt com autoload -U promptinit e,
em seguida, promptinit. Os nomes
disponíveis de prompt são listados com prompt -l. Selecione um
em particular com prompt
<nome-de-prompt>
.
Exiba todos os prompts disponíveis com prompt -p. Exceto os
comandos list e display acima, você consegue inserir os
outros em ~/.zshrc
para serem
executados automaticamente quando o shell iniciar, com o
prompt que escolher.
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 é uma solução completa de virtualização para Linux em hardware x86 contendo extensões de virtualização (Intel VT ou AMD-V).
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.qemu.org/qemu-9.2.2.tar.xz
Soma de verificação MD5 da transferência: 417dc130a89238ba5347ced224497ee1
Tamanho da transferência: 129 MB
Espaço em disco estimado exigido: 2,3 GB (475 MB instalado)
Tempo de construção estimado: 1,1 UPC (adicionar 0,5 UPC para testes, ambos usando paralelismo=4)
alsa-lib-1.2.13, dtc-1.7.2, libslirp-4.9.0 e SDL2-2.30.11
Se dtc-1.7.2 não estiver instalado, o sistema de construção tentará baixar uma cópia do código-fonte do dtc a partir da Internet.
pipewire-1.2.7 ou PulseAudio-17.0 (pode ser usado em vez de alsa-lib), BlueZ-5.79, cURL-8.12.1, Cyrus SASL-2.1.28, Fuse-3.16.2, GnuTLS-3.8.9, GTK-3.24.48, keyutils-1.6.3, libaio-0.3.113, libusb-1.0.27, libgcrypt-1.11.0, libjpeg-turbo-3.0.1, libseccomp-2.6.0, libssh2-1.11.1, libpng-1.6.46, libtasn1-4.20.0, Linux-PAM-1.7.0, LZO-2.10, Nettle-3.10.1, Mesa-24.3.4, VTE-0.78.4, capstone, ceph, daxctl, JACK, glusterfs, libbpf, libcacard, libcap-ng, libdw, libiscsi, libnfs, libpmem, libssh, libu2f-emu, lzfse, netmap, numactl, rdma-core, SELinux, snappy, spice, usbredir e VDE
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
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.
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]
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-257.3 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-257.3 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:
O qemu é capaz de executar muitos alvos. O processo de
construção também é capaz de construir vários alvos de uma
vez em uma lista delimitada por vírgulas atribuída a
--target-list
. Execute
./configure
--help para obter uma lista completa dos
alvos disponíveis.
if [ $(uname -m) = i686 ]; then QEMU_ARCH=i386-softmmu else QEMU_ARCH=x86_64-softmmu fi mkdir -vp build && cd build && ../configure --prefix=/usr \ --sysconfdir=/etc \ --localstatedir=/var \ --target-list=$QEMU_ARCH \ --audio-drv-list=alsa \ --disable-pa \ --enable-slirp \ --docdir=/usr/share/doc/qemu-9.2.2 && unset QEMU_ARCH && make
qemu usa ninja como um subprocesso ao construir. Para executar os testes, emita: ninja test. Um teste, qtest-x86_64/bios-tables-test, é conhecido por falhar em alguns sistemas.
Agora, como o(a) usuário(a) root
:
make install
Mude as permissões e a propriedade de um script auxiliar, que
é necessário ao usar o dispositivo de rede de comunicação
“bridge” (veja-se abaixo). Novamente,
como o(a) usuário(a) root
,
emita:
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-257.3 estiver instalado.
chgrp kvm /usr/libexec/qemu-bridge-helper && chmod 4750 /usr/libexec/qemu-bridge-helper
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
--audio-drv-list=alsa
: Essa
chave configura o controlador de áudio para o ALSA. Veja-se
abaixo para habilitar outros controladores de áudio.
--disable-pa
: mesmo
se pa não estiver na
lista --audio-drv-list
, o controlador
pulseaudio é construído, a menos que desabilitado por esse
parâmetro.
--enable-slurp
: Essa
chave força o sistema de construção a verificar libslirp-4.9.0. Remova-a se você não
precisar do suporte -netdev user
.
--audio-drv-list=pa
--disable-alsa
: Essa chave configura o controlador de
áudio para o pulseaudio. Para outros controladores, vejam-se
as opções da --audio-drv-list na saída gerada de ./configure --help. O
controlador padrão de áudio é o OSS. Para habilitar o suporte
para ambos, ALSA e pulseaudio, use --audio-drv-list=alsa,pa
.
Como usar o qemu significa usar um computador virtual, as
etapas para configurar a máquina virtual estão em estreita
analogia com aquelas para configurar um computador real. Você
precisará tomar decisões a respeito de CPU, memória, disco,
dispositivos USB, placa(s) de rede de intercomunicação,
tamanho da tela, etc. Assim que o “hardware” estiver
decidido, você terá, por exemplo, de escolher como conectar a
máquina à internet e(ou) instalar um sistema operacional. Na
seção seguinte, nós mostramos maneiras básicas de realizar
essas etapas. Porém, o qemu é muito mais poderoso que isso, e
é fortemente aconselhado ler-se a documentação do qemu em
/usr/share/doc/qemu-9.2.2/qemu-doc.html
.
É uma prática padrão nomear o computador executando qemu como “anfitrião” e a máquina emulada executando sob qemu como “convidada”. Nós usaremos essas notações no texto seguinte.
As instruções seguintes assumem que o link simbólico
opcional, qemu
, tenha sido
criado. Além disso, o qemu deveria ser
executado em um ambiente gráfico. Também é possível usar-se
o qemu “sem uma
parte superior” ou via SSH. Veja-se a
documentação para as várias possibilidades.
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.
Para instalar um sistema operacional, baixe uma imagem ISO a
partir da sua distribuição preferida Linux. Para os
propósitos deste exemplo, usaremos Fedora-16-x86_64-Live-LXDE.iso
no diretório
atual. Execute o seguinte:
qemu -enable-kvm \
-drive file=$VDISK_FILENAME \
-cdrom Fedora-16-x86_64-Live-LXDE.iso \
-boot d \
-m 1G
Siga os procedimentos normais de instalação para a
distribuição escolhida. A opção -boot
especifica a ordem de
inicialização das unidades como uma sequência de caracteres
de letras de unidades. As letras de unidade válidas são: a, b
(disquete 1 e 2), c (primeiro disco rígido), e d (primeiro
CD-ROM). A opção -m
é
a quantidade de memória a usar-se para a máquina virtual. A
escolha depende da carga do anfitrião. As distribuições
modernas deveriam estar confortáveis com 4 GB. A opção
-enable-kvm
permite a
aceleração de hardware. Sem essa chave, a emulação é muito
mais lenta.
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"
-enable-kvm
: habilita
o suporte completo à virtualização KVM. Em alguns hardwares,
possivelmente seja necessário adicionar a opção não
documentada -machine smm=off
para
a finalidade de habilitar o KVM.
-smp <N>
:
habilita o multiprocessamento simétrico com <N> CPUs.
-cpu <model>
:
simula a CPU <model>. A lista dos modelos suportados
pode ser obtida com -cpu help
.
-drive
file=<nome_do_arquivo>
: define um disco
virtual cuja imagem está armazenada em <nome_de_arquivo>
.
-cdrom grub-img.iso
:
define um arquivo em formato ISO para usar-se como um CDROM.
Aqui nós usamos um disco de resgate do GRUB, que
possivelmente seja útil se algo der errado em tempo de
inicialização.
-boot
order=c,once=d,menu=on
: define a ordem da
inicialização para o BIOS virtual.
-net
nic,netdev=<netid>
: define uma placa de
rede de comunicação conectada ao dispositivo de rede de
comunicação com id <netid>.
-netdev
user,id=<netid>
: define o dispositivo do(a)
“usuário(a)” da rede de comunicação.
Essa é uma rede de comunicação local virtual com endereços
10.0.2.0/24, onde o anfitrião tem o endereço 10.0.2.2 e atua
como um gateway para a Internet; e com um servidor de nomes
no endereço 10.0.2.3 e um servidor SMB no endereço 10.0.2.4 .
Um servidor DHCP integrado consegue alocar endereços entre
10.0.2.15 e 10.0.2.31.
-soundhw
<modelo>
: define o modelo da placa de som.
A lista pode ser obtida com -soundhw
help
.
-vga <tipo>
:
define o tipo de placa VGA a emular. Para -vga std
, se você estiver
construindo um núcleo Linux para o convidado, é recomendado
habilitar CONFIG_DRM_BOCHS
(como
parte do núcleo ou um módulo do núcleo) para controlar todos
os recursos da placa VGA emulada e CONFIG_FB
para exibir o console do Linux
nela. Os outros valores <tipo>
não estão testados pelos(as)
editores(as) e possivelmente exijam dependências adicionais.
-serial mon:stdio
:
envia a porta serial do convidado (/dev/ttyS0
em convidados Linux),
multiplexada com o monitor do qemu, para a entrada e saída
padrão do processo do qemu.
-name <nome>
:
configura o nome do convidado. Esse nome é exibido na legenda
da janela do convidado. Possivelmente seja útil se você
executar vários convidados ao mesmo tempo.
-drive
if=pflash,format=raw,readonly=on,file=/usr/share/qemu/edk2-x86_64-code.fd
:
Carrega um firmware EDK2 UEFI pré construído, em vez do BIOS
padrão do PC. Use essa opção se você quiser inicializar o
Sistema Operacional convidado com UEFI.
-drive
file=<nome_do_arquivo>,if=virtio
: fornece uma
interface Virtio para o núcleo do convidado para acessar a
imagem do disco, em vez de simular um hardware real de disco.
Isso pode melhorar o desempenho de Entrada/Saída do disco,
mas exige um controlador Virtio no núcleo do convidado. Use-o
em vez de um -drive
simples se o
núcleo do convidado suportar Virtio. Para construir um núcleo
Linux com suporte Virtio para o convidado, use make defconfig && make
kvm_guest.config para criar uma configuração
inicial do núcleo com as unidades Virtio habilitadas, então
faça tua personalização. E, se o núcleo do convidado for
Linux, os discos virtuais usando a interface Virtio serão
nomeados vdx
no devtmpfs, em
vez de sdx
.
-net
nic,netdev=net0,model=virtio-net-pci
: fornece uma
interface Virtio para o núcleo do convidado para acessar a
interface de rede de intercomunicação, em vez de simular uma
placa real de interface de rede de intercomunicação. Isso
pode melhorar o desempenho de Entrada/Saída da rede de
intercomunicação, mas exige um controlador Virtio no núcleo
do convidado. Use-o em vez de um -net
simples se o núcleo do convidado
suportar Virtio.
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”.
A solução acima para rede de intercomunicação permite que o
convidado acesse a rede local de intercomunicação por meio do
anfitrião (e possivelmente acesse a Internet por meio de
roteadores locais), mas o inverso não é verdadeiro. Nem mesmo
o anfitrião consegue acessar o convidado, a menos que o
encaminhamento de porta esteja habilitado. E, no caso de
vários convidados estarem executando, eles não conseguirão se
comunicarem uns com os outros. Outros dispositivos de rede de
intercomunicação podem ser usados para esse propósito. Por
exemplo, existe o dispositivo “socket”, que
permite que vários convidados compartilhem uma rede virtual
de intercomunicação comum. Na seção seguinte, nós descrevemos
em mais detalhes como configurar o dispositivo “bridge”, que
permite que os convidados apareçam como se estivessem
conectados à rede local de intercomunicação. Todos os
comandos abaixo deveriam ser executados como o(a) usuário(a)
root
.
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,...
.
converte arquivos do formato elf para dmp |
|
é uma ferramenta de teste para o gerador EDID do qemu |
|
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 |
|
fornece comandos para gerenciar imagens de disco do QEMU |
|
é 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 |
|
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 |
|
exporta imagens de disco do Qemu usando o protocolo QEMU Disk Network Block Device (NBD) |
|
implementa o auxiliar persistente de reserva para QEMU |
|
permite que um(a) usuário(a) modifique imagens de disco usando o QEMU Monitor Protocol (QMP) sem executar uma MV |
|
é o emulador PC System do QEMU |
|
é um auxiliar virtual RAPL MSR para qemu |
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.
O pacote Abseil-cpp contém uma série de bibliotecas projetadas para aumentar a biblioteca padrão C++.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/abseil/abseil-cpp/releases/download/20250127.0/abseil-cpp-20250127.0.tar.gz
Soma de verificação MD5 da transferência: dbc174bbc144525c45101a36d4027e7d
Tamanho da transferência: 2,2 MB
Espaço em disco estimado exigido: 23 MB
Tempo de construção estimado: 0,2 UPC (Usando paralelismo=4)
Instale Abseil-cpp executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ -D ABSL_PROPAGATE_CXX_STD=ON \ -D BUILD_SHARED_LIBS=ON \ -G Ninja .. && ninja
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
ninja install
-D
ABSL_PROPAGATE_CXX_STD=ON
: Esse parâmetro
habilita propagar recursos C++ para alvos que linquem para as
bibliotecas desse pacote.
-D
BUILD_SHARED_LIBS=ON
: Esse parâmetro constrói
versões compartilhadas das bibliotecas fornecidas por esse
pacote em vez de bibliotecas estáticas.
O pacote AppStream contém uma biblioteca e uma ferramenta que é útil para recuperar metadados de software e torná-los facilmente acessíveis para programas que precisam deles.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.freedesktop.org/software/appstream/releases/AppStream-1.0.4.tar.xz
Soma de verificação MD5 da transferência: a9f9b45b9a3b2125148821b42b218d77
Tamanho da transferência: 2,6 MB
Espaço em disco estimado exigido: 32 MB
Tempo de construção estimado: 0,5 UPC (Com qt6 e testes; ambos usando paralelismo=4)
cURL-8.12.1, itstool-2.0.7, libxml2-2.13.6, libxmlb-0.3.21 e libyaml-0.2.5
Instale AppStream executando os seguintes comandos:
mkdir build && cd build && meson setup --prefix=/usr \ --buildtype=release \ -D apidocs=false \ -D stemming=false .. && ninja
Para testar os resultados, emita: ninja test.
Agora, como o(a) usuário(a) root
:
ninja install && mv -v /usr/share/doc/appstream{,-1.0.4}
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
-D apidocs=false
:
Essa chave desabilita construir a documentação da API.
Remova-a se você tiver Gi-DocGen-2025.3 instalado e
desejar regerar a documentação da API. Quando a documentação
da API não for regerada, uma cópia pré construída será
instalada de qualquer maneira.
-D stemming=false
:
Essa chave desabilita o suporte de lematização. Remova essa
chave se você tiver libstemmer
instalado e quiser pesquisas mais rápidas.
-D qt=true
: Use essa opção se
você tiver Qt-6.8.2 instalado e quiser construir suporte
para aplicativos Qt6 nesse pacote.
AppStream espera um
arquivo de meta informações do sistema operacional que
descreva a distribuição GNU/Linux. Como o(a) usuário(a)
root
, crie o arquivo
descrevendo o LFS:
install -vdm755 /usr/share/metainfo &&
cat > /usr/share/metainfo/org.linuxfromscratch.lfs.xml << EOF
<?xml version="1.0" encoding="UTF-8"?>
<component type="operating-system">
<id>org.linuxfromscratch.lfs</id>
<name>Linux From Scratch</name>
<summary>A customized Linux system built entirely from source</summary>
<description>
<p>
Linux From Scratch (LFS) is a project that provides you with
step-by-step instructions for building your own customized Linux
system entirely from source.
</p>
</description>
<url type="homepage">https://www.linuxfromscratch.org/lfs/</url>
<metadata_license>MIT</metadata_license>
<developer id='linuxfromscratch.org'>
<name>The Linux From Scratch Editors</name>
</developer>
<releases>
<release version="12.3" type="release" date="2025-03-05">
<description>
<p>The development snapshot of the next LFS version.</p>
</description>
</release>
<release version="12.2" type="stable" date="2024-09-01">
<description>
<p>Now contains Binutils 2.43.1, GCC-14.2.0, Glibc-2.40,
and Linux kernel 6.10.</p>
</description>
</release>
</releases>
</component>
EOF
O appstream-glib fornece GObjects e métodos auxiliares para facilitar a leitura e a escrita de metadados do AppStream. Ele também fornece uma implementação DOM (Document Object Model) simples que facilita a edição de nós e a conversão de e para a representação XML padronizada.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): http://people.freedesktop.org/~hughsient/appstream-glib/releases/appstream-glib-0.8.3.tar.xz
Soma de verificação MD5 da transferência: 2ffd46eff1c16f31e435849b706c2287
Tamanho da transferência: 2,2 MB
Espaço em disco estimado exigido: 15 MB (com testes)
Tempo de construção estimado: 0,1 UPC (com testes)
cURL-8.12.1, gdk-pixbuf-2.42.12, GTK-3.24.48 e libarchive-3.7.7
docbook-xml-4.5, docbook-xsl-nons-1.79.2, GTK-Doc-1.34.0, libxslt-1.1.42 e libyaml-0.2.5
Instale appstream-glib executando os seguintes comandos:
mkdir build && cd build && meson setup .. \ --prefix=/usr \ --buildtype=release \ -D rpm=false && ninja
Para testar os resultados, emita: ninja test.
Agora, como o(a) usuário(a) root
:
ninja install
O Apache Portable Runtime (APR) é uma biblioteca de suporte para o servidor web Apache. Ela fornece um conjunto de interfaces de programação de aplicativos (APIs) que mapeiam para o sistema operacional (SO) subjacente. Onde o sistema operacional não suportar uma função específica, o APR fornecerá uma emulação. Assim, os(as) programadores(as) conseguem usar a APR para tornar um aplicativo portátil em diferentes plataformas.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://archive.apache.org/dist/apr/apr-1.7.5.tar.bz2
Soma de verificação MD5 da transferência: 8b156d4d0e804cb1f172312ffe087c25
Tamanho da transferência: 880 KB
Espaço em disco estimado exigido: 11 MB (adicionais 4 MB para os testes)
Tempo de construção estimado: 0,2 UPC (adicionar 1,7 UPC para testes)
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
--disable-static
:
Essa chave impede a instalação das versões estáticas das
bibliotecas.
A Apache Portable Runtime Utility Library fornece uma interface previsível e consistente para as interfaces subjacentes da biblioteca do cliente. Essa interface de programação de aplicativo garante comportamento previsível, se não idêntico, independentemente de quais bibliotecas estão disponíveis em uma determinada plataforma.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://archive.apache.org/dist/apr/apr-util-1.6.3.tar.bz2
Soma de verificação MD5 da transferência: b6e8c9b31d938fe5797ceb0d1ff2eb69
Tamanho da transferência: 423 KB
Espaço em disco estimado exigido: 7,6 MB (adicionar 1,4 MB para os testes)
Tempo de construção estimado: menos que 0,1 UPC (adicionar 0,3 UPC para testes)
FreeTDS, MariaDB-11.4.5 ou MySQL, OpenLDAP-2.6.9, PostgreSQL-17.4, SQLite-3.49.1, unixODBC-2.3.12 e Berkeley DB (obsoleto)
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
--with-gdbm=/usr
:
Essa chave habilita o plugin apr_dbm_gdbm-1.so
.
--with-openssl=/usr
--with-crypto
: Essas
chaves habilitam o plugin apr_crypto_openssl-1.so
.
--with-berkeley-db=/usr
: Se você
tiver instalado
Berkeley DB (obsoleto), use essa chave para compilar o
plugin apr_dbm_db-1.so
.
--with-ldap
: se você tiver
instalado OpenLDAP-2.6.9, [então] use essa chave
para compilar o plugin apr_ldap.so
.
O pacote Aspell contém um aplicativo interativo de verificação ortográfica e as bibliotecas Aspell. Aspell pode, ou ser usado como uma biblioteca, ou como um verificador ortográfico independente.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://ftp.gnu.org/gnu/aspell/aspell-0.60.8.1.tar.gz
Soma de verificação MD5 da transferência: 187bd142f522ada555c7aa6b9cbf56e6
Tamanho da transferência: 3,4 MB
Espaço em disco estimado exigido: 41 MB (8 MB adicionais para dicionário inglês)
Tempo de construção estimado: 0,4 UPC
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.
Dicionário inglês do Aspell: https://ftp.gnu.org/gnu/aspell/dict/en/aspell6-en-2020.12.07-0.tar.bz2
Which-2.23 (para os dicionários)
Instale Aspell executando os seguintes comandos:
./configure --prefix=/usr && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install && ln -svfn aspell-0.60 /usr/lib/aspell && install -v -m755 -d /usr/share/doc/aspell-0.60.8.1/aspell{,-dev}.html && install -v -m644 manual/aspell.html/* \ /usr/share/doc/aspell-0.60.8.1/aspell.html && install -v -m644 manual/aspell-dev.html/* \ /usr/share/doc/aspell-0.60.8.1/aspell-dev.html
Se você não planeja instalar Ispell, então copie o script amarrador ispell:
install -v -m 755 scripts/ispell /usr/bin/
Se você não planeja instalar Spell, então copie o script amarrador spell:
install -v -m 755 scripts/spell /usr/bin/
ln -svfn aspell-0.60 /usr/lib/aspell: Esse comando é útil para configuração de outros aplicativos, como enchant-2.8.2.
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.
é 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 |
|
é um amarrador em torno de aspell para invocá-lo no modo compatível com ispell |
|
é um amarrador em torno de aspell para invocá-lo no modo compatível com spell |
|
importa dicionários pessoais antigos para Aspell |
|
descomprime um arquivo prezip para a saída gerada padrão |
|
descomprime um arquivo prezip |
|
é um compressor de prefixo delta, usado para comprimir listas de palavras classificadas ou outros arquivos de texto semelhantes |
|
é chamado pelos vários scripts amarradores para realizar a atual compressão e descompressão |
|
exibe informação a respeito da instalação do
|
|
é um script para ajudar a usar Aspell como substituto de ispell |
|
comprime ou descomprime listas de palavras classificadas para uso com o verificador ortográfico Aspell |
|
contém funções da API de verificação ortográfica |
|
é uma interface para a biblioteca |
O Boost fornece um conjunto de bibliotecas gratuitas de fonte C++ portáteis revisadas por pares. Inclui bibliotecas para álgebra linear, geração de números pseudo-aleatórios, multi encadeamento, processamento de imagens, expressões regulares e testes de unidade.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Esse pacote extrairá para o diretório boost-1.87.0
/.
Transferência (HTTP): https://github.com/boostorg/boost/releases/download/boost-1.87.0/boost-1.87.0-b2-nodocs.tar.xz
Soma de verificação MD5 da transferência: c2ffeab30889999f55cf72e1107611aa
Tamanho da transferência: 48 MB
Espaço em disco estimado exigido: 692 MB (197 MB instalado)
Tempo de construção estimado: 1,5 UPC (Usando paralelismo=4; adicionar 0,1 UPC para testes)
ICU-76.1, NumPy-2.2.3 e Open MPI
Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/boost
Primeiro, corrija um problema de construção que ocorre na biblioteca stacktrace. Esse problema é específico para sistemas i686.
case $(uname -m) in i?86) sed -e "s/defined(__MINGW32__)/& || defined(__i386__)/" \ -i ./libs/stacktrace/src/exception_headers.h ;; esac
Esse pacote pode ser construído com várias tarefas executando
em paralelo. Nas instruções abaixo, todos os núcleos lógicos
disponíveis são usados. Substitua $(nproc)
pelo número de
núcleos lógicos que você deseja usar se não quiser usar
todos. Instale Boost
executando os seguintes comandos:
./bootstrap.sh --prefix=/usr --with-python=python3 &&
./b2 stage -j$(nproc)
threading=multi link=shared
Para executar os testes de regressão do Boost.Build, emita pushd tools/build/test; python3 test_all.py; popd.
Para executar os testes de regressão de cada biblioteca, emita pushd status; ../b2 -j$(nproc); popd. Alguns testes possivelmente falhem. Eles levam um tempo muito longo (mais de 119 UPC em -j4) e usam uma quantidade muito grande de espaço em disco (46 GB).
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
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.
contém bibliotecas que fornecem uma variedade de funções, incluindo envolucradores para NumPy, álgebra linear, geração de números pseudoaleatórios, multi camadeamento, processamento de imagens, expressões regulares, testes de unidade, localidades, JSON, registro, gráficos e depuração |
Brotli fornece um algoritmo de compressão sem perdas de propósito geral que comprime dados usando uma combinação de uma variante moderna do algoritmo LZ77, codificação Huffman e modelagem de contexto de segunda ordem. As bibliotecas dele são usadas principalmente para fontes WOFF2 em páginas da web.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/google/brotli/archive/v1.1.0/brotli-1.1.0.tar.gz
Soma de verificação MD5 da transferência: 3a6a3dba82a3604792d3cb0bd41bca60
Tamanho da transferência: 500 KB
Espaço em disco estimado exigido: 33 MB (com ligações python3)
Tempo de construção estimado: 0,3 UPC (com ligações python3; paralelismo=4)
pytest-8.3.4 (para testagem de ligações Python3)
Instale o brotli executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ .. && make
Para testar os resultados, emita: make test.
Agora, como o(a) usuário(a) root
:
make install
Se desejado, construa as ligações Python3:
cd .. && sed "/c\/.*\.[ch]'/d;\ /include_dirs=\[/\ i libraries=['brotlicommon','brotlidec','brotlienc']," \ -i setup.py && pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD
Instale as ligações Python3
como o(a) usuário(a) root
:
pip3 install --no-index --find-links dist --no-user Brotli
Para testar a ligação Python3, emita: pytest.
sed ... -i
setup.py: Impede que setup.py
reconstrua o pacote inteiro
novamente; use as bibliotecas já instaladas para a ligação
Python3 em vez disso.
CLucene é uma versão C++ do Lucene, um mecanismo de pesquisa de texto de alto desempenho.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://downloads.sourceforge.net/clucene/clucene-core-2.3.3.4.tar.gz
Soma de verificação MD5 da transferência: 48d647fbd8ef8889e5a7f422c1bfda94
Tamanho da transferência: 2,2 MB
Espaço em disco estimado exigido: 78 MB
Tempo de construção estimado: 0,8 UPC
Instale CLucene executando os seguintes comandos:
patch -Np1 -i ../clucene-2.3.3.4-contribs_lib-1.patch && sed -i '/Misc.h/a #include <ctime>' src/core/CLucene/document/DateTools.cpp && mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D BUILD_CONTRIBS_LIB=ON .. && make
Agora, como o(a) usuário(a) root
:
make install
-D
BUILD_CONTRIBS_LIB=ON
: Essa variável cmake
habilita construir a biblioteca contribs do CLucene
necessária para executar aplicativos que usam analisadores
específicos de texto de idioma como o LibreOffice, por
exemplo.
O pacote D-Bus GLib contém interfaces GLib para a API D-Bus.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://dbus.freedesktop.org/releases/dbus-glib/dbus-glib-0.112.tar.gz
Soma de verificação MD5 da transferência: 021e6c8a288df02c227e4aafbf7e7527
Tamanho da transferência: 700 KB
Espaço em disco estimado exigido: 12 MB (com testes)
Tempo de construção estimado: 0,1 UPC (com testes)
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
--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.
O pacote Double-conversion contém uma biblioteca que facilita as rotinas binário-para-decimal e decimal-para-binário para duplos IEEE.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/google/double-conversion/archive/v3.3.1/double-conversion-3.3.1.tar.gz
Soma de verificação MD5 da transferência: 7bbcf4bd2e1a96ef9d2a6fa60e887276
Tamanho da transferência: 6,7 MB
Espaço em disco estimado exigido: 62 MB (com testes)
Tempo de construção estimado: menos que 0,1 UPC (com testes)
Instale Double-conversion executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D BUILD_SHARED_LIBS=ON \ -D BUILD_TESTING=ON \ .. && make
Para testar os resultados, emita: make test.
Agora, como o(a) usuário(a) root
:
make install
-D
BUILD_SHARED_LIBS=ON
: Essa chave força o cmake a
construir uma versão compartilhada da biblioteca em vez da
versão estática.
-D BUILD_TESTING=ON
:
Essa chave constrói os aplicativos de teste.
duktape é um mecanismo embutível Javascript, com foco em portabilidade e pegada compacta.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://duktape.org/duktape-2.7.0.tar.xz
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
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
O pacote enchant fornece uma interface genérica para várias bibliotecas existentes de verificação ortográfica.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/rrthomas/enchant/releases/download/v2.8.2/enchant-2.8.2.tar.gz
Soma de verificação MD5 da transferência: 92dcfe06febc92a3d4bbff4e08b08d3d
Tamanho da transferência: 1,3 MB
Espaço em disco estimado exigido: 9,4 MB (adicionar 77 MB para os testes)
Tempo de construção estimado: 0,1 UPC (adicionar 0,9 UPC para testes)
dbus-glib-0.112, Doxygen-1.13.2, Hspell, Hunspell, Nuspell, Voikko e unittest-cpp (exigido para os testes)
Instale enchant executando os seguintes comandos:
./configure --prefix=/usr \ --disable-static \ --docdir=/usr/share/doc/enchant-2.8.2 && make
Para executar os testes, unittest-cpp precisa ser instalado e
a opção --enable-relocatable
passada para o "configure" acima. Se essas condições
estiverem presentes, [então] os testes podem ser executados
com make check.
Agora, como o(a) usuário(a) root
:
make install
--disable-static
:
Essa chave impede a instalação das versões estáticas das
bibliotecas.
Você consegue testar sua instalação e configuração criando um arquivo de teste e executando os seguintes comandos (você pode substituir o dicionário en_GB por qualquer outro baixado ao instalar Aspell-0.60.8.1):
cat > /tmp/test-enchant.txt << "EOF"
Tel me more abot linux
Ther ar so many commads
EOF
enchant-2 -d en_GB -l /tmp/test-enchant.txt &&
enchant-2 -d en_GB -a /tmp/test-enchant.txt
Você verá uma lista de palavras com erros ortográficos seguida por uma lista de alternativas para elas.
Veja mais detalhes na página de manual do "enchant".
Exempi é uma implementação do XMP (Extensible Metadata Platform da Adobe).
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://libopenraw.freedesktop.org/download/exempi-2.6.5.tar.xz
Soma de verificação MD5 da transferência: 51fe14c2a5fa44816ba8187c6ad87d78
Tamanho da transferência: 2,7 MB
Espaço em disco estimado exigido: 289 MB (adicionar 236 MB para testes)
Tempo de construção estimado: 0,4 UPC (adicionar 0,6 UPC para testes; ambos usando paralelismo=4)
Se você pretende executar os testes de regressão, primeiro remova um teste que depende de um SDK proprietário da Adobe:
sed -i -r '/^\s?testadobesdk/d' exempi/Makefile.am && autoreconf -fiv
Instale Exempi executando os seguintes comandos:
./configure --prefix=/usr --disable-static && make
Para testar os resultados, emita: make check.
Agora, como o(a) usuário(a) root
:
make install
--disable-static
:
Essa chave impede a instalação das versões estáticas das
bibliotecas.
FFTW é uma biblioteca de sub-rotina C para calcular a transformada discreta de Fourier (DFT) em uma ou mais dimensões, de tamanho arbitrário de entrada gerada e de dados reais e complexos (bem como de dados pares/ímpares, ou seja, as transformações discretas de cosseno/seno ou DCT/DST).
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.fftw.org/fftw-3.3.10.tar.gz
Soma de verificação MD5 da transferência: 8ccbf6a5ea78a16dbc3e1306e234cc5c
Tamanho da transferência: 4,0 MB
Espaço em disco estimado exigido: 59 MB
Tempo de construção estimado: 1,6 UPC (adicionar 3,4 UPC para testes, ambos usando paralelismo=4)
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
--enable-shared
--disable-static
: Use
bibliotecas compartilhadas em vez de bibliotecas estáticas.
--enable-threads
:
Isso habilita libfftw3_threads.so
para ser compilada. Ela
é usada, por exemplo, pelo plugin gimp proveniente de G'MIC.
--enable-{sse2,avx,avx2}
: Essas
habilitam construir as rotinas otimizadas usando instruções
SSE2, AVX e AVX2. O FFTW verificará se essas rotinas podem
realmente ser usadas na CPU atual quando a biblioteca FFTW
for carregada, de forma que uma construção da FFTW com essas
rotinas habilitadas ainda possa ser executada em uma CPU sem
SSE2, AVX ou AVX2. Essas opções não são compatíveis com
--enable-long-double
.
--enable-float
: Isso
habilita construir a biblioteca que usa aritmética de ponto
flutuante de precisão simples. É mais rápido, mas menos
preciso que a biblioteca padrão de precisão dupla. A
biblioteca será chamada libfftw3f.so
necessária para PulseAudio-17.0.
--enable-long-double
:
Isso habilita construir a biblioteca que usa aritmética de
ponto flutuante longa-dupla de maior precisão. A biblioteca
será chamada libfftw3l.so
.
--enable-avx512
: Isso habilita
construir as rotinas otimizadas usando instruções AVX512F. O
FFTW verificará se essas rotinas podem realmente ser usadas
na CPU atual quando a biblioteca FFTW for carregada, de forma
que uma construção da FFTW com essas rotinas habilitadas
ainda possa executar em uma CPU sem o AVX512F. Use essa opção
se a construção da FFTW será usada em uma CPU com AVX512F.
Essa opção não é compatível com --enable-long-double
.
é 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 |
|
é 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 |
|
é a biblioteca Fast Fourier Transform |
|
é a biblioteca encadeada Fast Fourier Transform |
|
é a biblioteca Fast Fourier Transform de precisão simples, descrita como “float” por razões históricas |
|
é a biblioteca encadeada de precisão simples Fast Fourier Transform |
|
é a biblioteca longa dupla Fast Fourier Transform |
|
é a biblioteca encadeada longa dupla Fast Fourier Transform |
O pacote fmt é uma biblioteca de formatação de fonte aberto que fornece uma alternativa rápida e segura ao stdio do C e ao iostreams do C++.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/fmtlib/fmt/archive/11.1.4/fmt-11.1.4.tar.gz
Soma de verificação MD5 da transferência: 10c2ae163accd3b82e6b8b4dff877645
Tamanho da transferência: 688 KB
Espaço em disco estimado exigido: 44 MB (com testes)
Tempo de construção estimado: 0,4 UPC (usando paralelismo = 4; com os testes)
Instale fmt executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_INSTALL_LIBDIR=/usr/lib \ -D BUILD_SHARED_LIBS=ON \ -D FMT_TEST=OFF \ -G Ninja .. && ninja
Se você tiver habilitado testes, emita: ninja test.
Agora, como o(a) usuário(a) root
:
ninja install
-D FMT_TEST=OFF
: Essa
chave inicializa os testes do pacote. Configure para ON se
você desejar executar testes.
O pacote GLib contém bibliotecas de baixo nível úteis para fornecer manipulação de estrutura de dados para C, amarradores de portabilidade e interfaces para funcionalidades em tempo de execução, como um loop de eventos, camadas, carregamento dinâmico e um sistema de objetos.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/glib/2.82/glib-2.82.5.tar.xz
Soma de verificação MD5 da transferência: 87c7641e80b23a05b8ab506d52c970e3
Tamanho da transferência: 5,3 MB
Espaço em disco estimado exigido: 229 MB (adicionar 22 MB para os testes)
Tempo de construção estimado: 0,7 UPC (adicionar 0,4 UPC para testes; ambos usando paralelismo=4)
GObject Introspection (Recomendado)
Transferência: https://download.gnome.org/sources/gobject-introspection/1.82/gobject-introspection-1.82.0.tar.xz
Soma de verificação MD5 da transferência: 50beb465bc81f33395b5e0e3bbe364ec
Tamanho da transferência: 1,1 MB
Remendo para Seleção de Nível de Registro (Opcional)
docutils-0.21.2, libxslt-1.1.42 e pcre2-10.45
Cairo-1.18.2 (para alguns testes do GObject Introspection), dbus-1.16.0 (para alguns testes), Fuse-3.16.2 e bindfs (ambos necessários para um teste), GDB-16.2 (para ligações), Gjs-1.82.1 (para alguns testes do GObject Introspection), GTK-Doc-1.34.0 (para documentação do GObject Introspection), docbook-xml-4.5, docbook-xsl-nons-1.79.2, Gi-DocGen-2025.3 (para construir documentação de API), glib-networking-2.80.1 (para alguns testes, mas isso é uma dependência circular), Mako-1.3.9 e Markdown-3.7 (ambos para g-ir-doc-tool) e sysprof
Citado diretamente a partir 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.4 e desktop-file-utils-0.28,
respectivamente. Esses dois utilitários também são
necessários para alguns testes.
Se desejado, aplique o remendo opcional. Em muitos casos, os
aplicativos que usam essa biblioteca, direta ou
indiretamente, por meio de outras bibliotecas, tais como
GTK-3.24.48, emitem numerosos avisos quando
executados a partir da linha de comando. Esse remendo
habilita o uso de uma variável de ambiente, GLIB_LOG_LEVEL
, que suprime mensagens
indesejadas. O valor da variável é um dígito que corresponde
a:
1 Alerta |
2 Crítico |
3 Erro |
4 Aviso |
5 Informe |
Por exemplo, export
GLIB_LOG_LEVEL=4
pulará a saída gerada de
mensagens Warning e Notice (e mensagens de
Informação/Depuração se estiverem ativadas). Se GLIB_LOG_LEVEL
não estiver definida, a saída
gerada normal de mensagem não será afetada.
patch -Np1 -i ../glib-skip_warnings-1.patch
Se uma versão anterior da glib estiver instalada, [então] mova os cabeçalhos para fora do caminho, de modo que os pacotes posteriores não encontrem conflitos:
if [ -e /usr/include/glib-2.0 ]; then rm -rf /usr/include/glib-2.0.old && mv -vf /usr/include/glib-2.0{,.old} fi
Instale GLib executando os seguintes comandos:
mkdir build && cd build && meson setup .. \ --prefix=/usr \ --buildtype=release \ -D introspection=disabled \ -D glib_debug=disabled \ -D man-pages=enabled \ -D sysprof=disabled && ninja
A suíte de teste da GLib exige desktop-file-utils para alguns testes. No entanto, desktop-file-utils exige a GLib para a finalidade de compilar; portanto, você precisa primeiro instalar a GLib e então executar a suíte de teste.
Como o(a) usuário(a) root
,
instale esse pacote pela primeira vez para permitir construir
o GObject Introspection:
ninja install
Construa GObject Introspection:
tar xf ../../gobject-introspection-1.82.0.tar.xz && meson setup gobject-introspection-1.82.0 gi-build \ --prefix=/usr --buildtype=release && ninja -C gi-build
Para testar os resultados do GObject Introspection, emita: ninja -C gi-build test.
Como o(a) usuário(a) root
,
instale o GObject Introspection para gerar os dados de
introspecção das bibliotecas GLib (requeridos por vários
pacotes usantes do Glib, especialmente alguns pacotes do
GNOME):
ninja -C gi-build install
Agora gere os dados de introspecção:
meson configure -D introspection=enabled && ninja
Se você tiver Gi-DocGen-2025.3 instalado e desejar construir a documentação da API para esse pacote, emita:
sed "/docs_dir =/s|$| / 'glib-' + meson.project_version()|" \ -i ../docs/reference/meson.build && meson configure -D documentation=true && ninja
Como o(a) usuário(a) root
,
instale esse pacote novamente para os dados de introspecção
(e, opcionalmente, a documentação):
ninja install
Você deveria agora instalar desktop-file-utils-0.28 e shared-mime-info-2.4 e proceder à execução da suíte de teste.
Não execute a suíte de teste como root
ou alguns testes falharão
inesperadamente e deixarão alguns diretórios não
compatíveis com FHS na hierarquia /usr
.
Para testar os resultados, depois de ter instalado os
pacotes, emita: LC_ALL=C ninja
test como um(a) usuário(a) não-root
.
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
-D man-pages=enabled
:
Essa chave faz com que a construção crie e instale as páginas
de manual do pacote.
-D
glib_debug=disabled
: Essa chave faz com que a
construção não inclua algumas verificações caras para
depuração nos programas e bibliotecas construídos.
-D sysprof=disabled
:
Essa chave desabilita o suporte de rastreamento para sysprof.
Remova essa opção se você quiser o suporte de rastreamento.
Observe que se o sysprof não estiver instalado, remover essa
opção fará com que o sistema de construção baixe uma cópia do
sysprof a partir da Internet.
pode ser usado para iniciar aplicativos e para enviar mensagens para instâncias já em execução de outros aplicativos |
|
é uma ferramenta simples usada para trabalhar com objetos D-Bus |
|
é usado para gerar código e (ou) documentação para uma ou mais interfaces D-Bus |
|
converte um ou mais arquivos GIR em um ou mais arquivos typelib |
|
é um descompilador GIR que usa a API do repositório |
|
é um utilitário que fornece informações acerca de um typelib do GI |
|
é um utilitário que torna muitos recursos do GIO disponíveis a partir da linha de comando |
|
é usado para criar um arquivo |
|
é 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 |
|
é usado para compilar todos os arquivos de esquema
XML do GSettings em um diretório para um arquivo
binário com o nome |
|
é um utilitário de geração de código marechal C para encerramentos GLib |
|
é uma variante do utilitário de internacionalização gettext |
|
é um utilitário de geração de descrição de enumeração em linguagem C |
|
é um pequeno utilitário que desenha uma árvore de tipos |
|
oferece uma interface simples de linha de comando para GResource |
|
oferece uma interface simples de linha de comando para GSettings |
|
é um utilitário de execução de teste |
|
é um utilitário de formatação de informe de teste |
|
é uma biblioteca que fornece classes úteis para E/S de uso geral, rede de intercomunicação, IPC, configurações e outras funcionalidades de aplicativos de alto nível |
|
é uma biblioteca que fornece acesso a typelibs e dados de introspecção que descrevem APIs da C |
|
é uma biblioteca de utilitários portável de uso geral, que fornece muitos tipos úteis de dados, macros, conversões de tipo, utilitários de sequências de caracteres, utilitários de arquivo, uma abstração de mainloop e assim por diante |
|
fornece API portável para carregar dinamicamente módulos |
|
fornece o sistema de tipo base do GLib e a classe de objeto |
|
é uma biblioteca básica para retro compatibilidade;
costumava ser a biblioteca de camadas do GLib, mas
as funcionalidades foram mescladas na |
|
cria ou extrai dados de anotação a partir de typelibs do GI |
|
é uma contraparte de gi-compile-repository
para a antiga API |
|
gera arquivos Mallard que podem ser visualizados com yelp ou renderizados para HTML com yelp-build originários das ferramentas yelp |
|
é uma contraparte de gi-inspect-typelib
para a antiga API |
|
é uma contraparte de gi-decompile-typelib
para a antiga API |
|
é uma ferramenta que gera arquivos XML GIR analisando cabeçalhos e introspectando bibliotecas baseadas em GObject |
|
é uma contraparte de |
O pacote GLibmm é um conjunto de ligações C++ para a GLib.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/glibmm/2.66/glibmm-2.66.7.tar.xz
Soma de verificação MD5 da transferência: c6edf4cc986adec2a6d21e7423bad7d1
Tamanho da transferência: 8,4 MB
Espaço em disco estimado exigido: 83 MB (com testes)
Tempo de construção estimado: 0,5 UPC (Usando paralelismo=4; com testes)
GLib-2.82.5 e libsigc++-2.12.1
Doxygen-1.13.2, glib-networking-2.80.1 (para testes), GnuTLS-3.8.9 (para testes), libxslt-1.1.42 e mm-common
Instale GLibmm executando os seguintes comandos:
mkdir bld && cd bld && meson setup --prefix=/usr --buildtype=release .. && ninja
Para testar os resultados, emita: ninja test.
Agora, como o(a) usuário(a) root
:
ninja install
O pacote GLibmm é um conjunto de ligações C++ para GLib. Essa versão é parte de uma nova API para suporte ao gtkmm-4.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/glibmm/2.82/glibmm-2.82.0.tar.xz
Soma de verificação MD5 da transferência: b24b3ee3e7943c779f1193cce6dda34e
Tamanho da transferência: 9,1 MB
Espaço em disco estimado exigido: 95 MB (com testes)
Tempo de construção estimado: 0,4 UPC (Usando paralelismo=4; com testes)
Doxygen-1.13.2, glib-networking-2.80.1 (para testes), GnuTLS-3.8.9 (para testes), libxslt-1.1.42 e mm-common
Instale GLibmm executando os seguintes comandos:
mkdir bld && cd bld && meson setup --prefix=/usr --buildtype=release .. && ninja
Para testar os resultados, emita: ninja test.
Agora, como o(a) usuário(a) root
:
ninja install
O pacote GMime contém um conjunto de utilitários para analisar e criar mensagens usando o Multipurpose Internet Mail Extension (MIME), conforme definido pelos RFCs aplicáveis. Veja-se o website do GMime para os RFCs fornecidos. Isso é útil, pois fornece uma API que adere à especificação MIME o mais próximo possível, além de fornecer a programadores(as) uma interface extremamente fácil de usar para as funções da API.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/gmime/3.2/gmime-3.2.7.tar.xz
Soma de verificação MD5 da transferência: 7ecd9aa75e0cd2e8668206b1d53df874
Tamanho da transferência: 2,1 MB
Espaço em disco estimado exigido: 25 MB (com testes)
Tempo de construção estimado: 0,3 UPC (com testes)
GLib-2.82.5 (GObject Introspection recomendado) e libgpg-error-1.51
DocBook-utils-0.6.14, GPGME-1.24.2, GTK-Doc-1.34.0, libnsl-2.0.1, Vala-0.56.17 e Gtk# (exige Mono)
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
--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.
O pacote gmmlib contém a biblioteca Graphics Memory Management da Intel, que fornece memória específica do dispositivo e funções de gerenciamento de buffer para o Intel Media Driver para VAAPI e para o Intel Graphics Computer Runtime para OpenCL (TM).
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/lfs-book/gmmlib/archive/v22.5.5/gmmlib-22.5.5.tar.gz
Soma de verificação MD5 da transferência: 3da09a09f49164c388fd6b002ca81443
Tamanho da transferência: 852 KB
Espaço em disco estimado exigido: 59 MB
Tempo de construção estimado: 0,5 UPC
No GitHub, nós bifurcamos o repositório do fluxo de
desenvolvimento para nosso próprio espaçode nomes
lfs-book
e recriamos uma
etiqueta para o lançamento. Isso é feito para garantir que
o nome do arquivo tarball baixado esteja correto e
consistente (ou seja, ele não deveria mudar ao se usar o
navegador em vez de uma ferramenta como wget). Nossa etiqueta e a
etiqueta do lançamento do fluxo de desenvolvimento estão no
mesmo commit, de forma que nós não introduzimos nenhuma
mudança no conteúdo do tarball, exceto o nome do diretório
de nível superior dele (que o Git não rastreia).
Instale gmmlib executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D BUILD_TYPE=Release \ -G Ninja \ -W no-dev .. && ninja
A suíte de teste normalmente é executada por ninja, a menos que -D RUN_TEST_SUITE=NO seja passado para cmake.
Agora, como o(a) usuário(a) root
:
ninja install
A GNU Scientific Library (GSL) é uma biblioteca numérica para programadores(as) C e C++. Ela fornece uma ampla gama de rotinas matemáticas, tais como geradores de números aleatórios, funções especiais e ajuste de mínimos quadrados.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://ftp.gnu.org/gnu/gsl/gsl-2.8.tar.gz
Soma de verificação MD5 da transferência: 182ec03204f164e67238c9116591a37d
Tamanho da transferência: 8,6 MB
Espaço em disco estimado exigido: 223 MB (com testes, sem documentos)
Tempo de construção estimado: 1,0 UPC (Usando paralelismo=4; com testes, sem documentos)
Instale Gsl executando os seguintes comandos:
./configure --prefix=/usr --disable-static && make
Se você tiver sphinx_rtd_theme-3.0.2 instalado, [então] construa a documentação com:
make html
Para testar os resultados, emita: make check.
Agora, como o(a) usuário(a) root
:
make install
Se você construiu a documentação, [então] instale-a (como
root
) com:
mkdir /usr/share/doc/gsl-2.8 && cp -R doc/_build/html/* /usr/share/doc/gsl-2.8
--disable-static
:
Essa chave impede a instalação das versões estáticas das
bibliotecas.
é um script de shell para obter o número da versão e sinalizadores do compilador da biblioteca Gsl instalada |
|
é um aplicativo de demonstração para a GNU Scientific Library que calcula um histograma a partir de dados obtidos a partir do stdin |
|
é um aplicativo de demonstração para a GNU Scientific Library que gera amostras aleatórias a partir de várias distribuições |
|
contém funções que implementam uma interface C para subaplicativos básicos de álgebra linear |
|
contém funções que fornecem uma coleção de rotinas numéricas para computação científica |
O pacote gspell fornece uma API flexível para adicionar verificação ortográfica a um aplicativo GTK+.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/gspell/1.14/gspell-1.14.0.tar.xz
Soma de verificação MD5 da transferência: 282c1ed7213a657e47de663fd2a081db
Tamanho da transferência: 116 KB
Espaço em disco estimado exigido: 6,7 MB (com testes)
Tempo de construção estimado: 0,1 UPC (com testes)
enchant-2.8.2, ICU-76.1 e GTK-3.24.48
GLib-2.82.5 (com GObject Introspection), GTK-Doc-1.34.0, Vala-0.56.17, Valgrind-3.24.0 e Hunspell (para testes)
Instale gspell executando os seguintes comandos:
mkdir gspell-build && cd gspell-build && meson setup --prefix=/usr --buildtype=release -D gtk_doc=false .. && ninja
Para testar os resultados, emita: ninja test. Os testes precisam ser executados em uma sessão do X. Um teste, test-checker, é conhecido por falhar se o pacote externo Hunspell não estiver instalado.
Agora, como o(a) usuário(a) root
:
ninja install
-D gtk_doc=false
:
Impede construir a documentação. Remova isso se você tiver
GTK-Doc instalado e desejar
construir a documentação.
O pacote highway contém uma biblioteca C++ que fornece intrínsecos SIMD/vetoriais portáveis.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/google/highway/archive/1.2.0/highway-1.2.0.tar.gz
Soma de verificação MD5 da transferência: 8b3d090a2d081730b40bca5ae0d65f11
Tamanho da transferência: 2,1 MB
Espaço em disco estimado exigido: 21 MB
Tempo de construção estimado: 0,8 UPC (com paralelismo=4)
Instale highway executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ -D BUILD_TESTING=OFF \ -D BUILD_SHARED_LIBS=ON \ -G Ninja .. && ninja
Esse pacote vem com uma suíte de teste, porém ela exige gtest, que não está no BLFS.
Agora, como o(a) usuário(a) root
:
ninja install
-D BUILD_TESTING=OFF
:
Esse parâmetro desabilita a suíte de teste de ser construída
porque gtest não faz
parte do BLFS. Sem esse parâmetro, CMake baixará esse pacote
durante o processo de configuração. Se você desejar executar
os testes, instale gtest e,
então,remova esse parâmetro.
-D
BUILD_SHARED_LIBS=ON
: Esse parâmetro habilita
construir versões compartilhadas das bibliotecas em vez das
versões estáticas.
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.
Atualizar esse pacote para uma nova versão principal (por
exemplo, da 72.1 para a 76.1) exigirá a reconstrução de
muitos outros pacotes. Se alguns pacotes que usam as
bibliotecas construídas por icu4c-76 forem reconstruídos,
eles usarão as novas bibliotecas enquanto os pacotes atuais
usarão as bibliotecas anteriores. Se o carregador de
aplicativos do Linux (/usr/lib/ld-linux-x86-64.so.2
) determinar
que as bibliotecas antiga e nova são necessárias, e um
símbolo (nome do dado ou função) existir em ambas as
versões da biblioteca, todas as referências ao símbolo
serão resolvidas para a versão que aparece anteriormente na
sequência em largura do gráfico de dependência. Isso pode
resultar na falha do aplicativo se a definição dos dados ou
o comportamento da função referida pelo símbolo diferir
entre duas versões. Para evitar o problema, os(as)
usuários(as) precisarão reconstruir todos os pacotes
vinculados a uma biblioteca do ICU o mais rápido possível,
assim que o ICU for atualizado para uma nova versão
principal.
Para determinar quais bibliotecas externas são necessárias (direta ou indiretamente) por um aplicativo ou biblioteca, execute:
ldd <aplicativo ou biblioteca>
ou para ver somente programas e bibliotecas que diretamente usem uma biblioteca:
readelf -d <aplicativo ou biblioteca> | grep NEEDED
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/unicode-org/icu/releases/download/release-76-1/icu4c-76_1-src.tgz
Soma de verificação MD5 da transferência: 857fdafff8127139cc175a3ec9b43bd6
Tamanho da transferência: 26 MB
Espaço em disco estimado exigido: 397 MB (adicionar 46 MB para os testes)
Tempo de construção estimado: 1,0 UPC (Usando paralelismo=4; adicionar 1,8 UPC para testes)
Doxygen-1.13.2 (para documentação)
Esse pacote se expande para o diretório icu
.
Instale ICU executando os seguintes comandos:
cd source && ./configure --prefix=/usr && make
Para testar os resultados, emita: make check.
Agora, como o(a) usuário(a) root
:
make install
desmonta um pacote de recursos |
|
converte caracteres escapados “\u” em caracteres Unicode |
|
compila arquivos-fonte do ICU de regras de iteração de quebra em arquivos de dados binários |
|
gera C ou código de montagem específico da plataforma a partir de um arquivo de dados do ICU |
|
lê em Unicode definições confundíveis de caracteres e escreve os dados binários |
|
gera um arquivo de dados do ICU mapeável em memória |
|
compila o arquivo de apelidos do conversor |
|
compila listas de palavras em dicionários de tentativas de sequências de caracteres do ICU |
|
constrói arquivos de dados binários com dados de normalização Unicode |
|
compila um pacote de recursos |
|
compila dados StringPrep a partir de arquivos filtrados RFC 3454 |
|
gera saída das opções de construção do ICU |
|
gera saída da informação de configuração relativa ao ICU atual |
|
extrai ou modifica um arquivamento ".dat" do ICU |
|
compila uma tabela de conversor |
|
empacota dados para uso pelo ICU |
|
converte dados a partir de um codificador para outro |
|
é a biblioteca de dados |
|
é a biblioteca de internacionalização ("i18n") |
|
é a biblioteca de Entrada/Saída do ICU ("stdio" Unicode) |
|
é a biblioteca de teste |
|
é a biblioteca do utilitário da ferramenta |
|
é a biblioteca comum |
Esse pacote é um analisador simples de arquivo ".INI" escrito em C.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/benhoyt/inih/archive/r58/inih-r58.tar.gz
Soma de verificação MD5 da transferência: 5c9725320ad2c79e0b1f76568bd0ff24
Tamanho da transferência: 20 KB
Espaço em disco estimado exigido: 724 KB
Tempo de construção estimado: menos que 0,1 UPC
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
O pacote Jansson contém uma biblioteca usada para codificar, decodificar e manipular dados JSON.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/akheron/jansson/releases/download/v2.14/jansson-2.14.tar.bz2
Soma de verificação MD5 da transferência: 3f90473d7d54ebd1cb6a2757396641df
Tamanho da transferência: 424 KB
Espaço em disco estimado exigido: 5,6 MB (adicionar 1,9 MB para testes)
Tempo de construção estimado: 0,1 UPC (com testes)
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
O JSON-C implementa um modelo de objeto de contagem de referência que permite construir facilmente objetos JSON em C, produzi-los como sequências de caracteres formatadas JSON e analisar sequências de caracteres formatadas JSON de volta na representação C de objetos JSON.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://s3.amazonaws.com/json-c_releases/releases/json-c-0.18.tar.gz
Soma de verificação MD5 da transferência: e6593766de7d8aa6e3a7e67ebf1e522f
Tamanho da transferência: 396 KB
Espaço em disco estimado exigido: 7,9 MB
Tempo de construção estimado: 0,2 UPC (com testes)
Doxygen-1.13.2 e Graphviz-12.2.1 (para ferramenta dot)
Instale JSON-C executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ -D BUILD_STATIC_LIBS=OFF \ .. && make
Se tiver instalado Doxygen-1.13.2 e Graphviz-12.2.1, você consegue construir a documentação executando o seguinte comando:
doxygen doc/Doxyfile
Para testar os resultados, emita: make test.
Agora, como o(a) usuário(a) root
:
make install
Se você construiu a documentação, instale-a executando os
seguintes comandos como o(a) usuário(a) root
:
install -d -vm755 /usr/share/doc/json-c-0.18 && install -v -m644 doc/html/* /usr/share/doc/json-c-0.18
-D
CMAKE_BUILD_TYPE=Release
: Essa chave é usada para
aplicar um nível mais alto de otimização à compilação.
O pacote JSON GLib é uma biblioteca que oferece suporte à serialização e desserialização para o formato JavaScript Object Notation (JSON) descrito pela RFC 4627.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/json-glib/1.10/json-glib-1.10.6.tar.xz
Soma de verificação MD5 da transferência: d4bf13ddd1e6d607d039d39286f9e3d0
Tamanho da transferência: 248 KB
Espaço em disco estimado exigido: 14 MB (com testes)
Tempo de construção estimado: 0,1 UPC (com testes)
GLib-2.82.5 (GObject Introspection exigido se construir GNOME)
Instale o JSON GLib executando os seguintes comandos:
mkdir build && cd build && meson setup --prefix=/usr --buildtype=release .. && ninja
Para testar os resultados, emita: ninja test. Um teste, node, é conhecido por falhar.
Agora, como o(a) usuário(a) root
:
ninja install
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
-D gtk_doc=disabled
: Adicione
essa opção se você tiver GTK-Doc-1.34.0 instalado e não
desejar gerar a documentação da API.
Keyutils é um conjunto de utilitários para gerenciar o recurso de retenção de chave no núcleo, que pode ser usado por sistemas de arquivos, dispositivos de bloco e muito mais para obter e reter as chaves de autorização e de encriptação exigidas para realizar operações seguras.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/keyutils.git/snapshot/keyutils-1.6.3.tar.gz
Soma de verificação MD5 da transferência: 6b70b2b381c1b6d9adfaf66d5d3e7c00
Tamanho da transferência: 136 KB
Espaço em disco estimado exigido: 2,6 MB (com testes)
Tempo de construção estimado: menos que 0,1 UPC (adicionar 0,4 UPC para testes)
lsb-tools-0.12 (referido pela suíte de teste)
Se executar a suíte de teste, alguns testes precisarão dos seguintes recursos do núcleo habilitados:
Security options ---> [*] Enable access key retention support [KEYS] [*] Large payload keys [BIG_KEYS] [*] Diffie-Hellman operations on retained keys [KEY_DH_OPERATIONS] -*- Cryptographic API ---> [CRYPTO] Public-key cryptography ---> <*/M> RSA (Rivest-Shamir-Adleman) [CRYPTO_RSA] Hashes, digests, and MACs ---> <*/M> SHA-1 [CRYPTO_SHA1] [*] Asymmetric (public-key cryptographic) key type ---> [ASYMMETRIC_KEY_TYPE] <*> Asymmetric public-key crypto algorithm subtype ... [ASYMMETRIC_PUBLIC_KEY_SUBTYPE] # If not built into the kernel, [SYSTEM_TRUSTED_KEYRING] won't show up; # building as a module won't work: <*> X.509 certificate parser [X509_CERTIFICATE_PARSER] Certificates for signature checking ---> [*] Provide system-wide ring of trusted keys [SYSTEM_TRUSTED_KEYRING] [*] Provide a keyring to which extra trustable keys may be added ... [SECONDARY_TRUSTED_KEYRING] [*] Provide system-wide ring of blacklisted keys [SYSTEM_BLACKLIST_KEYRING] Library routines ---> Crypto library routines ---> # If not built into the kernel, [BIG_KEYS] won't show up; # building as a module won't work: <*> ChaCha20-Poly1305 AEAD support (8-byte nonce library version) ... [CRYPTO_LIB_CHACHA20POLY1305]
Instale keyutils executando os seguintes comandos:
make
Agora, como o(a) usuário(a) root
:
make NO_ARLIB=1 LIBDIR=/usr/lib BINDIR=/usr/bin SBINDIR=/usr/sbin install
A suíte de teste só pode executar depois de instalar-se esse
pacote. Para testar os resultados, emita, como o(a)
usuário(a) root
:
make -k test
Se lsb-tools-0.12 não estiver instalado, a suíte de teste produzirá algumas linhas reclamando que o comando lsb_release não está disponível, mas não afetará o resultado do teste.
NO_ARLIB=1
: Esse
sinalizador do "make" desabilita a instalação da biblioteca
estática.
controla o recurso de gerenciamento de chave com uma variedade de subcomandos |
|
é 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 |
|
é 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 |
|
contém a instanciação da API da biblioteca "keyutils" |
O pacote libaio é um recurso assíncrono de Entrada/Saída ("Entrada/Saída assíncrona" ou "aio") que possui uma API e um conjunto de recursos mais ricos que o recurso simples de Entrada/Saída assíncrona POSIX. Essa biblioteca, "libaio", fornece a API nativa do Linux para Entrada/Saída assíncrona. O recurso de Entrada/Saída assíncrona POSIX exige essa biblioteca para a finalidade de fornecer recursos de Entrada/Saída assíncronas acelerados pelo núcleo, assim como os aplicativos que exigem a API de Entrada/Saída assíncrona nativa do Linux.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://pagure.io/libaio/archive/libaio-0.3.113/libaio-0.3.113.tar.gz
Soma de verificação MD5 da transferência: 605237f35de238dfacc83bcae406d95d
Tamanho da transferência: 48 KB
Espaço em disco estimado exigido: 1,0 MB
Tempo de construção estimado: menos que 0,1 UPC
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
A biblioteca libarchive fornece interface única para leitura/gravação de vários formatos de compressão.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/libarchive/libarchive/releases/download/v3.7.7/libarchive-3.7.7.tar.xz
Soma de verificação MD5 da transferência: 50c4dea9eba9a0add25ac1cfc9ba2cdb
Tamanho da transferência: 5,2 MB
Espaço em disco estimado exigido: 43 MB (adicionar 32 MB para os testes)
Tempo de construção estimado: 0,4 UPC (adicionar 0,8 UPC para testes)
Instale o libarchive executando os seguintes comandos:
./configure --prefix=/usr --disable-static && make
Para testar os resultados, emita: make check.
Agora, como o(a) usuário(a) root
:
make install
Ainda como o(a) usuário(a) root
, crie um link simbólico de forma que
nós consigamos usar bsdunzip como unzip, em vez de depender
do pacote Unzip não mantido:
ln -sfv bsdunzip /usr/bin/unzip
Conforme discutido em
Codificação Errada do Nome do Arquivo, se o
arquivamento Zip a ser extraído contiver qualquer arquivo
com um nome contendo caracteres não latinos, você precisará
especificar manualmente a codificação desses caracteres ou
eles serão transformados em sequências ilegíveis no nome do
arquivo extraído. Por exemplo, se um arquivamento Zip
criado com o WinZip, archive.zip
, contiver um arquivo nomeado
com caracteres chineses simplificados, a codificação deverá
ser CP936 e a opção -I
cp936
deverá ser usada. Ou seja, o comando para
se extrair o arquivamento deverá ser unzip -I cp936
archive.zip.
--disable-static
:
Essa chave impede a instalação das versões estáticas das
bibliotecas.
--without-xml2
: Essa chave
configura "expat" para suporte ao formato de arquivamento
"xar" em vez do preferido "libxml2" se ambos os pacotes
estiverem instalados.
--with-nettle
: Essa chave
configura Nettle para suporte a criptografia em vez do
OpenSSL.
O pacote libassuan contém uma biblioteca de comunicação entre processos usada por alguns dos outros pacotes relacionados ao GnuPG. O principal uso da libassuan é o de permitir que um cliente interaja com um servidor não persistente. A libassuan não é, entretanto, limitada ao uso com servidores e clientes do GnuPG. Ela foi projetado para ser flexível o suficiente para atender às demandas de muitos ambientes baseados em transações com servidores não persistentes.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.gnupg.org/ftp/gcrypt/libassuan/libassuan-3.0.2.tar.bz2
Soma de verificação MD5 da transferência: c6f1bf4bd2aaa79cd1635dcc070ba51a
Tamanho da transferência: 580 KB
Espaço em disco estimado exigido: 6,5 MB (com testes; adicionar 3,4 MB para documentação PDF)
Tempo de construção estimado: 0,1 UPC (com testes e documentação HTML)
Instale libassuan executando os seguintes comandos:
./configure --prefix=/usr && make && make -C doc html && makeinfo --html --no-split -o doc/assuan_nochunks.html doc/assuan.texi && makeinfo --plaintext -o doc/assuan.txt doc/assuan.texi
Os comandos acima constroem a documentação nos formatos html e texto simples. Se você deseja construir formatos alternativos da documentação, [então] você precisa ter texlive-20240312 instalado e emitir os seguintes comandos:
make -C doc pdf ps
Para testar os resultados, emita: make check.
Agora, como o(a) usuário(a) root
:
make install && install -v -dm755 /usr/share/doc/libassuan-3.0.2/html && install -v -m644 doc/assuan.html/* \ /usr/share/doc/libassuan-3.0.2/html && install -v -m644 doc/assuan_nochunks.html \ /usr/share/doc/libassuan-3.0.2 && install -v -m644 doc/assuan.{txt,texi} \ /usr/share/doc/libassuan-3.0.2
Se você construiu formatos alternativos da documentação,
[então] instale-os executando os seguintes comandos como o(a)
usuário(a) root
:
install -v -m644 doc/assuan.{pdf,ps,dvi} \ /usr/share/doc/libassuan-3.0.2
O pacote libatasmart é uma biblioteca de informe de disco. Ela suporta somente um subconjunto da funcionalidade S.M.A.R.T. do ATA.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://0pointer.de/public/libatasmart-0.19.tar.xz
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
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
--disable-static
:
Essa chave impede a instalação das versões estáticas das
bibliotecas.
libatomic_ops fornece implementações para operações atômicas de atualização de memória em várias arquiteturas. Isso permite o uso direto delas em código razoavelmente portátil. Ao contrário de pacotes semelhantes anteriores, esse considera explicitamente a semântica de barreira de memória e permite a construção de código que envolve sobrecarga mínima ao longo de uma variedade de arquiteturas.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/ivmai/libatomic_ops/releases/download/v7.8.2/libatomic_ops-7.8.2.tar.gz
Soma de verificação MD5 da transferência: d07b3d8369d7f9efdca59f7501dd1117
Tamanho da transferência: 516 KB
Espaço em disco estimado exigido: 6,8 MB (com testes)
Tempo de construção estimado: 0,2 UPC (com testes)
Instale libatomic_ops executando os seguintes comandos:
./configure --prefix=/usr \ --enable-shared \ --disable-static \ --docdir=/usr/share/doc/libatomic_ops-7.8.2 && make
Para verificar os resultados, emita make check.
Agora, como o(a) usuário(a) root
:
make install
--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.
libblockdev é uma biblioteca C que suporta GObject Introspection para manipulação de dispositivos de bloco. Ela tem uma arquitetura baseada em plug-in onde cada tecnologia (como LVM, Btrfs, MD RAID, Swap,...) é implementada em um plug-in separado, possivelmente com várias implementações (por exemplo, usando CLI do LVM ou a nova API DBus do LVM).
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/storaged-project/libblockdev/releases/download/3.3.0/libblockdev-3.3.0.tar.gz
Soma de verificação MD5 da transferência: 06a80f510fcea4412afe9e0bd4ac2187
Tamanho da transferência: 1,1 MB
Espaço em disco estimado exigido: 15 MB
Tempo de construção estimado: 0,1 UPC
GLib-2.82.5 (GObject Introspection exigido para GNOME)
cryptsetup-2.7.5, keyutils-1.6.3, libatasmart-0.19, libbytesize-2.11, libnvme-1.11.1 e LVM2-2.03.30
btrfs-progs-6.13, GTK-Doc-1.34.0, JSON-GLib-1.10.6, mdadm-4.3, parted-3.6, smartmontools-7.4, volume_key, ndctl e targetcli (para testes)
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
--without-escrow
:
Essa chave permite construir libblockdev sem volume_key instalado.
--without-lvm
--without-lvm_dbus
--without-tools
: A
combinação dessas chaves permite construir libblockdev sem parted-3.6 instalado.
Remova-as se você tiver instalado parted-3.6 e desejar
construir os utilitários lvm-cache-stats ou
vfat-resize, ou
desejar que libblockdev
suporte volumes lógicos.
--without-btrfs --without-mdraid
--without-tools
: A combinação dessas chaves permite
construir libblockdev sem
libbytesize-2.11 instalado. A opção
--without-mdraid
quebrará
UDisks-2.10.1, de forma que não a use, a
menos que você realmente saiba o que está fazendo.
--without-crypto
: Essa chave
permite construir libblockdev sem cryptsetup-2.7.5
ou keyutils-1.6.3 instalado. Essa chave
quebrará UDisks-2.10.1, de forma que não a use, a
menos que você realmente saiba o que está fazendo.
--without-dm --without-lvm
--without-lvm_dbus --without-mpath
: A combinação
dessas chaves permite construir libblockdev sem LVM2-2.03.30 instalado. As
opções --without-dm
e
--without-mpath
não estão nas
instruções fornecidas pelo livro, porque LVM2-2.03.30 é exigido
para cryptsetup-2.7.5 e cryptsetup-2.7.5 é uma dependência
recomendada de libblockdev
de qualquer maneira.
--without-nvme
: Essa chave
permite construir libblockdev sem libnvme-1.11.1
instalado. Essa chave quebrará UDisks-2.10.1, de forma
que não a use, a menos que você realmente saiba o que está
fazendo.
O pacote libbytesize é uma biblioteca que facilita as operações comuns com tamanhos em bytes.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/storaged-project/libbytesize/releases/download/2.11/libbytesize-2.11.tar.gz
Soma de verificação MD5 da transferência: b9a24d3a7b576e67cab729195c26f6e5
Tamanho da transferência: 452 KB
Espaço em disco estimado exigido: 3,5 MB
Tempo de construção estimado: menos que 0,1 UPC (incluindo testes)
GTK-Doc-1.34.0, pocketlint (módulo Python para um teste) e polib (módulo Python para um teste)
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
O pacote libclc contém uma implementação dos requisitos da biblioteca da linguagem de programação C do OpenCL, conforme especificado pela Especificação OpenCL 1.1.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/llvm/llvm-project/releases/download/llvmorg-19.1.7/libclc-19.1.7.src.tar.xz
Soma de verificação MD5 da transferência: 84cfae232461adfd4e1990b9023cfe69
Tamanho da transferência: 128 KB
Espaço em disco estimado exigido: 380 MB
Tempo de construção estimado: 1,2 UPC (com paralelismo=8)
Instale libclc executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ -G Ninja .. && ninja
Para testar os resultados, emita: ninja test. Dois testes,
external-calls-clspv--.bc
e
external-calls-clspv64--.bc
,
são conhecidos por falharem devido à sintaxe inválida.
Agora, como o(a) usuário(a) root
:
ninja install
O pacote libcloudproviders contém uma biblioteca que fornece uma API DBus que permite que clientes de sincronização de armazenamento em nuvem exponham os serviços deles.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/libcloudproviders/0.3/libcloudproviders-0.3.6.tar.xz
Soma de verificação MD5 da transferência: f0f994bdc36fdfe9b31e3655b8071599
Tamanho da transferência: 24 KB
Espaço em disco estimado exigido: 1,4 MB
Tempo de construção estimado: menos que 0,1 UPC
GLib-2.82.5 (com GObject Introspection) e Vala-0.56.17
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
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
-D enable-gtk-doc
: Use essa chave
se você tiver GTK-Doc-1.34.0 instalado e desejar gerar
a documentação da API.
O pacote libdaemon é uma biblioteca C leve que facilita a escrita de processos de segundo plano UNIX.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://0pointer.de/lennart/projects/libdaemon/libdaemon-0.14.tar.gz
Soma de verificação MD5 da transferência: 509dc27107c21bcd9fbf2f95f5669563
Tamanho da transferência: 332 KB
Espaço em disco estimado exigido: 3 MB
Tempo de construção estimado: 0,1 UPC
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
--disable-static
:
Essa chave impede a instalação das versões estáticas das
bibliotecas.
O pacote libdisplay-info fornece um conjunto de funções de alto e baixo nível para acessar informações detalhadas de Extended Display Identification Data (EDID).
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://gitlab.freedesktop.org/emersion/libdisplay-info/-/releases/0.2.0/downloads/libdisplay-info-0.2.0.tar.xz
Soma de verificação MD5 da transferência: 160d4159a7805823cf0b3b4f86dfa8d4
Tamanho da transferência: 96 KB
Espaço em disco estimado exigido: 2,8 MB
Tempo de construção estimado: menos que 0,1 UPC
Instale libdisplay-info executando os seguintes comandos:
mkdir build && cd build && meson setup --prefix=/usr --buildtype=release .. && ninja
Para testar os resultados, execute ninja test.
Agora, como o(a) usuário(a) root
:
ninja install
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
O pacote libgcrypt contém uma biblioteca criptográfica de uso geral baseada no código usado no GnuPG. A biblioteca fornece uma interface de alto nível para blocos de construção criptográficos usando uma API extensível e flexível.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.gnupg.org/ftp/gcrypt/libgcrypt/libgcrypt-1.11.0.tar.bz2
Soma de verificação MD5 da transferência: 321c4975cfd6a496f0530b65a673f9a4
Tamanho da transferência: 4,0 MB
Espaço em disco estimado exigido: 146 MB (com testes)
Tempo de construção estimado: 0,6 UPC (com documentação; adicionar 0,4 UPC para testes)
Instale libgcrypt executando os seguintes comandos:
./configure --prefix=/usr && make && make -C doc html && makeinfo --html --no-split -o doc/gcrypt_nochunks.html doc/gcrypt.texi && makeinfo --plaintext -o doc/gcrypt.txt doc/gcrypt.texi
Para testar os resultados, emita: make check.
Agora, como o(a) usuário(a) root
:
make install && install -v -dm755 /usr/share/doc/libgcrypt-1.11.0 && install -v -m644 README doc/{README.apichanges,fips*,libgcrypt*} \ /usr/share/doc/libgcrypt-1.11.0 && install -v -dm755 /usr/share/doc/libgcrypt-1.11.0/html && install -v -m644 doc/gcrypt.html/* \ /usr/share/doc/libgcrypt-1.11.0/html && install -v -m644 doc/gcrypt_nochunks.html \ /usr/share/doc/libgcrypt-1.11.0 && install -v -m644 doc/gcrypt.{txt,texi} \ /usr/share/doc/libgcrypt-1.11.0
--with-capabilities
: Essa opção
habilita o suporte a "libcap2". Observe que isso quebra o
cryptsetup-2.7.5
O pacote libgpg-error contém uma biblioteca que define valores comuns de erro para todos os componentes do GnuPG.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.gnupg.org/ftp/gcrypt/libgpg-error/libgpg-error-1.51.tar.bz2
Soma de verificação MD5 da transferência: 74b73ea044685ce9fd6043a8cc885eac
Tamanho da transferência: 1,0 MB
Espaço em disco estimado exigido: 11 MB (com testes)
Tempo de construção estimado: 0,3 UPC (com testes)
Instale libgpg-error executando os seguintes comandos:
./configure --prefix=/usr && make
Para testar os resultados, emita: make check.
Agora, como o(a) usuário(a) root
:
make install && install -v -m644 -D README /usr/share/doc/libgpg-error-1.51/README
O pacote libgsf contém uma biblioteca usada para fornecer uma camada extensível de abstração de entrada/saída para formatos estruturados de arquivo.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/libgsf/1.14/libgsf-1.14.53.tar.xz
Soma de verificação MD5 da transferência: baf36a3e89293652f67cded4b1608cc5
Tamanho da transferência: 700 KB
Espaço em disco estimado exigido: 14 MB (com testes)
Tempo de construção estimado: 0,2 UPC (com testes)
gdk-pixbuf-2.42.12 (Para construir gsf-office-thumbnailer)
7zip-24.09 (para testes), GTK-Doc-1.34.0, Valgrind-3.24.0 (para testes) e unzip (para testes)
Instale libgsf executando os seguintes comandos:
./configure --prefix=/usr --disable-static && make
Para testar os resultados, emita: make check. Dois testes relacionados ao Valgrind-3.24.0 são conhecidos por falharem.
Agora, como o(a) usuário(a) root
:
make install
--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.
é um utilitário simples de arquivamento, um pouco semelhante ao tar(1) |
|
é usado internamente por aplicativos GNOME, como Nautilus, para gerar miniaturas de vários tipos de arquivos de aplicativos de escritório |
|
é usado para extrair macros do Visual Basic for Applications a partir de arquivos |
|
contém as funções da API libgsf |
O pacote libgudev contém ligações GObject para a libudev.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/libgudev/238/libgudev-238.tar.xz
Soma de verificação MD5 da transferência: 46da30a1c69101c3a13fa660d9ab7b73
Tamanho da transferência: 32 KB
Espaço em disco estimado exigido: 2,0 MB
Tempo de construção estimado: menos que 0,1 UPC
GLib-2.82.5 (GObject Introspection exigido para GNOME)
GTK-Doc-1.34.0 e umockdev-0.19.1 (para testagem)
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
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
-D gtk_doc=true
: Use essa opção
se o GTK-Doc estiver instalado e você desejar construir e
instalar a documentação da API.
O pacote libgusb contém os amarradores GObject para a libusb-1.0 que tornam fácil fazer controle assíncrono, transferências em massa e de interrupções com cancelamento adequado e integração em um loop principal.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/hughsie/libgusb/releases/download/0.4.9/libgusb-0.4.9.tar.xz
Soma de verificação MD5 da transferência: 354a3227334991ea4e924843c144bd82
Tamanho da transferência: 52 KB
Espaço em disco estimado exigido: 5,0 MB (com testes e documentos)
Tempo de construção estimado: 0,1 UPC (com testes e documentos)
JSON-GLib-1.10.6 e libusb-1.0.27
GLib-2.82.5 (com GObject Introspection),
hwdata-0.392 (para arquivo de dados
usb.ids
, que também é exigido
para os testes) e Vala-0.56.17
Gi-DocGen-2025.3 e umockdev-0.19.1 (para cobertura completa de teste)
Instale libgusb executando os seguintes comandos:
mkdir build && cd build && meson setup .. \ --prefix=/usr \ --buildtype=release \ -D docs=false && ninja
Se você tiver Gi-DocGen-2025.3 instalado e desejar construir a documentação da API para esse pacote, emita:
sed -E "/output|install_dir/s/('libgusb)'/\1-0.4.9'/" \ -i ../docs/meson.build && meson configure -D docs=true && ninja
Para testar os resultados, emita: ninja test.
Agora, como o(a) usuário(a) root
:
ninja install
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
-D docs=false
:
Permite construir esse pacote sem Gi-DocGen-2025.3
instalado. Se você tiver Gi-DocGen-2025.3 instalado e
desejar reconstruir e instalar a documentação da API, um
comando meson
configure reconfigurará essa opção.
O pacote libical contém uma implementação dos protocolos e formatos de dados "iCalendar".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/libical/libical/releases/download/v3.0.19/libical-3.0.19.tar.gz
Soma de verificação MD5 da transferência: f671e38e804bf467347807d8c8d057f7
Tamanho da transferência: 951 KB
Espaço em disco estimado exigido: 24 MB (com testes)
Tempo de construção estimado: 0,1 UPC (usando paralelismo = 4; com os testes)
GLib-2.82.5 (com GObject Introspection) e Vala-0.56.17 (ambos exigidos para GNOME)
Doxygen-1.13.2 (para a documentação da API), Graphviz-12.2.1 (para a documentação da API), GTK-Doc-1.34.0 (para a documentação da API), ICU-76.1, PyGObject-3.50.0 (para alguns testes) e Berkeley DB (obsoleto)
Instale libical executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ -D SHARED_ONLY=yes \ -D ICAL_BUILD_DOCS=false \ -D ICAL_BUILD_EXAMPLES=false \ -D GOBJECT_INTROSPECTION=true \ -D ICAL_GLIB_VAPI=true \ .. && make
Se tiver Doxygen-1.13.2, Graphviz-12.2.1 e
GTK-Doc-1.34.0 instalados e desejar
construir a documentação da API, você deveria remover a chave
-D
ICAL_BUILD_DOCS=false
e emitir:
make docs
Para testar os resultados, emita: make test.
Agora, como o(a) usuário(a) root
:
make install
Se você tiver construído a documentação da API, [então]
instale emitindo, como usuário(a) root
:
install -vdm755 /usr/share/doc/libical-3.0.19/html && cp -vr apidocs/html/* /usr/share/doc/libical-3.0.19/html
-D
CMAKE_BUILD_TYPE=Release
: Essa chave é usada para
aplicar um nível mais alto de otimização à compilação.
-D SHARED_ONLY=yes
:
Essa chave é usada para a finalidade de construir somente as
bibliotecas compartilhadas.
-D
ICAL_BUILD_DOCS=false
: Essa chave evita construir
a documentação do GTK.
Remova se você desejar construir a documentação.
-D
ICAL_BUILD_EXAMPLES=false
: Essa chave impede
construir exemplos. Remova se você quiser construí-los.
-D
GOBJECT_INTROSPECTION=true
: Essa chave é usada
para gerar ligações de meta dados do GObject.
-D
ICAL_GLIB_VAPI=true
: Essa chave é usada para a
finalidade de construir ligações para Vala-0.56.17.
-D USE_BUILTIN_TZDATA=yes
: Essa
chave é usada para a finalidade de construir usando teus
próprios dados de fuso horário.
contém as funções da API da libical |
|
contém as ligações C++ da libical |
|
contém as ligações "glib" da libical |
|
é uma biblioteca que te permite armazenar os dados do componente "iCal" no disco em uma variedade de maneiras |
|
contém as ligações C++ da libicalss |
|
é uma interface C de "vCard"/"vCalendar" |
libidn é um pacote projetado para manuseio de sequência internacionalizada de caracteres baseado nas especificações Stringprep, Punycode e IDNA definidas pelo grupo de trabalho "Internationalized Domain Names" (IDN) da Internet Engineering Task Force (IETF), usado para nomes de domínio internacionalizados. Isso é útil para converter dados originários da representação nativa do sistema em UTF-8; para transformar sequências de caracteres Unicode em sequências de caracteres ASCII; para permitir que os aplicativos usem certos rótulos de nome ASCII (começando com um prefixo especial) para representar rótulos de nome não ASCII; e para converter nomes inteiros de domínio para e de formulário "ASCII Compatible Encoding" (ACE).
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://ftp.gnu.org/gnu/libidn/libidn-1.42.tar.gz
Soma de verificação MD5 da transferência: fe061a95ae23979150a692d102dce4ad
Tamanho da transferência: 2,5 MB
Espaço em disco estimado exigido: 19 MB (com testes)
Tempo de construção estimado: 0,2 UPC (com testes)
Emacs-30.1, GTK-Doc-1.34.0, OpenJDK-23.0.2, Valgrind-3.24.0 e Mono
Instale libidn executando os seguintes comandos:
./configure --prefix=/usr --disable-static && make
Para testar os resultados, execute:
pushd tests && make check && popd
Agora, como o(a) usuário(a) root
:
make install && find doc -name "Makefile*" -delete && rm -rf -v doc/{gdoc,idn.1,stamp-vti,man,texi} && mkdir -v /usr/share/doc/libidn-1.42 && cp -r -v doc/* /usr/share/doc/libidn-1.42
--disable-static
:
Essa chave impede a instalação das versões estáticas das
bibliotecas.
--enable-gtk-doc
: Use esse
parâmetro se GTK-Doc estiver
instalado e você desejar reconstruir e instalar a
documentação da API.
--enable-java
: Use essa chave
para habilitar a construção da implementação Java da
libidn. Observe que o
OpenJDK-23.0.2 precisa estar instalado
para usar essa opção.
é uma interface de linha de comando para a biblioteca de nomes internacionalizados de domínio |
|
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 é um pacote projetado para manuseio de sequências internacionalizadas de caracteres baseado em padrões originários do grupo de trabalho "IDN" da Internet Engineering Task Force (IETF), projetado para nomes internacionalizados de domínio.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://ftp.gnu.org/gnu/libidn/libidn2-2.3.7.tar.gz
Soma de verificação MD5 da transferência: de2818c7dea718a4f264f463f595596b
Tamanho da transferência: 2,1 MB
Espaço em disco estimado exigido: 21 MB (adicionar 3 MB para testes)
Tempo de construção estimado: 0,1 UPC (adicionar 0,6 UPC para testes)
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
--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.
O pacote Libksba contém uma biblioteca usada para criar certificados "X.509", bem como tornar a Cryptographic Message Syntax (CMS) facilmente acessível por outros aplicativos. Ambas as especificações são blocos de construção de "S/MIME" e "TLS". A biblioteca não depende de outra biblioteca criptográfica, mas fornece ganchos para fácil integração com a Libgcrypt.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.gnupg.org/ftp/gcrypt/libksba/libksba-1.6.7.tar.bz2
Soma de verificação MD5 da transferência: 7e736de467b67c7ea88de746c31ea12f
Tamanho da transferência: 692 KB
Espaço em disco estimado exigido: 9,4 MB (com testes)
Tempo de construção estimado: 0,1 UPC (com testes)
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
Esse pacote fornece uma biblioteca para aprender classificadores lineares para aplicações de larga escala. Ele suporta "Support Vector Machines" (SVM) com perda L2 e L1, regressão logística, classificação multi classe e também "Máquinas Lineares de Programação" (SVMs de L1 regularizada). A complexidade computacional dele aumenta linearmente com o número de exemplos de treinamento, tornando-o um dos solucionadores SVM mais rápidos do mercado.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Depois de atualizar esse pacote a partir de liblinear-247 ou anterior, você precisa reinstalar o Nmap-7.95, para a finalidade de vincular à nova biblioteca.
Transferência (HTTP): https://github.com/cjlin1/liblinear/archive/v248/liblinear-248.tar.gz
Soma de verificação MD5 da transferência: 14116244e09667b393094ce757203d31
Tamanho da transferência: 560 KB
Espaço em disco estimado exigido: 1,6 MB
Tempo de construção estimado: menos que 0,1 UPC
Instale liblinear executando os seguintes comandos:
make lib
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
install -vm644 linear.h /usr/include && install -vm755 liblinear.so.6 /usr/lib && ln -sfv liblinear.so.6 /usr/lib/liblinear.so
O pacote libmbim contém uma biblioteca baseada em "GLib" para comunicação com modems "WWAN" e dispositivos que falam o protocolo "Mobile Interface Broadband Model" (MBIM).
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.freedesktop.org/software/libmbim/libmbim-1.26.4.tar.xz
Soma de verificação MD5 da transferência: 58dea20cad346f31d2873b68385a9973
Tamanho da transferência: 553 KB
Espaço em disco estimado exigido: 33 MB (com testes)
Tempo de construção estimado: 0,2 UPC (com testes)
GLib-2.82.5 (com GObject Introspection)
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
--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.
O pacote libnvme é uma biblioteca que fornece definições de tipo para estruturas de especificação NVMe, enumerações e campos de bits, funções auxiliares para construir, despachar e decodificar comandos e cargas úteis e utilitários para conectar, escanear e gerenciar dispositivos NVMe em um sistema Linux.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/linux-nvme/libnvme/archive/v1.11.1/libnvme-1.11.1.tar.gz
Soma de verificação MD5 da transferência: b6d2e2277c81d25a213636ac97a311af
Tamanho da transferência: 724 KB
Espaço em disco estimado exigido: 19 MB
Tempo de construção estimado: 0,1 UPC (incluindo testes)
Instale o libnvme executando os seguintes comandos:
mkdir build && cd build && meson setup --prefix=/usr --buildtype=release -D libdbus=auto .. && ninja
Para executar os testes, emita: ninja test.
Agora, como o(a) usuário(a) root
:
ninja install
Esse pacote destina-se a fornecer uma maneira simples para os aplicativos executarem ações baseadas em um sistema ou tamanho de papel especificado pelo(a) usuário(a).
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/rrthomas/libpaper/releases/download/v2.2.6/libpaper-2.2.6.tar.gz
Soma de verificação MD5 da transferência: 794552e5e5b9796c15bc222fefd9e1ff
Tamanho da transferência: 1,1 MB
Espaço em disco estimado exigido: 12 MB (com testes)
Tempo de construção estimado: 0,1 UPC (com testes)
Instale o libpaper executando os seguintes comandos:
./configure --prefix=/usr \ --sysconfdir=/etc \ --disable-static \ --docdir=/usr/share/doc/libpaper-2.2.6 && make
A suíte de teste desse pacote não funciona com uma configuração usando o local padrão de instalação.
Agora, como o(a) usuário(a) root
:
make install
--disable-static
:
Essa chave impede a instalação das versões estáticas das
bibliotecas.
O tamanho do papel é determinado automaticamente a partir
da localidade do sistema; veja-se LC_PAPER
em locale(7). Se
você quiser substituí-lo, crie um arquivo papersize
no diretório de configuração
do(a) usuário(a). Por exemplo:
mkdir -pv ~/.config && echo "a4" > ~/.config/papersize
Se você quiser substituir o tamanho do papel globalmente
(para todos(as) os(as) usuários(as)), configure a variável
de ambiente PAPERSIZE
. Por
exemplo:
echo "PAPERSIZE=a4" > /etc/profile.d/libpaper.sh
Você pode usar um tamanho diferente de papel, como
letter
.
O pacote libportal fornece uma biblioteca que contém APIs assíncronas estilo GIO para a maioria dos portais Flatpak.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/flatpak/libportal/releases/download/0.9.1/libportal-0.9.1.tar.xz
Soma de verificação MD5 da transferência: 0c63ee25d2e2986ce4df544fe8149046
Tamanho da transferência: 108 KB
Espaço em disco estimado exigido: 4,0 MB (com testes; adicionar 9 MB para documentos)
Tempo de construção estimado: menos que 0,1 UPC (adicionar 0,6 UPC para testes)
GLib-2.82.5 (com GObject Introspection)
Para tornar esse pacote realmente útil, instale xdg-desktop-portal-1.20.0, xdg-desktop-portal-gtk-1.15.2, xdg-desktop-portal-gnome-47.3 (se executar um ambiente de área de trabalho GNOME) e xdg-desktop-portal-lxqt-1.1.0 (se executar um ambiente de área de trabalho LXQt). Eles não são necessários se usar esse pacote somente para satisfazer uma dependência de construção.
Gi-DocGen-2025.3 (para documentação), dbusmock-0.34.3 e pytest-8.3.4 (para testagem), Qt-6.8.2 e Vala-0.56.17
Se uma versão anterior do "libportal" estiver instalada,
[então] mova os cabeçalhos para fora do caminho, de forma
que os pacotes posteriores não encontrem conflitos (como
o(a) usuário(a) root
):
if [ -e /usr/include/libportal ]; then rm -rf /usr/include/libportal.old && mv -vf /usr/include/libportal{,.old} fi
Instale libportal executando os seguintes comandos:
mkdir build && cd build && meson setup --prefix=/usr --buildtype=release -D docs=false .. && ninja
Se você tiver Gi-DocGen-2025.3 instalado e desejar construir a documentação da API para esse pacote, emita:
sed -i "/output/s/-1/-0.9.1/" ../doc/meson.build && meson configure -D docs=true && ninja
Para testar os resultados, emita: ninja test. Observe que
processos adicionais dbus-daemon
possivelmente precisem ser
eliminados depois que os testes forem executados.
Agora, como o(a) usuário(a) root
:
ninja install
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
-D docs=false
:
Permite construir esse pacote sem Gi-DocGen-2025.3
instalado. Se você tiver Gi-DocGen-2025.3 instalado e
desejar reconstruir e instalar a documentação da API, um
comando meson
configure reconfigurará essa opção.
fornece APIs assíncronas no estilo GIO para a maioria dos portais Flatpak |
|
fornece funções específicas do GTK+-3 para interagir com portais Flatpak |
|
fornece funções específicas do GTK-4 para interagir com portais Flatpak |
|
fornece funções específicas do Qt6 para interagir com portais Flatpak |
O pacote libptytty fornece uma biblioteca que permite o manuseio seguro e independente do Sistema Operacional de pty/tty e de utmp/wtmp/lastlog.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): http://dist.schmorp.de/libptytty/libptytty-2.0.tar.gz
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
Instale libptytty executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ -D PT_UTMP_FILE:STRING=/run/utmp \ .. && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
O pacote libqalculate contém uma biblioteca que fornece funções para uma calculadora multi propósito.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/Qalculate/libqalculate/releases/download/v5.5.1/libqalculate-5.5.1.tar.gz
Soma de verificação MD5 da transferência: 0e1edc7d0376dd89cafdc5d5519ab391
Tamanho da transferência: 2,6 MB
Espaço em disco estimado exigido: 144 MB (com testes)
Tempo de construção estimado: 0,6 UPC (Com testes; ambos usando paralelismo=8)
cURL-8.12.1, ICU-76.1 e libxml2-2.13.6
Instale libqalculate executando os seguintes comandos:
./configure --prefix=/usr \ --disable-static \ --docdir=/usr/share/doc/libqalculate-5.5.1 && make
Para testar os resultados, emita: make check.
Agora, como o(a) usuário(a) root
:
make install
O arquivo de arquivamento da libtool oriundo desse pacote
está se referindo às bibliotecas provenientes do ICU-76.1. Tal
referência possivelmente cause pacotes dependentes desse
pacote serem vinculados desnecessariamente às bibliotecas do
ICU e aumentar a carga de reconstrução dos pacotes se o ICU
for atualizado para uma nova versão principal. Como nós
explicamos em Arquivos
de arquivamento do Libtool (.la), esses arquivos de
arquivamento da libtool são desnecessários de qualquer
maneira. Portanto, como o(a) usuário(a) root
, remova o arquivo de arquivamento da
libtool agora:
rm -v /usr/lib/libqalculate.la
--disable-static
:
Essa chave impede a instalação das versões estáticas das
bibliotecas.
O pacote libqmi contém uma biblioteca baseada em GLib para comunicação com modems WWAN e dispositivos que falam o protocolo Qualcomm MSM Interface (QMI).
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.freedesktop.org/software/libqmi/libqmi-1.30.8.tar.xz
Soma de verificação MD5 da transferência: 5ec8838914f80e1dfa4d2fa8cc2f186d
Tamanho da transferência: 1,2 MB
Espaço em disco estimado exigido: 151 MB (com testes)
Tempo de construção estimado: 0,3 UPC (Usando paralelismo=4; com testes)
GLib-2.82.5 (GObject Introspection recomendado) e libgudev-238
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
--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.
é um utilitário usado para controlar dispositivos QMI |
|
é um utilitário usado para realizar atualizações de firmware em dispositivos QMI |
|
é um utilitário usado para gerenciamento simples de rede de comunicação de dispositivos QMI |
|
contém funções de API para comunicação com modems WWAN e dispositivos que falam o protocolo Qualcomm MSM Interface (QMI) |
O pacote libseccomp fornece uma interface fácil de usar e independente de plataforma para o mecanismo de filtragem "syscall" do núcleo Linux.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/seccomp/libseccomp/releases/download/v2.6.0/libseccomp-2.6.0.tar.gz
Soma de verificação MD5 da transferência: 2d42bcde31fd6e994fcf251a1f71d487
Tamanho da transferência: 672 KB
Espaço em disco estimado exigido: 7,6 MB (adicional 6,3 MB para testes)
Tempo de construção estimado: menos que 0,1 UPC (adicional 1,7 UPC para testes)
Which-2.23 (necessário para testes), Valgrind-3.24.0, cython-3.0.12 (para ligações python) e LCOV
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
--disable-static
:
Essa chave impede a instalação das versões estáticas das
bibliotecas.
--enable-python
: essa chave é
necessária para construir ligações python se cython-3.0.12
estiver instalado. A opção --disable-static
não deve ser fornecida se
essa opção for usada.
O pacote libsigc++ implementa um sistema de retorno de chamada seguro para C++ padrão.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/libsigc++/2.12/libsigc++-2.12.1.tar.xz
Soma de verificação MD5 da transferência: 891f1b2dbaebd8007eda8c639bbe1149
Tamanho da transferência: 4,8 MB
Espaço em disco estimado exigido: 27 MB (com testes)
Tempo de construção estimado: 0,2 UPC (com testes)
DocBook-utils-0.6.14, docbook-xml-5.0, Doxygen-1.13.2, fop-2.10 e mm-common
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
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
-D build-documentation=true
: Use
essa chave se Doxygen-1.13.2 estiver instalado e você
desejar construir e instalar a documentação da API.
O pacote libsigc++ implementa um sistema de retorno de chamada seguro para C++ padrão. Essa versão é parte de uma nova API para suporte ao gtkmm-4.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/libsigc++/3.6/libsigc++-3.6.0.tar.xz
Soma de verificação MD5 da transferência: b7205d5465ac15fbc0c781d39b4011be
Tamanho da transferência: 972 KB
Espaço em disco estimado exigido: 12 MB (com testes)
Tempo de construção estimado: 0,4 UPC (com testes)
DocBook-utils-0.6.14, docbook-xml-5.0, Doxygen-1.13.2, fop-2.10 e mm-common
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
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
-D build-documentation=true
: Use
essa chave se Doxygen-1.13.2 estiver instalado e você
desejar construir e instalar a documentação da API.
"libsigsegv" é uma biblioteca para lidar com falhas de página no modo de usuário(a). Uma falha de página ocorre quando um aplicativo tenta acessar uma região da memória que não está disponível atualmente. Capturar e manusear uma falha de página é uma técnica útil para implementar memória virtual paginável, acesso mapeado em memória a bases de dados persistentes, coletores geracionais de lixo, manuseadores de estouro de pilha e memória compartilhada distribuída.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://ftp.gnu.org/gnu/libsigsegv/libsigsegv-2.14.tar.gz
Soma de verificação MD5 da transferência: 63a2b35f11b2fbccc3d82f9e6c6afd58
Tamanho da transferência: 456 KB
Espaço em disco estimado exigido: 3,6 MB (com testes)
Tempo de construção estimado: menos que 0,1 UPC (com testes)
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
--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.
O pacote Libssh2 é uma biblioteca C do lado do cliente que implementa o protocolo "SSH2".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.libssh2.org/download/libssh2-1.11.1.tar.gz
Soma de verificação MD5 da transferência: 38857d10b5c5deb198d6989dacace2e6
Tamanho da transferência: 1,0 MB
Espaço em disco estimado exigido: 15 MB (com testes)
Tempo de construção estimado: 0,2 UPC (com testes)
CMake-3.31.5 (pode ser usado em vez do conjunto de comandos sequenciais configure), libgcrypt-1.11.0 (pode ser usado em vez do OpenSSL), OpenSSH-9.9p2 (para alguns testes) e Docker (para alguns testes)
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
--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.
Essa é uma biblioteca que fornece acesso multiplataforma a estatísticas relativas ao sistema no qual é executada. Ela está escrita em C e apresenta uma seleção de interfaces úteis que podem ser usadas para acessar estatísticas chave do sistema. A lista atual de estatísticas inclui uso de CPU, utilização de memória, uso de disco, contagem de processos, tráfego de rede de comunicação, Entrada/Saída de disco e mais.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.mirrorservice.org/sites/ftp.i-scream.org/pub/i-scream/libstatgrab/libstatgrab-0.92.1.tar.gz
Soma de verificação MD5 da transferência: af685494e985229e0ac46365bc0cd50e
Tamanho da transferência: 800 KB
Espaço em disco estimado exigido: 7,6 MB (com testes)
Tempo de construção estimado: 0,1 UPC (adicionar 1,5 UPC para testes)
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
--disable-static
:
Essa chave impede a instalação das versões estáticas das
bibliotecas.
é uma ferramenta baseada em "curses" para visualizar estatísticas do sistema |
|
é uma interface estilo "sysctl" para estatísticas do sistema |
|
gera configuração MRTG |
|
gera uma página de índice XHTML a partir de arquivos de configuração MRTG ou da entrada gerada padrão |
|
contém as funções da API da libstatgrab |
libtasn1 é uma biblioteca C altamente portável que codifica e decodifica dados DER/BER seguindo um esquema ASN.1.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://ftp.gnu.org/gnu/libtasn1/libtasn1-4.20.0.tar.gz
Soma de verificação MD5 da transferência: 930f71d788cf37505a0327c1b84741be
Tamanho da transferência: 1,7 MB
Espaço em disco estimado exigido: 16 MB (com testes)
Tempo de construção estimado: 0,3 UPC (com testes)
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
--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.
libunistring é uma biblioteca que fornece funções para manipular sequências de caracteres Unicode e para manipular sequências de caracteres C de acordo com o padrão Unicode.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://ftp.gnu.org/gnu/libunistring/libunistring-1.3.tar.xz
Soma de verificação MD5 da transferência: 57dfd9e4eba93913a564aa14eab8052e
Tamanho da transferência: 2,6 MB
Espaço em disco estimado exigido: 58 MB (adicionar 46 MB para os testes)
Tempo de construção estimado: 0,6 UPC (adicionar 0,3 UPC para testes; ambos usando paralelismo=4)
texlive-20240312 (ou install-tl-unx) (para reconstruir a documentação)
Instale libunistring executando os seguintes comandos:
./configure --prefix=/usr \ --disable-static \ --docdir=/usr/share/doc/libunistring-1.3 && make
Para testar os resultados, emita: make check.
Agora, como o(a) usuário(a) root
:
make install
--disable-static
:
Essa chave impede a instalação das versões estáticas das
bibliotecas.
O pacote libunwind contém uma interface de programação C portável e eficiente (API) para determinar a cadeia de chamadas de um aplicativo. A API fornece adicionalmente os meios para manipular o estado preservado (salvo pelo chamado) de cada quadro de chamada e para retomar a execução em qualquer ponto da cadeia de chamadas ("goto" não local). A API suporta operação local (mesmo processo) e remota (entre processos).
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/libunwind/libunwind/releases/download/v1.8.1/libunwind-1.8.1.tar.gz
Soma de verificação MD5 da transferência: 10c96118ff30b88c9eeb6eac8e75599d
Tamanho da transferência: 940 KB
Espaço em disco estimado exigido: 21 MB (com testes)
Tempo de construção estimado: 0,2 UPC (com testes)
texlive-20240312 (para "latex2man")
Instale libunwind executando os seguintes comandos:
./configure --prefix=/usr --disable-static && make
Para testar os resultados, emita: make check.
Agora, como o(a) usuário(a) root
:
make install
--disable-static
:
Essa chave impede a instalação das versões estáticas das
bibliotecas.
O pacote userspace-rcu fornece um conjunto de bibliotecas RCU (read-copy-update) do espaço de usuário(a). Essas bibliotecas de sincronização de dados fornecem acesso de leitura que escala linearmente com o número de núcleos. Ela faz isso permitindo que várias cópias de uma dada estrutura de dados vivam ao mesmo tempo e monitorando os acessos à estrutura de dados para detectar períodos de carência depois dos quais a recuperação de memória é possível.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://lttng.org/files/urcu/userspace-rcu-0.15.1.tar.bz2
Soma de verificação MD5 da transferência: 5a6a892f0eea86728b4eb6dea07ed190
Tamanho da transferência: 668 KB
Espaço em disco estimado exigido: 26 MB (com testes)
Tempo de construção estimado: 0,2 UPC (com testes)
Instale liburcu executando os seguintes comandos:
./configure --prefix=/usr \ --disable-static \ --docdir=/usr/share/doc/liburcu-0.15.1 && make
Para testar os resultados, emita: make check.
Agora, como o(a) usuário(a) root
:
make install
O pacote libusb contém uma biblioteca usada por alguns aplicativos para acesso a dispositivos USB.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/libusb/libusb/releases/download/v1.0.27/libusb-1.0.27.tar.bz2
Soma de verificação MD5 da transferência: 1fb61afe370e94f902a67e03eb39c51f
Tamanho da transferência: 632 KB
Espaço em disco estimado exigido: 5,7 MB
Tempo de construção estimado: menos que 0,1 UPC
Para acessar dispositivos brutos USB (aqueles não tratados como um disco pelo controlador de armazenamento em massa), o suporte apropriado precisa estar disponível no núcleo. Verifique a configuração do seu núcleo:
Device Drivers ---> [*] USB support ---> [USB_SUPPORT] <*/M> Support for Host-side USB [USB] [*] PCI based USB host interface [USB_PCI] # These are most common USB controller drivers for PC-like systems. # For modern systems often [USB_XHCI_HCD] is the only one needed # even if the system has USB 2.0 ports: < /*/M> xHCI HCD (USB 3.0) support [USB_XHCI_HCD] < /*/M> EHCI HCD (USB 2.0) support [USB_EHCI_HCD] < /*/M> OHCI HCD (USB 1.1) support [USB_OHCI_HCD]
Para mais detalhes a respeito do como configurar dispositivos USB, veja-se “Consequências do Dispositivo USB”.
Instale libusb executando os seguintes comandos:
./configure --prefix=/usr --disable-static && make
Se o Doxygen estiver instalado e você desejar construir a documentação da API, [então] emita os seguintes comandos:
pushd doc && doxygen -u doxygen.cfg && make docs && popd
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
Se você construiu a documentação da API, [então] instale-a
usando os seguintes comandos como o(a) usuário(a)
root
:
install -v -d -m755 /usr/share/doc/libusb-1.0.27/apidocs && install -v -m644 doc/api-1.0/* \ /usr/share/doc/libusb-1.0.27/apidocs
O pacote libuv é uma biblioteca de suporte multiplataforma com foco em Entrada/Saída assíncrona.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://dist.libuv.org/dist/v1.50.0/libuv-v1.50.0.tar.gz
Soma de verificação MD5 da transferência: d346e03fe1ca89d877f9d1431ef97cec
Tamanho da transferência: 1,3 MB
Espaço em disco estimado exigido: 31 MB (com testes e página de manual)
Tempo de construção estimado: 0,5 UPC (com testes e página de manual)
Instale libuv executando os seguintes comandos:
O comando sh autogen.sh abaixo falha se a variável de ambiente "ACLOCAL" estiver configurada conforme especificado em Xorg-7. Se for usado, [então] "ACLOCAL" precisa ser desconfigurada para esse pacote e, em seguida, reconfigurada para outros pacotes.
sh autogen.sh && ./configure --prefix=/usr --disable-static && make
Se você instalou o módulo opcional sphinx-8.2.1 do Python, crie a página de manual:
make man -C docs
Se você deseja executar os testes, [então] execute: make check como um(a) usuário(a) não root.
Agora, como o(a) usuário(a) root
:
make install
Se você construiu a página de manual, instale-a como o(a)
usuário(a) root
:
install -Dm644 docs/build/man/libuv.1 /usr/share/man/man1
libxkbcommon é um compilador de mapa de teclas e biblioteca de suporte que processa um subconjunto reduzido de mapas de teclas conforme definido pela especificação XKB.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/lfs-book/libxkbcommon/archive/v1.8.0/libxkbcommon-1.8.0.tar.gz
Soma de verificação MD5 da transferência: e63cb7f5a395a1575246717882b96664
Tamanho da transferência: 973 KB
Espaço em disco estimado exigido: 35 MB (com testes)
Tempo de construção estimado: 0,3 UPC (com testes)
No GitHub, nós bifurcamos o repositório do fluxo de
desenvolvimento para nosso próprio espaçode nomes
lfs-book
e recriamos uma
etiqueta para o lançamento. Isso é feito para garantir que
o nome do arquivo tarball baixado esteja correto e
consistente (ou seja, ele não deveria mudar ao se usar o
navegador em vez de uma ferramenta como wget). Nossa etiqueta e a
etiqueta do lançamento do fluxo de desenvolvimento estão no
mesmo commit, de forma que nós não introduzimos nenhuma
mudança no conteúdo do tarball, exceto o nome do diretório
de nível superior dele (que o Git não rastreia).
xkeyboard-config-2.44 (tempo de execução)
libxcb-1.17.0, Wayland-1.23.0 e wayland-protocols-1.40
Doxygen-1.13.2 (para gerar a documentação) e Xvfb (oriundo do Xorg-Server-21.1.16 ou Xwayland-24.1.6)
Instale libxkbcommon executando os seguintes comandos:
mkdir build && cd build && meson setup .. \ --prefix=/usr \ --buildtype=release \ -D enable-docs=false && ninja
Para testar os resultados, garanta que Xvfb e xkeyboard-config-2.44 estão disponíveis, então emita: ninja test.
Agora, como o(a) usuário(a) root
:
ninja install
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
-D enable-docs=true
:
Essa chave habilita a geração de documentação. O Doxygen-1.13.2 é exigido.
mv -v /usr/share/doc/libxkbcommon{,-1.8.0}: se você construiu a documentação, use esse comando para instalá-la em um diretório versionado.
O pacote libxml2 contém bibliotecas e utilitários usados para analisar arquivos "XML".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/libxml2/2.13/libxml2-2.13.6.tar.xz
Soma de verificação MD5 da transferência: 85dffa2387ff756bdf8b3b247594914a
Tamanho da transferência: 2,3 MB
Espaço em disco estimado exigido: 113 MB (com testes)
Tempo de construção estimado: 0,4 UPC (Usando paralelismo=4; com testes)
Suíte de Teste Opcional: https://www.w3.org/XML/Test/xmlts20130923.tar.gz - Isso habilita make check para se fazer uma testagem completa.
Valgrind-3.24.0 (possivelmente seja usado nos testes)
Instale libxml2 executando os seguintes comandos:
./configure --prefix=/usr \ --sysconfdir=/etc \ --disable-static \ --with-history \ --with-icu \ PYTHON=/usr/bin/python3 \ --docdir=/usr/share/doc/libxml2-2.13.6 && make
Se você baixou a suíte de teste, [então] emita o seguinte comando:
tar xf ../xmlts20130923.tar.gz
Para testar os resultados, emita: make check > check.log.
Esse comando imprimirá várias linhas de mensagens de erro
como “Failed to parse
xstc/...
” porque alguns arquivos de
teste estão ausentes e essas mensagens podem ser seguramente
ignoradas. Um sumário dos resultados pode ser obtido com
grep -E '^Total|expected|Ran'
check.log. Se Valgrind-3.24.0
estiver instalado e você desejar verificar vazamentos de
memória, substitua check por check-valgrind.
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
Finalmente, evite que alguns pacotes desnecessariamente se
vinculem ao ICU usando os seguintes comandos como o(a)
usuário(a) root
:
rm -vf /usr/lib/libxml2.la && sed '/libs=/s/xml2.*/xml2"/' -i /usr/bin/xml2-config
--disable-static
:
Essa chave impede a instalação das versões estáticas das
bibliotecas.
--with-history
: Essa
chave habilita o suporte Readline ao executar xmlcatalog ou xmllint no modo shell.
--with-icu
: Essa
chave habilita suporte para ICU, o qual fornece suporte adicional
Unicode. Isso é necessário para alguns pacotes no BLFS, como
para QtWebEngine.
PYTHON=/usr/bin/python3
:
Permite construir o módulo "libxml2" com "Python3" em vez de
"Python2".
determina os sinalizadores de compilação e
vinculador que deveriam ser usados para compilar e
vincular aplicativos que usam a |
|
é usado para monitorar e manipular catálogos "XML" e "SGML" |
|
analisa arquivos "XML" e gera informes (baseados nas opções) para detectar erros na codificação "XML" |
|
fornece funções para aplicativos para analisar arquivos que usam o formato "XML" |
O pacote libxmlb contém uma biblioteca e uma ferramenta que ajuda a criar e consultar blobs XML binários.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/hughsie/libxmlb/releases/download/0.3.21/libxmlb-0.3.21.tar.xz
Soma de verificação MD5 da transferência: 6f83ad887ffacaa1f393650845eb8a1b
Tamanho da transferência: 104 KB
Espaço em disco estimado exigido: 4,0 MB (com testes)
Tempo de construção estimado: 0,1 UPC (Com testes)
GLib-2.82.5 (GObject Introspection recomendado)
Instale libxmlb executando os seguintes comandos:
mkdir build && cd build && meson setup --prefix=/usr --buildtype=release -D gtkdoc=false .. && ninja
Para testar os resultados, emita: ninja test.
Agora, como o(a) usuário(a) root
:
ninja install
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
-D gtkdoc=false
: Essa
chave desabilita construir a documentação da API. Remova-a se
você tiver GTK-Doc-1.34.0 instalado e desejar
construir a documentação da API.
-D introspection=false
: Use essa
chave se você não tiver construído GLib-2.82.5 com GObject
Introspection.
-D stemmer=true
: Use essa chave
se você tiver libstemmer
instalado e desejar construir suporte para lematizador.
O pacote libxslt contém
bibliotecas "XSLT" usadas para estender as bibliotecas
libxml2
para suportar arquivos
"XSLT".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/libxslt/1.1/libxslt-1.1.42.tar.xz
Soma de verificação MD5 da transferência: 56bc5d89aa39d62002961c150fec08a0
Tamanho da transferência: 1,6 MB
Espaço em disco estimado exigido: 34 MB (com testes)
Tempo de construção estimado: 0,1 UPC (com testes)
docbook-xml-4.5 e docbook-xsl-nons-1.79.2
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.
Instale libxslt executando os seguintes comandos:
./configure --prefix=/usr \ --disable-static \ --docdir=/usr/share/doc/libxslt-1.1.42 && make
Para testar os resultados, emita: make check.
Agora, como o(a) usuário(a) root
:
make install
--disable-static
:
Essa chave impede a instalação das versões estáticas das
bibliotecas.
é usado para descobrir o pré-processador, ligando e compilando sinalizadores necessários para usar as bibliotecas libxslt em aplicativos de terceiros |
|
é usado para aplicar folhas de estilo "XSLT" a documentos "XML" |
|
é usado para fornecer extensões para funções "XSLT" |
|
fornece extensões para as bibliotecas |
O pacote libwacom contém uma biblioteca usada para identificar tablets gráficos oriundos da Wacom ou de vários outros fornecedores e os recursos deles específicos do modelo.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/linuxwacom/libwacom/releases/download/libwacom-2.14.0/libwacom-2.14.0.tar.xz
Soma de verificação MD5 da transferência: f3a3ba5144bb83c4ac71dae92e5512a9
Tamanho da transferência: 152 KB
Espaço em disco estimado exigido: 5,0 MB (com testes)
Tempo de construção estimado: menos que 0,1 UPC (com testes)
libevdev-1.13.3 e libgudev-238
Doxygen-1.13.2, git-2.48.1, librsvg-2.59.2, Valgrind-3.24.0 (opcional para alguns testes), pytest-8.3.4 com python-libevdev e pyudev
Instale libwacom executando os seguintes comandos:
mkdir build && cd build && meson setup .. \ --prefix=/usr \ --buildtype=release \ -D tests=disabled && ninja
Para testar os resultados, emita: ninja test. Para executar testes adicionais, instale pytest-8.3.4, python-libevdev e pyudev e, então, remova a opção "-D tests=disabled" da linha meson acima.
Se atualizar a partir de uma versão anterior da libwacom, remova a instalação antiga da base de dados de dispositivos para evitar uma possível correspondência duplicada de dispositivos caso alguns arquivos antigos da base de dados não forem sobrescritos:
rm -rf /usr/share/libwacom
Agora, como o(a) usuário(a) root
:
ninja install
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
-D tests=disabled
:
Esse parâmetro desabilita alguns dos testes mais avançados
porque eles exigem pytest-8.3.4 e outros dois módulos Python
além do escopo do BLFS para funcionar adequadamente.
lista todos os dispositivos tablet que sejam suportados pela "libwacom" |
|
lista dispositivos tablet que estejam conectados ao sistema |
|
lista os IDs da caneta do tablet |
|
atualiza o sistema de acordo com o conjunto atual de arquivos de dados do tablet |
|
contém funções usadas para acessar informações da "Wacom" |
O pacote yaml contém uma biblioteca C para analisar e emitir "YAML" ("YAML Ain't Markup Language").
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/yaml/libyaml/releases/download/0.2.5/yaml-0.2.5.tar.gz
Soma de verificação MD5 da transferência: bb15429d8fb787e7d3f1c83ae129a999
Tamanho da transferência: 596 KB
Espaço em disco estimado exigido: 6,4 MB (com testes)
Tempo de construção estimado: menos que 0,1 UPC (com testes)
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
--disable-static
:
Essa chave impede a instalação das versões estáticas das
bibliotecas.
log4cplus é uma API de registro C++20 fácil de usar, que fornece controle de camada segura, flexível e arbitrariamente granular sobre gerenciamento e configuração de registro. Ela é modelada depois da API log4j do Java.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/log4cplus/log4cplus/releases/download/REL_2_1_2/log4cplus-2.1.2.tar.xz
Soma de verificação MD5 da transferência: 9b07ce88a3130673848a26e7e983aa5b
Tamanho da transferência: 931 KB
Espaço em disco estimado exigido: 73 MB
Tempo de construção estimado: 0,3 UPC (Usando paralelismo=4; adicionar 0,5 UPC para testes)
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
LZO é uma biblioteca de compressão de dados adequada para descompressão e compressão de dados em tempo real. Isso significa que ela favorece a velocidade sobre a taxa de compressão.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.oberhumer.com/opensource/lzo/download/lzo-2.10.tar.gz
Soma de verificação MD5 da transferência: 39d3f3f9c55c87b1e5d6888e1420f4b5
Tamanho da transferência: 588 KB
Espaço em disco estimado exigido: 12 MB
Tempo de construção estimado: 0,3 UPC (com testes)
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
--disable-static
:
Essa chave impede a instalação das versões estáticas das
bibliotecas.
O pacote mtdev contém a biblioteca de tradução do protocolo multitoque que é usada para transformar todas as variantes de eventos "MT" (multitoque) do núcleo para o protocolo fendido tipo B.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://bitmath.org/code/mtdev/mtdev-1.1.7.tar.bz2
Soma de verificação MD5 da transferência: 483ed7fdf7c1e7b7375c05a62848cce7
Tamanho da transferência: 296 KB
Espaço em disco estimado exigido: 2,5 MB
Tempo de construção estimado: menos que 0,1 UPC
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
--disable-static
:
Essa chave impede a instalação das versões estáticas das
bibliotecas.
Node.js é um tempo de execução JavaScript construído sobre o mecanismo "JavaScript V8" do Chrome.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://nodejs.org/dist/v22.14.0/node-v22.14.0.tar.xz
Soma de verificação MD5 da transferência: 46fbebddd5da0ded77ec54ebb5134b3e
Tamanho da transferência: 46 MB
Espaço em disco estimado exigido: 1,3 GB (adicionar 45 MB para os testes)
Tempo de construção estimado: 17 UPC (adicionar 2,8 UPC para testes: ambos usando paralelismo=8 e 8 CPUs online; partes dos testes usarão todas as CPUs online)
Brotli-1.1.0, c-ares-1.34.4, ICU-76.1, libuv-1.50.0 e nghttp2-1.64.0
http-parser e npm (uma cópia interna do npm será instalada se não presente)
Uma conexão com a Internet é necessária para alguns testes desse pacote. A loja de certificados do sistema possivelmente precise ser configurada com make-ca-1.15 antes de se testar esse pacote
Construa Node.js executando os seguintes comandos:
./configure --prefix=/usr \ --shared-brotli \ --shared-cares \ --shared-libuv \ --shared-openssl \ --shared-nghttp2 \ --shared-zlib \ --with-intl=system-icu && make
Para testar os resultados, emita: make test-only. Dos 4.200 testes, 5 na suíte 'paralela' de teste são conhecidos por falharem.
Agora, como o(a) usuário(a) root
:
make install && ln -sf node /usr/share/doc/node-22.14.0
--with-intl=system-icu
: use a
versão do sistema do icu.
Outros valores são full-icu
(para
construir uma biblioteca completa local icu) e small-icu
(para construir uma biblioteca
mínima local icu).
--shared-{brotli,cares,libuv,nghttp2,openssl,zlib}
:
use as bibliotecas instadas do sistema em vez das cópias
locais.
--without-npm
: não construa
npm (use se você gostaria de
construir um npm separado
posteriormente).
--shared-http-parser
: use a
biblioteca instalada do sistema em vez de uma cópia local.
é uma ferramenta experimental para ajudar com o gerenciamento de versões de gerenciadores de pacotes. |
|
é o tempo de execução do JavaScript do lado do servidor |
|
é o gerenciador de pacotes Node.js |
|
|
é a raiz de instalação para executáveis e bibliotecas "Node.js" |
O pacote NPth contém uma biblioteca muito portável baseada em POSIX/ANSI-C para plataformas Unix que fornece agendamento não preemptivo baseado em prioridade para múltiplas camadas de execução ("multithreading") dentro de aplicativos orientados a eventos. Todas as camadas executam no mesmo espaço de endereço do aplicativo servidor, porém cada camada tem o próprio contador individual dela de aplicativo, pilha de tempo de execução, máscara de sinal e variável "errno".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.gnupg.org/ftp/gcrypt/npth/npth-1.8.tar.bz2
Soma de verificação MD5 da transferência: cb4fc0402be5ba67544e499cb2c1a74d
Tamanho da transferência: 312 KB
Espaço em disco estimado exigido: 2,9 MB (com verificações)
Tempo de construção estimado: menos que 0,1 UPC (com as verificações)
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
é 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" |
|
contém as funções de API usadas pela biblioteca "New Portable Threads" |
O Netscape Portable Runtime (NSPR) fornece uma API neutra de plataforma para funções semelhantes às de nível de sistema e "libc".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://archive.mozilla.org/pub/nspr/releases/v4.36/src/nspr-4.36.tar.gz
Soma de verificação MD5 da transferência: 87a41a0773ab2a5f5c8f01aec16df24c
Tamanho da transferência: 1,0 MB
Espaço em disco estimado exigido: 9,9 MB
Tempo de construção estimado: menos que 0,1 UPC
Instale NSPR executando os seguintes comandos:
cd nspr && sed -i '/^RELEASE/s|^|#|' pr/src/misc/Makefile.in && sed -i 's|$(LIBRARY) ||' config/rules.mk && ./configure --prefix=/usr \ --with-mozilla \ --with-pthreads \ $([ $(uname -m) = x86_64 ] && echo --enable-64bit) && make
A suíte de teste está projetada para testar mudanças no nss ou nspr e não é particularmente útil para verificar uma versão lançada (por exemplo, ela precisa ser executada sobre uma construção não otimizada com ambos os diretórios nss e nspr existentes lado a lado). Para maiores detalhes, vejam-se as Notas de Editor(a) para nss em https://wiki.linuxfromscratch.org/blfs/wiki/nss
Agora, como o(a) usuário(a) root
:
make install
sed -ri '/^RELEASE/s/^/#/' pr/src/misc/Makefile.in: Esse "sed" desabilita a instalação de dois scripts desnecessários.
sed -i 's#$(LIBRARY) ##' config/rules.mk: Esse "sed" desabilita a instalação das bibliotecas estáticas.
--with-mozilla
: Esse
parâmetro adiciona suporte Mozilla às bibliotecas (exigido se
você quiser construir quaisquer outros produtos Mozilla e
vinculá-los a essas bibliotecas).
--with-pthreads
: Esse
parâmetro força o uso da biblioteca "pthread" do sistema.
--enable-64bit
: O
parâmetro --enable-64bit é exigido em um sistema x86_64 para
evitar falha do configure com uma alegação
de que esse é um sistema sem suporte a pthread. O teste [
$(uname -m) = x86_64 ] assegura que ele não tenha efeito em
um sistema de 32 de bits.
fornece opções de compilador e vinculador para outros pacotes que usem a NSPR |
|
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 |
|
contém funções que implementam muitos dos recursos oferecidos pela "libnspr4" |
|
contém funções que fornecem estruturas de dados |
O pacote PCRE2 contém uma nova geração das bibliotecas Perl Compatible Regular Expression. Elas são úteis para implementar correspondência de padrão de expressão regular usando a mesma sintaxe e semântica da Perl.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/PCRE2Project/pcre2/releases/download/pcre2-10.45/pcre2-10.45.tar.bz2
Soma de verificação MD5 da transferência: f71abbe1b5adf25cd9af5d26ef223b66
Tamanho da transferência: 2,0 MB
Espaço em disco estimado exigido: 20 MB (com testes)
Tempo de construção estimado: 0,5UPC (com testes)
Instale PCRE2 executando os seguintes comandos:
./configure --prefix=/usr \ --docdir=/usr/share/doc/pcre2-10.45 \ --enable-unicode \ --enable-jit \ --enable-pcre2-16 \ --enable-pcre2-32 \ --enable-pcre2grep-libz \ --enable-pcre2grep-libbz2 \ --enable-pcre2test-libreadline \ --disable-static && make
Para testar os resultados, emita: make check.
Agora, como o(a) usuário(a) root
:
make install
--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.
O pacote popt contém as bibliotecas popt que são usadas por alguns aplicativos para analisar opções de linha de comando.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://ftp.osuosl.org/pub/rpm/popt/releases/popt-1.x/popt-1.19.tar.gz
Soma de verificação MD5 da transferência: eaa2135fddb6eb03f2c87ee1823e5a78
Tamanho da transferência: 584 KB
Espaço em disco estimado exigido: 6,9 MB (inclui instalar documentação e os testes)
Tempo de construção estimado: menos que 0,1 UPC (com testes)
Doxygen-1.13.2 (para gerar documentação)
Instale popt executando os seguintes comandos:
./configure --prefix=/usr --disable-static && make
Se você tiver Doxygen-1.13.2 instalado e desejar construir a documentação da API, [então] emita:
sed -i 's@\./@src/@' Doxyfile && doxygen
Para testar os resultados, emita: make check.
Agora, como o(a) usuário(a) root
:
make install
Se você construiu a documentação da API, [então] instale-a
usando os seguintes comandos emitidos pelo(a) usuário(a)
root
:
install -v -m755 -d /usr/share/doc/popt-1.19 && install -v -m644 doxygen/html/* /usr/share/doc/popt-1.19
--disable-static
:
Essa chave impede a instalação das versões estáticas das
bibliotecas.
O pacote Protobuf contém utilitários e bibliotecas para usar dados no formato de intercâmbio de dados do Google.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/protocolbuffers/protobuf/releases/download/v29.3/protobuf-29.3.tar.gz
Soma de verificação MD5 da transferência: 4bc7da60038e4b10de416415c7988ec7
Tamanho da transferência: 8,9 MB
Espaço em disco estimado exigido: 137 MB
Tempo de construção estimado: 1,4 UPC (com paralelismo=4)
Abseil-cpp-20250127.0 e CMake-3.31.5
Instale Protobuf executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ -D CMAKE_SKIP_INSTALL_RPATH=ON \ -D protobuf_BUILD_TESTS=OFF \ -D protobuf_ABSL_PROVIDER=package \ -D protobuf_BUILD_LIBUPB=OFF \ -D protobuf_BUILD_SHARED_LIBS=ON \ -G Ninja .. && ninja
Esse pacote vem com uma suíte de teste, mas ela exige gtest, que não é parte do BLFS.
Agora, como o(a) usuário(a) root
:
ninja install
-D
CMAKE_SKIP_INSTALL_RPATH=ON
: Essa chave faz com
que cmake
remova caminhos de pesquisa de biblioteca rigidamente
codificados (rpath) ao instalar um arquivo binário executável
ou uma biblioteca compartilhada. Esse pacote não precisa do
rpath depois de instalado no local padrão, e o rpath
ocasionalmente pode causar efeitos indesejados ou até mesmo
problemas de segurança.
-D
protobuf_BUILD_TESTS=OFF
: Esse parâmetro impede
os testes de serem construídos porque gtest não faz
parte do BLFS.
-D
protobuf_ABSL_PROVIDER=package
: Esse parâmetro
permite que o sistema de construção use a cópia instalada do
sistema de Abseil-cpp-20250127.0.
-D
protobuf_BUILD_SHARED_LIBS=ON
: Esse parâmetro
habilita construir versões compartilhadas das bibliotecas
fornecidas por esse pacote em vez das versões estáticas.
analisa arquivos de buffer de protocolo e gera saída para diversas linguagens de programação e formatos |
|
contém funções para utilizar dados no formato de intercâmbio de dados do Google |
|
contém uma versão mais simples das funções para utilizar dados no formato de intercâmbio de dados do Google |
|
contém funções usadas pelo protoc em tempo de execução para saída de dados para diversas linguagens de programação e formatos |
|
contém funções que permitem que um programa determine se uma sequência de caracteres é uma sequência válida UTF-8 |
|
contém funções que permitem que um programa determine se uma sequência de bytes é uma sequência UTF-8 válida e descubra qual é o maior prefixo válido da sequência |
O pacote Protobuf-c contém uma implementação do formato de serialização de dados Google Protocol Buffers em C.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/protobuf-c/protobuf-c/releases/download/v1.5.1/protobuf-c-1.5.1.tar.gz
Soma de verificação MD5 da transferência: 0c02b1bb2b20bb9fc3489fe9e3df354b
Tamanho da transferência: 520 KB
Espaço em disco estimado exigido: 53 MB
Tempo de construção estimado: 0,5 UPC
Instale Protobuf-c executando os seguintes comandos:
./configure --prefix=/usr --disable-static && make
Para testar os resultados, emita: make check.
Agora, como o(a) usuário(a) root
:
make install
--disable-static
:
Essa chave impede a instalação das versões estáticas das
bibliotecas.
O Qca visa a fornecer uma API criptográfica direta e multiplataforma, usando tipos de dados e convenções Qt. Qca separa a API da implementação, usando "plugins" conhecidos como "Providers".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.kde.org/stable/qca/2.3.9/qca-2.3.9.tar.xz
Soma de verificação MD5 da transferência: d8aaa46356a322464f65b04d00d2bac6
Tamanho da transferência: 748 KB
Espaço em disco estimado exigido: 57 MB (com testes)
Tempo de construção estimado: 1,0UPC (usando paralelismo = 4; com os testes)
make-ca-1.15, CMake-3.31.5, Qt-6.8.2 e Which-2.23
Cyrus SASL-2.1.28, GnuPG-2.4.7, libgcrypt-1.11.0, libgpg-error-1.51, nss-3.108, NSPR-4.36, p11-kit-0.25.5, Doxygen-1.13.2 e Botan
Corrija o local dos certificados de AC:
sed -i 's@cert.pem@certs/ca-bundle.crt@' CMakeLists.txt
Instale Qca executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=$QT6DIR \ -D CMAKE_BUILD_TYPE=Release \ -D QT6=ON \ -D QCA_INSTALL_IN_QT_PREFIX=ON \ -D QCA_MAN_INSTALL_DIR:PATH=/usr/share/man \ .. && make
Para testar os resultados, emita: make test.
Agora, como o(a) usuário(a) root
:
make install
-D
CMAKE_BUILD_TYPE=Release
: Essa chave é usada para
aplicar um nível mais alto de otimização à compilação.
-D QT6=ON
: Assegura
que os pacotes sejam construídos com Qt-6.8.2.
-D
QCA_MAN_INSTALL_DIR:PATH=/usr/share/man
: Instala
a página de manual do qca no local normal.
Esse pacote fornece um conjunto de ferramentas para fazer uso de corrotinas C++20 com Qt.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/danvratil/qcoro/archive/v0.11.0/qcoro-0.11.0.tar.gz
Soma de verificação MD5 da transferência: 085318ce2efd7fc2b4df2b5d9603b763
Tamanho da transferência: 156 KB
Espaço em disco estimado exigido: 9,0 MB (Adicionar 19 MB para testes)
Tempo de construção estimado: 0,3 UPC (Usando paralelismo=4; adicionar 0,6 UPC para testes)
Instale qcoro executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=$QT6DIR \ -D CMAKE_BUILD_TYPE=Release \ -D BUILD_TESTING=OFF \ -D QCORO_BUILD_EXAMPLES=OFF \ -D BUILD_SHARED_LIBS=ON \ .. && make
Para testar esse pacote, remova o parâmetro 'BUILD_TESTING=OFF' acima e execute:
make test
Agora, como o(a) usuário(a) root
:
make install
-D
CMAKE_BUILD_TYPE=Release
: Essa chave é usada para
aplicar um nível mais alto de otimização à compilação.
SpiderMonkey é o mecanismo JavaScript e WebAssembly da Mozilla, escrito em C++ e Rust. No BLFS, o código-fonte do SpiderMonkey é retirado do Firefox.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://archive.mozilla.org/pub/firefox/releases/128.7.0esr/source/firefox-128.7.0esr.source.tar.xz
Soma de verificação MD5 da transferência: aab1f335242b809813d1d4b754d10c0b
Tamanho da transferência: 543 MB
Espaço em disco estimado exigido: 3,6 GB (40 MB instalado depois de remover 36 MB de bibliotecas estáticas; adicionar 34 MB para os testes principais e 37 MB para os testes jit)
Tempo de construção estimado: 1,9 UPC (com paralelismo=4; adicionar 1,1 UPC para testes principais e 3,7 UPC para os testes jit)
Cbindgen-0.28.0, ICU-76.1, Which-2.23
LLVM-19.1.7 (com Clang, exigido para sistemas de 32 bits sem recursos de SSE2)
Se você estiver construindo esse pacote em um sistema de 32
bits e o Clang não estiver instalado ou você estiver
substituindo a opção padrão do compilador com a variável de
ambiente CXX
, por favor, leia
primeiro a seção Explicações do Comando.
Ao contrário da maioria dos outros pacotes no BLFS, as
instruções abaixo exigem que você desempacote firefox-128.7.0esr.tar.xz
e mude para o
diretório firefox-128.7.0
.
Extrair o tarball reconfigurará as permissões do diretório
atual para 0755, se você tiver permissão para fazer isso.
Se você fizer isso em um diretório onde o bit sticky
estiver configurado, como /tmp
, ela terminará com mensagens de
erro:
tar: .: Cannot utime: Operation not permitted
tar: .: Cannot change mode to rwxr-xr-t: Operation not permitted
tar: Exiting with failure status due to previous errors
Isso finaliza com situação diferente de zero, mas
NÃO significa que
existe um problema real. Não desempacote como o(a)
usuário(a) root
em um
diretório onde o bit sticky estiver configurado - isso irá
desconfigurá-lo.
Se você estiver usando ICU-76.1 ou posterior, adapte o sistema de construção para usar a biblioteca correta:
sed -i 's/icu-i18n/icu-uc &/' js/moz.configure
Instale SpiderMonkey executando os seguintes comandos:
Se você estiver compilando esse pacote em chroot, você
precisa assegurar que /dev/shm
esteja montado. Se você não
fizer isso, a configuração do Python falhará com um informe de
rastreamento reverso referenciando /usr/lib/pythonN.N/multiprocessing/synchronize.py
.
Como o(a) usuário(a) root
,
execute:
mountpoint -q /dev/shm || mount -t tmpfs devshm /dev/shm
Compilar o código C++ respeita $MAKEFLAGS e o padrão é 'j1'; o código do rust usará todos os processadores.
mkdir obj && cd obj && ../js/src/configure --prefix=/usr \ --disable-debug-symbols \ --disable-jemalloc \ --enable-readline \ --enable-rust-simd \ --with-intl-api \ --with-system-icu \ --with-system-zlib && make
Se você desejar executar a suíte de teste, adapte-a para ser compatível com Python 3.13.0 ou mais recente:
sed 's/pipes/shlex/' -i ../js/src/tests/lib/results.py
Para executar a suíte de teste SpiderMonkey, emita:
make -C js/src check-jstests \ JSTESTS_EXTRA_ARGS="--timeout 300 --wpt=disabled" | tee jstest.log
Como nós estamos construindo com o ICU do sistema, 155 testes
(de um total de mais de 50.000) são conhecidos por falharem.
A lista de testes falhos pode ser extraída via grep 'UNEXPECTED-FAIL'
jstest.log. Passe a opção -c
para grep se você quiser somente
o número total de testes falhos.
A suíte de teste é executada com todos os núcleos de CPU disponíveis: mesmo em um cgroup com menos núcleos atribuídos, ela ainda tenta gerar tantas tarefas de teste quanto o número de todos os núcleos no sistema; felizmente, o núcleo ainda não executará essas tarefas em núcleos não atribuídos ao cgroup, de forma que o uso da CPU ainda é controlado.
Para executar a suíte de teste JIT, emita o comando a seguir. Observe que 6 testes na suíte 'timezone.js' são conhecidos por falharem devido ao ICU-76.
make -C js/src check-jit-test
Assim como a suíte de teste do SpiderMonkey, o número de
tarefas de teste é o mesmo que o número de todos os núcleos
de CPU no sistema, mesmo se um cgroup for usado. Para piorar
as coisas, alguns casos de teste podem usar até 4 GB de
memória do sistema, de forma que o pico de uso de memória
possivelmente seja muito grande se tua CPU tiver vários
núcleos. Executar a suíte de teste JIT sem memória suficiente
possivelmente invoque o OOM killer do núcleo e cause
problemas de estabilidade. Se você não tiver memória de
sistema suficiente disponível, posponha JITTEST_EXTRA_ARGS=-j
ao comando e
substitua N
N
pelo
número de tarefas de teste que tua memória de sistema
disponível consiga conter. Por exemplo, se você tiver 15 GB
de memória de sistema disponível e 4 núcleos de CPU, posponha
JITTEST_EXTRA_ARGS=-j3
para
executar a suíte de teste com 3 tarefas paralelas de forma
que o uso de memória não exceda 12 GB.
Um problema no processo de instalação faz com que qualquer programa em execução que se vincule à biblioteca compartilhada do SpiderMonkey (por exemplo, GNOME Shell) trave se o SpiderMonkey for reinstalado, atualizado ou rebaixado sem uma mudança do número da versão principal (128 em 128.7.0). Para contornar esse problema, remova a versão antiga da biblioteca compartilhada do SpiderMonkey antes da instalação:
rm -fv /usr/lib/libmozjs-128.so
Agora, como o(a) usuário(a) root
:
make install && rm -v /usr/lib/libjs_static.ajs && sed -i '/@NSPR_CFLAGS@/d' /usr/bin/js128-config
--disable-debug-symbols
: Não
gere símbolos de depuração, pois eles são muito grandes e a
maioria dos(as) usuários(as) não precisará deles. Remova-o se
você quiser depurar o SpiderMonkey.
--disable-jemalloc
:
Essa chave desabilita o alocador de memória interna usado no
SpiderMonkey. jemalloc destina-se somente para o ambiente do
navegador Firefox. Para outros aplicativos que usam o
SpiderMonkey, o aplicativo pode travar à medida que os itens
alocados no alocador jemalloc forem liberados no alocador do
sistema (glibc).
--enable-readline
:
Essa chave habilita suporte Readline na interface de linha de
comando do SpiderMonkey.
--enable-rust-simd
:
Essa chave habilita otimização do SIMD na caixa encoding_rs
enviada.
--with-intl-api
: Isso
habilita as funções de internacionalização exigidas pelo
Gjs.
--with-system-*
:
Esses parâmetros permitem que o sistema de construção use
versões de sistema das bibliotecas acima. Eles são
necessários para estabilidade.
rm -v /usr/lib/libjs_static.ajs: Remove uma grande biblioteca estática que não é usada por nenhum pacote do BLFS.
sed -i '/@NSPR_CFLAGS@/d' /usr/bin/js128-config: Impede que js128-config use CFLAGS defeituosas.
: O BLFS costumava preferir usar gcc e
g++ em vez dos padrões do fluxo de desenvolvimento dos
programas clang. Com o
lançamento do gcc-12 a construção demora mais tempo com gcc e
g++, principalmente por causa de avisos extras, e é maior.
Passe essas variáveis de ambiente para o conjunto de comandos
sequenciais de configuração se você desejar continuar a usar
gcc, g++ (exportando-as e desconfigurando-as depois da
instalação ou simplesmente acrescentando-as antes do comando
../js/src/configure). Se
você estiver construindo em um sistema de 32 bits, veja
também abaixo.
CC=gcc
CXX=g++
: Use SSE2 em vez de 387 para
operações de ponto flutuante de precisão dupla. É necessário
ao GCC para satisfazer as expectativas dos(as)
desenvolvedores(as) do fluxo de desenvolvimento (Mozilla) com
aritmética de ponto flutuante. Use-o se você estiver
construindo esse pacote em um sistema de 32 bits com GCC (se
o Clang não estiver instalado ou o GCC for especificado
explicitamente). Observe que isso fará com que o SpiderMonkey
trave em um processador sem capacidade SSE2. Se você estiver
executando o sistema em um processador tão antigo, o Clang
será estritamente necessário. Essa configuração não é
necessária em sistemas de 64 bits porque todos os
processadores x86 de 64 bits suportam SSE2 e os compiladores
de 64 bits (ambos, Clang e GCC) usam SSE2 por padrão.
CXXFLAGS="-msse2
-mfpmath=sse"
O pacote SPIRV-Headers contém cabeçalhos que permitem que aplicações usem a linguagem e conjunto de instruções SPIR-V com Vulkan. SPIR-V é uma linguagem intermediária binária para representar estágios gráficos de sombreadores e núcleos de computação para várias APIs Khronos, incluindo OpenGL e Vulkan.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/KhronosGroup/SPIRV-Headers/archive/vulkan-sdk-1.4.304.1/SPIRV-Headers-vulkan-sdk-1.4.304.1.tar.gz
Soma de verificação MD5 da transferência: 7421a1530b7a8187a17d0a80547fa44c
Tamanho da transferência: 520 KB
Espaço em disco estimado exigido: 4,3 MB
Tempo de construção estimado: menos que 0,1 UPC
Instale SPIRV-Headers executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr -G Ninja .. && ninja
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
ninja install
O pacote SPIRV-Tools contém bibliotecas e utilitários para processar módulos SPIR-V.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/KhronosGroup/SPIRV-Tools/archive/vulkan-sdk-1.4.304.1/SPIRV-Tools-vulkan-sdk-1.4.304.1.tar.gz
Soma de verificação MD5 da transferência: b7fe16af4e1954b5479f3c55ca3eea9b
Tamanho da transferência: 3,1 MB
Espaço em disco estimado exigido: 63 MB
Tempo de construção estimado: 1,0 UPC (com testes; ambos usando paralelismo=8)
Instale SPIRV-Tools executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ -D SPIRV_WERROR=OFF \ -D BUILD_SHARED_LIBS=ON \ -D SPIRV_TOOLS_BUILD_STATIC=OFF \ -D SPIRV-Headers_SOURCE_DIR=/usr \ -G Ninja .. && ninja
Para testar os resultados, emita: ninja test.
Agora, como o(a) usuário(a) root
:
ninja install
-D SPIRV_WERROR=OFF
:
Essa chave impede que o sistema de construção trate avisos
como erros.
-D
BUILD_SHARED_LIBS=ON
: Essa chave força o sistema
de construção a instalar bibliotecas compartilhadas em vez de
bibliotecas estáticas.
-D
SPIRV_TOOLS_BUILD_STATIC=OFF
: Essa chave
desabilita construir versões estáticas das bibliotecas.
-D
SPIRV-Headers_SOURCE_DIR
: Essa chave informa ao
sistema de construção que SPIRV-Headers-1.4.304.1 está
instalado em /usr. Isso é necessário porque o sistema de
construção tenta usar uma cópia em external/spirv-headers
no diretório do
fonte por padrão e a cópia não é enviada (ou seja, você
precisa extrair manualmente SPIRV-Headers-1.4.304.1 para lá
se quiser construir com a cópia).
cria um módulo binário SPIR-V a partir de texto de montagem do SPIR-V |
|
mostra o gráfico do fluxo de controle no formato "dot" |
|
desmonta um módulo binário SPIR-V |
|
desmonta automaticamente um arquivo .SPV para 'less' |
|
vincula arquivos binários SPIR-V |
|
verifica um módulo binário SPIR-V para erros |
|
despeja informações a partir de um binário SPIR-V |
|
realiza otimizações em arquivos binários SPIR-V |
|
reduz um arquivo binário SPIR-V |
|
valida um arquivo binário SPIR-V |
|
contém funções para processamento de módulos SPIR-V |
O pacote SPIRV-LLVM-Translator contém uma biblioteca e um utilitário para conversão entre código IR e SPIR-V do LLVM. Esse pacote, atualmente, suporta somente a versão OpenCL/Compute do SPIR-V.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/KhronosGroup/SPIRV-LLVM-Translator/archive/v19.1.4/SPIRV-LLVM-Translator-19.1.4.tar.gz
Soma de verificação MD5 da transferência: 80e0b041b83d1c5e5e6cf4efadaa98a5
Tamanho da transferência: 1,7 MB
Espaço em disco estimado exigido: 38 MB
Tempo de construção estimado: 0,6 UPC (com paralelismo=4)
Instale SPIRV-LLVM-Translator executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ -D BUILD_SHARED_LIBS=ON \ -D CMAKE_SKIP_INSTALL_RPATH=ON \ -D LLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR=/usr \ -G Ninja .. && ninja
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
ninja install
-D
BUILD_SHARED_LIBS=ON
: Esse parâmetro força
construir versões compartilhadas das bibliotecas.
-D
CMAKE_SKIP_INSTALL_RPATH=ON
: Essa chave faz com
que cmake
remova caminhos de pesquisa de biblioteca rigidamente
codificados (rpath) ao instalar um arquivo binário executável
ou uma biblioteca compartilhada. Esse pacote não precisa do
rpath depois de instalado no local padrão, e o rpath
ocasionalmente pode causar efeitos indesejados ou até mesmo
problemas de segurança.
-D
LLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR=/usr
: Esse
parâmetro permite que o sistema de construção use a versão do
SPIRV-Headers que deveria ter sido instalada como uma
dependência do SPIRV-Tools, em vez de baixar novamente uma
cópia desnecessária dos cabeçalhos.
Talloc fornece um sistema hierárquico de agrupamento de memória contada por referência com destruidores. É o alocador de memória usado no Samba.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.samba.org/ftp/talloc/talloc-2.4.3.tar.gz
Soma de verificação MD5 da transferência: a51e4220fda52f4ae39413ed7e281f38
Tamanho da transferência: 672 KB
Espaço em disco estimado exigido: 10 MB (com testes)
Tempo de construção estimado: 0,4 UPC (com testes)
docbook-xml-4.5, docbook-xsl-nons-1.79.2 e libxslt-1.1.42 (para gerar páginas de manual), GDB-16.2, git-2.48.1, libnsl-2.0.1, libtirpc-1.3.6, Valgrind-3.24.0 e xfsprogs-6.13.0
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
O pacote Uchardet contém uma biblioteca de detecção de codificação que recebe uma sequência de bytes em uma codificação de caracteres desconhecida e tenta determinar a codificação do texto.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.freedesktop.org/software/uchardet/releases/uchardet-0.0.8.tar.xz
Soma de verificação MD5 da transferência: 9e267be7aee81417e5875086dd9d44fd
Tamanho da transferência: 217 KB
Espaço em disco estimado exigido: 4,6 MB (com o teste)
Tempo de construção estimado: menos que 0,1 UPC (com o teste)
Instale Uchardet executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D BUILD_STATIC=OFF \ -W no-dev .. && make
Para testar os resultados, emita: make test.
Agora, como o(a) usuário(a) root
:
make install
-D BUILD_STATIC=OFF
:
Essa chave desabilita a construção da versão estática da
biblioteca.
O pacote Umockdev contém uma estrutura que permite que um(a) desenvolvedor(a) simule dispositivos para uso em testes de unidade.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/martinpitt/umockdev/releases/download/0.19.1/umockdev-0.19.1.tar.xz
Soma de verificação MD5 da transferência: 05e3edda217c404aae1c78adf7e10d18
Tamanho da transferência: 488 KB
Espaço em disco estimado exigido: 6,2 MB (com testes)
Tempo de construção estimado: 0,1UPC (com testes)
libgudev-238, libpcap-1.10.5 e Vala-0.56.17
GTK-Doc-1.34.0, Valgrind-3.24.0 (para testes) e libgphoto2 (para testes)
Instale Umockdev executando os seguintes comandos:
mkdir build && cd build && meson setup --prefix=/usr --buildtype=release .. && ninja
Para testar os resultados, emita como o(a) usuário(a)
root
: ninja test. Um teste
precisa ser executado em uma sessão do X.
Agora, como o(a) usuário(a) root
:
ninja install
-D gtk_doc=true
: Use essa chave
se você tiver GTK-Doc-1.34.0 instalado e desejar
reconstruir e instalar a documentação da API.
registra dispositivos Linux e os ancestrais deles a partir de sysfs/udev ou registra ioctls para um dispositivo |
|
executa um aplicativo sob um equipamento do umockdev usado para testar novas máquinas |
|
agrupa um aplicativo em torno de |
|
fornece funções de API que permitem simular dispositivos de hardware para teste de unidade |
O pacote utfcpp contém um conjunto de arquivos de inclusão para fornecer UTF-8 com C++ de maneira portável.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/nemtrif/utfcpp/archive/v4.0.6/utfcpp-4.0.6.tar.gz
Soma de verificação MD5 da transferência: 3b79abe634ef157f04bd16aad809889b
Tamanho da transferência: 36 KB
Espaço em disco estimado exigido: 504 KB
Tempo de construção estimado: menos que 0,1 UPC
Instale utfcpp executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr ..
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
Wayland é um projeto para definir um protocolo para um compositor falar com os clientes dele, bem como uma biblioteca de implementação do protocolo.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://gitlab.freedesktop.org/wayland/wayland/-/releases/1.23.0/downloads/wayland-1.23.0.tar.xz
Soma de verificação MD5 da transferência: 23ad991e776ec8cf7e58b34cbd2efa75
Tamanho da transferência: 236 KB
Espaço em disco estimado exigido: 6,8 MB (com testes)
Tempo de construção estimado: 0,1 UPC (com testes)
Doxygen-1.13.2, Graphviz-12.2.1 e xmlto-0.0.29 (para construir a documentação da API) e docbook-xml-4.5, docbook-xsl-nons-1.79.2 e libxslt-1.1.42 (para construir as páginas de manual)
Instale Wayland executando os seguintes comandos:
mkdir build && cd build && meson setup .. \ --prefix=/usr \ --buildtype=release \ -D documentation=false && ninja
Para testar os resultados, emita: env -u XDG_RUNTIME_DIR ninja test.
Agora, como o(a) usuário(a) root
:
ninja install
-D
documentation=false
: Essa chave é usada para
desabilitar a construção da documentação da API. Remova-a se
tiver instalado as dependências opcionais.
é uma ferramenta para gerar métodos de proxy em wayland-client-protocol.h e wayland-server-protocol.h |
|
contém funções de API para escrever aplicativos Wayland |
|
contém funções de API para gerenciar cursores em aplicativos Wayland |
|
contém funções de API para lidar com chamadas OpenGL em aplicativos Wayland |
|
contém funções de API para escrever compositores Wayland |
O pacote Wayland-Protocols contém protocolos adicionais do Wayland que adicionam funcionalidade fora dos protocolos já no núcleo do Wayland.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://gitlab.freedesktop.org/wayland/wayland-protocols/-/releases/1.40/downloads/wayland-protocols-1.40.tar.xz
Soma de verificação MD5 da transferência: 5ec06b6ab9c451bb0edf8530c315ed10
Tamanho da transferência: 108 KB
Espaço em disco estimado exigido: 11 MB (com testes)
Tempo de construção estimado: 0,1 UPC (com testes)
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
O pacote wv contém ferramentas para ler informação a partir de um documento do MS Word.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://anduin.linuxfromscratch.org/BLFS/wv/wv-1.2.9.tar.gz
Soma de verificação MD5 da transferência: dbccf2e9f747e50c913b7e3d126b73f7
Tamanho da transferência: 608 KB
Espaço em disco estimado exigido: 25 MB
Tempo de construção estimado: 0,4 UPC
libgsf-1.14.53 e libpng-1.6.46
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
--disable-static
:
Essa chave impede a instalação das versões estáticas das
bibliotecas.
Xapian é uma biblioteca de mecanismo de pesquisa de fonte aberto.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://oligarchy.co.uk/xapian/1.4.27/xapian-core-1.4.27.tar.xz
Soma de verificação MD5 da transferência: 1b72c939a283c1e61ff6743e7d859041
Tamanho da transferência: 3,1 MB
Espaço em disco estimado exigido: 146 MB (adicionar 168 MB para os testes)
Tempo de construção estimado: 0,4 UPC (adicionar 9,1 UPC para testes; ambos usando paralelismo=4)
Valgrind-3.24.0 (para os testes)
Instale Xapian executando os seguintes comandos:
./configure --prefix=/usr \ --disable-static \ --docdir=/usr/share/doc/xapian-core-1.4.27 && make
Para executar a suíte de teste, emita: make check.
Agora, como o(a) usuário(a) root
:
make install
realiza uma cópia documento a documento de uma ou mais bases de dados Xapian |
|
é uma ferramenta de linha de comando para pesquisar ao longo de uma base de dados |
|
é um aplicativo simples de exemplo que demonstra a expansão da consulta |
|
indexa cada parágrafo de um arquivo de texto como um documento Xapian |
|
é um utilitário simples de pesquisa de linha de comando |
|
verifica a consistência de uma base de dados ou de uma tabela |
|
compacta uma base de dados ou mescla e compacta várias bases de dados |
|
relata informação a respeito da versão instalada do xapian |
|
inspeciona o conteúdo de uma base de dados Xapian |
|
lê e grava metadados de usuário(a) |
|
inspeciona o conteúdo de uma tabela de pederneira para desenvolvimento ou depuração |
|
é um servidor remoto para uso com ProgClient |
|
replica uma base de dados a partir de um servidor mestre para uma cópia local |
|
atende a solicitações de replicação de base de dados originárias de clientes |
|
é o processo de segundo plano do TCP para uso com a estrutura remota de retaguarda do Xapian |
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 é uma biblioteca para renderizar qualquer gráfico em arte ASCII.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://downloads.sourceforge.net/aa-project/aalib-1.4rc5.tar.gz
Soma de verificação MD5 da transferência: 9801095c42bba12edebd1902bcf0a990
Tamanho da transferência: 388 KB
Espaço em disco estimado exigido: 6,5 MB
Tempo de construção estimado: 0,1 UPC
Bibliotecas do Xorg, Fontes do Xorg (tempo de execução), slang-2.3.3 e GPM-1.20.7
Corrija um pequeno problema com o arquivo "m4" incluído:
sed -i -e '/AM_PATH_AALIB,/s/AM_PATH_AALIB/[&]/' aalib.m4
Mude a fonte padrão do X11 de Fontes Legadas do Xorg para Fontes do Xorg:
sed -e 's/8x13bold/-*-luxi mono-bold-r-normal--13-120-*-*-m-*-*-*/' \ -i src/aax.c
Corrija o uso excessivo de algumas estruturas internas de dados do ncurses para permitir construir esse pacote com ncurses-6.5 ou posterior:
sed 's/stdscr->_max\([xy]\) + 1/getmax\1(stdscr)/' \ -i src/aacurses.c
Para permitir construir esse pacote com GCC-14 ou posterior,
adicione algumas diretivas #include
ausentes e corrija uma instrução
return
incorreta para tornar o
código compatível com C99. Em seguida, gere novamente o
conjunto de comandos sequenciais configure para garantir que
o código C para avaliar o sistema também seja compatível com
C99:
sed -i '1i#include <stdlib.h>' \ src/aa{fire,info,lib,linuxkbd,savefont,test,regist}.c && sed -i '1i#include <string.h>' \ src/aa{kbdreg,moureg,test,regist}.c && sed -i '/X11_KBDDRIVER/a#include <X11/Xutil.h>' \ src/aaxkbd.c && sed -i '/rawmode_init/,/^}/s/return;/return 0;/' \ src/aalinuxkbd.c && autoconf
Instale AAlib executando os seguintes comandos:
./configure --prefix=/usr \ --infodir=/usr/share/info \ --mandir=/usr/share/man \ --with-ncurses=/usr \ --disable-static && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
é uma demonstração do AAlib, renderizando um fogo animado em arte ASCII |
|
fornece informações para suas configurações atuais relacionadas a AAlib |
|
fornece informações de configuração para AAlib |
|
salva uma fonte em um arquivo |
|
mostra as habilidades de AAlib em um pequeno teste |
|
é 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 |
O pacote Babl é uma biblioteca dinâmica de tradução em formato de pixel, de qualquer para qualquer.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gimp.org/pub/babl/0.1/babl-0.1.110.tar.xz
Soma de verificação MD5 da transferência: 647708858d0c217579dec462b5f202a2
Tamanho da transferência: 312 KB
Espaço em disco estimado exigido: 14 MB (com testes)
Tempo de construção estimado: 0,1 UPC (Usando paralelismo=4; com testes)
GLib-2.82.5 (com GObject Introspection) e librsvg-2.59.2
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
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).
Exiv2 contém uma biblioteca C++ e um utilitário de linha de comando para gerenciar metadados de imagem e de vídeo.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/Exiv2/exiv2/archive/v0.28.5/exiv2-0.28.5.tar.gz
Soma de verificação MD5 da transferência: f8de9495e03f06be5152ecae3a82815c
Tamanho da transferência: 45 MB
Espaço em disco estimado exigido: 134 MB (com testes)
Tempo de construção estimado: 0,4 UPC (Usando paralelismo=4, com testes)
Brotli-1.1.0, cURL-8.12.1 e inih-58
Instale Exiv2 executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ -D EXIV2_ENABLE_VIDEO=yes \ -D EXIV2_ENABLE_WEBREADY=yes \ -D EXIV2_ENABLE_CURL=yes \ -D EXIV2_BUILD_SAMPLES=no \ -D CMAKE_SKIP_INSTALL_RPATH=ON \ -G Ninja .. && ninja
Para testar os resultados, emita: ninja test.
Agora, como o(a) usuário(a) root
:
ninja install
-D
CMAKE_SKIP_INSTALL_RPATH=ON
: Essa chave faz com
que cmake
remova caminhos de pesquisa de biblioteca rigidamente
codificados (rpath) ao instalar um arquivo binário executável
ou uma biblioteca compartilhada. Esse pacote não precisa do
rpath depois de instalado no local padrão, e o rpath
ocasionalmente pode causar efeitos indesejados ou até mesmo
problemas de segurança.
-D
EXIV2_ENABLE_VIDEO=yes
: Essa chave habilita o
gerenciamento de metadados de vídeo.
-D
EXIV2_ENABLE_WEBREADY=yes
: Essa chave habilita o
gerenciamento de metadados de imagem da web.
-D
EXIV2_BUILD_SAMPLES=no
: Essa chave é necessária
para suprimir a construção e instalação de aplicativos de
amostra. Se os aplicativos de amostra forem compilados, 34
aplicativos adicionais serão instalados em /usr/bin.
-D
EXIV2_ENABLE_CURL=yes
: Essa chave é necessária
para habilitar os recursos de rede de comunicação/http.
-D EXIV2_ENABLE_INIH=no
: Use essa
chave se você não tiver instalado inih-58.
-D EXIV2_ENABLE_BROTLI=no
: Use
essa chave se você não tiver instalado Brotli-1.1.0.
O pacote FreeType2 contém uma biblioteca que permite que os aplicativos renderizem corretamente as fontes TrueType.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://downloads.sourceforge.net/freetype/freetype-2.13.3.tar.xz
Soma de verificação MD5 da transferência: f3b4432c4212064c00500e1ad63fbc64
Tamanho da transferência: 2,5 MB
Espaço em disco estimado exigido: 33 MB (com documentação adicional)
Tempo de construção estimado: 0,2 UPC (com documentação adicional)
Documentação Adicional
Transferência (HTTP): https://downloads.sourceforge.net/freetype/freetype-doc-2.13.3.tar.xz
Soma de verificação MD5 da transferência: 6affe0d431939398cc3c7cdd58d824f8
Tamanho da transferência: 2,1 MB
harfBuzz-10.4.0 (circular: construa freetype, então harfbuzz, então reinstale freetype), libpng-1.6.46 e Which-2.23
Se você baixou a documentação adicional, [então] desempacote-a na árvore do fonte usando o seguinte comando:
tar -xf ../freetype-doc-2.13.3.tar.xz --strip-components=2 -C docs
Instale FreeType2 executando os seguintes comandos:
sed -ri "s:.*(AUX_MODULES.*valid):\1:" modules.cfg && sed -r "s:.*(#.*SUBPIXEL_RENDERING) .*:\1:" \ -i include/freetype/config/ftoption.h && ./configure --prefix=/usr --enable-freetype-config --disable-static && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
Se você baixou a documentação opcional, [então] instale-a
como o(a) usuário(a) root
:
cp -v -R docs -T /usr/share/doc/freetype-2.13.3 && rm -v /usr/share/doc/freetype-2.13.3/freetype-config.1
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.
O pacote Fontconfig contém uma biblioteca e aplicativos de suporte usados para configurar e personalizar o acesso à fonte.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.freedesktop.org/software/fontconfig/release/fontconfig-2.16.0.tar.xz
Soma de verificação MD5 da transferência: 20d5466544aa62d18c94106faa169a09
Tamanho da transferência: 1,3 MB
Espaço em disco estimado exigido: 19 MB (com testes)
Tempo de construção estimado: 0,3 UPC (com testes)
bubblewrap-0.11.0 (usado por alguns testes), cURL-8.12.1 e libarchive-3.7.7 (ambos usados por alguns testes para baixar e extrair arquivos de teste), JSON-C-0.18, DocBook-utils-0.6.14 e libxml2-2.13.6, texlive-20240312 (ou install-tl-unx)
Uma conexão com a Internet é necessária para alguns testes desse pacote. A loja de certificados do sistema possivelmente precise ser configurada com make-ca-1.15 antes de se testar esse pacote
Se tiver DocBook Utils
instalado e remover o parâmetro --disable-docs
do comando
configure
abaixo, você precisa também ter SGMLSpm-1.1 e
texlive-20240312 instalados,
ou a construção do Fontconfig falhará.
Instale Fontconfig executando os seguintes comandos:
./configure --prefix=/usr \ --sysconfdir=/etc \ --localstatedir=/var \ --disable-docs \ --docdir=/usr/share/doc/fontconfig-2.16.0 && make
Para testar os resultados, emita: make check. Um teste é conhecido por falhar se o núcleo não suportar espaços de nomes de usuário(a). Alguns testes transferirão alguns arquivos de fonte via Internet.
Agora, como o(a) usuário(a) root
:
make install
Se não removeu o parâmetro --disable-docs
do comando
configure,
[então] você consegue instalar a documentação pré-gerada
usando os seguintes comandos como o(a) usuário(a)
root
:
install -v -dm755 \ /usr/share/{man/man{1,3,5},doc/fontconfig-2.16.0} && install -v -m644 fc-*/*.1 /usr/share/man/man1 && install -v -m644 doc/*.3 /usr/share/man/man3 && install -v -m644 doc/fonts-conf.5 /usr/share/man/man5 && install -v -m644 doc/*.{pdf,sgml,txt,html} \ /usr/share/doc/fontconfig-2.16.0
--disable-docs
: Essa
chave evita construir a documentação (o tarball de lançamento
inclui a documentação pré-gerada).
O arquivo principal de configuração para Fontconfig é /etc/fonts/fonts.conf
. Geralmente você
não deseja editar esse arquivo. Ele também lerá
/etc/fonts/local.conf
e
quaisquer arquivos em /etc/fonts/conf.d
. Para colocar um novo
diretório de fontes na configuração, crie (ou atualize) o
arquivo /etc/fonts/local.conf
com suas informações locais ou adicione um novo arquivo em
/etc/fonts/conf.d
. O local
padrão das fontes em Fontconfig é:
/usr/share/fonts
~/.local/share/fonts
~/.fonts (isso agora está obsoleto, mas, no momento, ainda funciona)
Fontconfig também envia
muitos arquivos de configuração de exemplo no diretório
/usr/share/fontconfig/conf.avail
. Criar
links simbólicos para arquivos específicos para
/etc/fonts/conf.d
irá
habilitá-los. A configuração padrão geralmente é boa o
suficiente para a maioria dos(as) usuários(as). Veja-se
/etc/fonts/conf.d/README
para
uma descrição dos arquivos de configuração.
Mais informações a respeito de configurar o Fontconfig podem ser encontradas no manual do(a) usuário(a) em file:///usr/share/doc/fontconfig-2.16.0/fontconfig-user.html.
é usado para criar caches de informações de fonte |
|
é usado para ler caches de informações de fonte |
|
mostra as informações dos arquivos do conjunto de regras no sistema |
|
é usado para criar listas de fontes |
|
é usado para corresponder às fontes disponíveis ou encontrar fontes que correspondam a um determinado padrão |
|
é usado para analisar amostra (modelo vazio por padrão) e mostrar o resultado analisado |
|
é usado para consultar arquivos de fontes e imprimir padrões resultantes |
|
é usado para escanear arquivos e diretórios de fontes e imprimir padrões resultantes |
|
é usado para validar arquivos de fontes |
|
contém funções usadas pelos aplicativos Fontconfig e também por outros aplicativos para configurar ou personalizar o acesso à fonte |
O pacote FriBidi é uma implementação do Algoritmo Bidirecional Unicode (BIDI). Isso é útil para suportar os alfabetos árabe e hebraico em outros pacotes.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/fribidi/fribidi/releases/download/v1.0.16/fribidi-1.0.16.tar.xz
Soma de verificação MD5 da transferência: 333ad150991097a627755b752b87f9ff
Tamanho da transferência: 1,1 MB
Espaço em disco estimado exigido: 22 MB (com testes)
Tempo de construção estimado: menos que 0,1 UPC (com testes)
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
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
é uma interface de linha de comando para a
biblioteca |
|
contém funções usadas para implementar o Algoritmo Bidirecional Unicode |
Esse pacote fornece a "Generic Graphics Library", que é um formato de processamento de imagens baseado em gráficos.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gimp.org/pub/gegl/0.4/gegl-0.4.54.tar.xz
Soma de verificação MD5 da transferência: e739f5c59b18d3813b7b4ae77372f53d
Tamanho da transferência: 5,7 MB
Espaço em disco estimado exigido: 124 MB (Adicionar 4 MB para testes)
Tempo de construção estimado: 0,7 UPC (adicionar 0,1 UPC para testes, ambos com paralelismo=4)
babl-0.1.110 e JSON-GLib-1.10.6
GLib-2.82.5 (com GObject Introspection), Graphviz-12.2.1 (construído com pango e libpng), Pygments-2.19.1 e PyGObject-3.50.0
asciidoc-10.2.1, Cairo-1.18.2, FFmpeg-7.1 (atualmente quebrado), gdk-pixbuf-2.42.12, gexiv2-0.14.3, GTK-Doc-1.34.0, jasper-4.2.4, Little CMS-2.17, libraw-0.21.3, librsvg-2.59.2, libspiro-20220722, libtiff-4.7.0, libwebp-1.5.0, luajit-20250212, Pango-1.56.1, Poppler-25.02.0, Ruby-3.4.2, SDL2-2.30.11, v4l-utils-1.28.1, Vala-0.56.17, lensfun, libnsgif, libumfpack, maxflow, MRG, OpenCL, OpenEXR, poly2tri-c, source-highlight e w3m
Se você estiver instalando sobre uma versão anterior do
gegl, um dos módulos
precisará ser removido. Como o(a) usuário(a) root
, execute o seguinte comando para
removê-lo:
rm -f /usr/lib/gegl-0.4/vector-fill.so
Instale gegl executando os seguintes comandos:
mkdir build && cd build && meson setup --prefix=/usr --buildtype=release .. && ninja
Para executar os testes, emita: ninja test.
Agora, como o(a) usuário(a) root
:
ninja install
-D docs=true
: Use essa chave para
construir e instalar a documentação (exige GTK-Doc-1.34.0).
é uma ferramenta de linha de comando para interfacear com a biblioteca gegl |
|
é uma ferramenta simples de detecção de diferença de imagem para uso em testes de regressão |
|
fornece infraestrutura para fazer edição de imagem não destrutiva em cache baseada em demanda em "buffers" maiores que a RAM |
|
é a biblioteca "GEGL" de deformação de imagem de N pontos |
O pacote giflib contém bibliotecas para ler e escrever "GIFs", bem como aplicativos para converter e trabalhar com arquivos "GIF".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://sourceforge.net/projects/giflib/files/giflib-5.2.2.tar.gz
Soma de verificação MD5 da transferência: 913dd251492134e235ee3c9a91987a4d
Tamanho da transferência: 440 KB
Espaço em disco estimado exigido: 4,0 MB (com documentação)
Tempo de construção estimado: menos que 0,1 UPC (com a documentação)
Primeiro, evite que o processo de construção instale arquivos XML em vez de páginas de manual:
patch -Np1 -i ../giflib-5.2.2-upstream_fixes-1.patch
Em seguida, remova uma dependência desnecessária de ImageMagick-7.1.1-43 movendo um arquivo para um local esperado:
cp pic/gifgrid.gif doc/giflib-logo.gif
Instale giflib executando os seguintes comandos:
make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make PREFIX=/usr install && rm -fv /usr/lib/libgif.a && find doc \( -name Makefile\* -o -name \*.1 \ -o -name \*.xml \) -exec rm -v {} \; && install -v -dm755 /usr/share/doc/giflib-5.2.2 && cp -v -R doc/* /usr/share/doc/giflib-5.2.2
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.
converte imagens salvas como "GIF" em imagens "RGB" de 24 bits |
|
despeja dados "GIF" em um formato textual ou os entulha em um "GIF" |
|
modifica mapas de cores de imagens "GIF" |
|
tenta desajeitadamente corrigir imagens truncadas "GIF" |
|
imprime (somente texto) informações gerais a respeito de um arquivo "GIF" |
|
é uma ferramenta de transformação "GIF" |
|
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" |
O pacote Glad contém um gerador para carregar contextos do Vulkan, OpenGL, EGL, GLES e GLX.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/Dav1dde/glad/archive/v2.0.8/glad-2.0.8.tar.gz
Soma de verificação MD5 da transferência: 028c39d581e6b53e53871f1dc21cf442
Tamanho da transferência: 632 KB
Espaço em disco estimado exigido: 14 MB
Tempo de construção estimado: menos que 0,1 UPC
pytest-8.3.4, rustc-1.85.0, Bibliotecas do Xorg, glfw e WINE
Instale Glad executando os seguintes comandos:
pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD
Esse pacote vem com uma suíte de teste, mas ela não pode ser executada sem instalar-se as dependências externas listadas acima.
Agora, como o(a) usuário(a) root
:
pip3 install --no-index --find-links dist --no-user glad2
"OpenGL Mathematics" (GLM) é uma biblioteca matemática C++ somente de cabeçalho para software gráfico baseada nas especificações "OpenGL Shading Language" (GLSL). Um sistema de extensão fornece recursos estendidos, tais como transformações de matrizes e "quaternions".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/g-truc/glm/archive/1.0.1/glm-1.0.1.tar.gz
Soma de verificação MD5 da transferência: f824ac50e16310a95279032f82cbd341
Tamanho da transferência: 4,4 MB
Espaço em disco estimado exigido: 44 MB
Tempo de construção estimado: menos que 0,1 UPC
Esse pacote é incomum, pois inclui a funcionalidade dele em arquivos de cabeçalho. Nós apenas os copiamos para a posição.
Como o(a) usuário(a) root
:
cp -r glm /usr/include/ && cp -r doc /usr/share/doc/glm-1.0.1
Graphite2 é um mecanismo de renderização para fontes de grafite. Essas são fontes "TrueType" com tabelas adicionais contendo informações de renderização inteligente e foram originalmente desenvolvidas para suportar sistemas complexos de escrita não romanos. Elas possivelmente contenham regras para, por exemplo, ligaduras, substituição de glifos, "kerning", justificação - isso pode torná-las úteis mesmo em textos escritos em sistemas de escrita romanos, como o inglês. Observe que o firefox por padrão fornece uma cópia interna do mecanismo de grafite e não pode usar uma versão do sistema (embora agora possa ser remendado para usá-lo), mas também ele deveria se beneficiar da disponibilidade de fontes de grafite.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/silnrsi/graphite/releases/download/1.3.14/graphite2-1.3.14.tgz
Soma de verificação MD5 da transferência: 1bccb985a7da01092bfb53bb5041e836
Tamanho da transferência: 6,3 MB
Espaço em disco estimado exigido: 30 MB (com testes)
Tempo de construção estimado: 0,2 UPC (com testes)
FreeType-2.13.3, silgraphite para construir a ferramenta de teste e avaliação comparativa comparerender e, se isso estiver presente, e harfBuzz-10.4.0 para adicionar mais funcionalidade para ele (essa é uma dependência circular; você precisaria primeiro construir graphite2 sem harfbuzz).
Para construir a documentação: asciidoc-10.2.1, Doxygen-1.13.2, texlive-20240312 (ou install-tl-unx) e dblatex (para documentos "PDF")
Para executar a suíte de teste, você precisará de FontTools (módulo Python 3), caso contrário, os testes "cmp" falham.
Você precisará de pelo menos uma fonte grafite adequada para que o pacote seja útil.
Alguns testes falham se o FontTools (módulo Python 3) não estiver instalado. Esses testes podem ser removidos com:
sed -i '/cmptest/d' tests/CMakeLists.txt
Instale Graphite2 executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr .. && make
Se você deseja construir a documentação, emita:
make docs
Para testar os resultados, emita: make test. Um teste chamado
nametabletest
é conhecido por
falhar.
Agora, como o(a) usuário(a) root
:
make install
Se você construiu a documentação, [então] instale, como o(a)
usuário(a) root
:
install -v -d -m755 /usr/share/doc/graphite2-1.3.14 && cp -v -f doc/{GTF,manual}.html \ /usr/share/doc/graphite2-1.3.14 && cp -v -f doc/{GTF,manual}.pdf \ /usr/share/doc/graphite2-1.3.14
-D CMAKE_VERBOSE_MAKEFILE=ON
:
Essa chave liga o modo detalhado de construção.
O pacote HarfBuzz contém um mecanismo de modelagem de texto "OpenType".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/harfbuzz/harfbuzz/releases/download/10.4.0/harfbuzz-10.4.0.tar.xz
Soma de verificação MD5 da transferência: 9ff3796c1b8ae03540e466168c6a5bd1
Tamanho da transferência: 17 MB
Espaço em disco estimado exigido: 144 MB (com testes)
Tempo de construção estimado: 0,8 UPC (com testes; ambos usando paralelismo=4)
GLib-2.82.5 (exigido para Pango; GObject Introspection exigido para construir GNOME), Graphite2-1.3.14 (exigido para construir texlive-20240312 ou LibreOffice-25.2.1.2 com harfbuzz do sistema), ICU-76.1 e FreeType-2.13.3 (depois que harfbuzz estiver instalado, reinstale freetype)
Cairo-1.18.2 (circular: construa cairo e todas as dependências recomendadas dele, incluindo harfbuzz, primeiro, então reconstrua harfbuzz se a infraestrutura de retaguarda cairo for necessária), git-2.48.1, GTK-Doc-1.34.0, FontTools (módulo Python 3, para a suíte de teste), ragel e wasm-micro-runtime
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.
Instale HarfBuzz executando os seguintes comandos:
mkdir build && cd build && meson setup .. \ --prefix=/usr \ --buildtype=release \ -D graphite2=enabled && ninja
Para testar os resultados, emita: ninja test.
Agora, como o(a) usuário(a) root
:
ninja install
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
-D graphite2=enabled
:
Essa chave habilita o suporte Graphite2, que é exigido para construir
texlive-20240312 ou o LibreOffice-25.2.1.2 com harfbuzz do
sistema.
-D docs=disabled
: Se GTK-Doc-1.34.0 estiver instalado, a
documentação será construída e instalada. Essa chave impede
isso.
é usado para coletar informações a respeito das fontes instaladas no sistema |
|
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." |
|
é usado para a conversão de sequências de caracteres de texto em glifos posicionados |
|
é usado para criar subconjuntos de fontes e exibir texto usando-os |
|
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." |
|
é a biblioteca de modelagem de texto "HarfBuzz" |
|
fornece integração "Cairo" para a biblioteca de modelagem de texto "Harfbuzz" |
|
fornece integração "GObject" para a biblioteca de modelagem de texto "HarfBuzz" |
|
fornece integração "ICU" para a biblioteca de modelagem de texto "HarfBuzz" |
|
fornece funções de API para realizar operações de subconjunto em arquivos de fonte |
O Projeto jasper é uma iniciativa de fonte aberto para fornecer uma implementação de referência baseada em software livre do codec JPEG-2000.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/jasper-software/jasper/archive/version-4.2.4/jasper-version-4.2.4.tar.gz
Soma de verificação MD5 da transferência: aa4df693b90223fe6848b34cf1208624
Tamanho da transferência: 1,9 MB
Espaço em disco estimado exigido: 9,4 MB (com testes)
Tempo de construção estimado: 0,3 UPC (com testes)
Freeglut-3.6.0 (necessário para jiv), Doxygen-1.13.2 (necessário para gerar documentação html) e texlive-20240312 ( necessário para regerar a documentação em pdf)
Instale jasper executando os seguintes comandos:
mkdir BUILD && cd BUILD && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ -D CMAKE_SKIP_INSTALL_RPATH=ON \ -D JAS_ENABLE_DOC=NO \ -D ALLOW_IN_SOURCE_BUILD=YES \ -D CMAKE_INSTALL_DOCDIR=/usr/share/doc/jasper-4.2.4 \ .. && make
Para testar os resultados, emita: make test.
Agora, como o(a) usuário(a) root
:
make install
-D
CMAKE_SKIP_INSTALL_RPATH=ON
: Essa chave faz com
que cmake
remova caminhos de pesquisa de biblioteca rigidamente
codificados (rpath) ao instalar um arquivo binário executável
ou uma biblioteca compartilhada. Esse pacote não precisa do
rpath depois de instalado no local padrão, e o rpath
ocasionalmente pode causar efeitos indesejados ou até mesmo
problemas de segurança.
-D JAS_ENABLE_DOC=NO
:
Essa opção desabilita a reconstrução da documentação em PDF
se texlive-20240312 estiver
instalado.
-D
ALLOW_IN_SOURCE_BUILD=YES
: Essa chave permite
construir a partir da árvore do fonte. No nosso caso, isso é
necessário para nos permitir construir dentro do diretório
BUILD em vez de precisar criar outro diretório fora da árvore
do fonte.
O "Little Color Management System" é um mecanismo de gerenciamento de cores compacto, com foco especial em precisão e desempenho. Ele usa o padrão "International Color Consortium" (ICC), que é o padrão moderno para gerenciamento de cores.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/mm2/Little-CMS/releases/download/lcms2.17/lcms2-2.17.tar.gz
Soma de verificação MD5 da transferência: 9f44275ee8ac122817e94fdc50ecce13
Tamanho da transferência: 5,0 MB
Espaço em disco estimado exigido: 22 MB (com os testes)
Tempo de construção estimado: 0,2 UPC (com testes)
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
--disable-static
:
Essa chave impede a instalação das versões estáticas das
bibliotecas.
é o aplicador de perfil "ICC" do "Little CMS" para "JPEG" |
|
é o gerador de ligação de dispositivo "ICC" do "Little CMS" |
|
é o gerador de "ICC PostScript" do "Little CMS" |
|
é o gerador de "ICC tiff" do "Little CMS" |
|
é a calculadora de conversão "ColorSpace" do "Little CMS" |
|
contém funções que implementam a API do "lcms2" |
O pacote libavif contém uma biblioteca usada para codificar e decodificar arquivos AVIF.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/AOMediaCodec/libavif/archive/v1.2.0/libavif-1.2.0.tar.gz
Soma de verificação MD5 da transferência: ec292cb8d51c0aa02f9fd5ef2419c853
Tamanho da transferência: 13 MB
Espaço em disco estimado exigido: 22 MB
Tempo de construção estimado: menos que 0,1 UPC
gtest, libdav1d, libyuv, rav1e e svt-av1
Uma conexão com a Internet é necessária para alguns testes desse pacote. A loja de certificados do sistema possivelmente precise ser configurada com make-ca-1.15 antes de se testar esse pacote
Instale o libavif executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ -D AVIF_CODEC_AOM=SYSTEM \ -D AVIF_BUILD_GDK_PIXBUF=ON \ -D AVIF_LIBYUV=OFF \ -G Ninja .. && ninja
Para testar o pacote (observe que isso fará com que o sistema de construção baixe uma cópia do gtest e construa a suíte de teste com a cópia), emita:
cmake .. -D AVIF_GTEST=LOCAL -D AVIF_BUILD_TESTS=ON && ninja && ninja test
Agora, como o(a) usuário(a) root
:
ninja install
O formato AV1 precisa ser adicionado ao cache dos
carregadores. Como o(a) usuário(a) root
:
gdk-pixbuf-query-loaders --update-cache
-D AVIF_CODEC_AOM=ON
:
Essa chave habilita usar o codificador AOM. Esse pacote é
inútil sem pelo menos um codificador integrado.
-D
AVIF_BUILD_GDK_PIXBUF=ON
: Essa chave constrói o
carregador AVIF para aplicativos que usam gdk-pixbuf.
Remova-a se você não tiver instalado o gdk-pixbuf-2.42.12.
-D AVIF_LIBYUV=OFF
: Use essa
chave se você não tiver instalado libyuv.
-D AVIF_CODEC_DAV1D=SYSTEM
: Use
essa chave se você tiver instalado libdav1d e
desejar usá-lo como um codificador.
-D AVIF_CODEC_RAV1E=SYSTEM
: Use
essa chave se você tiver instalado rav1e e desejar usá-lo
como um codificador.
-D AVIF_CODEC_SVT=SYSTEM
: Use
essa chave se você tiver instalado svt-av1 e
desejar usá-lo como um codificador.
O pacote libexif contém uma biblioteca para analisar, editar e salvar dados "EXIF". A maioria das câmeras digitais produz arquivos "EXIF", que são arquivos "JPEG" com etiquetas extras que contém informações a respeito da imagem. Todas as etiquetas "EXIF" descritas no padrão "EXIF 2.1" são suportadas.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/libexif/libexif/releases/download/v0.6.25/libexif-0.6.25.tar.bz2
Soma de verificação MD5 da transferência: eba77b69efac8fa8e8fc53f8c2cdad7c
Tamanho da transferência: 1,9 MB
Espaço em disco estimado exigido: 17 MB
Tempo de construção estimado: menos que 0,1 UPC
Instale libexif executando os seguintes comandos:
./configure --prefix=/usr \ --disable-static \ --with-doc-dir=/usr/share/doc/libexif-0.6.25 && make
Para testar os resultados, emita: make check.
Agora, como o(a) usuário(a) root
:
make install
A documentação foi construída e instalada se você tiver as
dependências mostradas acima instaladas. Se você não tiver as
dependências instaladas, [então] existe um "tarball"
comprimido no diretório doc
da
árvore do fonte que pode ser desempacotado em
/usr/share/doc/libexif-0.6.25.
--disable-static
:
Essa chave impede a instalação das versões estáticas das
bibliotecas.
O pacote libgxps fornece uma interface para manipular documentos "XPS".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/libgxps/0.3/libgxps-0.3.2.tar.xz
Soma de verificação MD5 da transferência: 0527ac7c8c405445e96a5baa6019a0c3
Tamanho da transferência: 80 KB
Espaço em disco estimado exigido: 5,4 MB
Tempo de construção estimado: 0,1 UPC
GTK-3.24.48, Little CMS-2.17, libarchive-3.7.7, libjpeg-turbo-3.0.1, libtiff-4.7.0 e libxslt-1.1.42
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
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
libjpeg-turbo é uma bifurcação do libjpeg "IJG" original que usa "SIMD" para acelerar a compressão e descompressão "JPEG" da linha de base. libjpeg é uma biblioteca que implementa codificação, decodificação e transcodificação de imagens "JPEG".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://downloads.sourceforge.net/libjpeg-turbo/libjpeg-turbo-3.0.1.tar.gz
Soma de verificação MD5 da transferência: 1fdc6494521a8724f5f7cf39b0f6aff3
Tamanho da transferência: 2,7 MB
Espaço em disco estimado exigido: 55 MB (com testes)
Tempo de construção estimado: 0,5 UPC (com testes; ambos usando paralelismo=4)
NASM-2.16.03 ou yasm-1.3.0 (para construir o pacote com rotina otimizada "assembly")
Instale libjpeg-turbo executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=RELEASE \ -D ENABLE_STATIC=FALSE \ -D CMAKE_INSTALL_DEFAULT_LIBDIR=lib \ -D CMAKE_SKIP_INSTALL_RPATH=ON \ -D CMAKE_INSTALL_DOCDIR=/usr/share/doc/libjpeg-turbo-3.0.1 \ .. && make
Para testar os resultados, emita: make test.
Agora, como o(a) usuário(a) root
:
make install
-D
CMAKE_SKIP_INSTALL_RPATH=ON
: Essa chave faz com
que cmake
remova caminhos de pesquisa de biblioteca rigidamente
codificados (rpath) ao instalar um arquivo binário executável
ou uma biblioteca compartilhada. Esse pacote não precisa do
rpath depois de instalado no local padrão, e o rpath
ocasionalmente pode causar efeitos indesejados ou até mesmo
problemas de segurança.
-D WITH_JPEG8=ON
: Essa chave
habilita a compatibilidade com libjpeg versão 8.
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" |
|
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" |
|
é usado para transformação sem perdas de arquivos "JPEG" |
|
exibe comentários de texto a partir de um arquivo "JPEG" |
|
é usado para avaliar comparativamente o desempenho da "libjpeg-turbo" |
|
insere comentários de texto em um arquivo "JPEG" |
|
contém funções usadas para ler e gravar imagens "JPEG" |
O pacote libjxl contém a implementação de referência do formato de imagem JPEG XL.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/libjxl/libjxl/archive/v0.11.1/libjxl-0.11.1.tar.gz
Soma de verificação MD5 da transferência: 8f26fc954c2d9cb377544a5f029182ef
Tamanho da transferência: 1,8 MB
Espaço em disco estimado exigido: 57 MB
Tempo de construção estimado: 0,9 UPC (com paralelismo=4)
Brotli-1.1.0, CMake-3.31.5, giflib-5.2.2, highway-1.2.0, Little CMS-2.17, libjpeg-turbo-3.0.1 e libpng-1.6.46
gdk-pixbuf-2.42.12 (para o plugin)
asciidoc-10.2.1 (para páginas de manual), Doxygen-1.13.2 e Graphviz-12.2.1 (para documentação), Java-23.0.2 (para o JAR), libavif-1.2.0, libwebp-1.5.0, gtest, OpenEXR, sjpeg e skcms
Instale libjxl executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ -D BUILD_TESTING=OFF \ -D BUILD_SHARED_LIBS=ON \ -D JPEGXL_ENABLE_SKCMS=OFF \ -D JPEGXL_ENABLE_SJPEG=OFF \ -D JPEGXL_ENABLE_PLUGINS=ON \ -D JPEGXL_INSTALL_JARDIR=/usr/share/java \ -G Ninja .. && ninja
Esse pacote vem com uma suíte de teste, porém ela exige gtest, que não está no BLFS.
Agora, como o(a) usuário(a) root
:
ninja install && gdk-pixbuf-query-loaders --update-cache
gdk-pixbuf-query-loaders --update-cache: Esse comando regenera o cache do carregador do GDK Pixbuf, de forma que ele esteja ciente do carregador JPEG-XL.
-D BUILD_TESTING=OFF
:
Esse parâmetro desabilita os testes porque eles exigem
gtest, que não
está no BLFS. Se você deseja executar os testes e ter o
gtest instalado,
remova esse parâmetro.
-D
BUILD_SHARED_LIBS=ON
: Esse parâmetro habilita
construir versões compartilhadas das bibliotecas em vez das
estáticas.
-D
JPEGXL_ENABLE_SKCMS=OFF
: Esse parâmetro
desabilita construir suporte para skcms do Skia, pois não é necessário
para fins de BLFS e exige skcms.
-D
JPEGXL_ENABLE_SJPEG=OFF
: Esse parâmetro
desabilita o suporte para SimpleJPEG, pois não é necessário
para fins de BLFS e exige sjpeg.
-D
JPEGXL_ENABLE_PLUGINS=ON
: Esse parâmetro habilita
o suporte de Plugin, que cria plug-ins para gdk-pixbuf-2.42.12 se o pacote
estiver instalado.
-D
JPEGXL_INSTALL_JARDIR=/usr/share/java
: Esse
parâmetro coloca o arquivo JAR para suporte JPEG XL no
diretório correto se Java-23.0.2 estiver instalado.
executa avaliações de desempenho em relação à libjxl |
|
comprime imagens no formato JPEG XL |
|
descomprime imagens do formato JPEG XL para outros formatos |
|
exibe informações acerca de imagens JPEG XL |
|
contém a implementação de referência do padrão JPEG XL |
|
contém suporte para Little CMS na libjxl |
|
contém suporte adicional de codificador/decodificador para imagens JPEG XL |
|
contém uma interface Java para suportar JPEG XL em sistemas onde Java-23.0.2 foi instalado ao tempo da construção |
|
contém funções de camada para JPEG XL |
|
contém um carregador para gdk-pixbuf para permiti-lo carregar imagens JPEG XL |
As bibliotecas libmng são usadas por aplicativos querendo ler e gravar arquivos "Multiple-image Network Graphics" ("MNG"), que são os equivalentes de animação aos arquivos "PNG".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://downloads.sourceforge.net/libmng/libmng-2.0.3.tar.xz
Soma de verificação MD5 da transferência: e9e899adb1b681b17f14d91e261878c5
Tamanho da transferência: 932 KB
Espaço em disco estimado exigido: 15 MB
Tempo de construção estimado: 0,1 UPC
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
--disable-static
:
Essa chave impede a instalação das versões estáticas das
bibliotecas.
O pacote libmypaint, também conhecido como "brushlib", é uma biblioteca para fazer pinceladas que é usada pelo "MyPaint" e outros projetos.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/mypaint/libmypaint/releases/download/v1.6.1/libmypaint-1.6.1.tar.xz
Soma de verificação MD5 da transferência: 7f1dab2d30ce8a3f494354c7c77a2977
Tamanho da transferência: 508 KB
Espaço em disco estimado exigido: 11 MB (adicionar 1 MB para os testes)
Tempo de construção estimado: 0,1 UPC (adicionar 0,3 UPC para testes)
GLib-2.82.5 (com GObject Introspection)
Doxygen-1.13.2 (para criar documentos "XML"), gegl (somente versões 0.3) e gperftools
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
O pacote libpng contém bibliotecas usadas por outros aplicativos para ler e gravar arquivos "PNG". O formato "PNG" foi projetado como um substituto para o "GIF" e, em menor grau, o "TIFF", com muitas melhorias e extensões e ausência de problemas de patente.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://downloads.sourceforge.net/libpng/libpng-1.6.46.tar.xz
Soma de verificação MD5 da transferência: 2ba00adb5d5c76d512486559a3e77be7
Tamanho da transferência: 1,0 MB
Espaço em disco estimado exigido: 14 UPC (com testes)
Tempo de construção estimado: 0,1 UPC (adicionar 0,3 UPC para testes)
Remendo recomendado para incluir a funcionalidade de "png" animado em libpng (exigido para usar a libpng do sistema no Firefox, Seamonkey e Thunderbird): https://downloads.sourceforge.net/sourceforge/libpng-apng/libpng-1.6.46-apng.patch.gz
Soma de verificação MD5 do remendo: 30b2da9a1e27235499806e415bc56840
Se você deseja remendar a "libpng" para suportar arquivos "apng", [então] aplique-o aqui:
gzip -cd ../libpng-1.6.46-apng.patch.gz | patch -p1
Instale libpng executando os seguintes comandos:
./configure --prefix=/usr --disable-static && make
Para testar os resultados, emita: make check.
Agora, como o(a) usuário(a) root
:
make install && mkdir -v /usr/share/doc/libpng-1.6.46 && cp -v README libpng-manual.txt /usr/share/doc/libpng-1.6.46
--disable-static
:
Essa chave impede a instalação das versões estáticas das
bibliotecas.
testa, otimiza e, opcionalmente, corrige o cabeçalho "zlib" em arquivos "PNG". Opcionalmente, ao corrigir, retira pedaços auxiliares do arquivo |
|
corrige arquivos "PNG" que tem um campo incorreto de comprimento nos blocos "iTXt" |
|
é um script de shell que fornece informações de configuração para aplicativos querendo usar a libpng |
|
contém rotinas usadas para criar e manipular arquivos gráficos no formato "PNG" |
Libraw é uma biblioteca para leitura de arquivos BRUTOS obtidos a partir de câmeras digitais (CRW/CR2, NEF, RAF, DNG e outros).
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.libraw.org/data/LibRaw-0.21.3.tar.gz
Soma de verificação MD5 da transferência: b9d2b96a8e30ed76ff5b0da19f3fbe81
Tamanho da transferência: 1,4 MB
Espaço em disco estimado exigido: 27 MB
Tempo de construção estimado: 0,1 UPC (Usando paralelismo=4)
Instale libraw executando os seguintes comandos:
./configure --prefix=/usr \ --enable-jpeg \ --enable-jasper \ --enable-lcms \ --disable-static \ --docdir=/usr/share/doc/libraw-0.21.3 && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
--enable-jpeg
: Essa
chave habilita o suporte para imagens JPEG. Remova-a se você
não tiver libjpeg-turbo-3.0.1 instalado.
--enable-jasper
: Essa
chave habilita o suporte para imagens JPEG2000. Remova-a se
você não tiver jasper-4.2.4 instalado.
--enable-lcms
: Essa
chave habilita o suporte para gerenciamento de cores.
Remova-a se você não tiver Little CMS-2.17 instalado.
--disable-static
:
Essa chave impede a instalação das versões estáticas das
bibliotecas.
Todos os programas instalados são exemplos de uso da libraw.
gera quatro arquivos TIFF a partir de dados BRUTOS, com um arquivo por canal |
|
emula executar "dcraw -h" (veja-se a página de manual do DCRAW) |
|
emula executar "dcraw [-4] [-6] [-e]" (veja-se a página de manual do DCRAW) |
|
cria oito renderizações a partir de um arquivo de origem. O primeiro e o quarto deveriam ser idênticos |
|
emula executar "dcraw [-D] [-T] [-v] [-e] [-4]" (veja-se a página de manual do DCRAW) |
|
é um emulador "dcraw" quase completo (veja-se a página de manual do DCRAW) |
|
emula executar "dcraw -h [-w] [-a] [-v]" (veja-se a página de manual do DCRAW) |
|
cria oito renderizações a partir de um arquivo de origem. O primeiro e o quarto deveriam ser idênticos |
|
emula executar "dcraw -i [-v]" (veja-se a página de manual do DCRAW) |
|
gera uma imagem bruta não processada (com pixeis mascarados e sem subtração de preto) |
|
contém funções usadas para analisar, editar e salvar dados BRUTOS de imagem. |
O pacote librsvg contém uma biblioteca e ferramentas usadas para manipular, converter e visualizar imagens "Scalable Vector Graphic" ("SVG").
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/librsvg/2.59/librsvg-2.59.2.tar.xz
Soma de verificação MD5 da transferência: 6d495c8bb2ee0cb0a62856c790a67298
Tamanho da transferência: 6,3 MB
Espaço em disco estimado exigido: 1,2 GB (17 MB instalado), adicionar 492 MB para testes
Tempo de construção estimado: 0,6 UPC (adicionar 0,4 UPC para testes; ambos usando paralelismo=4)
Cairo-1.18.2, cargo-c-0.10.11, gdk-pixbuf-2.42.12, Pango-1.56.1 e rustc-1.85.0
Uma conexão com a Internet é necessária para construir esse pacote. A loja de certificados do sistema possivelmente precise ser configurada com make-ca-1.15 antes de se construir esse pacote
GLib-2.82.5 (com GObject Introspection) e Vala-0.56.17
docutils-0.21.2 (para páginas de manual), Gi-DocGen-2025.3 (para documentação) e Fontes do Xorg (para testes)
Primeiro, corrija o caminho de instalação da documentação da API:
sed -e "/OUTDIR/s|,| / 'librsvg-2.59.2', '--no-namespace-dir',|" \ -e '/output/s|Rsvg-2.0|librsvg-2.59.2|' \ -i doc/meson.build
Instale librsvg executando os seguintes comandos:
mkdir build && cd build && meson setup --prefix=/usr --buildtype=release .. && ninja
Para testar os resultados, emita:
ninja test
Um teste, Rust tests (rsvg), é conhecido por falhar.
Agora, como o(a) usuário(a) root
:
ninja install
Libspiro pegará uma matriz de pontos de controle "spiro" e os converterá em uma série de "splines bezier" que podem então ser usados em uma miríade de maneiras que o mundo passou a usar "beziers".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/fontforge/libspiro/releases/download/20220722/libspiro-dist-20220722.tar.gz
Soma de verificação MD5 da transferência: c21f86e6c1ad65ed4cb1f754f6d7563c
Tamanho da transferência: 428 KB
Espaço em disco estimado exigido: 5,1 MB (adicionar 1,3 MB se executar os testes)
Tempo de construção estimado: 0,1 UPC
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
--disable-static
:
Essa chave impede a instalação das versões estáticas das
bibliotecas.
O pacote libtiff contém as bibliotecas "TIFF" e utilitários associados. As bibliotecas são usadas por muitos aplicativos para ler e gravar arquivos "TIFF" e os utilitários são usados para trabalhos gerais com arquivos "TIFF".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.osgeo.org/libtiff/tiff-4.7.0.tar.gz
Soma de verificação MD5 da transferência: 3a0fa4a270a4a192b08913f88d0cfbdd
Tamanho da transferência: 3,7 MB
Espaço em disco estimado exigido: 60 MB (com testes)
Tempo de construção estimado: 0,2 UPC (com testes)
Freeglut-3.6.0 (exigido para tiffgt), libjpeg-turbo-3.0.1, sphinx-8.2.1, libwebp-1.5.0, JBIG-KIT e LERC
Instale libtiff executando os seguintes comandos:
mkdir -p libtiff-build && cd libtiff-build && cmake -D CMAKE_INSTALL_DOCDIR=/usr/share/doc/libtiff-4.7.0 \ -D CMAKE_INSTALL_PREFIX=/usr -G Ninja .. && ninja
Para testar os resultados, emita: ninja test.
Agora, como o(a) usuário(a) root
:
ninja install
converte um fac-símile "TIFF" em arquivo comprimido "PostScript" |
|
cria um arquivo de fax "TIFF" Classe F a partir de dados brutos de fax |
|
converte uma imagem "TIFF" colorida da paleta em uma imagem completa colorida |
|
cria um arquivo "TIFF" a partir de um arquivo de imagem "PPM" |
|
converte uma sequência bruta de bytes em "TIFF" |
|
converte uma imagem colorida "TIFF" em tons de cinza |
|
converte uma imagem "TIFF" em um documento "PDF" |
|
converte uma imagem "TIFF" em um arquivo "PostScript" |
|
converte uma ampla variedade de imagens "TIFF" em uma imagem "RGBA TIFF" |
|
compara dois arquivos "TIFF" |
|
copia (e possivelmente converte) um arquivo "TIFF" |
|
seleciona, copia, recorta, converte, extrai e(ou) processa um ou mais arquivos "TIFF" |
|
converte uma imagem em tons de cinza em dois níveis usando pontilhamento |
|
imprime informações literais a respeito de arquivos "TIFF" |
|
exibe uma imagem armazenada em um arquivo "TIFF" |
|
imprime informações relativas a arquivos "TIFF" |
|
aplica o algoritmo de corte mediano aos dados em um arquivo "TIFF" |
|
configura o valor de um cabeçalho "TIFF" para um valor especificado |
|
divide um "TIFF" de várias imagens em arquivos "TIFF" de imagem única |
|
contém as funções de API usadas pelos aplicativos libtiff assim como outros aplicativos para ler e gravar arquivos "TIFF" |
|
contém as funções da API C++ usadas pelos aplicativos para ler e gravar arquivos "TIFF" |
O pacote libwebp contém uma biblioteca e aplicativos de suporte para codificar e decodificar imagens no formato "WebP".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-1.5.0.tar.gz
Soma de verificação MD5 da transferência: 8f659e426eaa2aeec4b36bc9ea43b3f3
Tamanho da transferência: 4,1 MB
Espaço em disco estimado exigido: 40 MB
Tempo de construção estimado: 0,1 UPC (com paralelismo=4)
libjpeg-turbo-3.0.1, libpng-1.6.46, libtiff-4.7.0 e SDL2-2.30.11 (para aceleração 3D melhorada)
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
--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.
comprime uma imagem usando o formato "WebP" |
|
descomprime arquivos "WebP" em imagens "PNG", "PAM", "PPM" ou "PGM" |
|
converte uma imagem "GIF" em uma imagem "WebP" |
|
cria um arquivo animado "WebP" a partir de uma sequência de imagens de entrada |
|
descomprime um arquivo "WebP" e o exibe em uma janela |
|
imprime a estrutura de nível "cunk" dos arquivos "WebP" junto com a realização de verificações básicas de integridade |
|
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" |
|
contém as funções de API para codificação e decodificação "WebP" |
O pacote mypaint-brushes contém pincéis usados por pacotes que usam a "libmypaint".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/mypaint/mypaint-brushes/releases/download/v1.3.1/mypaint-brushes-1.3.1.tar.xz
Soma de verificação MD5 da transferência: 7241032d814cb91d2baae7d009a2a2e0
Tamanho da transferência: 1,3 MB
Espaço em disco estimado exigido: 3,4 MB
Tempo de construção estimado: menos que 0,1 UPC
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
Newt é uma biblioteca de programação para modo de texto colorido, interfaces de usuário(a) baseadas em pequenas engenhocas. Ela pode ser usada para adicionar janelas empilhadas, pequenas engenhocas de entrada, caixas de seleção, botões de opção, rótulos, campos de texto simples, barras de rolagem, etc., a interfaces de usuário(a) em modo texto. Newt é baseado na biblioteca "S-Lang".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://releases.pagure.org/newt/newt-0.52.24.tar.gz
Soma de verificação MD5 da transferência: 9a0630e2f59eaa3037aec94989c36c4a
Tamanho da transferência: 176 KB
Espaço em disco estimado exigido: 3,0 MB
Tempo de construção estimado: menos que 0,1 UPC
GPM-1.20.7 (tempo de execução)
Instale newt executando o seguinte comando:
sed -e '/install -m 644 $(LIBNEWT)/ s/^/#/' \ -e '/$(LIBNEWT):/,/rv/ s/^/#/' \ -e 's/$(LIBNEWT)/$(LIBNEWTSH)/g' \ -i Makefile.in && ./configure --prefix=/usr \ --with-gpm-support \ --with-python=python3.13 && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
sed -e ... -i Makefile.in: Desabilita a instalação de uma biblioteca estática.
--with-gpm-support
:
Essa chave habilita o suporte de mouse para aplicativos
"newt" por meio do "GPM".
--with-python=python3.13
: Ao
fornecer explicitamente o nome do diretório onde residem os
módulos Python, essa chave impede a construção do módulo
"python2".
O pacote opencv contém bibliotecas gráficas voltadas principalmente para visão computacional em tempo real.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/opencv/opencv/archive/4.11.0/opencv-4.11.0.tar.gz
Soma de verificação MD5 da transferência: f35fbd46350cc677af13e198805b58f7
Tamanho da transferência: 91 MB
Espaço em disco estimado exigido: 832 MB (com opencv-contrib)
Tempo de construção estimado: 3,6 UPC (usando paralelismo = 8)
Módulos adicionais opcionais: https://github.com/opencv/opencv_contrib/archive/4.11.0/opencv_contrib-4.11.0.tar.gz
Soma de verificação MD5 dos módulos adicionais opcionais: 7dd4bc67eb67faff96ce71745a5e3abe
Tamanho dos módulos opcionais adicionais: 53 MB
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.
CMake-3.31.5 e libarchive-3.7.7
FFmpeg-7.1, gst-plugins-base-1.24.12, GTK-3.24.48, jasper-4.2.4, libexif-0.6.25, libjpeg-turbo-3.0.1, libpng-1.6.46, libtiff-4.7.0, libwebp-1.5.0, OpenJPEG-2.5.3, v4l-utils-1.28.1 e xine-lib-1.2.13
apache-ant-1.10.15, Doxygen-1.13.2, Java-23.0.2, NumPy-2.2.3, Protobuf-29.3, ATLAS, blas, Cuda, Eigen, OpenEXR, GDAL, lapack, libdc1394, Threading Building Blocks (TBB) e VTK - The Visualization Toolkit,
Se você baixou os módulos opcionais, [então] desempacote-os agora:
tar -xf ../opencv_contrib-4.11.0.tar.gz
Instale opencv executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ -D ENABLE_CXX11=ON \ -D BUILD_PERF_TESTS=OFF \ -D WITH_XINE=ON \ -D BUILD_TESTS=OFF \ -D ENABLE_PRECOMPILED_HEADERS=OFF \ -D CMAKE_SKIP_INSTALL_RPATH=ON \ -D BUILD_WITH_DEBUG_INFO=OFF \ -D OPENCV_GENERATE_PKGCONFIG=ON \ -W no-dev .. && make
O pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
-D
CMAKE_SKIP_INSTALL_RPATH=ON
: Essa chave faz com
que cmake
remova caminhos de pesquisa de biblioteca rigidamente
codificados (rpath) ao instalar um arquivo binário executável
ou uma biblioteca compartilhada. Esse pacote não precisa do
rpath depois de instalado no local padrão, e o rpath
ocasionalmente pode causar efeitos indesejados ou até mesmo
problemas de segurança.
-D WITH_XINE=ON
: Essa
chave instrui o procedimento make a usar xine-lib-1.2.13.
-D
ENABLE_PRECOMPILED_HEADERS=OFF
: Essa chave é
necessária para compatibilidade com gcc-6.1 e posteriores.
-D
OPENCV_GENERATE_PKGCONFIG=ON
: Essa chave informa
ao sistema de construção para gerar um arquivo pkg-config
para outros pacotes detectarem e se vincularem às bibliotecas
instaladas por este pacote.
-D
OPENCV_EXTRA_MODULES_PATH=../opencv_contrib-4.11.0/modules
:
instrui o sistema de construção a construir módulos
adicionais. Alguns pacotes no BLFS (como gst-plugins-bad-1.24.12)
precisam desses módulos para construir componentes que usam
OpenCV.
OpenJPEG é uma implementação de fonte aberto do padrão "JPEG-2000". O OpenJPEG respeita totalmente as especificações "JPEG-2000" e consegue comprimir/descomprimir imagens de 16 bits sem perdas.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/uclouvain/openjpeg/archive/v2.5.3/openjpeg-2.5.3.tar.gz
Soma de verificação MD5 da transferência: 12ae257cb21738c41b5f6ca977d01081
Tamanho da transferência: 2,1 MB
Espaço em disco estimado exigido: 17 MB (adicionar 1,7 GB para os testes)
Tempo de construção estimado: 0,2 UPC (adicionar 1,0 UPC para testes)
git-2.48.1 (para testes), Little CMS-2.17, libpng-1.6.46, libtiff-4.7.0 e Doxygen-1.13.2 (para construir a documentação da API)
Instale OpenJPEG executando os seguintes comandos:
mkdir -v build && cd build && cmake -D CMAKE_BUILD_TYPE=Release \ -D CMAKE_INSTALL_PREFIX=/usr \ -D BUILD_STATIC_LIBS=OFF .. && make
Se você desejar executar os testes, alguns arquivos adicionais serão necessários. Baixe esses arquivos e execute os testes usando os seguintes comandos, mas observe que oito (8) testes são conhecidos por falharem:
git clone https://github.com/uclouvain/openjpeg-data.git --depth 1 && OPJ_DATA_ROOT=$PWD/openjpeg-data cmake -D BUILD_TESTING=ON .. && make && make test
Agora, como o(a) usuário(a) root
:
make install && cp -rv ../doc/man -T /usr/share/man
O pacote Pixman contém uma biblioteca que fornece recursos de manipulação de pixel de baixo nível, como composição de imagem e rasterização trapezoidal.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.cairographics.org/releases/pixman-0.44.2.tar.gz
Soma de verificação MD5 da transferência: 0825cd6bfc488d5177f2f013a06ef240
Tamanho da transferência: 796 KB
Espaço em disco estimado exigido: 29 MB (Com testes)
Tempo de construção estimado: 0,2 UPC (Usando paralelismo=4; com testes)
libpng-1.6.46 e GTK-3.24.48 (para testes e demonstrações)
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
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
O pacote Poppler contém uma biblioteca de renderização de PDF e ferramentas de linha de comando usadas para manipular arquivos PDF. Isso é útil para fornecer funcionalidade de renderização de PDF como uma biblioteca compartilhada.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://poppler.freedesktop.org/poppler-25.02.0.tar.xz
Soma de verificação MD5 da transferência: feae5e0715ed7738fcb4220730a3ff4c
Tamanho da transferência: 1,9 MB
Espaço em disco estimado exigido: 77 MB (com biblioteca Qt6 e testes)
Tempo de construção estimado: 1,0 UPC (com paralelismo=4, testes e biblioteca Qt6)
Dados de Codificação Poppler
Transferência (HTTP): https://poppler.freedesktop.org/poppler-data-0.4.12.tar.gz
Soma de verificação MD5 da transferência: 67ee4a40aa830b1f6e2560ce5f6471ba
Tamanho da transferência: 4,3 MB
Espaço em disco estimado exigido: 26 MB
Tempo de construção estimado: menos que 0,1 UPC
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.
CMake-3.31.5, Fontconfig-2.16.0 e GLib-2.82.5 (com GObject Introspection)
Boost-1.87.0, Cairo-1.18.2, GPGME-1.24.2, Little CMS-2.17, libjpeg-turbo-3.0.1, libpng-1.6.46, libtiff-4.7.0, nss-3.108, OpenJPEG-2.5.3 e Qt-6.8.2 (exigido para suporte PDF no okular-24.12.2)
cURL-8.12.1, gdk-pixbuf-2.42.12, git-2.48.1 (para baixar arquivos de teste), GTK-Doc-1.34.0 e GTK-3.24.48
Agora, Instale Poppler executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_BUILD_TYPE=Release \ -D CMAKE_INSTALL_PREFIX=/usr \ -D TESTDATADIR=$PWD/testfiles \ -D ENABLE_QT5=OFF \ -D ENABLE_UNSTABLE_API_ABI_HEADERS=ON \ -G Ninja .. && ninja
Para a finalidade de executar a suíte de teste, alguns casos de teste são necessários e podem ser obtidos somente a partir de um repositório git. O comando para baixá-los é: git clone --depth 1 https://gitlab.freedesktop.org/poppler/test.git testfiles. Em seguida, emita: LC_ALL=en_US.UTF-8 ninja test.
Agora, como o(a) usuário(a) root
:
ninja install
Para instalar a documentação, execute os seguintes comandos
como root
:
install -v -m755 -d /usr/share/doc/poppler-25.02.0 && cp -vr ../glib/reference/html /usr/share/doc/poppler-25.02.0
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
-D
CMAKE_BUILD_TYPE=Release
: Essa chave é usada para
aplicar um nível mais alto de otimização à compilação.
-D
TESTDATADIR=$PWD/testfiles
: Informa aos
aplicativos de teste onde os arquivos auxiliares estão
localizados.
-D ENABLE_QT5=OFF
:
Essa chave é necessária para evitar um erro quando o Qt5 não
estiver instalado.
-D
ENABLE_UNSTABLE_API_ABI_HEADERS=ON
: Instala
alguns cabeçalhos antigos do Xpdf exigidos por certos aplicativos.
-D ENABLE_GTK_DOC=ON
: Use esse
parâmetro se o GTK-Doc estiver instalado e você desejar
reconstruir e instalar a documentação da API.
-D ENABLE_QT6=OFF
: Use esse
parâmetro se Qt-6.8.2 não estiver instalado.
-D ENABLE_BOOST=OFF
: Use esse
parâmetro se você não tiver instalado o boost (a estrutura de retaguarda Splash
para Qt6 recomenda o boost).
-D ENABLE_NSS3=OFF
: Use esse
parâmetro se você não tiver instalado nss.
-D ENABLE_GPGME=OFF
: Use esse
parâmetro se você não tiver instalado gpgme.
-D ENABLE_LIBTIFF=OFF
: Use esse
parâmetro se você não tiver instalado libtiff.
LC_ALL=en_US.UTF-8 ninja test: Executa a suíte de teste. A variável de ambiente "LC_ALL=en_US.UTF-8" só é necessária se a localidade padrão não incluir UTF-8.
adiciona um novo arquivo incorporado a um arquivo "PDF" existente |
|
lista ou extrai arquivos incorporados a partir de arquivos "PDF" |
|
lista as fontes usadas em um arquivo "PDF" junto com várias informações para cada fonte |
|
salva imagens a partir de um arquivo "PDF" como arquivos "PPM", "PBM" ou "JPEG" |
|
imprime o conteúdo do dicionário 'Info' (mais algumas outras informações úteis) a partir de um arquivo "PDF" |
|
extrai páginas únicas a partir de um arquivo "PDF" |
|
verifica as assinaturas digitais em um documento "PDF" |
|
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" |
|
converte um arquivo "PDF" para "HTML" |
|
converte arquivos "PDF" para os formatos "PBM", "PGM" e "PPM" |
|
converte arquivos "PDF" para o formato "Postscript" |
|
converte arquivos "PDF" em texto plano |
|
mescla vários arquivos "PDF", na ordem da ocorrência deles na linha de comando, em um arquivo de saída "PDF" |
|
contém as funções da "API" para renderizar arquivos "PDF" |
|
é uma estrutura de retaguarda "C++" para renderizar arquivos "PDF" |
|
é uma biblioteca invólucro usada para interfacear as funções de renderização de "PDF" com GTK+ |
|
é uma biblioteca invólucro usada para interfacear as funções de renderização de PDF com Qt6 |
Potrace™ é uma ferramenta para transformar um bitmap (formato PBM, PGM, PPM ou BMP) em um dos vários formatos de arquivo vetorial.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://downloads.sourceforge.net/potrace/potrace-1.16.tar.gz
Soma de verificação MD5 da transferência: 5f0bd87ddd9a620b0c4e65652ef93d69
Tamanho da transferência: 644 KB
Espaço em disco estimado exigido: 7,1 MB (incluindo os testes)
Tempo de construção estimado: menos que 0,1 UPC (incluindo testes)
LLVM-19.1.7 (incluindo clang)
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
--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.
O pacote Qpdf contém aplicativos de linha de comando e uma biblioteca que faz transformações estruturais, preservando conteúdo, sobre arquivos "PDF".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/qpdf/qpdf/releases/download/v11.10.1/qpdf-11.10.1.tar.gz
Soma de verificação MD5 da transferência: 1ff2340ee610bd8d1e1296d3523c79c9
Tamanho da transferência: 19 MB
Espaço em disco estimado exigido: 313 MB (com testes)
Tempo de construção estimado: 0,5 UPC (usando paralelismo=4; adicionar 0,4 UPC para testes)
ghostscript-10.04.0, GnuTLS-3.8.9, libtiff-4.7.0, sphinx-8.2.1, com sphinx_rtd_theme-3.0.2, e texlive-20240312 ou install-tl-unx
Instale Qpdf executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ -D BUILD_STATIC_LIBS=OFF \ -D CMAKE_INSTALL_DOCDIR=/usr/share/doc/qpdf-11.10.1 \ .. && make
Para testar os resultados, emita: ctest.
Agora, como o(a) usuário(a) root
:
make install
Qrencode é uma biblioteca rápida e compacta para codificação de dados em um símbolo "QR Code", uma simbologia "2D" que pode ser escaneada por terminais portáteis, como um telefone móvel com um sensor "CCD".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://fukuchi.org/works/qrencode/qrencode-4.1.1.tar.bz2
Soma de verificação MD5 da transferência: de7185bcab635a34730e1b73d4efa705
Tamanho da transferência: 451 KB
Espaço em disco estimado exigido: 5,0 MB (com a documentação, adicionar 5 MB para os testes)
Tempo de construção estimado: menos que 0,1 UPC; adicionar 0,1 UPC para testes
Doxygen-1.13.2 para gerar documentação e SDL2-2.30.11 para os testes
Instale libqrencode executando os seguintes comandos:
./configure --prefix=/usr && make
Se instalou Doxygen-1.13.2, [então] você consegue construir a documentação emitindo:
doxygen
Os testes precisam ser executados depois de instalar o pacote.
Agora, como o(a) usuário(a) root
:
make install
Se você tiver construído a documentação opcional, [então]
instale-a como o(a) usuário(a) root
:
install -vdm 755 /usr/share/doc/qrencode-4.1.1 && mv html/* /usr/share/doc/qrencode-4.1.1
Para testar os resultados, se você tiver passado a opção
--with-tests
para configure, emita:
make check.
--with-tests
: Essa opção permite
construir os aplicativos de teste. Exige SDL2-2.30.11.
--without-tools
: Essa opção evita
construir o executável qrencode, removendo a
necessidade da libpng-1.6.46.
SassC é um invólucro em torno da "libsass", uma linguagem de pré-processador "CSS".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/sass/sassc/archive/3.6.2/sassc-3.6.2.tar.gz
Soma de verificação MD5 da transferência: 4c3b06ce2979f2a9f0a35093e501d8bb
Tamanho da transferência: 28 KB
Espaço em disco estimado exigido: 5,1 MB
Tempo de construção estimado: menos que 0,1 UPC
Transferência (HTTP): https://github.com/sass/libsass/archive/3.6.6/libsass-3.6.6.tar.gz
Soma de verificação MD5 da transferência: afda97284d75a030cabadf5b9f998a3b
Tamanho da transferência: 336 KB
Espaço em disco estimado exigido: 135 MB
Tempo de construção estimado: 0,4 UPC (Usando paralelismo=4)
Primeiro, construa a biblioteca:
tar -xf ../libsass-3.6.6.tar.gz && pushd libsass-3.6.6 && autoreconf -fi && ./configure --prefix=/usr --disable-static && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
Construa o invólucro da linha de comando:
popd && autoreconf -fi && ./configure --prefix=/usr && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
O pacote webp-pixbuf-loader contém uma biblioteca que permite ao gdk-pixbuf carregar e processar imagens webp.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/aruiz/webp-pixbuf-loader/archive/0.2.7/webp-pixbuf-loader-0.2.7.tar.gz
Soma de verificação MD5 da transferência: e97025dc70178877dbd041776f151947
Tamanho da transferência: 8,8 MB
Espaço em disco estimado exigido: 9,7 MB
Tempo de construção estimado: menos que 0,1 UPC (com testes)
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
--buildtype=release
:
Especifique 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.
WOFF2 é uma biblioteca para converter fontes do formato "TTF" para o formato "WOFF 2.0". Ela também permite a descompressão de "WOFF 2.0" para "TTF". O formato "WOFF 2.0" usa o algoritmo de compressão "Brotli" para comprimir fontes adequadas para download nas regras "@font-face" do "CSS".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/google/woff2/archive/v1.0.2/woff2-1.0.2.tar.gz
Soma de verificação MD5 da transferência: 793c8844845351cb80730a74937e411b
Tamanho da transferência: 39 KB
Espaço em disco estimado exigido: 1,6 MB
Tempo de construção estimado: menos que 0,1 UPC
Instale WOFF2 executando os seguintes comandos:
mkdir out && cd out && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ -D CMAKE_SKIP_INSTALL_RPATH=ON .. && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
-D
CMAKE_SKIP_INSTALL_RPATH=ON
: Essa chave faz com
que cmake
remova caminhos de pesquisa de biblioteca rigidamente
codificados (rpath) ao instalar um arquivo binário executável
ou uma biblioteca compartilhada. Esse pacote não precisa do
rpath depois de instalado no local padrão, e o rpath
ocasionalmente pode causar efeitos indesejados ou até mesmo
problemas de segurança.
O pacote zxing-cpp fornece uma biblioteca de processamento de imagens de código de barras linear/matriz multiformato de código aberto.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/zxing-cpp/zxing-cpp/archive/v2.3.0/zxing-cpp-2.3.0.tar.gz
Soma de verificação MD5 da transferência: 91ae23c12b5a00d54037ad019777238a
Tamanho da transferência: 988 KB
Espaço em disco estimado exigido: 67 MB
Tempo de construção estimado: 0,1 UPC (Usando paralelismo=4)
Instale zxing-cpp executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ -D ZXING_EXAMPLES=OFF \ -W no-dev .. && make
Testes exigem um pacote externo.
Agora, como o(a) usuário(a) root
:
make install
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.
O "Asciidoctor" é um processador de texto de fonte aberto rápido e um conjunto de ferramentas de publicação para converter conteúdo "AsciiDoc" em "HTML5", "DocBook", "PDF" e outros formatos.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/asciidoctor/asciidoctor/archive/v2.0.23/asciidoctor-2.0.23.tar.gz
Soma de verificação MD5 da transferência: e629ec9b6a82a21b4afaab7d5d495e52
Tamanho da transferência: 1,6 MB
Espaço em disco estimado exigido: 5,5 MB
Tempo de construção estimado: menos que 0,1 UPC
Quando construir esse pacote, a seguinte mensagem possivelmente apareça:
fatal: not a git repository (or any of the parent directories): .git
. Isso é normal e o pacote continuará sendo construído após esse ponto.
Construa a gema Ruby:
gem build asciidoctor.gemspec
A suíte de teste precisa de muitas gemas Ruby além do escopo do BLFS.
Agora, como o(a) usuário(a) root
:
gem install asciidoctor-2.0.23.gem && install -vm644 man/asciidoctor.1 /usr/share/man/man1
O aplicativo Bogofilter é um filtro de mensagens que classifica a mensagem como "spam" ou "ham" (não "spam") por meio de uma análise estatística do cabeçalho e conteúdo (corpo) da mensagem.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://downloads.sourceforge.net/bogofilter/bogofilter-1.2.5.tar.xz
Soma de verificação MD5 da transferência: 8763f87adfff7b802ced177d8c654539
Tamanho da transferência: 784 KB
Espaço em disco estimado exigido: 19 MB
Tempo de construção estimado: 0,1 UPC
gsl-2.8, libxml2-2.13.6 e SQLite-3.49.1
lmdb-0.9.31, xmlto-0.0.29, Berkeley DB (obsoleto), QDBM e TokyoCabinet
Se você não instalar o pacote gsl-2.8 recomendado, então uma versão enviada estaticamente vinculada será usada.
Se você planeja mudar a versão de sua biblioteca de base de dados em uma instalação existente ou mudar para uma base de dados diferente, [então] leia o aviso na parte superior do arquivo "RELEASE.NOTES".
Instale Bogofilter executando os seguintes comandos:
./configure --prefix=/usr \ --sysconfdir=/etc/bogofilter \ --with-database=sqlite3 && make
Para testar os resultados, emita make check.
Agora, como o(a) usuário(a) root
:
make install
--with-database=sqlite3
: Essa
chave faz com que Bogofilter use SQLite-3.49.1 como a base
de dados, em vez de Berkeley DB.
--with-database={lmdb,qdbm,tokyocabinet}
:
Essa chave também permite usar lmdb, qdbm ou tokyocabinet
como a base de dados.
cria um diretório de trabalho do "bogofilter" mais compacto com um ciclo de despejo/carga |
|
copia um diretório de trabalho do "bogofilter" para outro diretório |
|
agrupa um diretório de trabalho do "bogofilter" no formato "tar" e o copia para a saída padrão |
|
é um filtro de "spam" "bayesiano" rápido |
|
é usado para separar mensagens em "tokens" e para testar novas versões do código "lexer.l" |
|
tenta encontrar configurações ideais de parâmetros para o "bogofilter" |
|
atualiza a base de dados do "bogofilter" para a versão atual |
|
despeja, carrega e mantém arquivos de base de dados do "bogofilter" |
O Compface fornece utilitários e uma biblioteca para converter de/para o formato "X-Face", um formato "bitmap" 48x48 usado para transportar miniaturas dos(as) autores(as) de mensagens eletrônicas em um cabeçalho de mensagem.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://anduin.linuxfromscratch.org/BLFS/compface/compface-1.5.2.tar.gz
Soma de verificação MD5 da transferência: 62f4f79c0861ad292ba3cf77b4c48319
Tamanho da transferência: 47 KB
Espaço em disco estimado exigido: 520 KB
Tempo de construção estimado: menos que 0,1 UPC
Primeiro, corrija o conjunto de comandos sequenciais configure, de forma que ele seja compatível com C99:
autoreconf
A seguir, corrija uma falha de construção que ocorre com GCC 14:
sed -e '/compface.h/a #include <unistd.h>' \ -i cmain.c \ -i uncmain.c
Instale Compface executando os seguintes comandos:
./configure --prefix=/usr --mandir=/usr/share/man && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install && install -m755 -v xbm2xface.pl /usr/bin
é um filtro para gerar representações altamente comprimidas de arquivos de imagem de face 48x48x1 |
|
é um filtro inverso que realiza uma transformação inversa sem perda de dados |
|
é um script para gerar "xfaces" |
|
permite que os algoritmos de compressão e descompressão sejam usados em outros aplicativos, tais como "MTAs" |
O pacote Desktop File Utils contém utilitários de linha de comando para trabalhar com entradas de área de trabalho. Esses utilitários são usados por ambientes de área de trabalho e outros aplicativos para manipular as bases de dados de aplicativos de tipo "MIME" e ajudar a aderir à especificação de entrada de área de trabalho.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.freedesktop.org/software/desktop-file-utils/releases/desktop-file-utils-0.28.tar.xz
Soma de verificação MD5 da transferência: dec5d7265c802db1fde3980356931b7b
Tamanho da transferência: 80 KB
Espaço em disco estimado exigido: 1,2 MB
Tempo de construção estimado: menos que 0,1 UPC
Se você estiver atualizando a partir de uma versão anterior do "desktop-file-utils" que usou o método "Autotools" de instalação e configuração do pacote, [então] você precisa remover o link simbólico "desktop-file-edit" usando os seguintes comandos.
rm -fv /usr/bin/desktop-file-edit
Instale Desktop File Utils executando os seguintes comandos:
mkdir build && cd build && meson setup --prefix=/usr --buildtype=release .. && ninja
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
ninja install
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
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
é usado para modificar uma entrada existente do arquivo da área de trabalho |
|
é 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" |
|
é usado para verificar a integridade de um arquivo da área de trabalho |
|
é usado para atualizar a base de dados de aplicativos de tipos "MIME" |
O pacote dos2unix contém um conversor de formato de texto de qualquer para qualquer.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://downloads.sourceforge.net/dos2unix/dos2unix-7.5.2.tar.gz
Soma de verificação MD5 da transferência: 646272020848c9b673de24c4e8e3422e
Tamanho da transferência: 972 KB
Espaço em disco estimado exigido: 7,2 MB (com testes)
Tempo de construção estimado: menos que 0,1 UPC (com testes)
Construa dos2unix executando os seguintes comandos:
make
Para testar os resultados, emita: make check.
Agora, como o(a) usuário(a) root
:
make install
converte arquivos de texto plano no formato "DOS" para o formato "Unix" |
|
converte arquivos de texto plano no formato "Mac" para o formato "Unix" |
|
converte arquivos de texto plano no formato "Unix" para o formato "DOS" |
|
converte arquivos de texto plano no formato "Unix" para o formato "Mac" |
O programa glslc é o compilador de linha de comando do Google para OpenGL Shading Language/High Level Shading Language (GLSL/HLSL) para Standard Portable Intermediate Representation (SPIR-V).
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/google/shaderc/archive/v2024.4/shaderc-2024.4.tar.gz
Soma de verificação MD5 da transferência: 31c4120c5bba0f79ad3bb6491be69d5a
Tamanho da transferência: 224 KB
Espaço em disco estimado exigido: 4,0 MB
Tempo de construção estimado: menos que 0,1 UPC
Primeiro, permita construir com Glslang-15.1.0 e SPIRV-Tools-1.4.304.1 do sistema:
sed '/build-version/d' -i glslc/CMakeLists.txt && sed '/third_party/d' -i CMakeLists.txt && sed 's|SPIRV|glslang/&|' -i libshaderc_util/src/compiler.cc && echo '"2024.4"' > glslc/src/build-version.inc
Agora instale glslc executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ -D SHADERC_SKIP_TESTS=ON \ -G Ninja .. ninja
Agora, como o(a) usuário(a) root
:
install -vm755 glslc/glslc /usr/bin
O pacote Graphviz contém um software de visualização gráfica. A visualização gráfica é uma forma de representar informações estruturais como diagramas de gráficos abstratos e redes de comunicação. O Graphviz tem vários aplicativos principais de esquemas gráficos. Também tem interfaces gráficas web e interativas, ferramentas auxiliares, bibliotecas e ligações de linguagem.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://gitlab.com/graphviz/graphviz/-/archive/12.2.1/graphviz-12.2.1.tar.bz2
Soma de verificação MD5 da transferência: 4a4dbe47b00b07cd6ba01c75f7d02e6a
Tamanho da transferência: 25 MB
Espaço em disco estimado exigido: 216 MB
Tempo de construção estimado: 0,6 UPC (usando paralelismo = 4)
O uso básico do Graphviz não exige quaisquer bibliotecas além das encontradas no livro LFS. O mecanismo “central” dele de renderização é capaz de gerar vários formatos gráficos, como Postscript, SVG, VML, .fig e Tk. Esses formatos podem ser convertidos para quase qualquer outro formato usando ferramentas provenientes de pacotes como ImageMagick-7.1.1-43. As dependências abaixo adicionam a capacidade para gerar imagens de gráfico em formato de bitmap, para exibir a imagem de gráfico na tela, para editar um gráfico visualizando a imagem resultante diretamente ou para visualizar gráficos grandes. Como o Graphviz é uma dependência de vários pacotes neste livro, é sugerido que você o construa primeiro sem quaisquer dependências e, em seguida, o reconstrua quando tiver construído pacotes suficientes para atender às tuas necessidades.
Pango-1.56.1, com Cairo-1.18.2, Bibliotecas do Xorg, Fontconfig-2.16.0 e libpng-1.6.46, para gerar imagens nos formatos bitmap SVG, postscript, PNG e PDF ou para exibir a imagem na tela. A saída gerada PNG é exigida para construir gegl-0.4.54
Adicionar GTK+-2 com libjpeg-turbo-3.0.1 adiciona suporte para formatos JPEG, BMP, TIF e ICO e permite exibir a imagem em uma janela GTK+
GD Library pode ser usado em vez de Pango. Ela adiciona a capacidade de gerar imagens nos formatos "GIF", "VRML" e "GD", mas o Pango fornece saídas melhores para os outros formatos e é necessário para exibir imagens
Outros formatos podem ser adicionados com libwebp-1.5.0 (o suporte a "WebP" é considerado experimental), DevIL, libLASi e glitz
libgs.so
originária de
ghostscript-10.04.0, librsvg-2.59.2 e Poppler-25.02.0
Freeglut-3.6.0 (com GtkGLExt e libGTS para construir o visualizador de gráficos grandes smyrna, o qual é considerado experimental)
SWIG-4.3.0 (SWIG precisa estar instalado ou nenhuma ligação será construída), GCC-14.2.0 (para o compilador "go"), Guile-3.0.10, OpenJDK-23.0.2, Lua-5.4.7, PHP-8.4.4, Ruby-3.4.2, Tk-8.6.16, Io, Mono, OCaml e R
Criterion (estrutura essencial de suporte para os testes) e Electric Fence
ghostscript-10.04.0 (para o comando ps2pdf)
Instale Graphviz executando os seguintes comandos:
sed -i '/LIBPOSTFIX="64"/s/64//' configure.ac && ./autogen.sh && ./configure --prefix=/usr \ --docdir=/usr/share/doc/graphviz-12.2.1
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
sed ... configure.ac: Esse comando é necessário para evitar instalar arquivos em "/usr/lib64".
--with-javaincludedir="$JAVA_HOME/include
-I$JAVA_HOME/include/linux"
: Se você tiver construído
o OpenJDK-23.0.2 em "/opt" e desejar
construir as ligações "JAVA", [então] é necessário
especificar o local dos arquivos de cabeçalho "JAVA" a
configurar. A chave do "configure" é projetado para somente
um diretório, mas dois diretórios precisam ser incluídos.
Isso é possível, no entanto, usando-se a chave "-I" dentro da
variável.
--with-webp
: Mesmo se libwebp-1.5.0 estiver instalado, ele não
é incluído na construção sem essa opção.
--with-smyrna
: Mesmo se as
dependências necessárias estiverem instaladas, o visualizador
gráfico interativo smyrna não é construído sem
essa opção.
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
.
é 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 |
|
decompõe gráficos nos componentes bi-conectados deles, imprimindo os componentes na saída padrão |
|
decompõe gráficos nos componentes conectados deles, imprimindo os componentes na saída padrão |
|
desenha gráficos usando um esquema circular |
|
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 |
|
(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 |
|
lê um fluxo de gráficos e para cada um calcula a distância de cada nó a partir do nó de origem |
|
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 |
|
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 |
|
realiza a coloração de arestas para eliminar a ambiguidade dos cruzamentos de arestas |
|
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" |
|
é 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 |
|
converte um gráfico especificado no formato "GML" em um gráfico no formato "GV" (anteriormente "DOT") |
|
converte um gráfico especificado no formato "GRAPHML" em um gráfico no formato "GV" (anteriormente "DOT") |
|
converte um gráfico especificado no formato "GV" para um gráfico no formato "GML" |
|
converte um gráfico especificado no formato "GV" para um gráfico no formato "GXL" |
|
é 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 |
|
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 |
|
gera uma variedade de gráficos abstratos simples e estruturados regularmente |
|
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" |
|
é uma linha tubular para executar o "gvmap" |
|
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 |
|
é 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 |
|
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 |
|
converte entre gráficos representados em "GXL" e na linguagem "GV" |
|
converte uma matriz esparsa do formato "Matrix Market" em um gráfico no formato "GV" (anteriormente "DOT") |
|
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 |
|
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 |
|
desenha gráficos agrupados. Toma qualquer gráfico no formato "DOT" como entrada |
|
desenha gráficos agrupados usando um esquema quadrado de mapa de árvore. Toma qualquer gráfico no formato "DOT" como entrada |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
é 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 |
|
é 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 |
|
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 |
|
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 |
|
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 |
|
contém funções para encontrar o caminho mais curto entre dois pontos em um polígono simples |
|
fornece suporte para analisar e desanalisar operações gráficas especificadas pela linguagem "xdot" |
O pacote GTK-Doc contém um documentador de código. Isso é útil para extrair comentários especialmente formatados a partir do código para criar a documentação da API. Esse pacote é opcional; se não estiver instalado, [então] os pacotes não construirão a documentação. Isso não significa que você não terá nenhuma documentação. Se GTK-Doc não estiver disponível, [então] o processo de instalação copiará qualquer documentação pré-construída para seu sistema.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/gtk-doc/1.34/gtk-doc-1.34.0.tar.xz
Soma de verificação MD5 da transferência: f0e7385ba25eddb6ce0953e8cf63d1bf
Tamanho da transferência: 484 KB
Espaço em disco estimado exigido: 14 MB (com testes)
Tempo de construção estimado: 0,2 UPC (com testes)
docbook-xml-4.5, docbook-xsl-nons-1.79.2, GLib-2.82.5, itstool-2.0.7, libxslt-1.1.42 e Pygments-2.19.1
Para testes: dblatex ou fop-2.10 (suporte a PDF XML), Which-2.23 e módulos Python lxml-5.3.1, parameterized e yelp-tools
Os módulos opcionais "Python" acima podem ser facilmente instalados com o comando pip3.
Instale GTK-Doc executando os seguintes comandos:
mkdir -p build && cd build && meson setup --prefix=/usr --buildtype=release .. && ninja
A suíte de teste travará se o pacote (ou uma versão anterior) ainda não estiver instalado.
Agora, como o(a) usuário(a) root
:
ninja install
Para testar os resultados, emita: ninja test. Alguns testes falharão dependendo dos pacotes instalados opcionalmente.
Highlight é um utilitário que converte o código-fonte em texto formatado com realce de sintaxe.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): http://www.andre-simon.de/zip/highlight-4.15.tar.bz2
Soma de verificação MD5 da transferência: fd16041ffc8945ef6c4c07dbf83c541c
Tamanho da transferência: 1,4 MB
Espaço em disco estimado exigido: 25 MB (com GUI)
Tempo de construção estimado: 0,3 UPC (Usando paralelismo=4; com GUI)
Qt-6.8.2 (para construir a estrutura GUI de retaguarda)
Para consistência, não comprima páginas de manual.
sed -i '/GZIP/s/^/#/' makefile
Para construir Highlight execute o seguinte comando:
make
Para construir a estrutura GUI do qt6, execute o seguinte comando:
make doc_dir=/usr/share/doc/highlight-4.15/ gui
Esse pacote não vem com uma suíte de teste.
Para instalar Highlight,
execute o seguinte comando como o(a) usuário(a) root
:
make doc_dir=/usr/share/doc/highlight-4.15/ install
Para instalar o aplicativo "GUI", execute o seguinte comando
como o(a) usuário(a) root
:
make install-gui
doc_dir=/usr/share/doc/highlight-4.15/
:
instala a documentação do highlight em um diretório
versionado. Esse parâmetro também é necessário para
make gui, pois
o valor dele seria rigidamente codificado no executável GUI.
Observe que a “/” à direita é necessária.
ibus é um barramento de entrada inteligente. É uma nova estrutura essencial de suporte de entrada para o sistema operacional Linux. Ele fornece uma interface de usuário de método de entrada amigável e com todos os recursos.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/ibus/ibus/archive/1.5.31/ibus-1.5.31.tar.gz
Soma de verificação MD5 da transferência: 3d685af1010d871bb858dc8a8aabb5c4
Tamanho da transferência: 1,5 MB
Espaço em disco estimado exigido: 55 MB (adicionar 1 MB para os testes)
Tempo de construção estimado: 0,3 UPC (Usando paralelismo=4; adicionar 1,0 UPC para testes)
Base de dados de caracteres "Unicode": https://www.unicode.org/Public/zipped/16.0.0/UCD.zip
ISO Codes-4.17.0 e Vala-0.56.17
DConf-0.40.0, GLib-2.82.5 (com GObject Introspection), GTK-3.24.48, GTK-4.16.12 e libnotify-0.8.4
GTK-Doc-1.34.0 (para gerar documentação da API), D-Bus Python-1.3.2 e PyGObject-3.50.0 (ambos para construir a biblioteca de suporte a Python), libxkbcommon-1.8.0, Wayland-1.23.0 (ambos para construir os programas de suporte a Wayland), EmojiOne e libdbusmenu
Primeiro, instale a base de dados de caracteres Unicode como
o(a) usuário(a) root
:
mkdir -p /usr/share/unicode/ucd && unzip -o ../UCD.zip -d /usr/share/unicode/ucd
Corrija um problema com entradas de esquema obsoletas:
sed -e 's@/desktop/ibus@/org/freedesktop/ibus@g' \ -i data/dconf/org.freedesktop.ibus.gschema.xml
Se GTK-Doc-1.34.0 não estiver instalado, remova as referências a ele:
if ! [ -e /usr/bin/gtkdocize ]; then sed '/docs/d;/GTK_DOC/d' -i Makefile.am configure.ac fi
Instale ibus executando os seguintes comandos:
SAVE_DIST_FILES=1 NOCONFIGURE=1 ./autogen.sh && PYTHON=python3 \ ./configure --prefix=/usr \ --sysconfdir=/etc \ --disable-python2 \ --disable-appindicator \ --disable-gtk2 \ --disable-emoji-dict && make
Para testar os resultados, emita: make -k check. O teste chamado ibus-compose falha porque usa algumas localidades não instaladas no LFS. O teste chamado ibus-keypress falhará se executar em uma sessão do Wayland. O teste xkb-latin-layouts também é conhecido por falhar em alguns sistemas.
Agora, como o(a) usuário(a) root
:
make install
--disable-appindicator
: Essa
chave desabilita usar a libdbusmenu. Omita se você instalou a
dependência opcional.
--disable-emoji-dict
:
Essa chave desabilita o uso de dicionários de emoticons.
Omita se você instalou o pacote opcional.
--disable-gtk2
: Essa
chave remove a dependência do GTK+-2.
--disable-gtk4
: Essa chave
desabilita construir o immodule do GTK 4. Use-a se você não quiser instalar
o GTK 4.
--enable-python-library
: Essa
chave habilita construir a biblioteca de suporte do
Python. Use-a se você tiver
instalado os módulos opcionais do Python.
--enable-wayland
: Essa chave
habilita construir os programas de suporte do Wayland. Ela é habilitada
automaticamente se libxkbcommon-1.8.0 e Wayland-1.23.0 estiverem instalados.
NOCONFIGURE=1
: Impede que
autogen.sh
execute o conjunto de comandos sequenciais configure gerado. Nós
executaremos o conjunto de comandos sequenciais manualmente
em vez de depender do autogen.sh para executá-lo,
porque autogen.sh configuraria
-fsanitize=address
-fsanitize=leak
em CFLAGS
executando configure, mas essas opções
do compilador não são adequadas para uso produtivo e também
podem causar uma falha da construção.
PYTHON=python3
: Essa variável de
ambiente faz com que o conjunto de comandos sequenciais
configure
procure por Python 3. Use-o
se quiser construir a biblioteca de suporte do Python 3.
SAVE_DIST_FILES=1
: Essa variável
de ambiente faz com que o conjunto de comandos sequenciais
autogen.sh
salve alguns arquivos de cabeçalho pré gerados em vez de
sobrescrevê-los quando for executado. Isso evita falhas de
construção ao gerar ibusemojigen.h
.
--enable-gtk-doc
: Use esse
parâmetro se GTK-Doc estiver
instalado e você desejar reconstruir e instalar a
documentação da API.
Se o GTK+-3 estiver instalado e --disable-gtk3
não for usado, o módulo IM do
ibus para GTK+-3 será instalado. Como o(a) usuário(a)
root
, atualize um arquivo de
cache do GTK+-3, de forma que os aplicativos baseados em GTK
possam encontrar o módulo IM recém-instalado e usar o ibus
como um método de entrada:
gtk-query-immodules-3.0 --update-cache
O comando acima atualiza o arquivo de cache para GTK+-3. O GTK-4 não exige um arquivo de cache para módulos IM.
ImageMagick é uma coleção de ferramentas e bibliotecas para ler, escrever e manipular uma imagem em vários formatos de imagem. As operações de processamento de imagem estão disponíveis a partir da linha de comando. Ligações para "Perl" e "C++" também estão disponíveis.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.imagemagick.org/archive/releases/ImageMagick-7.1.1-43.tar.xz
Soma de verificação MD5 da transferência: 007f3006dc48fbd9d6a5da6dbdf3c5c2
Tamanho da transferência: 10 MB
Espaço em disco estimado exigido: 192 MB, 45 MB instalado (com dependências típicas; adicionar 10 MB para verificações)
Tempo de construção estimado: 0,9 UPC (com dependências típicas; adicionar 0,7 UPC para verificações, ambos usando paralelismo=4)
Os lançamentos de fonte do ImageMagick são atualizados frequentemente e a versão mostrada acima possivelmente não mais esteja disponível a partir dos locais de transferência. Você pode baixar uma versão mais recente e usar as instruções existentes do BLFS para instalá-la. As chances são de que funcione bem, mas isso não foi testado pela equipe do BLFS. Se a versão do pacote mostrada acima não estiver disponível a partir dos locais mostrados acima, você pode baixá-la a partir do servidor de pacotes do BLFS na Oregon State University: https://ftp.osuosl.org/pub/blfs/conglomeration/ImageMagick/.
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.
7zip-24.09 (LZMA), Clang proveniente de LLVM-19.1.7, Cups-2.4.11, cURL-8.12.1, FFmpeg-7.1, fftw-3.3.10, SANE-1.2.1, Wget-1.25.0, xdg-utils-1.2.1, xterm-397, Dmalloc, Electric Fence e PGP ou GnuPG-2.4.7 (você terá que fazer alguns ajustes para usar GnuPG), Profiles
jasper-4.2.4, Little CMS-2.17, libgxps-0.3.2, libjpeg-turbo-3.0.1, libjxl-0.11.1, libpng-1.6.46, libraw-0.21.3 (para arquivos dng; precisa da libraw_r de camada segura), librsvg-2.59.2, libtiff-4.7.0, libwebp-1.5.0, OpenJPEG-2.5.3, Pango-1.56.1, DjVuLibre, FlashPIX (libfpx), FLIF, JBIG-KIT, libheif com libde265 (ambos necessários se converter imagens heic do macOS), libraqm, Liquid Rescale, OpenEXR e RALCGM (ou ralcgm)
Fontes Dejavu, ghostscript-10.04.0, Gimp-3.0.0-RC3, Graphviz-12.2.1, Inkscape-1.4, Blender, corefonts, GhostPCL, Gnuplot, POV-Ray e Radiance
Enscript-1.6.6, Potrace-1.16, texlive-20240312 (ou install-tl-unx) AutoTrace, Utilitários de Linha de Comandos GeoExpress, também conhecidos como Utilitários MrSID (pacote binário), hp2xx, libwmf, UniConvertor, e Utah Raster Toolkit (ou URT-3.1b)
Instale ImageMagick executando os seguintes comandos:
./configure --prefix=/usr \ --sysconfdir=/etc \ --enable-hdri \ --with-modules \ --with-perl \ --disable-static && make
Agora, como o(a) usuário(a) root
:
make DOCUMENTATION_PATH=/usr/share/doc/imagemagick-7.1.1 install
Para testar a instalação, emita: make check. Observe que os testes EPS, PS e PDF exigem um Ghostscript funcional. Um teste em 'make check' precisa da “Helvetica” originário de “Ghostscript Standard Fonts”, que são opcionalmente instaladas em ghostscript-10.04.0 - esse teste, e um outro, pode falhar, mas toda a validação ainda pode passar.
--enable-hdri
:
Permite construir uma versão de alta faixa dinâmica do
"ImageMagick".
--with-modules
:
Habilita o suporte para módulos carregáveis dinamicamente.
--with-perl
: Habilita
a construção e instalação do "PerlMagick".
--disable-static
:
Essa chave impede a instalação das versões estáticas das
bibliotecas.
--with-fftw
: Habilita suporte
para a biblioteca compartilhada FFTW.
--with-rsvg
: Habilita suporte
para a biblioteca librsvg.
--with-autotrace
: Habilita
suporte para a biblioteca Autotrace.
--with-wmf
: Habilita suporte para
a biblioteca libwmf.
--with-gvc
: Habilita suporte para
GraphViz.
--with-security-policy=open|limited|secure|websafe
:
Se você desejar impor uma política diferente da padrão
'open', veja-se www/security-policy.html
no fonte para
detalhes.
--with-windows-font-dir=
:
Essa opção especifica o diretório onde as fontes centrais do
Windows estão instaladas.
<Algum/Diretório>
--with-dejavu-font-dir=
:
Essa opção especifica o diretório onde as fontes "DejaVu"
estão instaladas.
<Algum/Diretório>
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.
anima uma sequência de imagens |
|
compara uma imagem com uma imagem reconstruída |
|
compõe várias imagens na imagem base fornecida |
|
processa um script "MSL" para criar uma imagem |
|
converte imagem(ns) de um formato para outro |
|
exibe uma imagem |
|
descreve o formato e as características de um arquivo de imagem |
|
captura uma janela do X |
|
converte entre formatos de imagem, bem como redimensiona uma imagem, desfoca, corta, descolore, pontilha, desenha, inverte, junta, reamostra e muito mais |
|
mostra informações a respeito das versões instaladas das bibliotecas do ImageMagick |
|
transforma uma imagem |
|
compõe várias imagens em uma nova imagem |
|
transmite um ou mais componentes de pixel de uma imagem ou parte da imagem para sua escolha de formatos de armazenamento |
|
permite ler, manipular e escrever um grande número
de formatos de arquivo de imagem usando a
biblioteca ImageMagick. Execute
make
no diretório |
|
fornece a API C para ImageMagick |
|
é a API C recomendada para ImageMagick. Ao contrário da API MagickCore, ela usa somente alguns tipos opacos |
|
fornece a API C++ para ImageMagick |
O pacote ISO Codes contém uma lista de nomes de países, idiomas e moedas e é usado como uma base de dados central para acessar esses dados.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://salsa.debian.org/iso-codes-team/iso-codes/-/archive/v4.17.0/iso-codes-v4.17.0.tar.gz
Soma de verificação MD5 da transferência: f4b460577728ba331e078ad8bd246c98
Tamanho da transferência: 15 MB
Espaço em disco estimado exigido: 97 MB
Tempo de construção estimado: 0,1 UPC (com testes)
Instale ISO Codes executando os seguintes comandos:
./configure --prefix=/usr && make
Para testar os resultados, emita: make check.
Agora, como o(a) usuário(a) root
:
make install LN_S='ln -sfn'
LN_S='ln -sfn'
: Essa
substituição garante os links simbólicos instalados recriados
corretamente caso nós estejamos atualizando ou reinstalando o
pacote. Ela é desnecessária, mas inofensiva, ao instalar o
pacote no sistema pela primeira vez.
O pacote lsof é útil para listar arquivos abertos para um dado aplicativo ou processo em execução.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/lsof-org/lsof/releases/download/4.99.0/lsof-4.99.0.tar.gz
Soma de verificação MD5 da transferência: 8c858675f6d6e137df9b4e26ad6c46e8
Tamanho da transferência: 1,1 MB
Espaço em disco estimado exigido: 14 MB (com testes)
Tempo de construção estimado: 0,1 UPC (com testes)
Nmap-7.95
(com um link simbólico nc apontando para
ncat em
/usr/bin
; usado em testes)
Para executar os testes, a seguinte opção deveria estar habilitada na configuração do núcleo:
General setup ---> [*] POSIX Message Queues [POSIX_MQUEUE]
Instale lsof executando os seguintes comandos:
./configure --prefix=/usr --disable-static && make
Os testes deveriam ser executados como o(a) usuário(a)
root
. Eles exigem que as
filas de mensagens "POSIX" estejam habilitadas no núcleo e
que Nmap-7.95 seja instalado com um link
simbólico /usr/bin/nc
apontando
para ncat.
make check
Agora, como o(a) usuário(a) root
:
make install
--disable-static
:
Essa chave impede a instalação das versões estáticas das
bibliotecas.
O pacote PIN-Entry contém uma coleção de caixas de diálogos simples de entrada de PIN ou frase secreta que utiliza o protocolo Assuan conforme descrito pelo projeto Egito. Os aplicativos PIN-Entry geralmente são invocados pelo processo de segundo plano gpg-agent, mas podem ser executados a partir da linha de comando também. Existem aplicativos para vários ambientes baseados em texto e GUI, incluindo interfaces projetadas para Ncurses (baseadas em texto) e para os kits comuns de ferramentas GTK e Qt.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.gnupg.org/ftp/gcrypt/pinentry/pinentry-1.3.1.tar.bz2
Soma de verificação MD5 da transferência: 89a6844fcf76d3c022ce6c6e930c17ee
Tamanho da transferência: 600 KB
Espaço em disco estimado exigido: 17 MB
Tempo de construção estimado: 0,3 UPC
libassuan-3.0.2 e libgpg-error-1.51
Emacs-30.1, FLTK-1.4.2, Gcr-4.3.1 (ou Gcr-3.41.2), KDE Frameworks-6.11.0, libsecret-0.21.6 e efl
Primeiro, torne configure consistente com fltk-1.4.1:
sed -i "/FLTK 1/s/3/4/" configure && sed -i '14462 s/1.3/1.4/' configure
Instale PIN-Entry executando os seguintes comandos:
./configure --prefix=/usr \ --enable-pinentry-tty && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
--enable-inside-emacs=yes/no
:
Padrão é "no".
--enable-pinentry-qt=yes/no
:
Padrão é "yes".
--enable-pinentry-gnome3=yes/no
:
O padrão é sim. Essa opção usa Gcr-4.3.1 (ou Gcr-3.41.2 se o primeiro não
estiver instalado) para a caixa de diálogo do pinentry.
--enable-pinentry-tty
: Padrão é
"maybe".
é um link simbólico para o aplicativo padrão PIN-Entry |
|
é um aplicativo auxiliar Ncurses do PIN-Entry baseado em texto |
|
é uma versão Emacs do aplicativo auxiliar do PIN-Entry |
|
é um aplicativo auxiliar FLTK do PIN-Entry |
|
é um aplicativo auxiliar GNOME-3 do PIN-Entry |
|
é um aplicativo auxiliar Qt4 ou 5 do PIN-Entry |
|
é um aplicativo auxiliar tty do PIN-Entry |
Screen é um multiplexador de terminal que executa vários processos, normalmente shells interativos, em um terminal físico baseado em caracteres. Cada terminal virtual emula um "DEC VT100" mais várias funções "ANSI X3.64" e "ISO 2022" e também fornece tradução configurável de entrada e saída, suporte a porta serial, registro configurável, suporte multiusuário(a) e muitas codificações de caracteres, incluindo "UTF-8". As sessões do "Screen" podem ser desanexadas e retomadas posteriormente em um terminal diferente.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://ftp.gnu.org/gnu/screen/screen-5.0.0.tar.gz
Soma de verificação MD5 da transferência: befc115989242ed4bceeff8d8bfeb4e6
Tamanho da transferência: 876 KB
Espaço em disco estimado exigido: 7,7 MB
Tempo de construção estimado: 0,1 UPC
Instale Screen executando os seguintes comandos:
./configure --prefix=/usr \ --infodir=/usr/share/info \ --mandir=/usr/share/man \ --disable-pam \ --enable-socket-dir=/run/screen \ --with-pty-group=5 \ --with-system_screenrc=/etc/screenrc && sed -i -e "s%/usr/local/etc/screenrc%/etc/screenrc%" {etc,doc}/* && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install && install -m 644 etc/etcscreenrc /etc/screenrc
--disable-pam
: Essa
opção remove uma dependência de construção de Linux-PAM.
Remova essa opção se você quiser suporte a PAM.
--enable-socket-dir=/run/screen
:
Essa opção coloca os soquetes por usuário(a) em um local
padrão.
--with-system_screenrc=/etc/screenrc
:
Essa opção coloca o arquivo global screenrc em /etc
.
--with-pty-group=5
:
Essa opção configura o "GID" para o valor usado pelo LFS.
sed -i -e "s%/usr/local/etc/screenrc%/etc/screenrc%" {etc,doc}/*: Esse comando corrige os arquivos de configuração e documentação para o local que é usado aqui para o arquivo global "screenrc".
O pacote Shared Mime Info contém uma base de dados "MIME". Isso permite atualizações centrais de informações "MIME" para todos os aplicativos de suporte.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://gitlab.freedesktop.org/xdg/shared-mime-info/-/archive/2.4/shared-mime-info-2.4.tar.gz
Soma de verificação MD5 da transferência: aac56db912b7b12a04fb0018e28f2f36
Tamanho da transferência: 7,5 MB
Espaço em disco estimado exigido: 26 MB (com testes)
Tempo de construção estimado: menos que 0,1 UPC (com testes)
Transferência opcional, exigida para executar a suíte de teste: https://anduin.linuxfromscratch.org/BLFS/xdgmime/xdgmime.tar.xz
Soma de verificação MD5 de "xdgmime": 7dfb4446705d345d3acd672024049e86
Instale Shared Mime Info executando os seguintes comandos:
Se deseja executar a suíte de teste, [então] você precisa
primeiro extrair o tarball xdgmime
no diretório atual e compilá-lo, de
forma que meson
consiga encontrá-lo:
tar -xf ../xdgmime.tar.xz && make -C xdgmime
Agora construa o pacote:
mkdir build && cd build && meson setup --prefix=/usr --buildtype=release -D update-mimedb=true .. && ninja
Se você tiver seguido as instruções acima para construir xdgmime, [então], para testar o resultado, emita ninja test.
Agora, como o(a) usuário(a) root
:
ninja install
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
-D
update-mimedb=true
: Esse parâmetro informa ao
sistema de construção para executar update-mime-database
durante a instalação. Caso contrário, isso precisa ser feito
manualmente para a finalidade de poder usar a base de dados
MIME.
O pacote Sharutils contém utilitários que conseguem criar arquivamentos "shell".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://ftp.gnu.org/gnu/sharutils/sharutils-4.15.2.tar.xz
Soma de verificação MD5 da transferência: 5975ce21da36491d7aa6dc2b0d9788e0
Tamanho da transferência: 1,1 MB
Espaço em disco estimado exigido: 22 MB (com a suíte de teste)
Tempo de construção estimado: 0,4 UPC (com a suíte de teste)
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
cria "arquivamentos shell" (ou arquivos "shar") que estão em formato de texto e conseguem ser enviados por correio |
|
desempacota um arquivo "shar" |
|
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" |
|
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 |
O pacote Tidy HTML5 contém uma ferramenta de linha de comando e bibliotecas usadas para ler arquivos "HTML", "XHTML" e "XML" e gravar marcações limpas. Ele detecta e corrige muitos erros comuns de codificação e se esforça para produzir marcação visualmente equivalente que seja compatível com "W3C" e compatível com a maioria dos navegadores.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/htacg/tidy-html5/archive/5.8.0/tidy-html5-5.8.0.tar.gz
Soma de verificação MD5 da transferência: 0f6c55ef651e258adbe5750f555af50f
Tamanho da transferência: 992 KB
Espaço em disco estimado exigido: 11 MB
Tempo de construção estimado: 0,2 UPC
Instale Tidy HTML5 executando os seguintes comandos:
cd build/cmake && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ -D BUILD_TAB2SPACE=ON \ ../.. && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install && rm -fv /usr/lib/libtidy.a && install -v -m755 tab2space /usr/bin
-D
CMAKE_BUILD_TYPE=Release
: Essa chave é usada para
construir a biblioteca de lançamento sem qualquer `assertiva`
de depuração no código.
-D
BUILD_TAB2SPACE=ON
: Essa chave é usada para
habilitar a construção do utilitário tab2space.
O utilitário time é um aplicativo que mede muitos dos recursos da "CPU", como tempo e memória, que outros aplicativos usam. A versão "GNU" pode formatar a saída gerada de maneiras arbitrárias usando uma sequência de caracteres de formato no estilo "printf" para incluir várias medições de recursos.
Embora o shell tenha um comando integrado que fornece funcionalidades semelhantes, esse utilitário é exigido pelo "LSB".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://ftp.gnu.org/gnu/time/time-1.9.tar.gz
Soma de verificação MD5 da transferência: d2356e0fe1c0b85285d83c6b2ad51b5f
Tamanho da transferência: 584 KB
Espaço em disco estimado exigido: 4,0 MB (com testes)
Tempo de construção estimado: 0,1 UPC (com testes)
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
O aplicativo tree é útil para exibir um conteúdo de árvore de dicionário, incluindo arquivos, diretórios e links.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://gitlab.com/OldManProgrammer/unix-tree/-/archive/2.2.1/unix-tree-2.2.1.tar.bz2
Soma de verificação MD5 da transferência: ada08dc80717b09e2041ac9276d7b854
Tamanho da transferência: 56 KB
Espaço em disco estimado exigido: 588 KB
Tempo de construção estimado: menos que 0,1 UPC
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
O pacote unixODBC é um subsistema "ODBC" ("Open DataBase Connectivity") de fonte aberto e um "SDK" "ODBC" para Linux, Mac OSX e UNIX. "ODBC" é uma especificação aberta para fornecer para os(as) desenvolvedores(as) de aplicativos uma "API" previsível com a qual acessar fontes de dados. As fontes de dados incluem servidores "SQL" opcionais e qualquer fonte de dados com um controlador "ODBC". unixODBC contém os seguintes componentes usados para auxiliar na manipulação de fontes de dados "ODBC": um gerenciador de controlador; uma biblioteca de instalador e ferramenta de linha de comando; ferramentas de linha de comando para ajudar a instalar um controlador e trabalhar com "SQL"; controladores e bibliotecas de configuração do controlador.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/lurcher/unixODBC/releases/download/2.3.12/unixODBC-2.3.12.tar.gz
Soma de verificação MD5 da transferência: d62167d85bcb459c200c0e4b5a63ee48
Tamanho da transferência: 1,7 MB
Espaço em disco estimado exigido: 28 MB
Tempo de construção estimado: 0,2 UPC (usando paralelismo = 4)
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
--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.
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.
é um utilitário usado para verificar uma biblioteca compartilhada para ver se ela pode ser carregada e se um dado símbolo existe nela |
|
é 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 |
|
fornece a mesma funcionalidade que o aplicativo isql |
|
é usado para descobrir detalhes a respeito da instalação do pacote unixODBC |
|
é um utilitário criado para instalar escritores de
script/"RPM". É uma interface de linha de comando
para funcionalidade chave na biblioteca
|
|
é um utilitário que tenta verificar se um controlador "ODBC" foi construído com tipos "SQLLEN" de 32 bits ou 64 bits |
O pacote xdg-dbus-proxy contém um proxy de filtragem para conexões D-Bus. Isso é útil para encaminhar dados dentro e fora de uma sandbox.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/flatpak/xdg-dbus-proxy/releases/download/0.1.6/xdg-dbus-proxy-0.1.6.tar.xz
Soma de verificação MD5 da transferência: 6d38a1b6bba80a3134270204558ba17e
Tamanho da transferência: 48 KB
Espaço em disco estimado exigido: 908 KB
Tempo de construção estimado: menos que 0,1 UPC
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
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
Xdg-user-dirs é uma ferramenta para ajudar a gerenciar diretórios de usuário(a) “bem conhecidos” como a pasta "desktop" e a pasta de música. Ele também lida com a localização (ou seja, a tradução) dos nomes dos arquivos.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://user-dirs.freedesktop.org/releases/xdg-user-dirs-0.18.tar.gz
Soma de verificação MD5 da transferência: dc7decea7ffb58cd067eff1fe1798cae
Tamanho da transferência: 267 KB
Espaço em disco estimado exigido: 3,0 MB
Tempo de construção estimado: menos que 0,1 UPC
docbook-xml-4.5, docbook-xsl-nons-1.79.2 e libxslt-1.1.42 (todos três para construir as páginas de manual)
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
--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.
Este capítulo contém principalmente utilitários de hardware. Ele também contém alguns aplicativos usados por outros aplicativos no livro para propósitos de instalação ou configuração.
7zip é um arquivador de arquivos que arquiva com altas taxas de compressão. Ele lida com os formatos 7z, ZIP, GZIP, Brotli, BZIP2, XZ, TAR, APM, ARJ, CAB, CHM, CPIO, CramFS, DEB, DMG, FAT, HFS, ISO, Lizard, LZ5, LZFSE, LZH, LZMA, LZMA2, MBR, MSI, MSLZ, NSIS, NTFS, RAR, RPM, SquashFS, UDF, VHD, WIM, XAR, Z e Zstd.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/ip7z/7zip/archive/24.09/7zip-24.09.tar.gz
Soma de verificação MD5 da transferência: 41d0d31a3b0e39a1cbd848c10574fb0b
Tamanho da transferência: 2,1 MB
Espaço em disco estimado exigido: 39 MB
Tempo de construção estimado: 2,3 UPC (com testes)
Instale 7zip executando os seguintes comandos:
for i in Bundles/{Alone,Alone7z,Format7zF,SFXCon} UI/Console; do make -C CPP/7zip/$i -f ../../cmpl_gcc.mak done
Esse pacote não tem uma suíte de teste.
Agora, como o(a) usuário(a) root
:
install -vDm755 CPP/7zip/Bundles/Alone{/b/g/7za,7z/b/g/7zr} \
CPP/7zip/Bundles/Format7zF/b/g/7z.so \
CPP/7zip/UI/Console/b/g/7z \
-t /usr/lib/7zip/ &&
install -vm755 CPP/7zip/Bundles/SFXCon/b/g/7zCon \
/usr/lib/7zip/7zCon.sfx &&
(for i in 7z 7za 7zr; do
cat > /usr/bin/$i << EOF || exit
#!/bin/sh
exec /usr/lib/7zip/$i "\$@"
EOF
chmod 755 /usr/bin/$i || exit
done) &&
cp -rv DOC -T /usr/share/doc/7zip-24.09
O pacote AccountsService fornece um conjunto de interfaces D-Bus para consulta e manipulação de informações da conta do(a) usuário(a) e uma implementação dessas interfaces baseada nos comandos usermod(8), useradd(8) e userdel(8).
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.freedesktop.org/software/accountsservice/accountsservice-23.13.9.tar.xz
Soma de verificação MD5 da transferência: 03dccfe1b306b7ca19743e86d118e64d
Tamanho da transferência: 621 KB
Espaço em disco estimado exigido: 9,8 MB (adicionar 0,5 MB para testes)
Tempo de construção estimado: menos que 0,1 UPC (com testes)
GLib-2.82.5 (com GObject Introspection), Systemd-257.3 (tempo de execução) e Vala-0.56.17
Primeiro, renomeie um diretório cuja presença impede o sistema de construção de executar se dbusmock-0.34.3 não estiver instalado:
mv tests/dbusmock{,-tests}
Em seguida, corrija um conjunto de comandos sequenciais de teste, de forma que o novo diretório seja encontrado e adapte-o para Python 3.12.0 ou posterior:
sed -e '/accounts_service\.py/s/dbusmock/dbusmock-tests/' \ -e 's/assertEquals/assertEqual/' \ -i tests/test-libaccountsservice.py
Corrija um teste que falha se a localidade en_IE.UTF-8
não estiver instalada:
sed -i '/^SIMULATED_SYSTEM_LOCALE/s/en_IE.UTF-8/en_HK.iso88591/' tests/test-daemon.py
Instale AccountsService executando os seguintes comandos:
mkdir build && cd build && meson setup .. \ --prefix=/usr \ --buildtype=release \ -D admin_group=adm
Agora adapte a cópia de mocklibc enviada para permitir construir a suíte de teste com GCC 14 ou posterior:
grep 'print_indent' ../subprojects/mocklibc-1.0/src/netgroup.c \ | sed 's/ {/;/' >> ../subprojects/mocklibc-1.0/src/netgroup.h && sed -i '1i#include <stdio.h>' \ ../subprojects/mocklibc-1.0/src/netgroup.h
Construa o pacote:
ninja
Para testar o pacote, emita ninja test.
Agora, como o(a) usuário(a) root
:
ninja install
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
-D admin_group=adm
:
Essa chave configura o grupo para contas de administrador(a).
-D docbook=true
: Essa chave
habilita construir a documentação da API da interface do
D-Bus (precisa do xmlto-0.0.29).
-D gtk_doc=true
: Essa chave
habilita construir a documentação da API da
libaccountsservice (precisa do GTK-Doc-1.34.0).
-D vapi=false
: Essa chave
desabilita construir as ligações vala. Use-a se você não
tiver instalado Vala-0.56.17.
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
/usr/libexec
)
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).
Alguns outros pacotes também podem lidar com alguns eventos
ACPI e possivelmente conflitem com esse pacote. Por
exemplo, Systemd-257.3
(leia-se a documentação para Handle*=
em logind.conf(5)
para detalhes) e UPower-1.90.7 (usado por muitos
ambientes de área de trabalho como GNOME, KDE e XFCE para
lidar com eventos ACPI). Se você tiver instalado tal pacote
e ele for suficiente para o teu caso de uso, esse pacote
provavelmente não é necessário. Se você realmente precisa
desse pacote, você precisa ser cuidadoso(a) ao configurá-lo
e aos outros pacotes que manuseiam eventos ACPI para evitar
conflitos. Notavelmente, Systemd-257.3 lida com alguns
eventos ACPI por padrão, de forma que o tratamento desses
eventos pelo Systemd-257.3
deveria ser desabilitado primeiro se manusear esses eventos
com acpid (novamente, leia-se logind.conf(5)
para detalhes).
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://downloads.sourceforge.net/acpid2/acpid-2.0.34.tar.xz
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
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
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-257.3 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 echoHandleLidSwitch=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.
Para iniciar o processo de segundo plano acpid na inicialização,
instale a unidade do "systemd" a partir do pacote blfs-systemd-units-20241211
executando o seguinte comando como o(a) usuário(a)
root
:
make install-acpid
Esse pacote usa ativação baseada em soquete e será iniciado quando algo precisar. Nenhum arquivo de unidade independente é fornecido para esse pacote.
é um aplicativo que escuta eventos "ACPI" e executa as regras que correspondem ao evento recebido |
|
é uma ferramenta simples que se conecta ao acpid e escuta os eventos |
|
é 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 |
O pacote at fornece execução diferida de tarefas e processamento em lote. Ele é exigido para conformidade com o Linux Standards Base (LSB).
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://anduin.linuxfromscratch.org/BLFS/at/at_3.2.5.orig.tar.gz
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
Um MTA
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
/etc/at.allow
e /etc/at.deny
determinam quem consegue
submeter tarefas via "at" ou "batch".
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
enfileira, examina ou deleta tarefas para execução posterior |
|
é o processo de segundo plano que executa tarefas enfileiradas para execução posterior |
|
lista as tarefas pendentes do(a) usuário(a), ou todas as tarefas, se superusuário(a) |
|
deleta tarefas, identificadas pelo número da tarefa delas |
|
executa tarefas enfileiradas para execução posterior |
|
é um script que executa comandos quando os níveis de carga do sistema permitem |
Autofs controla a operação dos processos de segundo plano "automount". Os processos de segundo plano "automount" montam automaticamente sistemas de arquivos quando eles são acessados e os desmontam depois de um período de inatividade. Isso é feito baseado em um conjunto de mapas pré-configurados.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.kernel.org/pub/linux/daemons/autofs/v5/autofs-5.1.9.tar.xz
Soma de verificação MD5 da transferência: 06fb59a03c82364a0d788435b6853d70
Tamanho da transferência: 328 KB
Espaço em disco estimado exigido: 5,7 MB
Tempo de construção estimado: menos que 0,1 UPC
libtirpc-1.3.6 e rpcsvc-proto-1.4.4
nfs-utils-2.8.2, libnsl-2.0.1, libxml2-2.13.6, MIT Kerberos V5-1.21.3, OpenLDAP-2.6.9 (somente o cliente) e Cyrus SASL-2.1.28
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.
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
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
--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.3.
/etc/sysconfig/autofs.conf
,
/etc/autofs/auto.master
,
/etc/autofs/auto.misc
e
/etc/autofs/auto.net
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.
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.
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
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.
O pacote BlueZ contém a pilha de protocolos "Bluetooth" para Linux.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.kernel.org/pub/linux/bluetooth/bluez-5.79.tar.xz
Soma de verificação MD5 da transferência: a22d25ca60e89d211ac154dca3a84e61
Tamanho da transferência: 2,3 MB
Espaço em disco estimado exigido: 170 MB (com testes)
Tempo de construção estimado: 0,5 UPC (usando paralelismo = 4; com os testes)
dbus-1.16.0, GLib-2.82.5 e libical-3.0.19
docutils-0.21.2 (para gerar páginas de manual)
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]
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, instale a documentação da API como o(a)
usuário(a) root
:
install -v -dm755 /usr/share/doc/bluez-5.79 && install -v -m644 doc/*.txt /usr/share/doc/bluez-5.79
--disable-manpages
:
Essa chave desabilita a geração de páginas de manual por
causa da dependência de 'rst2man' em "docutils". Remova essa
chave se você tiver docutils-0.21.2 instalado e desejar
gerar as páginas de manual.
--enable-library
:
Essa chave habilita construir a biblioteca de compatibilidade
BlueZ 4 que é exigida por
alguns aplicativos.
ln -svf ../libexec/bluetooth/bluetoothd /usr/sbin: Esse comando torna o acesso ao processo de segundo plano "bluetooth" mais conveniente.
/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
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
Systemd iniciará o processo de segundo plano "Bluetooth" somente quando um dispositivo "bluetooth" for detectado no sistema.
é um utilitário de configuração do Bluetooth |
|
é o aplicativo interativo de controle do "Bluetooth" |
|
é o processo de segundo plano "Bluetooth" |
|
fornece acesso à infraestrutura do monitor do subsistema "Bluetooth" para leitura de rastreamentos "HCI" |
|
é usado para converter um arquivo necessário para dispositivos "Broadcom" para o formato "hcd" ("Broadcom bluetooth firmware") |
|
é usado para enviar uma solicitação de eco "L2CAP" para o endereço "MAC" do "Bluetooth" fornecido em notação hexadecimal com pontos |
|
é um aplicativo de teste "L2CAP" |
|
é usado para testar as comunicações "RFCOMM" na pilha "Bluetooth" |
|
contém as funções de "API" do BlueZ 4 |
Bubblewrap é uma implementação "setuid" de espaços de nome de usuário(a), ou ambiente de testagem, que fornece acesso a um subconjunto de recursos do núcleo de espaço de nome de usuário(a). O "Bubblewrap" permite que os processos de propriedade do(a) usuário(a) executem em um ambiente isolado com acesso limitado ao sistema de arquivos subjacente.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/containers/bubblewrap/releases/download/v0.11.0/bubblewrap-0.11.0.tar.xz
Soma de verificação MD5 da transferência: 630eec714ea04729efd116ea85a715a3
Tamanho da transferência: 116 KB
Espaço em disco estimado exigido: 3,2 MB (com testes)
Tempo de construção estimado: menos que 0,1 UPC (com testes)
libxslt-1.1.42 (para gerar páginas de manual), libseccomp-2.6.0 (construído com ligações Python, para testes), bash-completion e SELinux
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]
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
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
Colord é um serviço de sistema que facilita gerenciar, instalar e a gerar perfis de cores. Ele é usado principalmente pelo GNOME Color Manager para integração do sistema e uso quando nenhum(a) usuário(a) está logado.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.freedesktop.org/software/colord/releases/colord-1.4.7.tar.xz
Soma de verificação MD5 da transferência: 94bd795efa1931a34990345e4ac439a8
Tamanho da transferência: 1,7 MB
Espaço em disco estimado exigido: 18 MB (com testes)
Tempo de construção estimado: 0,4 UPC (com testes)
dbus-1.16.0, GLib-2.82.5 (GObject Introspection recomendado), Little CMS-2.17, libgudev-238, libgusb-0.4.9, Polkit-126 e SQLite-3.49.1
Systemd-257.3 (tempo de execução) e Vala-0.56.17
gnome-desktop-44.1 e colord-gtk-0.3.1 (para construir as ferramentas de exemplo), docbook-xml-5.0, docbook-xsl-ns-1.79.2, e libxslt-1.1.42 (para construir as páginas de manual), GTK-Doc-1.34.0, SANE-1.2.1, ArgyllCMS e Bash Completion
Primeiro, corrija um uso indevido da API do sqlite, causante de uma falha de teste e possível quebra ao tempo da execução bem como uma configuração de proteção do systemd excessivamente restrita, causante do serviço do systemd falhar para iniciar:
patch -Np1 -i ../colord-1.4.7-upstream_fixes-1.patch
Deveria existir um(a) usuário(a) e um grupo dedicados para
assumir o controle do processo de segundo plano "colord" após
ele ser iniciado. Emita os seguintes comandos como o(a)
usuário(a) root
:
groupadd -g 71 colord && useradd -c "Proprietário(a) do Processo de Segundo Plano de Cores" -d /var/lib/colord -u 71 \ -g colord -s /bin/false colord
Instale Colord executando os seguintes comandos:
mkdir build && cd build && meson setup .. \ --prefix=/usr \ --buildtype=release \ -D daemon_user=colord \ -D vapi=true \ -D systemd=true \ -D libcolordcompat=true \ -D argyllcms_sensor=false \ -D bash_completion=false \ -D docs=false \ -D man=false && ninja
Se docbook-xml-5.0, docbook-xsl-ns-1.79.2 e libxslt-1.1.42 estiverem instalados, construa as páginas de manual:
sed -e '/class="manual"/i<refmiscinfo class="source">colord</refmiscinfo>' \ -i ../man/*.xml && meson configure -D man=true && ninja
Agora, como o(a) usuário(a) root
:
ninja install
Para testar os resultados, emita: ninja test. Um teste,
colord-self-test-daemon
,
falhará se o pacote já estiver instalado. A suíte de teste
precisa ser executada com o "D-Bus Daemon" abrangente ao
sistema em execução.
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
-D
daemon_user=colord
: Essa chave é usada de modo
que o processo de segundo plano colord executará como um(a)
usuário(a) sem privilégios em vez do(a) usuário(a)
root
.
-D vapi=true
: Essa
chave habilita construir as ligações Vala. Remova se você não tiver Vala-0.56.17
instalado.
-D systemd=true
: Essa
chave habilita a instalação do serviço systemd.
-D
libcolordcompat=true
: Essa chave habilita
construir uma biblioteca de compatibilidade para pacotes mais
antigos que usam Colord.
-D
argyllcms_sensor=false
: Essa chave desabilita o
controlador do sensor ArgLLCMS. Omita se você tiver ArgyllCMS
instalado e desejar usá-lo.
-D
bash_completion=false
: Essa chave desabilita o
suporte ao Completação do Bash para aplicativos Colord.
-D docs=false
: Essa
chave desabilita a construção de documentação. Omita se você
tiver GTK-Doc-1.34.0 disponível.
é a "Color Manager Profile Creation Tool" |
|
é uma ferramenta usada para corrigir metadados em perfis "ICC" |
|
despeja o conteúdo de um perfil "ICC" como texto legível por humanos |
|
é a "Color Manager Testing Tool" |
|
é um aplicativo em modo texto que te permite interagir com o "colord" na linha de comando |
|
contém as funções da "API" do Colord |
|
contém funções de API herdadas para compatibilidade com aplicativos mais antigos |
|
contém funções internas de "API" para os aplicativos incluídos com o Colord |
|
contém um colorímetro simples de hardware de exibição |
O pacote cpio contém ferramentas para arquivamento.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://ftp.gnu.org/gnu/cpio/cpio-2.15.tar.bz2
Soma de verificação MD5 da transferência: 3394d444ca1905ea56c94b628b706a0b
Tamanho da transferência: 1,6 MB
Espaço em disco estimado exigido: 21 MB (com testes e documentos)
Tempo de construção estimado: 0,3 UPC (com testes e documentos)
Instale cpio executando os seguintes comandos:
./configure --prefix=/usr \ --enable-mt \ --with-rmt=/usr/libexec/rmt && make && makeinfo --html -o doc/html doc/cpio.texi && makeinfo --html --no-split -o doc/cpio.html doc/cpio.texi && makeinfo --plaintext -o doc/cpio.txt doc/cpio.texi
Se você tiver texlive-20240312 instalado e desejar criar documentação em "PDF" ou "Postscript", [então] emita um ou ambos os seguintes comandos:
make -C doc pdf && make -C doc ps
Para testar os resultados, emita: make check.
Agora, como o(a) usuário(a) root
:
make install && install -v -m755 -d /usr/share/doc/cpio-2.15/html && install -v -m644 doc/html/* \ /usr/share/doc/cpio-2.15/html && install -v -m644 doc/cpio.{html,txt} \ /usr/share/doc/cpio-2.15
Se você criou documentação em "PDF" ou "Postscript", [então]
instale-a emitindo os seguintes comandos como o(a) usuário(a)
root
:
install -v -m644 doc/cpio.{pdf,ps,dvi} \ /usr/share/doc/cpio-2.15
--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.
O pacote cups-pk-helper contém um auxiliar PolicyKit usado para configurar o Cups com privilégios refinados.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.freedesktop.org/software/cups-pk-helper/releases/cups-pk-helper-0.2.7.tar.xz
Soma de verificação MD5 da transferência: 0cdadec9ea8f88b7fc7af8ca206da2bd
Tamanho da transferência: 56 KB
Espaço em disco estimado exigido: 5,3 MB
Tempo de construção estimado: 0,1 UPC
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
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.3.
Transferência (HTTP): https://dbus.freedesktop.org/releases/dbus/dbus-1.16.0.tar.xz
Soma de verificação MD5 da transferência: 66bfcf1f42d4ebc634ca558d14335e92
Tamanho da transferência: 1,3 MB
Espaço em disco estimado exigido: 110 MB (adicionar 6 MB para os testes)
Tempo de construção estimado: 0,2 UPC (adicionar 0,4 UPC para testes)
Bibliotecas do Xorg (para aplicativo dbus-launch)
Systemd-257.3 (tempo de execução, para registrar serviços iniciados pelo processo de segundo plano de sessão D-Bus como serviços de usuário(a) do systemd); Para os testes: D-Bus Python-1.3.2, PyGObject-3.50.0 e Valgrind-3.24.0; para documentação: Doxygen-1.13.2, xmlto-0.0.29, Ducktype e Yelp Tools
Instale o D-Bus executando os seguintes comandos (você possivelmente deseje revisar o arquivo meson_options.txt primeiro e adicionar quaisquer opções adicionais desejadas à linha setup do meson abaixo):
mkdir build && cd build && meson setup --prefix=/usr \ --buildtype=release \ --wrap-mode=nofallback \ .. && ninja
Veja-se abaixo para instruções de teste.
Agora, como o(a) usuário(a) root
:
ninja install
Se você estiver usando uma instalação "DESTDIR", [então] o
dbus-daemon-launch-helper
precisa ser corrigido posteriormente. Emita, como usuário(a)
root
:
chown -v root:messagebus /usr/libexec/dbus-daemon-launch-helper && chmod -v 4750 /usr/libexec/dbus-daemon-launch-helper
Finalmente, ainda como o(a) usuário(a) root
, renomeie o diretório da
documentação (ele só existe se as dependências opcionais
forem satisfeitas para pelo menos um formato de documentação)
para torná-lo versionado:
if [ -e /usr/share/doc/dbus ]; then rm -rf /usr/share/doc/dbus-1.16.0 && mv -v /usr/share/doc/dbus{,-1.16.0} fi
Muitos testes estão desabilitados, a menos que D-Bus Python-1.3.2 e PyGObject-3.50.0 tenham sido instalados. Eles precisam ser executados como um(a) usuário(a) sem privilégios a partir de uma sessão local com endereço de barramento. Para executar os testes padrão, emita ninja test.
Se você deseja executar os testes de regressão de unidade, o meson exige parâmetros adicionais os quais expõem funcionalidades adicionais nos binários que não se destinam a serem usadas em uma construção de produção do D-Bus. Se você gostaria de executar os testes, emita os seguintes comandos (para os testes, você não precisa construir os documentos):
meson configure -D asserts=true -D intrusive_tests=true && ninja test
--wrap-mode=nofallback
: Essa
chave impede meson de usar substitutos
de subprojeto para quaisquer declarações de dependência nos
arquivos de construção, impedindo-o de baixar quaisquer
dependências opcionais que não estejam instaladas no sistema.
-D
intrusive_tests=true
: Constrói partes extras do
código para suportar todos os testes. Não use em uma
construção de produção.
-D asserts=true
:
Habilita código de depuração para executar asserções para
declarações normalmente presumidas serem verdadeiras. Isso
evita um aviso de que '-D
asserts=true
' por si só é útil somente para
perfilamento e pode não fornecer resultados verdadeiros para
todos os testes, mas adiciona a própria OBSERVAÇÃO dele de
que isso não deveria ser usado em uma construção de produção.
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
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
Uma lista dos arquivos instalados, juntamente com as descrições curtas deles, pode ser encontrada em ../../../../lfs/view/12.3-systemd/chapter08/dbus.html#contents-dbus.
O pacote Fcron contém um agendador periódico de comandos que visa a substituir o Vixie Cron.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): http://fcron.free.fr/archives/fcron-3.2.1.src.tar.gz
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
Um MTA, editor de texto (o padrão é vi originário do pacote Vim-9.1.1166), Linux-PAM-1.7.0 e DocBook-utils-0.6.14
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.
--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=
para usar um comando de
comunicador diferente.
</caminho/para/comando
"MTA">
--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=
:
Essa chave te permite configurar o editor padrão de texto.
</caminho/para/editor>
--with-dsssl-dir=
:
Possivelmente seja usado se você tiver DocBook-utils-0.6.14 instalado.
Atualmente, as folhas de estilo "dsssl" estão localizadas em
</caminho/para/folhas_de_estilo_dsssl>
/usr/share/sgml/docbook/dsssl-stylesheets-1.79
.
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.
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
é o processo de segundo plano de agendamento |
|
é uma ferramenta de usuário(a) destinada a interagir com um processo de segundo plano fcron em execução |
|
instrui o fcron a reler as tabelas do Fcron |
|
é um aplicativo usado para instalar, editar, listar e remover as tabelas usadas pelo fcron |
O pacote GPM (processo de segundo plano "General Purpose Mouse") contém um servidor de mouse para o console e xterm. Ele não apenas fornece suporte para recortar e colar em geral, mas o componente de biblioteca dele é usado por vários softwares, como Links, para fornecer suporte de mouse para o aplicativo. É útil em áreas de trabalho, especialmente se seguir as instruções do (Beyond) Linux From Scratch; frequentemente é muito mais fácil (e menos sujeito a erros) recortar e colar entre duas janelas do console que digitar tudo manualmente!
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://anduin.linuxfromscratch.org/BLFS/gpm/gpm-1.20.7.tar.bz2
Soma de verificação MD5 da transferência: bf84143905a6a903dbd4d4b911a2a2b8
Tamanho da transferência: 820 KB
Espaço em disco estimado exigido: 7,4 MB
Tempo de construção estimado: 0,1 UPC
texlive-20240312 (para documentação)
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]
Instale GPM executando os seguintes comandos:
patch -Np1 -i ../gpm-1.20.7-consolidated-1.patch && ./autogen.sh && ./configure --prefix=/usr --sysconfdir=/etc ac_cv_path_emacs=no && make
Se texlive-20240312 estiver instalado, construa o manual do GPM como formatos dvi, ps e pdf:
make -C doc gpm.{dvi,ps} && dvipdfm doc/gpm.dvi -o doc/gpm.pdf
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install && install-info --dir-file=/usr/share/info/dir \ /usr/share/info/gpm.info && rm -fv /usr/lib/libgpm.a && ln -sfv libgpm.so.2.1.0 /usr/lib/libgpm.so && install -v -m644 conf/gpm-root.conf /etc && install -v -m755 -d /usr/share/doc/gpm-1.20.7/support && install -v -m644 doc/support/* \ /usr/share/doc/gpm-1.20.7/support && install -v -m644 doc/{FAQ,HACK_GPM,README*} \ /usr/share/doc/gpm-1.20.7
Se texlive-20240312 estiver
instalado e você tiver construído o manual do GPM como
formatos dvi, ps e pdf, instale-os como o(a) usuário(a)
root
:
install -vm644 doc/gpm.{dvi,ps,pdf} /usr/share/doc/gpm-1.20.7
./autogen.sh: Esse comando cria o ausente script configure.
ac_cv_path_emacs=no
:
Essa variável soluciona um problema que faz com que o pacote
falhe para construir com Emacs-30.1 instalado. Ela também suprime as
instalações de alguns “arquivos de suporte do Emacs”
fornecidos com o GPM. Esses arquivos estão bastante
desatualizados e deveriam ser substituídos pelo suporte GPM
integrado ao Emacs-30.1. Se precisar usar Emacs-30.1 no console do
Linux com suporte para mouse, você deveria instalar (ou
reinstalar) Emacs-30.1 depois do GPM.
install-info
...: Esse pacote instala um arquivo
.info
, mas não atualiza o
arquivo dir
do sistema. Esse
comando faz a atualização.
ln -v -sfn libgpm.so.2.1.0
/usr/lib/libgpm.so: Esse comando é usado para
criar (ou atualizar) o link simbólico .so
para a biblioteca.
Para iniciar o processo de segundo plano gpm na inicialização,
instale a unidade do "systemd" a partir do pacote blfs-systemd-units-20241211
executando o seguinte comando como o(a) usuário(a)
root
:
make install-gpm
/etc/gpm-root.conf
e
~/.gpm-root
: Os arquivos de
configuração gpm-root padrão e de
usuário(a) individual.
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
é um mecanismo de segurança usado para desabilitar o "buffer" de colagem |
|
é um aplicativo simples que informa os botões do mouse sendo pressionados e liberados |
|
é um aplicativo simples que informa as coordenadas do mouse |
|
é usado para informar as versões da biblioteca GPM e do servidor |
|
é um utilitário de recortar e colar e servidor de mouse para consoles virtuais |
|
é um manuseador padrão para gpm. É usado para desenhar menus na janela raiz |
|
é 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 |
|
é um aplicativo para informar eventos de mouse |
|
é uma ferramenta para determinar o tipo de mouse e o dispositivo ao qual está conectado |
|
contém as funções da "API" para acessar o processo de segundo plano GPM |
O pacote Hdparm contém um utilitário que é útil para obter informações e controlar controladores "ATA"/"IDE" e unidades rígidas. Permite aumentar o desempenho e, às vezes, aumentar a estabilidade.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
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.
Transferência (HTTP): https://downloads.sourceforge.net/hdparm/hdparm-9.65.tar.gz
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
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
O pacote hwdata contém dados atuais de PCI e ID do fornecedor.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/vcrhonek/hwdata/archive/v0.392/hwdata-0.392.tar.gz
Soma de verificação MD5 da transferência: 14cee546bfc1f6cb83c4339df1cbe4b9
Tamanho da transferência: 2,4 MB
Espaço em disco estimado exigido: 9,6 MB
Tempo de construção estimado: menos que 0,1 UPC
Instale hwdata executando os seguintes comandos:
./configure --prefix=/usr --disable-blacklist
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
O pacote LSB-Tools inclui ferramentas para conformidade com "Linux Standards Base" (LSB).
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/lfs-book/LSB-Tools/releases/download/v0.12/LSB-Tools-0.12.tar.gz
Soma de verificação MD5 da transferência: 1e6ef8cdfddb55035a6c36757e6313f9
Tamanho da transferência: 20 KB
Espaço em disco estimado exigido: 412 KB
Tempo de construção estimado: menos que 0,1 UPC
Instale LSB-Tools executando os seguintes comandos:
make
Agora, como o(a) usuário(a) root
:
make install
Remova um arquivo que não deveria ser instalado, como o(a)
usuário(a) root
:
rm /usr/sbin/lsbinstall
Remova dois conjuntos de comandos sequenciais que não servem para nada em um sistema systemd:
rm /usr/sbin/{install,remove}_initd
A configuração para esse pacote foi feita no LFS.
O arquivo /etc/lsb-release
já
deveria existir. Certifique-se de que a entrada
DISTRIB_CODENAME tenha sido configurada corretamente.
O pacote lm-sensors fornece suporte de espaço de usuário(a) para os controladores de monitoramento de hardware no núcleo Linux. Isso é útil para monitorar a temperatura da CPU e para ajustar o desempenho de alguns hardwares (como ventiladores de resfriamento).
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/lm-sensors/lm-sensors/archive/V3-6-0/lm-sensors-3-6-0.tar.gz
Soma de verificação MD5 da transferência: f60e47b5eb50bbeed48a9f43bb08dd5e
Tamanho da transferência: 268 KB
Espaço em disco estimado exigido: 2,6 MB
Tempo de construção estimado: menos que 0,1 UPC
RRDtool (exigido para construir o aplicativo sensord) e dmidecode (tempo de execução)
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.
Instale lm-sensors executando os seguintes comandos:
make PREFIX=/usr \ BUILD_STATIC_LIB=0 \ MANDIR=/usr/share/man \ EXLDFLAGS=
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make PREFIX=/usr \ BUILD_STATIC_LIB=0 \ MANDIR=/usr/share/man install && install -v -m755 -d /usr/share/doc/lm-sensors-3-6-0 && cp -rv README INSTALL doc/* \ /usr/share/doc/lm-sensors-3-6-0
BUILD_STATIC_LIB=0
:
Esse parâmetro desabilita a compilação e instalação da versão
estática da libsensors
.
EXLDFLAGS=
: Esse
parâmetro desabilita codificar rigidamente caminhos de
pesquisa de biblioteca (rpath) nos arquivos binários
executáveis e bibliotecas compartilhadas. Esse pacote não
precisa do rpath para uma instalação no local padrão, e o
rpath às vezes pode causar efeitos indesejados ou até mesmo
problemas de segurança.
PROG_EXTRA=sensord
: Esse
parâmetro habilita compilar o sensord, um processo de
segundo plano que consegue monitorar teu sistema em
intervalos regulares. Compilar sensord exige RRDtool.
Certifique-se de instalar o RRDtool em /usr
executando make prefix=/usr ao
construí-lo. Caso contrário, lm-sensors não o encontrará
facilmente.
é um conjunto de comandos sequenciais de shell para uso com lm-sensors. Ele lê a configuração dele a partir de um arquivo (/etc/sensors3.conf por padrão), então calcula velocidades do ventilador a partir das temperaturas e configura as correspondentes saídas geradas de PWM para os valores computados |
|
é 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) |
|
é um pequeno aplicativo auxiliar para configurar registros visíveis por meio do barramento "ISA" |
|
testa as saídas geradas de modulação por largura de pulso ("PWM") dos sensores e configura o controle do ventilador |
|
imprime as leituras atuais de todos os "chips" sensores |
|
é um script Perl para converter arquivos de configuração de versão 2 do lm-sensors para funcionar com a versão 3 |
|
é um conjunto de comandos sequenciais Perl que te guiará ao longo do
processo de varredura do teu sistema em busca de
vários chips de monitoramento de hardware
(sensores) suportados pela |
|
(opcional) é um processo de segundo plano que consegue ser usado para registrar periodicamente as leituras do sensor |
|
contém as funções de API do lm-sensors |
O pacote logrotate permite rotação, compressão, remoção e envio automático de arquivos de registro.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/logrotate/logrotate/releases/download/3.22.0/logrotate-3.22.0.tar.xz
Soma de verificação MD5 da transferência: 2386501a53ff086f44eeada2b27d50b8
Tamanho da transferência: 172 KB
Espaço em disco estimado exigido: 2,6 MB (adicionar 38 MB para os testes)
Tempo de construção estimado: menos que 0,1 UPC (adicionar 0,1 UPC para testes)
Um MTA (tempo de execução)
Instale logrotate executando o seguinte comando:
./configure --prefix=/usr && make
Para testar os resultados, emita: make test. Dois testes falham se um MTA não estiver instalado.
Agora, como o(a) usuário(a) root
:
make install
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
MC (Midnight Commander) é um gerenciador de arquivos em tela cheia em modo texto e shell visual. Ele fornece uma interface clara, amigável e um tanto protegida para um sistema Unix, ao mesmo tempo que torna muitas operações frequentes de arquivos mais eficientes e preserva todo o poder do prompt de comando.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): http://ftp.midnight-commander.org/mc-4.8.33.tar.xz
Soma de verificação MD5 da transferência: b3596c1f092b9822a6cd9c9a1aef8dde
Tamanho da transferência: 2,3 MB
Espaço em disco estimado exigido: 71 MB (adicionar 97 MB para os testes)
Tempo de construção estimado: 0,3 UPC (usando paralelismo=4; adicionar 0,1 UPC para testes)
Doxygen-1.13.2, GPM-1.20.7, Graphviz-12.2.1, libarchive-3.7.7, libssh2-1.11.1, pcre2-10.45, Ruby-3.4.2, um ambiente gráfico e Zip-3.0
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
--sysconfdir=/etc
:
Essa chave coloca o diretório global de configuração em
/etc
.
--enable-charset
:
Essa chave adiciona suporte ao mcedit para edição de
arquivos em codificações diferentes daquela implícita na
localidade atual.
--with-screen=ncurses
: Use isso
se você não tiver slang-2.3.3 instalado.
--with-search-engine=pcre2
: Use
essa chave se você preferisse usar pcre2-10.45 em vez de GLib
para o mecanismo de pesquisa integrado.
O diretório ~/.config/mc
e o
conteúdo dele são criados quando você inicia o mc pela primeira vez.
Então você pode editar o arquivo principal de configuração
~/.config/mc/ini
manualmente
ou por meio do shell do MC. Consulte-se a página de manual do
mc(1) para
detalhes.
ModemManager fornece uma API unificada de alto nível para comunicação com modems de banda larga móvel, independentemente do protocolo usado para comunicação com o dispositivo real.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.freedesktop.org/software/ModemManager/ModemManager-1.18.12.tar.xz
Soma de verificação MD5 da transferência: 9f014dfc59f1bd8bc230bb2c2974d104
Tamanho da transferência: 2,5 MB
Espaço em disco estimado exigido: 155 MB (com testes)
Tempo de construção estimado: 0,7 UPC (Usando paralelismo=4; com testes)
GLib-2.82.5 (com GObject Introspection), libmbim-1.26.4, libqmi-1.30.8, Polkit-126 e Vala-0.56.17
Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/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
--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.
O pacote Notification Daemon contém um processo de segundo plano que exibe notificações "pop-up" passivas.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/notification-daemon/3.20/notification-daemon-3.20.0.tar.xz
Soma de verificação MD5 da transferência: 2de7f4075352831f1d98d8851b642124
Tamanho da transferência: 336 KB
Espaço em disco estimado exigido: 4,1 MB
Tempo de construção estimado: menos que 0,1 UPC
GTK-3.24.48 e libcanberra-0.30 (Construído com suporte a GTK-3.24.48).
Instale o Notification Daemon executando os seguintes comandos:
./configure --prefix=/usr \ --sysconfdir=/etc \ --disable-static && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
Você consegue testar o processo de segundo plano de notificação com o comando notify-send:
pgrep -l notification-da && notify-send -i info Information "Olá ${USER}, Isto é um Teste"
O comando pgrep -l notification-da é adicionado para garantir que é o processo de segundo plano desse pacote que está executando, e não outro, por exemplo. o processo de segundo plano oriundo de xfce4-notifyd-0.9.7.
pax é um utilitário de arquivamento criado pelo "POSIX" e definido pelo padrão "POSIX.1-2001". Em vez de resolver as opções incompatíveis que surgiram entre tar e cpio, juntamente com as implementações deles em várias versões do UNIX, o "IEEE" projetou um novo utilitário de arquivamento. O nome “pax” é um acrônimo para "Portable Archive Exchange". Além disso, “pax” significa “paz” em latim, de forma que o nome dele implica que deve criar a paz entre os(as) apoiadores(as) do formato tar e do cpio. A invocação de comandos e a estrutura de comandos são, de certa forma, uma unificação de ambos, tar e cpio.
Tem sido exigido que o pax esteja presente em sistemas compatíveis com a "LSB" desde a versão 3.0 da "LSB".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): http://www.mirbsd.org/MirOS/dist/mir/cpio/paxmirabilis-20240817.tgz
Soma de verificação MD5 da transferência: 9a723154a4201a0892b7ff815b6753b5
Tamanho da transferência: 180 KB
Espaço em disco estimado exigido: 1,6 MB
Tempo de construção estimado: menos que 0,1 UPC
Instale o "pax" executando os seguintes comandos:.
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
:
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
O pacote PCI Utils contém um conjunto de aplicativos para listar dispositivos "PCI", inspecionar a situação deles e configurar os registros de configuração deles.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://mj.ucw.cz/download/linux/pci/pciutils-3.13.0.tar.gz
Soma de verificação MD5 da transferência: 1edb865de7a2de84e67508911010091b
Tamanho da transferência: 660 KB
Espaço em disco estimado exigido: 4,9 MB
Tempo de construção estimado: menos que 0,1 UPC
hwdata-0.392 (tempo de execução)
Evite a instalação do arquivo pci.ids
para evitar um conflito com o
pacote hwdata-0.392:
sed -r '/INSTALL/{/PCI_IDS|update-pciids /d; s/update-pciids.8//}' \ -i Makefile
Instale o PCI Utils executando os seguintes comandos:
make PREFIX=/usr \ SHAREDIR=/usr/share/hwdata \ SHARED=yes
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make PREFIX=/usr \ SHAREDIR=/usr/share/hwdata \ SHARED=yes \ install install-lib && chmod -v 755 /usr/lib/libpci.so
Em seguida, instale o pacote hwdata-0.392 para o arquivo
pci.ids
.
SHARED=yes
: Esse
parâmetro habilita a construção da biblioteca compartilhada
em vez da estática.
é um utilitário para exibir informações relativas a todos os barramentos "PCI" no sistema e todos os dispositivos conectados a eles |
|
é um utilitário para gerenciar links PCIe |
|
é um utilitário para consultar e configurar dispositivos "PCI" |
|
é uma biblioteca que permite que aplicativos acessem o subsistema PCI |
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.
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.3.
Transferência (HTTP): https://pm-utils.freedesktop.org/releases/pm-utils-1.4.1.tar.gz
Soma de verificação MD5 da transferência: 1742a556089c36c3a89eb1b957da5a60
Tamanho da transferência: 204 KB
Espaço em disco estimado exigido: 1,6 MB
Tempo de construção estimado: 0,1 UPC
xmlto-0.0.29 (para gerar páginas de manual)
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.
Primeiro, corrija vários defeitos e algumas incompatibilidades com núcleos mais recentes:
patch -Np1 -i ../pm-utils-1.4.1-bugfixes-1.patch
Instale os Utilitários de Gerenciamento de Eletricidade executando os seguintes comandos:
./configure --prefix=/usr \ --sysconfdir=/etc \ --docdir=/usr/share/doc/pm-utils-1.4.1 && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
Se você não tiver xmlto-0.0.29 instalado, [então] copie as
páginas de manual pré geradas, como o(a) usuário(a)
root
:
install -v -m644 man/*.1 /usr/share/man/man1 && install -v -m644 man/*.8 /usr/share/man/man8 && ln -sv pm-action.8 /usr/share/man/man8/pm-suspend.8 && ln -sv pm-action.8 /usr/share/man/man8/pm-hibernate.8 && ln -sv pm-action.8 /usr/share/man/man8/pm-suspend-hybrid.8
A funcionalidade de suspensão ou retomada pode ser facilmente
modificada instalando-se arquivos no diretório /etc/pm/sleep.d
. Esses arquivos, conhecidos
como ganchos, são executados quando o sistema for colocado em
um estado de suspensão ou retomado. Os ganchos padrão estão
localizados em /usr/lib/pm-utils/sleep.d
, e os ganchos de
usuário(a) deveriam ser colocados em /etc/pm/sleep.d
. Veja-se a página de manual
pm-action(8)
para mais informações.
Para a finalidade de usar a hibernação com GRUB e uma partição de troca, você
precisa adicionar o parâmetro do núcleo resume=
(por
exemplo, partição_de_troca
resume=/dev/sda1
) à
linha do núcleo no arquivo de configuração /boot/grub/grub.cfg
.
é um script que determina se o sistema está funcionando com eletricidade "CA" (em vez de uma bateria) |
|
é 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) |
|
é um script que verifica se os recursos de gerenciamento de eletricidade, como suspensão e hibernação, são suportados |
|
é um script que coloca o computador no modo de economia de eletricidade (baixo consumo de eletricidade) |
|
é 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") |
|
é 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) |
O pacote Power-profiles-daemon fornece um programa que permite a modificação do estado de eletricidade/comportamento do sistema. Isso é usado em muitos laptops e pode ser usado por um ambiente de área de trabalho para ativar a economia de eletricidade ou controladores de desempenho da CPU por meio do dbus. Em outros sistemas, o Power-profiles-daemon pode ser usado como uma forma simplificada para configurar o controladores da CPU para a finalidade de aumentar o desempenho do sistema ao custo do uso de eletricidade.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://gitlab.freedesktop.org/upower/power-profiles-daemon/-/archive/0.30/power-profiles-daemon-0.30.tar.gz
Soma de verificação MD5 da transferência: b72dbed7159cbeff972e9a20ddcc7388
Tamanho da transferência: 84 KB
Espaço em disco estimado exigido: 1,6 MB
Tempo de construção estimado: menos que 0,1 UPC (com testes)
Polkit-126, PyGObject-3.50.0 (pycairo não é necessário) e UPower-1.90.7
GTK-Doc-1.34.0, Os restos são para os testes, dbusmock-0.34.3, umockdev-0.19.1, isort e mccabe
Habilite as seguintes opções na configuração do núcleo e recompile o núcleo se necessário:
Power management and ACPI options ---> CPU Frequency scaling ---> -*- CPU Frequency scaling [CPU_FREQ] -*- 'performance' governor [CPU_FREQ_GOV_PERFORMANCE] <*/M> 'powersave' governor [CPU_FREQ_GOV_POWERSAVE] # Select if CPU is Intel: [ /*] Intel P state control [X86_INTEL_PSTATE] # Select if CPU is AMD: [ /*] AMD Processor P-State driver [X86_AMD_PSTATE] Device Drivers ---> # Some drivers under this submenu provide "platform profile" support # and power-profiles-daemon can take advantage from platform profiles; # select a driver if suitable for your platform: [ /*] X86 Platform Specific Device Drivers ---> [X86_PLATFORM_DEVICES]
Selecione as sub opções apropriadas que aparecem quando as opções acima são selecionadas. Tanto quanto possível, o esquema deveria ser o mesmo dos menus de configuração do núcleo.
Instale Power-profiles-daemon executando os seguintes comandos:
mkdir build && cd build && meson setup \ --prefix=/usr \ --buildtype=release \ -D gtk_doc=false \ -D tests=false \ .. && ninja
Se você tiver instalado as dependências externas, para testar os resultados, emita: ninja test.
Agora, como o(a) usuário(a) root
:
ninja install
-D gtk_doc=false
:
Impede construir a documentação. Remova isso se você tiver o
GTK-Doc instalado e desejar
construir a documentação.
-D tests=false
:
Impede construir os testes porque eles não podem ser
executados dentro dos limites do BLFS. Remova isso se você
tiver instalado as dependências externas e desejar executar
os testes.
Para iniciar o power-profiles-daemon na inicialização,
habilite o serviço de systemd que foi instalado executando
o seguinte comando como o(a) usuário(a) root
:
systemctl enable power-profiles-daemon
Para listar todos os perfis de eletricidade suportados, emita:
powerprofilesctl
Para ativar um perfil de eletricidade (por exemplo
performance
),
emita:
powerprofilesctl set performance
Alguns ambientes de área de trabalho (por exemplo GNOME e KDE) também fornecem uma interface gráfica para interagir com power-profiles-daemon e ativar um perfil de eletricidade.
O perfil de eletricidade ativado é automaticamente
armazenado em /var/lib/power-profiles-daemon/state.ini
e power-profiles-daemon irá
lê-lo e ativá-lo novamente na próxima inicialização se
a unidade do Systemd estiver
habilitada como acima.
Raptor é uma biblioteca C que fornece um conjunto de analisadores e serializadores que geram triplos "Resource Description Framework" ("RDF").
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.librdf.org/source/raptor2-2.0.16.tar.gz
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)
Primeiro, corrija uma incompatibilidade com libxml2-2.11.x:
sed -i 's/20627/20627 \&\& LIBXML_VERSION < 21100/' src/raptor_libxml.c
Instale Raptor executando os seguintes comandos:
./configure --prefix=/usr --disable-static && make
Para testar os resultados, emita: make check. Vários dos testes de "XML" possivelmente falhem.
Agora, como o(a) usuário(a) root
:
make install
--disable-static
:
Essa chave impede a instalação das versões estáticas das
bibliotecas.
--with-icu-config=/usr/bin/icu-config
: Use
essa chave se você tiver instalado o ICU-76.1 e desejar construir o
Raptor com suporte a ele.
Rasqal é uma biblioteca C que lida com sintaxes de linguagem de consulta "Resource Description Framework" ("RDF"), construção de consultas e execução de consultas que retornam resultados como ligações, booleanos, gráficos/triplos "RDF" ou sintaxes.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.librdf.org/source/rasqal-0.9.33.tar.gz
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)
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
--disable-static
:
Essa chave impede a instalação das versões estáticas das
bibliotecas.
Redland é um conjunto de bibliotecas C de software livre que fornece suporte para o "Resource Description Framework" ("RDF").
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.librdf.org/source/redland-1.0.17.tar.gz
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
SQLite-3.49.1, MariaDB-11.4.5 ou MySQL, PostgreSQL-17.4, Berkeley DB (obsoleto) libiodbc, virtuoso e 3store
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
--disable-static
:
Essa chave impede a instalação das versões estáticas das
bibliotecas.
O pacote sg3_utils contém utilitários de baixo nível para dispositivos que usam um conjunto de comandos "SCSI". Além dos dispositivos de interface paralela "SCSI" ("SPI"), o conjunto de comandos "SCSI" é usado por dispositivos "ATAPI" (CD/DVDs e fitas), dispositivos de armazenamento em massa "USB", discos de Canal de Fibra, dispositivos de armazenamento "IEEE" 1394 (que usam o protocolo "SBP"), Dispositivos "SAS", "iSCSI" e "FCoE" (entre outros).
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://sg.danny.cz/sg/p/sg3_utils-1.48.tar.xz
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
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
--disable-static
:
Essa chave impede a instalação das versões estáticas das
bibliotecas.
adiciona ou remove dispositivos "SCSI" sem precisar reinicializar |
|
acessa informações de nível de registro "SCSI" do Linux |
|
verifica o suporte do dispositivo "SCSI" para comandos obrigatórios |
|
faz o comando "SCSI READ CAPACITY" em discos |
|
faz o "SCSI TEST UNIT READY" em dispositivos |
|
verifica o suporte de tradução "SCSI" para "ATA" (SAT) do dispositivo |
|
inicia um ou mais discos "SCSI" |
|
interrompe um ou mais discos "SCSI" |
|
busca a temperatura de um dispositivo "SCSI" |
|
realiza um comando "SCSI BACKGROUND CONTROL" em um dispositivo para realizar "operações avançadas em segundo plano" |
|
envia o comando "SCSI COMPARE AND WRITE" para o dispositivo |
|
envia o comando "SCSI RECEIVE COPY RESULTS" (relacionado ao "XCOPY") |
|
copia dados de e para arquivos e dispositivos. Especializado para dispositivos que entendem o conjunto de comandos "SCSI" |
|
pega dados de detecção "SCSI" em binário ou como uma sequência de bytes hexadecimais "ASCII" e os decodifica |
|
muda a titularidade de propriedade de um "LUN" de outro processador de serviço para este |
|
formata ou redimensiona um disco "SCSI" (talvez mude o tamanho de bloco dele) |
|
envia um comando "SCSI GET CONFIGURATION" ("MMC-4 +") |
|
envia um comando "SCSI GET PHYSICAL ELEMENT STATUS" para um dispositivo |
|
envia o comando "SCSI GET LBA STATUS" |
|
envia um comando "SCSI REPORT" ou "SET IDENTIFYING INFORMATION" |
|
acessa informações da página de modo para um dispositivo "SCSI" (ou "ATAPI") |
|
envia um comando "SCSI INQUIRY" ou "ATA IDENTIFY (PACKET) DEVICE" e gera a resposta |
|
acessa páginas de registro com o comando "SCSI LOG SENSE" |
|
envia o comando "SCSI REPORT LUNS" |
|
exibe o mapeamento entre o "sg" do Linux e outros dispositivos "SCSI" |
|
mapeia um arquivo especial para um dispositivo "SCSI" genérico (sg) (ou vice-versa) |
|
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" |
|
lê páginas de modo com o comando "SCSI MODE SENSE" |
|
informa informações relativas a comandos suportados "SCSI" ou funções de gerenciamento de tarefas |
|
copia dados de e para arquivos e dispositivos. Especializado para dispositivos que entendem o conjunto de comandos "SCSI" |
|
envia um comando "SCSI PERSISTENT RESERVE (IN ou OUT)" para manipular registros e reservas |
|
envia um comando "SCSI PREVENT ALLOW MEDIUM REMOVAL" |
|
envia um comando "SCSI" arbitrário para um dispositivo |
|
lê dados usando o comando "SCSI READ BUFFER" |
|
exibe ou modifica a página do controlador redundante "RDAC" |
|
lê blocos de dados continuamente a partir do mesmo deslocamento |
|
realiza um comando "SCSI READ ATTRIBUTE" em um dispositivo |
|
envia um comando "SCSI READ BLOCK LIMITS" |
|
envia um comando "SCSI READ BUFFER" |
|
envia um comando "SCSI READ CAPACITY" |
|
envia um comando "SCSI READ LONG" |
|
envia um comando "SCSI REASSIGN BLOCKS" |
|
envia um comando "SCSI REPORT REFERRALS" |
|
envia um comando "SCSI REPORT PROVISIONING INITIALIZATION PATTERN" |
|
envia um comando "SCSI REPORT ZONES" |
|
envia um ou mais comandos "SCSI REQUEST SENSE" |
|
envia uma redefinição de dispositivo, destino, barramento ou anfitrião "SCSI"; ou verifica o estado de redefinição |
|
envia um comando "SCSI RESET WRITE POINTER" |
|
envia um comando "SCSI READ MEDIA SERIAL NUMBER" |
|
envia um comando "SCSI REPORT TARGET PORT GROUPS" |
|
busca informações de situação a partir de um dispositivo "SCSI" "Accessed Fault-Tolerant Enclosure" ("SAF-TE") |
|
envia um comando "SCSI SANITIZE" |
|
envia um comando "ATA IDENTIFY (PACKET) DEVICE" por meio de uma camada de tradução "SCSI" para "ATA" ("SAT") |
|
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" |
|
envia um comando "ATA READ LOG EXT" por meio de uma camada de tradução "SCSI" para "ATA" ("SAT") |
|
envia um comando "ATA SET FEATURES" por meio de uma camada de tradução "SCSI" para "ATA" ("SAT") |
|
faz uma varredura de dispositivos "sg" (ou dados dispositivos "SCSI"/"ATAPI"/"ATA") e imprime os resultados |
|
realiza um comando "SCSI SEEK" ou "PRE-FETCH" em um dispositivo e o cache dele |
|
realiza um comando "SCSI SEND DIAGNOSTIC" |
|
envia controles e busca a situação atual a partir de um dispositivo "SCSI Enclosure Services" ("SES") |
|
envia microcódigo para um gabinete "SCSI" |
|
envia um comando "SCSI START STOP UNIT" para iniciar, parar, carregar ou ejetar o meio |
|
envia um comando "SCSI SET TARGET PORT GROUPS" |
|
realiza um comando "SCSI STREAM CONTROL" ou "GET STREAM STATUS" em um dispositivo para abrir ou fechar um fluxo de Entrada/Saída |
|
envia um comando "SCSI" para sincronizar o cache |
|
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 |
|
informa ou configura o carimbo de tempo em um dispositivo "SCSI" |
|
envia um ou mais comandos "SCSI TEST UNIT READY" |
|
envia um comando "SCSI UNMAP" |
|
invoca comando(s) "SCSI VERIFY" em um dispositivo de bloco |
|
busca páginas de dados vitais do produto ("VPD") usando um comando "SCSI INQUIRY" |
|
envia um comando "SCSI WRITE BUFFER" |
|
envia um comando "SCSI WRITE LONG" |
|
envia um comando "SCSI WRITE SAME" |
|
envia um comando "SCSI WRITE AND VERIFY" |
|
realiza comandos "SCSI WRITE" em um dispositivo |
|
escreve páginas de modo |
|
copia dados de e para arquivos e dispositivos usando "SCSI EXTENDED COPY" ("XCOPY") |
|
realiza comandos "SCSI ZONE" em um dispositivo, tais como "OPEN", "CLOSE", "FINISH" ou "SEQUENTIALIZE" |
|
contém as funções de "API" do sg3_utils |
O pacote sysmond (pronuncia-se sys-mon-d) é a parte de processo de segundo plano do aplicativo cliente/servidor sysmond/sysmon3 que monitora valores do sistema, incluindo uso de CPU, uso de memória e temperaturas do sistema em uma janela de tela compacta.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/lfs-book/sysmond/releases/download/sysmond-1.0.0/sysmond-1.0.0.tar.xz
Soma de verificação MD5 da transferência: ef7bf090b835c3265e9b602b4a297fcd
Tamanho da transferência: 22 KB
Espaço em disco estimado exigido: 196 KB
Tempo de construção estimado: menos que 0,1 UPC
Existem muitos dispositivos de hardware que detectam temperaturas. As leituras de temperatura são atualizadas por controladores do núcleo que suportam dispositivos específicos. Para determinar quais dispositivos estão presentes em um sistema, o pacote lm-sensors-3-6-0 tem um conjunto de comandos sequenciais Perl, sensors-detect, que consegue procurar por dispositivos específicos que estão no sistema atual.
Depois dos dispositivos sensores serem conhecidos, o controlador apropriado de núcleo precisa ser habilitado. Em muitos casos, mas não em todos, os controladores apropriados serão selecionados por padrão. Os parâmetros de configuração do núcleo estão localizados em:
Device Drivers ---> Networking options ---> [*] Hardware Monitoring support ---> [CONFIG_HWMON]
Na maioria dos casos, pelo menos o sensor de temperatura Intel Core/Core2/Atom (SENSORS_CORETEMP) deveria estar habilitado para sistemas baseados em Intel ou CONFIG_SENSORS_K10TEMP (AMD) deveria estar habilitado para sistemas baseados em AMD.
Instale sysmond executando os seguintes comandos:
make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
Para iniciar o processo de segundo plano sysmond na inicialização,
instale a unidade do systemd a partir do pacote blfs-systemd-units-20241211
executando o seguinte comando como o(a) usuário(a)
root
:
make install-sysmond
O pacote sysmon3 (pronuncia-se sys-mon-3) é a parte cliente do aplicativo cliente/servidor sysmond/sysmon3 que monitora valores do sistema, incluindo uso de CPU, uso de memória e temperaturas do sistema em uma janela de tela compacta. Múltiplas instâncias do sysmon3 podem ser executadas em um sistema para monitorar valores em sistemas diferentes.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/lfs-book/sysmon3/releases/download/sysmon3-3.0.1/sysmon3-3.0.1.tar.xz
Soma de verificação MD5 da transferência: d1f4cb9490c2c068ee2e2b3bd23db1ea
Tamanho da transferência: 32 KB
Espaço em disco estimado exigido: 1,3 MB
Tempo de construção estimado: 0,3 UPC
Qt-6.8.2 (ou qt5)
sysmond-1.0.0 (tempo de execução no sistema a ser monitorado)
Instale sysmon3 executando os seguintes comandos:
qmake sysmon3.pro && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
install -vm755 sysmon3 /usr/bin
$HOME/.config/LinuxFromScratch/<sistema
monitorado>.conf
Os arquivos de configuração são criados em tempo de execução para cada sistema sendo monitorado. Eles normalmente não são atualizados manualmente, mas são gerenciados pelas pequenas engenhocas de configuração do programa.
Quando da primeira execução, o programa solicita o sistema a ser monitorado. Depois de testar se a comunicação com o servidor está satisfatória e se o nome do servidor está salvo, a janela principal iniciará. Depois da configuração inicial, a pequena engenhoca de configuração pode ser contornada passando-se o nome do servidor como um argumento para o programa.
O programa é projetado para ocupar o mínimo de espaço na tela, de forma que, por padrão, ele não tem um quadro. O quadro pode ser ligado e desligado com Ctrl-F. Isso pode ser útil para colocar a janela no local desejado. Depois do posicionamento inicial, o local será salvo no arquivo de configuração para a próxima vez que o programa for iniciado.
Um menu curto de operação é exibido com um clique direito do mouse na janela principal. Pequenas engenhocas de configuração são exibidas com F1.
O pacote Sysstat contém utilitários para monitorar o desempenho do sistema e a atividade de uso. Sysstat contém o utilitário sar, comum a muitos "Unixes" comerciais, e ferramentas que você pode agendar via "cron" para coletar e historizar dados de desempenho e atividades.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://sysstat.github.io/sysstat-packages/sysstat-12.7.7.tar.xz
Soma de verificação MD5 da transferência: 2643a0734d0d3c6dc48f04372a7bf59c
Tamanho da transferência: 912 KB
Espaço em disco estimado exigido: 31 MB
Tempo de construção estimado: 0,1 UPC
Instale Sysstat executando os seguintes comandos:
sa_lib_dir=/usr/lib/sa \ sa_dir=/var/log/sa \ conf_dir=/etc/sysstat \ ./configure --prefix=/usr \ --disable-file-attr && make
Esse pacote não vem com uma suíte de teste funcional.
Agora, como o(a) usuário(a) root
:
make install
Instale as unidades e temporizadores 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-rotate.service /usr/lib/systemd/system/sysstat-rotate.service && install -v -m644 cron/sysstat-rotate.timer /usr/lib/systemd/system/sysstat-rotate.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 uma das unidades do systemd executando o seguinte
comando como o(a) usuário(a) root
:
sed -i "/^Also=/d" /usr/lib/systemd/system/sysstat.service
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
.
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.
Na inicialização do sistema, uma mensagem LINUX RESTART
precisa ser inserida no arquivo diário de dados para
reinicializar os contadores do núcleo. Isso pode ser
automatizado habilitando-se a unidade do systemd instalada
anteriormente executando-se o seguinte comando como o(a)
usuário(a) root
:
systemctl enable sysstat
Além de colocar a mensagem LINUX RESTART no arquivo diário de dados, existem temporizadores do systemd instalados que capturarão automaticamente as informações exigidas de histórico para o comando sar.
exibe estatísticas relativas a operações de leitura e escrita em sistemas de arquivos "CIFS" |
|
informa estatísticas de "CPU" e estatísticas de entrada/saída para dispositivos e partições |
|
escreve atividades para cada processador disponível |
|
é usado para monitorar tarefas individuais atualmente sendo gerenciadas pelo núcleo Linux |
|
é 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 |
|
é usado para exibir o conteúdo dos contadores de atividades cumulativas eleitos no sistema operacional |
|
é usado para monitorar a atividade de unidades de fita conectadas a um sistema |
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.3.
Transferência (HTTP): https://github.com/systemd/systemd/archive/v257.3/systemd-257.3.tar.gz
Soma de verificação MD5 da transferência: 8e4fc90c7aead651fa5c50bd1b34abc2
Tamanho da transferência: 15 MB
Espaço em disco estimado exigido: 353 MB (com testes)
Tempo de construção estimado: 1,4 UPC (com testes usando quatro núcleos)
Linux-PAM-1.7.0 não é estritamente
exigido 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.7.0 é exigido para eles.
Todos os pacotes no livro BLFS com dependência do
systemd esperam que ele
tenha sido reconstruído com Linux-PAM-1.7.0.
Linux-PAM-1.7.0 e Polkit-126 (tempo de execução)
btrfs-progs-6.13, cURL-8.12.1, cryptsetup-2.7.5, git-2.48.1, GnuTLS-3.8.9, iptables-1.8.11, libarchive-3.7.7, libgcrypt-1.11.0, libidn2-2.3.7, libpwquality-1.4.5, libseccomp-2.6.0, libxkbcommon-1.8.0, make-ca-1.15, p11-kit-0.25.5, pcre2-10.45, qemu-9.2.2, qrencode-4.1.1, rsync-3.4.1, sphinx-8.2.1, Valgrind-3.24.0, zsh-5.9 (para as completações do zsh), AppArmor, audit-userspace, bash-completion, jekyll, kexec-tools, libbpf, libdw, libfido2, libmicrohttpd, pefile, pyelftools, quota-tools, rpm, SELinux, systemtap, tpm2-tss e Xen
docbook-xml-4.5, docbook-xsl-nons-1.79.2, libxslt-1.1.42 e lxml-5.3.1 (para construir o índice das páginas de manual do "systemd")
Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/Logind
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 \ -D default-dnssec=no \ -D firstboot=false \ -D install-tests=false \ -D ldconfig=false \ -D man=auto \ -D sysusers=false \ -D rpmmacrosdir=no \ -D homed=disabled \ -D userdb=false \ -D mode=release \ -D pam=enabled \ -D pamconfdir=/etc/pam.d \ -D dev-kvm-mode=0660 \ -D nobody-group=nogroup \ -D sysupdate=disabled \ -D ukify=disabled \ -D docdir=/usr/share/doc/systemd-257.3 && ninja
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. O teste chamado
test-stat-util
é conhecido por
falhar 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
--buildtype=release
:
Especifique 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
pamconfdir=/etc/pam.d
: Força os arquivos do PAM
serem instalados em /etc/pam.d em vez de /usr/lib/pam.d.
-D userdb=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, substitua "false" por "true" no
comando meson acima.
-D homed=disabled
:
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 que você tenha
cryptsetup-2.7.5 e libpwquality-1.4.5 instalados e, em
seguida, mude “disabled” para “enabled” no
comando meson
setup acima.
-D ukify=disabled
:
Remove um conjunto de comandos sequenciais para combinar um
núcleo, um initramfs e uma linha de comando do núcleo, etc.,
em um aplicativo UEFI que pode ser carregado pelo firmware
UEFI para iniciar o núcleo incorporado Linux. Ele não é
necessário para inicializar um sistema BLFS com UEFI se
seguir-se
Usando o GRUB para Configurar o Processo de Inicialização com
UEFI. E ele exige o módulo pefile do Python em tempo de execução,
de forma que, se estiver habilitado, mas pefile não estiver instalado, um teste
para ele falhará na suíte de teste. Para habilitar o
systemd-ukify,
instale o módulo pefile e,
então, mude “disabled” para “enabled” no
comando meson
setup acima.
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"# Inicia adições do Systemd session required pam_loginuid.so session optional pam_systemd.so # Termina adições do Systemd
EOF cat > /etc/pam.d/systemd-user << "EOF"# Inicia /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_loginuid.so session optional pam_keyinit.so force revoke session optional pam_systemd.so auth required pam_deny.so password required pam_deny.so # Termina /etc/pam.d/systemd-user
EOF
Como o(a) usuário(a) root
,
substitua o gerenciador systemd em execução (o
processo init)
pelo executável systemd recém-construído e
instalado:
systemctl daemon-reexec
Agora certifique-se de que Shadow-4.17.3 já tenha sido reconstruído com suporte Linux-PAM-1.7.0 primeiro, depois deslogue-se e logue-se novamente. Isso garantirá que a sessão de login em execução seja registrada com systemd-logind e que uma instância do systemd por usuário(a) esteja executando para cada usuário(a) titularizando uma sessão de login. Muitos pacotes do BLFS que listam o systemd como uma dependência precisam da integração do systemd-logind e (ou) de uma instância do systemd em execução por usuário(a) em tempo de execução.
Se estiver atualizando a partir de uma versão anterior do systemd e um initrd for usado para inicialização do sistema, você deveria gerar um novo initrd antes de reinicializar o sistema.
Uma lista dos arquivos instalados, juntamente com as descrições curtas deles, pode ser encontrada em ../../../../lfs/view/12.3-systemd/chapter08/systemd.html#contents-systemd.
Listados abaixo estão os programas recém-instalados, juntamente com descrições curtas.
é 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 |
|
É usado para registrar ou remover um sistema da criptografia completa do disco, bem como configurar e consultar chaves privadas e chaves de recuperação |
|
Anexa ou remove um dispositivo de bloco criptografado |
|
inspeciona usuários(as), grupos e associações de grupos |
|
é um módulo "PAM" usado para registrar sessões de usuário(a) com o gerenciador de "login" do systemd, systemd-logind |
O pacote UDisks fornece um processo de segundo plano, ferramentas e bibliotecas para acessar e manipular discos e dispositivos de armazenamento.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/storaged-project/udisks/releases/download/udisks-2.10.1/udisks-2.10.1.tar.bz2
Soma de verificação MD5 da transferência: 613af9bfea52cde74d2ac34d96de544d
Tamanho da transferência: 1,8 MB
Espaço em disco estimado exigido: 44 MB (com testes)
Tempo de construção estimado: 0,2 UPC (com testes)
libatasmart-0.19, libblockdev-3.3.0, libgudev-238 e Polkit-126
Systemd-257.3 (tempo de execução)
GLib-2.82.5 (com GObject Introspection)
D-Bus Python-1.3.2 (para os testes de integração), GTK-Doc-1.34.0, libxslt-1.1.42 (para as páginas de manual), LVM2-2.03.30, PyGObject-3.50.0 (para os testes de integração), exFAT e libiscsi
btrfs-progs-6.13, dosfstools-4.2, gptfdisk-1.0.10, mdadm-4.3 e xfsprogs-6.13.0
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
--disable-static
:
Essa chave impede a instalação das versões estáticas das
bibliotecas.
--enable-gtk-doc
: Use esse
parâmetro se GTK-Doc estiver
instalado e você desejar reconstruir e instalar a
documentação da API.
--enable-available-modules
:
Essa chave habilita funcionalidades adicionais do
UDisks2 se libblockdev-3.3.0 tiver sido
construído com dependências opcionais.
O pacote UnRar contém um
utilitário de extração RAR
usado para extrair arquivos a partir de arquivamentos
RAR
. Arquivamentos RAR
geralmente são criados com WinRAR, principalmente em um ambiente
"Windows".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.rarlab.com/rar/unrarsrc-7.1.5.tar.gz
Soma de verificação MD5 da transferência: 2cfa06457cf93dacf870da6de2f1c1a1
Tamanho da transferência: 264 KB
Espaço em disco estimado exigido: 2,7 MB
Tempo de construção estimado: 0,4 UPC
Esse pacote extrai o "tarball" para o diretório não
versionado unrar
e não para o
diretório esperado unrar-7.1.5
.
Instale UnRar executando os seguintes comandos:
make -f makefile
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
install -v -m755 unrar /usr/bin
O pacote UPower fornece uma interface para enumerar dispositivos de eletricidade, ouvir eventos de dispositivos e consultar histórico e estatísticas. Qualquer aplicativo ou serviço no sistema consegue acessar o serviço org.freedesktop.UPower por meio do barramento de mensagens do sistema.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://gitlab.freedesktop.org/upower/upower/-/archive/v1.90.7/upower-v1.90.7.tar.bz2
Soma de verificação MD5 da transferência: d5eeb9af086f696bb55bb979a7fb06ca
Tamanho da transferência: 149 KB
Espaço em disco estimado exigido: 5,9 MB (adicionar 2,7 MB para os testes)
Tempo de construção estimado: menos que 0,1 UPC (adicionar 0,5 UPC para testes)
GLib-2.82.5 (com GObject Introspection)
GTK-Doc-1.34.0, libxslt-1.1.42, docbook-xsl-nons-1.79.2, PyGObject-3.50.0, dbusmock-0.34.3, umockdev-0.19.1 (para parte da suíte de teste) e libimobiledevice
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]
Instale UPower executando os seguintes comandos:
mkdir build && cd build && meson setup .. \ --prefix=/usr \ --buildtype=release \ -D gtk-doc=false \ -D man=false && ninja
Para testar os resultados, emita: LC_ALL=C ninja test. A
suíte de teste deveria ser executada a partir de uma sessão
GUI local iniciada com dbus-launch. Em máquinas de 32 bits,
um teste falhará devido a erros de arredondamento:
Tests.test_battery_energy_charge_mixed
. Em
alguns sistemas, dois testes relacionados ao recurso hotplug
de fone de ouvido são conhecidos por falharem. Eles podem ser
ignorados com segurança, pois a funcionalidade ainda
funciona.
Agora, como o(a) usuário(a) root
:
ninja install
-D gtk-doc=false
:
Impede construir a documentação. Remova isso se você tiver o
GTK-Doc instalado e desejar
construir a documentação.
-D man=false
: Impede
construir as páginas de manual. Remova isso se você tiver
libxslt-1.1.42 e docbook-xsl-nons-1.79.2
instalados e desejar construir as páginas de manual.
O pacote USB Utils contém utilitários usados para exibir informações relativas a barramentos "USB" no sistema e os dispositivos conectados a eles.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://kernel.org/pub/linux/utils/usb/usbutils/usbutils-018.tar.xz
Soma de verificação MD5 da transferência: 0a351e2241c50a1f026a455dccf24d73
Tamanho da transferência: 120 KB
Espaço em disco estimado exigido: 1,9 MB
Tempo de construção estimado: menos que 0,1 UPC
hwdata-0.392 (tempo de execução)
Instale USB Utils executando os seguintes comandos:
mkdir build && cd build && meson setup .. \ --prefix=/usr \ --buildtype=release && ninja
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
ninja install
Para o arquivo de dados usb.ids
, instale o pacote hwdata-0.392.
O script lsusb.py exibe informações em um formato mais facilmente legível que lsusb. Para encontrar as opções, use lsusb.py -h. Uma forma de uso recomendada pelo(a) desenvolvedor(a) é lsusb.py -ciu.
é 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) |
|
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) |
|
é 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 |
|
é usado para despejar descritores de informes e fluxos a partir de interfaces "HID" (dispositivo de interface humana) de dispositivos "USB" |
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.
A primeira opção é a de instalar o atual pacote GNU which.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://ftp.gnu.org/gnu/which/which-2.23.tar.gz
Soma de verificação MD5 da transferência: 1963b85914132d78373f02a84cdb3c86
Tamanho da transferência: 197 KB
Espaço em disco estimado exigido: 1,2 MB
Tempo de construção estimado: menos que 0,1 UPC
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
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.
O pacote xdotool fornece os recursos para simular entrada de teclado e atividade de mouse, mover e redimensionar janelas, etc. Ele faz isso usando a extensão XTEST do X11 e outras funções da Xlib.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/jordansissel/xdotool/releases/download/v3.20211022.1/xdotool-3.20211022.1.tar.gz
Soma de verificação MD5 da transferência: 9fd993a251a7c38b32381503544b0dd7
Tamanho da transferência: 116 KB
Espaço em disco estimado exigido: 2,1 MB
Tempo de construção estimado: menos que 0,1 UPC
Instale xdotool executando os seguintes comandos:
make WITHOUT_RPATH_FIX=1
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make PREFIX=/usr INSTALLMAN=/usr/share/man install
O pacote Zip contém
utilitários Zip. Eles são
úteis para comprimir arquivos em arquivamentos ZIP
.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://downloads.sourceforge.net/infozip/zip30.tar.gz
Soma de verificação MD5da transferência: 7b74551e63f8ee6aab6fbc86676c0d37
Tamanho da transferência: 1,1 MB
Espaço em disco estimado exigido: 6,4 MB
Tempo de construção estimado: 0,1 UPC
Instale Zip executando os seguintes comandos:
make -f unix/Makefile generic CC="gcc -std=gnu89"
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make prefix=/usr MANDIR=/usr/share/man/man1 -f unix/Makefile install
CC="gcc -std=gnu89"
:
Esse parâmetro substitui a variável CC
que é configurada como cc no arquivo unix/Makefile
. No LFS, cc é um link simbólico para
gcc e usa
-std=gnu17
(ISO 9899:2017 com
extensões GNU) como padrão, mas Zip é um pacote “legado” onde
algumas construções gramaticais são inválidas no ISO
9899:1999 e usos comuns mais recentes.
prefix=/usr
: Esse
parâmetro substitui a variável prefix
que está configurada como
/usr/local
no arquivo
unix/Makefile
.
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.
O pacote cargo-c cria um sub comando cargo para construir e instalar bibliotecas dinâmicas e estáticas compatíveis com C-ABI.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/lu-zero/cargo-c/archive/v0.10.11/cargo-c-0.10.11.tar.gz
Soma de verificação MD5 da transferência: 727bcba75cf4e65313bb3a1b084bb57e
Tamanho da transferência: 36 KB
Espaço em disco estimado exigido: 827 MB
Tempo de construção estimado: 0,7 UPC
libssh2-1.11.1 e SQLite-3.49.1
Uma conexão com a Internet é necessária para construir esse pacote. A loja de certificados do sistema possivelmente precise ser configurada com make-ca-1.15 antes de se construir esse pacote
Primeiro, baixe um arquivo para garantir que cargo use as versões de dependência especificadas pelos(as) desenvolvedores(as) do fluxo de desenvolvimento quando essa versão cargo-c (0.10.11) foi lançada. Sem isso, as versões mais recentes das dependências seriam usadas e elas poderiam causar quebras:
curl -LO https://github.com/lu-zero/cargo-c/releases/download/v0.10.11/Cargo.lock
Normalmente, nós colocaríamos essa transferência em uma
seção “Transferências Adicionais”. Mas,
nesse caso, não podemos dizer o nome e a versão do pacote a
partir do nome do arquivo Cargo.lock
, de forma que é melhor não
colocar o arquivo ambiguamente nomeado fora do diretório
cargo-c-0.10.11
. Nós usamos
curl aqui
porque o pacote cURL-8.12.1 deveria ter sido instalado
como uma dependência exigida do rustc-1.85.0.
A soma de verificação MD5 do arquivo deveria ser
d39f6c60470dc6aff66fac7a86b6b261
.
Instale cargo-c executando os seguintes comandos:
[ ! -e /usr/include/libssh2.h ] || export LIBSSH2_SYS_USE_PKG_CONFIG=1 && [ ! -e /usr/include/sqlite3.h ] || export LIBSQLITE3_SYS_USE_PKG_CONFIG=1 && cargo build --release
Para testar os resultados, emita: cargo test --release.
Agora, como o(a) usuário(a) root
:
install -vm755 target/release/cargo-{capi,cbuild,cinstall,ctest} /usr/bin/
Cbindgen pode ser usado para gerar ligações C para código Rust.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/mozilla/cbindgen/archive/v0.28.0/cbindgen-0.28.0.tar.gz
Soma de verificação MD5 da transferência: 0712d991fc8e65121924265d738db71d
Tamanho da transferência: 232 KB
Espaço em disco estimado exigido: 121 MB (adicionar 600 MB para testes)
Tempo de construção estimado: 0,5 UPC (adicionar 0,4 UPC para testes), ambos em uma máquina de 4 núcleos
Uma conexão com a Internet é necessária para construir esse pacote. A loja de certificados do sistema possivelmente precise ser configurada com make-ca-1.15 antes de se construir esse pacote
Instale cbindgen executando os seguintes comandos:
cargo build --release
Para testar os resultados, emita: cargo test --release. Três
testes em profile.rs
são
conhecidos por falharem porque eles esperam alguns recursos
instáveis da Rust desabilitados no na configuração de
rustc-1.85.0 do BLFS.
Agora, como o(a) usuário(a) root
:
install -Dm755 target/release/cbindgen /usr/bin/
GNU Clisp é uma implementação "Common Lisp" que inclui um interpretador, compilador, depurador e muitas extensões.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://ftp.gnu.org/gnu/clisp/latest/clisp-2.49.tar.bz2
Soma de verificação MD5 da transferência: 1962b99d5e530390ec3829236d168649
Tamanho da transferência: 7,8 MB
Espaço em disco estimado exigido: 163 MB (adicionar 8 MB para os testes)
Tempo de construção estimado: 0,9 UPC (1,2 UPC com os testes)
Remendo opcional: https://www.linuxfromscratch.org/patches/blfs/12.3/clisp-2.49-readline7_fixes-1.patch (exigido se construir contra a "libffcall")
Esse pacote não suporta construção paralela.
Se você estiver construindo em um sistema de 32 bits, [então] contorne um defeito no "GCC" causado pela versão mais recente do "binutils":
case $(uname -m) in i?86) export CFLAGS="${CFLAGS:--O2 -g} -falign-functions=4" ;; esac
Remova dois testes que falham por motivos desconhecidos:
sed -i -e '/socket/d' -e '/"streams"/d' tests/tests.lisp
Instale Clisp executando os seguintes comandos:
Se você estiver construindo clisp contra a libffcall, [então] aplique o remendo para corrigir uma falha de construção com a readline atual:
patch -Np1 -i ../clisp-2.49-readline7_fixes-1.patch
Instale Clisp executando os seguintes comandos:
mkdir build && cd build && ../configure --srcdir=../ \ --prefix=/usr \ --docdir=/usr/share/doc/clisp-2.49 \ --with-libsigsegv-prefix=/usr && ulimit -S -s 16384 && make -j1
Para testar os resultados, emita: make check.
Agora, como o(a) usuário(a) root
:
make install
ulimit -S -s 16384: isso aumenta o tamanho máximo da pilha, conforme recomendado pelo configure.
--docdir=/usr/share/doc/clisp-2.49
:
essa chave força a documentação HTML ser instalada em um
diretório versionado em vez de no /usr/share/html/
.
--with-libsigsegv-prefix=/usr
:
use isso para informar ao configure que você instalou
o libsigsegv em /usr, caso
contrário ele não será encontrado.
--with-libffcall-prefix=/usr
: use
isso para informar ao configure que você instalou
o pacote opcional libffcall em
/usr, caso contrário, como libsigsegv, ele não será encontrado.
/usr/lib/clisp-2.49/base/
O pacote CMake contém um conjunto moderno de ferramentas usado para gerar "Makefiles". É um sucessor do script configure gerado automaticamente e pretende ser independente de plataforma e de compilador. Um usuário significativo do CMake é o KDE desde a versão 4.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cmake.org/files/v3.31/cmake-3.31.5.tar.gz
Soma de verificação MD5da transferência: ea5e8d7208616b1609018db290a67419
Tamanho da transferência: 12 MB
Espaço em disco estimado exigido: 576 MB (adicionar 1,4 GB para os testes)
Tempo de construção estimado: 2,2 UPC (adicionar 5,4 UPC para testes, ambos usando paralelismo=4)
cURL-8.12.1, libarchive-3.7.7, libuv-1.50.0 e nghttp2-1.64.0
GCC-14.2.0 (para gfortran), git-2.48.1 (para uso durante testes), Mercurial-6.9.2 (para uso durante testes), OpenJDK-23.0.2 (para uso durante testes), Qt-6.8.2 (para a GUI baseada em Qt), sphinx-8.2.1 (para construir documentos), Subversion-1.14.5 (para testagem), cppdap, jsoncpp e rhash
Instale CMake executando os seguintes comandos:
sed -i '/"lib64"/s/64//' Modules/GNUInstallDirs.cmake && ./bootstrap --prefix=/usr \ --system-libs \ --mandir=/share/man \ --no-system-jsoncpp \ --no-system-cppdap \ --no-system-librhash \ --docdir=/share/doc/cmake-3.31.5 && make
Para testar os resultados, emita: bin/ctest -j$(nproc)
.
Substitua $(nproc)
por um inteiro entre 1 e o número de núcleos lógicos do
sistema se você não quiser usar todos.
Se você quiser investigar um problema com um determinado
"problem1-test", [então] use bin/ctest -R
"problem1-test" e, para omiti-lo, use
bin/ctest -E
"problem1-test". Essas opções podem ser
usadas juntas: bin/ctest -R
"problem1-test" -E "problem2-test". A opção
-N
pode ser usada para exibir
todos os testes disponíveis, e você pode executar
bin/ctest para
um subconjunto de testes usando nomes ou números separados
por espaços como opções . A opção --help
pode ser usada para mostrar todas as
opções.
Agora, como o(a) usuário(a) root
:
make install
sed ... Modules/GNUInstallDirs.cmake: Esse comando desabilita aplicativos que usam "cmake" de tentar instalar arquivos em "/usr/lib64/".
--system-libs
: Essa
chave força o sistema de construção a vincular-se à versão
instalada do sistema para todas as bibliotecas necessárias,
exceto aquelas especificadas explicitamente por meio de uma
opção --no-system-*
.
--no-system-jsoncpp
e
--no-system-cppdap
:
Essas chaves removem a biblioteca JSON-C++ da lista de bibliotecas do
sistema. Uma versão empacotada dessa biblioteca é usada em
lugar dela.
--no-system-librhash
:
Essa chave remove a biblioteca librhash da lista de bibliotecas do
sistema usadas. Uma versão empacotada dessa biblioteca é
usada em lugar dela.
--no-system-{curl,libarchive,libuv,nghttp2}
:
Use a opção correspondente na lista para o bootstrap se uma das
dependências recomendadas não estiver instalada. Uma versão
empacotada da dependência será usada em lugar dela.
--qt-gui
: Essa chave habilita
construir a "GUI" baseada em Qt para CMake.
--parallel=
: Essa chave permite
executar as instruções de autoaprimoramento do CMake com várias tarefas ao mesmo tempo.
Não é necessário se a variável MAKEFLAGS
já tiver sido configurada para usar
vários processadores seguindo Usando Múltiplos
Processadores.
é uma estrutura de interação direta com o(a) usuário(a) baseada em "curses" para cmake |
|
é o gerador de "makefile" |
|
(opcional) é a estrutura de interação direta com o(a) usuário(a) baseada em Qt para o cmake |
|
é o aplicativo de empacotamento CMake |
|
é um utilitário de teste para árvores de construção geradas pelo "cmake" |
O pacote Doxygen contém um sistema de documentação para "C++", "C", "Java", "Objective-C", "Corba IDL" e, até certo ponto, "PHP", "C#" e "D". É útil para gerar documentação "HTML" e(ou) manual de referência fora de linha a partir de um conjunto de arquivos fonte documentados. Também existe suporte para gerar saída em "RTF", "PostScript", "PDF" com hiperlink, "HTML" compactado e páginas de manual "Unix". A documentação é extraída diretamente dos fontes, o que torna muito mais fácil manter a documentação consistente com o código-fonte.
Você também pode configurar o Doxygen para extrair a estrutura do código a partir de arquivos fonte não documentados. Isso é muito útil para encontrar rapidamente seu caminho em grandes distribuições de fontes. Usado junto com Graphviz, você também consegue visualizar as relações entre os vários elementos por meio de gráficos de dependência, diagramas de herança e diagramas de colaboração, todos gerados automaticamente.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://doxygen.nl/files/doxygen-1.13.2.src.tar.gz
Soma de verificação MD5 da transferência: 1c3bfaaeda1544bf2b33b73ceb4d2ea4
Tamanho da transferência: 8,1 MB
Espaço em disco estimado exigido: 253 MB (com testes)
Tempo de construção estimado: 1,6 UPC (com testes; ambos usando paralelismo=4)
Qt-6.8.2 (para doxywizard)
Graphviz-12.2.1, ghostscript-10.04.0, libxml2-2.13.6 (exigido para os testes), LLVM-19.1.7 (com clang), texlive-20240312 (ou install-tl-unx), xapian-1.4.27 (para doxyindexer) e javacc
Primeiro, corrija alguns conjuntos de comandos sequenciais python:
grep -rl '^#!.*python$' | xargs sed -i '1s/python/&3/'
Instale Doxygen executando os seguintes comandos:
mkdir -v build && cd build && cmake -G "Unix Makefiles" \ -D CMAKE_BUILD_TYPE=Release \ -D CMAKE_INSTALL_PREFIX=/usr \ -D build_wizard=ON \ -D force_qt=Qt6 \ -W no-dev .. && make
Para testar os resultados, emita: make testes. Um teste, 012_cite.dox, é conhecido por falhar se texlive-20240312 ou install-tl-unx não estiver instalado.
Se você deseja gerar a documentação do pacote, [então] você precisa ter Python, TeX Live (para documentos "HTML") e Ghostscript (para documentos "PDF") instalados, então emita o seguinte comando:
cmake -D build_doc=ON \ -D DOC_INSTALL_DIR=share/doc/doxygen-1.13.2 \ .. && make docs
Agora, como o(a) usuário(a) root
:
make install && install -vm644 ../doc/*.1 /usr/share/man/man1
Se você gerou a documentação do pacote, então as páginas de manual serão instaladas automaticamente e você não precisará executar o último comando install ....
-D build_wizard=OFF
: Use essa
chave se Qt6 não estiver
instalado.
-D build_search=ON
: Use essa
chave se xapian estiver
instalado e você desejar construir ferramentas de pesquisa
externas (doxysearch.cgi e
doxyindexer).
-D force_qt6=ON
: Use essa chave
para construir doxywizard com Qt6, mesmo
se Qt5 estiver instalado.
-D use_libclang=ON
: Use essa
chave se llvm com
clang estiverem instalados,
para adicionar suporte para análise da libclang.
Não existe nenhuma configuração real necessária para o pacote Doxygen, embora três pacotes adicionais sejam exigidos se você desejar usar recursos estendidos. Se demandar fórmulas para criar documentação em PDF, então você precisa ter o texlive-20240312 instalado. Se demandar fórmulas para converter arquivos PostScript em bitmaps, então você precisa ter o ghostscript-10.04.0 instalado.
é 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 |
|
é uma estrutura "GUI" de interação direta com o(a) usuário(a) para configurar e executar doxygen |
|
gera um índice de pesquisa chamado |
|
é um aplicativo "CGI" para pesquisar os dados indexados por doxyindexer |
O pacote dtc contém o Device Tree Compiler para trabalhar com fontes de árvores de dispositivos e arquivos binários e também libfdt, uma biblioteca de utilitários para ler e manipular árvores de dispositivos no formato binário.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://kernel.org/pub/software/utils/dtc/dtc-1.7.2.tar.xz
Soma de verificação MD5 da transferência: 0f193be84172556027da22d4fe3464e0
Tamanho da transferência: 168 KB
Espaço em disco estimado exigido: 13 MB (com testes)
Tempo de construção estimado: 0,2 UPC (com testes)
Instale dtc executando os seguintes comandos:
mkdir build && cd build && meson setup --prefix=/usr \ --buildtype=release \ -D python=disabled .. && ninja
Para testar os resultados, emita: CC='gcc -Wl,-z,noexecstack' meson test -v.
Agora, como o(a) usuário(a) root
:
ninja install
Ainda como o(a) usuário(a) root
, remova a biblioteca estática
inútil:
rm /usr/lib/libfdt.a
Se você tiver texlive-20240312 instalado, poderá construir o formato PDF da documentação emitindo o seguinte comando:
pushd ../Documentation latexmk -bibtex --pdf dtc-paper && latexmk -bibtex --pdf dtc-paper -c popd
Para instalar a documentação, como o(a) usuário(a)
root
emita o seguinte
comando:
cp -R ../Documentation -T /usr/share/doc/dtc-1.7.2
Se você tiver instalado SWIG-4.3.0 e desejar instalar as ligações Python 3 desse pacote, construa o módulo Python 3:
pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir ..
Como o(a) usuário(a) root
,
instale o módulo Python 3:
pip3 install --no-index --find-links dist --no-user libfdt
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
-D python=disabled
:
Essa chave impede construir a ligação do Python 3 com o
método obsoleto (executando setup.py diretamente). Nós
construiremos a ligação do Python 3 com o comando
pip3 wheel
separadamente, se desejado.
CC='gcc -Wl,-z,noexecstack'
: Essa
variável impede marcar as bibliotecas compartilhadas na suíte
de teste como exigindo pilha executável. A Glibc 2.41 ou
posterior parou de permitir abrir com dlopen
tal biblioteca compartilhada, de
forma que a suíte de teste falharia. Mas essas bibliotecas
compartilhadas não precisam realmente de uma pilha
executável, de modo que nós podemos usar -Wl,-z,noexecstack
para
consertar a suíte de teste. É necessário no ambiente
CC
para o meson test porque essas
bibliotecas compartilhadas são construídas por um conjunto de
comandos sequenciais de teste em vez do sistema de construção
meson/ninja, e o conjunto de
comandos sequenciais de teste não reconhece outras variáveis
de ambiente “comuns” como LDFLAGS
.
converte a fonte da árvore de dispositivos v0 em árvore de dispositivos v1 |
|
compila a fonte da árvore de dispositivos (dts) para o blob binário da árvore de dispositivos (dtb) ou descompila dtb para dts |
|
compara duas árvores de dispositivos |
|
imprime uma versão legível de um arquivo simples de árvore de dispositivos |
|
lê valores a partir da árvore de dispositivos |
|
aplica uma série de sobreposições a um blob de árvore de dispositivo base |
|
escreve um valor de propriedade em uma árvore de dispositivos |
|
é uma biblioteca de utilitários para ler e manipular árvores de dispositivos no formato binário |
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.
Linguagens adicionais, entre as quais D e Ada, estão
disponíveis na coleção. D e Ada tem um requisito de
instruções iniciais de carregamento de binário para a
primeira instalação, de modo que a instalação deles não
está descrita aqui. Para instalá-los, você pode proceder da
mesma forma abaixo depois de instalar o compilador
correspondente a partir de um pacote binário, adicionando
ada
ou d
à linha --enable-languages
.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Se você estiver atualizando o GCC a partir de qualquer outra versão anterior ao 14.2.0, então você precisa ser cuidadoso(a) ao compilar módulos de terceiros do núcleo. Você deveria garantir que o núcleo e todos os módulos nativos dele também sejam compilados usando a mesma versão do GCC que você usa para construir o módulo de terceiros. Esse problema não afeta as atualizações do núcleo nativo (e dos módulos do núcleo), pois as instruções abaixo são uma reinstalação completa do GCC. Se você tiver módulos de terceiros instalados, certifique-se de que eles sejam recompilados usando a versão atualizada do GCC.
Transferência (HTTP): https://ftp.gnu.org/gnu/gcc/gcc-14.2.0/gcc-14.2.0.tar.xz
Soma de verificação MD5 da transferência: 2268420ba02dc01821960e274711bde0
Tamanho da transferência: 88 MB
Espaço em disco estimado exigido: 11 GB (3,4 GB instalado com todas as linguagens listadas; adicionar 1,6 GB para testes)
Tempo de construção estimado: 14 UPC (adicionar 34 UPC para testes; ambos com paralelismo=8)
GDB-16.2, Graphviz-12.2.1 (alguns testes usam ele se instalado; observe que se ele estiver instalado, porém não construído com libpng-1.6.46, esses testes falharão), Valgrind-3.24.0 (para testes) e ISL (para habilitar otimização do graphite)
Mesmo se você especificar somente linguagens diferentes de "C" e "C++" para o comando ./configure abaixo, o processo de instalação substituirá seus compiladores e bibliotecas "C" e "C++" do GCC existentes. Executar a suíte completa de teste é recomendado.
Não continue com o comando make install até ter certeza de que a construção foi bem-sucedida. Você pode comparar seus resultados de teste com aqueles encontrados em https://gcc.gnu.org/ml/gcc-testresults/. Você também possivelmente deseje consultar as informações encontradas na seção do GCC do Capítulo 8 no livro LFS (../../../../lfs/view/12.3-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 \ --enable-host-pie \ --disable-fixincludes \ --enable-languages=c,c++,fortran,go,objc,obj-c++,m2 && make
Se executar testes, como no LFS, remova/corrija várias falhas de teste conhecidas:
sed -e '/cpython/d' -i ../gcc/testsuite/gcc.dg/plugin/plugin.exp sed -e 's/no-pic /&-no-pie /' -i ../gcc/testsuite/gcc.target/i386/pr113689-1.c sed -e 's/300000/(1|300000)/' -i ../libgomp/testsuite/libgomp.c-c++-common/pr109062.c sed -e 's/{ target nonpic } //' \ -e '/GOTPCREL/d' -i ../gcc/testsuite/gcc.target/i386/fentryname3.c
Se você tiver instalado pacotes adicionais, como valgrind e gdb, a parte gcc da suíte de teste executará mais testes que no LFS. Alguns deles informarão FAIL e outros XPASS (aprovados quando esperado FAIL). A partir do gcc-14.1.0, cerca de setenta e quatro (74) FAIL ocorrem na suíte “guality”, bem como falhas diversas em todo o resto da suíte de teste. Se todos os compiladores acima forem construídos, existirão um pouco mais que cento e dez (110) falhas inesperadas em mais que seiscentos e dezessete mil (617.000) testes. Para executar os testes, emita:
make -k check
Os testes são muito longos e os resultados possivelmente sejam difíceis de encontrar nos registros, especialmente se você usar tarefas paralelas com "make". Você consegue obter um resumo dos testes com:
../contrib/test_summary
Agora, como o(a) usuário(a) root
:
make install && mkdir -pv /usr/share/gdb/auto-load/usr/lib && mv -v /usr/lib/*gdb.py /usr/share/gdb/auto-load/usr/lib && chown -v -R root:root \ /usr/lib/gcc/*linux-gnu/14.2.0/include{,-fixed} && ln -sfv ../../libexec/gcc/$(gcc -dumpmachine)/14.2.0/liblto_plugin.so \ /usr/lib/bfd-plugins/
mkdir build; cd build: A documentação do GCC recomenda construir o pacote em um diretório de construção dedicado.
--disable-multilib
:
Esse parâmetro garante que os arquivos sejam criados para a
arquitetura específica do seu computador.
--with-system-zlib
:
Usa a zlib do sistema em vez
daquela empacotada. A zlib é
usada para comprimir e descomprimir a linguagem intermediária
do GCC em arquivos de objeto
"Link Time Optimization" ("LTO").
--enable-default-pie
:
Torna a opção -fpie
o padrão ao
compilar aplicativos. Juntamente com o recurso ASLR habilitado no núcleo, isso
derrota alguns tipos de ataques baseados em esquemas
conhecidos de memória.
--enable-default-ssp
:
Torna a opção -fstack-protector-strong
o padrão ao compilar
aplicativos. SSP é uma
técnica que evita a alteração do fluxo do programa por
corrompimento da pilha de parâmetros.
--enable-host-pie
:
Torna os executáveis do compilador PIE (Position Independent
Executable). Isso pode ser usado para aumentar a proteção
contra ataques ROP (Return Oriented Programming) e pode ser
visto como parte de uma tendência mais ampla de fortalecer os
binários.
--enable-languages=c,c++,fortran,go,objc,obj-c++,m2
:
Esse comando identifica quais linguagens construir. Você pode
modificar esse comando para remover linguagens indesejadas. A
GCC também suporta Ada e D, mas construir a GCC com suporte a
Ada (ou D) precisa de um compilador Ada (ou D) existente.
Portanto, eles não estão habilitados aqui.
make -k check: Esse comando executa a suíte de teste sem parar se quaisquer erros forem encontrados.
../contrib/test_summary: Esse comando produzirá um resumo dos resultados da suíte de teste. Você pode anexar | grep -A7 Summ ao comando para produzir uma versão ainda mais condensada do resumo. Você possivelmente também deseje redirecionar a saída gerada para um arquivo para revisão e comparação posterior.
mv -v /usr/lib/*gdb.py
...: A etapa de instalação coloca alguns
arquivos usados pelo gdb sob
o diretório /usr/lib
. Isso gera
mensagens de erro falsas ao executar o ldconfig. Esse comando move
os arquivos para outro local.
chown -v -R root:root
/usr/lib/gcc/*linux-gnu/...: Se o pacote for
construído por um(a) usuário(a) diferente de "root", [então]
titularidade da propriedade do diretório include
instalado (e o conteúdo dele)
estará incorreta. Esse comando muda a titularidade da
propriedade para o(a) usuário(a) e grupo root
.
--enable-host-shared
--enable-languages=jit
: Construir libgccjit
, uma biblioteca para incorporar
a GCC em aplicativos e bibliotecas para gerar código de
máquina . Apesar do “JIT” (just-in-time) no nome, a
biblioteca também pode ser usada para compilação AOT
(ahead-of-time). --enable-host-shared
é necessário para
construir libgccjit
, mas
retarda significativamente a GCC. Portanto libgccjit
deveria ser construída e
instalada separadamente, não como parte da instalação
“principal” da GCC. Se você precisar
dessa biblioteca, configure a GCC com essas duas opções e
instale a biblioteca executando make -C gcc jit.install-common
jit.install-info como o(a) usuário(a)
root
. Essa biblioteca não é
usada por nenhum pacote do BLFS, nem testada pelos(as)
desenvolvedores(as) do BLFS.
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.
O pacote GC contém o coletor conservador de lixo Boehm-Demers-Weiser, que pode ser usado como um substituto da coleta de lixo para a função "malloc" da "C" ou o novo operador da "C++". Ele permite que você aloque memória basicamente como faria normalmente, sem desalocar explicitamente a memória que não é mais útil. O coletor recicla automaticamente a memória quando determina que ela não mais consegue ser acessada de outra forma. O coletor também é usado por diversas implementações de linguagens de programação que, ou usam a "C" como código intermediário; desejam facilitar a interoperação mais fácil com bibliotecas "C"; ou apenas preferem a interface simples do coletor. Alternativamente, o coletor de lixo possivelmente seja usado como detector de vazamentos para aplicativos "C" ou "C++", embora esse não seja o objetivo principal dele.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/ivmai/bdwgc/releases/download/v8.2.8/gc-8.2.8.tar.gz
Soma de verificação MD5 da transferência: ad7298be1a300fc0ce75196718036c61
Tamanho da transferência: 1,2 MB
Espaço em disco estimado exigido: 9,3 MB (com testes)
Tempo de construção estimado: 0,1 UPC (com testes)
Instale GC executando os seguintes comandos:
./configure --prefix=/usr \ --enable-cplusplus \ --disable-static \ --docdir=/usr/share/doc/gc-8.2.8 && make
Para testar os resultados, emita: make check.
Agora, como o(a) usuário(a) root
:
make install && install -v -m644 doc/gc.man /usr/share/man/man3/gc_malloc.3
--docdir=/usr/share/doc/gc-8.2.8
:
Essa opção é usada de forma que o pacote instalará a
documentação em um diretório versionado.
--enable-cplusplus
:
Esse parâmetro habilita a construção e instalação da
biblioteca "C++" juntamente com a biblioteca "C" padrão.
--disable-static
:
Essa chave impede a instalação das versões estáticas das
bibliotecas.
contém uma biblioteca de sequências de caracteres baseada em árvore |
|
contém uma interface "C" para o coletor conservador de lixo, projetada principalmente para substituir a função "malloc" da "C" |
|
contém uma interface "C++" para o coletor conservador de lixo |
|
contém uma interface "C++" para lançar alocações incorretas |
GDB, o depurador do Projeto "GNU", permite que você veja o que está acontecendo “dentro” de outro aplicativo enquanto ele é executado - ou o que outro aplicativo estava fazendo no momento em que travou. Observe que GDB é mais eficaz ao rastrear aplicativos e bibliotecas que foram construídos(as) com símbolos de depuração e não despojados(as).
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://ftp.gnu.org/gnu/gdb/gdb-16.2.tar.xz
Soma de verificação MD5 da transferência: 05e4a7e3b177432771aa7277af9bccee
Tamanho da transferência: 23 MB
Espaço em disco estimado exigido: 1,0 GB (adicionar 943 MB para documentos; adicionar 960 MB para testes)
Tempo de construção estimado: 1,4 UPC (adicionar 0,3 UPC para documentos; adicionar 3,0 UPC testes; todos usando paralelismo=8)
six-1.17.0 (módulo "Python" 3, exigido em tempo de execução para usar scripts GDB a partir de vários pacotes do LFS/BLFS com "Python" 3 instalado no LFS)
Doxygen-1.13.2, GCC-14.2.0 (ada, gfortran e go são usados para testes), Guile-3.0.10, rustc-1.85.0 (usado para alguns testes), Valgrind-3.24.0 e SystemTap (tempo de execução, usado para testes)
Instale o GDB executando os seguintes comandos:
mkdir build && cd build && ../configure --prefix=/usr \ --with-system-readline \ --with-python=/usr/bin/python3 && make
Opcionalmente, para construir a documentação da "API" usando Doxygen-1.13.2, execute:
make -C gdb/doc doxy
Executar os testes não é recomendado. Os resultados variam muito dependendo da arquitetura do sistema e de quais dependências opcionais estão instaladas e qual versão do GCC está sendo usada. Em um sistema testado, existiram 140 falhas inesperadas (de mais de 108.000 testes) e em outro sistema existiram “somente” 14 falhas inesperadas. O tempo para executar os testes varia de aproximadamente 3 UPC a mais de 15 UPC ao usar -j8. Isso depende do número de testes que expiram, assim como de outros fatores.
Com um make check simples, existem muitas mensagens de aviso acerca de um arquivo de configuração global ausente. Essas podem ser evitadas executando-se touch global.exp e antepondo-se ao comando make check DEJAGNU=$PWD/global.exp. Além disso, os testes podem ser consideravelmente acelerados usando-se a opção do make "-j<N>", onde <N> é o número de núcleos em teu sistema. Às vezes, porém, usar paralelismo possivelmente resulte em falhas estranhas.
Para testar os resultados de qualquer forma, emita:
pushd gdb/testsuite && make site.exp && echo "set gdb_test_timeout 30" >> site.exp && make check 2>1 | tee gdb-check.log popd
Veja-se gdb/testsuite/README e TestingGDB. Existem muitos problemas adicionais com a suíte de teste:
Diretórios limpos são necessários se reexecutar-se os testes. Por esse motivo, produza uma cópia do diretório do código-fonte compilado antes dos testes, caso precise executar os testes novamente.
Os resultados também podem depender dos compiladores instalados.
Em alguns sistemas baseados em "AMD", mais que duzentos (200) testes adicionais possivelmente falhem devido a uma diferença na implementação de camadas nessas "CPUs".
Para gdb-16.1, usando um Intel Xeon E5-1650 v3, existiram 14 falhas inesperadas em mais de 120.000 testes.
Quatro testes na suíte gdb.base/step-over-syscall.exp
são
conhecidos por falharem devido a mudanças no Linux 6.13
e glibc-2.41.
Agora, como o(a) usuário(a) root
:
make -C gdb install && make -C gdbserver install
Se você construiu a documentação da "API", [então] ela agora
está em "gdb/doc/doxy". Você consegue instalá-la (como o(a)
usuário(a) root
):
install -d /usr/share/doc/gdb-16.2 && rm -rf gdb/doc/doxy/xml && cp -Rv gdb/doc/doxy /usr/share/doc/gdb-16.2
--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.
gera um despejo principal de um aplicativo em execução |
|
é o Depurador GNU |
|
é um servidor remoto para o depurador "GNU" (permite que aplicativos sejam depurados a partir de uma máquina diferente) |
|
Permite adicionar arquivos de índice a binários ELF. Isso acelera o início do gdb em aplicativos grandes. |
|
imprime um rastreamento de pilha a partir de um programa que esteja executando atualmente |
|
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 é um sistema de controle de versão distribuído, gratuito e de código aberto, projetado para lidar com tudo, desde projetos pequenos a muito grandes, com velocidade e eficiência. Cada clone do Git é um repositório completo com histórico completo e recursos completos de rastreamento de revisão, não dependente de acesso à rede de comunicação ou de um servidor central. Ramificar e mesclar são rápidos e fáceis de fazer. Git é usado para controle de versão de arquivos, assim como ferramentas como Mercurial-6.9.2, Bazaar, Subversion-1.14.5, CVS, Perforce e Team Foundation Server.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.kernel.org/pub/software/scm/git/git-2.48.1.tar.xz
Soma de verificação MD5 da transferência: 99656f1481e70701198257ada703a480
Tamanho da transferência: 7,4 MB
Espaço em disco estimado exigido: 541 MB (com documentação baixada; adicionar 19 MB para construir documentos; adicionar 21 MB para testes)
Tempo de construção estimado: 0,3 UPC (com paralelismo=4; adicionar 1,0 UPC para construir documentos e até 7 UPC (dependente da velocidade do disco) para testes)
https://www.kernel.org/pub/software/scm/git/git-manpages-2.48.1.tar.xz (não necessário se você tiver instalado asciidoc-10.2.1, xmlto-0.0.29 e preferir reconstrui-las)
https://www.kernel.org/pub/software/scm/git/git-htmldocs-2.48.1.tar.xz e outros documentos (não necessários se você tiver instalado asciidoc-10.2.1 e desejar reconstruir a documentação).
cURL-8.12.1 (necessário para usar Git por meio de "HTTP", "HTTPS", "FTP" or "FTPS")
Apache-2.4.63 (para alguns testes), Fcron-3.2.1 (tempo de execução, para agendamento de tarefas git maintenance), GnuPG-2.4.7 (tempo de execução, possivelmente seja usado para assinar submissões ou etiquetas do Git, ou verificar as assinaturas delas), OpenSSH-9.9p2 (tempo de execução, necessário para usar Git sobre ssh), pcre2-10.45, Subversion-1.14.5 com ligações Perl (tempo de execução, para git svn), Tk-8.6.16 (gitk, um visualizador simples de repositórios do Git, usa Tk em tempo de execução), Valgrind-3.24.0, Authen::SASL (tempo de execução, para git send-email), IO-Socket-SSL-2.089 (tempo de execução, para git send-email se conectar a um servidor SMTP com encriptação SSL), e Systemd-257.3 (tempo de execução, reconstruído com Linux-PAM-1.7.0, para agendamento de tarefas do git maintenance)
xmlto-0.0.29 e asciidoc-10.2.1 , e também dblatex (para a versão PDF do manual de usuário(a)) e docbook2x para criar páginas info
Instale Git executando os seguintes comandos:
./configure --prefix=/usr \ --with-gitconfig=/etc/gitconfig \ --with-python=python3 && make
Você pode construir as páginas de manual e(ou) documentos "HTML" ou usar os baixados. Se você decidir construí-los(as), [então] use as próximas duas instruções.
Se você instalou asciidoc-10.2.1, [então] você pode criar a versão "HTML" das páginas de manual e outros documentos:
make html
Se você instalou asciidoc-10.2.1 e xmlto-0.0.29, [então] você pode criar as páginas de manual:
make man
A suíte de teste pode ser executada em modo paralelo. Para
executar a suíte de teste, emita: GIT_UNZIP=nonexist make test -k |& tee
test.log. A configuração GIT_UNZIP
impede que a suíte de teste use
unzip; nós
precisamos dela porque no BLFS unzip é um link simbólico
para bsdunzip
que não satisfaz a suposição de alguns casos de teste. Se
algum caso de teste falhar, a lista de testes falhos pode ser
mostrada via grep '^not ok'
test.log | grep -v TODO.
Agora, como o(a) usuário(a) root
:
make perllibdir=/usr/lib/perl5/5.40/site_perl install
Instale as páginas de manual como o(a) usuário(a)
root
:
make install-man
Instale os documentos "HTML" como o(a) usuário(a)
root
:
make htmldir=/usr/share/doc/git-2.48.1 install-html
Se você baixou as páginas de manual, [então] descompacte-as
como o(a) usuário(a) root
:
tar -xf ../git-manpages-2.48.1.tar.xz \ -C /usr/share/man --no-same-owner --no-overwrite-dir
Se você baixou os documentos "HTML", [então] descompacte-os
como o(a) usuário(a) root
:
mkdir -vp /usr/share/doc/git-2.48.1 && tar -xf ../git-htmldocs-2.48.1.tar.xz \ -C /usr/share/doc/git-2.48.1 --no-same-owner --no-overwrite-dir && find /usr/share/doc/git-2.48.1 -type d -exec chmod 755 {} \; && find /usr/share/doc/git-2.48.1 -type f -exec chmod 644 {} \;
Para ambos os métodos, o "html-docs" inclue muitos arquivos
planos de texto. Reorganize os arquivos como o(a) usuário(a)
root
:
mkdir -vp /usr/share/doc/git-2.48.1/man-pages/{html,text} && mv /usr/share/doc/git-2.48.1/{git*.txt,man-pages/text} && mv /usr/share/doc/git-2.48.1/{git*.,index.,man-pages/}html && mkdir -vp /usr/share/doc/git-2.48.1/technical/{html,text} && mv /usr/share/doc/git-2.48.1/technical/{*.txt,text} && mv /usr/share/doc/git-2.48.1/technical/{*.,}html && mkdir -vp /usr/share/doc/git-2.48.1/howto/{html,text} && mv /usr/share/doc/git-2.48.1/howto/{*.txt,text} && mv /usr/share/doc/git-2.48.1/howto/{*.,}html && sed -i '/^<a href=/s|howto/|&html/|' /usr/share/doc/git-2.48.1/howto-index.html && sed -i '/^\* link:/s|howto/|&html/|' /usr/share/doc/git-2.48.1/howto-index.txt
--with-gitconfig=/etc/gitconfig
:
Isso configura /etc/gitconfig
como o arquivo que armazena as configurações padrão do
Git abrangente a todo o
sistema.
--with-python=python3
: Use esta
chave para usar Python 3, em
vez do Python 2 com "EOL".
"Python" é usado para a interface git p4 para repositórios
"Perforce" e também usado em alguns testes.
--with-libpcre2
: Use essa chave
se PCRE2 estiver instalado.
tar -xf
../git-manpages-2.48.1.tar.gz -C /usr/share/man
--no-same-owner: Isso descompacta
git-manpages-2.48.1.tar.gz
. A
opção -C
faz com que o "tar" mude
o diretório para /usr/share/man
antes de começar a descomprimir os documentos. A opção
--no-same-owner
impede que o
"tar" preserve os detalhes de usuário(a) e de grupo dos
arquivos. Isso é útil porque esse(a) usuário(a) ou grupo
possivelmente não exista em seu sistema; isso poderia
(potencialmente) ser um risco de segurança.
mv /usr/share/doc/git-2.48.1 ...: Esses comandos movem alguns dos arquivos para subpastas para tornar mais fácil a ordenação ao longo dos documentos e achar o que você está procurando.
find ... chmod ...: Esses comandos corrigem as permissões no arquivo "tar" da documentação enviada.
é o rastreador estúpido de conteúdo |
|
é um emulador de servidor "CVS" para Git |
|
é um navegador gráfico de repositório Git (precisa de Tk-8.6.16) |
|
é invocado por git send-pack e atualiza o repositório com as informações fornecidas a partir do terminal remoto |
|
é um shell de login para contas "SSH" para fornecer acesso restrito ao "Git" |
|
é invocado por git archive --remote e envia um arquivamento gerado para a outra extremidade por meio do protocolo "git" |
|
é invocado por git fetch-pack; ele descobre quais objetos estão ausentes no outro lado e os envia depois de empacotar |
|
é uma ferramenta de gerenciamento de repositórios que otimiza o "Git" para uso em grandes repositórios |
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.
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:
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
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
):
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 .
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:
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
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
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.
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-20241211:
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.
O pacote Guile contém a biblioteca de linguagens de extensão do Projeto "GNU". Guile também contém um interpretador Scheme independente.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://ftp.gnu.org/gnu/guile/guile-3.0.10.tar.xz
Soma de verificação MD5 da transferência: 375f8a423a23d229552512113aa4a954
Tamanho da transferência: 5,5 MB
Espaço em disco estimado exigido: 184 MB (adicionar 4 MB para os testes)
Tempo de construção estimado: 4,5 UPC (Usando paralelismo=4; adicionar 0,3 UPC para testes)
Emacs-30.1 e GDB-16.2 (dependências somente em tempo de execução).
Instale Guile executando os seguintes comandos:
./configure --prefix=/usr \ --disable-static \ --docdir=/usr/share/doc/guile-3.0.10 && make && make html && makeinfo --plaintext -o doc/r5rs/r5rs.txt doc/r5rs/r5rs.texi && makeinfo --plaintext -o doc/ref/guile.txt doc/ref/guile.texi
Para testar os resultados, emita: ./check-guile. Em um
sistema "i686", até dez (10) testes falharão na suíte de
teste numbers.test
devido a
pequenos erros de arredondamento de ponto flutuante.
Agora, como o(a) usuário(a) root
:
make install && make install-html && mkdir -p /usr/share/gdb/auto-load/usr/lib && mv /usr/lib/libguile-*-gdb.scm /usr/share/gdb/auto-load/usr/lib && mv /usr/share/doc/guile-3.0.10/{guile.html,ref} && mv /usr/share/doc/guile-3.0.10/r5rs{.html,} && find examples -name "Makefile*" -delete && cp -vR examples /usr/share/doc/guile-3.0.10 && for DIRNAME in r5rs ref; do install -v -m644 doc/${DIRNAME}/*.txt \ /usr/share/doc/guile-3.0.10/${DIRNAME} done && unset DIRNAME
--disable-static
:
Essa chave impede a instalação das versões estáticas das
bibliotecas.
é um interpretador "Scheme" independente para Guile |
|
é 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 |
|
é um script para analisar declarações em seu código C para funções visíveis C do Scheme |
|
é 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 |
|
é um vínculo simbólico para guild |
O pacote LLVM contém uma coleção de compiladores modulares e reusáveis e tecnologias de conjunto de ferramentas. As bibliotecas centrais Low Level Virtual Machine (LLVM) fornecem um otimizador moderno independente de origem e destino, junto com suporte para geração de código para muitas CPUs populares (bem como algumas menos comuns!). Essas bibliotecas são construídas em torno de uma representação de código bem especificada, conhecida como a LLVM Intermediate Representation ("LLVM IR").
Clang fornece novas estruturas C, C++, Objective C e Objective C++ de interação direta com o(a) usuário(a) para o LLVM e é exigido por alguns pacotes de área de trabalho, como firefox, e para rust se for construído usando o sistema LLVM.
O pacote Compiler RT fornece higienizador de tempo de execução e bibliotecas de perfilamento para desenvolvedores(as) que usam Clang e LLVM.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/llvm/llvm-project/releases/download/llvmorg-19.1.7/llvm-19.1.7.src.tar.xz
Soma de verificação MD5 da transferência: 45229744809103ad151e3757a0f21d3d
Tamanho da transferência: 65 MB
Espaço em disco estimado exigido: 3,5 GB (964 MB instalado; adicionar 20 GB para testes e 308 MB para documentação)
Tempo de construção estimado: 13 UPC (Adicionar 8 UPC para testes; ambos usando paralelismo=8)
módulos Cmake para LLVM
Transferência: https://anduin.linuxfromscratch.org/BLFS/llvm/llvm-cmake-19.1.7.src.tar.xz
Soma de verificação MD5 da transferência: 52b5249a06305e19c3bdae2e972c99c3
Tamanho da transferência: 12 KB
Dependências de terceiros(as) para sistema de construção LLVM
Transferência: https://anduin.linuxfromscratch.org/BLFS/llvm/llvm-third-party-19.1.7.src.tar.xz
Soma de verificação MD5 da transferência: d950171ac5ea4a1a20cb8f6eb9f1c8eb
Tamanho da transferência: 448 KB
Clang
Transferência: https://github.com/llvm/llvm-project/releases/download/llvmorg-19.1.7/clang-19.1.7.src.tar.xz
Soma de verificação MD5 da transferência: 8a29181acd27b9c03b0039b75f5fcaa0
Tamanho da transferência: 23 MB
Compilador RT
Transferência: https://github.com/llvm/llvm-project/releases/download/llvmorg-19.1.7/compiler-rt-19.1.7.src.tar.xz
Soma de verificação MD5 da transferência: 0286b00ef3057362eb0636d3298999b1
Tamanho da transferência: 2,5 MB
Doxygen-1.13.2, git-2.48.1, Graphviz-12.2.1, libxml2-2.13.6, psutil-7.0.0 (para testes), Pygments-2.19.1, PyYAML-6.0.2 (para testes), rsync-3.4.1 (para testes), Systemd-257.3 (reconstruído com PAM, para testes), texlive-20240312 (ou install-tl-unx), Valgrind-3.24.0, Zip-3.0, myst-parser (para construir documentação), OCaml e Z3
Dois tarballs adicionais llvm-cmake-19.1.7.src.tar.xz
e llvm-third-party-19.1.7.src.tar.xz
são
necessários para o sistema de construção do LLVM. O fluxo de
desenvolvimento espera eles extraídos no mesmo nível, como o
tarball llvm-19.1.7.src.tar.xz
,
e os diretórios extraídos renomeados para cmake
e third-party
. Extraia-os e modifique o
sistema de construção para evitar criar diretórios
ambiguamente nomeados fora da hierarquia llvm-19.1.7.src
:
tar -xf ../llvm-cmake-19.1.7.src.tar.xz && tar -xf ../llvm-third-party-19.1.7.src.tar.xz && sed '/LLVM_COMMON_CMAKE_UTILS/s@../cmake@cmake-19.1.7.src@' \ -i CMakeLists.txt && sed '/LLVM_THIRD_PARTY_DIR/s@../third-party@third-party-19.1.7.src@' \ -i cmake/modules/HandleLLVMOptions.cmake
Esses dois tarballs extraem nos diretórios chamados
cmake-19.1.7.src
e
third-party-19.1.7.src
, ou
seja, os nomes dos diretórios carecem do prefixo
llvm-
.
Instale o clang na árvore do fonte executando os seguintes comandos:
tar -xf ../clang-19.1.7.src.tar.xz -C tools && mv tools/clang-19.1.7.src tools/clang
Se você tiver baixado compiler-rt, instale-o na árvore do fonte executando os seguintes comandos:
tar -xf ../compiler-rt-19.1.7.src.tar.xz -C projects && mv projects/compiler-rt-19.1.7.src projects/compiler-rt
Existem muitos conjuntos de comandos sequenciais Python nesse pacote que usam /usr/bin/env python para acessar o Python do sistema, que no LFS é Python-3.13.2. Use o seguinte comando para corrigir esses conjuntos de comandos sequenciais:
grep -rl '#!.*python' | xargs sed -i '1s/python$/python3/'
Certifique-se de instalar o programa FileCheck que é necessário para a suíte de teste de alguns pacotes (por exemplo rustc-1.85.0):
sed 's/utility/tool/' -i utils/FileCheck/CMakeLists.txt
Instale o LLVM executando os seguintes comandos:
mkdir -v build && cd build && CC=gcc CXX=g++ \ cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_SKIP_INSTALL_RPATH=ON \ -D LLVM_ENABLE_FFI=ON \ -D CMAKE_BUILD_TYPE=Release \ -D LLVM_BUILD_LLVM_DYLIB=ON \ -D LLVM_LINK_LLVM_DYLIB=ON \ -D LLVM_ENABLE_RTTI=ON \ -D LLVM_TARGETS_TO_BUILD="host;AMDGPU" \ -D LLVM_BINUTILS_INCDIR=/usr/include \ -D LLVM_INCLUDE_BENCHMARKS=OFF \ -D CLANG_DEFAULT_PIE_ON_LINUX=ON \ -D CLANG_CONFIG_FILE_SYSTEM_DIR=/etc/clang \ -W no-dev -G Ninja .. && ninja
Se você deseja executar a suíte de teste e tiver baixado o
compiler-rt, contorne um problema que causa falhas de testes
ao construir o LLVM com GCC e -D
CLANG_CONFIG_FILE_SYSTEM_DIR
:
sed -e 's/config.has_no_default_config_flag/True/' \ -i ../projects/compiler-rt/test/lit.common.cfg.py
A suíte de testes do LLVM pode produzir muitos arquivos de
despejo de core. Eles ocuparão uma grande quantidade de
espaço em disco e o processo de despejo de core pode retardar
significativamente a testagem. Para testar os resultados com
o despejo de core desabilitado, certifique-se de que Systemd-257.3 e Shadow-4.17.3 tenham
sido reconstruídos com suporte a Linux-PAM-1.7.0 (se
você estiver interagindo por meio de uma sessão SSH ou
gráfica, certifique-se também de que o servidor OpenSSH-9.9p2 ou o gerenciador de área de
trabalho tenha sido construído com Linux-PAM-1.7.0) e a
sessão de login atual seja iniciada depois de atualizar o
arquivo /etc/pam.d/system-session
para incluir
pam_systemd.so
e, em
seguida, emita:
systemctl --user start dbus && systemd-run --user --pty -d -G -p LimitCORE=0 ninja check-all
Se -jN
(N substituído por um
número) for passado para ninja, os testes serão
construídos com N núcleos lógicos, mas executados usando
todos os núcleos lógicos disponíveis. Execute o comando de
teste em um cgroup (passe a opção
-p AllowedCPUs=...
para o comando
systemd-run, leia
“Use o Grupo de Controle do Linux para Limitar o Uso de
Recursos” para detalhes) para limitar o número de núcleos
lógicos para executar os testes. Um teste chamado
Linux/clone_setns.cpp
falhará
se CONFIG_USER_NS
não estiver
habilitada na configuração do núcleo.
Agora, como o(a) usuário(a) root
:
ninja install
-D
CMAKE_SKIP_INSTALL_RPATH=ON
: Essa chave faz com
que cmake
remova caminhos de pesquisa de biblioteca rigidamente
codificados (rpath) ao instalar um arquivo binário executável
ou uma biblioteca compartilhada. Esse pacote não precisa do
rpath depois de instalado no local padrão, e o rpath
ocasionalmente pode causar efeitos indesejados ou até mesmo
problemas de segurança.
-D
LLVM_ENABLE_FFI=ON
: Essa chave permite que o
LLVM use libffi.
-D
LLVM_BUILD_LLVM_DYLIB=ON
: Essa chave constrói as
bibliotecas como estáticas e vincula todas elas em uma
biblioteca compartilhada exclusiva. Essa é a forma
recomendada de construir uma biblioteca compartilhada.
-D
CMAKE_BUILD_TYPE=Release
: Essa chave habilita
otimizações do compilador para a finalidade de acelerar o
código e reduzir o tamanho dele. Também desabilita algumas
verificações de compilação que não são necessárias em um
sistema de produção.
-D
LLVM_TARGETS_TO_BUILD="host;AMDGPU"
: Essa chave
habilita construir para o mesmo alvo que o anfitrião e,
também, para a GPU r600 da AMD, usada pelos controladores
r600 e radeonsi do Mesa. O padrão é todos os alvos. Você pode
usar uma lista separada por ponto e vírgula. Os alvos válidos
são: host, AArch64, AMDGPU, ARM, AVR, BPF, Hexagon, Lanai,
LoongArch, Mips, MSP430, NVPTX, PowerPC, RISCV, Sparc,
SystemZ, SystemZ, VE, WebAssembly, X86, XCore ou all.
-D
LLVM_LINK_LLVM_DYLIB=ON
: Usado em conjunção com
-D
LLVM_BUILD_LLVM_DYLIB=ON
, essa chave habilita
vincular as ferramentas à biblioteca compartilhada em vez das
estáticas. Reduz ligeiramente o tamanho delas e também
garante que "llvm-config" usará corretamente "libLLVM-19.so".
-D
LLVM_ENABLE_RTTI=ON
: Essa chave é usada para
construir LLVM com informações de tipo de tempo de execução.
Isso é necessário para construir Mesa-24.3.4.
-D
LLVM_BINUTILS_INCDIR=/usr/include
: Essa chave é
usada para informar ao sistema de construção o local dos
cabeçalhos do binutils, que foram instalados no LFS. Isso
permite a construção de LLVMgold.so
, que é necessário para
construir aplicativos com clang e Link Time
Optimization (LTO).
-D
LLVM_INCLUDE_BENCHMARKS=OFF
: é usado para
desabilitar geração de alvos de construção para as avaliações
do LLVM. Essa opção exige código adicional que não está
disponível atualmente.
-D
CLANG_DEFAULT_PIE_ON_LINUX=ON
: torna a opção
-fpie
o padrão ao compilar
aplicativos. Junto com o recurso ASLR habilitado no núcleo, isso
derrota alguns tipos de ataques baseados em esquemas
conhecidos de memória.
-D
CLANG_CONFIG_FILE_SYSTEM_DIR=/etc/clang
: faz com
que clang e
clang++
pesquisem /etc/clang
para
arquivos de configuração.
-D BUILD_SHARED_LIBS=ON
: se usado
em vez de -D
LLVM_BUILD_LLVM_DYLIB=ON
e -D LLVM_LINK_LLVM_DYLIB=ON
,
constrói todas as bibliotecas LLVM (cerca de sessenta (60)) como
bibliotecas compartilhadas em vez de estáticas.
-D LLVM_ENABLE_DOXYGEN
: habilita
a geração de documentação HTML navegável se você tiver
instalado Doxygen-1.13.2. Você deveria executar
make
doxygen-html depois e instalar a documentação
gerada manualmente.
Se você tiver construído o Clang, como o(a) usuário(a)
root
, crie dois arquivos de
configuração para tornar SSP
habilitado por padrão para clang e clang++, de forma que a
configuração padrão do recurso SSP deles seja consistente
com GCC-14.2.0:
mkdir -pv /etc/clang && for i in clang clang++; do echo -fstack-protector-strong > /etc/clang/$i.cfg done
lista as GPUs AMD instaladas; em tempo de execução
ele precisa de |
|
é uma ferramenta de análise estática |
|
é a ferramenta automática de redução de casos de teste |
|
é usado para testar a API da libclang e demonstrar o uso dela |
|
é o compilador C, C++ e Objective-C do Clang |
|
é uma ferramenta para realizar análise estática de código e exibir Abstract Syntax Trees (AST) |
|
é uma ferramenta para coletar o nome do USR e o local de definições externas em um arquivo de fonte |
|
é uma ferramenta para formatar código C/C++/Java/JavaScript/Objective-C/Protobuf |
|
é um utilitário envólucro sobre o vinculador de dispositivo |
|
é uma ferramenta para agrupar/desagrupar arquivos descarregados OpenMP associados a um arquivo fonte comum |
|
é 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 |
|
é uma ferramenta de refatoração baseada em Clang para C, C++ e Objective-C |
|
é uma ferramenta para renomear símbolos em aplicativos C/C++ |
|
é uma ferramenta para escanear dependências em um arquivo fonte |
|
é um programa que traduz arquivos de descrição de
alvo relacionados ao compilador ( |
|
é uma combinação de ferramentas para lidar com diagnósticos em clang |
|
é 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. |
|
é uma ferramenta usada para manipular arquivos de símbolos de depuração DWARF arquivados, compatível com o comando dsymutil do Darwin |
|
executa clang-format em remendos gerados pelo git (exige git-2.48.1) |
|
é uma ferramenta Python para despejar e construir mapas de cabeçalho |
|
gera uma base de dados de comandos de construção para um projeto |
|
é o compilador estático LLVM |
|
é usado para executar aplicativos diretamente a partir do bitcode do LLVM |
|
é uma ferramenta usada para converter endereços em nomes de arquivos e números de linha |
|
é o arquivador do LLVM |
|
é o montador do LLVM |
|
é o analizador de bitcode do LLVM |
|
remove o bitcode de LLVM de um objeto |
|
é uma ferramenta para concatenar módulos llvm |
|
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 |
|
Imprime as opções de compilação do LLVM |
|
é usado para emitir informações de cobertura |
|
é um desmontador de bytecode |
|
é uma ferramenta para converter arquivos de recursos da Microsoft em COFF |
|
é usado como um Despejador de Dados de ABI da C++ |
|
é usado para desmontar símbolos C++ no código llvm |
|
é usado para remapear símbolos mutilados da C++ |
|
imprime uma representação lógica de informações de depuração de baixo nível |
|
é um serviço que fornece informações de depuração por meio de uma API de HTTP para analisar binários despojados |
|
é uma interface para o processo de segundo plano llvm-debuginfod para achar artefatos debuginfod |
|
é o 'diff' estrutural do LLVM |
|
é o desmontador do LLVM |
|
imprime o conteúdo das seções DWARF em arquivos objeto |
|
é uma ferramenta para copiar e manipular informações de depuração |
|
mescla arquivos divididos DWARF |
|
é usado para ler informações relativas a uma ABI de um binário ELF |
|
é 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 |
|
é usado para extrair uma função a partir de um módulo do LLVM |
|
é 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" |
|
é usado para mesclar "stubs" de interface com arquivos de objeto |
|
é usado para reescrever comandos de carregamento no formato binário "MachO" |
|
é usado para analisar arquivos de objetos relocáveis para tornar o conteúdo deles executável em um processo alvo |
|
fornece funcionalidade básica da libtool em sistemas baseados em Darwin. Isso é útil principalmente se você estiver gerando binários para sistemas macOS |
|
é o vinculador do LLVM |
|
é usado para criar binários universais a partir de arquivos MachO |
|
é o vinculador Link Time Optimization (LTO) do LLVM |
|
é um equipamento de teste para a interface LTO baseada em resolução |
|
é um montador/desmontador de código de máquina autônomo |
|
é uma ferramenta de análise de desempenho para medir estaticamente o desempenho do código de máquina |
|
é um área de recreação para código de máquina fornecido pelo LLVM |
|
é uma ferramenta para extrair um módulo a partir de arquivos bitcode multi módulos |
|
é uma ferramenta para gerar arquivos e catálogos assinados a partir de um manifesto de montagem lado a lado (usado para SDK da Microsoft) |
|
é usado para listar o bitcode do LLVM e a tabela de símbolos do arquivo objeto |
|
é a versão do LLVM de uma ferramenta objcopy |
|
é um despejador de arquivo objeto do LLVM |
|
é uma ferramenta para gerar um informe de otimização a partir de arquivos de registro de otimização YAML |
|
é um despejador Program Database (PDB). PDB é um formato da Microsoft |
|
é uma pequena ferramenta para manipular e imprimir arquivos de dados de perfil |
|
gera informações de perfil SPGO do LLVM |
|
é usado para gerar um índice para um arquivamento do LLVM |
|
é uma ferramenta independente de plataforma para compilar scripts de recursos em arquivos de recursos de binários |
|
exibe informações específicas de formato de baixo nível relativas a arquivos de objeto |
|
é o leitor e transformador de arquivos TAPI do LLVM |
|
é usado para reduzir automaticamente os casos de teste ao executar uma suíte de teste |
|
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 |
|
é a ferramenta MC-JIT do LLVM |
|
é o despejador de tamanho de objeto do LLVM |
|
é o divisor de módulo do LLVM |
|
é usado para gerar arquivos aleatórios |
|
imprime sequências de caracteres encontradas em um binário (arquivo objeto, executável ou biblioteca de arquivamento) |
|
converte endereços em locais de código-fonte |
|
é a descrição alvo do LLVM para o gerador de código C++ |
|
é o verificador TargetLibraryInfo versus SDK do LLVM |
|
é uma ferramenta para desmantelar nomes |
|
é uma implementação do sistema de rastreamento de chamadas de função XRay do Google |
|
lista as GPUs NVIDIA instaladas; em tempo de
execução ele precisa de |
|
é o otimizador do LLVM |
|
é a ferramenta de processamento de cobertura de higienizador |
|
é a ferramenta de processamento de estatísticas de higienizador |
|
é um conjunto de comandos sequenciais Perl que invoca o analisador estático Clang |
|
é um conjuntos de comandos sequenciais Python que invoca o analisador estático Clang |
|
é um visualizador dos resultados do analisador estático Clang |
|
é a ferramenta do LLVM para verificar a ordem da lista de uso |
Lua é uma linguagem de programação poderosa e leve projetada para estender aplicativos. Também é frequentemente usada como uma linguagem autônoma de uso geral. Lua é implementada como uma pequena biblioteca de funções "C", escrita em "ANSI C", e compila sem modificações em todas as plataformas conhecidas. Os objetivos de implementação são simplicidade, eficiência, portabilidade e baixo custo de incorporação. O resultado é um mecanismo de linguagem rápido e compacto, tornando-a ideal em sistemas embarcados também.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.lua.org/ftp/lua-5.4.7.tar.gz
Soma de verificação MD5 da transferência: fc3f3291353bbe6ee6dec85ee61331e8
Tamanho da transferência: 368 KB
Espaço em disco estimado exigido: 3,8 MB (com testes Básicos)
Tempo de construção estimado: menos que 0,1 UPC (com os testes Básicos)
Remendo exigido: https://www.linuxfromscratch.org/patches/blfs/12.3/lua-5.4.7-shared_library-1.patch
Transferência da Suíte Opcional de Teste (HTTP): https://www.lua.org/tests/lua-5.4.7-tests.tar.gz
Soma de verificação "MD5" da transferência da Suíte Opcional de Teste: 5fcf34336004f83de447c79958ea678e
Tamanho da transferência da Suíte Opcional de Teste: 134 KB
Alguns pacotes verificam o arquivo pkg-config para Lua, o qual é criado com:
cat > lua.pc << "EOF"
V=5.4
R=5.4.7
prefix=/usr
INSTALL_BIN=${prefix}/bin
INSTALL_INC=${prefix}/include
INSTALL_LIB=${prefix}/lib
INSTALL_MAN=${prefix}/share/man/man1
INSTALL_LMOD=${prefix}/share/lua/${V}
INSTALL_CMOD=${prefix}/lib/lua/${V}
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include
Name: Lua
Description: Uma Linguagem de Extensão Extensível
Version: ${R}
Requires:
Libs: -L${libdir} -llua -lm -ldl
Cflags: -I${includedir}
EOF
Instale Lua executando os seguintes comandos:
patch -Np1 -i ../lua-5.4.7-shared_library-1.patch && make linux
Para testar os resultados, emita: make test. “Isso executará o interpretador e imprimirá a versão dele”. Testes mais abrangentes podem ser realizados se você baixou o tarball da "Suíte de teste". Esses testes precisam ser executados depois que o pacote estiver instalado, por isso seguimos para a descrição abaixo.
Agora, como o(a) usuário(a) root
:
make INSTALL_TOP=/usr \ INSTALL_DATA="cp -d" \ INSTALL_MAN=/usr/share/man/man1 \ TO_LIB="liblua.so liblua.so.5.4 liblua.so.5.4.7" \ install && mkdir -pv /usr/share/doc/lua-5.4.7 && cp -v doc/*.{html,css,gif,png} /usr/share/doc/lua-5.4.7 && install -v -m644 -D lua.pc /usr/lib/pkgconfig/lua.pc
Aqui descrevemos somente os "Testes básicos". Descompacte o
"tarball" e mude para o diretório lua-5.4.7-tests
e emita lua -e "_U=true" all.lua.
Se os testes terminarem sem erros, [então] você verá uma
mensagem contendo a sequência de caracteres "final OK".
O pacote luajit contém um compilador Just-In-Time para Lua. Ele frequentemente é usado como middleware de automação, e tem alto desempenho, ao mesmo tempo em que ocupa pouca memória.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://anduin.linuxfromscratch.org/BLFS/luajit/luajit-20250212.tar.xz
Soma de verificação MD5 da transferência: ac5d07d31cc46d97e577764e402921c7
Tamanho da transferência: 728 KB
Espaço em disco estimado exigido: 9,0 MB
Tempo de construção estimado: 0,2 UPC
Instale luajit executando os seguintes comandos:
make PREFIX=/usr amalg
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make PREFIX=/usr install && rm -v /usr/lib/libluajit-5.1.a
amalg
: Isso garante
uma construção amalgamada, ou seja, o núcleo LuaJIT é
compilado como um grande arquivo C, permitindo que o GCC gere
código mais rápido e mais curto.
Mercurial é uma ferramenta de gerenciamento distribuído de controle de fonte semelhante ao Git e ao Bazaar. Mercurial é escrita em Python e é usada por projetos como "Mozilla" para "Firefox" e "Thunderbird".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.mercurial-scm.org/release/mercurial-6.9.2.tar.gz
Soma de verificação MD5 da transferência: 05cb7a265bf503c0b934e3591f3c66ac
Tamanho da transferência: 8,3 MB
Espaço em disco estimado exigido: 83 MB (com documentos, adicionar 1,6 GB para testes)
Tempo de construção estimado: 0,3 UPC (com documentos; adicionar 15 UPC para testes; ambos usando paralelismo=8)
docutils-0.21.2 (exigido para construir
a documentação), git-2.48.1, GPGME-1.24.2 (com ligações
"Python"), OpenSSH-9.9p2 (tempo de execução, para
acessar repositórios "ssh://..."), Pygments-2.19.1,
rustc-1.85.0 (veja-se rust/README.rst
e rust/rhg/README.md
), Subversion-1.14.5
(com ligações "Python"), Bazaar, CVS, pyflakes,
pyOpenSSL e
re2
Construa Mercurial emitindo o seguinte comando:
make build
Para construir a documentação (exige docutils-0.21.2), emita:
make doc
Se você desejar executar os testes, os testes rust precisam ser removidos, pois estão atualmente quebrados devido a erros de sintaxe. Para fazer isso, emita:
sed -i '138,142d' Makefile
Para executar a suíte de teste, emita:
TESTFLAGS="-j<N>
--tmpdir tmp" make check
onde <N>
é um
número inteiro entre um e o número de (camadas X do
processador), inclusive. Testes possivelmente falhem porque
algumas mensagens de erro foram mudadas no Python ou alguns
avisos de descontinuação são impressos, que não estavam
presentes quando o teste foi projetado. Dois testes são
conhecidos por falharem: test-duplicateoptions.py e
test-highlight.t.
Para a finalidade de investigar quaisquer testes aparentemente falhos, você possivelmente use o conjunto de comandos sequenciais run-tests.py. Para ver as quase quarenta chaves, algumas delas muito úteis, emita tests/run-tests.py --help. Executando os seguintes comandos, você executará somente os testes que falharam antes:
pushd tests && rm -rf tmp && ./run-tests.py --tmpdir tmp test-gpg.t popd
Normalmente, as falhas anteriores serão reproduzíveis. Porém,
se você adicionar a chave --debug
antes de --tmpdir
e executar os
testes novamente, [então] algumas falhas possivelmente
desapareçam, o que é um problema com a suíte de teste. Se
isso acontecer, [então] não mais existirão falhas, mesmo se
você não passar a chave "--debug" novamente.
Uma chave interessante é --time
,
que gerará uma tabela de todos os testes executados e
respectivos tempos de início, fim, usuário(a), sistema e real
assim que os testes estiverem completos. Observe que essas
chaves possivelmente sejam usadas com make check incluindo-as na
variável de ambiente TESTFLAGS
.
Instale o Mercurial
executando o seguinte comando (como root
):
make PREFIX=/usr install-bin
Se você construiu a documentação, [então] instale-a
executando o seguinte comando (como root
):
make PREFIX=/usr install-doc
Depois da instalação, dois testes muito rápidos e simples deveriam executar corretamente. O primeiro precisa de alguma configuração:
cat >> ~/.hgrc << "EOF"
[ui]
username = <nome_usuário(a)> <usuário(a)@correio>
EOF
onde você precisa substituir <nome_usuário(a)> e <seu@correio-eletrônico> (o correio é opcional e pode ser omitido). Com a identidade do(a) usuário(a) definida, execute hg debuginstall e diversas linhas serão exibidas, a última dizendo "no problems detected". Outro teste rápido e simples é apenas hg, que deveria gerar comandos básicos que conseguem ser usados com hg.
/etc/mercurial/hgrc
e
~/.hgrc
A maioria das extensões está desabilitada por padrão. Execute hg help extensions se precisar habilitar alguma, por exemplo. ao investigar falhas de teste. Isso exibirá uma lista de extensões habilitadas e desabilitadas, bem como mais informações, tais como habilitar ou desabilitar extensões usando arquivos de configuração.
Se você tiver instalado o make-ca-1.15 e deseja que o
Mercurial use os
certificados, [então] como o(a) usuário(a) root
, emita:
install -v -d -m755 /etc/mercurial &&
cat > /etc/mercurial/hgrc << "EOF"
[web]
cacerts = /etc/pki/tls/certs/ca-bundle.crt
EOF
NASM ("Netwide Assembler") é um montador "80x86" projetado para portabilidade e modularidade. Inclui também um desmontador.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.nasm.us/pub/nasm/releasebuilds/2.16.03/nasm-2.16.03.tar.xz
Soma de verificação MD5 da transferência: 2b8c72c52eee4f20085065e68ac83b55
Tamanho da transferência: 1008,1 KB
Espaço em disco estimado exigido: 41 MB
Tempo de construção estimado: 0,2 UPC
Documentação opcional: https://www.nasm.us/pub/nasm/releasebuilds/2.16.03/nasm-2.16.03-xdoc.tar.xz
Se você baixou a documentação opcional, [então] coloque-a na árvore do fonte:
tar -xf ../nasm-2.16.03-xdoc.tar.xz --strip-components=1
Instale NASM executando os seguintes comandos:
./configure --prefix=/usr && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
Se você baixou a documentação opcional, [então] instale-a com
as seguintes instruções como o(a) usuário(a) root
:
install -m755 -d /usr/share/doc/nasm-2.16.03/html && cp -v doc/html/*.html /usr/share/doc/nasm-2.16.03/html && cp -v doc/*.{txt,ps,pdf} /usr/share/doc/nasm-2.16.03
O pacote patchelf contém um pequeno utilitário para modificar o vinculador dinâmico e o "RPATH" dos executáveis "ELF".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/NixOS/patchelf/releases/download/0.18.0/patchelf-0.18.0.tar.gz
Soma de verificação MD5 da transferência: b02099b0d63f06b3fe370f4edfc0c085
Tamanho da transferência: 448 KB
Espaço em disco estimado exigido: 20 MB (com testes)
Tempo de construção estimado: 0,1 UPC (com testes)
Instale patchelf executando os seguintes comandos:
./configure --prefix=/usr \ --docdir=/usr/share/doc/patchelf-0.18.0 && make
Para testar os resultados, emita: make check.
Agora, como o(a) usuário(a) root
:
make install
Os pacotes de módulos Perl (também chamados de Distribuições, porque cada um pode conter vários módulos) adicionam objetos úteis à linguagem Perl. Os pacotes listados nesta página são exigidos ou recomendados para outros pacotes no livro. Se eles tiverem módulos dependentes, [então] esses estarão ou nesta página ou na próxima página (Dependências de Módulos "Perl").
Em muitos casos, somente as dependências exigidas ou as
recomendadas são listadas - pode existir outros módulos que
permitam mais testes serem executados, mas omiti-los ainda
permitirá que os testes PASSEM
.
Para uns poucos módulos, os(as) editores(as) do BLFS determinaram que outros módulos ainda listados como pré requisitos não são exigidos e os omitiram.
Quando uma dependência alfabeticamente anterior do mesmo módulo atrai uma dependência, ela não é mencionada para as dependências posteriores do mesmo módulo. Você deveria construir as dependências listadas na ordem.
Geralmente compensa executar os testes para módulos "Perl"; eles frequentemente conseguem mostrar problemas, como dependências ausentes, que são exigidas para usar o módulo. Aqui, os(as) editores(as) tentaram separar tais dependências, que são exigidas somente para executar suítes de teste, mas elas não serão mencionadas para um módulo onde uma das dependências dele usa esse módulo para a própria suíte de teste dela. Ou seja, se você pretende executar as suítes de teste, [então] execute-as para cada dependência do módulo.
É possível instalar automaticamente as versões atuais de um módulo e todas as dependências ausentes ou muito antigas recomendadas pelo(a) desenvolvedor(a) usando a "CPAN". Veja-se Instalação automatizada "CPAN" de módulos "Perl" no final desta página.
A maioria desses módulos instala somente arquivos abaixo de
/usr/lib/perl5/site_perl/5.xx.y
e eles não serão documentados. Um ou dois instalão
aplicativos (principalmente scripts "Perl"), ou uma
biblioteca, em /usr/bin/
ou
/usr/lib/
e esses estão documentados.
Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/perl-modules
O módulo "Archive::Zip" permite que um aplicativo "Perl" crie, manipule, leia e escreva arquivamentos "Zip".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.cpan.org/authors/id/P/PH/PHRED/Archive-Zip-1.68.tar.gz
Soma de verificação MD5 da transferência: a33993309322164867c99e04a4000ee3
Esse módulo usa as instruções padrão de construção e instalação:
perl Makefile.PL && make && make test
Agora, como o(a) usuário(a) root
:
make install
Esse módulo permite que você desabilite a "autovivificação" (a criação e povoamento automática de novos vetores e resumos sempre que variáveis indefinidas são desreferenciadas) e, opcionalmente, lançar um aviso ou um erro quando isso tivesse ocorrido.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.cpan.org/authors/id/V/VP/VPIT/autovivification-0.18.tar.gz
Soma de verificação MD5 da transferência: 8dec994e1e7d368e055f21a5777385a0
O módulo "Business::ISBN" fornece funções para trabalhar-se com números internacionais padrão de livros.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.cpan.org/authors/id/B/BR/BRIANDFOY/Business-ISBN-3.011.tar.gz
Soma de verificação MD5 da transferência: 58f498cc9b44f0727ffa9b66c67f812e
O módulo Business::ISMN fornece funções para trabalhar com International Standard Music Numbers.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.cpan.org/authors/id/B/BR/BRIANDFOY/Business-ISMN-1.204.tar.gz
Soma de verificação MD5 da transferência: dbc9023703262ee29d1b9e9a8294106c
O módulo Business::ISSN fornece funções para trabalhar com International Standard Serial Numbers.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.cpan.org/authors/id/B/BR/BRIANDFOY/Business-ISSN-1.008.tar.gz
Soma de verificação MD5 da transferência: 967e79eff741c8710d70c64fb593eda1
"Class::Accessor" gera acessadores/mutadores para sua classe.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.cpan.org/authors/id/K/KA/KASEI/Class-Accessor-0.51.tar.gz
Soma de verificação MD5 da transferência: 1f1e5990f87cad7659b292fed7dc0407
O módulo "Data::Compare" compara duas estruturas de dados perl.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.cpan.org/authors/id/D/DC/DCANTRELL/Data-Compare-1.29.tar.gz
Soma de verificação MD5 da transferência: ce9cb42ba6af634f5ab51f13f37e2ddb
"Data::Dump" fornece uma impressão bonita de estruturas de dados.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.cpan.org/authors/id/G/GA/GARU/Data-Dump-1.25.tar.gz
Soma de verificação MD5 da transferência: 9bd7131ef0441e1e0e001bf85e9fae31
"Data::Uniqid" fornece três rotinas simples para gerar "IDs" exclusivos.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.cpan.org/authors/id/M/MW/MWX/Data-Uniqid-0.12.tar.gz
Soma de verificação MD5 da transferência: 6bab3b5da09fedfdf60ce2629a7367db
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" implementa o Calendário Juliano.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.cpan.org/authors/id/W/WY/WYANT/DateTime-Calendar-Julian-0.107.tar.gz
Soma de verificação MD5 da transferência: abd775d1d82f0f45d4fd6214cf7bbed8
DateTime::Format::Builder cria classes e objetos do analisador DateTime.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.cpan.org/authors/id/D/DR/DROLSKY/DateTime-Format-Builder-0.83.tar.gz
Soma de verificação MD5 da transferência: aa41917ca9ad69b3898728ce9c2fb477
"Encode::EUCJPASCII" fornece um mapeamento "eucJP-open" ("Extended Unix Code", japonês).
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.cpan.org/authors/id/N/NE/NEZUMI/Encode-EUCJPASCII-0.03.tar.gz
Soma de verificação MD5 da transferência: 5daa65f55b7c2050bb0713d9e95f239d
O módulo "Encode::HanExtra" fornece conjuntos extras de codificações chinesas as quais não estão incluídas no módulo "Encode" principal devido a problemas de tamanho.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.cpan.org/authors/id/A/AU/AUDREYT/Encode-HanExtra-0.23.tar.gz
Soma de verificação MD5 da transferência: e1d3bc32c1c8ee304235a06fbcd5d5a4
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
O módulo "Encode::JIS2K" fornece codificações "JIS X 0212" (também conhecidas como "JIS 2000").
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.cpan.org/authors/id/D/DA/DANKOGAI/Encode-JIS2K-0.05.tar.gz
Soma de verificação MD5 da transferência: 06acd9e878d41ffc354258e265db2875
File::FcntlLock é um módulo para fazer bloqueio de arquivos
de maneira orientada a objetos usando a chamada de sistema
fcntl(2). Isso
permite bloqueios em partes de um arquivo, bem como em todo
o arquivo e supera alguns problemas conhecidos com
flock(2), no
qual a função flock()
do Perl
é baseada por padrão.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.cpan.org/authors/id/J/JT/JTT/File-FcntlLock-0.22.tar.gz
Soma de verificação MD5 da transferência: 579698d735d864ee403674f1175f789d
"File::Slurper" é um módulo simples, sensato e eficiente para sorver um arquivo.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.cpan.org/authors/id/L/LE/LEONT/File-Slurper-0.014.tar.gz
Soma de verificação MD5 da transferência: d43bc5f069035eff3b6b7c418b4cedc4
"File::Which" fornece uma implementação portável do utilitário 'which'.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.cpan.org/authors/id/P/PL/PLICEASE/File-Which-1.27.tar.gz
Soma de verificação MD5 da transferência: d5c9154262b93398f0750ec364207639
A distribuição "HTML::Parser" é uma coleção de módulos que analisam e extraem informações a partir de documentos "HTML".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.cpan.org/authors/id/O/OA/OALDERS/HTML-Parser-3.83.tar.gz
Soma de verificação MD5 da transferência: 17a4c886024bfad1cffcbe6b46cda128
HTML-Tagset-3.24 e HTTP-Message-7.00 (estritamente falando, não exigido para construção, mas o módulo HTTP::Headers dele é exigido para testes e uma exigência de tempo de execução para HTML::HeadParser proveniente dessa distribuição).
As instâncias da classe "HTTP::Daemon" são servidores "HTTP/1.1" que escutam em um soquete as solicitações entrantes. O "HTTP::Daemon" é uma subclasse de "IO::Socket::INET", de forma que você consegue realizar operações de soquete diretamente nele também.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.cpan.org/authors/id/O/OA/OALDERS/HTTP-Daemon-6.16.tar.gz
Soma de verificação MD5 da transferência: 51425462790165aeafc2819a7359706f
"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".
"IO::Socket::SSL" torna usar "SSL/TLS" muito mais fácil, agrupando a funcionalidade necessária na interface familiar "IO::Socket" e fornecendo padrões seguros sempre que possível.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.cpan.org/authors/id/S/SU/SULLR/IO-Socket-SSL-2.089.tar.gz
Soma de verificação MD5 da transferência: 1e9cf40beaaafa502de8f3b560a9adee
make-ca-1.15 e Net-SSLeay-1.94
URI-5.31 (para acessar nomes internacionais de domínio)
Esse módulo usa uma variante das instruções padrão de construção e instalação:
yes | perl Makefile.PL && make && make test
Um teste, Client non-SSL
connection
, é conhecido por falhar.
Agora, como o(a) usuário(a) root
:
make install
"IO::String" - Emula interface de arquivo para sequências internas de caracteres.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.cpan.org/authors/id/G/GA/GAAS/IO-String-1.08.tar.gz
Soma de verificação MD5 da transferência: 250e5424f290299fc3d6b5d1e9da3835
"IPC::Run3" é usado para executar um subprocesso com redirecionamento de entrada/saída.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.cpan.org/authors/id/R/RJ/RJBS/IPC-Run3-0.049.tar.gz
Soma de verificação MD5 da transferência: 569393ca56dfb78dedd79e93c0439159
"Lingua::Translit" e o aplicativo translit transliteram texto entre sistemas de escrita.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.cpan.org/authors/id/A/AL/ALINKE/Lingua-Translit-0.29.tar.gz
Soma de verificação MD5 da transferência: 605a82f06b05fef4fc18bf069b1be511
Esse módulo usa as instruções padrão de construção e instalação:
perl Makefile.PL && make && make test
Agora, como o(a) usuário(a) root
:
make install
A coleção "libwww-perl" é um conjunto de módulos "Perl" que fornece uma interface de programação de aplicativos ("API") simples e consistente para a "World Wide Web". O foco principal da biblioteca é o de fornecer classes e funções que te permitem escrever clientes "WWW". A biblioteca também contém módulos que são de uso mais geral e até classes que te ajudam a implementar servidores "HTTP" simples.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.cpan.org/authors/id/O/OA/OALDERS/libwww-perl-6.78.tar.gz
Soma de verificação MD5 da transferência: 58729b6da69e24ea0624a20b9f39d952
File-Listing-6.16, HTTP-CookieJar-0.014, HTTP-Cookies-6.11, HTTP-Daemon-6.16, HTTP-Negotiate-6.01, HTML-Parser-3.83, Net-HTTP-6.23, Try-Tiny-0.32 e WWW-RobotRules-6.02
Test-Fatal-0.017, Test-Needs-0.002010 e Test-RequiresInternet-0.05
Esse módulo usa as instruções padrão de construção e instalação:
perl Makefile.PL && make && make test
Agora, como o(a) usuário(a) root
:
make install
Depois de instalar esse pacote, se você desejar suporte ao protocolo "HTTPS", [então] instale LWP-Protocol-https-6.14.
O módulo "List::Allutils" combina "List::Util" e "List::MoreUtils" em um pacote pequeno.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.cpan.org/authors/id/D/DR/DROLSKY/List-AllUtils-0.19.tar.gz
Soma de verificação MD5 da transferência: 86469b1f6819ba181a8471eb932965f2
"List::MoreUtils" fornece o que falta em "List::Util".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.cpan.org/authors/id/R/RE/REHSACK/List-MoreUtils-0.430.tar.gz
Soma de verificação MD5 da transferência: daccd6310021231b827dcc943ff1c6b7
"Log::Log4perl" fornece uma implementação "Log4j" para perl.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.cpan.org/authors/id/E/ET/ETJ/Log-Log4perl-1.57.tar.gz
Soma de verificação MD5 da transferência: acbe29cbaf03f4478a13579a275b0011
Esse módulo usa as instruções 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::Protocol::https" fornece suporte "HTTPS" para "LWP::UserAgent" (ou seja, libwww-perl-6.78). Depois que o módulo estiver instalado, o "LWP" será capaz de acessar sítios usando "HTTP" sobre "SSL"/"TLS".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.cpan.org/authors/id/O/OA/OALDERS/LWP-Protocol-https-6.14.tar.gz
Soma de verificação MD5 da transferência: 65401e3e34be653c9e3b31f798ed5454
IO-Socket-SSL-2.089, libwww-perl-6.78 e make-ca-1.15 com /etc/pki/tls/certs/ca-bundle.crt
.
"Module::Build" permite módulos "Perl" serem construídos sem um comando make estar presente.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/L/LE/LEONT/Module-Build-0.4234.tar.gz
Soma de verificação MD5 da transferência: 0032d0c0bc36a3b68ef41c947829d5e3
Esse módulo usa as instruções 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
"Net::DNS" é um resolvedor de "DNS" implementado em Perl. Ele pode ser usado para realizar praticamente qualquer tipo de consulta "DNS" a partir de um script Perl.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.cpan.org/authors/id/N/NL/NLNETLABS/Net-DNS-1.50.tar.gz
Soma de verificação MD5 da transferência: 1ca152f2eec8f66ef4ae7243697197cc
"Parse::RecDescent" gera incrementalmente analisadores de texto descendentes recursivos de cima para baixo a partir de especificações gramaticais simples do tipo "yacc".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.cpan.org/authors/id/J/JT/JTBRAUN/Parse-RecDescent-1.967015.tar.gz
Soma de verificação MD5 da transferência: 7a36d45d62a9b68603edcdbd276006cc
"Parse::Yapp" é uma extensão "Perl" para gerar e usar analisadores "LALR".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.cpan.org/authors/id/W/WB/WBRASWELL/Parse-Yapp-1.21.tar.gz
Soma de verificação MD5 da transferência: 69584d5b0f0304bb2a23cffcd982c5de
Esse módulo usa as instruções padrão de construção e instalação:
perl Makefile.PL && make && make test
Agora, como o(a) usuário(a) root
:
make install
PerlIO::utf8_strict fornece uma camada UTF-8 PerlIO rápida e correta. Ao contrário da camada :utf8 padrão do Perl, ele verifica a correção da entrada gerada.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.cpan.org/authors/id/L/LE/LEONT/PerlIO-utf8_strict-0.010.tar.gz
Soma de verificação MD5 da transferência: d90ca967f66e05ad9221c79060868346
"Regexp::Common" fornece expressões regulares comumente solicitadas.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.cpan.org/authors/id/A/AB/ABIGAIL/Regexp-Common-2024080801.tar.gz
Soma de verificação MD5 da transferência: 73d4b4b2a0690f9ab573d54a69c22aee
O módulo "SGMLSpm" é uma biblioteca Perl usada para analisar a saída gerada a partir dos analisadores "SGMLS" e "NSGMLS" de James Clark.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.cpan.org/authors/id/R/RA/RAAB/SGMLSpm-1.1.tar.gz
Soma de verificação MD5 da transferência: 746c74ae969992cedb1a2879b4168090
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
é um processador "SGML" |
|
é um vínculo simbólico usado durante a instalação de DocBook-utils-0.6.14 |
"Sort::Key" fornece um conjunto de funções para classificar listas de valores por algum valor-chave calculado.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.cpan.org/authors/id/S/SA/SALVA/Sort-Key-1.33.tar.gz
Soma de verificação MD5 da transferência: a37ab0da0cfdc26e57b4c79e39f6d98f
"Test::Command" testa a situação de saída, "STDOUT" ou "STDERR", de um comando externo.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.cpan.org/authors/id/D/DA/DANBOO/Test-Command-0.11.tar.gz
Soma de verificação MD5 da transferência: 9ab83c4695961dbe92cd86efe08f0634
"Test::Differences" testa sequências de caracteres e estruturas de dados e mostra as diferenças se elas não corresponderem.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.cpan.org/authors/id/D/DC/DCANTRELL/Test-Differences-0.71.tar.gz
Soma de verificação MD5 da transferência: 23a54d5ada6ffe0850f42cd768b4b3c1
"Text::BibTeX" fornece uma interface para ler e analisar arquivos BibTeX.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.cpan.org/authors/id/A/AM/AMBS/Text-BibTeX-0.91.tar.gz
Soma de verificação MD5 da transferência: 437862f801cfb7598dff52aa4ff7d888
Esse módulo é construído usando Build.PL
:
perl Build.PL && ./Build && ./Build test
Agora, como o(a) usuário(a) root
:
./Build install
realiza análise léxica em um arquivo "BibTeX" |
|
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 |
|
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 |
|
é uma biblioteca para analisar e processar arquivos de dados "BibTeX" |
"Text::CSV" é um manipulador de valores separados por vírgula, usando "XS" ("eXternal Subroutine" - para sub-rotinas escritas em "C" ou "C++") ou "Perl" puro.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.cpan.org/authors/id/I/IS/ISHIGAKI/Text-CSV-2.05.tar.gz
Soma de verificação MD5 da transferência: efdde839dd5f05a34f2f2d91b1d60b29
Text-CSV_XS-1.60 (exigido por biber-2.20)
"Text::Roman" permite a conversão entre algoritmos romanos e arábicos (sistemas numéricos, por exemplo, "MCMXLV" e "1945").
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.cpan.org/authors/id/S/SY/SYP/Text-Roman-3.5.tar.gz
Soma de verificação MD5 da transferência: 1f6b09c0cc1f4425b565ff787a39fd83
"Unicode::Collate" fornece um algoritmo de agrupamento "Unicode".
Esse é um módulo central. Se você estiver usando perl-5.28.0 ou posterior, [então] a versão dele é boa o suficiente para biber-2.20 e você não precisa reinstalar esse módulo.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.cpan.org/authors/id/S/SA/SADAHIRO/Unicode-Collate-1.31.tar.gz
Soma de verificação MD5 da transferência: ee4d960d057c5e5b02ebb49d0286db8f
"Unicode::LineBreak" fornece um algoritmo de quebra de linha "Unicode" "UAX #14".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.cpan.org/authors/id/N/NE/NEZUMI/Unicode-LineBreak-2019.001.tar.gz
Soma de verificação MD5 da transferência: 003d6da7a13700e069afed9238c864b9
MIME-Charset-1.013.1 e Wget-1.25.0 (para baixar dois arquivos a partir de unicode.org na suíte de teste)
libthai (para quebrar palavras tailandesas em segmentos)
Esse módulo implementa a classe "URI". Os objetos dessa classe representam "referências de Identificador Uniforme de Recursos" conforme especificado na "RFC" 2396 (e atualizado pela "RFC" 2732). Um Identificador Uniforme de Recursos é uma sequência compacta de caracteres que identifica um recurso abstrato ou físico. Um Identificador Uniforme de Recursos pode ainda ser classificado ou como um Localizador Uniforme de Recursos ("URL") ou um Nome Uniforme de Recurso ("URN"). A distinção entre "URL" e "URN" não importa para a interface da classe "URI". Uma "referência de URI" é um "URI" que possivelmente tenha informações adicionais anexadas na forma de um identificador de fragmento.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.cpan.org/authors/id/O/OA/OALDERS/URI-5.31.tar.gz
Soma de verificação MD5 da transferência: b5388d5b86e1870a80ad95c153bf41fd
Test-Fatal-0.017, Test-Needs-0.002010 e Test-Warnings-0.038
O módulo XML::LibXML::Simple é uma reescrita de XML::Simple para usar o analisador XML::LibXML para estruturas XML, em vez dos analisadores simples Perl ou SAX.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.cpan.org/authors/id/M/MA/MARKOV/XML-LibXML-Simple-1.01.tar.gz
Soma de verificação MD5 da transferência: faad5ed26cd83998f6514be199c56c38
"XML-LibXSLT" fornece uma interface para libxslt-1.1.42
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.cpan.org/authors/id/S/SH/SHLOMIF/XML-LibXSLT-2.003000.tar.gz
Soma de verificação MD5 da transferência: 632dce587b3c405edd4e622364750191
"XML::Simple" fornece uma "API" fácil para ler e escrever "XML" (especialmente arquivos de configuração). Está obsoleto e o uso dele é desencorajado.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.cpan.org/authors/id/G/GR/GRANTM/XML-Simple-2.25.tar.gz
Soma de verificação MD5 da transferência: bb841dce889a26c89a1c2739970e9fbc
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
"XML::Writer" fornece uma extensão Perl para escrever documentos "XML".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.cpan.org/authors/id/J/JO/JOSEPHW/XML-Writer-0.900.tar.gz
Soma de verificação MD5 da transferência: 2457214360cefda445742a608dd6195e
Existe uma maneira alternativa de instalar os módulos usando o comando install do "shell" cpan. O comando baixa automaticamente o fonte mais recente a partir do arquivamento "CPAN" para o módulo e quaisquer módulos de pré-requisito ausentes listados pelo(a) desenvolvedor(a). Então para cada módulo ele o extrai, executa a compilação, os testes e o instala.
Você ainda precisa instalar quaisquer dependências não
"Perl" antes de executar o método de instalação
automatizado. Você possivelmente queira limpar o diretório
build/
depois da instalação,
para liberar o espaço. Se quaisquer ações pós-instalação,
como criar um link simbólico, for mencionada, [então] você
também deveria executá-las.
Na primeira vez que você executar o cpan, você será
solicitado(a) a inserir algumas informações relativas a
locais e métodos de transferência. Essas informações são
retidas em arquivos localizados em ~/.cpan
.
Em particular, você possivelmente deseje configurá-lo de forma que Sudo-1.9.16p2 seja usado para as instalações, permitindo que você construa e teste como um(a) usuário(a) normal. Os exemplos a seguir não usaram essa abordagem.
Inicie o "shell" cpan emitindo
"cpan" como
o(a) usuário(a) root
.
Qualquer módulo agora pode ser instalado a partir do
"prompt" cpan>
com o comando:
install <Módulo::Nome>
Para comandos e ajuda adicionais, emita "help" a partir do
"prompt" cpan>
.
Alternativamente, para instalações com automatizadas ou não
interativas, use a seguinte sintaxe como o(a) usuário(a)
root
para instalar um ou
mais módulos:
cpan -i <Módulo1::Nome> <Módulo2::Nome>
Revise a página de manual cpan.1
para parâmetros adicionais que
você consegue passar para cpan na linha de comando.
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
.
Os links nesta página (para metacpan.org) deveriam ir para versões "boas conhecidas", para as quais as dependências delas estão corretas. Se você desejar usar uma versão posterior, por favor, verifique o arquivo das Mudanças em https://metacpan.org - às vezes as dependências adicionadas estão listadas, outras vezes não. Alguns destes módulos tem atualizações muito frequentes, muitas vezes trazendo diferentes dependências. As versões vinculadas do metacpan.org abaixo eram conhecidas por funcionarem com as versões do módulo no BLFS quando revisadas pela última vez.
No entanto, se você notar que o arquivo de mudanças para uma versão mais recente que a do livro de desenvolvimento atual informa uma correção para um problema de segurança, [então] informe isso ou à lista "blfs-dev" ou à "blfs-support".
Da mesma forma, se você descobrir que um módulo atualizado na página anterior precisa de uma dependência extra, [então], por favor, informe isso.
"Algorithm::Diff" calcula diferenças "inteligentes" entre dois arquivos ou listas.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/R/RJ/RJBS//Algorithm-Diff-1.201.tar.gz
Soma de verificação MD5 da transferência: 2eaae910f5220261ee2bbdfc4a8df2c2
"Alien::Build" fornece ferramentas para construir dependências externas (não "CPAN") para "CPAN".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/P/PL/PLICEASE/Alien-Build-2.84.tar.gz
Soma de verificação MD5 da transferência: 531c4d1ea1274e2fafd7e61df60f9099
Capture-Tiny-0.50, File-Which-1.27, FFI-CheckLib-0.31 e File-chdir-0.1011
"Alien::Build::Plugin::Download::GitLab" permite que "Alien::Build" baixe a partir do "GitLab" (na prática, isso não baixa se a biblioteca exigida já estiver instalada no sistema).
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/P/PL/PLICEASE/Alien-Build-Plugin-Download-GitLab-0.01.tar.gz
Soma de verificação MD5 da transferência: ad1d815262ad7dd98b0a9b35ba2f05ef
"Alien::Libxml2" foi projetado para permitir que módulos instalem a biblioteca "libxml2" da "C" em seu sistema. No BLFS, ele usa pkg-config para descobrir como vincular ao libxml2-2.13.6 instalado.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/P/PL/PLICEASE/Alien-Libxml2-0.19.tar.gz
Soma de verificação MD5 da transferência: 54ef82ddf7641279a72f216e405f9a5e
Alien-Build-Plugin-Download-GitLab-0.01, libxml2-2.13.6 e Path-Tiny-0.146
"B::COW" fornece ajudantes adicionais para o módulo central "B" verificar "Copy On Write".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/A/AT/ATOOMIC/B-COW-0.007.tar.gz
Soma de verificação MD5 da transferência: 7afc46f19e6f906e2ba5769b21fca5ff
B::Hooks::EndOfScope permite que você execute código quando o Perl terminar de compilar o escopo circundante.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/E/ET/ETHER/B-Hooks-EndOfScope-0.28.tar.gz
Soma de verificação MD5 da transferência: d738ba65539d4acd601d47cc3e2cbb3a
Module-Implementation-0.09, Sub-Exporter-Progressive-0.001013 e Variable-Magic-0.64
"Business-ISBN-Data" é um pacote de dados para "Business::ISBN".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/B/BR/BRIANDFOY/Business-ISBN-Data-20250205.001.tar.gz
Soma de verificação MD5 da transferência: 3aa9785709a16c87bc31f085293a7eb6
O módulo "Capture::Tiny" captura "STDOUT" e "STDERR" a partir de "Perl", "XS" ("eXternal Subroutine", ou seja, escrito em "C" ou "C++") ou aplicativos externos.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN/Capture-Tiny-0.50.tar.gz
Soma de verificação MD5 da transferência: 92c96fdff1b972a663cc2b3e206ca853
"Class::Data::Inheritable" serve para criar acessadores/"mutadores" para dados de classe. Isto é, se você quiser armazenar algo acerca de sua classe como um todo (em vez de acerca de um objeto).
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/R/RS/RSHERER/Class-Data-Inheritable-0.10.tar.gz
Soma de verificação MD5 da transferência: 6bec8f4663a83972af60bd8e71a06f64
"Class::Inspector" te permite obter informações acerca de uma classe carregada.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/P/PL/PLICEASE/Class-Inspector-1.36.tar.gz
Soma de verificação MD5 da transferência: 084c3aeec023639d21ecbaf7d4460b21
Um "Singleton" descreve uma classe de objeto que pode ter somente uma instância em qualquer sistema, como um aplicativo de gerenciamento de fila de documentos de impressão. Esse módulo implementa uma classe "Singleton" a partir da qual outras classes podem ser derivadas.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/S/SH/SHAY/Class-Singleton-1.6.tar.gz
Soma de verificação MD5 da transferência: d9c84a7b8d1c490c38e88ed1f9faae47
"Classe:Tiny" oferece um conjunto de ferramentas minimalistas de construção de classes.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN/Class-Tiny-1.008.tar.gz
Soma de verificação MD5 da transferência: e3ccfae5f64d443e7e1110be964d7202
"Clone" copia recursivamente tipos de dados "Perl".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/A/AT/ATOOMIC/Clone-0.47.tar.gz
Soma de verificação MD5 da transferência: 62ff032a4df0c4abb74f76adf519361e
O módulo "Config::AutoConf" implementa algumas das macros "AutoConf" (detectar um comando, detectar uma biblioteca, etc.) em "Perl" puro.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/A/AM/AMBS/Config-AutoConf-0.320.tar.gz
Soma de verificação MD5 da transferência: 71664b2864232e265179ac29298e0916
"CPAN::Meta::Check" verifica se os requisitos descritos em um objeto "CPAN::Meta" estão presentes.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/L/LE/LEONT/CPAN-Meta-Check-0.018.tar.gz
Soma de verificação MD5 da transferência: d1c2190e8bc1c176b9ee9cba3ac403ad
"DateTime" é um objeto de data e hora para "Perl".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/D/DR/DROLSKY/DateTime-1.65.tar.gz
Soma de verificação MD5 da transferência: 6f60018500f8f20c5fd3d34495eae1eb
DateTime-Locale-1.44 e DateTime-TimeZone-2.64
CPAN-Meta-Check-0.018, Test-Fatal-0.017, Test-Warnings-0.038 e Test-Without-Module-0.23
DateTime::Format::Strptime implementa a maior parte de strptime(3), ou seja, ele pega uma sequência de caracteres e um padrão e retorna um objeto DateTime.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/D/DR/DROLSKY/DateTime-Format-Strptime-1.79.tar.gz
Soma de verificação MD5 da transferência: 441cfec62b0b8a1b4c05cbe5ef73fbf4
"DateTime::Locale" fornece suporte a localização para DateTime-1.65.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/D/DR/DROLSKY/DateTime-Locale-1.44.tar.gz
Soma de verificação MD5 da transferência: 6d659f7c46e27215de6ca8a01f875661
Dist-CheckConflicts-0.11, File-ShareDir-1.118, namespace-autoclean-0.31 e Params-ValidationCompiler-0.31
CPAN-Meta-Check-0.018, IPC-System-Simple-1.30 e Test-File-ShareDir-1.001002
Essa classe é a classe base para todos os objetos de fuso horário. Um fuso horário é representado internamente como um conjunto de observâncias, cada uma das quais descreve o deslocamento a partir do "GMT" para um dado período de tempo.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/D/DR/DROLSKY/DateTime-TimeZone-2.64.tar.gz
Soma de verificação MD5 da transferência: fe3081e8223c9308184379c9c8844bde
Class-Singleton-1.6, Module-Runtime-0.016 e Params-ValidationCompiler-0.31
Ambos Test-Fatal-0.017 e Test-Requires-0.11, mas somente se uma cópia de DateTime-1.65 (para o qual esse é uma dependência) já tiver sido instalado.
Devel::StackTrace fornece um objeto que representa um rastreamento de pilha.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/D/DR/DROLSKY/Devel-StackTrace-2.05.tar.gz
Soma de verificação MD5 da transferência: b8ca19bb4c76e98a04373618db9c7c3c
"Dist::CheckConflicts" declara conflitos de versão para uma distribuição, para suportar atualizações pós-instalação de distribuições dependentes.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/D/DO/DOY/Dist-CheckConflicts-0.11.tar.gz
Soma de verificação MD5 da transferência: c8725a92b9169708b0f63036812070f2
"Encode::Locale" determina a codificação de localidade.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/G/GA/GAAS/Encode-Locale-1.05.tar.gz
Soma de verificação MD5 da transferência: fcfdb8e4ee34bcf62aed429b4a23db27
"Eval::Closure" cria fechamentos de forma segura e limpa por meio de avaliação de sequências de caracteres.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/D/DO/DOY/Eval-Closure-0.14.tar.gz
Soma de verificação MD5 da transferência: ceeb1fc579ac9af981fa6b600538c285
"Exception::Class" permite que você declare classes reais de exceção em Perl.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/D/DR/DROLSKY/Exception-Class-1.45.tar.gz
Soma de verificação MD5 da transferência: 1e564d20b374a99fdf660ba3f36b0098
"Exporter::Tiny" é um exportador com os recursos do "Sub::Exporter", mas somente com dependências centrais.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/T/TO/TOBYINK/Exporter-Tiny-1.006002.tar.gz
Soma de verificação MD5 da transferência: 0545ee8f4edcb9dc5a87b21ed25edd74
"ExtUtils::LibBuilder" é uma ferramenta para construir bibliotecas "C".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/A/AM/AMBS/ExtUtils-LibBuilder-0.09.tar.gz
Soma de verificação MD5 da transferência: 16115f941df504f65b0f94b7f29e8fbc
"FFI::CheckLib" verifica se uma biblioteca dinâmica específica está disponível para uso por "Foreign Function Interface" ("FFI").
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/P/PL/PLICEASE/FFI-CheckLib-0.31.tar.gz
Soma de verificação MD5 da transferência: ffc8e61bb686dd631bed3ddf102af41c
Capture-Tiny-0.50, File-Which-1.27, Path-Tiny-0.146 e Test-Simple-1.302209
"File::chdir" fornece uma maneira mais sensata de mudar diretórios.
O "chdir()" do "Perl" tem o infeliz problema de ser muito, muito, muito global. Se qualquer parte do seu aplicativo chamar "chdir()" ou se qualquer biblioteca que você usa chamar "chdir()", [então] ele muda o diretório atual de trabalho do aplicativo *inteiro*. "File::chdir" te oferece uma alternativa, "$CWD" e "@CWD".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN/File-chdir-0.1011.tar.gz
Soma de verificação MD5 da transferência: 932090f6c5f602301ae66c259de23ebb
Esse módulo copia e move diretórios recursivamente (ou arquivos únicos), para uma profundidade opcional e tenta preservar o modo de cada arquivo ou diretório.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/D/DM/DMUEY/File-Copy-Recursive-0.45.tar.gz
Soma de verificação MD5 da transferência: e5eee1a3f8ae3aebbac063ea54870e54
Path-Tiny-0.146, Test-Deep-1.204, Test-Fatal-0.017, Test-File-1.994 e Test-Warnings-0.038
"File::Find::Rule" é uma interface mais amigável para "File::Find". Ele permite que você construa regras que especifiquem os arquivos e diretórios desejados.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/R/RC/RCLAMP/File-Find-Rule-0.34.tar.gz
Soma de verificação MD5 da transferência: a7aa9ad4d8ee87b2a77b8e3722768712
Esse módulo usa as instruções 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::Listing" analisa uma listagem de diretórios.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/P/PL/PLICEASE/File-Listing-6.16.tar.gz
Soma de verificação MD5 da transferência: d4fc8b0c86633d1fa5bf75323720eadc
"File::ShareDir" permite que você acesse arquivos de dados que tenham sido instalados por "File::ShareDir::Install".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/R/RE/REHSACK/File-ShareDir-1.118.tar.gz
Soma de verificação MD5 da transferência: 0084f730f4e3d4d89703d92b3ea82f54
"File::ShareDir::Install" permite que você instale arquivos de dados somente leitura a partir de uma distribuição.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/E/ET/ETHER/File-ShareDir-Install-0.14.tar.gz
Soma de verificação MD5 da transferência: bac4d924f3d863b00648ab56ec0dcbdc
"HTML::Tagset" fornece várias tabelas de dados úteis na análise de "HTML".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/P/PE/PETDANCE/HTML-Tagset-3.24.tar.gz
Soma de verificação MD5 da transferência: f8db8974f5e7fe7df2a58263a7b00552
HTTP::CookieJar fornece um cookie HTTP jar minimalista de agente de usuário(a).
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN/HTTP-CookieJar-0.014.tar.gz
Soma de verificação MD5 da transferência: a1d891ce0046f1a2c19e2c617d624d0d
"HTTP::Cookies" fornece uma classe para objetos que representam um "cookie jar" - isto é, uma base de dados de todos os "cookies" "HTTP" que um determinado objeto "LWP::UserAgent" (proveniente de libwww-perl-6.78) conhece.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/O/OA/OALDERS/HTTP-Cookies-6.11.tar.gz
Soma de verificação MD5 da transferência: 80017e7e56bdc8ba16dea75789748829
"HTTP::Date" fornece funções para lidar com os formatos de data usados pelo protocolo "HTTP" e também com alguns outros formatos de data.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/O/OA/OALDERS/HTTP-Date-6.06.tar.gz
Soma de verificação MD5 da transferência: 60462359bfeb1e6d14602508cfd07885
TimeDate-2.33 (para permitir que reconheça zonas diferentes de "GMT" e numéricas)
"HTTP::Message" fornece uma classe base para objetos de mensagem de estilo "HTTP".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/O/OA/OALDERS/HTTP-Message-7.00.tar.gz
Soma de verificação MD5 da transferência: 01b29ce55d79a774420bc768bb905354
Clone-0.47, Encode-Locale-1.05, HTTP-Date-6.06, IO-HTML-1.004, LWP-MediaTypes-6.04 e URI-5.31
"HTTP::Negotiate" fornece uma implementação completa do algoritmo de negociação de conteúdo "HTTP".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/G/GA/GAAS/HTTP-Negotiate-6.01.tar.gz
Soma de verificação MD5 da transferência: 1236195250e264d7436e7bb02031671b
"IO::HTML" abre um arquivo "HTML" com detecção automática de conjunto de caracteres.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/C/CJ/CJM/IO-HTML-1.004.tar.gz
Soma de verificação MD5 da transferência: 04bbe363686fd19bfb4cc0ed775e3d03
"IPC::System::Simple" elimina o trabalho árduo de chamar comandos externos e produzir diagnósticos detalhados.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/J/JK/JKEENAN/IPC-System-Simple-1.30.tar.gz
Soma de verificação MD5 da transferência: e68341fd958fd013b3521d909904f675
"List::MoreUtils::XS" é uma estrutura compilada de retaguarda para "List::MoreUtils"
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/R/RE/REHSACK/List-MoreUtils-XS-0.430.tar.gz
Soma de verificação MD5 da transferência: e77113e55b046906aecfb4ddb4f0c662
"List::SomeUtils" fornece o que falta em "List::Util".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/D/DR/DROLSKY/List-SomeUtils-0.59.tar.gz
Soma de verificação MD5 da transferência: 333b4adb2907deff2be8da5899881453
"List::SomeUtils::XS" é uma implementação "XS" ("eXternal Subroutine") (mais rápida) para "List::SomeUtils".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/D/DR/DROLSKY/List-SomeUtils-XS-0.58.tar.gz
Soma de verificação MD5 da transferência: 396eabe83a75fcb8d7542d95812469d1
"List::UtilsBy" fornece uma série de funções utilitárias de lista de ordem superior.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/P/PE/PEVANS/List-UtilsBy-0.12.tar.gz
Soma de verificação MD5 da transferência: 54a8c7092bc02f29ea6c5ae215eea385
"LWP::MediaTypes" adivinha o tipo de mídia (ou seja, o tipo "MIME") de um arquivo ou "URL".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/O/OA/OALDERS/LWP-MediaTypes-6.04.tar.gz
Soma de verificação MD5 da transferência: 84b799a90c0d2ce52897a7cb4c0478d0
MIME::Base32 é para Codificar/Decodificar dados.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/R/RE/REHSACK/MIME-Base32-1.303.tar.gz
Soma de verificação MD5 da transferência: 0c7735fa09e74c7f2ec93d1890b8c6c0
MIME::Charset fornece informações relativas a conjuntos de caracteres usados para mensagens MIME na Internet, como as codificações deles.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/N/NE/NEZUMI/MIME-Charset-1.013.1.tar.gz
Soma de verificação MD5 da transferência: b1932cfc806c8deb1b4a20d6afbfa8ac
Encode-EUCJPASCII-0.03, Encode-HanExtra-0.23 e Encode-JIS2K-0.05 (porque todos são exigidos por biber-2.20)
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
"Module::Implementation" carrega uma das várias implementações alternativas subjacentes de um módulo (por exemplo, "eXternal Subroutine" ou "Perl" puro, ou uma implementação para um determinado Sistema Operacional).
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/D/DR/DROLSKY/Module-Implementation-0.09.tar.gz
Soma de verificação MD5 da transferência: 52e3fe0ca6b1eff0488d59b7aacc0667
Module-Runtime-0.016 e Try-Tiny-0.32
"Module::Runtime" fornece funções para lidar com o manuseio em tempo de execução de módulos Perl.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/Z/ZE/ZEFRAM/Module-Runtime-0.016.tar.gz
Soma de verificação MD5 da transferência: d3d47222fa2e3dfcb4526f6cc8437b20
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
O espaço de nome "mro" fornece vários utilitários para lidar com a ordem de resolução de métodos e cache de métodos em geral no "Perl" 5.9.5 e superior. Esse módulo fornece essas interfaces para versões anteriores do "Perl".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/H/HA/HAARG/MRO-Compat-0.15.tar.gz
Soma de verificação MD5 da transferência: f644dafe901214cedfa7ed8b43b56df1
Esse módulo é muito semelhante ao "namespace::clean", exceto que limpará todas as funções importadas, não importa se você as importou antes ou depois que usou o "pragma". Também não tocará em nada que pareça um método.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/E/ET/ETHER/namespace-autoclean-0.31.tar.gz
Soma de verificação MD5 da transferência: abd25263af155ab70bf7a039247400d3
Esse pacote permite que você mantenha importações e funções fora do seu espaço de nome.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/R/RI/RIBASUSHI/namespace-clean-0.27.tar.gz
Soma de verificação MD5 da transferência: cba97f39ef7e594bd8489b4fdcddb662
A classe "Net::HTTP" é um cliente "HTTP" de baixo nível. Uma instância da classe representa uma conexão com um servidor "HTTP".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/O/OA/OALDERS/Net-HTTP-6.23.tar.gz
Soma de verificação MD5 da transferência: 1682735ddd1c059864ca5c1bbf15ab95
Net::SSLeay é uma extensão Perl para usar OpenSSL.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/C/CH/CHRISN/Net-SSLeay-1.94.tar.gz
Soma de verificação MD5 da transferência: 1b22c764e5a094c6261e37a4b1f148ce
Um teste chamado 32_x509_get_cert_info.t
é conhecido por
falhar com OpenSSL-3.4.0 ou posterior. Se habilitar os
testes externos, um teste em t/external/15_altnames.t
possivelmente falhe.
Esse módulo usa uma variante das instruções padrão de construção e instalação:
yes '' | perl Makefile.PL && make && make test || true
Agora, como o(a) usuário(a) root
:
make install
yes '': "Perl" perguntará se você deseja executar testes externos, que falharão se você não tiver conectividade de rede de intercomunicação. O padrão é "n"; especificar isso permite que você automatize a construção.
|| true: Ao executar um conjunto de comandos sequenciais que sai em caso de erro, isso evita a parada devido à falha conhecida de teste.
"Number::Compare" compila uma comparação simples com uma sub-rotina anônima, que você consegue chamar com um valor a ser testado. Ele compreende magnitudes padrão "IEC" (k, ki, m, mi, g, gi).
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/R/RC/RCLAMP/Number-Compare-0.03.tar.gz
Soma de verificação MD5 da transferência: ded4085a8fc96328742785574ca65208
Manipular "stashes" (tabelas de símbolos do "Perl") ocasionalmente é necessário, mas incrivelmente confuso e fácil de errar. Esse módulo esconde tudo isso atrás de uma "API" simples.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/E/ET/ETHER/Package-Stash-0.40.tar.gz
Soma de verificação MD5 da transferência: 7a2922941cc2aad6a52642e4fb13d07b
Dist-CheckConflicts-0.11 e Module-Implementation-0.09
CPAN-Meta-Check-0.018, Test-Fatal-0.017 e Test-Needs-0.002010
"Params::Validate" te permite validar parâmetros de chamada de método ou função para um nível arbitrário de especificidade.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/D/DR/DROLSKY/Params-Validate-1.31.tar.gz
Soma de verificação MD5 da transferência: ef5f57387c2c9032b59fb23023cf5b25
Module-Build-0.4234 e Module-Implementation-0.09
"Params::ValidationCompiler" constrói um validador de parâmetro de sub-rotina otimizado.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/D/DR/DROLSKY/Params-ValidationCompiler-0.31.tar.gz
Soma de verificação MD5 da transferência: 15528055f3f53c8cfebbee1f928dec07
Exception-Class-1.45 e Specio-0.49
"Path::Tiny" fornece um pequeno utilitário rápido para trabalhar com caminhos de arquivos.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN/Path-Tiny-0.146.tar.gz
Soma de verificação MD5 da transferência: 656d3556bb7f30c77d0881d564e200b2
"Role::Tiny" é uma ferramenta minimalista de composição de papéis.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/H/HA/HAARG/Role-Tiny-2.002004.tar.gz
Soma de verificação MD5 da transferência: 9ee45591befa3d0b1094ac75d282b6ba
"Scope::Guard" fornece uma maneira conveniente de realizar limpeza ou outras formas de gerenciamento de recursos no final de um escopo.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/C/CH/CHOCOLATE/Scope-Guard-0.21.tar.gz
Soma de verificação MD5 da transferência: be57b915d23ddac7677ef2ad9e52b92a
"Specio" fornece classes para representar restrições de tipo e coerção, junto com açúcar sintático para declará-las.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/D/DR/DROLSKY/Specio-0.49.tar.gz
Soma de verificação MD5 da transferência: c72e8e60faed34d3458be02b8d5a15d3
Devel-StackTrace-2.05, Eval-Closure-0.14, Module-Runtime-0.016, Role-Tiny-2.002004, Sub-Quote-2.006008 e Try-Tiny-0.32
MRO-Compat-0.15, Test-Fatal-0.017 e Test-Needs-0.002010
namespace-autoclean-0.31 (para a suíte de teste)
"Sub::Exporter::Progressive" é um envólucro para "Sub::Exporter".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/F/FR/FREW/Sub-Exporter-Progressive-0.001013.tar.gz
Soma de verificação MD5 da transferência: 72cf6acdd2a0a8b105821a4db98e4ebe
"Sub::Quote" fornece maneiras de gerar sub-rotinas a partir de sequências de caracteres.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/H/HA/HAARG/Sub-Quote-2.006008.tar.gz
Soma de verificação MD5 da transferência: f19c60039ba87f69f7f9357fc0a03e07
"Sub::Uplevel" permite que você engane um chamador dizendo que ele está executando em um quadro mais alto da pilha.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN/Sub-Uplevel-0.2800.tar.gz
Soma de verificação MD5 da transferência: 6c6a174861fd160e8d5871a86df00baf
Term::Table formata um cabeçalho e linhas em uma tabela. Isso é usado por alguns testes falhos para fornecer diagnósticos relativos ao que deu errado.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/E/EX/EXODIST/Term-Table-0.024.tar.gz
Soma de verificação MD5 da transferência: fda537b24c606191fc10b561962a4a67
"Test::Deep" te dá maneiras muito flexíveis de verificar se o resultado obtido é o resultado que você estava esperando.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/R/RJ/RJBS/Test-Deep-1.204.tar.gz
Soma de verificação MD5 da transferência: fcff296434cd92538ae9de9d1744705f
"Test::Exception" fornece métodos convenientes para testar código baseado em exceções.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/E/EX/EXODIST/Test-Exception-0.43.tar.gz
Soma de verificação MD5 da transferência: 572d355026fb0b87fc2b8c64b83cada0
O módulo "Test::Fatal" fornece ajudantes simples para testar código que lança exceções.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/R/RJ/RJBS/Test-Fatal-0.017.tar.gz
Soma de verificação MD5 da transferência: 2f160c31e1848536e3b82112d573bb76
"Test::File" fornece uma coleção de utilitários de teste para atributos de arquivo.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/B/BR/BRIANDFOY/Test-File-1.994.tar.gz
Soma de verificação MD5 da transferência: d941b5e964800ceb4cbf1b5718b60290
"Test::File::ShareDir" é algum encanamento de baixo nível para habilitar a distribuição a realizar testes enquanto consome os próprios diretórios de compartilhamento deles de maneira semelhante a como eles serão ocasionalmente instalados. Isso permite que File-ShareDir-1.118 veja a versão mais recente do conteúdo em vez do que estiver instalado no sistema alvo onde você estiver testando.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/K/KE/KENTNL/Test-File-ShareDir-1.001002.tar.gz
Soma de verificação MD5 da transferência: ec31466aa44c1cd56c6cb51d7ec3a5de
Class-Tiny-1.008, File-Copy-Recursive-0.45, File-ShareDir-1.118, Path-Tiny-0.146 e Scope-Guard-0.21
"Test::LeakTrace" rastreia vazamentos de memória.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/L/LE/LEEJO/Test-LeakTrace-0.17.tar.gz
Soma de verificação MD5 da transferência: afdb2cc6be0807cb635fb601a004d522
"Test::Needs" pula os testes se um módulo solicitado não estiver presente.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/H/HA/HAARG/Test-Needs-0.002010.tar.gz
Soma de verificação MD5 da transferência: 2b3d10946001561297624e7668f09c26
O módulo "Test::Requires" verifica se outro módulo (opcional) consegue ser carregado e, se não, pula todos os testes atuais.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/T/TO/TOKUHIROM/Test-Requires-0.11.tar.gz
Soma de verificação MD5 da transferência: 999d6c4e46ea7baae7a5113292e02ed8
Test::RequiresInternet destina-se a testar facilmente a conectividade da rede de intercomunicação antes que os testes funcionais comecem a se conectarem a recursos não locais da Internet.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/M/MA/MALLEN/Test-RequiresInternet-0.05.tar.gz
Soma de verificação MD5 da transferência: 0ba9f1cff4cf90ed2618c2eddfd525d8
Test::Simple contém utilitários básicos para escrever testes.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/E/EX/EXODIST/Test-Simple-1.302209.tar.gz
Soma de verificação MD5 da transferência: 0b0060fafa4dd5cdf9b11fd5bcc1de64
"Test::utf8" é uma coleção de testes úteis para lidar com sequências de caracteres utf8 na Perl.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/S/SC/SCHWIGON/Test-utf8-1.03.tar.gz
Soma de verificação MD5 da transferência: 03e219b5a7d0645b313f557238c0f8b3
"Test::Warnings" testa para avisos e a falta deles.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/E/ET/ETHER/Test-Warnings-0.038.tar.gz
Soma de verificação MD5 da transferência: 53f8c543cf362f49f822bdfe31797712
Esse módulo te permite ocultar deliberadamente módulos provenientes de um aplicativo, mesmo que eles estejam instalados. Isso é útil principalmente para testar módulos que possuem um substituto quando um determinado módulo de dependência não estiver instalado.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/C/CO/CORION/Test-Without-Module-0.23.tar.gz
Soma de verificação MD5 da transferência: 58a507875131f63a936e0b971dd18f67
"Test2::Plugin::NoWarnings" causa testes falhem se existir algum aviso durante a execução deles.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/D/DR/DROLSKY/Test2-Plugin-NoWarnings-0.10.tar.gz
Soma de verificação MD5 da transferência: d50e21a76f1fef09004092a73b1c065b
"Text::CSV_XS" fornece facilidades para a composição e decomposição de valores separados por vírgula.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/H/HM/HMBRAND/Text-CSV_XS-1.60.tgz
Soma de verificação MD5 da transferência: 4c76eb41efea0e6effdd2fd67f40a808
"Text::Diff" realiza diferenças em arquivos e conjuntos de registros.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/N/NE/NEILB/Text-Diff-1.45.tar.gz
Soma de verificação MD5 da transferência: edf57b6189f7651a6be454062a4e6d9c
Text::Glob implementa correspondência de estilo glob(3) que pode ser usada para corresponder a texto, em vez de buscar nomes a partir de um sistema de arquivos.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/R/RC/RCLAMP/Text-Glob-0.11.tar.gz
Soma de verificação MD5 da transferência: d001559c504a2625dd117bd1558f07f7
Você usa "Tie::Cycle" para percorrer uma lista repetidamente. Depois de chegar ao final da lista, você volta ao início. Você não precisa se preocupar com nada disso, pois a magia da gravata faz isso por você.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/B/BR/BRIANDFOY/Tie-Cycle-1.229.tar.gz
Soma de verificação MD5 da transferência: 03374d069b69c6673a6fb8a14b64f918
"TimeDate" fornece diversas rotinas de manipulação de fuso horário.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/A/AT/ATOOMIC/TimeDate-2.33.tar.gz
Soma de verificação MD5 da transferência: 5e5afe22c8d417417283d1f7f4572a57
"Try::Tiny" fornece try e catch para esperar e lidar com condições excepcionais, evitando peculiaridades na Perl e erros comuns.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/E/ET/ETHER/Try-Tiny-0.32.tar.gz
Soma de verificação MD5 da transferência: 964424fcada4654bede745a7a2fb870b
"Magic" é a maneira "Perl" de melhorar variáveis. Com esse módulo, você consegue adicionar sua própria magia a qualquer variável.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/V/VP/VPIT/Variable-Magic-0.64.tar.gz
Soma de verificação MD5 da transferência: 957d53fc6614deb593aa6d7cf96d713a
"WWW::RobotRules" analisa arquivos robots.txt
, criando um objeto
"WWW::RobotRules" com métodos para verificar se o acesso a
um determinado "URL" é proibido.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/G/GA/GAAS/WWW-RobotRules-6.02.tar.gz
Soma de verificação MD5 da transferência: b7186e8b8b3701e70c22abf430742403
libwww-perl-6.78 (instale esse módulo primeiro e instale-o mais tarde)
"XML::LibXML" é uma ligação "Perl" para libxml2-2.13.6.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/S/SH/SHLOMIF/XML-LibXML-2.0210.tar.gz
Soma de verificação MD5 da transferência: d2bad7f395716a6f57abde538d47008c
Primeiro, aplique um remendo para corrigir problemas com a suíte de teste quando compilada em relação à libxml2-2.13:
patch -Np1 -i ../XML-LibXML-2.0210-testsuite_fixes-1.patch
Esse módulo usa as instruções padrão de construção e instalação:
perl Makefile.PL && make && make test
Agora, como o(a) usuário(a) root
:
make install
"XML::NamespaceSupport" oferece uma maneira simples de processar nomes "XML" com espaços de nome a partir de dentro de qualquer aplicativo que possa precisar deles.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/P/PE/PERIGRIN/XML-NamespaceSupport-1.12.tar.gz
Soma de verificação MD5 da transferência: a8916c6d095bcf073e1108af02e78c97
"XML::SAX" é uma "API" de acesso ao analisador "SAX" para "Perl". Inclui classes e "APIs" exigidas para implementar controladores "SAX", juntamente com uma classe de fábrica para retornar qualquer analisador "SAX" instalado no sistema do(a) usuário(a).
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/G/GR/GRANTM/XML-SAX-1.02.tar.gz
Soma de verificação MD5 da transferência: b62e3754523695c7f5bbcafa3676a38d
libxml2-2.13.6, XML-NamespaceSupport-1.12 e XML-SAX-Base-1.09
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
Esse módulo tem uma tarefa muito simples - ser uma classe base para controladores e filtros "PerlSAX".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cpan.metacpan.org/authors/id/G/GR/GRANTM/XML-SAX-Base-1.09.tar.gz
Soma de verificação MD5 da transferência: ec347a14065dd7aec7d9fb181b2d7946
PHP é o PHP Hypertext Preprocessor. Usado principalmente em sites dinâmicos, ele permite que o código de programação seja diretamente incorporado na marcação HTML. Ele também é útil como uma linguagem de script de propósito geral.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.php.net/distributions/php-8.4.4.tar.xz
Soma de verificação MD5 da transferência: c9aa75fada9f41e9f0e02642b51225cc
Tamanho da transferência: 13 MB
Espaço em disco estimado exigido: 589 MB (com documentação e testes)
Tempo de construção estimado: 1,3 UPC (com paralelismo=4; adicionar 2,5 UPC para testes)
Documentação pré construida opcional (arquivo único HTML): https://www.php.net/distributions/manual/php_manual_en.html.gz
Documentação pré construída opcional (HTML em pedaços): https://www.php.net/distributions/manual/php_manual_en.tar.gz. Observe que a documentação pode ser encontrada em outros idiomas além do inglês em https://www.php.net/download-docs.php
Apache-2.4.63 e libxml2-2.13.6
Aspell-0.60.8.1, enchant-2.8.2, libxslt-1.1.42, um MTA (que forneça um comando sendmail), pcre2-10.45, AppArmor, Dmalloc, Net-SNMP, oniguruma, OSSP mm, re2c e XMLRPC-EPI
FreeType-2.13.3, libexif-0.6.25, libjpeg-turbo-3.0.1, libpng-1.6.46, libtiff-4.7.0, libwebp-1.5.0, um ambiente gráfico, FDF Toolkit, GD e t1lib
cURL-8.12.1, tidy-html5-5.8.0, Caudium, Hyperwave, Roxen WebServer e WDDX
lmdb-0.9.31, MariaDB-11.4.5 ou MySQL, OpenLDAP-2.6.9, PostgreSQL-17.4, SQLite-3.49.1, unixODBC-2.3.12, Berkeley DB (obsoleto) Adabas, Birdstep, cdb, DBMaker, Empress, FrontBase, IBM DB2, libiodbc, Mini SQL, Monetra e QDBM
PHP também fornece suporte para muitas ferramentas comerciais de base de dados, como Oracle, SAP e ODBC Router.
Cyrus SASL-2.1.28, MIT Kerberos V5-1.21.3, libmcrypt e mhash
Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/php
Você pode usar PHP para scripts do lado do servidor, scripts de linha de comando ou aplicativos GUI do lado do cliente. Este livro fornece instruções para configurar PHP para scripts do lado do servidor, pois é a forma mais comum.
PHP tem muito mais opções do configure que habilitarão suporte para várias coisas. Você pode usar ./configure --help para ver uma lista completa das opções disponíveis. Também, o uso do site do PHP é altamente recomendado, pois os documentos deles on-line são muito bons. Um exemplo de um comando configure que utiliza muitas das dependências mais comuns pode ser encontrado em https://anduin.linuxfromscratch.org/BLFS/files/php_configure.txt.
Se, por qualquer motivo, você não tiver libxml2-2.13.6
instalado, você precisa adicionar --disable-libxml
ao comando configure nas instruções
abaixo. Observe que isso impedirá que o comando
pear seja
construído.
Instale PHP executando os seguintes comandos:
./configure --prefix=/usr \ --sysconfdir=/etc \ --localstatedir=/var \ --datadir=/usr/share/php \ --mandir=/usr/share/man \ --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
Para testar os resultados, emita: make test. Several tests (out of over 20000) may fail, in which case you are asked whether you want to send the report to the PHP developers. If you want to automate the test, you may prefix the command with yes "n" | .
Agora, como o(a) usuário(a) root
:
make install && install -v -m644 php.ini-production /etc/php.ini && install -v -m755 -d /usr/share/doc/php-8.4.4 && install -v -m644 CODING_STANDARDS* EXTENSIONS NEWS README* UPGRADING* \ /usr/share/doc/php-8.4.4
Os arquivos pré definidos de configuração para o gerenciador
de processos fastCGI são instalados somente se eles ainda não
existirem no sistema. Se esta for a primeira instalação, eles
deveriam ser renomeados, como o(a) usuário(a) root
:
if [ -f /etc/php-fpm.conf.default ]; then mv -v /etc/php-fpm.conf{.default,} && mv -v /etc/php-fpm.d/www.conf{.default,} fi
A documentação HTML pré-construída é empacotada em dois
formatos: um tarball contendo muitos arquivos individuais,
útil para carregamento rápido no teu navegador, e um arquivo
individual grande, que é útil para usar o utilitário de
pesquisa do teu navegador. Se você baixou um, ou ambos, os
arquivos de documentação, emita os seguintes comandos como
o(a) usuário(a) root
para
instalá-los (observe que estas instruções assumem documentos
em inglês; modifique os nomes dos tarballs abaixo se
necessário).
Para o arquivo “HTML Único”:
install -v -m644 ../php_manual_en.html.gz \ /usr/share/doc/php-8.4.4 && gunzip -v /usr/share/doc/php-8.4.4/php_manual_en.html.gz
Para o tarball “Muitos arquivos HTML”:
tar -xvf ../php_manual_en.tar.gz \ -C /usr/share/doc/php-8.4.4 --no-same-owner
O pear empacotado não é instalado por causa de um defeito que poderia poluir o sistema de arquivos com vários arquivos e diretórios ocultos. Se o pear for necessário, execute os seguintes comandos para instalá-lo:
wget https://pear.php.net/go-pear.phar php ./go-pear.phar
--datadir=/usr/share/php
: Isso
contorna um defeito no mecanismo de construção, que instala
alguns dados em um local errado.
--enable-fpm
: Esse
parâmetro permite construir o Gerenciador de Processos
fastCGI.
--with-fpm-systemd
:
Esse parâmetro permite ao Gerenciador de Processos FastCGI
integrar com o systemd.
--without-pear
: Essa
chave desabilita a instalação do software pear incluído.
--with-config-file-path=/etc
:
Esse parâmetro faz com que PHP procure o arquivo de configuração
php.ini
em /etc
.
--with-zlib
: Esse
parâmetro adiciona suporte para compressão Zlib.
--enable-bcmath
:
Habilita funções matemáticas de precisão no estilo do
bc.
--with-bz2
: Adiciona
suporte para funções de compressão do Bzip2.
--enable-calendar
:
Esse parâmetro fornece suporte para conversão de calendário.
--enable-dba=shared
:
Esse parâmetro habilita o suporte para funções de camada de
abstração de base de dados (estilo dbm).
--enable-ftp
: Esse
parâmetro habilita funções de FTP.
--with-gettext
:
Habilita funções que usam a tradução de texto Gettext.
--enable-mbstring
:
Esse parâmetro habilita o suporte a sequências de caracteres
de multi byte.
--with-readline
: Esse
parâmetro habilita o suporte Readline de linha de comando.
--disable-libxml
: Essa opção
permite construir o PHP sem libxml2 instalado.
--with-apxs2
: Em vez de construir
o gerenciador de processos fastCGI, é possível construir um
módulo do apache. Isso tem
alguma penalidade de desempenho para servidores com carga
pesada, mas pode ser mais fácil de configurar. Essa chave é
incompatível com as chaves --enable-fpm
e --with-fpm-...
.
--with-mysqli=shared
: Essa opção
inclui suporte ao MySQLi.
--with-mysql-sock=/run/mysqld/mysqld.sock
:
Local do ponteiro do soquete Unix do MySQL.
--with-pdo-mysql=shared
: Essa
opção inclui suporte a PDO: MySQL.
--with-tidy=shared
: Essa opção
inclui suporte a biblioteca tidy.
O arquivo usado como o arquivo pré definido de configuração
/etc/php.ini
é recomendado
pela equipe de desenvolvimento do PHP. Esse arquivo modifica o
comportamento pré definido do PHP. Se nenhum /etc/php.ini
for usado, todas as
definições de configuração cairão para as pré definidas.
Você deveria revisar os comentários nesse arquivo e
garantir que as mudanças sejam aceitáveis em teu ambiente
específico.
O gerenciador de processos fastCGI usa o arquivo de
configuração /etc/php-fpm.conf
. O arquivo pré definido
enviado com o PHP inclui todos os /etc/php-fpm.d/*.conf
em sequência.
Existe um arquivo /etc/php-fpm.d/www.conf
enviado, que
contém os parâmetros relacionados à interação com o
servidor Web Apache.
Você deve ter observado o seguinte a partir da saída gerada do comando make install:
You may want to add: /usr/lib/php to your php.ini include_path
Se desejado, adicione a entrada usando o seguinte comando
como o(a) usuário(a) root
:
sed -i 's@php/includes"@&\ninclude_path = ".:/usr/lib/php"@' \ /etc/php.ini
Para habilitar o suporte fastCGI no servidor web
Apache, duas diretivas
LoadModule precisam ser adicionadas ao arquivo httpd.conf
. Elas estão comentadas, de
forma que apenas emita o seguinte comando como usuário(a)
root
:
sed -i -e '/proxy_module/s/^#//' \ -e '/proxy_fcgi_module/s/^#//' \ /etc/httpd/httpd.conf
Esses módulos aceitam várias diretivas ProxyPass. Uma
possibilidade é (como o(a) usuário(a) root
):
echo \ 'ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/srv/www/$1' >> \ /etc/httpd/httpd.conf
Além disso, pode ser útil adicionar uma entrada para
index.php
para a diretiva
DirectoryIndex do arquivo httpd.conf
. Por fim, adicionar uma linha
para configurar a extensão .phps
para mostrar o fonte PHP destacado pode ser desejável:
AddType application/x-httpd-php-source .phps
Você precisará reiniciar o servidor web Apache depois de fazer quaisquer
modificações no arquivo httpd.conf
.
Para iniciar o processo de segundo plano php-fpm na inicialização,
instale a unidade do systemd oriunda do pacote blfs-systemd-units-20241211
executando o seguinte comando como o(a) usuário(a)
root
:
make install-php-fpm
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.
O Python 3 foi instalado no LFS. A única razão para reconstruí-lo aqui é se módulos opcionais forem necessários ou para atualizar esse pacote.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Se atualizar para uma nova versão secundária do Python-3 (por exemplo, de Python-3.11.x para Python-3.12.0), você precisará reinstalar quaisquer módulos do Python3 que tiver instalado. Você também deveria reinstalar pacotes que geram módulos do Python3, incluindo GLib-2.82.5 (com GObject Introspection), libxml2-2.13.6, opencv-4.11.0, FontForge-20230101, gnome-tweaks-46.1, Samba-4.21.4 e Graphviz-12.2.1 (se swig estiver instalado).
Antes de atualizar, você pode obter uma lista de módulos
instalados com pip3
list. A lista pode estar incompleta porque
alguns módulos Python não são instalados com pip3, por exemplo o
módulo cracklib
instalado por
CrackLib-2.10.3. Use ls /usr/lib/python3.minor
/site-packages
para uma lista abrangente.
Os módulos Python oriundos do LFS também terão que ser reinstalados: flit-core, wheel, setuptools, meson, MarkupSafe e Jinja2.
Transferência (HTTP): https://www.python.org/ftp/python/3.13.2/Python-3.13.2.tar.xz
Soma de verificação MD5 da transferência: 4c2d9202ab4db02c9d0999b14655dfe5
Tamanho da transferência: 22 MB
Espaço em disco estimado exigido: 649 MB (adicionar 65 MB para os testes)
Tempo de construção estimado: 2,1 UPC (adicionar 1,1 UPC para testes; ambos usando paralelismo=4)
Transferência (HTTP): https://www.python.org/ftp/python/doc/3.13.2/python-3.13.2-docs-html.tar.bz2
Soma de verificação MD5 da transferência: d6aede88f480a018d26b3206f21654ae
SQLite-3.49.1 (exigido se construir Firefox ou Thunderbird)
BlueZ-5.79, GDB-16.2 (exigido para alguns testes), Valgrind-3.24.0 e libmpdec
libnsl-2.0.1, Tk-8.6.16 e Berkeley DB (obsoleto)
Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/Python3
Instale o "Python 3" executando os seguintes comandos:
CXX="/usr/bin/g++" \ ./configure --prefix=/usr \ --enable-shared \ --with-system-expat \ --enable-optimizations && make
Alguns testes são conhecidos por travarem ocasional e indefinidamente. Portanto, para testar os resultados, execute a suíte de teste, porém configure um limite de tempo de 2 minutos para cada caso de teste:
make test TESTOPTS="--timeout 120"
Para um sistema relativamente lento, você possivelmente precise aumentar o limite de tempo e 1 UPC (medido ao construir Binutils a passagem 1 com um núcleo de CPU) deveria ser suficiente. Alguns testes são instáveis, de forma que a suíte de teste automaticamente reexecutará testes falhos. Se um teste falhou, porém a seguir passou quando reexecutado, ele deveria ser considerado como passado.
De mais de 44.000 testes, o seguinte teste é conhecido por falhar: test_importlib.
Agora, como o(a) usuário(a) "root
":
make install
Se atualizar e a documentação tiver sido baixada, [então]
opcionalmente instale-a como o(a) usuário(a) "root
":
install -v -dm755 /usr/share/doc/python-3.13.2/html tar --strip-components=1 \ --no-same-owner \ --no-same-permissions \ -C /usr/share/doc/python-3.13.2/html \ -xvf ../python-3.13.2-docs-html.tar.bz2
CXX="/usr/bin/g++" ./configure ...: Evite uma mensagem irritante durante a configuração.
--with-system-expat
:
Essa chave habilita vinculação à versão do sistema do
Expat.
--enable-optimizations
: Essa
chave habilita otimizações estáveis, mas caras.
--with-lto
: Essa chave opcional
habilita "Link Time Optimization" denso. Excepcionalmente,
ele cria um "/usr/lib/python3.13/config-3.13-<arch>-linux-gnu/libpython3.13.a
"
muito maior com um pequeno aumento no tempo para compilar o
"Python". Os resultados em
tempo de execução não parecem mostrar nenhum benefício
advindo de fazer isso.
Para a finalidade de que "python3" encontre a documentação instalada, crie o seguinte link simbólico independente da versão:
ln -svfn python-3.13.2 /usr/share/doc/python-3
e adicione a seguinte variável de ambiente ao perfil individual do(a) usuário(a) ou ao do sistema:
export PYTHONDOCS=/usr/share/doc/python-3/html
é 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 |
|
é a ferramenta de documentação do "Python" |
|
é uma linguagem de programação interpretada, interativa e orientada a objetos |
|
é um nome específico da versão para o programa python |
O pacote Python 3.11 contém uma versão mais antiga do ambiente de desenvolvimento do Python. Isso é necessário somente para construir seamonkey-2.53.20, pois o sistema de construção dele não tem sido atualizado para suportar Python-3.13.2.
NÃO instale esse pacote se você não estiver instalando Seamonkey.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.python.org/ftp/python/3.11.1/Python-3.11.1.tar.xz
Soma de verificação MD5 da transferência: 4efe92adf28875c77d3b9b2e8d3bc44a
Tamanho da transferência: 19 MB
Espaço em disco estimado exigido: 301 MB
Tempo de construção estimado: 1,1 UPC (Usando paralelismo=4)
Instale Python 3.11 executando os seguintes comandos:
CXX="/usr/bin/g++" \ ./configure --prefix=/opt/python3.11 \ --disable-shared \ --with-system-expat && make
Como esse pacote é usado somente em situações muito limitadas, testes não são recomendados.
Agora, como o(a) usuário(a) root
:
make install
CXX="/usr/bin/g++" ./configure ...: Evite uma mensagem irritante durante a configuração.
--prefix=/opt/python3.11
: Isso
instala Python 3.11 em /opt para a finalidade de evitar
conflitos com a versão do sistema do Python e permitir fácil
remoção/isolamento quando programas atualizarem para Python
3.12 ou posterior.
--disable-shared
:
Essa chave desabilita construir bibliotecas compartilhadas.
Como todos os pacotes que precisam do python-3.11 foram
construídos em módulos e não se vinculam diretamente ao
python, é seguro desativar o suporte de biblioteca
compartilhada.
--with-system-expat
:
Essa chave habilita vinculação à versão do sistema do
Expat.
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.
Se você quiser executar testes, vários dos seguintes
módulos dependem do módulo central python sqlite3
que não foi construído no LFS.
Portanto, é recomendado reconstruir o Python depois de
instalar a dependência recomendada listada em Python-3.13.2.
No BLFS, normalmente construímos e instalamos módulos
"Python 3" com pip3. Por favor tome
cuidado de que os comandos pip3 install no livro
deveriam ser executados como root
a menos que seja para um ambiente
virtual "Python". Executar o pip3 install como um(a)
usuário(a) não-root
possivelmente pareça funcionar bem, mas causará o módulo
instalado ficar inacessível para outros(as) usuários(as).
pip3 install
não reinstalará um módulo já instalado por padrão. Para
usar o comando pip3
install para atualizar um módulo (por
exemplo, de meson-0.61.3 para meson-0.62.0), insira
--upgrade
na linha
de comando. Se for realmente necessário desatualizar um
módulo ou reinstalar a mesma versão por algum motivo,
insira --force-reinstall
na linha de
comando.
O pacote Asciidoc é um formato de documento de texto para escrever notas, documentação, artigos, livros, "e-books", apresentações de slides, páginas da "web", páginas de manual e "blogs". Os arquivos "AsciiDoc" podem ser traduzidos para muitos formatos, incluindo "HTML", "PDF", "EPUB" e página de manual.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://files.pythonhosted.org/packages/source/a/asciidoc/asciidoc-10.2.1.tar.gz
Soma de verificação MD5 da transferência: 460824075b51381a4b5f478c60a18165
Tamanho da transferência: 228 KB
Espaço em disco estimado exigido: 2,6 MB
Tempo de construção estimado: menos que 0,1 UPC
docbook-xsl-nons-1.79.2, fop-2.10, libxslt-1.1.42, Lynx-2.9.2, dblatex e W3m
Construa o módulo:
pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
pip3 install --no-index --find-links dist --no-user asciidoc
-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".
CSSSelect fornece seletores "CSS" para "Python".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://files.pythonhosted.org/packages/source/c/cssselect/cssselect-1.2.0.tar.gz
Soma de verificação MD5 da transferência: 27fbafacce5447cb867acb240d35002a
Tamanho da transferência: 1,2 MB
Espaço em disco estimado exigido: 512 KB (adicionar 488 KB para os testes)
Tempo de construção estimado: menos que 0,1 UPC
Construa o módulo:
pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD
Agora, como o(a) usuário(a) root
:
pip3 install --no-index --find-links dist --no-user cssselect
Para testar a instalação, emita pytest.
-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".
CacheControl é uma porta dos algoritmos de cache em "httplib2" para uso com solicitações de objeto de sessão. Ele foi escrito porque o melhor suporte do "httplib2" para cache frequentemente é mitigado pela falta de segurança de camada. O mesmo se aplica às solicitações em termos de cache.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/psf/cachecontrol/archive/v0.14.2/cachecontrol-0.14.2.tar.gz
Soma de verificação MD5 da transferência: c4912812fd7ec8865b6dca9bcaa0cb38
Tamanho da transferência: 44 KB
Espaço em disco estimado exigido: 364 KB
Tempo de construção estimado: menos que 0,1 UPC
Construa o módulo:
pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD
Agora, como o(a) usuário(a) root
:
pip3 install --no-index --find-links dist --no-user cachecontrol
Esse módulo não tem uma suíte de teste funcional.
-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".
O pacote Cython fornece um compilador para escrever extensões "C" para a linguagem "Python".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/cython/cython/releases/download/3.0.12/cython-3.0.12.tar.gz
Soma de verificação MD5 da transferência: ab61fac00686d611197fba10c37f30e5
Tamanho da transferência: 2,7 MB
Espaço em disco estimado exigido: 143 MB
Tempo de construção estimado: 2,1 UPC
Construa o módulo:
pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
pip3 install --no-index --find-links dist --no-user Cython
-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".
é o depurador 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++ |
|
é 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 é uma biblioteca "Python" útil para escrever testes para logiciário que se comunique com serviços "D-Bus".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://files.pythonhosted.org/packages/source/p/python-dbusmock/python_dbusmock-0.34.3.tar.gz
Soma de verificação MD5 da transferência: a2de46b58aa39d8337d4104493404249
Tamanho da transferência: 112 KB
Espaço em disco estimado exigido: 1,1 MB
Tempo de construção estimado: menos que 0,1 UPC
pytest-8.3.4 (exigido para executar a suíte de teste), PyGObject-3.50.0 (exigido para executar a suíte de teste), BlueZ-5.79 (opcional para a suíte de teste) e UPower-1.90.7 (opcional para a suíte de teste; se não instalado, um teste falhará)
Construa o pacote com:
pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD
Para instalar o pacote execute o seguinte como o(a)
usuário(a) root
:
pip3 install --no-index --find-links dist --no-user python-dbusmock
Para testar os resultados, emita: LC_ALL=C pytest
-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".
"D-Bus Python" fornece ligações "Python" para a interface "API" "D-Bus".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://dbus.freedesktop.org/releases/dbus-python/dbus-python-1.3.2.tar.gz
Soma de verificação MD5 da transferência: 33be8a4a766e1c7c9a377b8f934ce21a
Tamanho da transferência: 592 KB
Espaço em disco estimado exigido: 4,0 MB
Tempo de construção estimado: menos que 0,1 UPC
dbus-1.16.0, GLib-2.82.5, meson_python-0.17.1 e patchelf-0.18.0
Construa o módulo "D-Bus Python" executando o seguinte comando:
pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD
Esse pacote não vem com uma suíte de teste.
Agora instale o módulo como o(a) usuário(a) root
:
pip3 install --no-index --find-links dist --no-user dbus-python
-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".
"docutils" é um conjunto de módulos e programas "Python" para processar documentos de texto simples em formatos como "HTML", "XML" ou "LaTeX".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://files.pythonhosted.org/packages/source/d/docutils/docutils-0.21.2.tar.gz
Soma de verificação MD5 da transferência: c4064e1e0e3cd142951fd2b95b830874
Tamanho da transferência: 2,1 MB
Espaço em disco estimado exigido: 10 MB
Tempo de construção estimado: menos que 0,1 UPC
Primeiro, remova alguns arquivos instalados em uma versão
anterior que não mais são válidos. Como o(a) usuário(a)
root
:
for f in /usr/bin/rst*.py; do rm -fv /usr/bin/$(basename $f .py) done
Para construir os aplicativos "Python 3", execute o seguinte comando:
pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD
Para instalar os aplicativos "Python" execute o seguinte como o(a)
usuário(a) "root
":
pip3 install --no-index --find-links dist --no-user docutils
Para testar a instalação, emita: test/alltests.py. Dois
testes na suíte test_parser
são conhecidos por falharem.
-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".
converte documentos em vários formatos |
|
gera documentos "(X)HTML" a partir de fontes independentes "reStructuredText" |
|
gera documentos "(X)HTML" a partir de fontes independentes "reStructuredText" |
|
gera documentos "HTML5" a partir de fontes independentes "reStructuredText" |
|
gera documentos "LaTeX" a partir de fontes independentes "reStructuredText" |
|
gera documentos manuais simples "Unix" a partir de fontes independentes "reStructuredText" |
|
gera documentos "OpenDocument/OpenOffice/ODF" a partir de fontes independentes "reStructuredText" |
|
Corrige um "styles.odt" gerado por processador de texto para uso do "odtwriter" |
|
gera pseudo "XML" a partir de fontes independentes "reStructuredText" (para fins de teste) |
|
gera apresentação de slides "(X)HTML" "S5" a partir de fontes independentes "reStructuredText" |
|
gera documentos "LaTeX" a partir de fontes independentes "reStructuredText" para compilação com as variantes "TeX" compatíveis com "Unicode" "XeLaTeX" ou "LuaLaTeX" |
|
gera "XML" nativo do "Docutils" a partir de fontes independentes "reStructuredText" |
|
gera "(X)HTML" a partir de arquivos "PEP" no formato "reStructuredText" |
O pacote "Doxypypy" é um filtro "doxygen" para "Python".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://files.pythonhosted.org/packages/source/d/doxypypy/doxypypy-0.8.8.7.tar.gz
Soma de verificação MD5 da transferência: 5773d0a7882df900cbda8ee5107e1ced
Tamanho da transferência: 45 KB
Espaço em disco estimado exigido: 2,1 MB
Tempo de construção estimado: menos que 0,1 UPC
chardet-5.2.0 e Doxygen-1.13.2 (em tempo de execução)
Construa o módulo:
pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD
Agora, como o(a) usuário(a) root
:
pip3 install --no-index --find-links dist --no-user doxypypy
Esse pacote não vem com uma suíte de teste funcional.
-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".
O pacote "Doxyqml" permite usar "Doxygen" para documentar classes "QML".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://files.pythonhosted.org/packages/source/d/doxyqml/doxyqml-0.5.3.tar.gz
Soma de verificação MD5 da transferência: 3d394a0d896721e27beb62bf032f7f43
Tamanho da transferência: 28 KB
Espaço em disco estimado exigido: 652 KB (com testes)
Tempo de construção estimado: menos que 0,1 UPC (com testes)
Construa o módulo:
pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD
Agora, como o(a) usuário(a) root
:
pip3 install --no-index --find-links dist --no-user doxyqml
Para testar a instalação, emita:
python3 tests/functional/tests.py && python3 tests/unit/tests.py
-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".
Gi-DocGen é um gerador de documentos para bibliotecas baseadas em GObject. GObject é o sistema básico de tipos do projeto GNOME. Gi-DocGen reusa os dados de introspecção gerados por bibliotecas baseadas em GObject para gerar a referência de API dessas bibliotecas, bem como outras documentações auxiliares.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://files.pythonhosted.org/packages/source/g/gi-docgen/gi_docgen-2025.3.tar.gz
Soma de verificação MD5 da transferência: 1ca4c7d7b1f24635a7f61de359c909d3
Tamanho da transferência: 2,4 MB
Espaço em disco estimado exigido: 17 MB (com testes)
Tempo de construção estimado: menos que 0,1 UPC (com testes)
Markdown-3.7, packaging-24.2, Pygments-2.19.1 e typogrify-2.1.0
Graphviz-12.2.1 (tempo de execução, para visualizar gráficos de hierarquia de classes) e pytest-8.3.4 (para testagem)
Construa o módulo:
pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD
Agora, como o(a) usuário(a) root
:
pip3 install --no-index --find-links dist --no-user gi-docgen
Para testar a instalação, emita "pytest".
-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".
html5lib fornece uma biblioteca Python pura para analisar HTML. Ele foi projetado para conformar-se com a especificação HTML WHATWG.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://files.pythonhosted.org/packages/source/h/html5lib/html5lib-1.1.tar.gz
Soma de verificação MD5 da transferência: 6748742e2ec4cb99287a6bc82bcfe2b0
Tamanho da transferência: 268 KB
Espaço em disco estimado exigido: 3,9 MB
Tempo de construção estimado: menos que 0,1 UPC
Para construir o módulo do Python 3, execute:
pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD
Para instalar o módulo, emita o seguinte comando como o(a)
usuário(a) root
:
pip3 install --no-index --find-links dist --no-user html5lib
-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".
"lxml" fornece ligações "Python" para libxslt-1.1.42 e libxml2-2.13.6.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://files.pythonhosted.org/packages/source/l/lxml/lxml-5.3.1.tar.gz
Soma de verificação MD5 da transferência: 9d94cc157fb6db0c062ef80cdc0ed307
Tamanho da transferência: 3,6 MB
Espaço em disco estimado exigido: 90 MB
Tempo de construção estimado: 0,9UPC
Para construir o módulo do Python 3, execute:
pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD
Para instalar o módulo, emita o seguinte comando como o(a)
usuário(a) root
:
pip3 install --no-index --find-links dist --no-user lxml
-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".
"Mako" é um módulo "Python" que implementa modelos hiper-rápidos e leves para a plataforma "Python".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://files.pythonhosted.org/packages/source/M/Mako/mako-1.3.9.tar.gz
Soma de verificação MD5 da transferência: 28b1b70e01a1240c90e97fab2f17e349
Tamanho da transferência: 384 KB
Espaço em disco estimado exigido: 3,9 MB (com testes)
Tempo de construção estimado: menos que 0,1 UPC (com testes)
O nome do tarball mudou de Mako para mako, mas ainda instala o módulo como Mako.
Construa o módulo:
pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD
Instale o módulo como o(a) usuário(a) "root
":
pip3 install --no-index --find-links dist --no-user Mako
Para testar a instalação, emita "pytest".
-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".
"NumPy" é o pacote fundamental para computação científica com "Python".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://files.pythonhosted.org/packages/source/n/numpy/numpy-2.2.3.tar.gz
Soma de verificação MD5 da transferência: c6ee254bcdf1e2fdb13d87e0ee4166ba
Tamanho da transferência: 19 MB
Espaço em disco estimado exigido: 107 MB (add 23 MB for tests)
Tempo de construção estimado: 0,4 UPC (adicionar 1,1 UPC para testes)
cython-3.0.12, meson_python-0.17.1 e pyproject-metadata-0.9.0
fortran oriundo do GCC-14.2.0, lapack e cblas e openblas
Construa o módulo:
pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir -C setup-args=-Dallow-noblas=true $PWD
Agora, como o(a) usuário(a) root
:
pip3 install --no-index --find-links dist --no-user numpy
A instalação pode ser testada com os seguintes comandos:
mkdir -p test && cd test && python3 -m venv --system-site-packages testenv && source testenv/bin/activate && pip3 install hypothesis && python3 -c "import numpy, sys; sys.exit(numpy.test() is False)" deactivate
-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".
A biblioteca Packaging fornece utilitários que implementam as especificações de interoperabilidade que tem claramente um comportamento correto (PEP440) ou se beneficiam muito de ter uma implementação compartilhada (PEP425). Isso inclui utilitários para manuseio de versão, especificadores, marcadores, etiquetadores e exigências.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://files.pythonhosted.org/packages/source/p/packaging/packaging-24.2.tar.gz
Soma de verificação MD5 da transferência: 97dbaca91e00d6b9fd86866e8c7897ae
Tamanho da transferência: 164 KB
Espaço em disco estimado exigido: 2,7 MB (adicionar 20 MB para os testes)
Tempo de construção estimado: menos que 0,1 UPC (0,1 UPC para testes)
Construa o módulo:
pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD
Agora, como o(a) usuário(a) root
:
pip3 install --no-index --find-links dist --no-user packaging
Supondo que "pytest-8.3.4" esteja instalado, mas a outra dependência opcional não esteja, a instalação pode ser testada com os seguintes comandos:
python3 -m venv --system-site-packages testenv && source testenv/bin/activate && pip3 install pretend && python3 /usr/bin/pytest deactivate
-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".
O pacote ply é uma implementação 100% Python das ferramentas comuns de análise 'lex' e 'yacc'.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://files.pythonhosted.org/packages/source/p/ply/ply-3.11.tar.gz
Soma de verificação MD5 da transferência: 6465f602e656455affcd7c5734c638f8
Tamanho da transferência: 156 KB
Espaço em disco estimado exigido: 2,2 MB
Tempo de construção estimado: menos que 0,1UPC
Construa o módulo:
pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD
Agora, como o(a) usuário(a) root
:
pip3 install --no-index --find-links dist --no-user ply
Esse pacote não vem com uma suíte de teste funcional.
-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".
psutil (utilitários de processo e sistema) é uma biblioteca multiplataforma para recuperar informações acerca de processos em execução e utilização do sistema (CPU, memória, discos, rede de intercomunicação, sensores) em Python. Ela é útil principalmente para monitoramento do sistema, criação de perfil e limitação de recursos de processos e gerenciamento de processos em execução. Ela implementa muitas funcionalidades oferecidas pelas ferramentas clássicas de linha de comando do UNIX, como ps, top, iotop, lsof, netstat, ifconfig, free e outras.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://files.pythonhosted.org/packages/source/p/psutil/psutil-7.0.0.tar.gz
Soma de verificação MD5 da transferência: 1c074ff5828dff3a3ecfa0e0f9de2e63
Tamanho da transferência: 488 KB
Espaço em disco estimado exigido: 4.2 MB
Tempo de construção estimado: menos que 0,1 UPC
pytest-8.3.4 and pypinfo
Construa o módulo:
pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD
Agora, como o(a) usuário(a) root
:
pip3 install --no-index --find-links dist --no-user psutil
Para testar os resultados, emita: make test.
Two tests, TestSystemAPIs::test_disk_usage
and
TestNetAPIs::test_net_if_addrs
, are known
to fail. One test named TestAvailProcessAPIs::test_io_counters
is
known to fail if the kernel does not have CONFIG_TASK_IO_ACCOUNTING
enabled.
TestScripts.test_who
is known
to fail if the login manager does not write into
/run/utmp
(note that due to
the potential year 2037 problem, Shadow has already stopped
writing into it). TestInternalScripts::test_import_all
is
known to fail if the external module pyinfo is not
installed.
-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".
"Py3c" te ajuda a portar extensões "C" para "Python" 3. Ele fornece um guia detalhado e um conjunto de macros para facilitar a portabilidade e reduzir o clichê.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/encukou/py3c/archive/v1.4/py3c-1.4.tar.gz
Soma de verificação MD5 da transferência: 53029afde7e0cf8672a2d69d378a0cfc
Tamanho da transferência: 47 KB
Espaço em disco estimado exigido: 608 KB (com testes)
Tempo de construção estimado: menos que 0,1 UPC (com testes)
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
O pacote "PyAtSpi2" contém ligações "Python" para os componentes centrais da Acessibilidade do "GNOME".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/pyatspi/2.46/pyatspi-2.46.1.tar.xz
Soma de verificação MD5 da transferência: 0f2bfade055457cb0c2389fd46d1ad70
Tamanho da transferência: 316 KB
Espaço em disco estimado exigido: 3,9 MB
Tempo de construção estimado: menos que 0,1 UPC
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
"PyCairo" fornece ligações "Python" para "Cairo".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/pygobject/pycairo/releases/download/v1.26.1/pycairo-1.26.1.tar.gz
Soma de verificação MD5 da transferência: 36504ac01533ae14f0d2337516bbae2e
Tamanho da transferência: 340 KB
Espaço em disco estimado exigido: 3,1 MB
Tempo de construção estimado: menos que 0,1 UPC
Hypothesis e pytest-8.3.4 (para testes)
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
GDB/MI é uma interface de texto orientada a máquina baseada em linha para GDB e é ativada especificando-se usar a opção de linha de comando --interpreter (vejam-se Opções de Modo). Ele é destinado especificamente para suportar o desenvolvimento de sistemas que usam o depurador apenas como um pequeno componente de um sistema maior.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://files.pythonhosted.org/packages/source/p/pygdbmi/pygdbmi-0.11.0.0.tar.gz
Soma de verificação MD5 da transferência: 34b1812e77469c6206002b3929798cab
Tamanho da transferência: 28 KB
Espaço em disco estimado exigido: 280 MB
Tempo de construção estimado: menos que 0,1 UPC
Construa o módulo:
pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
pip3 install --no-index --find-links dist --no-user pygdbmi
-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".
"Pygments" é um realçador geral de sintaxe escrito em "Python", para mais de trezentas (300) linguagens.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://files.pythonhosted.org/packages/source/P/Pygments/pygments-2.19.1.tar.gz
Soma de verificação MD5 da transferência: 5e6e00a0f63b9f3b63edfa260f71b1b5
Tamanho da transferência: 4,8 MB
Espaço em disco estimado exigido: 52 MB
Tempo de construção estimado: menos que 0,1 UPC
Construa o módulo "Python 3":
pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD
Para instalar o pacote execute o seguinte como o usuário
"root
":
pip3 install --no-index --find-links dist --no-user Pygments
Para testar a instalação, certifique-se de que pytest-8.3.4 esteja instalado e execute:
python3 -m venv --system-site-packages testenv && testenv/bin/pip3 install wcag-contrast-ratio && testenv/bin/python -m pytest
-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".
"PyGObject3" fornece ligações "Python" para a classe "GObject" originária da "GLib".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/pygobject/3.50/pygobject-3.50.0.tar.xz
Soma de verificação MD5 da transferência: 8f34e4bc1d7d57faf558180b0051c9ef
Tamanho da transferência: 912 KB
Espaço em disco estimado exigido: 10 MB (com testes)
Tempo de construção estimado: 0,2UPC (com testes)
GLib-2.82.5 (com GObject Introspection)
Primeiro, remova dois testes defeituosos:
mv -v tests/test_gdbus.py{,.nouse} && mv -v tests/test_overrides_gtk.py{,.nouse}
Instale "pygobject3" executando os seguintes comandos:
mkdir build && cd build && meson setup --prefix=/usr --buildtype=release .. && ninja
Para testar os resultados, emita: "ninja test". É necessária uma sessão gráfica já ativa com endereço de barramento para executar os testes. Outra rodada de testes possivelmente informe "ERROR" se "GTK-4.16.12" não estiver instalado.
Agora, como o(a) usuário(a) "root
":
ninja install
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
-D pycairo=disabled
: use essa
chave se você não tiver PyCairo-1.26.1 instalado.
O módulo "pyparsing" é uma abordagem alternativa para criar e executar gramáticas simples, versus a abordagem tradicional "lex/yacc", ou o uso de expressões regulares. Ele fornece uma biblioteca de classes que o código cliente usa para construir a gramática diretamente no código "Python".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://files.pythonhosted.org/packages/source/p/pyparsing/pyparsing-3.2.1.tar.gz
Soma de verificação MD5 da transferência: 0af29922e2f22dbc2569b88917b44f52
Tamanho da transferência: 1,0 MB
Espaço em disco estimado exigido: 99 MB (com testes)
Tempo de construção estimado: 0,3 UPC (com testes)
railroad-diagrams (também necessário para testes)
Construa o módulo:
pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD
Agora, como o(a) usuário(a) "root
":
pip3 install --no-index --find-links dist --no-user pyparsing
Supondo que pytest-8.3.4 esteja instalado, mas a outra dependência opcional não esteja, a instalação pode ser testada com os seguintes comandos:
python3 -m venv --system-site-packages testenv && source testenv/bin/activate && pip3 install railroad-diagrams matplotlib && python3 /usr/bin/pytest deactivate
-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".
O módulo "pySerial" encapsula o acesso à porta serial.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://files.pythonhosted.org/packages/source/p/pyserial/pyserial-3.5.tar.gz
Soma de verificação MD5 da transferência: 1cf25a76da59b530dbfc2cf99392dc83
Tamanho da transferência: 156 KB
Espaço em disco estimado exigido: 2,1 MB (adicionar 0,2 MB para os testes)
Tempo de construção estimado: menos que 0,1 UPC
Construa o módulo:
pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD
Agora, como o(a) usuário(a) "root
":
pip3 install --no-index --find-links dist --no-user pyserial
Para testar a instalação, emita pytest.
-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".
A estrutura "Pytest" facilita escrever testes pequenos e legíveis e pode escalar para suportar testagem complexa funcional para aplicativos e bibliotecas.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://files.pythonhosted.org/packages/source/p/pytest/pytest-8.3.4.tar.gz
Soma de verificação MD5 da transferência: 542c4e802eeac1d196482e90a36533ed
Tamanho da transferência: 1,4 MB
Espaço em disco estimado exigido: 41 MB (com testes)
Tempo de construção estimado: 1 UPC (com testes)
iniconfig-2.0.0, packaging-24.2 e pluggy-1.5.0
attrs-25.1.0, Pygments-2.19.1, requests-2.32.3, argcomplete, hypothesis, mock e xmlschema
Construa o módulo:
pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD
Agora, como o(a) usuário(a) "root
":
pip3 install --no-index --find-links dist --no-user pytest
A instalação pode ser testada com os seguintes comandos:
python3 -m venv --system-site-packages testenv && source testenv/bin/activate && pip3 install pytest[dev] xmlschema hypothesis && python3 /usr/bin/pytest deactivate
-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".
"PyXDG" é uma biblioteca "Python" para acessar os padrões do "freedesktop.org".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://files.pythonhosted.org/packages/b0/25/7998cd2dec731acbd438fbf91bc619603fc5188de0a9a17699a781840452/pyxdg-0.28.tar.gz
Soma de verificação MD5 da transferência: d9a1d04fe60c956f5e3b9de3b4ef4722
Tamanho da transferência: 76 KB
Espaço em disco estimado exigido: 808 KB
Tempo de construção estimado: menos que 0,1 UPC
Construa o módulo:
pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD
Instale o módulo como o(a) usuário(a) "root
":
pip3 install --no-index --find-links dist --no-user pyxdg
-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".
"PyYAML" é um módulo "Python" que implementa o analisador e emissor "YAML" de próxima geração.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://files.pythonhosted.org/packages/source/P/PyYAML/pyyaml-6.0.2.tar.gz
Soma de verificação MD5 da transferência: 9600ee49b2b4e1a0237cf4173b6dc594
Tamanho da transferência: 128 KB
Espaço em disco estimado exigido: 8,5 MB
Tempo de construção estimado: 0,1 UPC
pytest-8.3.4 (para testagem)
Construa PyYAML com o seguinte comando:
pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD
Agora, instale o módulo como o usuário "root
":
pip3 install --no-index --find-links dist --no-user PyYAML
Para testar os resultados, emita: pytest.
-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".
Recommonmark é uma ponte de compatibilidade do Docutils para o CommonMark. Ele permite escrever CommonMark dentro de projetos Docutils e Sphinx. Recommonmark agora está obsoleto em favor do MyST-Parser. Infelizmente, libinput-1.27.1 depende desse módulo.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://files.pythonhosted.org/packages/source/r/recommonmark/recommonmark-0.7.1.tar.gz
Soma de verificação MD5 da transferência: 3c550a76eb62006bf007843a9f1805bb
Tamanho da transferência: 34 KB
Espaço em disco estimado exigido: 680 KB (com testes)
Tempo de construção estimado: menos que 0,1 UPC (com testes)
commonmark-0.9.1 e sphinx-8.2.1
Construa o módulo:
pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD
Agora, como o(a) usuário(a) root
:
pip3 install --no-index --find-links dist --no-user recommonmark
"Recommonmark" agora está obsoleto em favor de MyST-Parser. Por essa razão, muitos testes tem que ser desabilitados porque eles não passam com versões recentes do "Sphinx". A instalação pode ser parcialmente testada com o seguinte comando:
pytest -k 'not (test_integration or test_code or test_headings or test_image or test_links or test_lists)'
-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".
gera um documento "HTML" a partir de fontes "markdown" |
|
gera um documento "LaTeX" a partir de fontes "markdown" |
|
gera uma página de manual a partir de fontes "markdown" |
|
gera um documento pseudo "XML" a partir de fontes "markdown" |
|
gera um documento "XeTeX" a partir de fontes "markdown" |
|
gera um documento "XML" a partir de fontes "markdown" |
O pacote "Requests" é uma biblioteca "HTTP" elegante e simples para "Python", construída para seres humanos. Permite enviar solicitações "HTTP/1.1" extremamente facilmente.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://files.pythonhosted.org/packages/source/r/requests/requests-2.32.3.tar.gz
Soma de verificação MD5 da transferência: fa3ee5ac3f1b3f4368bd74ab530d3f0f
Tamanho da transferência: 132 KB
Espaço em disco estimado exigido: 1,1 MB (adicionar 139 MB para os testes)
Tempo de construção estimado: menos que 0,1 UPC (0,9 UPC para testes)
charset-normalizer-3.4.1, idna-3.10 e urllib3-2.3.0
make-ca-1.15, com p11-kit-0.25.5 (ambos necessários para usar os certificados "https:" do sistema, removendo uma dependência desnecessária relativa ao módulo "Certifi").
PySocks (também necessário para testagem)
pytest-8.3.4, Flask<2, httpbin, MarkupSafe<2.1, pytest-mock, pytest-httpbin, sphinx<5, trustme e Werkzeug<2
Primeiro aplique um remendo, de forma que a mesma variável de ambiente já usada para apontar para certificados de sistema em "Python3", seguindo a instalação de "make-ca", também possa ser usada por esse módulo:
patch -Np1 -i ../requests-2.32.3-use_system_certs-1.patch
Construa o módulo:
pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD
Agora, como o(a) usuário(a) "root
":
pip3 install --no-index --find-links dist --no-user requests
Supondo que "pytest-8.3.4" esteja instalado, mas as outras dependências opcionais não estejam, a instalação pode ser testada com os seguintes comandos:
python3 -m venv --system-site-packages testenv && source testenv/bin/activate && pip3 install --force-reinstall sphinx\<5 && pip3 install pytest-mock \ werkzeug\<2 \ flask\<2 \ pytest-httpbin \ pysocks \ trustme && pip3 install --force-reinstall Markupsafe\<2.1 && python3 /usr/bin/pytest tests deactivate
Veja-se "make-ca-1.15" para saber como configurar a variável de ambiente e como as cópias locais dos módulos "Certifi" e "Requests" instaladas em um ambiente virtual substituirão os certificados do sistema.
-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".
"Scour" é um otimizador/limpador "Scalable Vector Graphics" ("SVG") que reduz o tamanho deles otimizando a estrutura e removendo dados desnecessários.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/scour-project/scour/archive/v0.38.2/scour-0.38.2.tar.gz
Soma de verificação MD5 da transferência: ae30f52602802f8c7df3a32e1f72b325
Tamanho da transferência: 100 KB
Espaço em disco estimado exigido: 1,3 MB
Tempo de construção estimado: menos que 0,1 UPC
Construa o módulo:
pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD
Para instalar o módulo, execute o seguinte comando como
o(a) usuário(a) "root
":
pip3 install --no-index --find-links dist --no-user scour
-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".
O módulo sentry-sdk é o SDK oficial do Python para Sentry.io.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/getsentry/sentry-python/releases/download/2.22.0/sentry_sdk-2.22.0.tar.gz
Soma de verificação MD5 da transferência: 6ecdbf8b6cddf5c083ebbf1a01aed3c8
Tamanho da transferência: 300 KB
Espaço em disco estimado exigido: 3,6 MB
Tempo de construção estimado: menos que 0,1 UPC
Construa o módulo:
pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD
Agora, como o(a) usuário(a) root
:
pip3 install --no-index --find-links dist --no-user sentry-sdk
-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".
"Six" é uma biblioteca de compatibilidade "Python" 2 a 3.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://files.pythonhosted.org/packages/source/s/six/six-1.17.0.tar.gz
Soma de verificação MD5 da transferência: a0387fe15662c71057b4fb2b7aa9056a
Tamanho da transferência: 36 KB
Espaço em disco estimado exigido: 300 KB
Tempo de construção estimado: menos que 0,1 UPC
Construa o módulo:
pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) "root
":
pip3 install --no-index --find-links dist --no-user six
-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".
O pacote "Sphinx" é um conjunto de ferramentas para traduzir alguns formatos de texto estruturado em documentação bonita em vários formatos.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://files.pythonhosted.org/packages/source/s/sphinx/sphinx-8.2.1.tar.gz
Soma de verificação MD5 da transferência: c4e340fa7b1c85898dcb72b5ea8bb8f7
Tamanho da transferência: 7,9 MB
Espaço em disco estimado exigido: 32 MB (adicionar 22 MB para os testes)
Tempo de construção estimado: menos que 0,1 UPC (adicionar 0,7 UPC para testes)
alabaster-1.0.0, babel-2.17.0, docutils-0.21.2, imagesize-1.4.1, packaging-24.2, Pygments-2.19.1, requests-2.32.3, snowballstemmer-2.2.0, sphinxcontrib-applehelp-2.0.0, sphinxcontrib-devhelp-2.0.0, sphinxcontrib-htmlhelp-2.1.0, sphinxcontrib-jsmath-1.0.1, sphinxcontrib-qthelp-2.0.0 e sphinxcontrib-serializinghtml-2.0.0
cython-3.0.12, html5lib-1.1, pytest-8.3.4, texlive-20240312, defusedxml e typing_extensions
Primeiro instale uma nova dependência como o(a) usuário(a)
root
:
pip3 install roman-numerals-py
Construa o módulo:
pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD
Agora, como o(a) usuário(a) "root
":
pip3 install --no-index --find-links dist --no-user sphinx
Supondo que cython-3.0.12 e pytest-8.3.4 estejam instalados, mas as outras dependências opcionais não estejam, a instalação pode ser testada com os seguintes comandos:
python3 -m venv --system-site-packages testenv && source testenv/bin/activate && pip3 install sphinx[test] && python3 -m pytest deactivate
Um teste, test_ext_math.py::test_imgmath_numfig_html, é conhecido por falhar.
-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".
cria um arquivo "reST" a partir de módulos e pacotes "Python" |
|
gera "ReStructuredText" a partir de diretivas especiais contidas em determinados arquivos de entrada |
|
gera documentação em vários formatos a partir de arquivos fonte "ReStructuredText" |
|
gera os arquivos exigidos para um projeto "Sphinx" |
O módulo "sphinx_rtd_theme" é um tema "Sphinx" projetado para fornecer uma ótima experiência de leitura para usuários(as) de documentação em áreas de trabalho e dispositivos móveis. Esse tema é usado principalmente no "Read the Docs", mas pode funcionar com qualquer projeto "Sphinx".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://files.pythonhosted.org/packages/source/s/sphinx_rtd_theme/sphinx_rtd_theme-3.0.2.tar.gz
Soma de verificação MD5 da transferência: b26e7ff8c3a90817bbc20fb76c530e00
Tamanho da transferência: 7,3 MB
Espaço em disco estimado exigido: 40 MB (com testes)
Tempo de construção estimado: menos que 0,1 UPC (com testes)
sphinx-8.2.1 e sphinxcontrib-jquery-4.1
Construa o módulo:
pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD
Agora, como o(a) usuário(a) "root
":
pip3 install --no-index --find-links dist --no-user sphinx_rtd_theme
Supondo que "pytest-8.3.4" esteja instalado, mas a outra dependência opcional não esteja, a instalação pode ser testada com os seguintes comandos:
python3 -m venv --system-site-packages testenv && source testenv/bin/activate && pip3 install readthedocs-sphinx-ext && python3 /usr/bin/pytest deactivate
Vários testes retornam avisos porque usam uma API obsoleta do Sphinx.
-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".
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.
No BLFS, normalmente construímos e instalamos módulos
"Python" 3 com pip3. Por favor tome
cuidado para que os comandos "pip3 install" no livro
sejam executados como "root
", a menos que seja para um
ambiente virtual "Python". Executar o "pip3 install" como um(a)
usuário(a) não "root
" pode
parecer funcionar bem, mas fará com que o módulo instalado
fique inacessível para outros(as) usuários(as).
pip3 install
não reinstalará um módulo já instalado por padrão. Para
usar o comando pip3
install para atualizar um módulo (por
exemplo, de meson-0.61.3 para meson-0.62.0), insira
--upgrade
na linha
de comando. Se for realmente necessário desatualizar um
módulo ou reinstalar a mesma versão por algum motivo,
insira --force-reinstall
na linha de
comando.
O pacote "Alabaster" é um tema para o sistema de documentação "sphinx". Embora desenvolvido separadamente, é o tema padrão para "Sphinx".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://files.pythonhosted.org/packages/source/a/alabaster/alabaster-1.0.0.tar.gz
Soma de verificação MD5 da transferência: c6c2173e5565fb12f08bef410ea50f72
Tamanho da transferência: 24 KB
Espaço em disco estimado exigido: 160 KB
Tempo de construção estimado: menos que 0,1 UPC
Construa o módulo:
pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) "root
":
pip3 install --no-index --find-links dist --no-user alabaster
-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".
O pacote Attrs é um módulo python que permite escrever atributos sem clichês extras.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://files.pythonhosted.org/packages/source/a/attrs/attrs-25.1.0.tar.gz
Soma de verificação MD5 da transferência: 338069d6f69126086d589b2cb44f4c73
Tamanho da transferência: 776 KB
Espaço em disco estimado exigido: 7 MB (adicionar 78 MB para os testes)
Tempo de construção estimado: menos que 0,1 UPC (0,2 UPC para os testes)
hatch-fancy-pypi-readme-24.1.0 e hatch_vcs-0.4.0
pytest-8.3.4, cloudpickle, hypothesis, Pympler, mypy, pytest-mypy-plugins, pytest-xdist[psutil] e zope.interface
Construa o módulo:
pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD
Agora, como o(a) usuário(a) "root
":
pip3 install --no-index --find-links dist --no-user attrs
Para testar a instalação, execute:
python3 -m venv --system-site-packages testenv && testenv/bin/pip3 install 'attrs[tests]' && PATH=$PWD/testenv/bin:$PATH testenv/bin/python -m pytest
-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".
O pacote "Babel" é uma coleção integrada de utilitários que auxiliam na internacionalização e localização de aplicações "Python", com ênfase em aplicações baseadas na web.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://files.pythonhosted.org/packages/source/B/Babel/babel-2.17.0.tar.gz
Soma de verificação MD5 da transferência: 726d2ed119255a011d248ac0c9caa24a
Tamanho da transferência: 9,5 MB
Espaço em disco estimado exigido: 94 MB (com testes)
Tempo de construção estimado: 0,1 UPC (com testes)
pytest-8.3.4, Python-3.13.2 (com o módulo sqlite), freezegun e pytest-cov
Construa o módulo:
pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD
Agora, como o(a) usuário(a) "root
":
pip3 install --no-index --find-links dist --no-user Babel
Supondo que "pytest-8.3.4" esteja instalado, mas as outras dependências opcionais não estejam, a instalação pode ser testada com os seguintes comandos:
python3 -m venv --system-site-packages testenv && source testenv/bin/activate && pip3 install pytest-cov freezegun && python3 /usr/bin/pytest deactivate
-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".
O módulo certifi fornece uma coleção cuidadosamente selecionada de Certificados Raiz da Mozilla para validar a confiabilidade dos certificados SSL enquanto verifica a identidade dos dispositivos TLS.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://files.pythonhosted.org/packages/source/c/certifi/certifi-2025.1.31.tar.gz
Soma de verificação MD5 da transferência: 6d326c5b0649c4dee817837c192f3824
Tamanho da transferência: 164 KB
Espaço em disco estimado exigido: 856 KB
Tempo de construção estimado: menos que 0,1 UPC
Construa o módulo:
pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD
Agora, como o(a) usuário(a) root
:
pip3 install --no-index --find-links dist --no-user certifi
-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".
"Chardet" é um detector universal de codificação de caracteres.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://files.pythonhosted.org/packages/source/c/chardet/chardet-5.2.0.tar.gz
Soma de verificação MD5 da transferência: cc2d8cc9a751641463b4f7cfecad2ffa
Tamanho da transferência: 2 MB
Espaço em disco estimado exigido: 12 MB (adicionar 1,1 MB para os testes)
Tempo de construção estimado: menos que 0,1 UPC (0,3 UPC para os testes)
Construa o módulo:
pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD
Agora, como o(a) usuário(a) "root
":
pip3 install --no-index --find-links dist --no-user chardet
Para testar a instalação, emita pytest.
-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".
A biblioteca charset-normalizer ajuda com leitura de texto originário de uma codificação de caracteres desconhecida.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://files.pythonhosted.org/packages/source/c/charset-normalizer/charset_normalizer-3.4.1.tar.gz
Soma de verificação MD5 da transferência: 1d808eb9efaf70bf0ec3b800f3c7dca8
Tamanho da transferência: 124 KB
Espaço em disco estimado exigido: 1,1 MB (adicionar 15 MB para os testes)
Tempo de construção estimado: menos que 0,1 UPC (com testes)
pytest-8.3.4, Python-3.13.2 (reconstruído depois de instalar SQLite-3.49.1) e pytest-cov
Construa o módulo:
pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD
Agora, como o(a) usuário(a) "root
":
pip3 install --no-index --find-links dist --no-user charset-normalizer
Supondo que "pytest-8.3.4" esteja instalado, mas as outras dependências opcionais não estejam, a instalação pode ser testada com os seguintes comandos:
python3 -m venv --system-site-packages testenv && source testenv/bin/activate && pip3 install pytest-cov && python3 /usr/bin/pytest deactivate
-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".
"Commonmark" analisador "Python" para a especificação "CommonMark Markdown".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://files.pythonhosted.org/packages/source/c/commonmark/commonmark-0.9.1.tar.gz
Soma de verificação MD5 da transferência: cd1dc70c4714d9ed4117a40490c25e00
Tamanho da transferência: 94 KB
Espaço em disco estimado exigido: 1,3 MB (adicionar 30 MB para os testes)
Tempo de construção estimado: menos que 0,1 UPC (0,1 UPC para testes)
Construa o módulo:
pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD
Agora, como o(a) usuário(a) "root
":
pip3 install --no-index --find-links dist --no-user commonmark
Supondo que "pytest-8.3.4" esteja instalado e a outra dependência opcional não esteja, a instalação pode ser testada com:
python3 -m venv --system-site-packages testenv && source testenv/bin/activate && pip3 install hypothesis && python3 /usr/bin/pytest commonmark/tests/unit_tests.py python3 commonmark/tests/run_spec_tests.py deactivate
-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".
Editables é uma biblioteca Python para criar “rodas editáveis”.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://files.pythonhosted.org/packages/source/e/editables/editables-0.5.tar.gz
Soma de verificação MD5 da transferência: 520de8c3a9dc5dfb2b365d104541c9de
Tamanho da transferência: 4,6 KB
Espaço em disco estimado exigido: 180 KB
Tempo de construção estimado: menos que 0,1 UPC
Construa o módulo:
pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD
Agora, como o(a) usuário(a) "root
":
pip3 install --no-index --find-links dist --no-user editables
Para testar a instalação, emita: pytest.
-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".
"Hatchling" é uma estrutura de retaguarda de construção extensível e compatível com padrões para módulos "Python".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://files.pythonhosted.org/packages/source/h/hatchling/hatchling-1.27.0.tar.gz
Soma de verificação MD5 da transferência: 6ffb3087c9b6a9ffbfc1bb394f7ed1a8
Tamanho da transferência: 60 KB
Espaço em disco estimado exigido: 2,3 MB
Tempo de construção estimado: menos que 0,1 UPC
editables-0.5, packaging-24.2, pathspec-0.12.1, pluggy-1.5.0 e trove-classifiers-2025.1.15.22
Construa o módulo:
pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD
Esse pacote não vem com uma suíte de teste funcional.
Agora, como o(a) usuário(a) "root
":
pip3 install --no-index --find-links dist --no-user hatchling
-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".
Hatch-Fancy-Pypi-Readme é um plugin de hachura que preenche o campo leia-me nos metadados de um módulo Python a partir dos arquivos de documentação da linguagem de marcação do módulo.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://files.pythonhosted.org/packages/source/h/hatch-fancy-pypi-readme/hatch_fancy_pypi_readme-24.1.0.tar.gz
Soma de verificação MD5 da transferência: f5f9e639f066c91f8e623ec6231beae9
Tamanho da transferência: 32 KB
Espaço em disco estimado exigido: 388 KB
Tempo de construção estimado: menos que 0,1 UPC
Construa o módulo:
pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD
Agora, como o(a) usuário(a) root
:
pip3 install --no-index --find-links dist --no-user hatch-fancy-pypi-readme
Para testar a instalação, certifique-se de que pytest-8.3.4 esteja instalado e execute:
python3 -m venv --system-site-packages testenv && testenv/bin/pip3 install 'hatch-fancy-pypi-readme[tests]' && testenv/bin/python -m pytest
-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".
Hatch_vcs é um plugin Hatch para versionamento com vários Sistemas de Controle de Versão ( VCS ).
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://files.pythonhosted.org/packages/source/h/hatch-vcs/hatch_vcs-0.4.0.tar.gz
Soma de verificação MD5 da transferência: d801fe7c3e5955307748f2790bbb3488
Tamanho da transferência: 9,9 KB
Espaço em disco estimado exigido: 436 KB (com testes)
Tempo de construção estimado: menos que 0,1 UPC (com testes)
hatchling-1.27.0 e setuptools_scm-8.1.0
Construa o módulo:
pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD
Agora, como o(a) usuário(a) "root
":
pip3 install --no-index --find-links dist --no-user hatch_vcs
Para testar a instalação, emita (HOME=
impede o arquivo .gitconfig
no diretório inicial de
interferir nos testes): HOME=
pytest.
-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".
O módulo "Idna" fornece suporte para o protocolo "Internationalized Domain Names in Applications" ("IDNA"), conforme especificado na "RFC" 5891.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://files.pythonhosted.org/packages/source/i/idna/idna-3.10.tar.gz
Soma de verificação MD5 da transferência: 28448b00665099117b6daa9887812cc4
Tamanho da transferência: 188 KB
Espaço em disco estimado exigido: 1,7 MB (com testes)
Tempo de construção estimado: menos que 0,1 UPC (com testes)
Construa o módulo:
pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD
Agora, como o(a) usuário(a) "root
":
pip3 install --no-index --find-links dist --no-user idna
Para testar a instalação, execute "pytest".
-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".
O pacote "imagesize" analisa os cabeçalhos dos arquivos de imagem e retorna o tamanho e o "DPI" da imagem. Funciona com formatos "JPEG"/"JPEG 2000"/"PNG"/"GIF"/"TIFF"/"SVG"/"Netpbm"/"WebP".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://files.pythonhosted.org/packages/source/i/imagesize/imagesize-1.4.1.tar.gz
Soma de verificação MD5 da transferência: 5a40586a25c07e1a8f16f6267252c321
Tamanho da transferência: 1,2 MB
Espaço em disco estimado exigido: 1,8 MB (com testes)
Tempo de construção estimado: menos que 0,1 UPC (com testes)
Construa o módulo:
pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD
Agora, como o(a) usuário(a) "root
":
pip3 install --no-index --find-links dist --no-user imagesize
Os testes para esse pacote são conhecidos por estarem quebrados. Para testar a instalação de qualquer maneira, execute pytest.
-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".
Iniconfig é um módulo analisador de arquivo "INI" pequeno e simples.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://files.pythonhosted.org/packages/source/i/iniconfig/iniconfig-2.0.0.tar.gz
Soma de verificação MD5 da transferência: 3c030b3f51dcc3aca585de05635600e4
Tamanho da transferência: 4,5 KB
Espaço em disco estimado exigido: 168 KB
Tempo de construção estimado: menos que 0,1 UPC
Construa o módulo:
pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) "root
":
pip3 install --no-index --find-links dist --no-user iniconfig
-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".
"Markdown" é um analisador "Python" para a especificação "Markdown" de John Gruber.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://files.pythonhosted.org/packages/source/M/Markdown/markdown-3.7.tar.gz
Soma de verificação MD5 da transferência: de4cdc6db368c7386f733d6dd8c858b1
Tamanho da transferência: 348 KB
Espaço em disco estimado exigido: 4,1 MB (adicionar 27 MB para os testes)
Tempo de construção estimado: menos que 0,1 UPC (com testes)
Construa o módulo:
pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD
Agora, como o(a) usuário(a) "root
":
pip3 install --no-index --find-links dist --no-user Markdown
Supondo que pytest-8.3.4 e PyYAML-6.0.2 estejam instalados e a outra dependência opcional não esteja, a instalação pode ser testada com:
python3 -m venv --system-site-packages testenv && source testenv/bin/activate && pip3 install coverage && python3 /usr/bin/pytest --ignore=tests/test_syntax/extensions/test_md_in_html.py deactivate
-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".
O módulo "Meson_python" contém uma estrutura de retaguarda de construção "Python" ("PEP" 517) para projetos "Meson".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://files.pythonhosted.org/packages/source/m/meson_python/meson_python-0.17.1.tar.gz
Soma de verificação MD5 da transferência: bf1299782f02e4bb590a437bd140fd12
Tamanho da transferência: 80 KB
Espaço em disco estimado exigido: 1,3 MB
Tempo de construção estimado: menos que 0,1 UPC
cython-3.0.12, git-2.48.1, pytest-8.3.4, Python-3.13.2 (reconstruído depois de instalar SQLite-3.49.1), build e pytest-mock
Construa o módulo:
pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) "root
":
pip3 install --no-index --find-links dist --no-user meson_python
Para testar a instalação, certifique-se de que git-2.48.1,
patchelf-0.18.0 e pytest-8.3.4
estejam instalados e Python-3.13.2 foi reconstruído depois
de instalar SQLite-3.49.1, então emita
(HOME=
evita que o arquivo
.gitconfig
no diretório
inicial interfira nos testes):
python3 -m venv --system-site-packages testenv && testenv/bin/pip3 install 'meson_python[test]' && HOME= testenv/bin/python -m pytest
Dois testes chamados test_missing_version
e test_pep621
são conhecidos por falharem
com pyproject-metadata-0.8.0 ou posterior.
-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".
Msgpack é um formato de serialização binária eficiente. Ele te permite trocar dados entre várias linguagens, como JSON. Mas é mais rápido e menor. Esse pacote fornece ligações CPython para leitura e escrita de dados do Msgpack.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://files.pythonhosted.org/packages/source/m/msgpack/msgpack-1.1.0.tar.gz
Soma de verificação MD5 da transferência: e5769d4ab610491ac561c84fde4cf4a7
Tamanho da transferência: 164 KB
Espaço em disco estimado exigido: 1,9 MB (adicionar 0,3 MB para testes)
Tempo de construção estimado: menos que 0,1 UPC
Construa o módulo:
pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD
Agora, como o(a) usuário(a) "root
":
pip3 install --no-index --find-links dist --no-user msgpack
Para testar a instalação, emita pytest.
-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".
"Pathspec" é uma biblioteca de utilitários para correspondência de padrões de caminhos de arquivos.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://files.pythonhosted.org/packages/source/p/pathspec/pathspec-0.12.1.tar.gz
Soma de verificação MD5 da transferência: 2b26ad1981bfa23748e115f00085624c
Tamanho da transferência: 45 KB
Espaço em disco estimado exigido: 912 KB (com testes)
Tempo de construção estimado: menos que 0,1 UPC (com testes)
Construa o módulo:
pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD
Agora, como o(a) usuário(a) "root
":
pip3 install --no-index --find-links dist --no-user pathspec
Para testar a instalação, emita "pytest".
-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".
O pacote "Pluggy" oferece a usuários(as) a capacidade de estender ou modificar o comportamento de um aplicativo anfitrião instalando um "plugin" para esse aplicativo. O código do "plugin" será executado como parte da execução normal do aplicativo, mudando ou aprimorando certos aspectos dele. Em essência, "pluggy" habilita a ligação de funções, de modo que um(a) usuário(a) consiga construir sistemas “plugáveis”.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://files.pythonhosted.org/packages/source/p/pluggy/pluggy-1.5.0.tar.gz
Soma de verificação MD5 da transferência: ac0870be78ba0ee227a5c3955efeba59
Tamanho da transferência: 68 KB
Espaço em disco estimado exigido: 588 KB (adicionar 18 MB para testes)
Tempo de construção estimado: menos que 0,1 UPC (com testes)
Construa o módulo:
pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD
Agora, como o(a) usuário(a) "root
":
pip3 install --no-index --find-links dist --no-user pluggy
Para testar a instalação, emita: pytest.
-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".
O módulo "Pyproject-Metadata" contém uma classe de dados para metadados "PEP" 621 com suporte para geração de “metadados centrais” ("PEP" 643).
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://files.pythonhosted.org/packages/source/p/pyproject-metadata/pyproject_metadata-0.9.0.tar.gz
Soma de verificação MD5 da transferência: d947b3c632f4aee9cf23bb5950ac02f9
Tamanho da transferência: 8 KB
Espaço em disco estimado exigido: 124 KB
Tempo de construção estimado: menos que 0,1 UPC
Construa o módulo:
pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD
Agora, como o(a) usuário(a) "root
":
pip3 install --no-index --find-links dist --no-user pyproject-metadata
Para testar a instalação, emita: pytest.
-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".
A biblioteca "Pytz" traz a base de dados "tz" da "IANA" para o "Python". Ela permite cálculos de fuso horário precisos e entre plataformas.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://files.pythonhosted.org/packages/source/p/pytz/pytz-2025.1.tar.gz
Soma de verificação MD5 da transferência: b51879337eb45a56947f91e82ec83ef1
Tamanho da transferência: 316 KB
Espaço em disco estimado exigido: 6,2 MB (com testes)
Tempo de construção estimado: menos que 0,1 UPC (com testes)
Construa o módulo:
pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD
Agora, como o(a) usuário(a) "root
":
pip3 install --no-index --find-links dist --no-user pytz
Para testar a instalação, execute "pytest". Uns poucos avisos são emitidos.
-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".
O pacote "Setuptools_scm" é usado para extrair versões de pacotes "Python" a partir dos metadados "git" ou "hg" em vez de declará-los.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://files.pythonhosted.org/packages/source/s/setuptools_scm/setuptools_scm-8.1.0.tar.gz
Soma de verificação MD5 da transferência: d8046dce093a94dc382b68b45f6a6257
Tamanho da transferência: 70 KB
Espaço em disco estimado exigido: 1,6 MB (com testes)
Tempo de construção estimado: menos que 0,1 UPC (adicionar 0,4 UPC para testes)
git-2.48.1, Mercurial-6.9.2, pytest-8.3.4, Sudo-1.9.16p2 e build
Construa o módulo:
pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD
Agora, como o(a) usuário(a) "root
":
pip3 install --no-index --find-links dist --no-user setuptools_scm
Para testar a instalação, certifique-se de que pytest-8.3.4
está instalado a execute (HOME=
evita que o arquivo .gitconfig
no diretório inicial de
interfira nos testes):
python3 -m venv --system-site-packages testenv && testenv/bin/pip3 install build && TZ=UTC HOME= testenv/bin/python -m pytest
Se git-2.48.1 e (ou) Mercurial-6.9.2 não estiverem instalados, os testes dependentes do(s) ausente(s) serão ignorados. Alguns testes possivelmente invoquem Sudo-1.9.16p2 e solicitem uma senha.
-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".
"Smartypants" traduz caracteres de pontuação "ASCII" simples em entidades "HTML" de pontuação tipográfica “inteligente”.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/leohemsted/smartypants.py/archive/v2.0.1/smartypants.py-2.0.1.tar.gz
Soma de verificação MD5 da transferência: 27957540f4718e892039b2ed208c78f3
Tamanho da transferência: 24 KB
Espaço em disco estimado exigido: 344 KB
Tempo de construção estimado: menos que 0,1 UPC
Construa o módulo:
pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD
Esse pacote não vem com uma suíte de teste funcional.
Agora, como o(a) usuário(a) "root
":
pip3 install --no-index --find-links dist --no-user smartypants
Para testar os resultados, emita:
sed 's/assertEquals/assertEqual/' -i tests/test_cli.py && cp /usr/bin/smartypants . && pytest
-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".
O pacote Snowballstemmer é uma pequena linguagem de processamento de sequências de caracteres para criar algoritmos de remoção de radical [de palavras] para uso em Recuperação de Informação, mais uma coleção de algoritmos de remoção de radical [de palavras] implementados usando-a. O removedor de radical [de palavras] mapeia diferentes formas da mesma palavra para um “radical” comum — por exemplo, o removedor inglês de radical [de palavras] mapeia connection, connections, connective, connected e connecting para connect. Executar-se uma busca por connected também encontraria documentos que tenham somente as outras formas.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://files.pythonhosted.org/packages/source/s/snowballstemmer/snowballstemmer-2.2.0.tar.gz
Soma de verificação MD5 da transferência: 4332ddc7bbee0f344a03915b2ad59a54
Tamanho da transferência: 85 KB
Espaço em disco estimado exigido: 3,8 MB
Tempo de construção estimado: menos que 0,1 UPC
Construa o módulo:
pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) "root
":
pip3 install --no-index --find-links dist --no-user snowballstemmer
-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".
O pacote "Sphinxcontrib-applehelp" é uma extensão "Sphinx" que produz livros de ajuda da "Apple".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://files.pythonhosted.org/packages/source/s/sphinxcontrib-applehelp/sphinxcontrib_applehelp-2.0.0.tar.gz
Soma de verificação MD5 da transferência: e16bb1d6199f686d411c180e64a8e831
Tamanho da transferência: 20 KB
Espaço em disco estimado exigido: 1,0 MB (com testes)
Tempo de construção estimado: menos que 0,1 UPC
pytest-8.3.4 e sphinx-8.2.1 (dependência circular)
Construa o módulo:
pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD
Agora, como o(a) usuário(a) "root
":
pip3 install --no-index --find-links dist --no-user sphinxcontrib-applehelp
Para testar a instalação, execute "pytest". Vários avisos possivelmente sejam emitidos devido ao uso de funções obsoletas.
-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".
O pacote "Sphinxcontrib-devhelp" é uma extensão "Sphinx" que produz documentos Devhelp.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://files.pythonhosted.org/packages/source/s/sphinxcontrib-devhelp/sphinxcontrib_devhelp-2.0.0.tar.gz
Soma de verificação MD5 da transferência: 79ef5937b8397f724f4fb065073cd24c
Tamanho da transferência: 16 KB
Espaço em disco estimado exigido: 984 MB (com testes)
Tempo de construção estimado: menos que 0,1 UPC (com testes)
pytest-8.3.4 e sphinx-8.2.1 (dependência circular)
Construa o módulo:
pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD
Agora, como o(a) usuário(a) "root
":
pip3 install --no-index --find-links dist --no-user sphinxcontrib-devhelp
Para testar a instalação, execute "pytest".
-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".
O pacote "Sphinxcontrib-htmlhelp" é uma extensão "Sphinx" que renderiza arquivos de ajuda "HTML".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://files.pythonhosted.org/packages/source/s/sphinxcontrib-htmlhelp/sphinxcontrib_htmlhelp-2.1.0.tar.gz
Soma de verificação MD5 da transferência: 1326f55f6bea49ab6a846c0088bc369e
Tamanho da transferência: 24 KB
Espaço em disco estimado exigido: 1,2 MB (com testes)
Tempo de construção estimado: menos que 0,1 UPC (com testes)
pytest-8.3.4, sphinx-8.2.1 (dependência circular) e html5lib-1.1
Construa o módulo:
pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD
Agora, como o(a) usuário(a) "root
":
pip3 install --no-index --find-links dist --no-user sphinxcontrib-htmlhelp
Se as dependências opcionais estiverem instaladas, o pacote pode ser testado com:
pytest
-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".
O pacote "Sphinxcontrib-jquery" é uma extensão "Sphinx" que inclui "jQuery" nos lançamentos mais recentes do "Sphinx".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://files.pythonhosted.org/packages/source/s/sphinxcontrib-jquery/sphinxcontrib-jquery-4.1.tar.gz
Soma de verificação MD5 da transferência: 46ea52845b17343ed6c61e6963fb265d
Tamanho da transferência: 120 KB
Espaço em disco estimado exigido: 552 KB
Tempo de construção estimado: menos que 0,1 UPC
Construa o módulo:
pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) "root
":
pip3 install --no-index --find-links dist --no-user sphinxcontrib-jquery
-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".
O pacote "Sphinxcontrib-jsmath" é uma extensão "Sphinx" que renderiza matemática de exibição em "HTML" via "JavaScript".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://files.pythonhosted.org/packages/source/s/sphinxcontrib-jsmath/sphinxcontrib-jsmath-1.0.1.tar.gz
Soma de verificação MD5 da transferência: e45179f0a3608b6766862e0f34c23b62
Tamanho da transferência: 5,7 KB
Espaço em disco estimado exigido: 324 KB (com testes)
Tempo de construção estimado: menos que 0,1 UPC (com testes)
pytest-8.3.4 e sphinx-8.2.1 (dependência circular)
Construa o módulo:
pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD
Agora, como o(a) usuário(a) "root
":
pip3 install --no-index --find-links dist --no-user sphinxcontrib-jsmath
A instalação pode ser testada com os seguintes comandos:
sed -i 's/text()/read_&/' tests/test_jsmath.py && pytest
o comando "sed ..." é necessário devido a uma mudança na "API" "Sphinx" para lançamentos superiores a 5.0.
-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".
O pacote "Sphinxcontrib-qthelp" é uma extensão "Sphinx" que produz documentos "QtHelp".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://files.pythonhosted.org/packages/source/s/sphinxcontrib-qthelp/sphinxcontrib_qthelp-2.0.0.tar.gz
Soma de verificação MD5 da transferência: ed4f32003b71a54ac3d68aa651cb6573
Tamanho da transferência: 20 KB
Espaço em disco estimado exigido: 18 MB (com testes)
Tempo de construção estimado: menos que 0,1 UPC (com testes)
pytest-8.3.4, sphinx-8.2.1 (dependência circular) e defusedxml
Construa o módulo:
pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD
Agora, como o(a) usuário(a) "root
":
pip3 install --no-index --find-links dist --no-user sphinxcontrib-qthelp
A instalação pode ser testada com os seguintes comandos:
python3 -m venv --system-site-packages testenv && testenv/bin/pip3 install defusedxml && testenv/bin/python -m pytest
-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".
O pacote "Sphinxcontrib-serializinghtml" é uma extensão "Sphinx" que produz arquivos "HTML" “serializados” ("json" e "pickle").
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://files.pythonhosted.org/packages/source/s/sphinxcontrib_serializinghtml/sphinxcontrib_serializinghtml-2.0.0.tar.gz
Soma de verificação MD5 da transferência: b536ce248d5ca134a30018692a17c6ca
Tamanho da transferência: 16 KB
Espaço em disco estimado exigido: 1,1 MB (com testes)
Tempo de construção estimado: menos que 0,1 UPC (com testes)
pytest-8.3.4 e sphinx-8.2.1 (dependência circular)
Construa o módulo:
pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD
Agora, como o(a) usuário(a) "root
":
pip3 install --no-index --find-links dist --no-user sphinxcontrib-serializinghtml
Para testar a instalação, primeiro instale sphinx-8.2.1, a seguir execute pytest.
-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".
Trove-Classifiers é uma
biblioteca Python que abrange todos os classificadores PyPI
válidos usados para categorizar projetos e lançamentos de
acordo com PEP 301, por exemplo Topic
:: System :: Filesystems
e Development Status :: 6 - Mature
.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://files.pythonhosted.org/packages/source/t/trove_classifiers/trove_classifiers-2025.1.15.22.tar.gz
Soma de verificação MD5 da transferência: 3656424a10a761108fa8250033ffe3d4
Tamanho da transferência: 16 KB
Espaço em disco estimado exigido: 276 KB
Tempo de construção estimado: menos que 0,1 UPC
Primeiro, codifique rigidamente a versão do pacote em
setup.py
para contornar um
problema que faz com que a roda gerada contenha uma
sequência incorreta de caracteres de versão quando o módulo
calver não estiver
instalado:
sed -i '/calver/s/^/#/;$iversion="2025.1.15.22"' setup.py
Construa o módulo:
pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD
Agora, como o(a) usuário(a) root
:
pip3 install --no-index --find-links dist --no-user trove-classifiers
Para testar a instalação, emita: pytest.
-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".
"Typogrify" fornece filtros para aprimorar a tipografia da "web", incluindo suporte para modelos "Django" e "Jinja".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://files.pythonhosted.org/packages/source/t/typogrify/typogrify-2.1.0.tar.gz
Soma de verificação MD5 da transferência: 7cc9a0a1de988329add3982519dc7971
Tamanho da transferência: 13 KB
Espaço em disco estimado exigido: 404 KB
Tempo de construção estimado: menos que 0,1 UPC
Construa o módulo:
pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) "root
":
pip3 install --no-index --find-links dist --no-user typogrify
-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".
O módulo "Urllib3" é um cliente "HTTP", poderoso e amigável para com o(a) usuário(a), para "Python". Ele traz muitos recursos críticos que estão ausentes nas bibliotecas padrão do "Python".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://files.pythonhosted.org/packages/source/u/urllib3/urllib3-2.3.0.tar.gz
Soma de verificação MD5 da transferência: 6388afd062cf2e1ef27843738629dbc1
Tamanho da transferência: 304 KB
Espaço em disco estimado exigido: 3,2 MB (adicionar 38 MB para os testes)
Tempo de construção estimado: menos que 0,1 UPC (1,6 UPC para testes)
pytest-8.3.4, httpx, hypercorn, mock, PySocks, pytest-timeout, python-dateutil, quart, quart-trio, tornado, trio e trustme
Construa o módulo:
pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD
Agora, como o(a) usuário(a) "root
":
pip3 install --no-index --find-links dist --no-user urllib3
Supondo que "pytest-8.3.4" esteja instalado, mas as outras dependências opcionais não estejam, a instalação pode ser testada com os seguintes comandos:
python3 -m venv --system-site-packages testenv && source testenv/bin/activate && pip3 install trustme \ tornado \ python-dateutil \ mock \ pysocks \ pytest-timeout \ trio \ hypercorn \ quart \ quart_trio \ httpx && python3 /usr/bin/pytest deactivate
Cerca de 37 erros são conhecidos por ocorrerem devido a pequenas mudanças de comportamento nos módulos externos do Python acima, quando combinados com o Python 3.13.2.
-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".
O módulo webencodings é uma implementação Python do padrão de codificação WHATWG.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://files.pythonhosted.org/packages/source/w/webencodings/webencodings-0.5.1.tar.gz
Soma de verificação MD5 da transferência: 32f6e261d52e57bf7e1c4d41546d15b8
Tamanho da transferência: 12 KB
Espaço em disco estimado exigido: 164 KB
Tempo de construção estimado: menos que 0,1 UPC
Construa o módulo:
pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD
Agora, como o(a) usuário(a) root
:
pip3 install --no-index --find-links dist --no-user webencodings
-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".
Last updated on
O pacote "Ruby" contém o ambiente de desenvolvimento "Ruby". Isso é útil para "scripts" orientados a objetos.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://cache.ruby-lang.org/pub/ruby/3.4/ruby-3.4.2.tar.xz
Soma de verificação MD5 da transferência: 63a56b170246fcf0198a5eaba57dd46c
Tamanho da transferência: 16 MB
Espaço em disco estimado exigido: 697 MB (com documentos de API da C e testes)
Tempo de construção estimado: 1,0 UPC (com documentos da API da C; adicionar 0,5 UPC para testes; todos usando paralelismo=4)
Doxygen-1.13.2, Graphviz-12.2.1, rustc-1.85.0, Tk-8.6.16, Valgrind-3.24.0, Berkeley DB (obsoleto) e DTrace
Uma conexão com a Internet é necessária para alguns testes desse pacote. A loja de certificados do sistema possivelmente precise ser configurada com make-ca-1.15 antes de se testar esse pacote
Se tiver instalado um pacote que fornece uma gema de Ruby, como asciidoctor-2.0.23, você precisa reinstalar esses pacotes ao atualizar para uma nova versão secundária do Ruby.
Instale "Ruby" executando o seguinte comando:
./configure --prefix=/usr \ --disable-rpath \ --enable-shared \ --without-valgrind \ --without-baseruby \ ac_cv_func_qsort_r=no \ --docdir=/usr/share/doc/ruby-3.4.2 && make
Opcionalmente, construa os documentos da "API" "C" executando os seguintes comandos:
make capi
Para testar os resultados, emita: make -k check. Se o
ambiente tiver variáveis relacionadas às configurações de
proxy (all_proxy
, ALL_PROXY
, http_proxy
e etc.) configuradas, a suíte de
teste sairá mais cedo com mensagens como net/ftp is not found
. Certifique-se
de que você desconfigurou essas variáveis para a suíte de
teste.
Agora, como o(a) usuário(a) "root
":
make install
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.
--disable-rpath
: Essa
chave desabilita a incorporação de /usr/lib
como um caminho de pesquisa de
biblioteca no aplicativo ruby. Fazer isso não é
necessário (porque /usr/lib
é
um caminho de biblioteca do sistema) e possivelmente faça com
que a suíte de teste executar com a libruby. so
do sistema em vez da recém
construída quando o Ruby foi instalado.
--enable-shared
: Essa
chave habilita construir a biblioteca compartilhada
"libruby
".
--without-baseruby
:
Essa chave impede usar o ruby do sistema se ele já
estiver instalado. O sistema de construção usará a versão
recém-construída.
ac_cv_func_qsort_r=no
: Essa
chave impede usar a função qsort_r
proveniente da Glibc. Ruby faz
algumas otimizações agressivas assumindo alguns detalhes de
implementação do algoritmo de ordenação, mas a suposição não
é verdadeira com a implementação da Glibc. Com essa chave,
Ruby usará a própria implementação dela de ordenação.
--disable-install-doc
: Essa chave
desabilita construir e instalar índices "rdoc" e documentos
da "API" "C".
--disable-install-rdoc
: Essa
chave desabilita construir e instalar índices "rdoc".
--disable-install-capi
: Essa
chave desabilita construir e instalar documentos da "API"
"C".
cria pacotes de "Ruby Gems" |
|
gerencia as dependências de um aplicativo durante todo o ciclo de vida dele |
|
é 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" |
|
é o comando para "RubyGems", que é um sofisticado gerenciador de pacotes para "Ruby". Isso é semelhante ao comando "pip" do "Python" |
|
é a interface interativa para "Ruby" |
|
é um utilitário de construção semelhante ao "make" para "Ruby" |
|
é um depurador interativo para "Ruby" |
|
gera documentação "Ruby" |
|
exibe documentação a partir de uma base de dados relacionada a classes, módulos e métodos "Ruby" |
|
é uma linguagem de "script" interpretada para programação orientada a objetos rápida e fácil |
|
contém as funções da "API" exigidas pelo "Ruby" |
A linguagem de programação Rust foi projetada para ser uma linguagem segura, simultânea e prática.
Esse pacote é atualizado em um ciclo de lançamento de seis semanas. Por ser um pacote tão grande e lento para construir, é, no momento, exigido somente por uns poucos pacotes neste livro, e particularmente porque versões mais novas tendem a quebrar pacotes mais antigos do Mozilla, os(as) editores(as) do BLFS consideram que ele deveria ser atualizado somente quando necessário (ou para corrigir problemas ou para permitir que uma nova versão de um pacote construa).
Tal como acontece com muitas outras linguagens de programação, o "Rustc" (o compilador "Rust") precisa de um binário a partir do qual inicializar. Ele baixará um binário stage0 no início da construção, de forma que você não consegue compilá-lo sem uma conexão com a Internet.
Embora o BLFS normalmente instale em "/usr
", quando você atualizar
posteriormente para uma versão mais recente do
"rust", as bibliotecas
antigas em "/usr/lib/rustlib
"
permanecerão, com vários "hashes" nos nomes delas, mas não
serão usáveis e desperdiçarão espaço. Os(As) editores(as)
recomendam colocar os arquivos no diretório "/opt
". Em particular, se você tiver
motivos para reconstruir com uma configuração modificada
(por exemplo, usando o "LLVM" enviado após construir com
"LLVM" compartilhado, talvez para compilar caixas para
arquiteturas que a construção "LLVM" do BLFS não suporta),
[então] é possível que a instalação deixe um aplicativo
quebrado "cargo". Em tal situação,
remova a instalação existente primeiro ou use um prefixo
diferente, como "/opt/rustc-1.85.0-build2".
Se preferir, você pode, certamente, mudar o prefixo para
"/usr
".
O sistema de construção rustbuild atual usará todos os
processadores, embora não escale bem e frequentemente recorra
a usar apenas um núcleo enquanto espera que uma biblioteca
compile. No entanto, ele pode ser limitado principalmente a
um número especificado de processadores por uma combinação da
adição da chave --jobs <N>
(por exemplo, '--jobs 4' para limitar a 4 processadores) em
cada invocação de ./x.py e usando uma variável de ambiente
CARGO_BUILD_JOBS=<N>
. No
momento, isso não é eficaz quando alguns dos testes rustc são
executados.
A versão atual da caixa num_cpus do Rust agora reconhece que cgroups pode ser usado para restringir quais processadores ele está autorizado a usar. Portanto, se tua máquina carecer de DRAM (normalmente, menos de 2 GB de DRAM por núcleo), isso pode ser uma alternativa para colocar as CPUs offline. Leia-se “Use o Grupo de Controle do Linux para Limitar o Uso de Recursos” para como usar um cgroup.
No momento, "Rust" não oferece nenhuma garantia de uma "ABI" estável.
O padrão do "Rustc" é o de construir para TODAS as arquiteturas suportadas, usando uma cópia enviada do "LLVM". No BLFS a construção é somente para a arquitetura "X86". Se você pretende desenvolver caixas "Rust", [então] essa construção possivelmente não seja boa o suficiente para os teus propósitos.
Os tempos de construção dessa versão, quando repetidos na mesma máquina, costumam ser razoavelmente consistentes, mas como acontece com todas as compilações usando "rustc", pode existir alguns valores discrepantes muito lentos.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://static.rust-lang.org/dist/rustc-1.85.0-src.tar.xz
Soma de verificação MD5 da transferência: a0193e0a4925f772bd50f8d12e47860c
Tamanho da transferência: 261 MB
Espaço em disco estimado exigido: 9,4 GB (252 MB instalado); adicionar 7,4 GB se executar os testes
Tempo de construção estimado: 9,0 UPC (incluindo o tempo de transferência; adicionar 15 UPC para testes, ambos usando paralelismo=8)
Uma conexão com a Internet é necessária para construir esse pacote. A loja de certificados do sistema possivelmente precise ser configurada com make-ca-1.15 antes de se construir esse pacote
libssh2-1.11.1, LLVM-19.1.7 (construído com -D LLVM_LINK_LLVM_DYLIB=ON, de forma que Rust consiga vincular ao LLVM do sistema em vez de construir a versão fornecida dele) e SQLite-3.49.1
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.
GDB-16.2 (usado pela suíte de teste se estiver presente), git-2.48.1 (exigido pela suíte de teste), cranelift, jemalloc, libgccjit (leia-se Explicação do Comando em GCC-14.2.0) e libgit2
Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/rust
Para instalar no diretório "/opt
", remova qualquer link simbólico
"/opt/rustc
" existente e crie
um novo diretório (ou seja, com um nome diferente se tentar
uma construção modificada da mesma versão). Como o(a)
usuário(a) "root
":
mkdir -pv /opt/rustc-1.85.0 && ln -svfn rustc-1.85.0 /opt/rustc
Se múltiplas versões do "Rust" estiverem instaladas em
"/opt
", [então] a mudança
para outra versão exige somente mudar o link simbólico
"/opt/rustc
" e então executar
"ldconfig".
Crie um arquivo "config.toml
"
adequado que configurará a construção.
cat << EOF > config.toml
# see config.toml.example for more possible options
# See the 8.4 book for an old example using shipped LLVM
# e.g. if not installing clang, or using a version before 13.0
# Tell x.py the editors have reviewed the content of this file
# and updated it to follow the major changes of the building system,
# so x.py will not warn us to do such a review.
change-id = 134650
[llvm]
# When using system llvm prefer shared libraries
link-shared = true
# Do not download pre-built LLVM, instead either use the system
# LLVM or build LLVM from the shipped source.
download-ci-llvm = false
# If building the shipped LLVM source, only enable the x86 target
# instead of all the targets supported by LLVM.
targets = "X86"
[build]
# omit docs to save time and space (default is to build them)
docs = false
# install extended tools: cargo, clippy, etc
extended = true
# Do not query new versions of dependencies online.
locked-deps = true
# Specify which extended tools (those from the default install).
tools = ["cargo", "clippy", "rustdoc", "rustfmt"]
[install]
prefix = "/opt/rustc-1.85.0"
docdir = "share/doc/rustc-1.85.0"
[rust]
channel = "stable"
description = "for BLFS 12.3"
# Enable the same optimizations as the official upstream build.
lto = "thin"
codegen-units = 1
[target.x86_64-unknown-linux-gnu]
llvm-config = "/usr/bin/llvm-config"
[target.i686-unknown-linux-gnu]
llvm-config = "/usr/bin/llvm-config"
EOF
Agora remova alguns testes que deflagram uma reconstrução completa da biblioteca padrão e do compilador Rust:
sed '/MirOpt/d' -i src/bootstrap/src/core/builder/mod.rs
Compile "Rust" executando os seguintes comandos:
[ ! -e /usr/include/libssh2.h ] || export LIBSSH2_SYS_USE_PKG_CONFIG=1 [ ! -e /usr/include/sqlite3.h ] || export LIBSQLITE3_SYS_USE_PKG_CONFIG=1 ./x.py build
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:
./x.py test --verbose --no-fail-fast | tee rustc-testlog
Seis testes na suíte de teste de instruções de autoaprimoramento são conhecidos por falharem porque eles esperam executar no repositório Git da Rust.
Tal como acontece com todas as grandes suítes de teste, alguns testes podem falhar em algumas máquinas - se o número de falhas adicionais for baixo, verifique se existem 'failures:' no registro e revise as linhas acima, especialmente as linhas 'stderr:'. Qualquer menção ao SIGSEGV ou ao sinal onze (11) em um teste falho é motivo de preocupação.
Se você receber algum outro teste falho que informe um número de problema, então você deveria procurar por esse problema. Por exemplo, quando "Rustc" >= 1.41.1 era construído com uma versão do "LLVM" do sistema anterior à 10.0, o teste para o problema "69225" falhava https://github.com/rust-lang/rust/issues/69225 e isso deveria ser considerado como uma falha crítica (eles(as) lançaram 1.41.1 por causa disso). A maioria das outras falhas não será crítica.
Portanto, você deveria determinar o número de falhas. O número de testes que passaram e falharam pode ser encontrado executando-se:
grep '^test result:' rustc-testlog | awk '{sum1 += $4; sum2 += $6} END { print sum1 " passed; " sum2 " failed" }'
Os outros campos disponíveis são "$8" para aqueles que foram ignorados (ou seja, pulados), "$10" para 'medido' e "$12" para 'filtrado', mas ambos os dois últimos provavelmente sejam zero.
Agora, como o(a) usuário(a) "root
", instale o pacote:
Se sudo ou
su for
invocado para comutar para o(a) usuário(a) root
, certifique-se de que LIBSSH2_SYS_USE_PKG_CONFIG
e LIBSQLITE3_SYS_USE_PKG_CONFIG
sejam passados
corretamente ou o comando a seguir pode reconstruir
cargo com
cópias enviadas de libssh2 e sqlite. Para sudo, use a opção
--preserve-env=LIB{SSH2,SQLITE3}_SYS_USE_PKG_CONFIG
.
Para su,
não use as opções
-
ou --login
.
./x.py install rustc std && ./x.py install --stage=1 cargo clippy rustfmt
Ainda como o(a) usuário(a) root
, corrija a instalação da
documentação, linque simbolicamente um arquivo de completação
do Zsh para o local correto,
e mova um arquivo de completação do Bash para o local recomendado pelos(as)
mantenedores(as) da completação do Bash:
rm -fv /opt/rustc-1.85.0/share/doc/rustc-1.85.0/*.old && install -vm644 README.md \ /opt/rustc-1.85.0/share/doc/rustc-1.85.0 && install -vdm755 /usr/share/zsh/site-functions && ln -sfv /opt/rustc/share/zsh/site-functions/_cargo \ /usr/share/zsh/site-functions mv -v /etc/bash_completion.d/cargo /usr/share/bash-completion/completions
Finalmente, desconfigure as variáveis de ambiente exportadas:
unset LIB{SSH2,SQLITE3}_SYS_USE_PKG_CONFIG
ln -svfn rustc-1.85.0
/opt/rustc: se esse não for o primeiro uso do
link simbólico /opt/rustc
,
[então] sobrescreva-o forçando e use o sinalizador '-n' para
evitar resultados confusos oriundos, por exemplo, de
ls -l.
targets = "X86"
: isso evita
construir todos os compiladores cruzados disponíveis do Linux
(AArch64, MIPS, PowerPC, SystemZ, etc). Infelizmente, o Rust
insiste em instalar os arquivos fonte para esses abaixo de
/opt/rustc/lib/src
.
extended = true
: isso instala
várias ferramentas (especificadas pela entrada tools
) juntamente com o rustc.
tools = ["cargo", "clippy", "rustdoc",
"rustfmt"]
: construa somente as ferramentas a partir
do perfil 'padrão' no comando binário rustup que é recomendado
para a maioria dos(as) usuários(as). As outras ferramentas
são improváveis que sejam úteis, a menos que se use
analisadores (antigos) de código ou se edite a biblioteca
padrão.
channel = "stable"
: isso garante
que somente recursos estáveis possam ser usados. O padrão no
config.toml
é o de usar
recursos de desenvolvimento, o que não é apropriado para uma
versão lançada.
[target.x86_64-unknown-linux-gnu]
: a sintaxe
do config.toml
exige uma
entrada llvm-config
para cada
alvo para o qual o LLVM do sistema esteja para ser usado.
Mude o alvo para [target.i686-unknown-linux-gnu]
se você
estiver construindo em x86 de 32 bits. Essa seção inteira
pode ser omitida se você desejar construir contra o LLVM
enviado ou não tiver clang, mas a construção resultante será
maior e demorará mais.
export LIBSSH2_SYS_USE_PKG_CONFIG=1: Permite que o "cargo" se vincule à "libssh2" do sistema.
export LIBSQLITE3_SYS_USE_PKG_CONFIG=1: Permite cargo lincar ao sqlite do sistema.
--verbose
: essa chave
às vezes pode fornecer mais informações relativas a um teste
que falhe.
--no-fail-fast
: essa
chave garante que a suíte de teste não parará no primeiro
erro.
--stage=1
: essa chave
contorna um problema que faz com que alguns componentes do
Rustc sejam reconstruídos desnecessariamente ao se executar
./x.py install.
Se você instalou "rustc"
em "/opt
", [então] você
precisa atualizar os seguintes arquivos de configuração, de
forma que "rustc" seja
encontrado corretamente por outros pacotes e processos do
sistema.
Como o(a) usuário(a) "root
", crie o arquivo "/etc/profile.d/rustc.sh
":
cat > /etc/profile.d/rustc.sh << "EOF"
# Begin /etc/profile.d/rustc.sh
pathprepend /opt/rustc/bin PATH
# End /etc/profile.d/rustc.sh
EOF
Imediatamente depois da instalação, atualize o PATH atual para teu shell atual como um(a) usuário(a) normal:
source /etc/profile.d/rustc.sh
fornece verificações "lint" para um pacote "cargo" |
|
formata todos os arquivos "bin" e "lib" da caixa atual usando "Rustfmt" |
|
é o Gerenciador de Pacote para "Rust" |
|
fornece verificações "lint" para "Rust" |
|
é um "script" envólucro para "gdb", extraindo
módulos de impressão bonita do "Python" instalados
em " |
|
é 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 |
|
é um "script" envólucro para "LLDB" (o depurador "LLVM") que extrai os módulos de impressão bonita do "Python" |
|
é o compilador "rust" |
|
gera documentação a partir do código fonte "rust" |
|
formata código "rust" |
|
é a biblioteca padrão do "Rust", a fundação do logiciário portável "Rust" |
O pacote rust-bindgen contém um utilitário que gera ligações Rust a partir de cabeçalhos C/C++.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/rust-lang/rust-bindgen/archive/v0.71.1/rust-bindgen-0.71.1.tar.gz
Soma de verificação MD5 da transferência: b59ecb112ad52cbba2297e650f507764
Tamanho da transferência: 2,3 MB
Espaço em disco estimado exigido: 161 MB
Tempo de construção estimado: 0,3 UPC (com paralelismo=8)
rustc-1.85.0 e LLVM-19.1.7 (com Clang, tempo de execução)
Uma conexão com a Internet é necessária para construir esse pacote. A loja de certificados do sistema possivelmente precise ser configurada com make-ca-1.15 antes de se construir esse pacote
Instale rust-bindgen executando os seguintes comandos:
cargo build --release
Para testar os resultados, emita: cargo test --release.
Agora, como o(a) usuário(a) root
:
install -v -m755 target/release/bindgen /usr/bin
Ainda como o(a) usuário(a) root
, instale os arquivos de suporte à
completação do Bash e do Zsh:
bindgen --generate-shell-completions bash \ > /usr/share/bash-completion/completions/bindgen bindgen --generate-shell-completions zsh \ > /usr/share/zsh/site-functions/_bindgen
"SCons" é uma ferramenta para construir logiciário (e outros arquivos) implementada em "Python".
Ao expandir o tarball, o pacote expande para scons-4.8.1, não para o esperado SCons-4.8.1.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://downloads.sourceforge.net/scons/SCons-4.8.1.tar.gz
Soma de verificação MD5 da transferência: ed49dcac8dd586f1d78955bcd9878905
Tamanho da transferência: 3,1 MB
Espaço em disco estimado exigido: 50 MB
Tempo de construção estimado: menos que 0,1 UPC
Construa o pacote:
pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD
Como o(a) usuário(a) root
,
instale o pacote:
pip3 install --no-index --find-links dist --no-user SCons && install -v -m664 *.1 /usr/share/man/man1
"S-Lang" ("slang") é uma linguagem interpretada que pode ser incorporada em um aplicativo para torná-lo extensível. Ela fornece recursos exigidos por aplicativos interativos, como gerenciamento de exibição/tela, entrada de teclado e mapas de teclado.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.jedsoft.org/releases/slang/slang-2.3.3.tar.bz2
Soma de verificação MD5 da transferência: 69015c8300088373eb65ffcc6ed4db8c
Tamanho da transferência: 1,6 MB
Espaço em disco estimado exigido: 22 MB (adicionar 15 MB para os testes)
Tempo de construção estimado: 0,4 UPC (adicionar 0,5 UPC para testes)
Esse pacote não suporta construção paralela.
Instale "slang" executando os seguintes comandos:
./configure --prefix=/usr \ --sysconfdir=/etc \ --with-readline=gnu && make -j1 RPATH=
Para testar os resultados, emita: LC_ALL=C make check.
Agora, como o(a) usuário(a) "root
":
make install_doc_dir=/usr/share/doc/slang-2.3.3 \ SLSH_DOC_DIR=/usr/share/doc/slang-2.3.3/slsh \ RPATH= install
--with-readline=gnu
:
Esse parâmetro configura o "Readline" do "GNU" para ser usado pela
interface do analisador em vez da versão interna do
"slang".
RPATH=
: Essa variável
substituída do make impede codificar
rigidamente caminhos de pesquisa de biblioteca (rpath) nos
arquivos executáveis binários e nas bibliotecas
compartilhadas. Esse pacote não precisa do rpath para uma
instalação no local padrão, e o rpath às vezes pode causar
efeitos indesejados ou até mesmo problemas de segurança.
install_doc_dir=/usr/share/doc/slang-2.3.3
SLSH_DOC_DIR=/usr/share/doc/slang-2.3.3/slsh
:
Essas variáveis substituídas do make garantem instalar esse
pacote com um diretório versionado de instalação da
documentação.
"Subversion" é um sistema de controle de versão que foi projetado para ser um substituto atraente para o "CVS" na comunidade de fonte aberto. Ele amplia e aprimora o conjunto de recursos do "CVS", enquanto mantém uma interface semelhante para aqueles(as) já familiarizados(as) com o "CVS". Estas instruções instalam o logiciário cliente e servidor usado para manipular um repositório "Subversion". A criação de um repositório é abordada em Executando um Servidor "Subversion".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://archive.apache.org/dist/subversion/subversion-1.14.5.tar.bz2
Soma de verificação MD5 da transferência: af6001dc7af2f1242a4f72e8a5c565d2
Tamanho da transferência: 8,3 MB
Espaço em disco estimado exigido: 260 MB (adicionar 189 MB para ligações, 54 MB para documentos, 1,3 GB para testes)
Tempo de construção estimado: 1,5 UPC (Usando paralelismo=4; adicionar 2,0 UPC para ligações, 30 UPC para testes)
Apr-Util-1.6.3 e SQLite-3.49.1
Serf-1.3.10 (para manusear URLs http:// e https://) e SWIG-4.3.0 (para regenerar o sistema de construção)
Apache-2.4.63, Boost-1.87.0, Cyrus SASL-2.1.28, dbus-1.16.0, Doxygen-1.13.2 (para gerar documentação HTML), gnome-keyring-46.2, libsecret-0.21.6, Py3c-1.4 (para as ligações Python, e testes), Python-3.13.2 (com suporte a sqlite para os testes), Ruby-3.4.2, SWIG-4.3.0 e UTF8proc
Um de OpenJDK-23.0.2, Dante ou Jikes; JUnit 4 (para testar as ligações "Java") e apache-ant-1.10.15.
Instale Subversion executando os seguintes comandos:
./configure --prefix=/usr \ --disable-static \ --with-apache-libexecdir \ --with-utf8proc=internal && make
Se você tiver "Doxygen-1.13.2" instalado e desejar construir a documentação da "API", emita:
doxygen doc/doxygen.conf
Se você deseja construir as ligações Java, [então] passe o
parâmetro "--enable-javahl
" para
o comando "configure". Além disso, se
desejar executar a suíte de teste "Java", [então] você tem de
especificar o local do arquivo "JUnit" adicionando "--with-junit=<caminho para o jar
junit>
" (por exemplo "--with-junit=/usr/local/java/lib/junit-4.13.jar
")
para o "configure". O arquivo "jar"
do "JUnit" não mais está incluído em "apache-ant-1.10.15" e precisa ser
baixado separadamente. Para construir as ligações "Java",
emita o seguinte comando:
make -j1 javahl
Se tu desejar compilar ligações "Perl", "Python" ou "Ruby", [então] emita algum dos seguintes comandos:
make swig-pl # para Perl make swig-py \ swig_pydir=/usr/lib/python3.13/site-packages/libsvn \ swig_pydir_extra=/usr/lib/python3.13/site-packages/svn # para Python make swig-rb # para Ruby
Para testar os resultados, emita: make check.
Para testar os resultados de quaisquer das ligações "SWIG", você pode usar algum dos seguintes comandos: "make check-swig-pl", "make check-swig-py" ou "make check-swig-rb".
Agora, como o(a) usuário(a) root
:
make install && install -v -m755 -d /usr/share/doc/subversion-1.14.5 && cp -v -R doc/* /usr/share/doc/subversion-1.14.5
Se você construiu as ligações "Java", [então] emita o
seguinte comando como o(a) usuário(a) "root
" para instalá-las:
make install-javahl
Se você construiu as ligações "Perl", "Python" ou "Ruby", [então] emita algum dos seguintes
comandos como o(a) usuário(a) "root
" para instalá-las:
make install-swig-pl make install-swig-py \ swig_pydir=/usr/lib/python3.13/site-packages/libsvn \ swig_pydir_extra=/usr/lib/python3.13/site-packages/svn make install-swig-rb
As ligações "Java" precisam ser instaladas para a finalidade de que os testes executem, pois os testes tentam procurá-las em "CLASSPATH". Para testar os resultados da construção de ligações "Java", emita "LANG=C make check-javahl".
--disable-static
:
Essa chave impede a instalação das versões estáticas das
bibliotecas.
--with-apache-libexecdir
: Se o
"Apache-2.4.63" estiver instalado, [então]
os módulos compartilhados do "Apache" serão construídos. Essa chave
permite ter esses módulos instalados no diretório configurado
de módulo do "Apache" em vez
do "/usr/libexec
". Ela não tem
efeito se o "Apache" não
estiver instalado.
--with-utf8proc=internal
:
Remova essas chaves se você tiver instalado as dependências
opcionais.
--enable-javahl
: habilita a
compilação de ligações de alto nível "Java". Executar
"make javahl" é
necessário para fazer a compilação.
--with-junit=<local do arquivo "jar"
do "JUnit">
: dá o local do "jar" do "JUnit"; caso
contrário, os testes "javahl" não poderão ser executados.
--disable-gmock
: Não use a
estrutura de testes "Googlemock".
/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
".
é um aplicativo cliente de linha de comando usado para acessar repositórios do "Subversion" |
|
é uma ferramenta para criar, ajustar ou reparar um repositório "Subversion" |
|
é uma ferramenta de avaliação comparativa |
|
é um aplicativo para filtrar fluxos de formato de arquivo de despejo do repositório "Subversion" |
|
é a ferramenta de manipulação de repositório "FSFS" ("FileSystem sobre o FileSystem" - implementação do sistema de arquivos do "Subversion") |
|
é uma ferramenta para inspecionar um repositório "Subversion" |
|
é um cliente de comando de múltiplas "URLs" para o "Subversion" |
|
é uma ferramenta para despejar ou carregar um repositório remoto do "Subversion" |
|
é um aplicativo servidor independente personalizado, capaz de executar como um processo de segundo plano ou invocado por "SSH" |
|
é uma ferramenta de sincronização de repositório "Subversion" |
|
é usado para informar o número da versão e o estado de uma cópia funcional do repositório "Subversion" |
|
são as bibliotecas de suporte usadas pelos aplicativos do "Subversion" |
|
é 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 |
|
é 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 |
Esta seção descreverá como configurar, administrar e proteger 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:
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}
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.
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/
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.
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".
Para iniciar o servidor durante a inicialização, instale a
unidade "svnserve.service
" a
partir do pacote "blfs-systemd-units-20241211":
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 (Simplified Wrapper and Interface Generator) é um compilador que integra C e C++ com linguagens incluindo Perl, Python, Tcl, Ruby, PHP, Java, JavaScript, C#, D, Go, Lua, Octave, R, Racket, Scilab, Scheme e Ocaml. SWIG também consegue exportar a árvore de análise dele para s-expressions da Lisp e XML.
"SWIG" lê arquivos anotados de cabeçalho "C/C++" e cria código envólucro (código de cola) para a finalidade de tornar disponíveis as bibliotecas "C/C++" correspondentes para as linguagens listadas ou para estender aplicativos "C/C++" com uma linguagem de "script".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://downloads.sourceforge.net/swig/swig-4.3.0.tar.gz
Soma de verificação MD5 da transferência: 6a0555a2063c78447c5912136f013c43
Tamanho da transferência: 8,2 MB
Espaço em disco estimado exigido: 90 MB (2,2 GB com testes)
Tempo de construção estimado: 0,1 UPC (adicionar 8,4 UPC para testes; ambos usando paralelismo=4)
"Boost-1.87.0" para testes e quaisquer das linguagens mencionadas na introdução, como dependências de tempo de execução
Instale "SWIG" executando os seguintes comandos:
./configure --prefix=/usr \ --without-javascript \ --without-maximum-compile-warnings && make
Para testar os resultados, emita: make TCL_INCLUDE=-k check.
A desconfiguração da variável TCL_INCLUDE
é necessária pois ela não é
configurada corretamente pelo configure. Os testes são
executados somente para as linguagens instaladas em tua
máquina, de forma que o espaço em disco e os valores de UPC
fornecidos para os testes possivelmente variem e deveriam ser
considerados como meras ordens de grandeza. De acordo com a
documentação do SWIG, a
falha em alguns testes não deveria ser considerada
prejudicial. Os testes go são defeituosos e possivelmente
gerem um monte de saída sem significado.
Agora, como o(a) usuário(a) "root
":
make install && cp -v -R Doc -T /usr/share/doc/swig-4.3.0
--without-maximum-compile-warnings
:
desabilita o compelimento de conformidade "ANSI" do
compilador, o que deflagra erros nos cabeçalhos "Lua" (começando com "Lua" 5.3).
--without-<linguagem>
:
permite desabilitar a construção de testes e exemplos para
<linguagem>, mas todas as capacidades de linguagens do
SWIG são sempre construídas.
Essa chave é usada para JavaScript porque a implementação SWIG
está incompleta e muitos testes falham devido a mudanças de
API no Node-20.
O pacote "Tk" contém um kit de ferramentas "GUI" "TCL".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://downloads.sourceforge.net/tcl/tk8.6.16-src.tar.gz
Soma de verificação MD5 da transferência: a7aad6cf52aa4687506a377a9a885a83
Tamanho da transferência: 4,4 MB
Espaço em disco estimado exigido: 25 MB
Tempo de construção estimado: 0,2 UPC (adicionar 5,6 UPC para testes)
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
--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.
O pacote unifdef contém um utilitário que é útil para remover do código condicionais de pré processador.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://dotat.at/prog/unifdef/unifdef-2.12.tar.gz
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
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
"Vala" é uma nova linguagem de programação que visa a trazer recursos modernos de linguagem de programação para desenvolvedores(as) "GNOME" sem impor quaisquer requisitos adicionais de tempo de execução e sem usar uma "ABI" diferente em comparação com aplicativos e bibliotecas escritos em "C".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/vala/0.56/vala-0.56.17.tar.xz
Soma de verificação MD5 da transferência: 134075855867fdd9c51ca7555c4951bb
Tamanho da transferência: 3,8 MB
Espaço em disco estimado exigido: 160 MB (adicionar 19 MB para os testes)
Tempo de construção estimado: 0,5 UPC (adicionar 1,0 UPC para testes; ambos usando paralelismo=4)
GLib-2.82.5 (GObject Introspection exigido para os testes)
Graphviz-12.2.1 (exigido para "valadoc")
dbus-1.16.0 (exigido para os testes), libxslt-1.1.42 (exigido para gerar a documentação), help2man, jing e weasyprint
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
bootstrap
: Esse alvo do
make força o
sistema de construção a construir o pacote duas vezes e usar
o executável vala produzido na primeira
construção para regenerar os arquivos .c
a partir dos arquivos .vala
, se necessário. Se um executável
vala ainda não
estiver instalado e você tiver modificado quaisquer arquivos
.vala
na árvore do fonte,
execute make
bootstrap em vez de make.
--disable-valadoc
: Essa opção é
exigida se "Graphviz-12.2.1" não estiver instalado.
é um compilador que traduz o código-fonte "Vala" em arquivos fonte e de cabeçalho "C" |
|
é um gerador de documentação para gerar documentação de "API" a partir do código-fonte "Vala" baseado na "libvala" |
|
gera um arquivo "GI" para pacotes baseados em "GObject" e "GLib" |
|
é um utilitário que gera arquivos "API" "Vala" ("VAPI") a partir de arquivos "GI" |
|
contém as funções da "API" "Vala" |
"Valgrind" é uma estrutura de instrumentação para construir ferramentas dinâmicas de análise. Existem ferramentas "Valgrind" que conseguem detectar automaticamente muitos defeitos de gerenciamento de memória e de camadas e perfilar aplicativos em detalhes. "Valgrind" também pode ser usado para construir novas ferramentas.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://sourceware.org/pub/valgrind/valgrind-3.24.0.tar.bz2
Soma de verificação MD5 da transferência: 7ae7ffc6b3cff48fe35076266c128226
Tamanho da transferência: 16 MB
Espaço em disco estimado exigido: 396 MB (adicionar 85 MB para os testes)
Tempo de construção estimado: 0,4 UPC (adicionar 6,5 UPC para testes; ambos usando paralelismo=4)
docbook-xml-4.5 (para testes), GDB-16.2 (para testes), LLVM-19.1.7 (com Clang) e Which-2.23 (para testes)
Instale "Valgrind" executando os seguintes comandos:
sed -i 's|/doc/valgrind||' docs/Makefile.in && ./configure --prefix=/usr \ --datadir=/usr/share/doc/valgrind-3.24.0 && make
Para testar os resultados, emita: "make regtest". Os testes
possivelmente travem para sempre se "GDB-16.2" não estiver instalado.
Alguns testes também são conhecidos por travarem, dependendo
da versão da "glibc". Alguns testes podem falhar em várias
suítes. Testes problemáticos podem ser desabilitados
mudando-se a linha "prereq:
" no arquivo
".vgtest
" correspondente para
"prereq:
false
". Por exemplo:
sed -e 's@prereq:.*@prereq: false@' \ -i {helgrind,drd}/tests/pth_cond_destroy_busy.vgtest
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
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.
é um aplicativo para depuração e perfilamento de executáveis "Linux" |
|
pega um arquivo de saída produzido pela ferramenta "Callgrind" do "Valgrind" e imprime as informações em um formato de fácil leitura |
|
controla aplicativos sendo executados pela ferramenta "Callgrind" do "Valgrind" |
|
é uma ferramenta de pós-processamento para a ferramenta "Cachegrind" do "Valgrind" |
|
compara dois arquivos de saída gerada do "Cachegrind" |
|
mescla vários arquivos de saída gerada do "Cachegrind" em um |
|
pega um arquivo de saída produzido pela ferramenta "Massif" do "Valgrind" e imprime as informações em um formato de fácil leitura |
|
é um servidor que lê informações de depuração oriundas de objetos armazenados em uma máquina diferente |
|
escuta em um soquete os comentários do "Valgrind" |
|
é um intermediário entre "Valgrind" e "GDB" ou um "shell" |
"Yasm" é uma reescrita completa do montador "NASM-2.16.03". Ele suporta conjuntos de instruções "x86" e "AMD64", aceita sintaxes de montador "NASM" e "GAS" e gera formatos de objetos binário, "ELF32" e "ELF64".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz
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)
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
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".
é 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" |
|
fornece todas as funcionalidades centrais do "yasm", para manipular instruções de máquina e construções de arquivos de objetos |
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
".
Criar uma "JVM" a partir do fonte exige um conjunto de dependências circulares. A primeira coisa que é necessária é um conjunto de aplicativos chamado "Java Development Kit" ("JDK"). Esse conjunto de aplicativos inclui "java", "javac", "jar" e vários outros. Ele também inclui vários arquivos "jar" básicos.
Para começar, configuramos uma instalação binária do "JDK"
criada pelos(as) editores(as) do BLFS. Ela é instalada no
diretório "/opt
" para permitir
múltiplas instalações, incluindo uma versão baseada no fonte.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência do binário (x86): https://anduin.linuxfromscratch.org/BLFS/OpenJDK/OpenJDK-23.0.2/OpenJDK-23.0.2+7-i686-bin.tar.xz
Soma de verificação MD5 da transferência: 1ace8db3d6b499a84869b2ee0d6b7465
Tamanho da transferência (binário): 170 MB
Espaço em disco estimado exigido: 321 MB
Transferência do binário (x86_64): https://anduin.linuxfromscratch.org/BLFS/OpenJDK/OpenJDK-23.0.2/OpenJDK-23.0.2+7-x86_64-bin.tar.xz
Soma de verificação MD5 da transferência: 383d39de18716e360266c902db21e3af
Tamanho da transferência (binário): 178 MB
Espaço em disco estimado exigido: 351 MB
alsa-lib-1.2.13, Cups-2.4.11, giflib-5.2.2, Little CMS-2.17 e Bibliotecas do Xorg
Comece extraindo o "tarball" binário apropriado para tua
arquitetura e mudando para o diretório extraído. Instale o
binário "OpenJDK" com os
seguintes comandos como o(a) usuário(a) "root
":
install -vdm755 /opt/OpenJDK-23.0.2-bin && mv -v * /opt/OpenJDK-23.0.2-bin && chown -R root:root /opt/OpenJDK-23.0.2-bin
A versão binária agora está instalada. Você pode criar um
link simbólico para essa versão emitindo, como o(a)
usuário(a) "root
":
ln -sfn OpenJDK-23.0.2-bin /opt/jdk
Agora você pode prosseguir para "Configurando o ambiente Java", onde as instruções assumem que o link acima existe.
"OpenJDK" é uma implementação de código aberto da plataforma "Java Standard Edition" da "Oracle". "OpenJDK" é útil para desenvolver aplicativos "Java" e fornece um ambiente de tempo de execução completo para executar aplicativos "Java".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
"OpenJDK" é código "GPL", com uma exceção especial feita para projetos não-livres para usar essas classes nos produtos proprietários deles. De forma semelhante à "LGPL", que permite que aplicativos não-livres se vinculem a bibliotecas fornecidas por logiciário livre, a Licença Pública Geral GNU, versão 2, com a exceção Classpath permite que aplicativos de terceiros usem classes fornecidas por logiciário livre sem a exigência de que o logiciário de terceiros também seja livre. Tal como acontece com a "LGPL", quaisquer modificações feitas nas partes de logiciário livre de um aplicativo de terceiros também precisam ser disponibilizadas livremente.
O fonte do "OpenJDK" inclui uma suíte de teste de código aberto muito completa usando o equipamento de teste "JTreg". As instruções de teste abaixo permitem testar o "JDK" recém-construído para compatibilidade razoável com o "JDK" proprietário da "Oracle". No entanto, para a finalidade de que uma implementação independente alegue compatibilidade, ela precisa passar por uma suíte proprietária de teste "JCK/TCK". Nenhuma alegação de compatibilidade, ou mesmo compatibilidade parcial, pode ser feita sem passar por uma suíte de teste aprovada.
A Oracle fornece acesso gratuito à comunidade, caso a caso, a um kit de ferramentas fechado para garantir 100% de compatibilidade com o JDK proprietário dela. Nem a versão binária fornecida na página Java-23.0.2 nem a JVM construída com as instruções abaixo foram testadas contra o TCK. Qualquer versão que seja construída usando as instruções fornecidas não pode alegar ser compatível com o JDK proprietário, sem que o(a) próprio(a) usuário(a) solicite e complete os testes de compatibilidade.
Com isso em mente, os binários produzidos usando este método de construção são testados regularmente em relação ao TCK pelos membros listados no sítio acima. Além da licença comunitária acima, uma licença educacional e não comercial para o TCK pode ser obtida aqui.
Transferência (HTTP): https://github.com/openjdk/jdk23u/archive/jdk-23.0.2-ga.tar.gz
Soma de verificação MD5 da transferência: 31ff1e9a086626610591efdff44cb7b3
Tamanho da Transferência: 112 MB
Espaço em disco estimado exigido: 3,7 GB (adicionar 515 MB para os testes)
Tempo de construção estimado: 4,8 UPC com quatro (04) tarefas (adicionar 33 UPC para testes com quatro (04) tarefas)
Equipamento opcional de teste
https://anduin.linuxfromscratch.org/BLFS/OpenJDK/OpenJDK-23.0.2/jtreg-7.3.1+1.tar.gz
Soma de verificação MD5 da transferência: 0038551ecaf37d0cd99832217f79e56d
Tamanho da Transferência: 9,0 MB
Um binário existente (Java-23.0.2 ou uma versão construída anterior desse pacote. As instruções abaixo assumem que você está usando Configurando o ambiente Java), alsa-lib-1.2.13, cpio-2.15, Cups-2.4.11, libarchive-3.7.7, Which-2.23, Bibliotecas do Xorg e Zip-3.0
make-ca-1.15, giflib-5.2.2, harfBuzz-10.4.0, Little CMS-2.17, libjpeg-turbo-3.0.1, libpng-1.6.46 e Wget-1.25.0
git-2.48.1, Graphviz-12.2.1, Mercurial-6.9.2, ccache, pandoc e pigz
Se você baixou o equipamento opcional de teste, desempacote-o agora:
tar -xf ../jtreg-7.3.1+1.tar.gz
Antes de continuar, você deveria garantir que sua variável
de ambiente PATH
contenha o
local do compilador Java usado para inicializar o
OpenJDK. Essa é a única
exigência para o ambiente. Instalações modernas Java não
precisam de JAVA_HOME
; e
CLASSPATH
não é usado aqui. Além
disso, os(as) desenvolvedores(as) do OpenJDK recomendam
desconfigurar JAVA_HOME
e
CLASSPATH
.
O sistema de construção não permite a chave "-j
" em "MAKEFLAGS
". Veja-se a explicação do comando
para "--with-jobs=
" para mais
informações relativas a personalizar a paralelização.
Configure e construa o pacote com os seguintes comandos:
unset JAVA_HOME &&
unset CLASSPATH &&
unset MAKEFLAGS &&
bash configure --enable-unlimited-crypto \
--disable-warnings-as-errors \
--with-stdc++lib=dynamic \
--with-giflib=system \
--with-harfbuzz=system \
--with-jtreg=$PWD/jtreg \
--with-lcms=system \
--with-libjpeg=system \
--with-libpng=system \
--with-zlib=system \
--with-version-build="7" \
--with-version-pre="" \
--with-version-opt="" \
--with-jobs=$(nproc)
\
--with-cacerts-file=/etc/pki/tls/java/cacerts &&
make images
Para testar os resultados, você precisará executar o
aplicativo "jtreg". Você consegue configurar o número de
testes simultâneos adicionando o valor "-conc:
" no
comando abaixo (caso contrário, os testes executarão
sequencialmente):
<X>
export JT_JAVA=$(echo $PWD/build/*/jdk) && jtreg/bin/jtreg -jdk:$JT_JAVA -automatic -ignore:quiet -v1 \ test/jdk:tier1 test/langtools:tier1 && unset JT_JAVA
Para mais controle sobre a suíte de teste, revise a
documentação disponível em jtreg/doc/jtreg/usage.txt
. Para revisar os
resultados, vejam-se os arquivos JTreport/test_{jdk,langtools}/text/stats.txt
e JTreport/test_{jdk,langtools}/text/summary.txt
.
Você deveria esperar ver cerca de oitenta (80) falhas e dez
(10) erros.
Instale o pacote com os seguintes comandos como o(a)
usuário(a) "root
":
install -vdm755 /opt/jdk-23.0.2+7 && cp -Rv build/*/images/jdk/* /opt/jdk-23.0.2+7 && chown -R root:root /opt/jdk-23.0.2+7 && for s in 16 24 32 48; do install -vDm644 src/java.desktop/unix/classes/sun/awt/X11/java-icon${s}.png \ /usr/share/icons/hicolor/${s}x${s}/apps/java.png done
Se desejar instalar somente o "Java Runtime Environment",
[então] você pode substituir "build/*/images/jre
" no comando
"cp" acima.
Agora existem dois "SDKs" "OpenJDK" instalados em "/opt
". Você deveria decidir qual deles
gostaria de usar como padrão. Normalmente, você optaria pelo
recém-instalado "OpenJDK".
Nesse caso, faça o seguinte como o(a) usuário(a)
"root
":
ln -v -nsf jdk-23.0.2+7 /opt/jdk
Se desejado, você pode criar arquivos ".desktop" para
adicionar entradas no menu para "java" e "jconsole". Os ícones
necessários já foram instalados. Como o(a) usuário(a)
"root
":
mkdir -pv /usr/share/applications && cat > /usr/share/applications/openjdk-java.desktop << "EOF" &&[Desktop Entry] Name=OpenJDK Java 23.0.2 Tempo de Execução Comment=OpenJDK Java 23.0.2 Tempo de Execução Exec=/opt/jdk/bin/java -jar Terminal=false Type=Application Icon=java MimeType=application/x-java-archive;application/java-archive;application/x-jar; NoDisplay=true
EOF cat > /usr/share/applications/openjdk-jconsole.desktop << "EOF"[Desktop Entry] Name=OpenJDK Java 23.0.2 Console Comment=OpenJDK Java 23.0.2 Console Keywords=java;console;monitoramento Exec=/opt/jdk/bin/jconsole Terminal=false Type=Application Icon=java Categories=Application;System;
EOF
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=
: O
$(nproc)
-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
".
Normalmente, o ambiente Java é configurado depois de instalar-se a versão binária e também pode ser usado com o pacote recém-construído. Revise Configurando o ambiente Java caso você queira modificar alguma coisa.
Para testar se as páginas de manual estão instaladas corretamente, emita "source /etc/profile" e "man java" para exibir a respectiva página de manual.
Se você executou as instruções na página "make-ca-1.15",
[então] você só precisa criar um link simbólico no local
padrão para o arquivo "cacerts
". Como usuário(a) "root
":
ln -sfv /etc/pki/tls/java/cacerts /opt/jdk/lib/security/cacerts
Para verificar a instalação, emita:
cd /opt/jdk bin/keytool -list -cacerts
No "prompt" "Enter keystore
password:
", digite "changeit
" (o padrão) ou
simplesmente pressione a tecla “Enter”. Se o
arquivo "cacerts
" foi
instalado corretamente, [então] você verá uma lista dos
certificados com informações relacionadas a cada um. Caso
contrário, você precisa reinstalá-los.
combina múltiplos arquivos em um arquivamento "jar" |
|
assina arquivos "jar" e verifica as assinaturas e a integridade de um arquivo "jar" assinado |
|
inicia um aplicativo "Java" iniciando um ambiente em tempo de execução "Java", carregando uma classe especificada e invocando o método principal dela |
|
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 |
|
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 |
|
desmonta um arquivo de classe "Java" |
|
é um utilitário para enviar solicitações de comando de diagnóstico para uma "Java Virtual Machine" em execução |
|
é uma ferramenta gráfica de console para monitorar e gerenciar aplicativos "Java" e máquinas virtuais locais e remotas |
|
é um depurador simples de linha de comando para classes "Java" |
|
escaneia arquivos de classe ou "jar" em busca de usos de elementos obsoletos de "API" |
|
mostra as dependências de nível de pacote ou de nível de classe de arquivos de classe "Java" |
|
é uma ferramenta para trabalhar com arquivos “Flight Recorder” |
|
é uma ferramenta para analisar o conteúdo de um despejo central originário de uma "Java Virtual Machine" ("JVM") quebrada |
|
é usado para listar, extrair, verificar ou obter informações relativas a módulos no formato "jimage" |
|
imprime informações de configuração "Java" para um determinado processo "Java", arquivo central ou servidor remoto de depuração |
|
é usado para montar e otimizar um conjunto de módulos e as dependências deles em uma imagem personalizada em tempo de execução |
|
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 |
|
cria arquivos "JMOD" e lista o conteúdo dos arquivos existentes "JMOD" |
|
gera pacotes e imagens de aplicativos "Java" |
|
lista as "JVMs" instrumentadas no sistema alvo |
|
é um "shell" de "script" de linha de comando |
|
é uma ferramenta interativa para aprender a linguagem de programação "Java" e "prototipar" código "Java" |
|
imprime rastreamentos de pilha "Java" de camadas "Java" para um determinado processo "Java", arquivo central ou um servidor remoto de depuração |
|
exibe estatísticas de desempenho para uma "JVM" instrumentada |
|
é um aplicativo de servidor "RMI" que monitora a criação e o encerramento de "JVMs" instrumentadas |
|
fornece um servidor mínimo "HTTP", projetado para ser usado para prototipagem, testagem e depuração |
|
é um utilitário de gerenciamento de chaves e certificados |
|
cria e inicia um registro de objeto remoto na porta especificada no dispositivo atual |
|
retorna o "serialVersionUID" para uma ou mais classes em um formato adequado para cópia em uma classe em evolução |
Depois que a instalação do pacote estiver completa, a próxima
etapa é a de garantir que o sistema consiga encontrar os
arquivos corretamente. Se você configurar teus "scripts" de
login conforme recomendado em "Os Arquivos de
Iniciação do Shell Bash", [então] atualize o ambiente
criando o "script" "openjdk.sh
", como o(a) usuário(a)
"root
":
cat > /etc/profile.d/openjdk.sh << "EOF"
# Begin /etc/profile.d/openjdk.sh
# Set JAVA_HOME directory
JAVA_HOME=/opt/jdk
# Adjust PATH
pathappend $JAVA_HOME/bin
# Auto Java CLASSPATH: Copy jar files to, or create symlinks in, the
# /usr/share/java directory.
AUTO_CLASSPATH_DIR=/usr/share/java
pathprepend . CLASSPATH
for dir in `find ${AUTO_CLASSPATH_DIR} -type d 2>/dev/null`; do
pathappend $dir CLASSPATH
done
for jar in `find ${AUTO_CLASSPATH_DIR} -name "*.jar" 2>/dev/null`; do
pathappend $jar CLASSPATH
done
export JAVA_HOME
# By default, Java creates several files in a directory named
# /tmp/hsperfdata_[username]. This directory contains files that are used for
# performance monitoring and profiling, but aren't normally needed on a BLFS
# system. This environment variable disables that feature.
_JAVA_OPTIONS="-XX:-UsePerfData"
export _JAVA_OPTIONS
unset AUTO_CLASSPATH_DIR dir jar _JAVA_OPTIONS
# End /etc/profile.d/openjdk.sh
EOF
Se "Sudo-1.9.16p2" estiver instalado, [então]
o(a) superusuário(a) deveria ter acesso às variáveis acima.
Execute os seguintes comandos como o(a) usuário(a)
"root
":
cat > /etc/sudoers.d/java << "EOF"
Defaults env_keep += JAVA_HOME
Defaults env_keep += CLASSPATH
Defaults env_keep += _JAVA_OPTIONS
EOF
Para usar "mandb" para incluir as
páginas de manual do "OpenJDK" na base de dados dele, emita
como o(a) usuário(a) "root
":
cat >> /etc/man_db.conf << "EOF" &&
# Inicia adição "Java"
MANDATORY_MANPATH /opt/jdk/man
MANPATH_MAP /opt/jdk/bin /opt/jdk/man
MANDB_MAP /opt/jdk/man /var/cache/man/jdk
# Termina Java addition
EOF
mkdir -p /var/cache/man &&
mandb -c /opt/jdk/man
O "OpenJDK" usa o próprio
formato dele para os certificados de "AC". Os módulos de
segurança do "Java" usam "$JAVA_HOME
/lib/security/cacerts
" por padrão. Para a
finalidade de manter todos os certificados em um lugar, nós
usamos "/etc/ssl/java/cacerts
".
As instruções na página "make-ca-1.15" criaram anteriormente
o arquivo localizado em "/etc/ssl/java
". Configure um link simbólico
no local padrão como o(a) usuário(a) "root
":
ln -sfv /etc/pki/tls/java/cacerts /opt/jdk/lib/security/cacerts
Use o seguinte comando para verificar se o arquivo
"cacerts
" foi instalado com
sucesso:
/opt/jdk/bin/keytool -list -cacerts
No "prompt" "Enter keystore
password:
", digite "changeit
" (o padrão) ou
simplesmente pressione a tecla “Enter”. Se o
arquivo "cacerts
" foi instalado
corretamente, [então] você verá uma lista dos certificados
com informações relacionadas a cada um. Caso contrário, você
precisa reinstalá-los.
Se instalar posteriormente uma nova "JVM", [então] você apenas tem de criar o link simbólico no local padrão para estar apto(a) a usar o "cacerts".
O pacote "Apache Ant" é uma ferramenta de construção baseada em "Java". Na teoria, é como o comando "make", mas sem as rugas do "make". "Ant" é diferente. Em vez de um modelo que é estendido com comandos baseados em "shell", "Ant" é estendido usando classes "Java". Em vez de escrever comandos de "shell", os arquivos de configuração são baseados em "XML", chamando uma árvore alvo que executa várias tarefas. Cada tarefa é executada por um objeto que implementa uma interface específica de tarefa.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://archive.apache.org/dist/ant/source/apache-ant-1.10.15-src.tar.xz
Soma de verificação MD5 da transferência: 778c68be3787dfebc249de45598f63b2
Tamanho da transferência: 3,6 MB
Espaço em disco estimado exigido: 196 MB
Tempo de construção estimado: 0,2 UPC (excluindo o tempo de transferência)
Uma "JDK" ("Binário "Java"" ou "OpenJDK-23.0.2") e "GLib-2.82.5"
Uma conexão com a Internet é necessária para construir esse pacote. A loja de certificados do sistema possivelmente precise ser configurada com make-ca-1.15 antes de se construir esse pacote
Construa uma versão limitada de instruções de autoaprimoramento do "Apache Ant" usando o seguinte comando:
./bootstrap.sh
Transfira as dependências de tempo de execução usando o
"script" de construção "ant" "fetch.xml
":
bootstrap/bin/ant -f fetch.xml -Ddest=optional
Construa o "Apache Ant" executando o seguinte comando:
./build.sh -Ddist.dir=$PWD/ant-1.10.15 dist
Instale, como o(a) usuário(a) "root
":
cp -rv ant-1.10.15 /opt/ && chown -R root:root /opt/ant-1.10.15 && ln -sfv ant-1.10.15 /opt/ant
bootstrap/bin/ant -f fetch.xml
-Ddest=optional: Transfere as dependências
ausentes para o diretório inicial do(a) usuário(a) e as copia
para a árvore do fonte (no diretório lib/optional
, onde o ant as coleta ao tempo da
construção).
./build.sh -Ddist.dir=$PWD/ant-1.10.15 dist: Esse comando constrói, testa e, então, instala o pacote em um diretório temporário.
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".
ant*.jar
" e bibliotecas dependentes em
"$ANT_HOME
/lib
"
é uma ferramenta de construção baseada em "Java" usada por muitos pacotes em vez do aplicativo convencional "make" |
|
é um "script" de suporte usado para iniciar "scripts" de construção do "ant" em um dado diretório |
|
é um "script" "Perl" que fornece funcionalidade semelhante oferecida pelo "script" "antRun" |
|
é um conjunto de comandos "Perl" que permite ao "Bash" completar uma linha de comando do "ant" |
|
é um conjunto envólucro de comandos "Perl" usado para invocar o "ant" |
|
é um conjunto envólucro de comandos "Python" usado para invocar o "ant" |
|
arquivos são as bibliotecas de classes "Java" do "Apache Ant" |
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.
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
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.50.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" é uma implementação do cliente "DHCP" especificado na "RFC2131". Um cliente "DHCP" é útil para conectar seu computador a uma rede de intercomunicação que usa "DHCP" para atribuir endereços de rede de intercomunicação. O "dhcpcd" se esforça para ser um cliente "DHCP" completo, mas muito leve.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/NetworkConfiguration/dhcpcd/releases/download/v10.2.2/dhcpcd-10.2.2.tar.xz
Soma de verificação MD5 da transferência: 417ccbdef28a633e212b4fb59ba06fbf
Tamanho da transferência: 272 KB
Espaço em disco estimado exigido: 3,8 MB (com testes)
Tempo de construção estimado: menos que 0,1 UPC (com testes)
LLVM-19.1.7 (com Clang), ntp-4.2.8p18, chronyd e ypbind
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
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
--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.
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-20241211"
executando o seguinte comando como o(a) usuário(a)
"root
":
make install-dhcpcd
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
.
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.
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.
O pacote "bridge-utils" contém um utilitário necessário para criar e gerenciar dispositivos de ponte. Isso é útil na configuração de redes de intercomunicação para uma máquina virtual ("MV") hospedada.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.kernel.org/pub/linux/utils/net/bridge-utils/bridge-utils-1.7.1.tar.xz
Soma de verificação MD5 da transferência: 3e1fee4dc22cac5457c2f6ffb990a518
Tamanho da transferência: 29 KB
Espaço em disco estimado exigido: 1,1 MB
Tempo de construção estimado: menos que 0,1 UPC
Habilite as seguintes opções na configuração do núcleo e recompile o núcleo se necessário:
[*] Networking support ---> [NET] Networking options ---> <*/M> 802.1d Ethernet Bridging [BRIDGE]
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
O pacote "cifs-utils" fornece um meio para montar compartilhamentos "SMB"/"CIFS" em um sistema Linux.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.samba.org/ftp/linux-cifs/cifs-utils/cifs-utils-7.2.tar.bz2
Soma de verificação MD5 da transferência: e02b5cba257b3fd58d19f9ece81d399f
Tamanho da transferência: 415 KB
Espaço em disco estimado exigido: 4,2 MB
Tempo de construção estimado: 0,1 UPC
docutils-0.21.2 (para criar as páginas de manual), keyutils-1.6.3 (exigido para construir o módulo "PAM"), Linux-PAM-1.7.0, Samba-4.21.4 e libcap-2.73 com PAM ou libcap-ng
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.
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
--disable-pam
: Não
construa suporte "PAM". Remova-a e use "--with-pamdir
" (veja-se abaixo), se
"Linux-PAM-1.7.0" estiver instalado e
você desejar suporte "PAM".
--with-pamdir=/usr/lib/security
:
Instale o módulo "PAM" em "/usr/lib/security
".
é 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 |
|
é 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 |
|
é 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) |
|
é 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") |
|
monta um sistema de arquivos CIFS do Linux.
Geralmente é invocado indiretamente pelo comando
mount(8)
ao usar a opção |
|
monta um sistema de arquivos baseado em SMB3.
Geralmente é invocado indiretamente pelo comando
mount(8)
ao usar a opção |
|
destina-se a alterar uma "ACL" de um descritor de segurança para um objeto do sistema de arquivos |
|
exibe informações de cota para um sistema de arquivos "SMB" |
|
exibe informações de arquivos específicas de "SMB", como descritores de segurança e cotas |
O pacote "NcFTP" contém uma interface poderosa e flexível para o protocolo de transferência de arquivos padrão da Internet. Destina-se a substituir ou complementar o aplicativo "ftp" padrão.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.ncftp.com/downloads/ncftp/ncftp-3.2.7-src.tar.xz
Soma de verificação MD5 da transferência: bbcb048d2412f4d62bc798818e703680
Tamanho da transferência: 416 KB
Espaço em disco estimado exigido: 6,9 MB
Tempo de construção estimado: 0,2 UPC
Existem duas maneiras de construir o "NcFTP". A primeira (e ideal) maneira
constrói a maior parte da funcionalidade como uma biblioteca
compartilhada e depois constrói e instala o programa
vinculado a essa biblioteca. O segundo método simplesmente
vincula todas as funcionalidades ao binário estaticamente.
Isso não disponibiliza a biblioteca dinâmica para vinculação
por outros aplicativos. Você precisa escolher o método que
melhor se adapta a você. Observe que o segundo método
não cria um binário
totalmente vinculado estaticamente; apenas as partes da
"libncftp
" estão vinculadas
estaticamente, nesse caso. Esteja ciente de que a construção
e uso da biblioteca compartilhada são cobertas pela Licença
Artística Esclarecida; entretanto, o desenvolvimento de
aplicativos que utilizam a biblioteca compartilhada está
sujeito a uma licença diferente.
Primeiro, corrija um problema com o conjunto de comandos sequenciais de configuração introduzido pelo gcc-14:
sed -i 's/def HAVE_STDLIB_H/ 1/;s/extern select/extern int select/' configure
Para instalar o "NcFTP" usando o primeiro (e ideal) método, execute os seguintes comandos:
CC=/usr/bin/gcc \ ./configure --prefix=/usr --sysconfdir=/etc && make -C libncftp shared && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) "root
":
make -C libncftp soinstall && make install
Para instalar o "NcFTP"
usando o segundo método (com a funcionalidade da
"libncftp
" vinculada
estaticamente) execute os seguintes comandos:
./configure --prefix=/usr --sysconfdir=/etc && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) "root
":
make install
CC=/usr/bin/gcc
. Essa variável de
ambiente garante que gcc seja usado se LLVM-19.1.7
estiver instalado. O procedimento de construção é quebrado se
gcc não for
usado.
make -C ... && make -C
...: Esses comandos criam e instalam a
biblioteca dinâmica "libncftp
"
que é então usada para vincular ao compilar o programa
principal.
é um aplicativo de navegador para "File Transfer Protocol" |
|
é um processador de tarefa "FTP" em lote individual |
|
é o editor de marcadores do "NcFTP" (baseado em "NCurses") |
|
é um aplicativo de transferência de arquivos da Internet para conjuntos de comandos sequenciais usados para recuperar arquivos |
|
é um aplicativo de transferência de arquivos da Internet para conjuntos de comandos sequenciais usados para listar arquivos |
|
é um aplicativo de transferência de arquivos da Internet para conjuntos de comandos sequenciais usados para transferir arquivos |
|
é um processo de segundo plano global de processador de tarefas "FTP" em lote |
O pacote "Net-tools" é uma coleção de aplicativos para controlar o subsistema de rede de intercomunicação do núcleo Linux.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://downloads.sourceforge.net/project/net-tools/net-tools-2.10.tar.xz
Soma de verificação MD5 da transferência: 78aae762c95e2d731faf88d482e4cde5
Tamanho da transferência: 228 KB
Espaço em disco estimado exigido: 7,5 MB
Tempo de construção estimado: menos que 0,1 UPC
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.
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/* /
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.
é usado para manipular o "cache" "ARP" do núcleo, geralmente para adicionar ou deletar uma entrada, ou para despejar todo o "cache" |
|
adiciona, deleta e mostra os endereços "multicast" de uma interface |
|
adiciona, muda, deleta e mostra os túneis de uma interface |
|
verifica ou configura o situação de uma unidade "Media Independent Interface" ("MII") de uma interface de rede de intercomunicação |
|
nomeia interfaces de rede baseado em endereços "MAC" |
|
é usado para informar conexões de rede, tabelas de roteamento e estatísticas de interface |
|
é usado para ajustar os parâmetros do dispositivo "PLIP", para melhorar o desempenho dele |
|
é usado para manipular a tabela "RARP" do núcleo |
|
é usado para manipular a tabela de roteamento "IP" |
|
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 |
O pacote "NFS Utilities" contém as ferramentas de espaço do usuário(a) servidor e cliente necessárias para usar as capacidades "NFS" do núcleo. "NFS" é um protocolo que permite compartilhar sistemas de arquivos por intermédio da rede de intercomunicação.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.kernel.org/pub/linux/utils/nfs-utils/2.8.2/nfs-utils-2.8.2.tar.xz
Soma de verificação MD5 da transferência: 40e598d6ec2174258020c8be09bf9ddb
Tamanho da transferência: 724 KB
Espaço em disco estimado exigido: 19 MB (com testes)
Tempo de construção estimado: 0,2 UPC (com testes)
libevent-2.1.12, libnl-3.11.0, libtirpc-1.3.6, libxml2-2.13.6, rpcsvc-proto-1.4.4 e SQLite-3.49.1
Cyrus SASL-2.1.28 (para autenticação SASL), libnsl-2.0.1 (para suporte ao cliente NIS), LVM2-2.03.30 (libdevmapper para suporte a NFSv4), OpenLDAP-2.6.9 (para autenticação LDAP), MIT Kerberos V5-1.21.3 ou libgssapi e librpcsecgss (para suporte de segurança GSS e RPC), e libcap-2.73 com PAM
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.
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.
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
--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.
"/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
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.
Instale as unidades de servidor NFSv4 inclusas no pacote blfs-systemd-units-20241211 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.
"/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.
As seguintes unidades do systemd não são exigidas se as unidades nfs-server estiverem instaladas.
Instale as unidades inclusas no pacote "" "blfs-systemd-units-20241211" para iniciar os serviços do cliente na inicialização.
make install-nfs-client
mantém uma lista de sistemas de arquivos "NFS" exportados |
|
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 |
|
exibe estatísticas "NFS" por montagem do cliente |
|
é usado para montar um compartilhamento de rede de intercomunicação usando "NFS" |
|
é usado para montar um compartilhamento de rede de intercomunicação usando "NFSv4" |
|
pode ser usado para testar e recuperar definições de configuração a partir de uma variedade de arquivos de configuração "nfs-utils" |
|
imprime informações relativas a clientes "NFS" |
|
informa estatísticas de entrada/saída para sistemas de arquivos de rede de intercomunicação |
|
exibe estatísticas mantidas a respeito da atividade "NFS" do cliente e do servidor |
|
implementa o protocolo de montagem "NFS" em um servidor "NFS" |
|
implementa a parte de nível de usuário(a) do serviço "NFS" no servidor |
|
é usado pelo serviço de bloqueio de arquivos "NFS". Execute em ambos os lados, cliente e servidor, quando desejar o bloqueio de arquivos habilitado |
|
configura ou limpa os sinalizadores de depuração do "NFS" do cliente e do servidor do núcleo |
|
exibe informações de montagem para um servidor "NFS" |
|
é usado para enviar mensagens de reinicialização do "Network Status Monitor" |
|
é 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 |
|
é usado para desmontar um compartilhamento de rede de intercomunicação usando "NFS" |
|
é usado para desmontar um compartilhamento de rede de intercomunicação usando "NFSv4" |
O pacote "ntp" contém um cliente e um servidor para manter a hora sincronizada entre vários computadores em uma rede de intercomunicação. Esse pacote é a implementação de referência oficial do protocolo "NTP".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-4.2/ntp-4.2.8p18.tar.gz
Soma de verificação MD5 da transferência: 516bdabd94ab7c824e9771390761a46c
Tamanho da transferência: 6,8 MB
Espaço em disco estimado exigido: 99 MB (com testes)
Tempo de construção estimado: 0,8 UPC (Com testes; ambos usando paralelismo=4)
libcap-2.73 com PAM, libevent-2.1.12, libedit e libopts originário do AutoGen
Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/ntp
Deveria existir um(a) usuário(a) e um grupo dedicado(a) para
assumir o controle do processo de segundo plano "ntpd" depois que ele for
iniciado. Emita os seguintes comandos como o(a) usuário(a)
"root
":
groupadd -g 87 ntp && useradd -c "Protocolo de horário da rede de intercomunicação" -d /var/lib/ntp -u 87 \ -g ntp -s /bin/false ntp
Corrija um problema de tipo executando
sed -e "s;pthread_detach(NULL);pthread_detach(0);" \ -i configure \ sntp/configure
Instale o "ntp" executando os seguintes comandos:
./configure --prefix=/usr \ --bindir=/usr/sbin \ --sysconfdir=/etc \ --enable-linuxcaps \ --with-lineeditlibs=readline \ --docdir=/usr/share/doc/ntp-4.2.8p18 && make
Para testar os resultados, emita: make check.
Agora, como o(a) usuário(a) "root
":
make install && install -v -o ntp -g ntp -d /var/lib/ntp
--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.
O arquivo de configuração a seguir define primeiro vários servidores NTP com acesso aberto a partir de diferentes continentes. Segundo, ele cria um arquivo drift onde ntpd armazena o deslocamento de frequência e um arquivo pid para armazenar o ID do processo ntpd. Como a documentação incluída no pacote é escassa, visite-se o sítio do NTP em https://www.ntp.org/ e https://www.ntppool.org/ para mais informações.
cat > /etc/ntp.conf << "EOF"
# Ásia
server 0.asia.pool.ntp.org
# Austrália
server 0.oceania.pool.ntp.org
# Europa
server 0.europe.pool.ntp.org
# América do Norte
server 0.north-america.pool.ntp.org
# América do Sul
server 2.south-america.pool.ntp.org
driftfile /var/lib/ntp/ntp.drift
pidfile /run/ntpd.pid
EOF
Você possivelmente deseje adicionar uma “seção de Segurança”. Para explicações, veja-se https://www.eecis.udel.edu/~mills/ntp/html/accopt.html#restrict.
cat >> /etc/ntp.conf << "EOF"
# Seção de segurança
restrict default limited kod nomodify notrap nopeer noquery
restrict -6 default limited kod nomodify notrap nopeer noquery
restrict 127.0.0.1
restrict ::1
EOF
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-20241211".
make install-ntpd
Se você preferir executar ntpd periodicamente,
adicione o seguinte comando ao crontab
do(a) root
:
ntpd -q
calcula o valor ideal para o "tick" dado o arquivo de mudança gradual do "NTP" |
|
gera arquivos de dados criptográficos usados pelos esquemas de autenticação e identificação "NTPv4" |
|
é útil ao tempo da inicialização, para atrasar a sequência de inicialização até que o "ntpd" tenha configurado a hora |
|
é 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" |
|
é um aplicativo cliente que configura a data e a hora baseado na resposta originária de um servidor "NTP". Esse comando está obsoleto |
|
é usado para consultar o processo de segundo plano "ntp" sobre o estado atual dele e para solicitar mudanças nesse estado |
|
é um aplicativo utilitário usado para monitorar operações "ntpd" e determinar o desempenho |
|
lê e exibe variáveis do núcleo relacionadas à hora |
|
rastreia uma cadeia de servidores "NTP" até a fonte primária |
|
é um cliente "Simple Network Time Protocol" ("SNTP") |
|
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 |
|
é um conjunto de comandos sequenciais para verificar e, se necessário, atualizar o arquivo de definição de segundos bissextos. NotaEm novembro de 2022, na 27ª Conferência Geral de Pesos e Medidas, foi decidido abandonar o segundo bissexto. Além disso, esse conjunto de comandos sequenciais rigidamente codifica uma URL para um arquivo de atualização que não mais existe. A última vez que um segundo bissexto foi declarado foi em janeiro de 2017. Esse conjunto de comandos sequenciais provavelmente será removido em um lançamento futuro. |
O aplicativo "rpcbind" é um substituto para o "portmap". Ele é exigido para importar ou exportar diretórios compartilhados do "Network File System" ("NFS").
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://downloads.sourceforge.net/rpcbind/rpcbind-1.2.7.tar.bz2
Soma de verificação MD5 da transferência: acd444ed322eb458fbd395ec69c4e083
Tamanho da transferência: 124 KB
Espaço em disco estimado exigido: 1,6 MB
Tempo de construção estimado: menos que 0,1 UPC
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:
./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
--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
".
é 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 |
|
faz uma chamada "RPC" para um servidor "RPC" e informa dados de acordo com as opções solicitadas |
O pacote "rsync" contém o utilitário "rsync". Isso é útil para sincronizar arquivamentos grandes por intermédio de uma rede de intercomunicação.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.samba.org/ftp/rsync/src/rsync-3.4.1.tar.gz
Soma de verificação MD5 da transferência: 04ce67866db04fd7a1cde0b78168406e
Tamanho da transferência: 1,1 MB
Espaço em disco estimado exigido: 11 MB (com testes; adicionar 24 MB para documentação HTML da API)
Tempo de construção estimado: 0,6 UPC (com testes)
Por razões de segurança, executar o servidor "rsync" como um(a) usuário(a) e grupo sem
privilégios é encorajado. Se você pretende executar o
"rsync" como um
processo de segundo plano, [então] crie o(a) usuário(a) e
grupo "rsyncd
" com os
seguintes comandos emitidos pelo(a) usuário(a) "root
":
groupadd -g 48 rsyncd && useradd -c "Processo de segundo plano rsyncd" -m -d /home/rsync -g rsyncd \ -s /bin/false -u 48 rsyncd
Instale o "rsync" executando os seguintes comandos:
./configure --prefix=/usr \ --disable-xxhash \ --without-included-zlib && make
Se você tiver o "Doxygen-1.13.2" instalado e desejar construir a documentação "HTML" da "API", [então] emita:
doxygen
Para testar os resultados, emita: make check.
Agora, como o(a) usuário(a) "root
":
make install
Se você construiu a documentação, [então] instale-a usando os
seguintes comandos como o(a) usuário(a) "root
":
install -v -m755 -d /usr/share/doc/rsync-3.4.1/api && install -v -m644 dox/html/* /usr/share/doc/rsync-3.4.1/api
--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.
Para acesso de cliente a arquivos remotos, você possivelmente precise instalar o pacote "OpenSSH-9.9p2" para se conectar ao servidor remoto.
Esta é uma configuração simples somente para download para configurar a execução do rsync como um servidor. Veja-se a página de manual rsyncd.conf(5) para opções adicionais (ou seja, autenticação de usuário(a)).
cat > /etc/rsyncd.conf << "EOF"
# Este é um arquivo básico de configuração do "rsync".
# Ele exporta um módulo sem autenticação de usuário(a).
motd file = /home/rsync/welcome.msg
use chroot = yes
[localhost]
path = /home/rsync
comment = Default rsync module
read only = yes
list = yes
uid = rsyncd
gid = rsyncd
EOF
Você consegue encontrar informações adicionais de configuração e documentação geral a respeito do "rsync" em https://rsync.samba.org/documentation.html.
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-20241211".
make install-rsyncd
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.
é 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 |
|
é um conjunto de comandos sequenciais auxiliares usado ao conectar-se a um processo de segundo plano "rsync" que tenha suporte "SSL" integrado |
O pacote "Samba" fornece serviços de arquivo e impressão para clientes "SMB"/"CIFS" e rede de intercomunicação Windows para clientes Linux. O "Samba" também pode ser configurado como um substituto do Controlador de Domínio do Windows, um servidor de arquivos/impressão atuando como membro de um domínio do "Windows Active Directory" e um servidor de nomes "NetBIOS" ("RFC" 1001/1002) (que, entre outras coisas, fornece suporte de navegação "LAN").
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.samba.org/pub/samba/stable/samba-4.21.4.tar.gz
Soma de verificação MD5 da transferência: 6d0b330364e05fed58cc63fbb43037fe
Tamanho da transferência: 41 MB
Espaço em disco estimado exigido: 683 MB (adicionar 64 MB para teste rápido)
Tempo de construção estimado: 2,1 UPC (usando paralelismo=4; adicionar 0,4 UPC para quicktest)
Remendo opcional (Exigido para executar a suíte de teste): https://www.linuxfromscratch.org/patches/blfs/12.3/samba-4.21.4-testsuite_linux_6_13-1.patch
GnuTLS-3.8.9, libtirpc-1.3.6, Parse-Yapp-1.21 e rpcsvc-proto-1.4.4
Fuse-3.16.2, GPGME-1.24.2, ICU-76.1, jansson-2.14, libtasn1-4.20.0, libxslt-1.1.42 (para documentação), Linux-PAM-1.7.0, lmdb-0.9.31, MIT Kerberos V5-1.21.3 e OpenLDAP-2.6.9
Avahi-0.8, BIND-9.20.6, Cups-2.4.11, Cyrus SASL-2.1.28, GDB-16.2, git-2.48.1, GnuPG-2.4.7 (exigido para ADS e a suíte de teste), libaio-0.3.113, libarchive-3.7.7 (para tar no smbclient), libcap-2.73 com PAM, libgcrypt-1.11.0, libnsl-2.0.1, libunwind-1.8.1, Markdown-3.7, nss-3.108, popt-1.19, Talloc-2.4.3 (usado pela suíte de teste), Vala-0.56.17, Valgrind-3.24.0 (opcionalmente usado pela suíte de teste), xfsprogs-6.13.0, cmocka, cryptography, ctdb (incluído), cwrap, dnspython, FAM, Gamin, GlusterFS, Heimdal (incluído), iso8601, ldb (incluído), OpenAFS, poetry-core (exigido para ADS), pyasn1, tevent (incluído), tdb (incluído) e tracker-2
Instale na ordem listada: six-1.17.0, pytest-8.3.4, argparse, testtools, testscenarios e python-subunit
Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/samba4
Para suportar a suíte de teste, configure um ambiente virtual Python para alguns módulos Python fora do escopo do BLFS e corrija um problema na estrutura de teste que faz com que todos os testes falhem em cima do núcleo Linux 6.13 ou mais recente:
python3 -m venv --system-site-packages pyvenv && ./pyvenv/bin/pip3 install cryptography pyasn1 iso8601 && patch -Np1 -i ../samba-4.21.4-testsuite_linux_6_13-1.patch
Instale o "Samba" executando os seguintes comandos:
PYTHON=$PWD/pyvenv/bin/python3 \ ./configure \ --prefix=/usr \ --sysconfdir=/etc \ --localstatedir=/var \ --with-piddir=/run/samba \ --with-pammodulesdir=/usr/lib/security \ --enable-fhs \ --without-ad-dc \ --with-system-mitkrb5 \ --enable-selftest \ --disable-rpath-install && make
Para testar os resultados, emita: "PATH=$PWD/pyvenv/bin:$PATH make
quicktest". A suíte de teste produzirá linhas
que parecem falhas, mas são inócuas. As últimas linhas da
saída gerada deveriam informar "ALL OK" para uma execução boa do
teste. Um resumo de quaisquer falhas pode ser encontrado em
"./st/summary
".
Além disso, suítes de teste para desenvolvedores(as) estão disponíveis. Se você instalou os módulos opcionais "Python" acima no ambiente virtual "Python" para construir esse pacote, [então] você consegue executar esses testes com "make test". Não é recomendado para o(a) construtor(a) médio(a) com cerca de duzentos e noventa (290) UPC e mais que um gigabyte de espaço em disco, e você deveria esperar cerca de setenta e três (73) erros e cerca de trinta (30) falhas originários dos mais que três mil (3.000) testes.
Corrija caminhos rigidamente codificados para o interpretador Python 3:
sed '1s@^.*$@#!/usr/bin/python3@' \ -i ./bin/default/source4/scripting/bin/*.inst
Se atualizar a partir de uma versão antiga do samba, [então]
como o(a) usuário(a) "root
",
remova os arquivos antigos de suporte do "Python" para evitar
alguns problemas:
rm -rf /usr/lib/python3.13/site-packages/samba
Ainda como o(a) usuário(a) "root
", instale o pacote:
make install && install -v -m644 examples/smb.conf.default /etc/samba && sed -e "s;log file =.*;log file = /var/log/samba/%m.log;" \ -e "s;path = /usr/spool/samba;path = /var/spool/samba;" \ -i /etc/samba/smb.conf.default && mkdir -pv /etc/openldap/schema && install -v -m644 examples/LDAP/README \ /etc/openldap/schema/README.samba && install -v -m644 examples/LDAP/samba* \ /etc/openldap/schema && install -v -m755 examples/LDAP/{get*,ol*} \ /etc/openldap/schema
--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-system-mitkrb5
: Habilita
construir com a versão do sistema do Kerberos. Isso atenua
vulnerabilidades de segurança e reduz o tempo de construção.
Remova isso se você não tiver MIT Kerberos V5-1.21.3
instalado.
--disable-rpath-install
: Remove
o caminho de instalação da biblioteca dos caminhos
incorporados de pesquisa de bibliotecas compartilhadas nos
arquivos executáveis binários instalados e nas bibliotecas
compartilhadas. Quando esse pacote é instalado no local
padrão, o caminho de instalação da biblioteca é /usr/lib
. Ele sempre é pesquisado pelo
vinculador dinâmico, de forma que não existe necessidade de
incorporá-lo aos arquivos instalados.
--with-selftest-prefix=SELFTEST_PREFIX
: Essa
opção especifica o diretório de trabalho da suíte de teste
(padrão=./st).
install -v -m644
examples/LDAP/* /etc/openldap/schema: Esses
comandos são usados para copiar esquemas de amostra do
"Samba" para o diretório "schema
" do "OpenLDAP".
install -v -m644
../examples/smb.conf.default /etc/samba: Isso
copia um arquivo padrão "smb.conf
" em "/etc/samba
". Essa amostra de configuração
não funcionará até que você a copie para "/etc/samba/smb.conf
" e faça as mudanças
apropriadas para a tua instalação. Veja-se a seção de
configuração para os valores mínimos que precisam estar
configurados.
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
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".
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).
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
,
que usa o conjunto de caracteres GRUPO_DE_TRABALHO
na rede ao
conversar com MS-DOS e MS Windows 9x, e que os nomes dos
arquivos são armazenados na codificação cp850
no
disco. Ajuste esses valores adequadamente para a tua
instalação. O valor ISO-8859-1
unix
charset
precisa ser o mesmo que a saída gerada de
locale
charmap quando executado com a variável
LANG
configurada para a tua
localidade preferida, caso contrário o comando
ls
possivelmente não exiba nomes de arquivos corretos dos
arquivos baixados.
Não existe necessidade de executar quaisquer servidores "Samba" nesse cenário; portanto, você não precisa instalar as unidades "systemd" fornecidas.
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 do samba
.
Certifique-se de executar smbpasswd (com a opção
-a
para adicionar
usuários(as)) para habilitar e configurar senhas para
todas as contas que precisarem de acesso ao Samba. Usando a estrutura de
retaguarda passdb padrão do Samba, qualquer usuário(a) que você
tentar adicionar também será exigido(a) existir no
arquivo /etc/passwd
.
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.
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
".
Para iniciar os processos de segundo plano do
"Samba" na
inicialização, instale as unidades do "systemd" a partir
do pacote "blfs-systemd-units-20241211"
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-20241211"
executando o seguinte comando como o(a) usuário(a)
"root
":
make install-winbindd
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.
é o comando "dd" para "SMB" |
|
é usado para ler e manipular bases de dados "TDB"/"CTDB" usando a interface "dbwrap" |
|
despeja o conteúdo de arquivos de catálogo do "MS" |
|
é 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 " |
|
é usado para executar operações genéricas aleatórias "SMB" contra dois servidores "SMB" e mostrar as diferenças de comportamento |
|
é um utilitário de linha de comando para adicionar registros a uma base de dados "LDB" |
|
é um utilitário de linha de comando para deletar registros de base de dados "LDB" |
|
permite que você edite bases de dados "LDB" usando teu editor preferido |
|
permite que você modifique registros em uma base de dados "LDB" |
|
permite que você renomeie bases de dados "LDB" |
|
pesquisa em uma base de dados "LDB" por registros que correspondam a uma expressão especificada |
|
é usado para encontrar diferenças no bloqueio entre dois servidores "SMB" |
|
é usado para encontrar diferenças na correspondência de curingas entre a implementação do Samba e aquela de um servidor remoto |
|
executa pesquisas "Spotlight" em um servidor "SMB" |
|
é usado para renomear recursivamente atributos estendidos |
|
é um analisador e despejador de pacotes "DCE"/"RPC" |
|
é uma ferramenta para administração de servidores "Samba" e "CIFS" remotos, semelhante ao utilitário "net" para "DOS"/"Windows" |
|
é o servidor de nomes "NetBIOS" do "Samba" |
|
é usado para consultar nomes "NetBIOS" e mapeá-los para endereços "IP" |
|
é uma ferramenta para permitir acesso externo à função de autenticação "NTLM" do "Winbind" |
|
converte esquemas "LDAP" em "LDIF" compatível com "LDB" |
|
é uma ferramenta usada para gerenciar a base de dados "SAM" |
|
é um utilitário que informa e muda "SIDs" em arquivos de registro do "Windows" |
|
é um aplicativo "Diff" para arquivos de registro do "Windows" |
|
aplica remendos de registro aos arquivos de registro |
|
é um navegador de arquivos de registro do "Windows" usando "Readline" |
|
é um visualizador de registro em modo texto |
|
é usado para executar funções "MS-RPC" do lado do cliente |
|
analisa registros do winbind gerados pelo Samba |
|
permite que você edite "Group Policy Objects" ("GPOs") da Microsoft |
|
é uma ferramenta baseada em "ncurses" para gerenciar o registro do Samba |
|
é a principal ferramenta de administração do Samba |
|
manipula permissões de compartilhamento de "ACL" em compartilhamentos de arquivos "SMB" |
|
é usado para manipular listas de controle de acesso do "Windows NT" |
|
é um utilitário de acesso "SMB"/"CIFS", semelhante ao "FTP" |
|
é usado para controlar a execução dos processos de segundo plano "smbd", "nmbd" e "winbindd" |
|
é usado para manipular cotas do "Windows NT" em compartilhamentos de arquivos "SMB" |
|
é o principal processo de segundo plano do "Samba" o qual fornece serviços "SMB"/"CIFS" aos clientes |
|
é 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 |
|
muda uma senha do "Samba" de um usuário |
|
envia uma trabalho de impressão para uma impressora "SMB" |
|
informa as conexões atuais do "Samba" |
|
é 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 |
|
é uma suíte de teste que executa vários testes em um servidor "SMB" |
|
é um navegador de rede de intercomunicação "SMB" baseado em texto |
|
é uma ferramenta para produzir cópia de segurança
ou para validar a integridade de arquivos
|
|
é uma ferramenta usada para imprimir o conteúdo de
um arquivo |
|
é uma ferramenta para criar um arquivo |
|
é uma ferramenta que permite a manipulação simples de base de dados a partir da linha de comando |
|
verifica um arquivo " |
|
consulta um processo de segundo "winbindd" em execução |
|
resolve nomes a partir de servidores "Windows NT" |
|
fornece funções da "API" "Name Service Switch" para resolver nomes a partir de servidores "NT" |
|
fornece funções de "API" para implementação do Samba do "Windows Internet Naming Service" |
|
fornece funções de "API" para as ferramentas de administração usadas para servidores Samba e "CIFS" remotos |
|
fornece funções de "API" para as ferramentas de cliente "SMB" do Samba |
|
fornece funções de "API" para serviços de cliente de domínio do "Windows" |
O pacote Wget contém um utilitário útil para transferência não interativa de arquivos a partir da "Web".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://ftp.gnu.org/gnu/wget/wget-1.25.0.tar.gz
Soma de verificação MD5 da transferência: c70ba58b36f944e8ba1d655ace552881
Tamanho da transferência: 5,0 MB
Espaço em disco estimado exigido: 38 MB (adicionar 27 MB para os testes)
Tempo de construção estimado: 0,3 UPC (adicionar 0,4 UPC para testes)
GnuTLS-3.8.9, HTTP-Daemon-6.16 (para a suíte de teste), IO-Socket-SSL-2.089 (para a suíte de teste), libidn2-2.3.7, pcre2-10.45 e Valgrind-3.24.0 (para a suíte de teste)
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
--sysconfdir=/etc
:
Isso realoca o arquivo de configuração de "/usr/etc
" para "/etc
".
--with-ssl=openssl
:
Isso permite que o aplicativo use o "OpenSSL" em vez do
"GnuTLS-3.8.9".
--enable-valgrind-tests
: Isso
permite que os testes sejam executados sob o "Valgrind".
Antes de usar qualquer ferramenta de espaço do(a) usuário(a) para conectar-se a um ponto de acesso sem fio, o núcleo Linux precisa ser configurado para controlar a NIC sem fio corretamente. Habilite as seguintes opções na configuração do núcleo, bem como controladores específicos de dispositivos para o teu hardware e recompile o núcleo, se necessário:
[*] Networking support ---> [NET] [*] Wireless ---> [WIRELESS] <*/M> cfg80211 - wireless configuration API [CFG80211] < /*/M> Generic IEEE 802.11 Networking Stack (mac80211) [MAC80211] Device Drivers ---> [*] Network device support ---> [NETDEVICES] [*] Wireless LAN ---> [WLAN]
Abra o submenu “Wireless LAN” e selecione as opções que
suportam teu hardware. lspci oriundo de pciutils-3.13.0 ou lsusb oriundo de usbutils-018
podem ser usados para visualizar tua configuração de hardware.
Observe que muitas (embora nem todas) opções para as NICs sem
fio dependem de CONFIG_MAC80211
. Depois que os
controladores corretos forem carregados, a interface aparecerá
em /sys/class/net
ou na saída
gerada do comando ip
link.
Muitos controladores de NIC sem fio exigem firmware. Se você
tiver habilitado o controlador correto na configuração do
núcleo, mas ele falhar para carregar (com mensagens como
Direct firmware load for
, significa que você precisa
instalar o firmware ou a NIC sem fio não funcionará. Leia-se
Acerca de Firmware para mais detalhes.
<nome_arquivo
>
failed with error -2
"iw" é um novo utilitário de configuração "CLI" baseado em "nl80211" para dispositivos sem fio. Ele suporta todos os novos controladores que foram adicionados recentemente ao núcleo. A antiga ferramenta "iwconfig", que usa a interface "Wireless Extensions", está obsoleta e é altamente recomendado mudar para o "iw" e "nl80211".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.kernel.org/pub/software/network/iw/iw-6.9.tar.xz
Soma de verificação MD5 da transferência: 457c99badf2913bb61a8407ae60e4819
Tamanho da transferência: 156 KB
Espaço em disco estimado exigido: 3,9 MB
Tempo de construção estimado: menos que 0,1 UPC
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.
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
sed ...: Instale páginas de manual descompactadas de acordo com outras páginas de manual.
A "Wireless Extension" ("WE") é uma "API" genérica no núcleo Linux que permite que um controlador exponha configurações e estatísticas específicas de "LANs" sem fio comuns para o espaço de usuário(a). Um conjunto de ferramentas pode suportar todas as variações de "LANs" sem fio, independentemente do tipo delas, desde que o controlador suporte "Wireless Extensions". Os parâmetros "WE" também podem ser mudados dinamicamente sem reiniciar o controlador (ou o Linux).
O pacote "Wireless Tools" ("WT") é um conjunto de ferramentas que permite a manipulação das "Wireless Extensions". Elas usam uma interface textual para suportar as "Wireless Extensions" completas.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://hewlettpackard.github.io/wireless-tools/wireless_tools.29.tar.gz
Soma de verificação MD5 da transferência: e06c222e186f7cc013fd272d023710cb
Tamanho da transferência: 288 KB
Espaço em disco estimado exigido: 2,0 MB
Tempo de construção estimado: menos que 0,1 UPC
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]
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
INSTALL_MAN=/usr/share/man:
Instala as páginas de manual em "/usr/share/man
" em vez de "/usr/man
".
renomeia interfaces de rede de intercomunicação baseado em vários critérios estáticos |
|
configura uma interface de rede de intercomunicação sem fio |
|
exibe eventos sem fio gerados por controladores e mudanças de configuração |
|
informa "ESSID", "NWID" ou endereço "AP"/"Cell" de redes de intercomunicação sem fio |
|
obtém informações sem fio detalhadas a partir de uma interface sem fio |
|
configura parâmetros opcionais (privados) de uma interface de rede de intercomunicação sem fio |
|
obtém estatísticas sem fio a partir de um nó específico |
|
contém funções exigidas pelos aplicativos sem fio e fornece uma "API" para outros aplicativos |
"WPA Supplicant" é um cliente "Wi-Fi Protected Access" ("WPA") e suplicante "IEEE 802.1X". Ele implementa a negociação de chave "WPA" com um Autenticador "WPA" e a autenticação "Extensible Authentication Protocol" ("EAP") com um Servidor de Autenticação. Além disso, ele controla o deslocamento e a autenticação/associação "IEEE 802.11" do controlador de "LAN" sem fio. Isso é útil para conectar-se a um ponto de acesso sem fio protegido por senha.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://w1.fi/releases/wpa_supplicant-2.11.tar.gz
Soma de verificação MD5 da transferência: 72a4a00eddb7a499a58113c3361ab094
Tamanho da transferência: 3,7 MB
Espaço em disco estimado exigido: 35 MB
Tempo de construção estimado: 0,3 UPC
Configurando o Núcleo Linux para Sem Fios
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.
Primeiro você precisará criar um arquivo de configuração
inicial para o processo de construção. Você pode ler
"wpa_supplicant/README
" e
"wpa_supplicant/defconfig
" para
a explicação das opções a seguir, bem como outras opções que
podem ser usadas. Crie um arquivo de configuração de
construção que deveria funcionar para configurações "WiFi"
padrão executando o seguinte comando:
cat > wpa_supplicant/.config << "EOF"
CONFIG_BACKEND=file
CONFIG_CTRL_IFACE=y
CONFIG_DEBUG_FILE=y
CONFIG_DEBUG_SYSLOG=y
CONFIG_DEBUG_SYSLOG_FACILITY=LOG_DAEMON
CONFIG_DRIVER_NL80211=y
CONFIG_DRIVER_WEXT=y
CONFIG_DRIVER_WIRED=y
CONFIG_EAP_GTC=y
CONFIG_EAP_LEAP=y
CONFIG_EAP_MD5=y
CONFIG_EAP_MSCHAPV2=y
CONFIG_EAP_OTP=y
CONFIG_EAP_PEAP=y
CONFIG_EAP_TLS=y
CONFIG_EAP_TTLS=y
CONFIG_IEEE8021X_EAPOL=y
CONFIG_IPV6=y
CONFIG_LIBNL32=y
CONFIG_PEERKEY=y
CONFIG_PKCS12=y
CONFIG_READLINE=y
CONFIG_SMARTCARD=y
CONFIG_WPS=y
CFLAGS += -I/usr/include/libnl3
EOF
Se você deseja usar o WPA Supplicant com o NetworkManager-1.50.0, então adicione as seguintes opções ao arquivo de configuração de construção do WPA Supplicant executando o seguinte comando:
cat >> wpa_supplicant/.config << "EOF"
CONFIG_CTRL_IFACE_DBUS=y
CONFIG_CTRL_IFACE_DBUS_NEW=y
CONFIG_CTRL_IFACE_DBUS_INTRO=y
EOF
Instale o WPA Supplicant executando os seguintes comandos:
cd wpa_supplicant && make BINDIR=/usr/sbin LIBDIR=/usr/lib
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) "root
":
install -v -m755 wpa_{cli,passphrase,supplicant} /usr/sbin/ && install -v -m644 doc/docbook/wpa_supplicant.conf.5 /usr/share/man/man5/ && install -v -m644 doc/docbook/wpa_{cli,passphrase,supplicant}.8 /usr/share/man/man8/
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
Você precisará reiniciar o processo de segundo plano "D-Bus" do sistema antes que possa usar a interface "WPA Supplicant" do "D-Bus".
Se você estiver usando o WPA Supplicant com NetworkManager-1.50.0 (ou qualquer coisa que se comunique com o WPA Supplicant via D-Bus), esta seção deveria ser ignorada. Executar-se uma instância de D-Bus conectado a WPA Supplicant e outra instância WPA Supplicant configurada de acordo com esta seção simultaneamente pode causar problemas sutis.
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-
".
"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) "wifi0
.confroot
":
install -v -dm755 /etc/wpa_supplicant && wpa_passphraseSSID
SENHA_SECRETA
> /etc/wpa_supplicant/wpa_supplicant-wifi0
.conf
"/etc/wpa_supplicant/wpa_supplicant-
"
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.
wifi0
.conf
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-
".
Substitua "Algum-SSID" pelo "SSID" do ponto de
acesso/roteador.
wifi0
.conf
network={
ssid="Algum-SSID
"
key_mgmt=NONE
}
Conectar-se a um novo ponto de acesso que não esteja no arquivo de configuração pode ser realizado manualmente por meio da linha de comando, mas precisa ser feito por meio de um(a) usuário(a) privilegiado(a). Para fazer isso, adicione o seguinte ao arquivo de configuração:
ctrl_interface=DIR=/run/wpa_supplicant GROUP=<grupo privilegiado> update_config=1
Substitua o <grupo privilegiado> acima por um grupo do sistema onde os(as) membros(as) tem a capacidade de se conectarem a um ponto de acesso sem fio.
Existem muitas opções que você poderia usar para ajustar
como se conecta a cada ponto de acesso. Elas estão
descritas com alguns detalhes no arquivo "wpa_supplicant/wpa_supplicant.conf
" na
árvore do fonte.
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.
é um processo de segundo plano que consegue se conectar a um ponto de acesso sem fio protegido por senha |
|
pega um "SSID" e uma senha e gera uma configuração simples que o "wpa_supplicant" consiga entender |
|
é uma interface de linha de comando usada para controlar um processo de segundo plano "wpa_supplicant" em execução |
Este capítulo contém algumas ferramentas que serão úteis quando a rede de intercomunicação precisar de investigação.
O pacote Avahi é um sistema que facilita a descoberta de serviços em uma rede de intercomunicação local.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/lathiat/avahi/releases/download/v0.8/avahi-0.8.tar.gz
Soma de verificação MD5 da transferência: 229c6aa30674fc43c202b22c5f8c2be7
Tamanho da transferência: 1,5 MB
Espaço em disco estimado exigido: 32 MB
Tempo de construção estimado: 0,3 UPC
GLib-2.82.5 (GObject Introspection recomendado)
D-Bus Python-1.3.2, libevent-2.1.12, Doxygen-1.13.2, GTK+-2 (obsoleto) e xmltoman (para gerar documentação)
Deveria existir um(a) usuário(a) e um grupo dedicado(a) para
assumir o controle do processo de segundo plano "avahi-daemon" depois que
ele for iniciado. Emita os seguintes comandos como o(a)
usuário(a) "root
":
groupadd -fg 84 avahi && useradd -c "Proprietário(a) do Processo de Segundo Plano Avahi" -d /run/avahi-daemon -u 84 \ -g avahi -s /bin/false avahi
Também deveria existir um grupo de acesso privilegiado
dedicado para clientes do "Avahi". Emita o seguinte comando como
o(a) usuário(a) "root
":
groupadd -fg 86 netdev
Corrija uma regressão que resulta em uma condição de corrida quando o "IPv6" está em uso e vários adaptadores de rede de intercomunicação estiverem presentes no sistema:
patch -Np1 -i ../avahi-0.8-ipv6_race_condition_fix-1.patch
Corrija uma vulnerabilidade de segurança no "avahi-daemon":
sed -i '426a if (events & AVAHI_WATCH_HUP) { \ client_free(c); \ return; \ }' avahi-daemon/simple-protocol.c
Instale o "Avahi" executando os seguintes comandos:
./configure \ --prefix=/usr \ --sysconfdir=/etc \ --localstatedir=/var \ --disable-static \ --disable-libevent \ --disable-mono \ --disable-monodoc \ --disable-python \ --disable-qt3 \ --disable-qt4 \ --disable-qt5 \ --enable-core-docs \ --with-distro=none \ --with-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
--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".
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
é um processo de segundo plano de configuração de endereço de rede de intercomunicação "IPv4LL" |
|
procura serviços "mDNS"/"DNS-SD" usando o processo de segundo plano "Avahi" |
|
procura serviços "mDNS"/"DNS-SD" usando o processo de segundo plano "Avahi" |
|
é o processo de segundo plano "mDNS"/"DNS-SD" "Avahi" |
|
procura serviços "mDNS"/"DNS-SD" usando o processo de segundo plano "Avahi" |
|
é um servidor "DNS" "Unicast" originário do processo de segundo plano de configuração "mDNS"/"DNS-SD" |
|
registra um serviço "mDNS"/"DNS-SD" ou mapeamento de nome de dispositivo ou de endereço usando o processo de segundo plano "Avahi" |
|
registra um serviço "mDNS"/"DNS-SD" ou mapeamento de nome de dispositivo ou de endereço usando o processo de segundo plano "Avahi" |
|
registra um serviço "mDNS"/"DNS-SD" ou mapeamento de nome de dispositivo ou de endereço usando o processo de segundo plano "Avahi" |
|
resolve um ou mais nomes de dispositivo "mDNS"/"DNS" para endereços "IP" (e vice-versa) usando o processo de segundo plano "Avahi" |
|
resolve um ou mais nomes de dispositivo "mDNS"/"DNS" para endereços "IP" (e vice-versa) usando o processo de segundo plano "Avahi" |
|
resolve um ou mais nomes de dispositivo "mDNS"/"DNS" para endereços "IP" (e vice-versa) usando o processo de segundo plano "Avahi" |
|
muda o nome "mDNS" do dispositivo |
|
procura servidores "SSH" na rede de intercomunicação local |
|
procura servidores "VNC" na rede de intercomunicação local |
"Utilitários BIND" não é um pacote separado; é uma coleção de aplicativos do lado cliente que estão inclusos no "BIND-9.20.6". O pacote "BIND" inclui os aplicativos do lado cliente "nslookup", "dig" e "host". Se você instalar o servidor "BIND", [então] esses aplicativos serão instalados automaticamente. Esta seção é para aqueles(as) usuários(as) que não precisam do servidor "BIND" completo, mas precisam desses aplicativos do lado cliente.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://ftp.isc.org/isc/bind9/9.20.6/bind-9.20.6.tar.xz
Soma de verificação MD5 da transferência: 193d9dad97f1fee3127eed7ccd93153f
Tamanho da transferência: 5,4 MB
Espaço em disco estimado exigido: 102 MB
Tempo de construção estimado: 0,3 UPC (usando paralelismo = 4)
Instale os "Utilitários BIND" executando os seguintes comandos:
./configure --prefix=/usr && make -C lib/isc && make -C lib/dns && make -C lib/ns && make -C lib/isccfg && make -C lib/isccc && make -C bin/dig && make -C bin/nsupdate && make -C bin/rndc && make -C doc
Essa parte do pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) "root
":
make -C lib/isc install && make -C lib/dns install && make -C lib/ns install && make -C lib/isccfg install && make -C lib/isccc install && make -C bin/dig install && make -C bin/nsupdate install && make -C bin/rndc install && cp -v doc/man/{dig.1,host.1,nslookup.1,nsupdate.1} /usr/share/man/man1 && cp -v doc/man/rndc.8 /usr/share/man/man8
--disable-doh
: Use essa opção se
você não tiver instalado o "nghttp2-1.64.0" e não precisar de
suporte "DNS" sobre "HTTPS".
make -C lib/...: Esses comandos constroem as bibliotecas que são necessárias para os aplicativos clientes.
make -C bin/...: Esse comando constrói os programas clientes.
make -C doc: Esse comando constrói as páginas de manual se o módulo opcional "sphinx-8.2.1" do "Python" estiver instalado.
Use cp -v doc/man/... /usr/share/man/man... para instalar as páginas de manual se elas tiverem sido construídas.
Vejam-se as descrições do aplicativo na seção "BIND-9.20.6".
"NetworkManager" é um conjunto de ferramentas cooperativas que tornam a operação interativa de dispositivos via rede de intercomunicação simples e direta. Quer você use "WiFi", com fio, "3G" ou "Bluetooth", o "NetworkManager" te permite mudar rapidamente de uma rede de intercomunicação para outra: depois que uma rede de intercomunicação tiver sido configurada e conectada uma vez, ela poderá ser detectada e conectada novamente automaticamente na próxima vez que estiver disponível.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
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".
Transferência (HTTP): https://download.gnome.org/sources/NetworkManager/1.50/NetworkManager-1.50.0.tar.xz
Soma de verificação MD5 da transferência: 3a95e6ddade18d9a1abb0b86d2b14a36
Tamanho da transferência: 5,9 MB
Espaço em disco estimado exigido: 299 MB (com testes e documentação)
Tempo de construção estimado: 0,9 UPC (com testes, usando paralelismo=4)
cURL-8.12.1, dhcpcd-10.2.2, GLib-2.82.5 (com GObject Introspection), iptables-1.8.11, libpsl-0.21.5, newt-0.52.24 (para nmtui), nss-3.108, Polkit-126 (tempo de execução), PyGObject-3.50.0, Systemd-257.3, Vala-0.56.17 e wpa_supplicant-2.11 (tempo de execução, construído com suporte a D-Bus)
BlueZ-5.79, D-Bus Python-1.3.2 (para a suíte de teste), GnuTLS-3.8.9 (pode ser usado em vez de nss-3.108), GTK-Doc-1.34.0, jansson-2.14, ModemManager-1.18.12, UPower-1.90.7, Valgrind-3.24.0, dnsmasq, firewalld, libaudit, libteam, mobile-broadband-provider-info, PPP e RP-PPPoE
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]
Corrija os conjuntos sequenciais de comandos "Python", de forma que eles usem "Python 3":
grep -rl '^#!.*python$' | xargs sed -i '1s/python/&3/'
Instale o NetworkManager executando os seguintes comandos:
mkdir build && cd build && meson setup .. \ --prefix=/usr \ --buildtype=release \ -D libaudit=no \ -D nmtui=true \ -D ovs=false \ -D ppp=false \ -D selinux=false \ -D qt=false \ -D session_tracking=systemd \ -D modem_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.50.0}
Se você não passou a opção -D
docs=true
para meson, você consegue
instalar as páginas de manual pré geradas com (como o(a)
usuário(a) root
):
for file in $(echo ../man/*.[1578]); do section=${file##*.} && install -vdm 755 /usr/share/man/man$section install -vm 644 $file /usr/share/man/man$section/ done
Se você não tiver usado -D
docs=true
, a documentação HTML pré gerada também pode
ser instalada com (como o(a) usuário(a) root
):
cp -Rv ../docs/{api,libnm} /usr/share/doc/NetworkManager-1.50.0
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
-D docs=true
: Use essa chave para
habilitar construir páginas de manual e documentação se
GTK-Doc-1.34.0 estiver instalado.
-D nmtui=true
: Essa
chave habilita construir nmtui.
-D ovs=false
: Essa
chave desabilita a integração do Open vSwitch porque ela
precisa de jansson-2.14. Remova-a se você tiver
jansson-2.14 instalado em teu sistema.
-D
modem_manager=false
: Essa chave é exigida se o
ModemManager não estiver
instalado. Omita essa chave se você tiver construído
ModemManager e mobile-broadband-provider-info.
-D
session_tracking=systemd
: Essa chave é usada para
configurar systemd-logind como o
aplicativo padrão para rastreamento de sessão.
-D ppp=false
: Essa
chave desabilita suporte a PPP no NetworkManager, já que os aplicativos
necessários para isso não estão instalados. Remova essa chave
se você precisar de suporte a PPP e tiver o PPP instalado.
-D libaudit=no
e
-D selinux=false
:
Essa chave desabilita o suporte para libaudit e SELinux, vez
que ele(a) não é usado(a) no BLFS.
-D qt=false
: Essa
chave desabilita os exemplos do Qt
5.
-D crypto=gnutls
: Use essa chave
se você tiver GnuTLS instalado e quiser usá-lo para operações
de certificados e chaves no NetworkManager, em vez de usar o
NSS (o padrão).
-D crypto=null
: Use essa chave se
nem NSS nem GnuTLS estiverem instalados, mas você quiser
construir NetworkManager de qualquer maneira. Essa chave fará
com que NetworkManager careça de alguns recursos (por
exemplo, 802.1X).
-D suspend_resume=upower
: Use
essa chave se você tiver UPower-1.90.7 instalado e quiser
usá-lo (em vez de Systemd-257.3)
para suspender e retomar o suporte.
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
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
:
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
é uma ferramenta de linha de comando para controlar o "NetworkManager" e obter a situação dele |
|
é um utilitário para determinar se você está online |
|
é uma interface interativa de usuário(a) baseada em "Ncurses" para o "nmcli" |
|
é uma interface interativa de usuário(a) baseada em "Ncurses" para ativar/desativar conexões |
|
é uma interface interativa de usuário(a) baseada em "Ncurses" para editar conexões |
|
é uma interface interativa de usuário(a) baseada em "Ncurses" para editar o nome do dispositivo |
|
é o processo de segundo plano de gerenciamento de rede de intercomunicação |
|
contém funções usadas pelo "NetworkManager" |
O "NetworkManager Applet" fornece uma ferramenta e um miniaplicativo de painel usado para configurar conexões de rede de intercomunicação com e sem fio por meio de "GUI". Ele foi projetado para uso com qualquer ambiente de área de trabalho que use "GTK+", como o "Xfce" e o "LXDE".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/network-manager-applet/1.34/network-manager-applet-1.34.0.tar.xz
Soma de verificação MD5 da transferência: 83ff059aff3a691766d5f0079209e5af
Tamanho da transferência: 1,9 MB
Espaço em disco estimado exigido: 46 MB (com testes)
Tempo de construção estimado: 0,4 UPC (com testes)
GTK-3.24.48, libnma-1.10.6 e libsecret-0.21.6
GLib-2.82.5 (com GObject Introspection) e ModemManager-1.18.12
Como esse pacote usa "Polkit-126" para autorização, um "Agente de Autenticação do Polkit" deveria estar em execução quando a funcionalidade desse pacote for usada.
Instale o "NetworkManager Applet" executando os seguintes comandos:
mkdir build && cd build && meson setup .. \ --prefix=/usr \ --buildtype=release \ -D appindicator=no \ -D selinux=false \ -D team=false && ninja
Para testar os resultados, emita: ninja test.
Agora, como o(a) usuário(a) "root
":
ninja install
-D appindicator=no
:
Essa chave desabilita o suporte ao AppIndicator no
network-manager-applet porque ele exige a libindicator, que
não está no BLFS. A construção falhará sem essa opção.
-D selinux=false
:
Essa chave desabilita forçosamente o suporte ao SELinux, uma vez que ele atualmente não
está no BLFS e a construção falhará sem ela.
-D team=false
: Essa
chave desabilita o editor de configuração de equipe, pois ele
exige jansson-2.14. Se você tiver o Jansson
instalado, remova essa opção ou configure-a como true
.
-D wwan=false
: Essa chave
desabilita o suporte WWAN. Use isso se você não tiver o
ModemManager-1.18.12 instalado.
"Nmap" é um utilitário para exploração de rede de intercomunicação e auditoria de segurança. Ele suporta varredura de "ping", varredura de porta e impressão digital "TCP"/"IP".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://nmap.org/dist/nmap-7.95.tar.bz2
Soma de verificação MD5 da transferência: b481d293e53b20278d5370458da9a950
Tamanho da transferência: 11 MB
Espaço em disco estimado exigido: 116 MB (adicionar 38 MB para os testes)
Tempo de construção estimado: 0,4 UPC (Usando paralelismo=4; adicionar 0,1 UPC para testes)
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).
liblinear-248, libpcap-1.10.5, libssh2-1.11.1, Lua-5.4.7, pcre2-10.45 e PyGObject-3.50.0
Primeiro, se ainda não estiver instalado, adicione um módulo
Python necessário. Como o(a) usuário(a) root
:
pip3 install build
Instale o "Nmap" executando os seguintes comandos:
./configure --prefix=/usr && make
Se você deseja executar a suíte de teste, execute o seguinte comando:
sed -e '/import imp/d' \ -e 's/^ndiff = .*$/import ndiff/' \ -i ndiff/ndifftest.py
Para testar os resultados, emita: "make check" como o(a)
usuário(a) "root
". Os testes
precisam de uma sessão gráfica.
Agora, como o(a) usuário(a) "root
":
make install
é um utilitário para ler e escrever dados entre redes de intercomunicação a partir da linha de comando |
|
é uma ferramenta para auxiliar na comparação de varreduras do "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" |
|
é 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 |
|
é um conjunto de comandos sequenciais "Python" para desinstalar o "ndiff" |
|
é um conjunto de comandos sequenciais "Python" para desinstalar o "zenmap" |
|
é um visualizador gráfico, baseado em "Python", de estrutura de interação direta com o(a) usuário(a) do "nmap" |
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.
Esse pacote sobrescreve a versão do "traceroute" que foi instalada no pacote "inetutils" no LFS. Essa versão é mais poderosa e permite muito mais opções que a versão padrão.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://downloads.sourceforge.net/traceroute/traceroute-2.1.6.tar.gz
Soma de verificação MD5 da transferência: 94b41044978f4f57c373adc5a32c42d7
Tamanho da transferência: 76 KB
Espaço em disco estimado exigido: 624 KB
Tempo de construção estimado: menos que 0,1 UPC
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.
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 |
|
é equivalente a "traceroute -6" |
"Whois" é um aplicativo do lado cliente que consulta o serviço de diretório "whois" em busca de informações relativas a um nome de domínio específico. Esse pacote instalará dois aplicativos por padrão: "whois" e "mkpasswd". O comando "mkpasswd" também é instalado pelo pacote "expect" no LFS.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/rfc1036/whois/archive/v5.4.3/whois-5.4.3.tar.gz
Soma de verificação MD5 da transferência: 381dce8db7c6e38ef013b5d6527f494c
Tamanho da transferência: 100 KB
Espaço em disco estimado exigido: 1,2 MB
Tempo de construção estimado: menos que 0,1 UPC
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
":
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
O pacote Wireshark contém um analisador de protocolo de rede de intercomunicação, também conhecido como um “sniffer”. Isso é útil para analisar dados capturados “fora do fio” a partir de uma conexão ativa de rede de intercomunicação ou dados lidos a partir de um arquivo de captura.
O "Wireshark" fornece uma estrutura de interação direta com o(a) usuário(a), gráfica e em modo TTY, para examinar pacotes de rede de intercomunicação capturados a partir de mais que quinhentos (500) protocolos, bem como a capacidade de ler arquivos de captura a partir de muitos outros analisadores populares de rede de intercomunicação.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.wireshark.org/download/src/all-versions/wireshark-4.4.5.tar.xz
Soma de verificação MD5 da transferência: 5082fa9d60d1d9e0b55087fbc0a2b3b9
Tamanho da transferência: 45 MB
Espaço em disco estimado exigido: 772 MB (173 MB instalado)
Tempo de construção estimado: 2,5 UPC (com paralelismo=4)
Documentação Adicional: https://www.wireshark.org/download/docs/ (contém links para vários documentos em uma variedade de formatos)
CMake-3.31.5, c-ares-1.34.4, GLib-2.82.5, libgcrypt-1.11.0, Qt-6.8.2 e Speex-1.2.1
libpcap-1.10.5 (exigido para capturar dados)
asciidoctor-2.0.23, Brotli-1.1.0, Cups-2.4.11, Doxygen-1.13.2, git-2.48.1, GnuTLS-3.8.9, libnl-3.11.0, libxslt-1.1.42, libxml2-2.13.6, Lua-5.4.7, MIT Kerberos V5-1.21.3, nghttp2-1.64.0, SBC-2.0, Vulkan-Headers-1.4.304, BCG729, libilbc, libsmi, libssh, MaxMindDB, Minizip, nghttp3, Snappy e Spandsp
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
".
"Wireshark" é um aplicativo
muito grande e complexo. Estas instruções fornecem medidas
adicionais de segurança para garantir que somente
usuários(as) confiáveis sejam permitidos(as) a visualizar o
tráfego da rede de intercomunicação. Primeiro, configure um
grupo do sistema para o "Wireshark". Como o(a) usuário(a)
"root
":
groupadd -g 62 wireshark
Continue a instalar o "Wireshark" executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ -D CMAKE_INSTALL_DOCDIR=/usr/share/doc/wireshark-4.4.5 \ -G Ninja \ .. && ninja
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) "root
":
ninja install && install -v -m755 -d /usr/share/doc/wireshark-4.4.5 && install -v -m644 ../README.linux ../doc/README.* ../doc/randpkt.txt \ /usr/share/doc/wireshark-4.4.5 && pushd /usr/share/doc/wireshark-4.4.5 && for FILENAME in ../../wireshark/*.html; do ln -s -v -f $FILENAME . done && popd unset FILENAME
Se você baixou quaisquer dos arquivos de documentação a
partir da página listada em "Transferências adicionais",
[então] instale-os emitindo os seguintes comandos como o(a)
usuário(a) "root
":
install -v -m644 <Downloaded_Files>
\
/usr/share/doc/wireshark-4.4.5
Agora, configure a propriedade e as permissões de aplicativos
confidenciais para permitir somente usuários(as)
autorizados(as). Como o(a) usuário(a) "root
":
chown -v root:wireshark /usr/bin/tshark && chmod -v 6550 /usr/bin/tshark
Finalmente, adicione quaisquer usuários(as) ao grupo
"Wireshark" (como o(a) usuário(a) "root
"):
usermod -a -G wireshark <nome_usuário(a)>
Se você estiver instalando o "Wireshark" pela primeira vez, [então] será necessário sair da tua sessão e entrar novamente. Isso colocará o "Wireshark" em teus grupos, pois, caso contrário, o "Wireshark" não funcionará corretamente.
/etc/wireshark.conf
e
~/.config/wireshark/*
(a
menos que já exista ~/.wireshark/*
no sistema)
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".
Se você quiser ver os pacotes, [então] certifique-se de não filtrá-los com o "iptables-1.8.11". Se você quiser excluir certas classes de pacotes, [então] é mais eficiente fazê-lo com o "iptables" que com o "Wireshark".
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" |
|
imprime os tipos de arquivos dos arquivos de captura |
|
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 |
|
é um programa que pega um arquivo CORBA IDL
especificado pelo(a) usuário(a) e gera código fonte
“C” para um “plugin”
do Wireshark. Ele
se baseia em dois programas Python, wireshark_be.py e
wireshark_gen.py,
os quais não são instalados por padrão. Eles tem de
ser copiados manualmente a partir do diretório
|
|
combina vários arquivos salvos de captura em um arquivo de saída gerada |
|
cria arquivos de captura de pacotes aleatórios |
|
despeja e analisa dados brutos da "libpcap" |
|
reordena os carimbos de tempo dos quadros do arquivo de entrada gerada em um arquivo de saída gerada |
|
é um processo de segundo plano que escuta em soquetes "UNIX" |
|
lê um despejo hexadecimal "ASCII" e escreve os dados descritos em um arquivo de captura estilo "libpcap" |
|
é 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 |
|
é 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 |
|
contém funções usadas pelos aplicativos "Wireshark" para realizar filtragem e captura de pacotes |
|
é uma biblioteca sendo desenvolvida como uma
substituta futura para a " |
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" é uma biblioteca "C" para solicitações "DNS" assíncronas.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/c-ares/c-ares/releases/download/v1.34.4/c-ares-1.34.4.tar.gz
Soma de verificação MD5 da transferência: 136230025fc9c9d510cb29fdc998a6ea
Tamanho da transferência: 977 KB
Espaço em disco estimado exigido: 11 MB
Tempo de construção estimado: 0,1 UPC
Instale c-ares executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr .. && make
Esse pacote não inclui uma suíte de teste.
Agora, como o(a) usuário(a) "root
":
make install
O pacote "cURL" contém um utilitário e uma biblioteca usado(a) para transferir arquivos com sintaxe "URL" para qualquer um dos seguintes protocolos: "DICT", "FILE", "FTP", "FTPS", "GOPHER", "GOPHERS", "HTTP", "HTTPS", "IMAP", "IMAPS", "LDAP", "LDAPS", "MQTT", "POP3", "POP3S", "RTSP", "SMB", "SMBS", "SMTP", "SMPTS", "TELNET" e "TFTP". A capacidade dele(a) de baixar e de enviar arquivos pode ser incorporada a outros aplicativos para suportar funções como mídia em transmissão.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://curl.se/download/curl-8.12.1.tar.xz
Soma de verificação MD5 da transferência: 7940975dd510399c4b27831165ab62e0
Tamanho da transferência: 2,6 MB
Espaço em disco estimado exigido: 53 MB (adicionar 15 MB para os testes)
Tempo de construção estimado: 0,2 UPC (com paralelismo=4; adicionar 4,9 UPC para testes (sem valgrind, adicionar 14 UPC com valgrind))
Embora exista uma opção para construir o pacote sem libpsl, tanto os(as) desenvolvedores(as) de fluxo de desenvolvimento quanto os(as) editores(as) do BLFS recomendam fortemente não desabilitar o suporte para libpsl devido a graves implicações de segurança.
Brotli-1.1.0, c-ares-1.34.4, GnuTLS-3.8.9, libidn2-2.3.7, libssh2-1.11.1, MIT Kerberos V5-1.21.3, nghttp2-1.64.0, OpenLDAP-2.6.9, Samba-4.21.4 (tempo de execução, para autenticação NTLM), gsasl, impacket, libmetalink, librtmp, ngtcp2, quiche e SPNEGO
Apache-2.4.63 e stunnel-5.74 (para os testes HTTPS e FTPS), OpenSSH-9.9p2 e Valgrind-3.24.0 (isso atrasará os testes e possivelmente cause falhas)
Instale o "cURL" executando os seguintes comandos:
./configure --prefix=/usr \ --disable-static \ --with-openssl \ --with-ca-path=/etc/ssl/certs && make
Para executar a suíte de teste, emita: make test. Alguns testes
são instáveis, de forma que, se alguns testes falharem, é
possível executar um teste novamente com: (cd tests; ./runtests.pl <ID do
teste>
) (o ID dos testes
falhos é mostrado na mensagem “These test cases
failed:
”). Se você executar os testes
depois que o pacote tiver sido instalado, alguns testes
possivelmente falhem porque as páginas de manual foram
deletadas pelo comando 'find' nas instruções de instalação
abaixo.
Agora, como o(a) usuário(a) "root
":
make install && rm -rf docs/examples/.deps && find docs \( -name Makefile\* -o \ -name \*.1 -o \ -name \*.3 -o \ -name CMakeLists.txt \) -delete && cp -v -R docs -T /usr/share/doc/curl-8.12.1
Para executar alguns testes simples de verificação sobre o
recém instalado curl, emita os seguintes
comandos: curl --trace-ascii
debugdump.txt https://www.example.com/ e
curl --trace-ascii d.txt
--trace-time https://example.com/. Inspecione
os arquivos de rastreamento criados localmente debugdump.txt
e d.txt
, que contém informações de versão,
informações dos arquivos baixados, etc. Um arquivo tem a hora
para cada ação registrada.
--disable-static
:
Essa chave impede a instalação das versões estáticas das
bibliotecas.
--with-ca-path=/etc/ssl/certs
:
Essa chave define o local do armazenamento da Autoridade
Certificadora do BLFS.
--with-openssl
: Esse
parâmetro escolhe OpenSSL
como implementação SSL/TLS. Essa opção não é necessária se
--with-gnutls
for selecionada.
--with-gssapi
: Esse parâmetro
adiciona suporte "Kerberos
5" à "libcurl
".
--with-gnutls
: Use essa chave
para construir com suporte GnuTLS em vez de OpenSSL para SSL/TLS.
--with-ca-bundle=/etc/pki/tls/certs/ca-bundle.crt
:
Use essa chave em vez de "--with-ca-path
" se construir
com suporte "GnuTLS" em vez
de "OpenSSL" para
"SSL"/"TLS".
--with-libssh2
: Esse parâmetro
adiciona suporte "SSH" ao
"cURL". Isso é desabilitado por padrão.
--enable-ares
: Esse parâmetro
adiciona suporte para resolução DNS por meio da biblioteca
c-ares.
find docs ... -exec rm {}
\;: Esse comando remove "Makefiles
" e arquivos de manual do
diretório de documentação que de outra forma seriam
instalados pelos comandos a seguir.
"GeoClue" é um serviço modular de geo informação construído sobre o sistema de mensagens "D-Bus". O objetivo do projeto "GeoClue" é o de tornar a criação de aplicativos com reconhecimento de localização o mais simples possível.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://gitlab.freedesktop.org/geoclue/geoclue/-/archive/2.7.2/geoclue-2.7.2.tar.bz2
Soma de verificação MD5 da transferência: d58d6f3286a6b3ace395fc36468aace2
Tamanho da transferência: 108 KB
Espaço em disco estimado exigido: 7,2 MB
Tempo de construção estimado: 0,1 UPC
JSON-GLib-1.10.6 e libsoup-3.6.4
Avahi-0.8, libnotify-0.8.4, ModemManager-1.18.12 e Vala-0.56.17
Instale o "GeoClue" executando os seguintes comandos:
mkdir build && cd build && meson setup --prefix=/usr \ --buildtype=release \ -D gtk-doc=false \ .. && ninja
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) "root
":
ninja install
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
-D 3g-source=false
: Essa chave
desabilita a estrutura de retaguarda 3G. Use-a se você não
tiver instalado o pacote ModemManager.
-D modem-gps-source=false
: Essa
chave desabilita a estrutura de retaguarda GPS do modem.
Use-a se você não tiver instalado o pacote ModemManager.
-D cdma-source=false
: Essa chave
desabilita a estrutura de retaguarda fonte CDMA. Use-a se
você não tiver instalado o pacote ModemManager.
-D nmea-source=false
: Essa chave
desabilita a fonte NMEA. Use-a se você não tiver instalado o
pacote Avahi.
-D demo-agent=false
: Essa chave
desabilita a demonstração. Use-a se você não tiver instalado
o pacote libnotify.
Em março de 2024, a Mozilla anunciou o encerramento do Mozilla Location Service. Geoclue usa esse serviço para determinar um local de usuário(a) quando solicitado por outras aplicações. A única alternativa suportada pelo fluxo de desenvolvimento é a de usar o Serviço de Geolocalização do Google.
Para usar o Serviço de Geolocalização do Google, uma chave de API precisa ser usada e um arquivo de configuração precisa ser criado. Esta chave de API é destinada somente para uso com LFS. Por favor, não use esta chave de API se você estiver construindo para outra distribuição ou distribuindo cópias binárias. Se precisar de uma chave de API, você pode solicitar uma em https://www.chromium.org/developers/how-tos/api-keys.
Crie a configuração necessária para usar o Serviço de
Geolocalização do Google como o(a) usuário(a) root
:
cat > /etc/geoclue/conf.d/90-lfs-google.conf << "EOF"
# Begin /etc/geoclue/conf.d/90-lfs-google.conf
# This configuration applies for the WiFi source.
[wifi]
# Set the URL to Google's Geolocation Service.
url=https://www.googleapis.com/geolocation/v1/geolocate?key=AIzaSyDxKL42zsPjbke5O8_rPVpVrLrJ8aeE9rQ
# End /etc/geoclue/conf.d/90-lfs-google.conf
EOF
Se não desejar solicitar teu local a partir de um serviço
de geolocalização, você pode rigidamente codificar teu
local em /etc/geolocation
usando o formato descrito em geoclue(5).
O pacote "GLib Networking" contém módulos "gio" relacionados à rede de intercomunicação para o "GLib".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/glib-networking/2.80/glib-networking-2.80.1.tar.xz
Soma de verificação MD5 da transferência: 405e6c058723217a1307ba8415615f9d
Tamanho da transferência: 288 KB
Espaço em disco estimado exigido: 5,9 MB (com testes)
Tempo de construção estimado: menos que 0,1 UPC (com testes)
gsettings-desktop-schemas-47.1 (para os aplicativos usantes desse pacote usarem as configurações de servidor "proxy" no "GNOME") e make-ca-1.15
Instale o "GLib Networking" executando os seguintes comandos:
mkdir build && cd build && meson setup \ --prefix=/usr \ --buildtype=release \ -D libproxy=disabled \ .. && ninja
Para testar os resultados, emita: ninja test.
Agora, como o(a) usuário(a) "root
":
ninja install
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
/usr/lib/gio/modules
)
O kdsoap é um componente SOAP do lado do cliente e do lado servidor baseado em Qt. Ele pode ser usado para criar aplicativos clientes para serviços web e também fornece meios para criar serviços web sem a necessidade de qualquer componente adicional, como um servidor web dedicado.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/KDAB/KDSoap/releases/download/kdsoap-2.2.0/kdsoap-2.2.0.tar.gz
Soma de verificação MD5 da transferência: a4ef201402aaa1500439a2ed4359c0f3
Tamanho da transferência: 11 MB
Espaço em disco estimado exigido: 49 MB
Tempo de construção estimado: 0,3 UPC (Usando paralelismo=4)
Instale kdsoap executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ -D KDSoap_QT6=ON \ -D CMAKE_INSTALL_DOCDIR=/usr/share/doc/kdsoap-2.2.0 \ .. && make
O pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
O pacote kdsoap-ws-discovery-client contém uma biblioteca que fornece suporte para o protocolo WS-Discovery, um protocolo recente usado para descobrir serviços disponíveis em uma rede local de intercomunicação.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.kde.org/stable/kdsoap-ws-discovery-client/kdsoap-ws-discovery-client-0.4.0.tar.xz
Soma de verificação MD5 da transferência: 6d653d927efac8296662bc92784f2fe5
Tamanho da transferência: 32 KB
Espaço em disco estimado exigido: 7,5 MB
Tempo de construção estimado: 0,2 UPC
Instale kdsoap-ws-discovery-client executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ -D CMAKE_SKIP_INSTALL_RPATH=ON \ -D QT_MAJOR_VERSION=6 \ -W no-dev .. && make
Para testar os resultados, emita: make test.
Agora, como o(a) usuário(a) root
:
make install && mv -v /usr/share/doc/KDSoapWSDiscoveryClient{,-0.4.0}
-D
CMAKE_SKIP_INSTALL_RPATH=ON
: Essa chave faz com
que cmake
remova caminhos de pesquisa de biblioteca rigidamente
codificados (rpath) ao instalar um arquivo binário executável
ou uma biblioteca compartilhada. Esse pacote não precisa do
rpath depois de instalado no local padrão, e o rpath
ocasionalmente pode causar efeitos indesejados ou até mesmo
problemas de segurança.
mv -v /usr/share/doc/KDSoapWSDiscoveryClient[...]:: Esse comando move a documentação para um diretório versionado.
-D
QT_MAJOR_VERSION=6
: Esse parâmetro informa ao
sistema de construção para construir a versão Qt6 deste
pacote em vez da versão Qt5.
-D BUILD_QCH=ON
: Essa opção
informa ao sistema de construção para criar documentação que
pode ser usada com QtCreator, QtAssistant ou KDevelop.
"ldns" é uma biblioteca "DNS" rápida com a meta de simplificar a programação "DNS" e permitir que os(as) desenvolvedores(as) criem facilmente o software em conformidade com os "RFCs" atuais e os rascunhos da Internet. Esses pacotes também incluem a ferramenta "drill".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.nlnetlabs.nl/downloads/ldns/ldns-1.8.4.tar.gz
Soma de verificação MD5 da transferência: 94ea1ed8fc7095bef003b64b53b71ec7
Tamanho da transferência: 1,2 MB
Espaço em disco estimado exigido: 31 MB (com documentos)
Tempo de construção estimado: 0,2 UPC (com os documentos)
make-ca-1.15 e libpcap-1.10.5 (para programas exemplo), SWIG-4.3.0 (para ligações Python) e Doxygen-1.13.2 (para documentação HTML)
Instale o "ldns" executando os seguintes comandos:
./configure --prefix=/usr \ --sysconfdir=/etc \ --disable-static \ --with-drill && make
Se você tiver o "Doxygen-1.13.2" instalado e desejar construir a documentação "HTML", [então] execute o seguinte comando:
make doc
Esse pacote não vem com uma suíte de teste funcional.
Agora, como o(a) usuário(a) "root
":
make install
Se você construiu a documentação "HTML", [então] instale-a
executando os seguintes comandos como o(a) usuário(a)
"root
":
install -v -m755 -d /usr/share/doc/ldns-1.8.4 && install -v -m644 doc/html/* /usr/share/doc/ldns-1.8.4
--disable-static
:
Essa chave impede a instalação das versões estáticas das
bibliotecas.
--with-drill
: Essa
opção habilita a construção da ferramenta "drill" (usada para obter
informações de depuração a partir do "DNS(SEC)")
--disable-dane-ta-usage
: Essa
opção desabilita o suporte a "DANE-TA" ("DNS-Based
Authentication of Named Entities"). Ele é necessário somente
se o "OpenSSL-1.1.0" ou posterior não estiver instalado.
--with-examples
: Essa opção
habilita a construção dos aplicativos de exemplo.
--with-pyldns
: Essa opção
habilita construção das ligações Python. Se você usar essa
opção, precisará adicionar PYTHON=/usr/bin/python3 à linha do
configure também.
é uma ferramenta como o "dig" oriunda de "Utilitários BIND-9.20.6" projetada para obter todo tipo de informação do "DNS" |
|
mostra sinalizadores de compilador e vinculador para uso do "ldns" |
|
fornece as funções da "API" do "ldns" para aplicativos |
"libevent" é uma biblioteca de logiciário de notificação de eventos assíncronos. A "API" da "libevent" fornece um mecanismo para executar uma função de retorno de chamada quando um evento específico ocorre em um descritor de arquivo ou depois de um tempo limite ter sido atingido. Além disso, "libevent" também suporta retornos de chamada devido a sinais ou tempos limite regulares.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/libevent/libevent/releases/download/release-2.1.12-stable/libevent-2.1.12-stable.tar.gz
Soma de verificação MD5 da transferência: b5333f021f880fe76490d8a799cd79f4
Tamanho da transferência: 1,0 MB
Espaço em disco estimado exigido: 20 MB (adicionar 4 MB para os testes e 4 MB para os documentos da API)
Tempo de construção estimado: 0,3 UPC (adicionar 11 UPC para testes)
Doxygen-1.13.2 (para a documentação da "API")
Primeiro, corrija um problema que impede "event_rpcgen.py" de funcionar:
sed -i 's/python/&3/' event_rpcgen.py
Instale o "libevent" executando os seguintes comandos:
./configure --prefix=/usr --disable-static && make
Se você tiver o "Doxygen-1.13.2" instalado e desejar construir a documentação da "API", [então] emita:
doxygen Doxyfile
Para testar os resultados, emita: make verify. Seis testes em
cada suíte relacionados a regress_ssl.c
e regress_http.c
são conhecidos por falharem
devido a incompatibilidades com o OpenSSL-3. Alguns testes
que estão relacionados a regress_dns.c
também são conhecidos por
falharem intermitentemente devido a tempos limite de teste
insuficientes.
Agora, como o(a) usuário(a) "root
":
make install
Se você construiu a documentação da "API", [então] instale-a
emitindo os seguintes comandos como o(a) usuário(a)
"root
":
install -v -m755 -d /usr/share/doc/libevent-2.1.12/api && cp -v -R doxygen/html/* \ /usr/share/doc/libevent-2.1.12/api
--disable-static
:
Essa chave impede a instalação das versões estáticas das
bibliotecas.
A biblioteca "libmnl" fornece uma biblioteca minimalista de espaço de usuário(a) orientada para desenvolvedores(as) "Netlink". Existem muitas tarefas comuns na análise, validação e construção do cabeçalho "Netlink" e dos "TLVs" que são repetitivas e fáceis de errar. Essa biblioteca visa a fornecer ajudantes simples que te permitem reusar código e evitar a reinvenção da roda.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://netfilter.org/projects/libmnl/files/libmnl-1.0.5.tar.bz2
Soma de verificação MD5 da transferência: 0bbb70573119ec5d49435114583e7a49
Tamanho da transferência: 308 KB
Espaço em disco estimado exigido: 2,9 MB
Tempo de construção estimado: menos que 0,1 UPC
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
O pacote "libndp" fornece um envólucro para o "Neighbor Discovery Protocol" do "IPv6". Ele também fornece uma ferramenta chamada "ndptool" para enviar e receber mensagens "NDP".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): http://libndp.org/files/libndp-1.9.tar.gz
Soma de verificação MD5 da transferência: 9d486750569e7025e5d0afdcc509b93c
Tamanho da transferência: 368 KB
Espaço em disco estimado exigido: 2,5 MB
Tempo de construção estimado: menos que 0,1 UPC
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
A suíte "libnl" é uma coleção de bibliotecas que fornecem "APIs" para interfaces do núcleo Linux baseadas no protocolo "netlink".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/thom311/libnl/releases/download/libnl3_11_0/libnl-3.11.0.tar.gz
Soma de verificação MD5 da transferência: 0a5eb82b494c411931a47638cb0dba51
Tamanho da transferência: 1,1 MB
Espaço em disco estimado exigido: 28 MB (com documentação da API)
Tempo de construção estimado: 0,3 UPC (com documentação da API)
Transferência (HTTP): https://github.com/thom311/libnl/releases/download/libnl3_11_0/libnl-doc-3.11.0.tar.gz
Soma de verificação MD5 da transferência: 5c74044c92f2eb08de69cce88714cd1b
Tamanho da transferência: 3,8 MB
Instale o "libnl" executando os seguintes comandos:
./configure --prefix=/usr \ --sysconfdir=/etc \ --disable-static && make
Se o comando make foi executado com várias tarefas paralelas habilitadas, ele poderá interromper o modo de terminal e causar alguns efeitos visuais “divertidos”. Na pior das hipóteses, esse problema possivelmente cause entradas geradas de teclado não exibidas na tela (mas você ainda consegue executar qualquer comando se conseguir digitá-lo corretamente). Execute o comando reset para corrigir esse problema.
Se desejar executar os testes, verifique se as seguintes opções estão habilitadas na configuração do núcleo e recompile o núcleo se necessário. Alguns deles possivelmente não sejam estritamente necessários, mas deveriam suportar uma cobertura completa de testes.
General setup ---> -*- Namespaces support ---> [NAMESPACES] [*] User namespace [USER_NS] [*] Network namespace [NET_NS] [*] Networking support ---> [NET] Networking options ---> [*] TCP/IP networking [INET] [*] IP: advanced router [IP_ADVANCED_ROUTER] [*] IP: policy routing [IP_MULTIPLE_TABLES] <*/M> IP: tunneling [NET_IPIP] <*/M> IP: GRE demultiplexer [NET_IPGRE_DEMUX] <*/M> IP: GRE tunnels over IP [NET_IPGRE] <*/M> Virtual (secure) IP: tunneling [NET_IPVTI] <*> The IPv6 protocol ---> [IPV6] <*/M> IPv6: IPv6-in-IPv4 tunnel (SIT driver) [IPV6_SIT] <*/M> IPv6: IP-in-IPv6 tunnel (RFC2473) [IPV6_TUNNEL] [*] IPv6: Multiple Routing Tables [IPV6_MULTIPLE_TABLES] [*] Network packet filtering framework (Netfilter) ---> [NETFILTER] Core Netfilter Configuration ---> <*/M> Netfilter nf_tables support [NF_TABLES] [*] Netfilter nf_tables netdev tables support [NF_TABLES_NETDEV] {*/M} Netfilter packet duplication support [NF_DUP_NETDEV] <*/M> Netfilter nf_tables netdev packet forwarding support ... [NFT_FWD_NETDEV] <*/M> 802.1d Ethernet Bridging [BRIDGE] <*/M> 802.1Q/802.1ad VLAN Support [VLAN_8021Q] -*- L3 Master device support [NET_L3_MASTER_DEV] Device Drivers ---> [*] Network device support ---> [NETDEVICES] [*] Network core driver support [NET_CORE] <*/M> Bonding driver support [BONDING] <*/M> Dummy net driver support [DUMMY] <*/M> Intermediate Functional Block support [IFB] <*/M> MAC-VLAN support [MACVLAN] <*/M> MAC-VLAN based tap driver [MACVTAP] <*/M> IP-VLAN support [IPVLAN] <*/M> Virtual eXtensible Local Area Network (VXLAN) [VXLAN] <*/M> IEEE 802.1AE MAC-level encryption (MACsec) [MACSEC] <*/M> Virtual ethernet pair device [VETH] <*/M> Virtual Routing and Forwarding (Lite) [NET_VRF]
Para testar os resultados, emita: make check.
Agora, como o(a) usuário(a) "root
":
make install
Se você desejar instalar a documentação da "API", [então]
como o(a) usuário(a) "root
":
mkdir -vp /usr/share/doc/libnl-3.11.0 && tar -xf ../libnl-doc-3.11.0.tar.gz --strip-components=1 --no-same-owner \ -C /usr/share/doc/libnl-3.11.0
--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.
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 |
|
adiciona, atualiza ou substitui Classes de Tráfego |
|
deleta Classes de Tráfego |
|
é usado para resolver nomes de "qdisc"/classe para valores "classid" e vice-versa |
|
lista Classes de Tráfego |
|
adiciona um classificador |
|
deleta um classificador |
|
lista classificadores |
|
despeja atributos de link |
|
permite a consulta de definições de localização de pacotes |
|
adiciona disciplinas de filas ("qdiscs") no núcleo |
|
deleta disciplinas de filas ("qdiscs") no núcleo |
|
lista disciplinas de filas ("qdiscs") no núcleo |
|
Essas bibliotecas contêm funções de "API" usadas para acessar interfaces "Netlink" no núcleo Linux |
O pacote "libnma" contém uma implementação das funções "GUI" do "NetworkManager".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/libnma/1.10/libnma-1.10.6.tar.xz
Soma de verificação MD5 da transferência: 71c7ce674fea1fae8f1368a7fcb6ff43
Tamanho da transferência: 688 KB
Espaço em disco estimado exigido: 15 MB
Tempo de construção estimado: 0,1 UPC (Usando paralelismo=4; com o teste)
Gcr-3.41.2, GTK-3.24.48, ISO Codes-4.17.0 e NetworkManager-1.50.0
Instale o "libnma" executando os seguintes comandos:
mkdir build && cd build && meson setup .. \ --prefix=/usr \ --buildtype=release \ -D gtk_doc=false \ -D libnma_gtk4=true \ -D mobile_broadband_provider_info=false && ninja
Para testar os resultados, emita: ninja test.
Agora, como o(a) usuário(a) "root
":
ninja install
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
-D gtk_doc=false
:
Esse parâmetro desabilita gerar documentação da API usando
gtk-doc. Se você tiver o GTK-Doc-1.34.0 instalado e desejar
gerar a documentação da API, omita essa chave.
-D libnma_gtk4=true
:
Esse parâmetro constrói a versão GTK-4 da libnma. É
necessário para o gnome-control-center-47.4.
-D
mobile_broadband_provider_info=false
: Essa chave
desabilita o suporte a WWAN porque as informações do provedor
de banda larga móvel não estão no BLFS. Omita essa chave se
você a tiver instalada e desejar habilitar o suporte a WWAN.
O pacote "libnsl" contém a interface pública cliente para "NIS(YP)". Ele substitui a biblioteca "NIS" que costumava estar na "glibc".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/thkukuk/libnsl/releases/download/v2.0.1/libnsl-2.0.1.tar.xz
Soma de verificação MD5 da transferência: fb178645dfa85ebab0f1e42e219b42ae
Tamanho da transferência: 276 KB
Espaço em disco estimado exigido: 3,1 MB
Tempo de construção estimado: menos que 0,1 UPC
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
--disable-static
:
Essa chave impede a instalação das versões estáticas das
bibliotecas.
"libpcap" fornece funções para captura de pacotes em nível de usuário(a), usadas no monitoramento de atividade de rede de intercomunicação de baixo nível.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.tcpdump.org/release/libpcap-1.10.5.tar.gz
Soma de verificação MD5 da transferência: 0dc69ed81464e7a255715fa685daf134
Tamanho da transferência: 952 KB
Espaço em disco estimado exigido: 10 MB
Tempo de construção estimado: menos que 0,1 UPC
BlueZ-5.79, libnl-3.11.0, libusb-1.0.27, distribuição de logiciário para o DAG e a gama de placas passivas de monitoramento de atividade de rede de intercomunicação Septel.
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
O pacote "libpsl" fornece uma biblioteca para acessar e resolver informações originárias da "Public Suffix List" ("PSL"). O "PSL" é um conjunto de nomes de domínio além dos sufixos padrão, como ".com".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/rockdaboot/libpsl/releases/download/0.21.5/libpsl-0.21.5.tar.gz
Soma de verificação MD5 da transferência: 870a798ee9860b6e77896548428dba7b
Tamanho da transferência: 7,3 MB
Espaço em disco estimado exigido: 50 MB
Tempo de construção estimado: menos que 0,1 UPC (incluindo testes)
libidn2-2.3.7 e libunistring-1.3
GTK-Doc-1.34.0 (para documentação), ICU-76.1 (pode ser usado em vez de libidn2), libidn-1.42 (pode ser usado em vez de libidn2), Valgrind-3.24.0 (para testes)
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
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
"Libslirp" é uma biblioteca de atividade em rede de intercomunicação em modo de usuário(a) usada por máquinas virtuais, contêineres ou diversas ferramentas.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://gitlab.freedesktop.org/slirp/libslirp/-/archive/v4.9.0/libslirp-v4.9.0.tar.bz2
Soma de verificação MD5 da transferência: 31dbbfe667297a5931e56ba78f69c64f
Tamanho da transferência: 129 KB
Espaço em disco estimado exigido: 3,1 MB
Tempo de construção estimado: menos que 0,1 UPC
Instale o "libslirp" executando os seguintes comandos:
mkdir build && cd build && meson setup --prefix=/usr --buildtype=release .. && ninja
Para testar os resultados, emita: ninja test
Agora, como o(a) usuário(a) "root
":
ninja install
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
A "libsoup" é uma biblioteca "HTTP" cliente/servidor para o "GNOME". Ela usa "GObject" e o "loop" principal "GLib" para integração com aplicativos "GNOME" e também tem uma "API" assíncrona para uso em aplicativos em camadas.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/libsoup/2.74/libsoup-2.74.3.tar.xz
Soma de verificação MD5 da transferência: 8f657fd301a213629204b3320c35d75a
Tamanho da transferência: 1,4 MB
Espaço em disco estimado exigido: 17 MB (com testes)
Tempo de construção estimado: 0,3 UPC (Usando paralelismo=4; com testes)
glib-networking-2.80.1, libpsl-0.21.5, libxml2-2.13.6 e SQLite-3.49.1
GLib-2.82.5 (com GObject Introspection) e Vala-0.56.17
Apache-2.4.63 (exigido para executar a suíte de teste), Brotli-1.1.0, cURL-8.12.1 (exigido para executar a suíte de teste), MIT Kerberos V5-1.21.3 (exigido para executar a suíte de teste), GTK-Doc-1.34.0, PHP-8.4.4 compilado com suporte XMLRPC-EPI (usado somente para os testes de regressão XMLRPC), Samba-4.21.4 (ntlm_auth é exigido para executar a suíte de teste) e sysprof
Instale o "libsoup" executando os seguintes comandos:
mkdir build && cd build && meson setup --prefix=/usr \ --buildtype=release \ -D vapi=enabled \ -D gssapi=disabled \ -D sysprof=disabled \ .. && ninja
Para testar os resultados, emita: "ninja test". Um teste
chamado "ssl-test
" é conhecido
por falhar.
Agora, como o(a) usuário(a) "root
":
ninja install
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
-D vapi=disabled
: Use isso se não
tiver instalado o Vala, por
exemplo, porque você não está construindo o GNOME.
-D doc=enabled
: Use essa opção se
quiser construir a documentação. Observe que você precisa ter
o GTK-Doc-1.34.0 instalado.
-D gssapi=disabled
:
libsoup padroniza para construir com suporte GSSAPI, que
exige Kerberos (assim como a suíte de teste). Se você estiver
construindo o GNOME ou tiver o kerberos instalado, remova
essa opção.
-D sysprof=disabled
:
libsoup baixará automaticamente uma versão git de sysprof se o git
estiver disponível ou usará a versão instalada se estiver
presente no sistema. Se você precisar de perfilamento, remova
essa opção.
A "libsoup3" é uma biblioteca "HTTP" cliente/servidor para o "GNOME". Ela usa "GObject" e o "loop" principal "GLib" para integração com aplicativos "GNOME" e também tem uma "API" assíncrona para uso em aplicativos em camada.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/libsoup/3.6/libsoup-3.6.4.tar.xz
Soma de verificação MD5 da transferência: b42bfcd87a78b82272d2004976e10766
Tamanho da transferência: 1,5 MB
Espaço em disco estimado exigido: 37 MB (com testes)
Tempo de construção estimado: 0,3 UPC (Usando paralelismo=4; com testes)
glib-networking-2.80.1, libpsl-0.21.5, libxml2-2.13.6, nghttp2-1.64.0 e SQLite-3.49.1
GLib-2.82.5 (com GObject Introspection) e Vala-0.56.17
Apache-2.4.63 (exigido para executar a suíte de teste), Brotli-1.1.0, cURL-8.12.1 (exigido para executar a suíte de teste), Gi-DocGen-2025.3, MIT Kerberos V5-1.21.3 (exigido para executar a suíte de teste), PHP-8.4.4 compilado com suporte XMLRPC-EPI (usado somente para os testes de regressão XMLRPC), Samba-4.21.4 (ntlm_auth é exigido para executar a suíte de teste), sysprof e wstest
Corrija o caminho de instalação da documentação da "API":
sed 's/apiversion/soup_version/' -i docs/reference/meson.build
Instale o "libsoup3" executando os seguintes comandos:
mkdir build && cd build && meson setup --prefix=/usr \ --buildtype=release \ --wrap-mode=nofallback \ .. && ninja
Para testar os resultados, emita: ninja test.
Agora, como o(a) usuário(a) "root
":
ninja install
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
--wrap-mode=nofallback
: Essa
chave impede meson de usar substitutos
de subprojeto para quaisquer declarações de dependência nos
arquivos de construção, impedindo-o de baixar quaisquer
dependências opcionais que não estejam instaladas no sistema.
-D docs=enabled
: Se Gi-DocGen-2025.3 estiver instalado, a
documentação da API será construída e instalada
independentemente de essa opção ser usada ou não. Essa opção
faz com que o comando meson falhe se Gi-DocGen-2025.3 não estiver
instalado.
O pacote "libtirpc" contém bibliotecas que suportam aplicativos que usam a "API" "Remote Procedure Call" ("RPC"). Ele substitui o "RPC", mas não as entradas da biblioteca "NIS" que costumavam estar na "glibc".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://downloads.sourceforge.net/libtirpc/libtirpc-1.3.6.tar.bz2
Soma de verificação MD5 da transferência: 8de9e6af16c4bc65ba40d0924745f5b7
Tamanho da transferência: 553 KB
Espaço em disco estimado exigido: 7,4 MB
Tempo de construção estimado: menos que 0,1 UPC
MIT Kerberos V5-1.21.3 para a "GSSAPI"
Se atualizar esse pacote, [então] você também precisará atualizar qualquer versão existente de "rpcbind-1.2.7"
./configure --prefix=/usr \ --sysconfdir=/etc \ --disable-static \ --disable-gssapi && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) "root
":
make install
--disable-static
:
Essa chave impede a instalação das versões estáticas das
bibliotecas.
--disable-gssapi
:
Essa chave é necessária se nenhum "GSSAPI" estiver instalado.
Remova essa chave se você tiver uma instalada (por exemplo
"MIT Kerberos V5-1.21.3") e
desejar usá-la.
"neon" é uma biblioteca cliente "HTTP" e "WebDAV", com uma interface "C".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://notroj.github.io/neon/neon-0.34.0.tar.gz
Soma de verificação MD5 da transferência: 8796f3ef99998f21465f9135b26afd40
Tamanho da transferência: 908 KB
Espaço em disco estimado exigido: 8,7 MB (adicionais 52 MB para testes)
Tempo de construção estimado: 0,1 UPC (adicionar 0,1 UPC para testes)
GnuTLS-3.8.9, libxml2-2.13.6, MIT Kerberos V5-1.21.3, nss-3.108 (para alguns testes), xmlto-0.0.29 (para regenerar a documentação), libproxy e PaKChoiS
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
--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.
"nghttp2" é uma implementação de "HTTP/2" e do algoritmo de compressão de cabeçalho dele, "HPACK".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/nghttp2/nghttp2/releases/download/v1.64.0/nghttp2-1.64.0.tar.xz
Soma de verificação MD5 da transferência: 0cf8f819f4b717de7dde9f8164d0b466
Tamanho da transferência: 1,6 MB
Espaço em disco estimado exigido: 19 MB
Tempo de construção estimado: menos que 0,1 UPC
Os seguintes são usados somente se construir o pacote completo em vez de somente as bibliotecas principais: Boost-1.87.0, c-ares-1.34.4, cython-3.0.12, jansson-2.14, libevent-2.1.12, sphinx-8.2.1, jemalloc, libev, mruby e Spdylay.
Instale o "nghttp2" executando os seguintes comandos:
./configure --prefix=/usr \ --disable-static \ --enable-lib-only \ --docdir=/usr/share/doc/nghttp2-1.64.0 && make
Para testar os resultados, emita: make check.
Agora, como o(a) usuário(a) "root
":
make install
--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".
O pacote "rpcsvc-proto" contém os arquivos e cabeçalhos do protocolo "rcpsvc", anteriormente incluídos na "glibc", que não estão incluídos na substituição "libtirpc-1.3.6", junto com o aplicativo "rpcgen".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/thkukuk/rpcsvc-proto/releases/download/v1.4.4/rpcsvc-proto-1.4.4.tar.xz
Soma de verificação MD5 da transferência: bf908de360308d909e9cc469402ff2ef
Tamanho da transferência: 168 KB
Espaço em disco estimado exigido: 2,2 MB
Tempo de construção estimado: menos que 0,1 UPC
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
O pacote "Serf" contém uma biblioteca cliente "HTTP" baseada em "C" construída sobre a biblioteca "Apache Portable Runtime" ("APR"). Ela multiplexa conexões, executando a comunicação de leitura/escrita assincronamente. As cópias e transformações da memória são reduzidas ao mínimo para fornecer operação de alto desempenho.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://archive.apache.org/dist/serf/serf-1.3.10.tar.bz2
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
MIT Kerberos V5-1.21.3 (para suporte GSSAPI)
Instale o "Serf" executando os seguintes comandos:
sed -i "/Append/s:RPATH=libdir,::" SConstruct && sed -i "/Default/s:lib_static,::" SConstruct && sed -i "/Alias/s:install_static,::" SConstruct && scons PREFIX=/usr
Esse pacote não vem com uma suíte de teste funcional.
Agora, como o(a) usuário(a) "root
":
scons PREFIX=/usr install
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.
O pacote "uhttpmock" contém uma biblioteca para simular "APIs" de serviços da "web" que usem "HTTP" ou "HTTPS".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://tecnocode.co.uk/downloads/uhttpmock/uhttpmock-0.11.0.tar.xz
Soma de verificação MD5 da transferência: 214226c73bbe9cd62ba987ce717dfc1e
Tamanho da transferência: 48 KB
Espaço em disco estimado exigido: 1,1 MB
Tempo de construção estimado: menos que 0,1 UPC (com testes)
GLib-2.82.5 (com GObject Introspection) e Vala-0.56.17
Instale o "uhttpmock" executando os seguintes comandos:
mkdir build && cd build && meson setup .. \ --prefix=/usr \ --buildtype=release \ -D gtk_doc=false && ninja
Para testar os resultados, emita: ninja test.
Agora, como o(a) usuário(a) "root
":
ninja install
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
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" é um navegador "WWW" em modo texto e gráfico. Inclui suporte para renderização de tabelas e quadros, realça transferências em segundo plano, consegue exibir cores e tem muitos outros recursos.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): http://links.twibright.com/download/links-2.30.tar.bz2
Soma de verificação MD5 da transferência: dc56041551980c74dd354cd7c2882539
Tamanho da transferência: 6,3 MB
Espaço em disco estimado exigido: 36 MB
Tempo de construção estimado: 0,2 UPC
O modo gráfico exige pelo menos um de GPM-1.20.7 (suporte de mouse para ser usado com um console baseado em framebuffer), SVGAlib, DirectFB e um ambiente gráfico
Para decodificar vários formatos de imagem, o Links consegue utilizar libavif-1.2.0, libpng-1.6.46, libjpeg-turbo-3.0.1, librsvg-2.59.2 e libtiff-4.7.0
Para descomprimir páginas da "web" que estejam comprimidas com o "Brotli", o "Links" consegue utilizar o "Brotli-1.1.0"
Instale o "Links" executando os seguintes comandos:
./configure --prefix=/usr --mandir=/usr/share/man && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) "root
":
make install && install -v -d -m755 /usr/share/doc/links-2.30 && install -v -m644 doc/links_cal/* KEYS BRAILLE_HOWTO \ /usr/share/doc/links-2.30
--enable-graphics
: Essa chave
habilita o suporte para modo gráfico.
"Lynx" é um navegador da "web" baseado em texto.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://invisible-mirror.net/archives/lynx/tarballs/lynx2.9.2.tar.bz2
Soma de verificação MD5 da transferência: 3ce01505e82626ca4d7291d7e649c4c9
Tamanho da transferência: 2,7 MB
Espaço em disco estimado exigido: 25 MB
Tempo de construção estimado: 0,4UPC
GnuTLS-3.8.9 (experimental, para substituir o openssl), libarchive-3.7.7, Zip-3.0, um MTA (que forneça um comando sendmail) e Sharutils-4.15.2 (para o programa uudecode)
Instale o "Lynx" executando os seguintes comandos:
./configure --prefix=/usr \ --sysconfdir=/etc/lynx \ --with-zlib \ --with-bzlib \ --with-ssl \ --with-screen=ncursesw \ --enable-locale-charset \ --datadir=/usr/share/doc/lynx-2.9.2 && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) "root
":
make install-full chgrp -v -R root /usr/share/doc/lynx-2.9.2/lynx_doc
--sysconfdir=/etc/lynx
: Esse
parâmetro é usado para que os arquivos de configuração
estejam localizados em /etc/lynx
em vez de /usr/etc
.
--datadir=/usr/share/doc/lynx-2.9.2
:
Esse parâmetro é usado para que os arquivos da documentação
sejam instalados em /usr/share/doc/lynx-2.9.2
em vez de
/usr/share/lynx_{doc,help}
.
--with-zlib
: Isso
habilita o suporte para vincular a "libz
" no "Lynx".
--with-bzlib
: Isso
habilita o suporte para vincular a "libbz2
" no "Lynx".
--with-ssl
: Isso
habilita o suporte para vincular a "SSL" no "Lynx".
--with-screen=ncursesw
: Essa
chave habilita o uso do suporte avançado a caracteres largos
presente na biblioteca do sistema "NCurses". Isso é necessário para a
exibição adequada de caracteres e quebra de linha em
localidades multi byte.
--enable-locale-charset
: Essa
chave permite que o "Lynx"
deduza a codificação de caracteres adequada para a saída
gerada de terminal a partir do local atual. Uma etapa de
configuração ainda é necessária (veja-se abaixo), mas
diferentemente da situação sem essa chave, a etapa de
configuração se torna a mesma para todos(as) os(as)
usuários(as) (sem a chave é preciso especificar
explicitamente o conjunto de caracteres de exibição). Isso é
importante para ambientes, como um "LiveCD", onde a
quantidade de etapas específicas de configuração do sistema
tem de ser reduzida ao mínimo.
--enable-ipv6
: Essa chave permite
que o "Lynx" use "IPv6",
juntamente com "IPv4". Use-a se o teu "ISP" fornecer uma
configuração de "IPv6".
--enable-nls
: Essa chave permite
que o "Lynx" imprima
mensagens traduzidas (como perguntas relativas a "cookies" e
certificados "SSL").
--with-gnutls
: Isso habilita o
suporte experimental para vincular o "GnuTLS" no "Lynx". Remova a chave "--with-ssl
" se quiser usar o
"GnuTLS".
make install-full: Além da instalação padrão, esse alvo instala a documentação e os arquivos de ajuda.
chgrp -v -R root /usr/share/doc/lynx-2.9.2/lynx_doc : Esse comando corrige a propriedade imprópria do grupo dos arquivos de documentação instalados.
A maneira correta de obter o conjunto de caracteres de
exibição é a de examinar a localidade atual. Entretanto, o
"Lynx" não faz isso por
padrão. Como o(a) usuário(a) "root
", mude essa configuração:
sed -e '/#LOCALE/ a LOCALE_CHARSET:TRUE' \ -i /etc/lynx/lynx.cfg
O editor integrado no "Lynx"
Quebra Caracteres Multi Byte. Esse problema se
manifesta em localidades multi byte, por exemplo, quando a
tecla "Backspace" não apaga caracteres não "ASCII"
corretamente e quando dados incorretos são enviados para a
rede de intercomunicação quando se edita o conteúdo de
áreas de texto. A única solução para esse problema é a de
configurar o "Lynx" para
usar um editor externo (ligado à combinação de teclas
“Ctrl+X
e” por padrão). Ainda como o(a) usuário(a)
"root
":
sed -e '/#DEFAULT_ED/ a DEFAULT_EDITOR:vi' \ -i /etc/lynx/lynx.cfg
Lynx lida com os seguintes
valores da opção DEFAULT_EDITOR especialmente adicionando
argumentos de posicionamento do cursor: emacs
, jed
,
jmacs
, joe
, jove
,
jpico
, jstar
, nano
,
pico
, rjoe
, vi
(mas
não vim
: para a finalidade de
posicionar o cursor no Vim-9.1.1166, configure essa opção como
vi
).
Por padrão, o "Lynx" não
salva "cookies" entre sessões. Novamente como o(a)
usuário(a) "root
", mude
essa configuração:
sed -e '/#PERSIST/ a PERSISTENT_COOKIES:TRUE' \ -i /etc/lynx/lynx.cfg
Muitas outras configurações abrangentes a todo o sistema,
como "proxies", também conseguem ser configuradas no
arquivo "/etc/lynx/lynx.cfg
".
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").
O pacote "Fetchmail" contém um aplicativo de recuperação de mensagem. Ele recupera mensagens a partir de servidores remotos de mensagem e as encaminha para o sistema de entrega da máquina local (cliente), de forma que então possam ser lidas por agentes normais usuários de mensagem.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://downloads.sourceforge.net/fetchmail/fetchmail-6.5.2.tar.xz
Soma de verificação MD5 da transferência: c2fa268271f44f4991e6a87804c90211
Tamanho da transferência: 1,1 MB
Espaço em disco estimado exigido: 11 MB incluindo testes
Tempo de construção estimado: 0,1 UPC (incluindo testes)
um "MDA" local (Procmail-3.24)
MIT Kerberos V5-1.21.3 e libgssapi
Python-3.13.2, construído depois do Tk-8.6.16, com o pacote "py-future"
Crie um(a) usuário(a) dedicado(a) para o aplicativo
"fetchmail". Emita os seguintes comandos como o(a) usuário(a)
"root
":
useradd -c "Usuário(a) Fetchmail" -d /dev/null -g nogroup \ -s /bin/false -u 38 fetchmail
Instale o "Fetchmail" executando os seguintes comandos:
./configure --prefix=/usr && make
Para testar os resultados, emita: make check.
Agora, como o(a) usuário(a) "root
":
make install && chown -v fetchmail:nogroup /usr/bin/fetchmail
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".
O pacote "Heirloom mailx" (anteriormente conhecido como o pacote "Nail") contém o "mailx", um "Mail User Agent" de linha de comando derivado do "Berkeley Mail". Ele é destinado a fornecer a funcionalidade do comando "POSIX" "mailx" com suporte adicional para mensagens "MIME", "IMAP" (incluindo "cache"), "POP3", "SMTP", "S/MIME", encadeamento/classificação de mensagens, pontuação e filtragem. "Heirloom mailx" é especialmente útil para escrever conjuntos de comandos sequenciais e processamento em lote.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://anduin.linuxfromscratch.org/BLFS/mailx/heirloom-mailx_12.5.orig.tar.gz
Soma de verificação MD5 da transferência: 29a6033ef1412824d02eb9d9213cb1f2
Tamanho da transferência: 317 KB
Espaço em disco estimado exigido: 3,2 MB
Tempo de construção estimado: menos que 0,1 UPC
nss-3.108, MIT Kerberos V5-1.21.3 (para autenticação "IMAP" "GSSAPI") e um MTA
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
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
".
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
O pacote "Mutt" contém um "Mail User Agent". Isso é útil para ler, escrever, responder, salvar e deletar tua mensagem eletrônica.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://bitbucket.org/mutt/mutt/downloads/mutt-2.2.14.tar.gz
Soma de verificação MD5 da transferência: 8794c4d68a4a147e454936a242ea6a9e
Tamanho da transferência: 5,3 MB
Espaço em disco estimado exigido: 36 MB
Tempo de construção estimado: 0,2UPC
Lynx-2.9.2 ou Links-2.30 (ou W3m ou ELinks) - por favor, leia-se a Observação.
Aspell-0.60.8.1, Cyrus SASL-2.1.28, DocBook-utils-0.6.14, GDB-16.2, GnuPG-2.4.7, GnuTLS-3.8.9, GPGME-1.24.2, libidn-1.42, MIT Kerberos V5-1.21.3, um MTA (que forneça um comando sendmail), slang-2.3.3, SQLite-3.49.1, libgssapi, Mixmaster, QDBM ou Tokyo Cabinet
Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/mutt
O "Mutt" vem com uma versão "HTML" do manual dele, mas a versão em texto não mais é fornecida porque diferenças na formatação de diferentes navegadores de texto em comparação com a versão enviada causaram reclamações. Para obter um arquivo de texto, os seguintes são usados em ordem de preferência: "lynx" com "overstriking" ("backspaces") para ênfase, "w3m" ou "elinks": os dois últimos aparentemente fornecem texto simples. O texto simples é geralmente preferido, a menos que se leia o manual "HTML", de forma que as instruções abaixo usam o "lynx" se disponível, ou então o "links" para produzir texto simples.
Mutt exige um grupo chamado
mail
. Você pode adicionar
esse grupo, se ele não existir, com este comando (como o(a)
usuário(a) root
):
groupadd -g 34 mail
Se não instalou um "MTA",
[então] você precisa modificar a titularidade da propriedade
de "/var/mail
" com este
comando:
chgrp -v mail /var/mail
Instale o "Mutt" executando os seguintes comandos:
Para garantir que um manual de texto simples seja criado ao usar o "lynx" ou, caso contrário, para usar o "links" para produzi-lo (em vez do "elinks"), execute o seguinte comando:
sed -e 's/ -with_backspaces//' \ -e 's/elinks/links/' \ -e 's/-no-numbering -no-references//' \ -i doc/Makefile.in
Agora configure e construa o aplicativo:
./configure --prefix=/usr \ --sysconfdir=/etc \ --with-docdir=/usr/share/doc/mutt-2.2.14 \ --with-ssl \ --enable-external-dotlock \ --enable-pop \ --enable-imap \ --enable-hcache \ --enable-sidebar && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) "root
":
make install
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.
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".
Nenhuma mudança nesses arquivos é necessária para começar a
usar o "Mutt". Quando você
estiver pronto(a) para fazer mudanças, a página de manual
do "muttrc
" é um bom ponto de
partida.
Para a finalidade de utilizar o "GnuPG", use o seguinte comando:
cat /usr/share/doc/mutt-2.2.14/samples/gpg.rc >> ~/.muttrc
é um conjunto de comandos sequenciais que mostra onde informar defeitos |
|
é um "Mail User Agent" ("MUA") que te habilita ler, escrever e deletar teu mensagem eletrônica |
|
implementa o bloqueio de arquivo de "spool" de mensagem |
|
é um conjunto de comandos sequenciais idêntico ao "flea" |
|
prepara uma linha de comando para os utilitários do "GnuPG-2.4.7" |
|
é um despejador de chaveiro para o "PGP". Não é necessário para o "GnuPG-2.4.7" |
|
gerencia um armazenamento de chaves para certificados "S/MIME" |
O pacote "Procmail" contém um processador autônomo de mensagem. Isso é útil para filtrar e classificar as mensagens recebidas.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/BuGlessRB/procmail/archive/v3.24/procmail-3.24.tar.gz
Soma de verificação MD5 da transferência: e38b8739e5c6400e3586c5fd9810c1e0
Tamanho da transferência: 296 KB
Espaço em disco estimado exigido: 2,1 MB
Tempo de construção estimado: menos que 0,1 UPC
Um "MTA" que instale "sendmail"
Esse pacote não vem com uma suíte de teste.
Instale o "Procmail"
executando os seguintes comandos como o(a) usuário(a)
"root
":
patch -Np1 -i ../procmail-3.24-consolidated_fixes-1.patch && make LOCKINGTEST=/tmp MANDIR=/usr/share/man install && make install-suid
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.
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/.
é um filtro que consegue ser usado para formatar mensagens no formato "mailbox" |
|
é um utilitário que consegue bloquear um arquivo para uso único interativamente ou em um conjunto de comandos sequenciais |
|
imprime um informe resumido das mensagens que tenham sido filtradas pelo "procmail" desde a última vez que o "mailstat" foi executado |
|
é um processador autônomo de mensagem. Desempenha todas as funções de um "Mail Delivery Agent" ("MDA") |
Balsa-2.6.4 é um cliente de mensagem baseado em "GTK2".
seamonkey-2.53.20 inclui um cliente de mensagem e um leitor de notícias na instalação dele.
Thunderbird-128.7.1esr é um cliente de mensagem/notícias baseado na base do código do "Mozilla".
Evolution-3.54.3 é um cliente de mensagens e organizador originário da área de trabalho GNOME.
Os servidores principais são os aplicativos que fornecem conteúdo ou serviços para os(as) usuários(as) ou outros aplicativos.
O pacote "Apache HTTPD" contém um servidor "HTTP" de fonte aberto. Ele é útil para criar sítios "web" locais de intranet ou executar grandes operações de serviço "web".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://archive.apache.org/dist/httpd/httpd-2.4.63.tar.bz2
Soma de verificação MD5 da transferência: 8b5ee2a61d569a3eacec5778e7f20e13
Tamanho da transferência: 7,2 MB
Espaço em disco estimado exigido: 88 MB
Tempo de construção estimado: 0,3 UPC (Usando paralelismo=4)
Brotli-1.1.0, Doxygen-1.13.2, jansson-2.14, libxml2-2.13.6, Lua-5.4.7, Lynx-2.9.2 ou Links-2.30 ou ELinks, nghttp2-1.64.0, OpenLDAP-2.6.9 (Apr-Util-1.6.3 precisa ser instalado com suporte ldap), rsync-3.4.1, Berkeley DB (obsoleto) e Distcache
Por motivos de segurança, executar o servidor como um(a)
usuário(a) e grupo sem privilégios é fortemente encorajado.
Crie o seguinte grupo e usuário(a) usando os seguintes
comandos como "root
":
groupadd -g 25 apache && useradd -c "Servidor Apache" -d /srv/www -g apache \ -s /bin/false -u 25 apache
Construa e instale o "Apache HTTPD" executando os seguintes comandos:
patch -Np1 -i ../httpd-2.4.63-blfs_layout-1.patch && sed '/dir.*CFG_PREFIX/s@^@#@' -i support/apxs.in && sed -e '/HTTPD_ROOT/s:${ap_prefix}:/etc/httpd:' \ -e '/SERVER_CONFIG_FILE/s:${rel_sysconfdir}/::' \ -e '/AP_TYPES_CONFIG_FILE/s:${rel_sysconfdir}/::' \ -i configure && sed -e '/encoding.h/a # include <libxml/xmlstring.h>' \ -i modules/filters/mod_xml2enc.c && ./configure --enable-authnz-fcgi \ --enable-layout=BLFS \ --enable-mods-shared="all cgi" \ --enable-mpms-shared=all \ --enable-suexec=shared \ --with-apr=/usr/bin/apr-1-config \ --with-apr-util=/usr/bin/apu-1-config \ --with-suexec-bin=/usr/lib/httpd/suexec \ --with-suexec-caller=apache \ --with-suexec-docroot=/srv/www \ --with-suexec-logfile=/var/log/httpd/suexec.log \ --with-suexec-uidmin=100 \ --with-suexec-userdir=public_html && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) "root
":
make install && mv -v /usr/sbin/suexec /usr/lib/httpd/suexec && chgrp apache /usr/lib/httpd/suexec && chmod 4754 /usr/lib/httpd/suexec && chown -v -R apache:apache /srv/www
sed '/dir.*CFG_PREFIX/s@^@#@'...: Força o utilitário "apxs" a usar nomes absolutos de caminho para módulos, quando instruído a fazê-lo.
sed -e '/HTTPD_ROOT/s ...: Corrige alguns caminhos.
sed -e '/encoding.h/a ...; Corrigir construção contra a libxml-2.12.x.
--enable-authnz-fcgi
:
Construa autenticação e autorização baseada no autorizador
"FastCGI" (módulo CGI rápido "mod_authnz_fcgi.so").
--enable-mods-shared="all
cgi"
: Os módulos deveriam ser compilados e usados
como "Dynamic Shared Objects" ("DSOs") de forma que possam
ser incluídos e excluídos a partir do servidor usando as
diretivas de configuração de tempo de execução.
--enable-mpms-shared=all
: Essa
chave garante que todos os "Multi Processing Modules" ("MPM")
sejam construídos como "Dynamic Shared Objects" ("DSOs"), de
forma que o(a) usuário(a) consiga escolher qual usar em tempo
de execução.
--enable-suexec
: Essa
chave habilita a construção do módulo "suEXEC" do
"Apache" que pode ser usado
para permitir que os(as) usuários(as) executem conjuntos de
comandos sequenciais "CGI" e "SSI" sob "IDs" de usuário(a)
diferentes do "ID" de usuário(a) do servidor web chamante.
--with-suexec-*
:
Essas chaves controlam o comportamento do módulo "suEXEC",
tais como a raiz padrão do documento, "UID" mínimo que pode
ser usado para executar o conjunto de comandos sequenciais
sob o "suEXEC". Por favor, observe que, com "UID" mínimo de
100, você não consegue executar conjuntos de comandos
sequenciais "CGI" ou "SSI" sob o s"uEXEC" como o(a)
usuário(a) "apache
".
...
/usr/lib/httpd/suexec: Esses comandos colocam
o envólucro "suexec" no local
apropriado, já que ele não se destina a ser executado
diretamente. Eles também ajustam as permissões adequadas do
binário, tornando-o "setgid" do "apache
".
chown -R apache:apache
/srv/www: Por padrão, o processo de
instalação instala arquivos (documentação, mensagens de erro,
ícones padrão, etc.) com a titularidade de propriedade do(a)
usuário(a) que extraiu os arquivos a partir do arquivo "tar".
Se quiser mudar a titularidade de propriedade para outro(a)
usuário(a), [então] você deveria fazê-lo neste ponto. O único
requisito é o de que os diretórios de documentos precisam ser
acessíveis pelo processo "httpd" com permissões
("r-x") e os arquivos precisam ser legíveis ("r--") pelo(a)
usuário(a) "apache
".
Veja-se file:///usr/share/httpd/manual/configuring.html para instruções detalhadas relativas a personalizar o teu arquivo de configuração do servidor de "HTTP" "Apache".
Não existe razão, pelo menos para sítios voltados para a Internet, para não usar encriptação SSL. Configurar um sítio seguro não custa nada, exceto instalar uma pequena ferramenta adicional e alguns minutos de trabalho de configuração. Use esta diretriz em https://wiki.linuxfromscratch.org/blfs/wiki/Securing_a_website para criar certificados aceitos mundialmente e renová-los regularmente.
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-20241211":
make install-httpd
é uma ferramenta para avaliar comparativamente o teu servidor de "HTTP" "Apache" |
|
é 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" |
|
é uma ferramenta para construir e instalar módulos de extensão para o servidor de "HTTP" "Apache" |
|
é 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 |
|
é 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" |
|
é uma ferramenta para iniciar um aplicativo "FastCGI" |
|
é usado para limpar o "cache" do disco |
|
é usado para manipular as bases de dados de senha "DBM" |
|
é 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" |
|
é 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" |
|
é o aplicativo servidor de "HTTP" "Apache" |
|
é usado para gerar arquivos "DBM" a partir de texto, para uso no "RewriteMap" |
|
é um aplicativo de pós-processamento para resolver endereços "IP" nos arquivos de registro de acesso do "Apache" |
|
é um aplicativo simples para uso em conjunto com o recurso de arquivo de registro canalizado do "Apache" |
|
permite que os(as) usuários(as) executem aplicativos "CGI" e "SSI" como um(a) usuário(a) diferente |
O pacote BIND fornece um servidor DNS e utilitários clientes. Se você estiver interessado(a) somente nos utilitários, [então] consulte Utilitários BIND-9.20.6.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://ftp.isc.org/isc/bind9/9.20.6/bind-9.20.6.tar.xz
Soma de verificação MD5 da transferência: 193d9dad97f1fee3127eed7ccd93153f
Tamanho da transferência: 5,4 MB
Espaço em disco estimado exigido: 137 MB (22 MB instalado)
Tempo de construção estimado: 0,4 UPC (com paralelismo=4; cerca de 40 minutos, um tanto independente do processador, para executar a suíte completa de teste)
JSON-C-0.18, libcap-2.73 com PAM e nghttp2-1.64.0
cURL-8.12.1, libidn2-2.3.7, libxml2-2.13.6, lmdb-0.9.31, MIT Kerberos V5-1.21.3, pytest-8.3.4, sphinx-8.2.1 (exigido para construir documentação), cmocka, geoip, jemalloc, w3m
Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/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:
Se o "IPv6" não estiver habilitado no núcleo, [então] existirão diversas mensagens de erro: "RTNETLINK answers: Operation not permitted". Essas mensagens não afetam os testes.
bin/tests/system/ifconfig.sh up
A suíte de teste pode indicar alguns testes ignorados,
dependendo de quais opções de configuração forem usadas.
Alguns testes são marcados com “UNTESTED” ou até
mesmo falham se Net-DNS-1.50 não estiver instalado. Um
teste, dnssec
, é conhecido por
falhar. Os testes exigem o módulo Python hypothesis,
que não está no BLFS. Para contornar isso, as instruções
abaixo criam um ambiente virtual Python e, em seguida,
instalam o módulo nele antes de executar os testes. Para
executar os testes, como um(a) usuário(a) sem privilégios,
execute:
python3 -m venv --system-site-packages testenv && source testenv/bin/activate && pip3 install hypothesis && make -k check && deactivate
Novamente como "root
", limpe
as interfaces de teste:
bin/tests/system/ifconfig.sh down
Finalmente, instale o pacote como o(a) usuário(a)
"root
":
make install
--sysconfdir=/etc
:
Esse parâmetro força o "BIND" a procurar arquivos de
configuração em "/etc
" em vez
de "/usr/etc
".
--with-libidn2
: Esse parâmetro
habilita o suporte a "Internationalized Domain Names in
Applications" ("IDNA2008").
--enable-fetchlimit
: Use essa
opção se você quiser estar apto(a) a limitar a taxa de
consultas recursivas do cliente. Isso possivelmente seja útil
em servidores que recebem um grande número de consultas.
--disable-doh
: Use essa opção se
você não tiver nghttp2-1.64.0 instalado e não precisar
de suporte para DNS sobre HTTPS.
--disable-static
:
Essa chave impede a instalação das versões estáticas das
bibliotecas.
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:
Deve-se ter cuidado para garantir que não existam espaços iniciais neste arquivo.
cat > /srv/named/etc/named/root.hints << "EOF"
. 6D IN NS A.ROOT-SERVERS.NET.
. 6D IN NS B.ROOT-SERVERS.NET.
. 6D IN NS C.ROOT-SERVERS.NET.
. 6D IN NS D.ROOT-SERVERS.NET.
. 6D IN NS E.ROOT-SERVERS.NET.
. 6D IN NS F.ROOT-SERVERS.NET.
. 6D IN NS G.ROOT-SERVERS.NET.
. 6D IN NS H.ROOT-SERVERS.NET.
. 6D IN NS I.ROOT-SERVERS.NET.
. 6D IN NS J.ROOT-SERVERS.NET.
. 6D IN NS K.ROOT-SERVERS.NET.
. 6D IN NS L.ROOT-SERVERS.NET.
. 6D IN NS M.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET. 6D IN A 198.41.0.4
A.ROOT-SERVERS.NET. 6D IN AAAA 2001:503:ba3e::2:30
B.ROOT-SERVERS.NET. 6D IN A 170.247.170.2
B.ROOT-SERVERS.NET. 6D IN AAAA 2801:1b8:10::b
C.ROOT-SERVERS.NET. 6D IN A 192.33.4.12
C.ROOT-SERVERS.NET. 6D IN AAAA 2001:500:2::c
D.ROOT-SERVERS.NET. 6D IN A 199.7.91.13
D.ROOT-SERVERS.NET. 6D IN AAAA 2001:500:2d::d
E.ROOT-SERVERS.NET. 6D IN A 192.203.230.10
E.ROOT-SERVERS.NET. 6D IN AAAA 2001:500:a8::e
F.ROOT-SERVERS.NET. 6D IN A 192.5.5.241
F.ROOT-SERVERS.NET. 6D IN AAAA 2001:500:2f::f
G.ROOT-SERVERS.NET. 6D IN A 192.112.36.4
G.ROOT-SERVERS.NET. 6D IN AAAA 2001:500:12::d0d
H.ROOT-SERVERS.NET. 6D IN A 198.97.190.53
H.ROOT-SERVERS.NET. 6D IN AAAA 2001:500:1::53
I.ROOT-SERVERS.NET. 6D IN A 192.36.148.17
I.ROOT-SERVERS.NET. 6D IN AAAA 2001:7fe::53
J.ROOT-SERVERS.NET. 6D IN A 192.58.128.30
J.ROOT-SERVERS.NET. 6D IN AAAA 2001:503:c27::2:30
K.ROOT-SERVERS.NET. 6D IN A 193.0.14.129
K.ROOT-SERVERS.NET. 6D IN AAAA 2001:7fd::1
L.ROOT-SERVERS.NET. 6D IN A 199.7.83.42
L.ROOT-SERVERS.NET. 6D IN AAAA 2001:500:9f::42
M.ROOT-SERVERS.NET. 6D IN A 202.12.27.33
M.ROOT-SERVERS.NET. 6D IN AAAA 2001:dc3::35
EOF
O arquivo "root.hints
" é uma
lista de servidores raiz de nomes. Esse arquivo precisa ser
atualizado periodicamente com o utilitário "dig". Uma cópia atual do
"root.hints" pode ser obtida a partir de https://www.internic.net/domain/named.root.
Para detalhes, consulte-se o "Manual de Referência do(a)
Administrador(a) do BIND 9".
Crie ou modifique o "resolv.conf
" para usar o novo servidor de
nomes com os seguintes comandos:
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
Para iniciar o servidor "DNS" na inicialização, instale
a unidade "named.service
" inclusa no pacote
"" "blfs-systemd-units-20241211":
make install-named
Agora inicie o "BIND" com o seguinte comando:
systemctl start named
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.
A documentação ARM (não confunda com a arquitetura do processador) está incluída no pacote do fonte. A documentação está no formato .rst, o que significa que ela pode ser convertida em formatos legíveis por humanos se o sphinx-8.2.1 estiver instalado.
Quando o BIND estiver configurado, especialmente se ele for operar em um cenário da vida real, é altamente recomendado consultar a documentação ARM. O ISC fornece um conjunto atualizado de excelente documentação junto com cada lançamento, de forma que possa ser facilmente visualizada e (ou) baixada – então, não existe desculpa para não ler os documentos. Os formatos que o ISC fornece são epub e HTML em https://downloads.isc.org/isc/bind9/9.20.6/doc/arm/.
traduz endereços "IP" para os nomes "ARPA" correspondentes |
|
gera uma chave para uso pelo "nsupdate" e pelo "named" |
|
é uma nova ferramenta de depuração que é uma sucessora do "dig" |
|
interroga servidores "DNS" |
|
muda os registros "DS" para uma zona filha baseado em "CDS"/"CDNSKEY" |
|
gera o Registro de Recurso ("RR") do "Delegation Signer" ("DS") |
|
lê um registro público "DNSKEY" e gera um par de arquivos ".key"/".private" |
|
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" |
|
garante a cobertura correta "DNSKEY" baseada em uma política definida |
|
cria arquivos de resposta de chave assinada (SKR) para configurações KSK offline |
|
configura o bit "REVOKED" em uma chave "DNSSEC" |
|
configura os metadados de hora da chave para uma chave "DNSSEC" |
|
gera versões assinadas de arquivos de zona |
|
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 |
|
é um utilitário para pesquisas de "DNS" |
|
é uma versão do "dig" que permite múltiplas consultas ao mesmo tempo |
|
é o processo de segundo plano do servidor de nomes |
|
verifica a sintaxe dos arquivos " |
|
verifica a validade do arquivo de zona |
|
é semelhante ao "named-checkzone", mas sempre despeja o conteúdo da zona em um arquivo especificado em um formato especificado |
|
imprime o diário da zona em formato legível por humanos(as) |
|
lê um registro individual de recurso "DNS" a partir da entrada padrão e verifica se ele está sintaticamente correto |
|
converte uma base de dados "NZD" para o formato de texto "NZF" |
|
gera um resumo "NSEC3" baseado em um conjunto de parâmetros "NSEC3" |
|
é um aplicativo usado para consultar servidores de nomes de domínio da Internet |
|
é usado para submeter solicitações de atualização de "DNS" |
|
controla a operação do "BIND" |
|
gera arquivos " |
|
é um link simbólico para o "ddns-confgen" |
O pacote ISC Kea contém os aplicativos de servidor para DHCP. É o sucessor do antigo servidor DHCP do ISC, que está em fim de vida desde dezembro de 2022.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://downloads.isc.org/isc/kea/2.6.1/kea-2.6.1.tar.gz
Soma de verificação MD5 da transferência: 5f4fe79ed29f5ff2802e2961d1827b25
Tamanho da transferência: 9,9 MB
Espaço em disco estimado exigido: 1,5 GB (332 MB instalado; adicionar 4 GB para testes)
Tempo de construção estimado: 4,1 UPC (com paralelismo=4; adicionar 12 UPC para testes)
Boost-1.87.0 e log4cplus-2.1.2
MIT Kerberos V5-1.21.3, Valgrind-3.24.0; para documentação: Doxygen-1.13.2, Graphviz-12.2.1 e sphinx_rtd_theme-3.0.2; para testes: GoogleTest
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]
Primeiro, aplique um remendo que corrige um problema com a versão mais recente do boost:
patch -Np1 -i ../kea-2.6.1-fix_boost_1_87-1.patch
Instale o Servidor DHCP Kea do ISC executando os seguintes comandos:
./configure --prefix=/usr \ --sysconfdir=/etc \ --localstatedir=/var \ --enable-shell \ --with-openssl \ --disable-static \ --docdir=/usr/share/doc/kea-2.6.1 && make
Para testar os resultados, você precisa ter instalado o
GoogleTest e mantido o fonte dele. Você também deveria ter
passado --with-gtest-source=/caminho/para/diretório_fonte/googletest
para configure
acima. Execute os testes com make check. Três testes na
suíte TLSTest são conhecidos por falharem.
Para instalar a suíte Servidor DHCP
Kea do ISC, emita os seguintes comandos como o(a)
usuário(a) root
:
make -j1 install
--enable-shell
:
Permite construir kea-shell, uma interface de
linha de comando para o agente de controle.
--with-openssl
:
Permite usar OpenSSL para comunicação com o agente de
controle e para atualizações de DNS.
--disable-static
:
Essa chave impede a instalação das versões estáticas das
bibliotecas.
--with-pgsql
ou --with-mysql
: Kea
do ISC consegue armazenar as concessões em uma base de
dados. Isso pode ser útil em ambientes grandes executando um
cluster de servidores DHCP. Usar a estrutura de retaguarda
memfile (que é um
arquivo CSV armazenado localmente) é possível de qualquer
maneira.
--enable-generate-docs
: Se a
documentação for para ser reconstruída, adicione essa opção.
Diversas dependências precisam estar instaladas para gerar a
documentação.
make -j1 install: O ISC não recomenda nenhuma forma de paralelismo ou opções de tarefa de servidor ao fazer a instalação.
O suporte de IPv4, IPv6 e DDNS foi dividido em servidores separados que executam independentemente um do outro. Cada um deles tem o próprio arquivo dele de configuração.
Consulte-se o Manual de Referência do(a) Administrador(a) do Kea para informações detalhadas acerca da configuração do Kea do ISC, pois ele é um sistema bastante capaz. A configuração mostrada abaixo é o mínimo para colocar um servidor DHCP em execução, mas já inclui configuração para DDNS (Dynamic DNS). Essa configuração poderia estar funcionando para redes de intercomunicação pequenas com poucos clientes e baixo tráfego. Para instalações maiores com milhares de clientes, o Kea do ISC pode ser configurado para usar bases de dados (mariadb ou postgresql) para armazenar as concessões e construir um cluster com múltiplos nós. Ele pode ser integrado ao Stork do ISC, que é um painel de gerenciamento para o Kea do ISC.
Se você quiser iniciar o Servidor DHCP na inicialização,
instale a unidade kea-dhcpd.service
incluída no pacote
blfs-systemd-units-20241211:
make install-kea-dhcpd
/etc/kea/kea-ctrl-agent.conf
,
/etc/kea/kea-dhcp4.conf
,
/etc/kea/kea-dhcp6.conf
e
/etc/kea/kea-dhcp-ddns.conf
Quatro unidades de serviço são usadas para iniciar vários processos de segundo plano fornecidos pelo Kea:
Agente de Controle
O Agente de Controle é um processo de segundo plano que permite (re)configuração do serviço DHCP do Kea via API do REST. Execute systemctl enable kea-ctrl-agent se esse processo de segundo plano for necessário.
Servidor DHCP de IPv4
Esse processo de segundo plano lida com solicitações de endereços IPv4. Execute systemctl enable kea-dhcp4-server para tê-lo iniciado pelo systemd.
Servidor DHCP de IPv6
Esse processo de segundo plano lida com solicitações de endereços IPv6. Execute systemctl enable kea-dhcp6-server para tê-lo iniciado pelo systemd.
DNS Dinâmico
Esse processo de segundo plano é usado para atualizar um servidor DNS dinamicamente quando Kea atribui um endereço IP para um dispositivo. Execute systemctl enable kea-ddns-server para tê-lo iniciado pelo systemd.
O serviço Netconf não é instalado porque as dependências exigidas não são cobertas pelo atual livro do BLFS.
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
Um arquivo de configuração de amostra é criado em
/etc/kea/kea-dhcp4.conf
.
Ajuste o arquivo para atender às tuas necessidades ou
sobrescreva-o executando o seguinte comando como o(a)
usuário(a) root
(você
precisará editar esse arquivo de qualquer maneira: pelo
menos o campo interfaces, o campo ddns-qualifying-suffix e quase
todos os campos em Subnet4:
cat > /etc/kea/kea-dhcp4.conf << "EOF"
// Begin /etc/kea/kea-dhcp4.conf
{
"Dhcp4": {
// Add names of your network interfaces to listen on.
"interfaces-config": {
"interfaces": [ "eth0", "eth2" ]
},
"control-socket": {
"socket-type": "unix",
"socket-name": "/run/kea4-ctrl-socket"
},
"lease-database": {
"type": "memfile",
"lfc-interval": 3600
},
"expired-leases-processing": {
"reclaim-timer-wait-time": 10,
"flush-reclaimed-timer-wait-time": 25,
"hold-reclaimed-time": 3600,
"max-reclaim-leases": 100,
"max-reclaim-time": 250,
"unwarned-reclaim-cycles": 5
},
"renew-timer": 900,
"rebind-timer": 1800,
"valid-lifetime": 3600,
// Enable DDNS - Kea will dynamically update the DNS
"ddns-send-updates" : true,
"ddns-qualifying-suffix": "your.domain.tld",
"dhcp-ddns" : {
"enable-updates": true
},
"subnet4": [
{
"id": 1001, // Each subnet requires a unique numeric id
"subnet": "192.168.56.0/24",
"pools": [ { "pool": "192.168.56.16 - 192.168.56.254" } ],
"option-data": [
{
"name": "domain-name",
"data": "your.domain.tld"
},
{
"name": "domain-name-servers",
"data": "192.168.56.2, 192.168.3.7"
},
{
"name": "domain-search",
"data": "your.domain.tld"
},
{
"name": "routers",
"data": "192.168.56.2"
}
]
}
],
"loggers": [
{
"name": "kea-dhcp4",
"output_options": [
{
"output": "/var/log/kea-dhcp4.log",
"pattern": "%D{%Y-%m-%d %H:%M:%S.%q} %-5p %m\n"
}
],
"severity": "INFO",
"debuglevel": 0
}
]
}
}
// End /etc/kea/kea-dhcp4.conf
EOF
A configuração para IPv6 é semelhante à configuração do
IPv4. O arquivo de configuração é /etc/kea/kea-dhcp6.conf
.
Se existir um servidor BIND-9.20.6 executando, o Kea do ISC poderá atualizar o DNS
quando fornecer um endereço IP para um cliente. Um arquivo
de configuração de amostra é criado em /etc/kea/kea-dhcp-ddns.conf
. Ajuste o
arquivo para atender às tuas necessidades ou sobrescreva-o
executando o seguinte comando como o(a) usuário(a)
root
:
cat > /etc/kea/kea-dhcp-ddns.conf << "EOF"
// Inicia /etc/kea/kea-dhcp-ddns.conf
{
"DhcpDdns": {
"ip-address": "127.0.0.1",
"port": 53001,
"control-socket": {
"socket-type": "unix",
"socket-name": "/run/kea-ddns-ctrl-socket"
},
"tsig-keys": [
{
"name" : "rndc-key",
"algorithm" : "hmac-sha256",
"secret" : "1FU5hD7faYaajQCjSdA54JkTPQxbbPrRnzOKqHcD9cM="
}
],
"forward-ddns" : {
"ddns-domains" : [
{
"name" : "your.domain.tld.",
"key-name": "rndc-key",
"dns-servers" : [
{
"ip-address" : "127.0.0.1",
"port" : 53
}
]
}
]
},
"reverse-ddns" : {
"ddns-domains" : [
{
"name" : "56.168.192.in-addr.arpa.",
"key-name": "rndc-key",
"dns-servers" : [
{
"ip-address" : "127.0.0.1",
"port" : 53
}
]
}
]
},
"loggers": [
{
"name": "kea-dhcp-ddns",
"output_options": [
{
"output": "/var/log/kea-ddns.log",
"pattern": "%D{%Y-%m-%d %H:%M:%S.%q} %-5p %m\n"
}
],
"severity": "INFO",
"debuglevel": 0
}
]
}
}
// Termina /etc/kea/kea-dhcp-ddns.conf
EOF
O valor de secret
é apenas
um exemplo. Gere a chave para tua instalação usando o
comando rndc-confgen
-a ou o comando tsig-keygen, ambos
fornecidos por BIND-9.20.6.
Nessa configuração de exemplo, é presumido que o servidor
DNS executa na mesma máquina que o Kea (acessível via
127.0.0.1
) e que essa
máquina tenha o IP 192.168.56.2
.
Ferramenta para controlar (iniciar/parar) os processos do servidor. |
|
kea-admin é um conjunto de comandos sequenciais de shell que oferece manutenção de base de dados. |
|
Processo de segundo plano que expõe uma interface de controle RESTful para gerenciar servidores Kea. |
|
O processo de segundo plano do servidor que fornece endereços IPv4. |
|
O processo de segundo plano do servidor que fornece endereços IPv6. |
|
O processo de segundo plano do servidor que realiza as atualizações dinâmicas de DNS. |
|
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. |
|
Cliente RESTful para os serviços do Kea do ISC. |
O pacote "ProFTPD" contém um processo de segundo plano "FTP" seguro e altamente configurável. Isso é útil para servir arquivamentos grandes de arquivos em uma rede de intercomunicação.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/proftpd/proftpd/archive/v1.3.8b/proftpd-1.3.8b.tar.gz
Soma de verificação MD5 da transferência: 778cdeeac86e1d26451112bb7d4662af
Tamanho da transferência: 19 MB
Espaço em disco estimado exigido: 66 MB
Tempo de construção estimado: 0,3 UPC
libcap-2.73 com PAM, libssh2-1.11.1, Linux-PAM-1.7.0, MariaDB-11.4.5 ou MySQL, pcre2-10.45, PostgreSQL-17.4 e Net::SSH2
Por motivos de segurança, você deveria instalar o
"ProFTPD" usando um(a)
usuário(a) e grupo sem privilégios. Como o(a) usuário(a)
"root
":
groupadd -g 46 proftpd && useradd -c proftpd -d /srv/ftp -g proftpd \ -s /usr/bin/proftpdshell -u 46 proftpd && install -v -d -m775 -o proftpd -g proftpd /srv/ftp && ln -v -s /usr/bin/false /usr/bin/proftpdshell && echo /usr/bin/proftpdshell >> /etc/shells
Instale o "ProFTPD" como um(a) usuário(a) sem privilégios executando os seguintes comandos:
./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/run && make
Esses pacotes não vem com uma suíte de teste usável.
Agora, como o(a) usuário(a) root
:
make install && install -d -m755 /usr/share/doc/proftpd-1.3.8b && cp -Rv doc/* /usr/share/doc/proftpd-1.3.8b
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.
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.
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.
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
Instale a unidade "proftpd.service
" inclusa no pacote
"" "blfs-systemd-units-20241211":
make install-proftpd
é o processo de segundo plano de "FTP" |
|
mostra o número atual de conexões |
|
é usado para controlar o processo de segundo plano "proftpd" enquanto ele está em execução |
|
é um conjunto de comandos sequenciais "Perl" projetado para criar e gerenciar "AuthUserFiles" e "AuthGroupFiles" no formato correto para o "proftpd" |
|
é um conjunto de comandos sequenciais "Perl" para envio de mensagens eletrônicas baseado no "TransferLog" do "proftpd" |
|
é 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" |
|
fornece uma maneira de limpar o arquivo do placar sob demanda |
|
desliga todos os servidores "proftpd" em uma dada hora |
|
exibe a situação de execução relativa às conexões |
|
mostra informações atuais do processo para cada sessão |
|
é 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 |
"MTAs" são os aplicativos que transportam mensagens de uma máquina para outra. O "MTA" tradicional é o "Sendmail", porém existem várias outras escolhas.
Em adição aos servidores SMTP, também existe um servidor POP/IMAP (Dovecot).
O "Dovecot" é um servidor "Internet Message Access Protocol" ("IMAP") e "Post Office Protocol" ("POP"), escrito principalmente com a segurança em mente. "Dovecot" pretende ser leve, rápido e fácil de configurar, bem como altamente configurável e facilmente extensível com "plug-ins".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.dovecot.org/releases/2.4/dovecot-2.4.0.tar.gz
Soma de verificação MD5 da transferência: 5a0b3aaaf0adc1278d2611ff5f1593cd
Tamanho da transferência: 7,5 MB
Espaço em disco estimado exigido: 253 MB
Tempo de construção estimado: 4,8 UPC
libtirpc-1.3.6 e Linux-PAM-1.7.0
Cyrus SASL-2.1.28, ICU-76.1, libcap-2.73 com PAM, libunwind-1.8.1, Lua-5.4.7, MariaDB-11.4.5 ou MySQL, OpenLDAP-2.6.9, PostgreSQL-17.4, SQLite-3.49.1, Valgrind-3.24.0, xapian-1.4.27, xfsprogs-6.13.0, Cassandra, stemmer e libsodium
Existem mudanças significativas na configuração deste pacote que são exigidas ao atualizar para o Dovecot 2.4.0. Por favor, revise a documentação em Dovecot Upgrade Guide antes de continuar se você estiver atualizando este pacote a partir de uma versão anterior.
Deveria existir usuários(as) e grupos dedicados(as) para
processos sem privilégios do "Dovecot" e para processamento
de "logins" de usuários(as). Emita os seguintes comandos como
o(a) usuário(a) "root
":
groupadd -g 42 dovecot && useradd -c "Usuário(a) sem privilégios do Dovecot" -d /dev/null -u 42 \ -g dovecot -s /bin/false dovecot && groupadd -g 43 dovenull && useradd -c "Usuário(a) de login do Dovecot" -d /dev/null -u 43 \ -g dovenull -s /bin/false dovenull
Instale o "Dovecot" executando os seguintes comandos:
./configure --prefix=/usr \ --sysconfdir=/etc \ --localstatedir=/var \ --with-lua=no \ --docdir=/usr/share/doc/dovecot-2.4.0 \ --disable-static && make
Para testar os resultados, emita "make -k check".
Agora, como o(a) usuário(a) "root
":
make install
--disable-static
:
Essa chave impede a instalação das versões estáticas das
bibliotecas.
--with-ldap
: Essa chave habilita
o suporte a autenticação "OpenLDAP".
--with-pgsql
: Essa chave habilita
o suporte a base de dados "PostgreSQL".
--with-mysql
: Essa chave habilita
o suporte a base de dados "MySQL".
--with-sqlite
: Essa chave
habilita o suporte a base de dados "SQLite".
--with-lua=no
: Essa chave
habilita o suporte ao plugin Lua. Isso inclui um plugin de
notificação de mensagem e envio. O suporte atualmente está
quebrado com Lua 5.4.
A configuração a seguir é uma prova de conceito simples com serviço IMAP usando usuários(as) locais para autenticação e localização de caixa de correio.
mv -v /etc/dovecot/dovecot.conf{,.orig} &&
chmod -v 1777 /var/mail &&
cat > /etc/dovecot/dovecot.conf << "EOF"
# The dovecot configuration requires a minimum version to be set. The server
# will refuse to start if the version set here is older than the version of
# Dovecot installed. This option allows the Dovecot server to set reasonable
# default values based on what version is set here.
dovecot_config_version = 2.4.0
# This option sets the minimum version that is able to read data files from
# the Dovecot server. This is primarily for a cluster which may have several
# different versions of Dovecot installed, but is required for the server to
# run.
dovecot_storage_version = 2.4.0
protocols = imap
ssl = no
# The next line is only needed if you have no IPv6 network interfaces
listen = *
mail_inbox_path = /var/mail/%{user}
mail_driver = mbox
mail_path = ~/Mail
userdb users {
driver = passwd
}
passdb passwords {
driver = pam
}
EOF
A configuração acima também exige que um arquivo de
configuração seja instalado para Linux-PAM para que o
dovecot consiga autenticar usuários(as). Emita o seguinte
comando como o(a) usuário(a) root
para criar o arquivo de
configuração para Linux-PAM:
cat > /etc/pam.d/dovecot << "EOF"
# Begin /etc/pam.d/dovecot
auth include system-auth
account include system-account
password include system-password
# End /etc/pam.d/dovecot
EOF
Você definitivamente vai querer ler a documentação oficial em https://doc.dovecot.org/2.4.0/ se planeja usar o Dovecot em um ambiente de produção.
/usr/lib/dovecot
"
O pacote "Exim" contém um "Mail Transport Agent" escrito pela Universidade de Cambridge, lançado sob a Licença Pública "GNU".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://ftp.exim.org/pub/exim/exim4/exim-4.98.1.tar.xz
Soma de verificação MD5 da transferência: 7465a700b17ce3c01d59d7e0d59be5a1
Tamanho da transferência: 1,9 MB
Espaço em disco estimado exigido: 19 MB
Tempo de construção estimado: 0,1 UPC
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.
libnsl-2.0.1, File-FcntlLock-0.22 e pcre2-10.45
TDB (alternativa ao GDBM, construído no LFS), Cyrus SASL-2.1.28, libidn-1.42, Linux-PAM-1.7.0, MariaDB-11.4.5 ou MySQL, OpenLDAP-2.6.9, GnuTLS-3.8.9, PostgreSQL-17.4, SQLite-3.49.1, um ambiente gráfico, Heimdal GSSAPI, libspf2 e OpenDMARC
Antes de construir o "Exim",
como o(a) usuário(a) "root
",
você deveria criar o grupo e o(a) usuário(a) "exim
" os quais executarão o processo de
segundo plano "exim":
groupadd -g 31 exim && useradd -d /dev/null -c "Processo de Segundo Plano Exim" -g exim -s /bin/false -u 31 exim
Configure o "Exim" com os seguintes comandos:
sed -e 's,^BIN_DIR.*$,BIN_DIRECTORY=/usr/sbin,' \ -e 's,^CONF.*$,CONFIGURE_FILE=/etc/exim.conf,' \ -e 's,^EXIM_USER.*$,EXIM_USER=exim,' \ -e '/# USE_OPENSSL/s,^#,,' src/EDITME > Local/Makefile && printf "USE_GDBM = yes\nDBMLIB = -lgdbm\n" >> Local/Makefile
Se você quiser adicionar suporte ao "Linux PAM", [então] execute também os seguintes comandos:
sed -i '/# SUPPORT_PAM=yes/s,^#,,' Local/Makefile echo "EXTRALIBS=-lpam" >> Local/Makefile
Construa o "Exim" com o seguinte comando:
make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) "root
":
make install && install -v -m644 doc/exim.8 /usr/share/man/man8 && install -vdm 755 /usr/share/doc/exim-4.98.1 && cp -Rv doc/* /usr/share/doc/exim-4.98.1 && ln -sfv exim /usr/sbin/sendmail && install -v -d -m750 -o exim -g exim /var/spool/exim
sed -e ... >
Local/Makefile: A maioria das opções de
configuração do "Exim" é
definida no "Local/Makefile
",
que é criado a partir do arquivo "src/EDITME
". Esse comando especifica o
conjunto mínimo de opções. As descrições das opções estão
listadas abaixo.
printf ... > Local/Makefile: Configurar essas variáveis permite usar GDBM em vez do padrão Berkeley DB. Remova esse comando se você tiver instalado Berkeley DB (obsoleto).
BIN_DIRECTORY=/usr/sbin
: Isso
instala todos os binários e conjuntos de comandos sequenciais
do "Exim" em "/usr/sbin
".
CONFIGURE_FILE=/etc/exim.conf
:
Isso instala o principal arquivo de configuração do
"Exim" em "/etc
".
EXIM_USER=exim
: Isso
informa ao "Exim" que,
depois que o processo de segundo plano não mais precisar de
privilégios de "root
", o
processo precisa transferir o processo de segundo plano para
o(a) usuário(a) "exim
".
USE_OPENSSL
:
descomentar USE_OPENSSL=yes
e
USE_OPNSSL_PC=yes
informa ao
sistema de construção para usar OpenSSL e encontrar o bibliotecas
necessárias com pkg-config.
Descomentar EXIM_MONITOR
: Isso
permite construir o aplicativo monitor do Exim, o qual exige suporte X Window System e é comentado por
padrão.
ln -sfv exim /usr/sbin/sendmail: Cria um link para "sendmail" para aplicativos que precisam dele. O "Exim" aceitará a maioria das opções de linha de comando do "Sendmail".
install -v -m750 -o exim -g
exim /var/spool/exim: Como "/var/spool" é
propriedade do "root" e essa versão do "exim" elimina os
privilégios de "root
"
antecipadamente, para executar como usuário(a) "exim
", ele não consegue criar o diretório
"/var/spool/exim
". Como solução
alternativa, ele é criado manualmente.
Para utilizar alguns ou todos os pacotes de dependências,
você precisará modificar "Local/Makefile
" para incluir as diretivas e
parâmetros apropriadas para vincular bibliotecas adicionais
antes de construir o "Exim".
O "Local/Makefile
" é bastante
comentado com instruções relativas a como fazer isso.
Listadas abaixo estão informações adicionais para te ajudar a
vincular esses pacotes de dependências ou adicionar
funcionalidades adicionais.
Se você deseja construir e instalar a documentação
".info
", [então] consulte
https://exim.org/exim-html-4.98.1/doc/
html/spec_html/ch04.html#SECTinsinfdoc.
Se você deseja construir interfaces do "Exim" para chamar
logiciário de verificação de vírus e de "spam" diretamente a
partir de listas de controle de acesso, [então] descomente o
parâmetro "WITH_CONTENT_SCAN=yes
"
e revise as informações encontradas em
https://exim
.org/exim-html-4.98.1/doc/html/spec_html/ch45.html.
Para usar uma base de dados de estrutura de retaguarda diferente do GDBM, vejam-se as instruções em https://exim.org/exim-html-4.98.1/doc/html/spec_html/ch04.html#SECTdb.
Para funcionalidade "SSL", vejam-se as instruções em https://exim.org/exim-html-4.98.1/doc/html/spec_html/ch04.html#SECTinctlsssl e https://exim.org/exim-html-4.98.1/doc/html/spec_html/ch42.html.
Para a funcionalidade "tcpwrappers", vejam-se as instruções em https://exim.org/exim-html-4.98.1/doc/html/spec_html/ch04.html#SECID27.
Para informações relativas a adicionar mecanismos de autenticação para a construção, vejam-se os capítulos 33—41 de https://exim.org/exim-html-4.98.1/doc/html/spec_html/index.html .
Para informações relativas a vincular o "Linux-PAM", consulte as instruções https://exim.org/exim-html-4.98.1/doc/html/spec_html/ch11.html#SECTexpcond.
Para informações relativas a vincular bibliotecas de mecanismo de base de dados usadas para pesquisas de nome do Exim, vejam-se as instruções em https://exim.org/exim-html-4.98.1/doc/html/ spec_html/ch09.html.
Se você deseja adicionar suporte "Readline" ao "Exim" quando invocado no modo
“expansão de
teste” ("-be
"),
[então] vejam-se as informações na seção "-be
" de
https://exim.org/exim-html-4.98.1/doc/html/spec_html/ch05.html#id2525974
.
Você possivelmente deseje modificar a configuração padrão e
enviar arquivos de registro para o "syslog" em vez do
diretório padrão "/var/spool/exim/log
". Vejam-se as
informações em
https://exim.org/exim-html-4.98.1/doc/html/spec_html/ch-log_files.html.
Muitas informações também podem ser encontradas na Wiki do Exim.
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
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.
Se tiver construído o "Exim" com suporte ao "Linux PAM", [então] você precisa criar um arquivo de configuração "PAM" para fazê-lo funcionar corretamente com o BLFS.
Emita o seguinte comando como o(a) usuário(a) root
para criar o arquivo de
configuração para Linux
PAM:
cat > /etc/pam.d/exim << "EOF"
# Inicia /etc/pam.d/exim
auth include system-auth
account include system-account
session include system-session
# Termina /etc/pam.d/exim
EOF
Para iniciar automaticamente o "exim" na inicialização,
instale a unidade "exim.service
" inclusa no pacote ""
"blfs-systemd-units-20241211":
make install-exim
circula arquivos de registro do "Exim" |
|
pesquisa arquivos de registro do "Exim" |
|
é um link simbólico para o processo de segundo plano "MTA" "exim-4.98.1-2" |
|
é o processo de segundo plano do agente de transporte de mensagens "Exim" |
|
declara se um dado endereço de destinatário a partir de um dado dispositivo é aceitável ou não |
|
cria e reconstrói bases de dados do "Exim" |
|
escreve o conteúdo das bases de dados do "Exim" na saída gerada padrão |
|
modifica dados em bases de dados do "Exim" |
|
atualiza e desatualiza formatos de message-id do Exim em arquivos de spool |
|
tranca um arquivo de caixa de mensagens |
|
converte uma message-id do Exim em um formato legível por humanos |
|
remove registros antigos de bases de dados do "Exim" |
|
gera estatísticas de mensagens a partir de arquivos de registro do "Exim" |
|
consulta tempos de re tentativa do dispositivo remoto |
|
seleciona mensagens baseadas em vários critérios |
|
é um utilitário para listagem seletiva de filas |
|
produz um resumo das mensagens na fila de mensagens |
|
consulta executando processos "Exim" |
|
é 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 |
|
é 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" |
O pacote "Postfix" contém um "Mail Transport Agent" ("MTA"). Isso é útil para enviar mensagem eletrônica para outros(as) usuários(as) da tua máquina anfitriã. Ele também pode ser configurado para ser um servidor central de mensagens para o teu domínio, um agente de retransmissão de mensagens ou simplesmente um agente de entrega de mensagens para o teu Provedor local de Serviços de Internet.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://ghostarchive.org/postfix/postfix-release/official/postfix-3.10.1.tar.gz
Soma de verificação MD5 da transferência: 9ba37162bba6128cb94704888bf77fac
Tamanho da transferência: 4,8 MB
Espaço em disco estimado exigido: 157 MB
Tempo de construção estimado: 0,2 UPC (Usando paralelismo=4)
Cyrus SASL-2.1.28, libnsl-2.0.1 e lmdb-0.9.31
ICU-76.1 para suporte a Internacionalização de Endereços de Mensagens Eletrônicas (SMTPUTF8), MariaDB-11.4.5 ou MySQL, OpenLDAP-2.6.9, pcre2-10.45, PostgreSQL-17.4, SQLite-3.49.1, Berkeley DB (obsoleto) e CDB ou TinyCDB
Observe que "SQLite", "MySQL", "PostgreSQL" e "CDB" são úteis somente se existir uma necessidade conhecida deles.
Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/postfix
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
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.
Para todas as variantes do CCARGS, você deveria garantir que '-DNO_NIS' esteja especificado, de forma que a construção não tente acessar um cabeçalho de rpcsvc que não existe no BLFS. Se Berkeley DB (obsoleto) não estiver instalado, '-DNO_DB' também precisa ser especificado.
Para mais detalhes, leiam-se os arquivos "readme".
Inicialize a CCARGS
e
AUXLIBS
de acordo com a
observação acima:
CCARGS="-DNO_NIS -DNO_DB" AUXLIBS=""
A seguir, as variáveis CCARGS
e
AUXLIBS
são preenchidas com
configurações dependendo da atual configuração do sistema.
Se um pacote opcional estiver instalado, mas deveria
não estar incluído
na construção do Postfix,
simplesmente ignore os correspondentes fragmentos de script
if [ ... ]; then
.
Para usar o "Cyrus-SASL" com o "Postfix", use os seguintes argumentos:
if [ -r /usr/lib/libsasl2.so ]; then CCARGS="$CCARGS -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/include/sasl" AUXLIBS="$AUXLIBS -lsasl2" fi
Para usar o LMDB com o Postfix, use os seguintes argumentos:
if [ -r /usr/lib/liblmdb.so ]; then CCARGS="$CCARGS -DHAS_LMDB" AUXLIBS="$AUXLIBS -llmdb" fi
Para usar o "OpenLDAP" com o "Postfix", use os seguintes argumentos:
if [ -r /usr/lib/libldap.so -a -r /usr/lib/liblber.so ]; then CCARGS="$CCARGS -DHAS_LDAP" AUXLIBS="$AUXLIBS -lldap -llber" fi
Para usar o "Sqlite" com o "Postfix", use os seguintes argumentos:
if [ -r /usr/lib/libsqlite3.so ]; then CCARGS="$CCARGS -DHAS_SQLITE" AUXLIBS="$AUXLIBS -lsqlite3 -lpthread" fi
Para usar o "MySQL" com o "Postfix", use os seguintes argumentos:
if [ -r /usr/lib/libmysqlclient.so ]; then CCARGS="$CCARGS -DHAS_MYSQL -I/usr/include/mysql" AUXLIBS="$AUXLIBS -lmysqlclient -lz -lm" fi
Para usar o "PostgreSQL" com o "Postfix", use os seguintes argumentos:
if [ -r /usr/lib/libpq.so ]; then CCARGS="$CCARGS -DHAS_PGSQL -I/usr/include/postgresql" AUXLIBS="$AUXLIBS -lpq -lz -lm" fi
Para usar o "CDB" ou o "TinyCDB" com o "Postfix", use os seguintes argumentos:
if [ -r </path/to/CDB>
/libcdb.a ]; then
CCARGS="$CCARGS -DHAS_CDB"
AUXLIBS="$AUXLIBS </path/to/CDB>
/libcdb.a"
fi
Para usar o "OpenSSL" com o "Postfix", use os seguintes argumentos:
if [ -r /usr/lib/libssl.so -a -r /usr/lib/libcrypto.so ]; then CCARGS="$CCARGS -DUSE_TLS -I/usr/include/openssl/" AUXLIBS="$AUXLIBS -lssl -lcrypto" fi
OpenSSL é instalado pelo
LFS, de forma que ele deveria estar sempre lá. O
if ... then
está aqui apenas
para consistência.
Podem existir configurações duplicadas em AUXLIBS
, como -lm
,
quando ambos, MariaDB e
PostgreSQL são usados.
Elas não danificam. Instale o Postfix executando os seguintes
comandos:
make CCARGS="$CCARGS" AUXLIBS="$AUXLIBS" makefiles && make
Esse pacote não vem com uma suíte de teste útil.
Agora, como o(a) usuário(a) "root
":
sh postfix-install -non-interactive \ daemon_directory=/usr/lib/postfix \ manpage_directory=/usr/share/man \ html_directory=/usr/share/doc/postfix-3.10.1/html \ readme_directory=/usr/share/doc/postfix-3.10.1/readme
make makefiles:
Esse comando reconstrói os "makefiles" em toda a árvore fonte
para usar as opções contidas nas variáveis "CCARGS
" e "AUXLIBS
".
sh postfix-install
-non-interactive: Isso evita que o conjunto
de comandos sequenciais de instalação faça perguntas,
aceitando assim os diretórios de destino padrão em todos os
casos, exceto em uns poucos. Se as opções "html_directory
" e "readme_directory
" não estiverem configuradas,
[então] a documentação não será instalada.
CCARGS="-DNO_EAI ..."
: isso
desligará o suporte a SMTPUTF8, por exemplo, se o restante da
tua infraestrutura de endereço de correio eletrônico não
puder lidar com endereços UTF-8 de correio eletrônico e
valores de cabeçalho de mensagem.
Crie (ou anexe a um existente) "/etc/aliases
" com o seguinte comando.
Mude "<LOGIN>
" para a tua
identidade de login não "root" de forma que as mensagens
endereçadas para o(a) "root
" possam ser encaminhadas para
você. Como o(a) usuário(a) "root
":
cat >> /etc/aliases << "EOF"
# Inicia /etc/aliases
MAILER-DAEMON: postmaster
postmaster: root
root: <LOGIN>
# Termina /etc/aliases
EOF
Para proteger um arquivo "/etc/aliases
" existente, o comando acima
anexa esses apelidos a ele, se existir. Esse arquivo
deveria ser verificado e os apelidos duplicados removidos,
se presentes.
Os(As) editores(as) do BLFS recomendam usar LMDB em vez de
Berkeley DB para tabelas do Postfix. Adicione três linhas
em /etc/postfix/main.cf
para
fazer com que postmap codifique as
tabelas de pesquisa no formato do LMDB por padrão e para
mudar a configuração padrão de resumo das tabelas de
apelidos:
echo 'default_database_type = lmdb' >> /etc/postfix/main.cf && echo 'alias_database = lmdb:/etc/aliases' >> /etc/postfix/main.cf && echo 'alias_maps = lmdb:/etc/aliases' >> /etc/postfix/main.cf
Para proteger teu servidor contra os recentes ataques de
contrabando de SMTP, etapas adicionais são exigidas.
Adicione duas linhas em /etc/postfix/main.cf
para desconectar
clientes SMTP remotos que enviem novas linhas simples na
seção DATA, ao mesmo tempo que permite que clientes em tua
rede de intercomunicação com implementações SMTP não padrão
ainda enviem mensagens:
echo 'smtpd_forbid_bare_newline = normalize' >> /etc/postfix/main.cf && echo 'smtpd_forbid_bare_newline_exclusions = $mynetworks' >> /etc/postfix/main.cf
Observe que se você estiver seguindo um tutorial online
para configurar o Postfix, o tutorial pode se referir a uma
tabela de pesquisa com hash:/caminho/para/tabela_pesquisa
. Você
deveria substituir hash
por
lmdb
para a finalidade de usar
uma tabela de pesquisa codificada no formato do LMDB.
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.
O "Postfix" também pode
ser configurado para executar em uma jaula "chroot".
Veja-se o arquivo no fonte "examples/chroot-setup/LINUX2
" para
detalhes.
Para garantir que todas as permissões sejam configuradas
corretamente, o postfix
fornece uma ferramenta que é para ser executada como o(a)
usuário(a) root
:
/usr/sbin/postfix -c /etc/postfix set-permissions
Se você tiver uma configuração existente, [então] poderá
executar o utilitário "postfix" para adicionar
quaisquer definições necessárias aos teus arquivos
existentes. Como o(a) usuário(a) "root
":
/usr/sbin/postfix upgrade-configuration
Antes de iniciar o "Postfix", você deveria verificar se a
tua configuração e permissões de arquivo funcionarão
adequadamente. Execute os seguintes comandos como o(a)
usuário(a) "root
" para
verificar e iniciar o teu servidor "Postfix":
/usr/sbin/postfix check && /usr/sbin/postfix start
Para automatizar a execução do "Postfix" na inicialização,
instale a unidade "postfix.service
" inclusa no pacote
"" "blfs-systemd-units-20241211":
make install-postfix
Um link simbólico para " |
|
Um link simbólico para " |
|
é um utilitário para manutenção de base de dados de apelidos do "Postfix" |
|
Imprime o conteúdo dos arquivos originários da fila do "Postfix" em formato legível por humanos(as) |
|
Exibe ou muda o valor dos parâmetros de configuração do "Postfix" |
|
Cria um arquivo no diretório "maildrop" e copia a entrada gerada padrão dele para o arquivo |
|
é o aplicativo de controle do "Postfix" |
|
Envia solicitações para o serviço especificado por intermédio de um canal local de transporte |
|
Tranca uma pasta de mensagens para uso exclusivo e executa comandos passados para ela |
|
Uma interface de registro compatível com o "Postfix" para uso, por exemplo, em conjuntos de comandos sequenciais de "shell" |
|
Cria ou consulta uma ou mais tabelas de pesquisa do "Postfix" ou atualiza uma existente |
|
é 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 |
|
A interface de usuário(a) do "Postfix" para gerenciamento de filas |
|
A interface de usuário(a) do "Postfix" para gerenciamento de filas de superusuário(a) |
|
é a interface de compatibilidade do "Postfix" com o "Sendmail" |
O pacote "sendmail" contém um "Mail Transport Agent" ("MTA").
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://ftp.sendmail.org/sendmail.8.18.1.tar.gz
Soma de verificação MD5 da transferência: b6b332295b5779036d4c9246f96f673c
Tamanho da transferência: 2,3 MB
Espaço em disco estimado exigido: 21 MB
Tempo de construção estimado: 0,1 UPC
OpenLDAP-2.6.9 (cliente)
ghostscript-10.04.0 (para criar a documentação em "PDF"), Procmail-3.24 (a configuração proposta abaixo exige que o "procmail" esteja presente em tempo de execução) e nph
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
Veja-se o arquivo "sendmail/README
" da árvore do fonte para
informações relativas a vincular pacotes opcionais à
construção. Use o exemplo abaixo, que adiciona suporte para
"SASL", "StartTLS" ("OpenSSL") e "OpenLDAP", como um ponto de partida.
Claro, modifique-o para atender às tuas necessidades
específicas.
cat >> devtools/Site/site.config.m4 << "EOF"
APPENDDEF(`confENVDEF',`-D STARTTLS -D SASL -D LDAPMAP -D HASFLOCK')
APPENDDEF(`confLIBS', `-lssl -lcrypto -lsasl2 -lldap -llber')
APPENDDEF(`confINCDIRS', `-I/usr/include/sasl')
EOF
Instale o "sendmail" com os seguintes comandos:
cat >> devtools/Site/site.config.m4 << "EOF"
define(`confMANGRP',`root')
define(`confMANOWN',`root')
define(`confSBINGRP',`root')
define(`confUBINGRP',`root')
define(`confUBINOWN',`root')
EOF
sed -i 's|/usr/man/man|/usr/share/man/man|' \
devtools/OS/Linux &&
cd sendmail &&
sh Build &&
cd ../cf/cf &&
cp generic-linux.mc sendmail.mc &&
sh Build sendmail.cf
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) "root
":
install -v -d -m755 /etc/mail && sh Build install-cf && cd ../.. && sh Build install && install -v -m644 cf/cf/{submit,sendmail}.mc /etc/mail && cp -v -R cf/* /etc/mail && install -v -m755 -d /usr/share/doc/sendmail-8.18.1/{cf,sendmail} && install -v -m644 CACerts FAQ KNOWNBUGS LICENSE PGPKEYS README RELEASE_NOTES \ /usr/share/doc/sendmail-8.18.1 && install -v -m644 sendmail/{README,SECURITY,TRACEFLAGS,TUNING} \ /usr/share/doc/sendmail-8.18.1/sendmail && install -v -m644 cf/README /usr/share/doc/sendmail-8.18.1/cf && for manpage in sendmail editmap mailstats makemap praliases smrsh do install -v -m644 $manpage/$manpage.8 /usr/share/man/man8 done && install -v -m644 sendmail/aliases.5 /usr/share/man/man5 && install -v -m644 sendmail/mailq.1 /usr/share/man/man1 && install -v -m644 sendmail/newaliases.1 /usr/share/man/man1 && install -v -m644 vacation/vacation.1 /usr/share/man/man1
Instale o Guia de Instalação e Operações do "sendmail" com os seguintes comandos:
Remova "op.pdf
" dos comandos
"make" e
"install"
abaixo se você não tiver o "Ghostscript" instalado.
cd doc/op && sed -i 's/groff/GROFF_NO_SGR=1 groff/' Makefile && make op.txt op.pdf
Agora, como o(a) usuário(a) "root
":
install -v -d -m755 /usr/share/doc/sendmail-8.18.1 && install -v -m644 op.ps op.txt op.pdf /usr/share/doc/sendmail-8.18.1 && cd ../..
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
"Makefile
s". 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.
Certifique-se de que você tenha um nome de domínio
totalmente qualificado definido em "/etc/hosts
" para o teu sistema antes de
continuar.
Crie os arquivos "/etc/mail/local-host-names
" e
"/etc/mail/aliases
" usando os
seguintes comandos como o(a) usuário(a) "root
":
echo $(hostname) > /etc/mail/local-host-names
cat > /etc/mail/aliases << "EOF"
postmaster: root
MAILER-DAEMON: root
EOF
# Does not work if there is no database backend compiled in:
#newaliases
O arquivo de configuração principal do "sendmail", "/etc/mail/sendmail.cf
", é complexo e não
é destinado a ser editado diretamente. O método recomendado
para mudá-lo é o de modificar "/etc/mail/sendmail.mc
" e vários arquivos
do "m4" e, em seguida,
executar o processador de macro "m4" a partir de dentro de
"/etc/mail
" como segue:
cd /etc/mail && m4 m4/cf.m4 sendmail.mc > sendmail.cf
Uma explicação completa dos arquivos a modificar e os
parâmetros disponíveis pode ser encontrada em "/etc/mail/README
".
Para automatizar a execução do "sendmail" na inicialização, instale
a unidade "sendmail.service
" inclusa no
pacote "" "blfs-systemd-units-20241211":
make install-sendmail
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.
consulta e edita arquivos de mapas do "sendmail" |
|
imprime a situação do dispositivo persistente do "sendmail" |
|
exibe estatísticas do "sendmail" |
|
imprime um resumo das mensagens de correio de saída aguardando entrega |
|
cria arquivos de mapa do "sendmail" |
|
reconstrói " |
|
exibe os apelidos atuais do "sendmail" |
|
faz com que o "sendmail" limpe (purgue) todas as informações dele de situação do dispositivo |
|
é o agente de transporte de mensagens "sendmail" |
|
é um "shell" restrito para o "sendmail" |
|
é uma respostador automático de mensagens eletrônicas |
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.
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.
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.
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.
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.
Documentação do(a) desenvolvedor(a) para Cópia de Segurança/Restauração: https://www.postgresql.org/docs/current/backup.html
Documentação do(a) desenvolvedor(a) para Cópia de Segurança/Restauração: https://mariadb.com/kb/en/backup-and-restore-overview/
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/
O pacote "lmdb" é um armazenamento de dados incorporado de valor-chave, rápido e compacto. Ele usa arquivos mapeados em memória, de forma que tem o desempenho de leitura de uma pura base de dados em memória, ao mesmo tempo que oferece a persistência de bases de dados padrão baseadas em disco e é limitado somente ao tamanho do espaço virtual de endereço
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/LMDB/lmdb/archive/LMDB_0.9.31.tar.gz
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
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
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.
copia um ambiente LMDB a partir de uma base de dados para outra, incluindo a opção para compactar a base de dados |
|
lê uma base de dados e escreve o conteúdo dela na saída padrão usando um formato de texto simples portável, que consegue ser interpretado por mdb_load |
|
importa uma base de dados a partir da entrada padrão ou a partir de um arquivo |
|
exibe a situação de um ambiente LMDB |
|
fornece funções para acessar uma base de dados LMDB |
"MariaDB" é uma bifurcação desenvolvida pela comunidade e um substituto imediato para o sistema de gerenciamento de bases de dados relacionais "MySQL".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://downloads.mariadb.org/interstitial/mariadb-11.4.5/source/mariadb-11.4.5.tar.gz
Soma de verificação MD5 da transferência: 49a28cc68710e0e3b030e90579eec7db
Tamanho da transferência: 107 MB
Espaço em disco estimado exigido: 2,8 GB (745 MB instalado)
Tempo de construção estimado: 5,1 UPC (com paralelismo=8, adicionar 0,3 UPC para testes)
O tamanho instalado do MariaDB é de 745 MB, mas isso pode
ser reduzido em cerca de 265 MB, se desejado, removendo-se
o diretório /usr/share/mariadb/test
depois da
instalação.
Boost-1.87.0, libaio-0.3.113, libxml2-2.13.6, Linux-PAM-1.7.0, LZO-2.10, MIT Kerberos V5-1.21.3, pcre2-10.45, Ruby-3.4.2, sphinx-8.2.1, unixODBC-2.3.12, Valgrind-3.24.0, Groonga, KyTea, Judy, MeCab, MessagePack, mruby, MyRocks, Snappy e ZeroMQ
"MariaDB" e "MySQL" não podem ser instalados no mesmo sistema sem grandes mudanças na configuração de construção de um dos dois aplicativos.
Por motivos de segurança, executar o servidor como um(a)
usuário(a) e grupo sem privilégios é altamente encorajado.
Emita o seguinte (como "root
") para criar o(a) usuário(a) e o
grupo:
groupadd -g 40 mariadb && useradd -c "MariaDB Server" -d /srv/mariadb -g mariadb -s /bin/false -u 40 mariadb
Instale o "MariaDB" executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_BUILD_TYPE=Release \ -D CMAKE_INSTALL_PREFIX=/usr \ -D GRN_LOG_PATH=/var/log/groonga.log \ -D INSTALL_DOCDIR=share/doc/mariadb-11.4.5 \ -D INSTALL_DOCREADMEDIR=share/doc/mariadb-11.4.5 \ -D INSTALL_MANDIR=share/man \ -D INSTALL_MYSQLSHAREDIR=share/mariadb \ -D INSTALL_MYSQLTESTDIR=share/mariadb/test \ -D INSTALL_PAMDIR=lib/security \ -D INSTALL_PAMDATADIR=/etc/security \ -D INSTALL_PLUGINDIR=lib/mariadb/plugin \ -D INSTALL_SBINDIR=sbin \ -D INSTALL_SCRIPTDIR=bin \ -D INSTALL_SQLBENCHDIR=share/mariadb/bench \ -D INSTALL_SUPPORTFILESDIR=share/mariadb \ -D MYSQL_DATADIR=/srv/mariadb \ -D MYSQL_UNIX_ADDR=/run/mariadb/mariadb.sock \ -D WITH_EXTRA_CHARSETS=complex \ -D WITH_EMBEDDED_SERVER=ON \ -D SKIP_TESTS=ON \ -D TOKUDB_OK=0 \ .. && make
Para testar os resultados, emita: make test. Dois testes, my_tzinfo e test-connect, são conhecidos por falharem.
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
-D
WITH_EMBEDDED_SERVER=ON
: Essa chave habilita
compilar a biblioteca incorporada do servidor necessária para
determinados aplicativos, como o "Amarok".
-D
WITH_EXTRA_CHARSETS=complex
: Essa chave habilita
suporte para os conjuntos de caracteres complexos.
-D SKIP_TESTS=ON
:
Essa chave desabilita testes para Connector/C do MariaDB que
não são suportados sem configuração adicional.
-D WITHOUT_SERVER=ON
: Use essa
chave se você não quiser o servidor e gostaria de construir
somente o cliente.
Existem numerosas opções disponíveis para o "cmake". Verifique a saída gerada do "cmake . -LH" para opções adicionais de personalização.
Crie um arquivo /etc/mariadb/my.cnf
básico usando o
seguinte comando como o(a) usuário(a) root
:
install -v -dm 755 /etc/mariadb &&
cat > /etc/mariadb/my.cnf << "EOF"
# Begin /etc/mariadb/my.cnf
# The following options will be passed to all MySQL clients
[client]
#password = your_password
port = 3306
socket = /run/mariadb/mariadb.sock
# The MySQL server
[mariadb]
port = 3306
socket = /run/mariadb/mariadb.sock
datadir = /srv/mariadb
skip-external-locking
key_buffer_size = 16M
max_allowed_packet = 1M
sort_buffer_size = 512K
net_buffer_length = 16K
myisam_sort_buffer_size = 8M
# Don't listen on a TCP/IP port at all.
skip-networking
# required unique id between 1 and 2^32 - 1
server-id = 1
# Uncomment the following if you are using BDB tables
#bdb_cache_size = 4M
#bdb_max_lock = 10000
# InnoDB tables are now used by default
innodb_data_home_dir = /srv/mariadb
innodb_log_group_home_dir = /srv/mariadb
# All the innodb_xxx values below are the default ones:
innodb_data_file_path = ibdata1:12M:autoextend
# You can set .._buffer_pool_size up to 50 - 80 %
# of RAM but beware of setting memory usage too high
innodb_buffer_pool_size = 128M
innodb_log_file_size = 48M
innodb_log_buffer_size = 16M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50
[mariadbdump]
quick
max_allowed_packet = 16M
[mariadb]
no-auto-rehash
# Remove the next comment character if you are not familiar with SQL
#safe-updates
[isamchk]
key_buffer = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M
[myisamchk]
key_buffer_size = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M
[mariadbhotcopy]
interactive-timeout
# End /etc/mariadb/my.cnf
EOF
Você pode agora instalar uma base de dados e mudar a
titularidade da propriedade para o(a) usuário(a) e grupo
sem privilégios (realize como o(a) usuário(a) "root
"):
mariadb-install-db --basedir=/usr --datadir=/srv/mariadb --user=mariadb && chown -R mariadb:mariadb /srv/mariadb
A configuração adicional exige que o servidor "MariaDB" esteja em execução. Inicie o
servidor usando os seguintes comandos como o(a) usuário(a)
"root
":
install -v -m755 -o mariadb -g mariadb -d /run/mariadb && mariadbd-safe --user=mariadb 2>&1 >/dev/null &
Uma instalação padrão não configura uma senha para o(a)
administrador(a), portanto, use o seguinte comando como
o(a) usuário(a) "root
" para
configurar uma.
mariadb-admin -u root password
A configuração do servidor agora está finalizada. Encerre o
servidor usando o seguinte comando como o(a) usuário(a)
"root
":
mariadb-admin -p shutdown
Instale a unidade mariadb.service
inclusa no pacote
blfs-systemd-units-20241211
como o(a) usuário(a) root
para iniciar o servidor MariaDB durante a inicialização do
sistema.
make install-mariadb
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
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.
é usado para verificar, reparar, otimizar, classificar e obter informações relativas a tabelas "Aria" |
|
é uma ferramenta para despejar o conteúdo das páginas de registro do "Aria" |
|
exibe informações de índice de texto completo |
|
é uma ferramenta para gerar tabelas "Aria" comprimidas e somente leitura |
|
exibe o conteúdo do arquivo de registro do "Aria" |
|
copia uma tabela "Aria" de e para "AWS S3" |
|
inicializa um novo agrupamento "Galera" |
|
recupera dados a partir de um agrupamento "Galera" |
|
imprime somas de verificação para arquivos "InnoDB" |
|
é uma ferramenta de fonte aberto de cópia de segurança para "InnoDB" e "XtraDB" |
|
é um "shell" simples "SQL" com recursos de edição de linha de entrada |
|
é o processo de segundo plano do servidor "MySQL" |
|
verifica os privilégios de acesso para uma combinação de nome de dispositivo, nome de usuário(a) e base de dados |
|
é um cliente para realizar operações administrativas |
|
lê arquivos binários de registro |
|
realiza manutenção de tabelas: verifica, repara, otimiza ou analisa tabelas |
|
é usado para testar aspectos da API do cliente do MySQL que não podem ser testados usando o mariadb-test e a linguagem de teste dele |
|
é uma ferramenta para testar a "API" do cliente para o servidor incorporado |
|
converte conjuntos de caracteres para uso com "MariaDB" |
|
converte as tabelas em uma base de dados para usar um mecanismo específico de armazenamento |
|
foi projetado para gerenciar vários processos do mariadb que escutam conexões em diferentes arquivos de soquete Unix e portas TCP/IP |
|
é a maneira recomendada de iniciar um servidor mariadb em Unix e NetWare |
|
é um aplicativo de cópia de segurança |
|
analisa arquivos de registro de consulta lenta do "MySQL" e imprime um resumo do conteúdo deles |
|
é um cliente "MySQL" vinculado estaticamente à "libmariadbd" |
|
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" |
|
converte as extensões dos arquivos de tabela "MyISAM" (ou "ISAM") para as formas canônicas delas |
|
trava a tabela, libera a tabela e então realiza uma cópia da base de dados |
|
lê uma variedade de formatos de dados e insere os dados em uma base de dados |
|
inicializa o diretório de dados "MySQL" e cria as tabelas de sistema que ele contém, se elas não existirem |
|
é a ferramenta "RocksDB" |
|
é um utilitário que habilita os(as) administradores(as) "MySQL" a gerenciar quais "plugins" um servidor "MySQL" carrega |
|
é uma ferramenta para melhorar a segurança da instalação do "MySQL" |
|
gera uma unidade do "systemd" baseada nas configurações atuais do "mariadb" |
|
configura permissões nas tabelas de concessão do "MySQL" |
|
mostra a estrutura de uma base de dados "MariaDB" |
|
é um aplicativo de diagnóstico projetado para emular a carga do cliente para um servidor "MySQL" e informar o tempo de cada estágio |
|
executa um caso de teste em um servidor "MySQL" e, opcionalmente, compara a saída gerada com um arquivo de resultado |
|
é semelhante ao comando mariadb-test, mas é construído com suporte para o servidor incorporado libmariadb |
|
carrega as tabelas de fuso horário na base de dados mariadb |
|
examina todas as tabelas em todas as bases de dados em busca de incompatibilidades com a versão atual do Servidor "MySQL" |
|
sinaliza um processo para terminar e espera que o processo saia |
|
obtém sinalizadores do compilador para usar o "Connector/C" do "MariaDB" |
|
é um utilitário para enviar cópias de segurança "InnoDB" e "XTraDB" por meio de um fluxo |
|
é uma ferramenta para converter aplicativos "mSQL" para uso com "MySQL" |
|
exibe as opções a partir de grupos de opções de arquivos de opções |
|
exibe informações relativas a índices "FULLTEXT" em tabelas "MyISAM" |
|
obtém informações relativas às tabelas da tua base de dados ou as verifica, repara ou otimiza |
|
exibe o conteúdo do arquivo de registro do "MyISAM" |
|
é uma ferramenta para comprimir tabelas "MyISAM" |
|
fornece informações úteis para compilar o teu cliente "MySQL" e conectá-lo ao "MySQL" |
|
é uma ferramenta baseada em console para monitorar as camadas e o desempenho geral de um servidor "MySQL" |
|
é um utilitário que exibe descrições de códigos de erro do sistema ou do mecanismo de armazenamento |
|
é uma extensão "MariaDB"/"MySQL" para o padrão "SQL" |
|
resolve um despejo numérico de pilha em símbolos |
|
é um utilitário para resolver endereços "IP" em nomes de dispositivo e vice-versa |
|
despeja o conteúdo dos arquivos "sst" (o formato usado pelo "RocksDB") |
"PostgreSQL" é um avançado sistema de gerenciamento de bases de dados objeto relacional ("SAGBDOR"), derivado do sistema de gerenciamento de bases de dados "Berkeley Postgres".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://ftp.postgresql.org/pub/source/v17.4/postgresql-17.4.tar.bz2
Soma de verificação MD5 da transferência: 4d5f4119cabe4adeb5ce8b5377928578
Tamanho da transferência: 21 MB
Espaço em disco estimado exigido: 247 MB (Adicionar 86 MB para testes)
Tempo de construção estimado: 0,7 UPC (com paralelismo=4, adicionar 0,1 UPC para testes)
ICU-76.1, libxml2-2.13.6, libxslt-1.1.42, OpenLDAP-2.6.9, Linux-PAM-1.7.0, MIT Kerberos V5-1.21.3 e Bonjour
fop-2.10, docbook-4.5-dtd, docbook-dsssl-1.79, DocBook-utils-0.6.14, OpenJade-1.3.2 e SGMLSpm-1.1
Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/postgresql
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
Existem vários itens de configuração que adicionam funcionalidade adicional com pacotes opcionais ao "PostgreSQL". Use "./configure --help" para ver uma lista.
Instale o "PostgreSQL" com os seguintes comandos:
sed -i '/DEFAULT_PGSOCKET_DIR/s@/tmp@/run/postgresql@' src/include/pg_config_manual.h && ./configure --prefix=/usr \ --docdir=/usr/share/doc/postgresql-17.4 && make
Existem vários aplicativos no diretório "contrib/
". Se você for executar essa
instalação como um servidor e desejar construir alguns deles,
[então] digite "make -C
contrib" ou "make -C contrib/<NOME-SUB-DIRETÓRIO>
"
para cada subdiretório.
Os testes precisam ser executados como um(a) usuário(a) sem privilégios porque precisam iniciar um servidor temporário e isso é evitado como o(a) usuário(a) "root". Pela mesma razão, você precisa parar todos os servidores "PostgreSQL", se algum estiver em execução. Se uma versão anterior do "PostgreSQL" estiver instalada, [então] possivelmente seja necessário usar "--disable-rpath" com o "configure" para evitar falhas, mas instalar os binários criados usando essa chave não é recomendado. Para testar os resultados, emita: "make check".
Se você estiver instalando o PostgreSQL para atualizar uma instalação existente, existem etapas importantes que você precisa seguir. Se a versão principal da nova construção for superior à versão anterior, existe uma chance de que o formato do arquivo de dados tenha mudado. O novo software não consegue usar os existentes arquivos de dados. Nesse caso, o servidor não iniciará porque os antigos programas foram sobrescritos, de forma que os dados estão indisponíveis até que o formato do arquivo deles tenha sido convertido.
Antes de atualizar uma instalação existente do PostgreSQL, verifique a documentação para quaisquer considerações que você precisa ter em mente durante a atualização. Observe que as novas versões principais podem usar um formato diferente de binário nos objetos de dados, causando potenciais incompatibilidades. Para mais informações, por favor, revise a documentação do fluxo de desenvolvimento relativa a atualizar o PostgreSQL aqui: https://www.postgresql.org/docs/current/upgrading.html.
Neste ponto, você possivelmente tenha os binários antigo e novo instalados em seu sistema de arquivos. Esses binários podem ser usados para realizar uma atualização dos teus arquivos de base de dados existentes. Para as instruções a seguir, presume-se que
Os arquivos de dados atuais estão armazenados em
"/srv/pgsql/data
"
Os arquivos de dados atualizados serão armazenados em
"/srv/pgsql/newdata
"
Existe espaço em disco suficiente para armazenar os arquivos de dados atuais duas vezes. A atualização não é uma atualização em linha, mas copiará os dados para novos arquivos de base de dados.
Primeiro, faça uma instalação temporária que torna o acesso aos novos binários muito mais fácil:
make DESTDIR=$(pwd)/DESTDIR install
Em seguida, crie um diretório que seja escrevível pelo(a)
usuário(a) "postgres
", como
o(a) usuário(a) "root
":
install -d -o postgres $(pwd)/DESTDIR/tmp
Agora, pare a instância existente do "PostgreSQL" e inicie o processo de
atualização como o(a) usuário(a) "root
":
pushd $(pwd)/DESTDIR/tmp 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 é recomendado antes de continuar.
Em seguida, remova os arquivos antigos de base de dados e
renomeie o novo diretório de dados como o(a) usuário(a)
"root
":
rm -rf /srv/pgsql/data mv /srv/pgsql/newdata /srv/pgsql/data
Agora, como o(a) usuário(a) "root
":
make install && make install-docs
Se você criou qualquer um dos aplicativos "contrib/
", como o(a) usuário(a)
"root
":
make -C contrib/<NOME-SUB-DIRETÓRIO>
install
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'
sed -i ...:
Esse "sed" muda o local do soquete do servidor de
"/tmp
" para "/run/postgresql
".
--with-openssl
: constrói o pacote
com suporte para conexões encriptadas "OpenSSL".
--with-perl
: constrói a linguagem
"PL"/"Perl" do lado do servidor.
--with-python
: constrói a
linguagem PL/Python do lado do servidor.
--with-tcl
: constrói a linguagem
"PL"/"Tcl" do lado do servidor.
$PGDATA/pg_ident.con
,
$PGDATA/pg_hba.conf
e
$PGDATA/postgresql.conf
A variável de ambiente "PGDATA
"
é usada para distinguir agrupamentos de bases de dados uns
dos outros, configurando-a com o valor do diretório que
contém o agrupamento desejado. Os três arquivos de
configuração existem em cada diretório "PGDATA/
". Detalhes relativos ao formato
dos arquivos e as opções que podem ser configuradas em cada
um podem ser encontrados em /usr/share/doc/postgresql-17.4/html/index.html
.
Instale a unidade "postgresql.service
" inclusa no
pacote "" "blfs-systemd-units-20241211":
make install-postgresql
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 &'
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"
é um utilitário para reagrupar tabelas em uma base de dados "PostgreSQL" |
|
cria uma nova base de dados "PostgreSQL" |
|
define uma nova conta de usuário(a) "PostgreSQL" |
|
remove uma base de dados "PostgreSQL" |
|
remove uma conta de usuário(a) "PostgreSQL" |
|
é o pré processador incorporado "SQL" |
|
cria um novo agrupamento de bases de dados |
|
resolve "OIDs" ("Object IDs") e nós de arquivo em um diretório de dados do "PostgreSQL" |
|
verifica se existe corrupção em uma ou mais bases de dados "PostgreSQL" |
|
limpa arquivos de arquivamento "write-ahead log" ("WAL") do "PostgreSQL" |
|
faz cópias básicas de segurança de um agrupamento do PostgreSQL em execução |
|
habilita, desabilita ou verifica somas de verificação de dados em um agrupamento de bases de dados do "PostgreSQL" |
|
recupera informações de versão do "PostgreSQL" |
|
retorna informações inicializadas durante o "initdb", como a versão do catálogo e a localidade do servidor |
|
controla a parada e inicialização do servidor de base de dados |
|
despeja dados e metadados da base de dados em conjuntos de comandos sequenciais que são usados para recriar a base de dados |
|
chama recursivamente "pg_dump" para cada base de dados em um agrupamento |
|
verifica a situação da conexão de um servidor "PostgreSQL" |
|
é usado para transmitir "write-ahead logs" a partir de um servidor "PostgreSQL" |
|
controla fluxos de decodificação lógica do "PostgreSQL" |
|
reconfigura o "write-ahead log" e outras informações de controle de um agrupamento de bases de dados "PostgreSQL" |
|
cria bases de dados a partir de arquivos de despejo criados pelo "pg_dump" |
|
sincroniza um diretório de dados do "PostgreSQL" com outro diretório de dados que foi bifurcado a partir do primeiro |
|
suporta a criação de um servidor de espera quente do "PostgreSQL" |
|
determina o método "wal_sync" mais rápido para o "PostgreSQL" |
|
mede a sobrecarga de tempo |
|
atualiza uma instância do servidor "PostgreSQL" |
|
verifica a integridade de uma cópia básica de segurança de um agrupamento do "PostgreSQL" |
|
exibe uma renderização legível por humanos(as) do "write-ahead log" de um agrupamento de bases de dados do "PostgreSQL" |
|
executa um teste de avaliação comparativa no "PostgreSQL" |
|
é 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 |
|
é 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 |
|
é 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 |
|
é o servidor de base de dados "PostgreSQL" |
|
é um "shell" de base de dados baseado em console |
|
é um utilitário para reconstruir índices em uma base de dados |
|
compacta bases de dados e gera estatísticas para o analisador de consultas |
|
remove objetos grandes órfãos a partir de uma base de dados do "PostgreSQL" |
|
contém funções para suportar "SQL" incorporado em aplicativos "C" |
|
é a biblioteca de compatibilidade "ecpg" |
|
é o subsistema específico da porta da estrutura de retaguarda do "Postgres" |
|
contém funções para lidar com tipos de dados "Postgres" |
|
é a "API" do(a) programador(a) "C" para "Postgres" |
O pacote "SQLite" é uma biblioteca de logiciário que implementa um mecanismo de base de dados "SQL" transacional independente, sem servidor e com configuração zero.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://sqlite.org/2025/sqlite-autoconf-3490100.tar.gz
Soma de verificação MD5 da transferência: 8d77d0779bcd9993eaef33431e2e0c30
Tamanho da transferência: 3,1 MB
Espaço em disco estimado exigido: 123 MB (com documentação)
Tempo de construção estimado: 0,3 UPC (Usando paralelismo=4)
Documentação Opcional
Transferência (HTTP): https://sqlite.org/2025/sqlite-doc-3490100.zip
Soma de verificação MD5 da transferência: 8d3e207489b544a8687e3faf8db26291
Tamanho da transferência: 11 MB
libarchive-3.7.7 (exigido para deszipar a documentação) e libedit
Se você baixou a documentação opcional, [então] emita o seguinte comando para instalar a documentação na árvore do fonte:
unzip -q ../sqlite-doc-3490100.zip
Instale o "SQLite" executando os seguintes comandos:
./configure --prefix=/usr \ --disable-static \ --enable-fts{4,5} \ CPPFLAGS="-D SQLITE_ENABLE_COLUMN_METADATA=1 \ -D SQLITE_ENABLE_UNLOCK_NOTIFY=1 \ -D SQLITE_ENABLE_DBSTAT_VTAB=1 \ -D SQLITE_SECURE_DELETE=1" && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) "root
":
make install
Se você baixou a documentação opcional, [então] emita os
seguintes comandos como o(a) usuário(a) "root
" para instalá-la:
install -v -m755 -d /usr/share/doc/sqlite-3.49.1 && cp -v -R sqlite-doc-3490100/* /usr/share/doc/sqlite-3.49.1
--disable-static
:
Essa chave impede a instalação das versões estáticas das
bibliotecas.
--enable-fts{4,5}
:
Essas chaves habilitam o suporte para as versões 3, 4 e 5 da
extensão de pesquisa de texto completo (FTS). Observe que a
chave --enable-fts4
habilita
suporte para versão 4 do FTS e versão 3 do FTS.
CPPFLAGS="-D
SQLITE_ENABLE_COLUMN_METADATA=1 ...
: Alguns
aplicativos exigem que essas opções estejam ativadas. A única
maneira de fazer isso é a de incluí-las nas CFLAGS
ou CPPFLAGS
.
Nós usamos a última, de forma que o valor padrão (ou qualquer
valor configurado pelo(a) usuário(a)) de CFLAGS
não seria afetado. Para mais
informações a respeito do que pode ser especificado, veja-se
https://www.sqlite.org/compile.html.
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.
O pacote "OpenLDAP" fornece uma implementação de fonte aberto do "Lightweight Directory Access Protocol".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.openldap.org/software/download/OpenLDAP/openldap-release/openldap-2.6.9.tgz
Soma de verificação MD5 da transferência: 608973c35cd4924fca0f07d0ea72c016
Tamanho da transferência: 6,2 MB
Espaço em disco estimado exigido: 100 MB (cliente e servidor)
Tempo de construção estimado: 0,3 UPC (cliente), 0,8 UPC (servidor)
GnuTLS-3.8.9, unixODBC-2.3.12, MariaDB-11.4.5 ou PostgreSQL-17.4 ou MySQL, OpenSLP, WiredTiger e Berkeley DB (obsoleto) (para slapd, também obsoleto)
Se você precisar instalar somente os binários "ldap*" do lado cliente, páginas de manual, bibliotecas e arquivos de cabeçalho correspondentes (referidos como instalação “client-only”), [então] emita estes comandos, em vez dos seguintes (nenhuma suíte de teste disponível):
patch -Np1 -i ../openldap-2.6.9-consolidated-1.patch && autoconf && ./configure --prefix=/usr \ --sysconfdir=/etc \ --disable-static \ --enable-dynamic \ --disable-debug \ --disable-slapd && make depend && make
Em seguida, como o(a) usuário(a) "root
":
make install
Deveria existir um(a) usuário(a) e um grupo dedicado(a) para
assumir o controle do processo de segundo plano "slapd" depois de ele ser
iniciado. Emita os seguintes comandos como o(a) usuário(a)
"root
":
groupadd -g 83 ldap && useradd -c "Proprietário(a) do Processo de Segundo Plano OpenLDAP" \ -d /var/lib/openldap -u 83 \ -g ldap -s /bin/false ldap
Instale o "OpenLDAP" executando os seguintes comandos:
patch -Np1 -i ../openldap-2.6.9-consolidated-1.patch && autoconf && ./configure --prefix=/usr \ --sysconfdir=/etc \ --localstatedir=/var \ --libexecdir=/usr/lib \ --disable-static \ --disable-debug \ --with-tls=openssl \ --with-cyrus-sasl \ --without-systemd \ --enable-dynamic \ --enable-crypt \ --enable-spasswd \ --enable-slapd \ --enable-modules \ --enable-rlookups \ --enable-backends=mod \ --disable-sql \ --disable-wt \ --enable-overlays=mod && make depend && make
Os testes são frágeis e erros podem fazer com que os testes
abortem antes de finalizarem. Alguns erros podem ocorrer
devido a problemas de temporização. Os testes duram cerca de
uma hora e o tempo independe da CPU devido a atrasos nos
testes. Na maioria dos sistemas, os testes executarão até o
teste test065-proxyauth for
mdb
. Para testar os resultados, emita: make test.
Agora, como o(a) usuário(a) "root
":
make install && sed -e "s/\.la/.so/" -i /etc/openldap/slapd.{conf,ldif}{,.default} && install -v -dm700 -o ldap -g ldap /var/lib/openldap && install -v -dm700 -o ldap -g ldap /etc/openldap/slapd.d && chmod -v 640 /etc/openldap/slapd.{conf,ldif} && chown -v root:ldap /etc/openldap/slapd.{conf,ldif} && install -v -dm755 /usr/share/doc/openldap-2.6.9 && cp -vfr doc/{drafts,rfc,guide} \ /usr/share/doc/openldap-2.6.9
--disable-static
:
Essa chave impede a instalação das versões estáticas das
bibliotecas.
--disable-debug
: Essa
chave desabilita o código de depuração no "OpenLDAP".
--enable-dynamic
:
Essa chave força as bibliotecas do "OpenLDAP" a serem vinculadas
dinamicamente aos aplicativos executáveis.
--enable-crypt
: Essa
chave habilita usar senhas do crypt(3).
--enable-spasswd
:
Essa chave habilita a verificação de senha do "SASL".
--enable-modules
:
Essa chave habilita o suporte a módulo dinâmico.
--enable-rlookups
:
Essa chave habilita pesquisas reversas de nomes de
dispositivos clientes.
--enable-backends
:
Essa chave habilita todas as estruturas de retaguarda
disponíveis.
--enable-overlays
:
Essa chave habilita todas as sobreposições disponíveis.
--disable-sql
: Essa
chave desabilita explicitamente a estrutura "SQL" de
retaguarda. Omita essa chave se um servidor "SQL" estiver
instalado e você for usar uma estrutura "SQL" de retaguarda.
--disable-wt
: Essa
chave desabilita explicitamente a estrutura "WiredTiger" de
retaguarda. Omita essa chave se o "WiredTiger" estiver
instalado e você for usar uma estrutura "WiredTiger" de
retaguarda.
--libexecdir=/usr/lib
: Essa
chave controla onde o diretório "/usr/lib/openldap
" está instalado. Tudo
nesse diretório é uma biblioteca, de forma que ele pertence a
"/usr/lib
" em vez de
"/usr/libexec
".
--enable-slp
: Essa chave habilita
o suporte a "SLPv2". Use-a se você tiver instalado o
"OpenSLP".
--disable-versioning
: Essa chave
desabilita o versionamento de símbolos nas bibliotecas do
OpenLDAP. O padrão é o de
ter versionamento de símbolos. Observe que se você tiver
construído aplicativos usando esse pacote com versionamento
de símbolos e removeu os símbolos, os aplicativos
possivelmente falhem na execução.
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.
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
".
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").
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:
A página de manual do slapd(8).
As páginas de manual slapd.conf(5) e slapd-config(5).
O "Guia do(a)
Administrador(a) do OpenLDAP 2.6" (também
instalado localmente em "/usr/share/doc/openldap-2.6.9/guide/admin
").
Documentes localizados em https://www.openldap.org/pub/.
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-20241211"
usando o seguinte comando:
make install-slapd
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.
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
abre uma conexão com um servidor do "LDAP", vincula e adiciona entradas |
|
abre uma conexão com um servidor do "LDAP", vincula e realiza uma comparação usando parâmetros especificados |
|
abre uma conexão com um servidor do "LDAP", vincula e deleta uma ou mais entradas |
|
emite a operação estendida do "LDAP" especificada por "oid" ou uma das palavras-chave especiais" whoami", "cancel" ou "refresh" |
|
abre uma conexão com um servidor do "LDAP", vincula e modifica entradas |
|
abre uma conexão com um servidor do "LDAP", vincula e modifica o "RDN" das entradas |
|
é uma ferramenta usada para configurar a senha de um(a) usuário(a) do "LDAP" |
|
abre uma conexão com um servidor do "LDAP", vincula e realiza uma pesquisa usando parâmetros especificados |
|
é um comando que permite ou compor ou decompor "URIs" do "LDAP" |
|
verifica credenciais de "LDAP" |
|
abre uma conexão com um servidor do "LDAP", vincula e exibe informações "whoami" |
|
é 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 |
|
é usado para adicionar entradas especificadas no "LDAP Directory Interchange Format" ("LDIF") a uma base de dados do "LDAP" |
|
é usado para verificar o comportamento do "slapd" no mapeamento de identidades para fins de autenticação e autorização, conforme especificado no "slapd.conf" |
|
é usado para gerar uma saída "LDIF" do "LDAP" baseada no conteúdo de uma base de dados do "slapd" |
|
é o servidor autônomo do "LDAP" |
|
verifica uma lista de "DNs" representados por sequências de caracteres baseadas na sintaxe do esquema |
|
é usado para regenerar índices do "slapd" baseados no conteúdo atual de uma base de dados |
|
modifica entradas em uma base de dados do "slapd" |
|
é um utilitário de senha "OpenLDAP" |
|
é usado para verificar a conformidade do esquema do conteúdo de uma base de dados do "slapd" |
|
verifica a sanidade do arquivo " |
|
é 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 |
|
suporta os aplicativos do "LDAP" e fornece funcionalidade para outros aplicativos que interajam com o "LDAP" |
"Unbound" é um resolvedor de "DNS" validador, recursivo e de cache. Ele foi projetado como um conjunto de componentes modulares que incorporam recursos modernos, como validação de segurança aprimorada ("DNSSEC"), protocolo de Internet versão 6 (IPv6) e uma "API" de biblioteca de resolvedor cliente como uma parte integral da arquitetura.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://nlnetlabs.nl/downloads/unbound/unbound-1.22.0.tar.gz
Soma de verificação MD5 da transferência: be0e5ae64c6619a638c116addd4da670
Tamanho da transferência: 6,4 MB
Espaço em disco estimado exigido: 151 MB (com documentos; adicionar 11 MB para testes)
Tempo de construção estimado: 0,3 UPC (Usando paralelismo=4; com documentos; adicionar 0,3 UPC para testes)
libevent-2.1.12, Nettle-3.10.1, Protobuf-c-1.5.1 (para dnstap), sphinx-8.2.1 (para documentação de ligações Python), SWIG-4.3.0 (para ligações Python), Doxygen-1.13.2 (para documentação HTML), dnstap e Python2
Deveria existir um(a) usuário(a) e um grupo dedicado(a) para
assumir o controle do processo de segundo plano do
"unbound"
depois de ele ser iniciado. Emita os seguintes comandos como
o(a) usuário(a) "root
":
groupadd -g 88 unbound && useradd -c "Resolvedor DNS Unbound" -d /var/lib/unbound -u 88 \ -g unbound -s /bin/false unbound
Instale o "Unbound" executando os seguintes comandos:
./configure --prefix=/usr \ --sysconfdir=/etc \ --disable-static \ --with-pidfile=/run/unbound.pid && make
Se você tiver o pacote "Doxygen-1.13.2" instalado e quiser construir a documentação "HTML", [então] execute o seguinte comando:
make doc
Para testar os resultados, emita make check.
Agora, como o(a) usuário(a) "root
":
make install && mv -v /usr/sbin/unbound-host /usr/bin/
Se você construiu a documentação, [então] instale-a
executando os seguintes comandos como o(a) usuário(a)
"root
":
install -v -m755 -d /usr/share/doc/unbound-1.22.0 && install -v -m644 doc/html/* /usr/share/doc/unbound-1.22.0
--disable-static
:
Essa chave impede a instalação das versões estáticas das
bibliotecas.
--with-libevent
: Essa opção
habilita o suporte a libevent, o que permite o uso de grandes
intervalos de portas de saída.
--with-pyunbound
: Essa opção
habilita construir as ligações Python. Se você quiser
construir as ligações, você também precisa passar a variável
de ambiente PYTHON_VERSION=3.13
para configurar.
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
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-20241211":
make install-unbound
é um processo de segundo plano de resolvedor "DNS" |
|
inicializa ou atualiza a âncora de confiança raiz para validação DNSSEC |
|
verifica o arquivo de configuração do "unbound" para sintaxe e outros erros |
|
realiza administração remota no resolvedor "DNS" "unbound" |
|
gera um certificado autoassinado e chaves privadas para o servidor e cliente |
|
é um utilitário de pesquisa "DNS" semelhante ao "host" originário do "Utilitários BIND-9.20.6" |
|
fornece as funções da "API" do "Unbound" para aplicativos |
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.
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").
O "Xorg-7.0" introduziu um sistema de construção modular totalmente equipado com ferramentas automáticas. Com o novo sistema de construção modular, não mais é possível baixar o pacote inteiro em um arquivo. Na verdade, existirão bem mais que cem (100) pacotes que precisam ser obtidos a partir do local de transferência. Para ajudar com uma tarefa tão grande, instalar o "Wget-1.25.0" é fortemente recomendado para baixar os arquivos necessários. Uma lista completa de arquivos "wget" é fornecida para cada página que incluir vários pacotes.
Dado o número de pacotes disponíveis, decidir quais pacotes você precisa instalar para a tua configuração específica possivelmente pareça um pouco complicado no início. Dê uma olhada nesta página e neste tópico para ter uma ideia do que você precisará. Se não tiver certeza, [então] você deveria instalar todos os pacotes ao custo de espaço extra em disco.
Mesmo se você pretende baixar somente os pacotes necessários, você deveria baixar as listas de arquivos wget. A lista dos arquivos é ordenada por dependência e as versões dos pacotes listadas nos arquivos são conhecidas por funcionarem bem entre elas. Além disso, as listas de arquivos wget contém comentários para pacotes específicos que estão obsoletos ou não são recomendados para instalação. Pacotes mais recentes provavelmente serão destinados para o próximo lançamento do Xorg e já provaram ser incompatíveis com as versões atuais do software instalado no BLFS. O tamanho instalado do Xorg pode ser reduzido consideravelmente instalando-se somente os pacotes que você precisará e usará, no entanto, o livro BLFS não pode levar em conta todas as dependências e opções de construção para os pacotes individuais do Xorg. As instruções assumem que todos os pacotes tenham sido construídos.
Além disso, devido ao grande número de comandos repetitivos,
você é encorajado(a) a automatizar parcialmente a construção.
Instruções foram fornecidas que utilizam o pacote "Sudo-1.9.16p2". É
recomendado que você use a opção de configuração ":NOPASSWD
" para o(a) usuário(a)
que irá construir os pacotes do "Xorg".
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"
Nós usaremos $XORG_CONFIG
nas
instruções para muitos pacotes pertencentes ou relacionados
ao Xorg. Essas instruções não funcionarão corretamente com
o comportamento padrão de zsh-5.9. Então, se você estiver usando
zsh-5.9
como o shell interativo e construindo um pacote para o qual
a instrução usa essa variável, faça o comportamento do
zsh-5.9
expandir $XORG_CONFIG
da mesma
forma que o bash:
set -o shwordsplit
Se você quiser tornar essa configuração persistente, adicione esse comando ao arquivo de iniciação do zsh.
Crie um arquivo de configuração "/etc/profile.d/xorg.sh
" contendo essas
variáveis como o(a) usuário(a) "root
":
cat > /etc/profile.d/xorg.sh << EOF
XORG_PREFIX="$XORG_PREFIX"
XORG_CONFIG="--prefix=\$XORG_PREFIX --sysconfdir=/etc --localstatedir=/var --disable-static"
export XORG_PREFIX XORG_CONFIG
EOF
chmod 644 /etc/profile.d/xorg.sh
Existe alguma confusão relativa ao documento 'here' acima. A barra invertida na frente do cifrão está correta. O "Bash" irá removê-la ao criar o "/etc/profile.d/xorg.sh". No entanto, se você estiver criando o arquivo com um editor, [então] uma operação de copiar e colar não removerá a barra invertida. Ela precisa então ser removida manualmente.
Se você tiver instalado o "Sudo-1.9.16p2", [então]
certifique-se de que "XORG_PREFIX
"
e "XORG_CONFIG
" estejam
disponíveis no ambiente do "sudo". Como o(a) usuário(a)
"root
", execute o seguinte
comando:
cat > /etc/sudoers.d/xorg << EOF
Defaults env_keep += XORG_PREFIX
Defaults env_keep += XORG_CONFIG
EOF
Se tiver decidido usar o prefixo padrão "/usr
", [então] você precisa omitir o
restante desta página e continuar em "util-macros-1.20.2".
Se você tiver decidido não usar o prefixo padrão, [então]
certifique-se de adicionar "$XORG_PREFIX/bin
" à tua variável de
ambiente "PATH
" e " $XORG_PREFIX/lib/pkgconfig
" e "
$XORG_PREFIX/share/pkgconfig
" à
tua variável "PKG_CONFIG_PATH
".
Também é útil especificar caminhos adicionais de pesquisa
para o "gcc" e
um diretório de inclusão para o aplicativo "aclocal". Emita os
seguintes comandos como o(a) usuário(a) "root
":
cat >> /etc/profile.d/xorg.sh << "EOF"
pathappend $XORG_PREFIX/bin PATH
pathappend $XORG_PREFIX/lib/pkgconfig PKG_CONFIG_PATH
pathappend $XORG_PREFIX/share/pkgconfig PKG_CONFIG_PATH
pathappend $XORG_PREFIX/lib LIBRARY_PATH
pathappend $XORG_PREFIX/include C_INCLUDE_PATH
pathappend $XORG_PREFIX/include CPLUS_INCLUDE_PATH
ACLOCAL="aclocal -I $XORG_PREFIX/share/aclocal"
export PATH PKG_CONFIG_PATH ACLOCAL LIBRARY_PATH C_INCLUDE_PATH CPLUS_INCLUDE_PATH
EOF
O conjunto de comandos sequenciais acima precisa ser ativado. Normalmente será automático ao "login", mas para ativá-lo agora, como um(a) usuário(a) normal, execute:
source /etc/profile.d/xorg.sh
Você também deveria adicionar "$XORG_PREFIX/lib
" ao arquivo "/etc/ld.so.conf
". Novamente, como o(a)
usuário(a) "root
", emita o
seguinte comando:
echo "$XORG_PREFIX/lib" >> /etc/ld.so.conf
Você também deveria modificar o "/etc/man_db.conf
", adicionando as entradas
apropriadas "MANDATORY_MANPATH", "MANPATH_MAP" e "MANDB_MAP"
seguindo os exemplos para o "/usr/X11R6
". Emita o seguinte comando como
o(a) usuário(a) "root
":
sed -e "s@X11R6/man
@X11R6/share/man@g" \ -e "s@/usr/X11R6
@$XORG_PREFIX@g" \ -i /etc/man_db.conf
Alguns aplicativos procuram por arquivos compartilhados em
"/usr/share/X11
". Crie um link
simbólico para o local apropriado como o(a) usuário(a)
"root
":
ln -svf $XORG_PREFIX/share/X11 /usr/share/X11
Se construir o "KDE", [então] alguns arquivos do "cmake" procuram o "Xorg" em locais diferentes de "$XORG_PREFIX". Permita que o "cmake" encontre o "Xorg" com:
ln -svf $XORG_PREFIX /usr/X11R6
O pacote "util-macros" contém as macros do "m4" usadas por todos os pacotes do "Xorg".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.x.org/pub/individual/util/util-macros-1.20.2.tar.xz
Soma de verificação MD5 da transferência: 5f683a1966834b0a6ae07b3680bcb863
Tamanho da transferência: 84 KB
Espaço em disco estimado exigido: 524 KB
Tempo de construção estimado: menos que 0,1 UPC
Ambiente de construção do "Xorg" (deveria estar configurado para as seguintes instruções funcionarem)
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
$XORG_PREFIX
/share/pkgconfig e
$XORG_PREFIX
/share/util-macros
O pacote "xorgproto" fornece os arquivos de cabeçalho exigidos para construir o Sistema de Janelas "X" e para permitir que outros aplicativos construam contra o Sistema de Janelas "X" instalado.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://xorg.freedesktop.org/archive/individual/proto/xorgproto-2024.1.tar.xz
Soma de verificação MD5 da transferência: 12374d29fb5ae642cfa872035e401640
Tamanho da transferência: 744 KB
Espaço em disco estimado exigido: 8,4 MB
Tempo de construção estimado: menos que 0,1 UPC
fop-2.10, libxslt-1.1.42, xmlto-0.0.29 e asciidoc-10.2.1 (para construir documentação adicional)
Existe uma dependência recíproca com o "fop-2.10". Se desejar construir a documentação, [então] você precisará reinstalar os Cabeçalhos de Protocolo depois da instalação estar completa e o "fop-2.10" ter sido instalado.
Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/Xorg7ProtocolHeaders
Instale o "xorgproto" executando os seguintes comandos:
mkdir build && cd build && meson setup --prefix=$XORG_PREFIX .. && ninja
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) "root
":
ninja install && mv -v $XORG_PREFIX/share/doc/xorgproto{,-2024.1}
-D legacy=true
: Instala
cabeçalhos legados necessários para aplicativos antigos (como
o LessTif).
$XORG_PREFIX
/include/GL, $XORG_PREFIX
/include/X11 e $XORG_PREFIX
/share/doc/xorgproto-2024.1
O pacote "libXau" contém uma biblioteca que implementa o Protocolo de Autorização X11. Isso é útil para restringir o acesso do cliente ao monitor.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.x.org/pub/individual/lib/libXau-1.0.12.tar.xz
Soma de verificação MD5 da transferência: 4c9f81acf00b62e5de56a912691bd737
Tamanho da transferência: 276 KB
Espaço em disco estimado exigido: 2,9 MB (com teste)
Tempo de construção estimado: menos que 0,1 UPC (com o teste)
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
O pacote "libXdmcp" contém uma biblioteca que implementa o "X Display Manager Control Protocol". Isso é útil para permitir que os clientes interajam com o "X Display Manager".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.x.org/pub/individual/lib/libXdmcp-1.1.5.tar.xz
Soma de verificação MD5 da transferência: ce0af51de211e4c99a111e64ae1df290
Tamanho da transferência: 292 KB
Espaço em disco estimado exigido: 3,0 MB (com teste)
Tempo de construção estimado: menos que 0,1 UPC (com o teste)
xmlto-0.0.29, fop-2.10, libxslt-1.1.42 e Xorg-SGML-doctools (para a documentação)
Instale o "libXdmcp" executando os seguintes comandos:
./configure $XORG_CONFIG --docdir=/usr/share/doc/libXdmcp-1.1.5 && make
Para testar os resultados, emita: make check.
Agora, como o(a) usuário(a) "root
":
make install
O pacote "xcb-proto" fornece as descrições do protocolo "XML-XCB" que a "libxcb" usa para gerar a maior parte do código e "API" dela.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://xorg.freedesktop.org/archive/individual/proto/xcb-proto-1.17.0.tar.xz
Soma de verificação MD5 da transferência: c415553d2ee1a8cea43c3234a079b53f
Tamanho da transferência: 152 KB
Espaço em disco estimado exigido: 1,3 MB
Tempo de construção estimado: menos que 0,1 UPC
Ambiente de construção do "Xorg" (necessário para as instruções abaixo)
libxml2-2.13.6 (exigido para executar os testes)
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
$XORG_PREFIX
/share/xcb e $XORG_PREFIX
/lib/python3.13/site-packages/xcbgen
O pacote "libxcb" fornece uma interface para o protocolo do Sistema de Janelas "X", que substitui a interface "Xlib" atual. "Xlib" também pode usar "XCB" como camada de transporte, permitindo que o logiciário faça solicitações e receba respostas com ambos.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://xorg.freedesktop.org/archive/individual/lib/libxcb-1.17.0.tar.xz
Soma de verificação MD5 da transferência: 96565523e9f9b701fcb35d31f1d4086e
Tamanho da transferência: 448 KB
Espaço em disco estimado exigido: 30 MB (com testes, adicionar 62 MB para documentos do doxygen)
Tempo de construção estimado: 0,2 UPC (com os testes, adicionar 1,4 UPC para os documentos do "doxygen")
libXau-1.0.12 e xcb-proto-1.17.0
Doxygen-1.13.2 (para gerar a documentação da "API") e libxslt-1.1.42
Instale o "libxcb" executando os seguintes comandos:
./configure $XORG_CONFIG \ --without-doxygen \ --docdir='${datadir}'/doc/libxcb-1.17.0 && LC_ALL=en_US.UTF-8 make
Para testar os resultados, emita: make check.
Agora, como o(a) usuário(a) "root
":
make install
Se o pacote foi construído como um(a) usuário(a)
não-root
, a documentação
instalada agora é titularizada por esse usuário(a). Como o(a)
usuário(a) root
, corrija a
titularidade da propriedade:
chown -Rv root:root $XORG_PREFIX/share/doc/libxcb-1.17.0
LC_ALL=en_US.UTF-8
: Alguns
conjuntos de comandos sequenciais do Python 3 no sistema de
construção desse pacote possivelmente falhem com certas
configurações de localidades do sistema. Essa variável de
ambiente força uma configuração de localidade conhecida por
funcionar.
--without-doxygen
:
Não use "doxygen" para gerar documentação da "API" (padrão:
automático). Sem ele, se o "Doxygen-1.13.2" estiver instalado,
[então] a documentação da "API" será gerada e instalada.
$XORG_PREFIX
/include/xcb e $XORG_PREFIX
/share/doc/libxcb-1.17.0
As bibliotecas do "Xorg" fornecem rotinas de biblioteca que são usadas em todos os aplicativos do Janelas "X".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.x.org/pub/individual/lib/
Tamanho da transferência: 12 MB
Espaço em disco estimado exigido: 274 MB (47 MB instalado) - se os diretórios dos fontes não deletados
Tempo de construção estimado: 1,8 UPC
Fontconfig-2.16.0 e libxcb-1.17.0
asciidoc-10.2.1, xmlto-0.0.29 com um ou mais do seguinte: fop-2.10, Links-2.30, Lynx-2.9.2, ncompress (para alguns testes) e W3m (para gerar documentação adicional "PDF" ou texto para o pacote "libXfont").
Primeiro, crie uma lista de arquivos a serem baixados. Esse arquivo também será usado para verificar a integridade das transferências quando concluídas:
cat > lib-7.md5 << "EOF"
1155b410c778f805659baf4373db2b92 xtrans-1.5.2.tar.xz
e12f988eb037b978071e21b2d58d1d70 libX11-1.8.11.tar.xz
e59476db179e48c1fb4487c12d0105d1 libXext-1.3.6.tar.xz
c5cc0942ed39c49b8fcd47a427bd4305 libFS-1.0.10.tar.xz
d1ffde0a07709654b20bada3f9abdd16 libICE-1.1.2.tar.xz
ef6167bfcb675f65a790e0f517a87455 libSM-1.2.5.tar.xz
e613751d38e13aa0d0fd8e0149cec057 libXScrnSaver-1.2.4.tar.xz
9acd189c68750b5028cf120e53c68009 libXt-1.3.1.tar.xz
85edefb7deaad4590a03fccba517669f libXmu-1.2.1.tar.xz
05b5667aadd476d77e9b5ba1a1de213e libXpm-3.5.17.tar.xz
2a9793533224f92ddad256492265dd82 libXaw-1.0.16.tar.xz
65b9ba1e9ff3d16c4fa72915d4bb585a libXfixes-6.0.1.tar.xz
af0a5f0abb5b55f8411cd738cf0e5259 libXcomposite-0.4.6.tar.xz
4c54dce455d96e3bdee90823b0869f89 libXrender-0.9.12.tar.xz
5ce55e952ec2d84d9817169d5fdb7865 libXcursor-1.2.3.tar.xz
ca55d29fa0a8b5c4a89f609a7952ebf8 libXdamage-1.1.6.tar.xz
8816cc44d06ebe42e85950b368185826 libfontenc-1.1.8.tar.xz
66e03e3405d923dfaf319d6f2b47e3da libXfont2-2.0.7.tar.xz
cea0a3304e47a841c90fbeeeb55329ee libXft-2.3.8.tar.xz
95a960c1692a83cc551979f7ffe28cf4 libXi-1.8.2.tar.xz
228c877558c265d2f63c56a03f7d3f21 libXinerama-1.1.5.tar.xz
24e0b72abe16efce9bf10579beaffc27 libXrandr-1.5.4.tar.xz
66c9e9e01b0b53052bb1d02ebf8d7040 libXres-1.2.2.tar.xz
b62dc44d8e63a67bb10230d54c44dcb7 libXtst-1.2.5.tar.xz
8a26503185afcb1bbd2c65e43f775a67 libXv-1.0.13.tar.xz
a90a5f01102dc445c7decbbd9ef77608 libXvMC-1.0.14.tar.xz
74d1acf93b83abeb0954824da0ec400b libXxf86dga-1.1.6.tar.xz
d3db4b6dc924dc151822f5f7e79ae873 libXxf86vm-1.1.6.tar.xz
57c7efbeceedefde006123a77a7bc825 libpciaccess-0.18.1.tar.xz
229708c15c9937b6e5131d0413474139 libxkbfile-1.1.3.tar.xz
9805be7e18f858bed9938542ed2905dc libxshmfence-1.3.3.tar.xz
bdd3ec17c6181fd7b26f6775886c730d libXpresent-1.0.1.tar.xz
EOF
Para baixar os arquivos necessários usando o Wget-1.25.0, use os seguintes comandos:
mkdir lib && cd lib && grep -v '^#' ../lib-7.md5 | awk '{print $2}' | wget -i- -c \ -B https://www.x.org/pub/individual/lib/ && md5sum -c ../lib-7.md5
Quando instalar múltiplos pacotes em um conjunto de comandos sequenciais, a instalação precisa ser feita como o(a) usuário(a) root. Existem três opções gerais que podem ser usadas para se fazer isso:
Executar o conjunto inteiro de comandos sequenciais como o(a) usuário(a) root (não recomendado).
Usar o comando sudo oriundo do pacote Sudo-1.9.16p2.
Usar su -c "argumentos do comando" (aspas exigidas), que solicitará a senha do(a) root para cada interação do loop.
Uma maneira de se lidar com essa situação é a de se criar uma função curta do bash que selecione automaticamente o método apropriado. Uma vez que o comando esteja configurado no ambiente, ele não precisa ser configurado novamente.
as_root() { if [ $EUID = 0 ]; then $* elif [ -x /usr/bin/sudo ]; then sudo $* else su -c \\"$*\\" fi } export -f as_root
Algumas bibliotecas vem com uma suíte de teste. Se desejar executá-las, [então] comente o "rm -rf ..." abaixo, para que, depois que todas as bibliotecas estiverem instaladas, você consiga voltar ao diretório correspondente e executar "make check ", ou fazer construções individuais, executando os testes para cada um daqueles distribuídos com suítes funcionais de teste. Alternativamente, você pode descomentar a linha "#make check ..." e, no final, verificar os resultados do teste com:
grep -A9 summary *make_check.log
Os(As) desenvolvedores(as) do BLFS confirmaram que "libX11", "libXt", "libXmu", "libXpm" e "libxshmfence" são distribuídos com suítes funcionais de testes.
Primeiro, inicie um sub shell que sairá em caso de erro:
bash -e
Instale todos os pacotes executando os seguintes comandos:
for package in $(grep -v '^#' ../lib-7.md5 | awk '{print $2}') do packagedir=${package%.tar.?z*} echo "Construindo $packagedir" tar -xf $package pushd $packagedir docdir="--docdir=$XORG_PREFIX/share/doc/$packagedir" case $packagedir in libXfont2-[0-9]* ) ./configure $XORG_CONFIG $docdir --disable-devel-docs ;; libXt-[0-9]* ) ./configure $XORG_CONFIG $docdir \ --with-appdefaultdir=/etc/X11/app-defaults ;; libXpm-[0-9]* ) ./configure $XORG_CONFIG $docdir --disable-open-zfile ;; libpciaccess* ) mkdir build cd build meson setup --prefix=$XORG_PREFIX --buildtype=release .. ninja #teste ninja as_root ninja install popd # $packagedir continue # para loop ;; * ) ./configure $XORG_CONFIG $docdir ;; esac make #make check 2>&1 | tee ../$packagedir-make_check.log as_root make install popd rm -rf $packagedir as_root /sbin/ldconfig done
Finalmente, saia do shell que foi iniciado anteriormente:
exit
--disable-open-zfile
:
Permitir que a "libXpm"
construa sem o comando opcional "compress" presente.
--disable-devel-docs
:
Desabilite a geração de documentação de texto no pacote
"libXfont2", se o "xmlto-0.0.29" estiver instalado, sem um
navegador de texto. Omita esse parâmetro (ou toda a instrução
"case") se um
navegador de texto estiver instalado.
--with-fop
: Use o "fop-2.10" para gerar
documentação em "PDF" (somente para o pacote "libXfont").
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
$XORG_PREFIX
/include/X11/fonts,
$XORG_PREFIX
/include/X11/ICE,
$XORG_PREFIX
/include/X11/SM,
$XORG_PREFIX
/include/X11/Xmu,
$XORG_PREFIX
/include/X11/Xtrans,
$XORG_PREFIX
/share/doc/libFS,
$XORG_PREFIX
/share/doc/libICE-1.1.2,
$XORG_PREFIX
/share/doc/libSM-1.2.5,
$XORG_PREFIX
/share/doc/libX11-1.8.11,
$XORG_PREFIX
/share/doc/libXaw,
$XORG_PREFIX
/share/doc/libXext,
$XORG_PREFIX
/share/doc/libXi,
$XORG_PREFIX
/share/doc/libXmu-1.2.1,
$XORG_PREFIX
/share/doc/libXrender,
$XORG_PREFIX
/share/doc/libXt,
$XORG_PREFIX
/share/doc/libXtst,
$XORG_PREFIX
/share/doc/libXvMC,
$XORG_PREFIX
/share/doc/xtrans
e $XORG_PREFIX
/share/X11/locale
verifica o formato de um arquivo "XPM" |
|
mostra um arquivo "XPM" e(ou) converte arquivos "XPM" 1 ou 2 em "XPM" 3 |
|
é a biblioteca de codificação de fontes "X11" |
|
é a interface da biblioteca para o Servidor de Fontes do "X" |
|
é a Biblioteca de Intercâmbio "Inter Client" do "X" |
|
é a biblioteca genérica Acesso "PCI" para o "X" |
|
é a Biblioteca de Gerenciamento de Sessões do "X" |
|
é a biblioteca "Xlib" |
|
é a Biblioteca de Pequenas Engenhocas "Athena" do "X", versão 6 |
|
é a Biblioteca de Pequenas Engenhocas "Athena" do "X", versão 7 |
|
são links simbólicos para a atual Biblioteca de Pequenas Engenhocas "Athena" do "X", versão 7 |
|
é a Biblioteca Composta do "X" |
|
é a biblioteca de gerenciamento de Cursor do "X" |
|
é a Biblioteca Danos do "X" |
|
é a Biblioteca de Extensão Misc do "X" |
|
fornece versões aumentadas de solicitações de protocolo principais |
|
é a biblioteca de fontes do "X" |
|
é a biblioteca de interface "FreeType" do "X" |
|
é a Biblioteca "Xinerama" |
|
é a Biblioteca de Extensão de Entrada do "X" |
|
é a Biblioteca "xkbfile" |
|
é a biblioteca de interface do "X" para utilitários diversos não partes do padrão "Xlib" |
|
é a Biblioteca "Mini Xmu" |
|
é a Biblioteca "Pixmap" do "X" |
|
é a interface da biblioteca para a extensão X Present |
|
é a biblioteca de extensões "Resize", "Rotate" e "Reflection" do "X" |
|
é a Biblioteca de Renderização do "X" |
|
é a biblioteca cliente de extensão "X-Resource" |
|
expõe uma "API" de eventos no topo de "futexes" do Linux |
|
é a biblioteca cliente da extensão Protetor de Tela "X11" |
|
é a Biblioteca Kit de Ferramentas do "X" |
|
é a Biblioteca "Xtst" |
|
é a Biblioteca de Compensação de Movimento de Vídeo do "X" |
|
é o Envólucro "XvMC" incluindo a extensão "VLD" não padrão |
|
é a biblioteca de extensão de vídeo do Sistema de Janelas "X" |
|
é a biblioteca cliente para a extensão "DGA" do "XFree86" |
|
é a biblioteca cliente para a extensão "VidMode" do "XFree86" do "X" |
"libxcvt" é uma biblioteca que fornece uma versão autônoma da implementação do servidor "X" do gerador de modelos de temporização padrão "VESA" "CVT". Ela pretende ser uma substituição direta da versão anteriormente fornecida pelo servidor "Xorg".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.x.org/pub/individual/lib/libxcvt-0.1.3.tar.xz
Soma de verificação MD5 da transferência: 7fb9c51d33a680f724f34da41768b1d0
Tamanho da transferência: 12 KB
Espaço em disco estimado exigido: 440 KB
Tempo de construção estimado: menos que 0,1 UPC
Ambiente de construção do "Xorg" (deveria estar configurado para as seguintes instruções funcionarem)
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
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
O pacote "xcb-util" fornece extensões adicionais para a biblioteca "XCB", muitas das quais eram encontradas anteriormente no "Xlib", mas não são parte do protocolo principal do "X".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://xcb.freedesktop.org/dist/xcb-util-0.4.1.tar.xz
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
Doxygen-1.13.2 (para documentação)
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
Os utilitários XCB fornecem extensões que os(as) desenvolvedores(as) conseguem usar ao criar software do X Window. xcb-util-0.4.1 foi instalado recentemente, mas estes utilitários oferecem ainda mais extensões das quais o software do X Window possivelmente dependa.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://xcb.freedesktop.org/dist/
Tamanho da transferência: 1,1 MB
Espaço em disco estimado exigido: 13,3 MB
Tempo de construção estimado: 0,1 UPC (ignorando o tempo para transferência)
Primeiro, crie uma lista de arquivos a serem baixados. Esse arquivo também será usado para verificar a integridade das transferências quando concluídas:
cat > xcb-utils.md5 << "EOF"
a67bfac2eff696170259ef1f5ce1b611 xcb-util-image-0.4.1.tar.xz
fbdc05f86f72f287ed71b162f1a9725a xcb-util-keysyms-0.4.1.tar.xz
193b890e2a89a53c31e2ece3afcbd55f xcb-util-renderutil-0.3.10.tar.xz
581b3a092e3c0c1b4de6416d90b969c3 xcb-util-wm-0.4.2.tar.xz
bc30cd267b11ac5803fe19929cabd230 xcb-util-cursor-0.1.5.tar.xz
EOF
Para baixar os arquivos necessários usando o Wget-1.25.0, use os seguintes comandos:
mkdir xcb-utils && cd xcb-utils && grep -v '^#' ../xcb-utils.md5 | awk '{print $2}' | wget -i- -c \ -B https://xcb.freedesktop.org/dist/ && md5sum -c ../xcb-utils.md5
Quando instalar múltiplos pacotes em um conjunto de comandos sequenciais, a instalação precisa ser feita como o(a) usuário(a) root. Existem três opções gerais que podem ser usadas para se fazer isso:
Executar o conjunto inteiro de comandos sequenciais como o(a) usuário(a) root (não recomendado).
Usar o comando sudo oriundo do pacote Sudo-1.9.16p2.
Usar su -c "argumentos do comando" (aspas exigidas), que solicitará a senha do(a) root para cada interação do loop.
Uma maneira de se lidar com essa situação é a de se criar uma função curta do bash que selecione automaticamente o método apropriado. Uma vez que o comando esteja configurado no ambiente, ele não precisa ser configurado novamente.
as_root() { if [ $EUID = 0 ]; then $* elif [ -x /usr/bin/sudo ]; then sudo $* else su -c \\"$*\\" fi } export -f as_root
Primeiro, inicie um sub shell que sairá em caso de erro:
bash -e
Instale todos os pacotes executando os seguintes comandos:
for package in $(grep -v '^#' ../xcb-utils.md5 | awk '{print $2}') do packagedir=${package%.tar.?z*} tar -xf $package pushd $packagedir ./configure $XORG_CONFIG make as_root make install popd rm -rf $packagedir done
Finalmente, saia do shell que foi iniciado anteriormente:
exit
É uma portagem das funções XImage e XShmImage do Xlib |
|
fornece as constantes padrões de teclas do X e funções de API para conversão para/de códigos de teclas |
|
fornece funções convenientes para a extensão Render |
|
fornece o cliente e ajudantes de gerenciador de janelas para EWMH |
|
fornece o cliente e ajudantes do gerenciador de janelas para ICCCM |
|
é uma portagem das funções libXcursor do Xlib |
Mesa é uma biblioteca gráfica 3D compatível com OpenGL.
Mesa é atualizada relativamente muitas vezes. Você possivelmente queira usar a versão 24.3.x do Mesa mais recente disponível.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://mesa.freedesktop.org/archive/mesa-24.3.4.tar.xz
Soma de verificação MD5 da transferência: c64b7e2b4f1c7782c41bf022edbb365c
Tamanho da transferência: 30 MB
Espaço em disco estimado exigido: 1,3 GB (com documentos, adicionar 569 MB para testes)
Tempo de construção estimado: 3,8 UPC (com documentos; adicionar 1,2 UPC para testes; ambos com paralelismo=4)
Remendo recomendado: https://www.linuxfromscratch.org/patches/blfs/12.3/mesa-add_xdemos-4.patch (instala dois programas de demonstração para testagem do Mesa - não necessário se você instalar o pacote mesa-demos)
Bibliotecas do Xorg, libdrm-2.4.124, Mako-1.3.9 e PyYAML-6.0.2
Glslang-15.1.0 (exigido para suporte a Vulkan)
libva-2.22.0 (para fornecer suporte VA-API para alguns controladores gallium. Observe que existe uma dependência circular. Você precisa construir libva primeiro sem suporte EGL e GLX do mesa, instalar esse pacote e reconstruir libva)
libvdpau-1.5 (para construir controladores VDPAU)
LLVM-19.1.7 (exigido para o llvmpipe, r300, r600, e controladores radeonsi)
wayland-protocols-1.40 (exigido para Plasma-6.3.2, GNOME e recomendado para GTK-3.24.48)
libclc-19.1.7 (exigido para o controlador iris gallium da Intel)
Vulkan-Loader-1.4.304 (exigido para suporte a Vulkan)
ply-3.11 (exigido para o controlador vulkan da Intel)
Cbindgen-0.28.0, make-ca-1.15 e rust-bindgen-0.71.1 (exigido para o controlador Nouveau Vulkan)
Uma conexão de Internet é necessária para construir o controlador Nouveau Vulkan.
Escolhendo Controladores Mesa
Nas instruções abaixo, todos os controladores disponíveis são construídos. Isso quase sempre funcionará. No entanto, não é eficiente. Dependendo do teu hardware de vídeo, você provavelmente precisará somente de controladores específicos.
A primeira coisa que você precisa saber é qual tipo de dispositivo de vídeo você tem. Em alguns casos, ele está construído na CPU. Em outros, é uma placa PCI separada. Em ambos os casos, você pode saber qual hardware de vídeo tem instalando pciutils-3.13.0 e executando:
lspci | grep VGA
O dispositivo de vídeo é provavelmente uma das três
famílias: AMD, Intel ou NVIDIA. Vejam-se as Explicações do
Comando para -D
gallium-drivers=auto
abaixo para ver quais
opções estão disponíveis para teu hardware de vídeo
específico (ou hardware emulado de vídeo). Você
provavelmente deveria adicionar a opção softpipe ou
llvmpipe como um controlador de apoio.
Para 'platforms' você pode selecionar x11 e (ou) wayland. Observe que atualmente no BLFS somente o Gnome e o KDE podem usar o wayland. Se você não for usar um desses ambientes de área de trabalho, então provavelmente desejará somente o x11.
Para 'vulkan-drivers' você pode querer limitar a seleção ao
teu hardware atual. Esses controladores são usados por
alguns aplicativos específicos. Por exemplo, ffmpeg
(incluindo ffplay) usará Vulkan em vez de OpenGL para
renderizar vídeo na GPU. Se você não quiser fazer isso,
você pode ou não querer instalá-los. Vejam-se as
Explicações do Comando para -D
vulkan-drivers=auto
abaixo para ver quais
opções estão disponíveis para teu hardware de vídeo
específico (ou hardware emulado de vídeo). Você
provavelmente deveria adicionar a opção swrast como um
controlador residual, a menos que não precise do Vulkan.
libgcrypt-1.11.0, libunwind-1.8.1, lm-sensors-3-6-0, Nettle-3.10.1, Valgrind-3.24.0, mesa-demos (fornece mais que 300 extra demos para testar Mesa; isso inclui os mesmos programas adicionados pelo remendo acima), Bellagio OpenMAX Integration Layer (para plataformas móveis) e libtizonia,
Habilite as seguintes opções na configuração do núcleo e recompile o núcleo se necessário:
Device Drivers ---> Graphics support ---> <*/M> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) ---> ... [DRM] # For r300 or r600: < /*/M> ATI Radeon [DRM_RADEON] # For radeonsi: < /*/M> AMD GPU [DRM_AMDGPU] [*] Enable amdgpu support for SI parts [DRM_AMDGPU_SI] [*] Enable amdgpu support for CIK parts [DRM_AMDGPU_CIK] Display Engine Configuration ---> [*] AMD DC - Enable new display engine [DRM_AMD_DC] # For nouveau: < /*/M> Nouveau (NVIDIA) cards [DRM_NOUVEAU] [*] Use GSP firmware for Turing/Ampere (needs firmware installed) ... [DRM_NOUVEAU_GSP_DEFAULT] # For i915, crocus, or iris: < /*/M> Intel 8xx/9xx/G3x/G4x/HD Graphics [DRM_I915] # For llvmpipe or softpipe: < /*> Virtual GEM provider [DRM_VGEM] # For svga: < /*/M> DRM driver for VMware Virtual GPU [DRM_VMWGFX]
O correspondente nome do controlador Gallium3D do Mesa é fornecido como comentário para as entradas de configuração. Se você não sabe o nome do controlador Gallium3D do Mesa para tua GPU, veja Mesa Gallium3D Drivers abaixo.
CONFIG_DRM_RADEON
, CONFIG_DRM_AMDGPU
, CONFIG_DRM_NOUVEAU
e CONFIG_DRM_I915
possivelmente exijam
firmware. Veja-se Acerca de Firmware para
detalhes.
Selecionar CONFIG_DRM_RADEON
,
CONFIG_DRM_AMDGPU
ou
CONFIG_DRM_NOUVEAU
como
“y
” não é recomendado. Se
for, qualquer firmware exigido precisa ser construído como
parte da imagem do núcleo ou do initramfs para o
controlador funcionar corretamente.
As subentradas sob CONFIG_DRM_AMDGPU
são usadas para garantir
que o controlador de núcleo AMDGPU suporte todas as GPUs
usando o controlador radeonsi
.
Elas não são necessárias se você não precisasse da própria
CONFIG_DRM_AMDGPU
. Elas
possivelmente sejam desnecessárias para alguns modelos de
GPU.
Para llvmpipe
ou softpipe
, CONFIG_DRM_VGEM
é exigido ou os clientes do
X podem falhar ao iniciar com uma mensagem enigmática
Error: couldn't get an RGB,
Double-buffered visual
. Falando estritamente, ele
pode ser compilado como um módulo. Mas o módulo não será
carregado automaticamente, de forma que é mais conveniente
construí-lo como parte da imagem do núcleo.
Se você baixou o remendo xdemos (necessário se testar a instalação do Xorg de acordo com as instruções do BLFS), aplique-o executando o seguinte comando:
patch -Np1 -i ../mesa-add_xdemos-4.patch
Instale o Mesa executando os seguintes comandos:
mkdir build && cd build && meson setup .. \ --prefix=$XORG_PREFIX \ --buildtype=release \ -D platforms=x11,wayland \ -D gallium-drivers=auto \ -D vulkan-drivers=auto \ -D valgrind=disabled \ -D video-codecs=all \ -D libunwind=disabled && ninja
Por favor, consulte teu(tua) advogado(a) ou remova a opção
-D video-codecs=all
se você distribuirá as bibliotecas e controladores
compiladas do Mesa para outros(as).
Para testar os resultados, emita: meson configure -D build-tests=true && ninja test.
Agora, como o(a) usuário(a) "root
":
ninja install
Se desejado, instale a documentação opcional executando os
seguintes comandos como o(a) usuário(a) root
:
cp -rv ../docs -T /usr/share/doc/mesa-24.3.4
--buildtype=release
:
Essa chave garante uma construção totalmente otimizada e
desabilita asserções de depuração que desacelerarão
severamente as bibliotecas em certos casos de uso. Sem essa
chave, os tamanhos de construção podem atingir a faixa de 2
GB.
-D gallium-drivers=auto
: Esse
parâmetro controla quais controladores Gallium3D deveriam ser
construídos:
auto
seleciona todos os
controladores Gallium3D disponíveis para x86. Com uma
lista separada por vírgulas, somente um subconjunto
desses controladores será construído. Se você souber
exatamente quais controladores precisa, poderá
selecioná-los explicitamente. Por exemplo, -D
gallium-drivers=radeonsi,iris,llvmpipe
.
r300
(para séries Radeon
9000 ou Radeon X da ATI)
r600
(para séries Radeon
HD 2000-6000 da AMD/ATI)
radeonsi
(para Radeon HD
7000 da AMD ou modelos mais recentes de GPU da AMD)
nouveau
(para GPUs
suportadas da NVIDIA, elas estão listadas como todos os
“recursos
3D” ou “DONE” ou “N/A” na
página
de situação Nouveau)
virgl
(para uma GPU
virtual do QEMU com suporte a virglrender; observe que o
qemu-9.2.2 do BLFS não é construído
com virglrender)
svga
(para uma GPU virtual
do VMWare)
llvmpipe
(usar CPU para
rasterização 3D. Observe que ele é muito mais lento que
usar uma GPU moderna com capacidade 3D, de forma que
ele deveria ser usado somente se a GPU não for
suportada por outros controladores)
softpipe
(também usa CPU
para rasterização 3D, porém mais lento que llvmpipe.
Não existe muita razão para usá-lo, a menos que LLVM
não esteja disponível)
iris
(para GPUs da Intel
fornecidas com CPUs Broadwell ou mais recentes, ou como
uma placa dedicada PCIe)
crocus
(para GPUs da Intel
GMA 3000, série X3000, série 4000 ou série X4000
fornecidas com chipsets ou GPUs HD da Intel fornecidas
com CPUs pré Broadwell)
i915
(para GPUs da Intel
GMA 900, 950, 3100 ou 3150 fornecidas com chipsets ou
CPUs Atom D/N 4xx/5xx)
zink
(usa Vulkan para
implementar OpenGL e, embora instável às vezes, pode
ser um substituto decente para controladores Gallium de
baixo desempenho, como o Nouveau)
-D
vulkan-drivers=auto
: Esse parâmetro controla
quais controladores Vulkan deveriam ser construídos:
auto
seleciona todos os
controladores Vulkan disponíveis para x86. Com uma
lista separada por vírgulas, somente um subconjunto
desses controladores será construído. Se você souber
exatamente quais controladores precisa, poderá
selecioná-los explicitamente. Por exemplo, -D vulkan-drivers=amd,nouveau,swrast
.
amd
(para Radeon HD 7730
da AMD ou GPUs mais recentes da AMD)
intel
(para GPUs da Intel
fornecidas com Skylake ou CPUs mais recentes, ou como
uma placa dedicada PCIe)
intel_hasvk
(para GPUs da
Intel fornecidas com CPUs Ivy Bridge, Haswell ou
Broadwell)
nouveau
(para GTX 16XX,
RTX 20XX ou GPUs mais recentes da NVIDIA)
swrast
(para usar a CPU
para rasterização 3D). Observe que ele é muito mais
lento que usar uma GPU moderna com capacidade 3D, de
forma que ele deveria ser usado somente se a GPU não
for suportada por outros controladores.
""
(lista vazia, use
-D vulkan-drivers=""
se
você não tiver instalado e não planeja instalar
Vulkan-Loader-1.4.304)
-D platforms=...
:
Esse parâmetro controla quais sistemas de janelas serão
suportados. As plataformas Linux disponíveis são x11 e
wayland.
-D valgrind=disabled
:
Esse parâmetro desabilita o uso do Valgrind durante o
processo de construção. Remova esse parâmetro se você tiver o
Valgrind instalado e desejar verificar vazamentos de memória.
-D video-codecs=all
:
Esse parâmetro habilita construir
codificadores/decodificadores para formatos de vídeo cobertos
por patentes de terceiros(as).
-D
libunwind=disabled
: Esse parâmetro desabilita o
uso da libunwind.
meson configure -D
build-tests=true: Esse comando reconfigurará
a construção para configurar -D
build-tests=true
, mas manterá as outras opções
especificadas no comando meson
setup sem mudanças. Ele permite que
ninja test
construa e execute testes unitários.
-D egl-native-platform="..."
:
Esse parâmetro controla qual suporte da Biblioteca de
Gráficos Incorporados será construído. As opções de Linux
disponíveis são auto (padrão), x11, wayland, surfaceless e
drm.
-D legacy-x11="..."
Esse
parâmetro controla quais recursos legados do X11 recebem
suporte integrado. As opções disponíveis do Linux são none
(padrão) e dri2. Esses recursos raramente são mais
necessários.
é uma demonstração GL útil para solucionar problemas gráficos |
|
é um aplicativo de diagnóstico que exibe informações relativas ao hardware gráfico e bibliotecas GL instaladas |
|
implementa funções de Graphics Buffer Management
necessitadas pela |
|
é uma sobra que permite que o servidor Xorg coopere com os controladores Gallium3D |
|
fornece uma interface gráfica de plataforma nativa conforme definido pela especificação EGL-1.4 |
|
contém todos os controladores Gallium3D |
|
é a biblioteca Graphics Buffer Manager do Mesa |
|
é a implementação Mesa da API OpenGL |
|
é a biblioteca OpenGL ES 1.1 do Mesa |
|
é a biblioteca OpenGL ES 2.0 do Mesa |
|
é a principal biblioteca OpenGL do Mesa |
|
é o rastreador de estado XA para o controlador VMWare vmwgfx |
O pacote "xbitmaps" contém imagens de mapa de bit usadas por vários aplicativos construídos no capítulo do "Xorg".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.x.org/pub/individual/data/xbitmaps-1.1.3.tar.xz
Soma de verificação MD5 da transferência: 2b03f89d78fb91671370e77d7ad46907
Tamanho da transferência: 108 KB
Espaço em disco estimado exigido: 1,6 MB
Tempo de construção estimado: menos que 0,1 UPC
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
$XORG_PREFIX
/include/X11/bitmaps
Os aplicativos do "Xorg" fornecem os aplicativos esperados disponíveis em implementações anteriores do Janelas "X".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.x.org/pub/individual/app/
Tamanho da transferência: 4,9 MB
Espaço em disco estimado exigido: 48 MB
Tempo de construção estimado: 1,5 UPC (ignorando o tempo para transferir)
libpng-1.6.46, Mesa-24.3.4, xbitmaps-1.1.3 e xcb-util-0.4.1
Linux-PAM-1.7.0 e ambos cairo-5c e Nickle (somente se você desejar tentar executar o não documentado conjunto de comandos sequenciais xkeyhost).
Primeiro, crie uma lista de arquivos a serem baixados. Esse arquivo também será usado para verificar a integridade das transferências quando concluídas:
cat > app-7.md5 << "EOF"
30f898d71a7d8e817302970f1976198c iceauth-1.0.10.tar.xz
7dcf5f702781bdd4aaff02e963a56270 mkfontscale-1.2.3.tar.xz
05423bb42a006a6eb2c36ba10393de23 sessreg-1.1.3.tar.xz
1d61c9f4a3d1486eff575bf233e5776c setxkbmap-1.3.4.tar.xz
9f7a4305f0e79d5a46c3c7d02df9437d smproxy-1.0.7.tar.xz
595c941d9aff6f6d6e038c4e42dcff58 xauth-1.1.3.tar.xz
37063ccf902fe3d55a90f387ed62fe1f xcmsdb-1.0.7.tar.xz
89e81a1c31e4a1fbd0e431425cd733d7 xcursorgen-1.0.8.tar.xz
933e6d65f96c890f8e96a9f21094f0de xdpyinfo-1.3.4.tar.xz
34aff1f93fa54d6a64cbe4fee079e077 xdriinfo-1.0.7.tar.xz
f29d1544f8dd126a1b85e2f7f728672d xev-1.2.6.tar.xz
41afaa5a68cdd0de7e7ece4805a37f11 xgamma-1.0.7.tar.xz
45c7e956941194e5f06a9c7307f5f971 xhost-1.0.10.tar.xz
8e4d14823b7cbefe1581c398c6ab0035 xinput-1.6.4.tar.xz
83d711948de9ccac550d2f4af50e94c3 xkbcomp-1.4.7.tar.xz
543c0535367ca30e0b0dbcfa90fefdf9 xkbevd-1.1.6.tar.xz
07483ddfe1d83c197df792650583ff20 xkbutils-1.0.6.tar.xz
f62b99839249ce9a7a8bb71a5bab6f9d xkill-1.0.6.tar.xz
da5b7a39702841281e1d86b7349a03ba xlsatoms-1.1.4.tar.xz
ab4b3c47e848ba8c3e47c021230ab23a xlsclients-1.1.5.tar.xz
ba2dd3db3361e374fefe2b1c797c46eb xmessage-1.0.7.tar.xz
0d66e07595ea083871048c4b805d8b13 xmodmap-1.0.11.tar.xz
ab6c9d17eb1940afcfb80a72319270ae xpr-1.2.0.tar.xz
5ef4784b406d11bed0fdf07cc6fba16c xprop-1.2.8.tar.xz
dc7680201afe6de0966c76d304159bda xrandr-1.5.3.tar.xz
c8629d5a0bc878d10ac49e1b290bf453 xrdb-1.2.2.tar.xz
55003733ef417db8fafce588ca74d584 xrefresh-1.1.0.tar.xz
18ff5cdff59015722431d568a5c0bad2 xset-1.2.5.tar.xz
fa9a24fe5b1725c52a4566a62dd0a50d xsetroot-1.1.3.tar.xz
d698862e9cad153c5fefca6eee964685 xvinfo-1.1.5.tar.xz
b0081fb92ae56510958024242ed1bc23 xwd-1.0.9.tar.xz
c91201bc1eb5e7b38933be8d0f7f16a8 xwininfo-1.1.6.tar.xz
3e741db39b58be4fef705e251947993d xwud-1.0.7.tar.xz
EOF
Para baixar os arquivos necessários usando o Wget-1.25.0, use os seguintes comandos:
mkdir app && cd app && grep -v '^#' ../app-7.md5 | awk '{print $2}' | wget -i- -c \ -B https://www.x.org/pub/individual/app/ && md5sum -c ../app-7.md5
Quando instalar múltiplos pacotes em um conjunto de comandos sequenciais, a instalação precisa ser feita como o(a) usuário(a) root. Existem três opções gerais que podem ser usadas para se fazer isso:
Executar o conjunto inteiro de comandos sequenciais como o(a) usuário(a) root (não recomendado).
Usar o comando sudo oriundo do pacote Sudo-1.9.16p2.
Usar su -c "argumentos do comando" (aspas exigidas), que solicitará a senha do(a) root para cada interação do loop.
Uma maneira de se lidar com essa situação é a de se criar uma função curta do bash que selecione automaticamente o método apropriado. Uma vez que o comando esteja configurado no ambiente, ele não precisa ser configurado novamente.
as_root() { if [ $EUID = 0 ]; then $* elif [ -x /usr/bin/sudo ]; then sudo $* else su -c \\"$*\\" fi } export -f as_root
Primeiro, inicie um sub shell que sairá em caso de erro:
bash -e
Instale todos os pacotes executando os seguintes comandos:
for package in $(grep -v '^#' ../app-7.md5 | awk '{print $2}') do packagedir=${package%.tar.?z*} tar -xf $package pushd $packagedir ./configure $XORG_CONFIG make as_root make install popd rm -rf $packagedir done
Finalmente, saia do shell que foi iniciado anteriormente:
exit
A menos que você tenha instalado as dependências opcionais, remova um conjunto de comandos sequenciais não documentado que é informado que está quebrado ("xkeystone" fornecido pelo pacote "xrandr").
as_root rm -f $XORG_PREFIX/bin/xkeystone
é o utilitário "ICE" de arquivo de autoridade |
|
cria um índice de arquivos de fontes do "X" em um diretório |
|
cria um índice de arquivos de fontes escaláveis para o "X" |
|
gerencia entradas "utmp"/"wtmp" para clientes não "init" |
|
configura o teclado usando a Extensão de Teclado do "X" |
|
é o "Proxy" do Gerenciador de Sessão |
|
é o utilitário de arquivo de autoridade do "X" |
|
é o utilitário "Device Color Characterization" para o Sistema de Gerenciamento de Cores do "X" |
|
cria um arquivo de cursor "X" a partir de uma coleção de imagens "PNG" |
|
despeja uma janela do "X" diretamente em uma impressora |
|
é um utilitário de exibição de informações para o "X" |
|
consulta informações de configuração de controladores "DRI" |
|
imprime o conteúdo de eventos do "X" |
|
altera a correção gama de um monitor por intermédio do servidor "X" |
|
é um aplicativo de controle de acesso ao servidor para o "X" |
|
é um utilitário para configurar e testar dispositivos de entrada do "X" |
|
é um aplicativo utilitário "XKB" que gera um evento de campainha |
|
compila uma descrição do teclado do "XKB" |
|
é o processo de segundo plano de eventos do "XKB" |
|
mostra a situação do "XKB" dos "LEDs" do teclado |
|
monitora teclas modificadoras e "LEDs" |
|
mata um cliente por recurso dele do "X" |
|
lista átomos internos definidos no servidor |
|
lista aplicativos cliente em execução em um "display" |
|
exibe uma mensagem ou consulta em uma janela |
|
é um utilitário para modificar mapas de teclado e mapeamentos de botões de ponteiro no "X" |
|
imprime um despejo da janela do "X" |
|
é um exibidor de propriedades para o "X" |
|
é uma interface primitiva de linha de comando para a extensão "RandR" |
|
é o utilitário de base de dados de recursos do servidor "X" |
|
atualiza toda ou parte de uma tela do "X" |
|
é o utilitário de preferência do(a) usuário(a) para o "X" |
|
é o utilitário de configuração de parâmetros da janela raiz para o "X" |
|
imprime informações do adaptador de extensão "X-Video" |
|
despeja uma imagem de uma janela do "X" |
|
é um utilitário de informações de janela para o "X" |
|
é um exibidor de imagens para o "X" |
O pacote luit é um filtro que pode ser executado entre uma aplicação arbitrária e um emulador de terminal UTF-8. Ele converterá a saída do aplicativo da codificação da localidade para UTF-8 e converterá a entrada do terminal de UTF-8 para codificação da localidade.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://invisible-mirror.net/archives/luit/luit-20240910.tgz
Soma de verificação MD5 da transferência: c9db8c12a3ad697a075179f07b099eaf
Tamanho da transferência: 208 KB
Espaço em disco estimado exigido: 1,8 MB
Tempo de construção estimado: menos que 0,1 UPC
Instale luit executando os seguintes comandos:
./configure $XORG_CONFIG && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
O pacote "xcursor-themes" contém os temas de cursor animados "redglass" e "whiteglass".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.x.org/pub/individual/data/xcursor-themes-1.0.7.tar.xz
Soma de verificação MD5 da transferência: 070993be1f010b09447ea24bab2c9846
Tamanho da transferência: 1,4 MB
Espaço em disco estimado exigido: 15 MB
Tempo de construção estimado: menos que 0,1 UPC
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
Os pacotes de fontes do "Xorg" fornecem algumas fontes escaláveis e pacotes de suporte para aplicações do "Xorg". Muitas pessoas vão querer instalar outras fontes "TTF" ou "OTF" além ou em vez delas. Algumas estão listadas em "“Fontes TTF e OTF”".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.x.org/pub/individual/font/
Tamanho da transferência: 3,0 MB
Espaço em disco estimado exigido: 8,8 MB
Tempo de construção estimado: 0,1 UPC
Primeiro, crie uma lista de arquivos a serem baixados. Esse arquivo também será usado para verificar a integridade das transferências quando concluídas:
cat > font-7.md5 << "EOF"
a6541d12ceba004c0c1e3df900324642 font-util-1.4.1.tar.xz
a56b1a7f2c14173f71f010225fa131f1 encodings-1.1.0.tar.xz
79f4c023e27d1db1dfd90d041ce89835 font-alias-1.0.5.tar.xz
546d17feab30d4e3abcf332b454f58ed font-adobe-utopia-type1-1.0.5.tar.xz
063bfa1456c8a68208bf96a33f472bb1 font-bh-ttf-1.0.4.tar.xz
51a17c981275439b85e15430a3d711ee font-bh-type1-1.0.4.tar.xz
00f64a84b6c9886040241e081347a853 font-ibm-type1-1.0.4.tar.xz
fe972eaf13176fa9aa7e74a12ecc801a font-misc-ethiopic-1.0.5.tar.xz
3b47fed2c032af3a32aad9acc1d25150 font-xfree86-type1-1.0.5.tar.xz
EOF
Para baixar os arquivos necessários usando o Wget-1.25.0, use os seguintes comandos:
mkdir font && cd font && grep -v '^#' ../font-7.md5 | awk '{print $2}' | wget -i- -c \ -B https://www.x.org/pub/individual/font/ && md5sum -c ../font-7.md5
Quando instalar múltiplos pacotes em um conjunto de comandos sequenciais, a instalação precisa ser feita como o(a) usuário(a) root. Existem três opções gerais que podem ser usadas para se fazer isso:
Executar o conjunto inteiro de comandos sequenciais como o(a) usuário(a) root (não recomendado).
Usar o comando sudo oriundo do pacote Sudo-1.9.16p2.
Usar su -c "argumentos do comando" (aspas exigidas), que solicitará a senha do(a) root para cada interação do loop.
Uma maneira de se lidar com essa situação é a de se criar uma função curta do bash que selecione automaticamente o método apropriado. Uma vez que o comando esteja configurado no ambiente, ele não precisa ser configurado novamente.
as_root() { if [ $EUID = 0 ]; then $* elif [ -x /usr/bin/sudo ]; then sudo $* else su -c \\"$*\\" fi } export -f as_root
Primeiro, inicie um sub shell que sairá em caso de erro:
bash -e
Instale todos os pacotes executando os seguintes comandos:
for package in $(grep -v '^#' ../font-7.md5 | awk '{print $2}') do packagedir=${package%.tar.?z*} tar -xf $package pushd $packagedir ./configure $XORG_CONFIG make as_root make install popd as_root rm -rf $packagedir done
Finalmente, saia do shell que foi iniciado anteriormente:
exit
Quando todas as fontes tiverem sido instaladas, o sistema
precisará ser configurado de forma que o "Fontconfig" consiga encontrar as fontes
"TrueType". Como as fontes estão fora do caminho padrão de
pesquisa de vários pacotes se o
"XORG_PREFIX
" não for
"/usr
", [então]
crie links simbólicos para os diretórios de fontes "TrueType"
do "Xorg" em "/usr/share/fonts
" executando os seguintes
comandos como o(a) usuário(a) "root
":
install -v -d -m755 /usr/share/fonts && ln -svfn $XORG_PREFIX/share/fonts/X11/OTF /usr/share/fonts/X11-OTF && ln -svfn $XORG_PREFIX/share/fonts/X11/TTF /usr/share/fonts/X11-TTF
$XORG_PREFIX
/share/fonts
O pacote "XKeyboardConfig" contém a base de dados de configuração do teclado para o Sistema de Janelas "X".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.x.org/pub/individual/data/xkeyboard-config/xkeyboard-config-2.44.tar.xz
Soma de verificação MD5 da transferência: 623a88fe63c6aefe3621bdfd5ba72764
Tamanho da transferência: 888 KB
Espaço em disco estimado exigido: 18 MB
Tempo de construção estimado: 0,1 UPC (com testes)
Instale o "XKeyboardConfig" executando os seguintes comandos:
mkdir build && cd build && meson setup --prefix=$XORG_PREFIX --buildtype=release .. && ninja
Para testar os resultados, emita: ninja test.
Agora, como o(a) usuário(a) "root
":
ninja install
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
$XORG_PREFIX
/share/X11/xkb
O pacote "Xwayland" é um servidor "Xorg" executando sobre o servidor "wayland". Ele foi separado do pacote principal do servidor "Xorg". Permite executar clientes do "X" dentro de uma sessão "wayland".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.x.org/pub/individual/xserver/xwayland-24.1.6.tar.xz
Soma de verificação MD5 da transferência: 78067c218323fe2a496ca5f2145fe7ab
Tamanho da transferência: 1,2 MB
Espaço em disco estimado exigido: 28 MB (adicionar 362 MB para os testes)
Tempo de construção estimado: 0,2 UPC (com paralelismo=4; adicionar 1,7 UPC para testes, não incluindo o tempo de clonagem)
libxcvt-0.1.3, Pixman-0.44.2, wayland-protocols-1.40, Aplicativos do Xorg (tempo de execução) e Fontes do Xorg (somente font-util)
libepoxy-1.5.10, libtirpc-1.3.6 e Mesa-24.3.4
git-2.48.1 (para baixar pacotes necessários para os testes), libei-1.3.0, libgcrypt-1.11.0, Nettle-3.10.1, xmlto-0.0.29, Fontes Legadas do Xorg (somente bdftopcf, para construir fontes exigidas para os testes), rendercheck (para testes) e weston (para testes)
Instale o "xwayland" executando os seguintes comandos:
sed -i '/install_man/,$d' meson.build && mkdir build && cd build && meson setup .. \ --prefix=$XORG_PREFIX \ --buildtype=release \ -D xkb_output_dir=/var/lib/xkb && ninja
Construir a estrutura de teste precisa de algum trabalho. Primeiro, weston traz várias dependências, mas o número pode ser reduzido desabilitando recursos desnecessários. O comando meson para uma construção simplificada do weston é mostrado em construção da integração contínua do(a) desenvolvedor(a).
Executar os testes envolve transferir outras duas estruturas, em adição às mencionadas dependências opcionais:
mkdir tools &&
pushd tools &&
git clone https://gitlab.freedesktop.org/mesa/piglit.git --depth 1 &&
cat > piglit/piglit.conf << EOF &&
[xts]
path=$(pwd)/xts
EOF
git clone https://gitlab.freedesktop.org/xorg/test/xts --depth 1 &&
export DISPLAY=:22 &&
../hw/vfb/Xvfb $DISPLAY &
VFB_PID=$! &&
cd xts &&
CFLAGS=-fcommon ./autogen.sh &&
make &&
kill $VFB_PID &&
unset DISPLAY VFB_PID &&
popd
Então os testes podem ser executados com:
XTEST_DIR=$(pwd)/tools/xts PIGLIT_DIR=$(pwd)/tools/piglit ninja test
Agora, como o(a) usuário(a) "root
":
ninja install
Se o "Xorg-Server-21.1.16" não estiver
instalado e você não planeja instalá-lo mais tarde, [então]
você pode instalar o "Xvfb" a partir deste
pacote. Como o(a) usuário(a) "root
":
install -vm755 hw/vfb/Xvfb /usr/bin
sed -i '/install_man/,$d' meson.build: Impede a instalação de uma página de manual para o "Xserver", que também é fornecida pelo "Xorg-Server-21.1.16". Remova esse comando se o "Xorg-Server-21.1.16" não estiver instalado e você não planejar instalá-lo mais tarde.
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
-D secure-rpc=false
: Essa opção
desabilita construir suporte RPC se libtirpc-1.3.6 não
estiver instalado.
O Servidor "Xorg" é o núcleo do Sistema de Janelas "X".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.x.org/pub/individual/xserver/xorg-server-21.1.16.tar.xz
Soma de verificação MD5 da transferência: f1a5ec0939c0efd7fde1418989b579db
Tamanho da transferência: 4,8 MB
Espaço em disco estimado exigido: 151 MB (com testes)
Tempo de construção estimado: 0,3 UPC (usando paralelismo = 4; com testes)
Com a remoção dos controladores xf86-video-*, a opção TearFree não mais está funcional. Para contornar isso, o fluxo de desenvolvimento adicionou a opção TearFree ao controlador padrão de configuração de modo. Este remendo reimplementa esse recurso. Aplique este remendo se você for usar o Xorg em um ambiente sem um compositor (como TWM, IceWM, Openbox ou Fluxbox).
Remendo opcional: https://www.linuxfromscratch.org/patches/blfs/12.3/xorg-server-21.1.16-tearfree_backport-1.patch
libxcvt-0.1.3, Pixman-0.44.2, Fontes do Xorg (somente "font-util") e, ao tempo da execução, xkeyboard-config-2.44
libepoxy-1.5.10 (necessário para glamor), libtirpc-1.3.6, Systemd-257.3 (tempo de execução), e xorg-libinput-1.5.0 (tempo de execução)
Embora seja possível executar o servidor Xorg sem
Systemd-257.3 (reconstruído com
PAM) funcionando, exigiria executar o servidor Xorg
como o(a) usuário(a) root
,
ou o servidor Xorg funcionará mal ou até mesmo falhará ao
iniciar. Os(As) editores(as) do BLFS fortemente
desencorajam ignorar essa
dependência. Não tente fazer isso a menos que você
realmente saiba o que está fazendo.
acpid-2.0.34 (tempo de execução), Doxygen-1.13.2 (para construir documentação da API), fop-2.10 (para construir documentação), libunwind-1.8.1, Nettle-3.10.1, libgcrypt-1.11.0, Utilitários XCB (para construir Xephyr), xmlto-0.0.29 (para construir documentação), xkeyboard-config-2.44 (para testes), rendercheck (para testes) e xorg-sgml-doctools (para construir documentação)
Os controladores tradicionais Device Dependent X (DDX) foram
removidos do BLFS em favor do controlador modesetting_drv
que será construído como
parte desse pacote. Para usar o controlador modesetting_drv
, o núcleo precisa fornecer
um controlador Direct Rendering Manager (DRM) para a tua GPU.
Se a tua GPU suporta aceleração 3D e Mesa-24.3.4 fornece um controlador Gallium3D para utilizar a capacidade 3D dele, você já deveria ter habilitado as necessárias opções de configuração de núcleo em Configuração de Núcleo do Mesa. Caso contrário, você precisa encontrar a opção de configuração do núcleo do controlador DRM para a GPU e habilitá-la. Notavelmente, as GPUs virtuais fornecidas por alguns gerenciadores de máquinas virtuais:
Device Drivers ---> Graphics support ---> <*/M> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) ---> ... [DRM] < /*/M> DRM driver for VMware Virtual GPU [DRM_VMWGFX] < /*/M> DRM Support for bochs dispi vga interface (qemu stdvga) ... [DRM_BOCHS] < /*/M> Virtual Box Graphics Card [DRM_VBOXVIDEO]
Se o núcleo não fornecer um controlador DRM para a tua GPU, na maioria dos sistemas x86 o controlador DRM “simple frame buffer” executando em VESA ou UEFI frame buffer pode ser usado como substituto. Habilite as seguintes opções nas configurações do núcleo, se você não tiver um controlador DRM dedicado para a GPU ou quiser manter o controlador simple frame buffer como um substituto caso o controlador dedicado falhe:
Device Drivers ---> Firmware Drivers ---> [*] Mark VGA/VBE/EFI FB as generic system framebuffer [SYSFB_SIMPLEFB] Graphics support ---> <*> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) ---> ... [DRM] <*> Simple framebuffer driver [DRM_SIMPLEDRM]
Para permitir que o núcleo imprima mensagens de depuração em
um estágio inicial da inicialização, CONFIG_DRM
e CONFIG_DRM_SIMPLEDRM
não deveriam ser
construídos como módulos do núcleo, a menos que um initramfs
seja usado.
Se você quiser usar o controlador simple frame buffer em um
sistema inicializado via BIOS (em vez de UEFI), adicione a
seguinte linha antes do primeiro bloco menuentry
no arquivo /boot/grub/grub. cfg
para inicializar o
VESA frame buffer:
set gfxpayload=1024x768x32
Você pode substituir 1024
,
768
e 32
por uma configuração de resolução e
profundidade de cor adequada ao teu monitor.
Se todos esses controladores DRM não funcionarem para você e
você precisar usar um controlador DDX com um controlador de
GPU de núcleo não DRM (geralmente chamado de CONFIG_FB_*
na configuração do núcleo, ou
existente como módulos do núcleo fora da árvore) ou você
precisar de uma funcionalidade específica do dispositivo que
exige um controlador DDX, consulte
uma versão anterior do BLFS ou
uma versão ainda mais anterior para mais controladores
DDX.
Primeiro, se você precisar da opção TearFree para contornar o rasgo de tela, aplique o remendo reimplementado:
patch -Np1 -i ../xorg-server-21.1.16-tearfree_backport-1.patch
Instale o servidor executando os seguintes comandos:
mkdir build && cd build && meson setup .. \ --prefix=$XORG_PREFIX \ --localstatedir=/var \ -D glamor=true \ -D xkb_output_dir=/var/lib/xkb && ninja
Para testar os resultados, emita: "ninja test". Você precisará
executar "ldconfig" como o(a)
usuário(a) "root
" primeiro ou
alguns testes possivelmente falhem.
Agora como o(a) usuário(a) "root
":
ninja install && mkdir -pv /etc/X11/xorg.conf.d
-D glamor=true
:
Certifique-se de construir o módulo Glamour. Ele é necessário
para construir o controlador modesetting_drv
que substitui os
tradicionais controladores Device Dependent X (DDX).
-D secure-rpc=false
: Essa opção
desabilita construir suporte RPC se libtirpc-1.3.6 não
estiver instalado.
-D suid_wrapper=true
: Constrói o
involucrador suid-root para suporte de controlador legado DDX
em sistemas xserver sem raiz.
-D xephyr=true
: Essa opção
permite construir Xephyr se as dependências dele forem
atendidas.
modesetting_drv
calcula linhas do modo "GTF" do "VESA" |
|
é um link simbólico para o "Xorg" |
|
é um servidor aninhado "X" que suporta extensões modernas "X" |
|
é um servidor aninhado "X" |
|
é o Servidor "X11R7" "X" |
|
é o servidor virtual de "framebuffer" "X" para o X Versão 11 |
|
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 |
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).
O pacote libevdev contém funções comuns para controladores de entrada do Xorg.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.freedesktop.org/software/libevdev/libevdev-1.13.3.tar.xz
Soma de verificação MD5 da transferência: 57ee77b7d4c480747e693779bb92fb84
Tamanho da transferência: 452 KB
Espaço em disco estimado exigido: 6,2 MB (com testes)
Tempo de construção estimado: menos que 0,1 UPC (com testes)
Doxygen-1.13.2 e Valgrind-3.24.0 (opcional para testes)
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.
Instale o libevdev executando os seguintes comandos:
mkdir build && cd build && meson setup .. \ --prefix=$XORG_PREFIX \ --buildtype=release \ -D documentation=disabled && ninja
Os testes de regressão podem ser executados como o(a)
usuário(a) root
, com
ninja test,
em uma sessão gráfica. Você precisa ter habilitado a
configuração CONFIG_INPUT_UINPUT no núcleo para cobertura
completa do teste. Se estiver habilitado como um módulo, o
módulo será chamado uinput e precisa ser
carregado antes de se executar os testes. Observe que, em
alguns sistemas, os testes possivelmente causem um
travamento total e exijam uma reinicialização. Em laptops,
o sistema entrará em suspensão e precisará ser despertado
para finalizar as suítes de teste.
Agora, como o(a) usuário(a) root
:
ninja install
é uma ferramenta para mudar algumas propriedades de dispositivo do núcleo |
|
é uma ferramenta para estimar a resolução de um mouse |
|
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 |
|
é uma biblioteca de funções de entrada do controlador do Xorg |
O pacote "Controlador Evdev do Xorg" contém um controlador genérico de entrada do Linux para o servidor "Xorg X". Ele lida com teclado, mouse, "touchpads" e dispositivos "wacom", embora para manuseio avançado de "touchpad" e "wacom" controladores adicionais sejam exigidos.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.x.org/pub/individual/driver/xf86-input-evdev-2.11.0.tar.xz
Soma de verificação MD5 da transferência: faa89be0ef86aebd6fd0a03eed23839c
Tamanho da transferência: 344 KB
Espaço em disco estimado exigido: 3,7 MB
Tempo de construção estimado: menos que 0,1 UPC
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
libinput é uma biblioteca que manuseia dispositivos de entrada para servidores de exibição e outras aplicações que precisam lidar diretamente com dispositivos de entrada.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://gitlab.freedesktop.org/libinput/libinput/-/archive/1.27.1/libinput-1.27.1.tar.gz
Soma de verificação MD5 da transferência: 3b311d8953f8717f711a78b60087997e
Tamanho da transferência: 1,1 MB
Espaço em disco estimado exigido: 14 MB (adicionar 35 MB para documentação)
Tempo de construção estimado: 0,1 UPC (adicionar 0,1 UPC para documentação e 0,1 UPC para testes pequenos)
Valgrind-3.24.0 (para executar os testes), GTK-3.24.48 (para construir o visualizador de eventos da GUI), libunwind-1.8.1 (exigido para testes), libwacom-2.14.0, Doxygen-1.13.2, Graphviz-12.2.1, recommonmark-0.7.1 e sphinx_rtd_theme-3.0.2 (exigido para construir documentação), pyparsing-3.2.1 (para um teste de não root), e pytest-8.3.4 (para outro teste de não root)
Embora a libinput funcione com a mesma configuração de
núcleo usada pela libevdev-1.13.3, a suíte de teste
padrão e mais abrangente dela exige a presença de
/dev/uinput
(assim como
Valgrind-3.24.0 e libunwind-1.8.1).
Se você desejar executar a suíte padrão de teste, habilite a seguinte opção na configuração do núcleo e recompile o núcleo se necessário:
Device Drivers ---> Input device support ---> -*- Generic input layer (needed for keyboard, mouse, ...) [INPUT] [*] Miscellaneous devices ---> [INPUT_MISC] <*/M> User level driver support [INPUT_UINPUT]
Se você construir isso como um módulo, ele precisará ser inserido antes que a suíte de teste execute.
Instale o libinput executando os seguintes comandos:
mkdir build && cd build && meson setup .. \ --prefix=$XORG_PREFIX \ --buildtype=release \ -D debug-gui=false \ -D tests=false \ -D libwacom=false \ -D udev-dir=/usr/lib/udev && ninja
Se você quiser executar a suíte de teste padrão, remova -D tests do comando meson acima. Por favor, leia “Configuração do Núcleo para Executar a Suíte de Teste da Libinput” (acima).
Se tiver decidido executar a suíte de teste padrão, você pode executar os testes como o(a) usuário(a) root executando: ninja test. Existem mais de 30 testes e todos deveriam passar se você instalou as dependências opcionais. No entanto, você consegue executar 6 testes menores como o(a) usuário(a) regular executando o mesmo comando, embora você não precise remover o parâmetro -D tests. As medições de teste são baseadas somente nesses testes.
Agora, como o(a) usuário(a) root
:
ninja install
Se você tiver passado -D
documentation=true
para meson, você pode instalar
a documentação gerada executando os seguintes comandos como
o(a) usuário(a) root
:
install -v -dm755 /usr/share/doc/libinput-1.27.1/html && cp -rv Documentation/* /usr/share/doc/libinput-1.27.1/html
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
-D debug-gui=false
:
Essa chave desabilita a criação de um auxiliar visual de
depuração para libinput. Remova se o quiser e você tiver o
GTK-3.24.48 instalado.
-D tests=false
:
Essa chave desabilita a compilação da suíte de teste
padrão. Mesmo com os testes definidos como false, você
ainda consegue executar os seis primeiros testes menores
como um(a) usuário(a) regular, mas um será ignorado se
pyparsing-3.2.1 não estiver
instalado, e outro se pytest-8.3.4 não estiver instalado.
-D libwacom=false
:
Remova essa opção se você tiver libwacom-2.14.0
instalado ou se estiver instalando o GNOME.
-D
udev-dir=/usr/lib/udev
: Caso o valor de
XORG_PREFIX
não esteja
configurado como /usr
, essa
opção evita que o pacote instale regras e auxiliares do
Udev em $XORG_PREFIX/lib/udev
, que não é
pesquisado pelo processo de segundo plano do Udev. Essa
opção não é necessária para sistemas com XORG_PREFIX
configurado como /usr
, mas não causa danos.
-D documentation=true
: Essa
chave habilita a geração da documentação. Adicione-a se
quiser gerar a documentação. Você precisa ter Doxygen-1.13.2 e Graphviz-12.2.1
instalados.
O Controlador Libinput do X.Org é um involucrador fino em torno da libinput e permite que a libinput seja usada para dispositivos de entrada no X. Esse controlador pode ser usado como substituto imediato para o evdev e o synaptics.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.x.org/pub/individual/driver/xf86-input-libinput-1.5.0.tar.xz
Soma de verificação MD5 da transferência: f8d0fb6987d843e688d597c2b66ec824
Tamanho da transferência: 324 KB
Espaço em disco estimado exigido: 3,9 MB (com testes)
Tempo de construção estimado: menos que 0,1 UPC (com testes)
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
O pacote Controlador "Synaptics" do "Xorg" contém o Controlador de Entrada "X.Org", aplicativos de suporte e "SDK" para "touchpads" "Synaptics". Embora o controlador "evdev" consiga lidar muito bem com "touchpads", esse controlador é exigido se você quiser usar recursos avançados como toque múltiplo, rolagem com "touchpad", desligar o "touchpad" durante a digitação, etc.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.x.org/pub/individual/driver/xf86-input-synaptics-1.10.0.tar.xz
Soma de verificação MD5 da transferência: 017383c13a0d0f4cb320be477ab25513
Tamanho da transferência: 424 KB
Espaço em disco estimado exigido: 5,3 MB
Tempo de construção estimado: menos que 0,1 UPC
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
O pacote Controlador "Wacom" do "Xorg" contém o controlador "X11" do "X.Org" e "SDK" para "Wacom" e "tablets" semelhantes a "Wacom". Não é exigido usar um "tablet" "Wacom"; o controlador "xf86-input-evdev" consegue lidar com esses dispositivos sem problemas.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/linuxwacom/xf86-input-wacom/releases/download/xf86-input-wacom-1.2.3/xf86-input-wacom-1.2.3.tar.bz2
Soma de verificação MD5 da transferência: ef8a6cc34623db6c3482508374863d51
Tamanho da transferência: 660 KB
Espaço em disco estimado exigido: 8,1 MB (com testes)
Tempo de construção estimado: 0,1 UPC (com testes)
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]
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
O pacote "twm" contém um gerenciador de janelas extremamente mínimo.
Esse pacote é fornecido para testar a instalação completa do Xorg.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.x.org/pub/individual/app/twm-1.0.12.tar.xz
Soma de verificação MD5 da transferência: 805ee08b5a87e1103dfe2eb925b613b4
Tamanho da transferência: 260 KB
Espaço em disco estimado exigido: 3,8 MB
Tempo de construção estimado: menos que 0,1 UPC
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
sed -i -e '/^rcdir =/s...: Esse comando garante que o arquivo de configuração do "twm" seja instalado no local apropriado.
"xterm" é um emulador de terminal para o Sistema de Janelas "X".
Esse pacote é fornecido para testar a instalação completa do Xorg.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://invisible-mirror.net/archives/xterm/xterm-397.tgz
Soma de verificação MD5 da transferência: f8bffb37b6dcbb9757c2a8f7484e5085
Tamanho da transferência: 1,6 MB
Espaço em disco estimado exigido: 19 MB
Tempo de construção estimado: 0,1 UPC (com paralelismo=4)
Uma fonte mono espaçada "TTF" ou "OTF", como "Fontes Dejavu"
Instale o "xterm" executando os seguintes comandos:
sed -i '/v0/{n;s/new:/new:kb=^?:/}' termcap && printf '\tkbs=\\177,\n' >> terminfo && TERMINFO=/usr/share/terminfo \ ./configure $XORG_CONFIG \ --with-app-defaults=/etc/X11/app-defaults && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) "root
":
make install && mkdir -pv /usr/share/applications && cp -v *.desktop /usr/share/applications/
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
".
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
é um conjunto de comandos sequenciais involucrador para configurar o "xterm" com uma localidade "KOI8-R" |
|
imprime um comando de "shell" para configurar as variáveis de ambiente "TERM" e "TERMCAP" para indicar o tamanho atual da janela do "xterm" |
|
é um conjunto de comandos sequenciais involucrador que modifica a localidade atual para usar "UTF-8" e inicia o "xterm" com as configurações adequadas |
|
é um emulador de terminal para o Sistema de Janelas "X" |
O pacote "xclock" contém um aplicativo simples de relógio que é usado na configuração padrão do "xinit".
Esse pacote é fornecido para testar a instalação completa do Xorg.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.x.org/pub/individual/app/xclock-1.1.1.tar.xz
Soma de verificação MD5 da transferência: 1273e3f4c85f1801be11a5247c382d07
Tamanho da transferência: 156 KB
Espaço em disco estimado exigido: 1,5 MB
Tempo de construção estimado: menos que 0,1 UPC
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
O pacote "xinit" contém um conjunto usável de comandos sequenciais para iniciar o "xserver".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.x.org/pub/individual/app/xinit-1.4.3.tar.xz
Soma de verificação MD5 da transferência: 2f82c02a9408cbb5a6191c4b62763438
Tamanho da transferência: 156 KB
Espaço em disco estimado exigido: 1,6 MB
Tempo de construção estimado: menos que 0,1 UPC
twm-1.0.12, xclock-1.1.1 e xterm-397 (usado no arquivo
padrão "xinitrc
")
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
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
.
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.
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".
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".
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.
"DRI" é uma estrutura que permite que logiciário acesse "hardware" gráfico de maneira segura e eficiente. Ela é instalada no "X" por padrão (usando "Mesa") se você tiver uma placa de vídeo suportada.
Para verificar se os controladores da "DRI" estão instalados
adequadamente, verifique o arquivo de registro "$HOME/.local/share/xorg/Xorg.0.log
" (ou
"/var/log/Xorg.0.log
" se você
tiver construído o "Xorg-Server-21.1.16" com o
"bit" "suid") para declarações como:
(II) modeset(0): [DRI2] Setup complete
(II) modeset(0): [DRI2] DRI driver: crocus
(II) modeset(0): [DRI2] VDPAU driver: va_gl
A configuração da DRI possivelmente difira se você estiver usando controladores alternativos, como tradicionais controladores DDX ou os controladores proprietários oriundos da NVIDIA ou da AMD.
Outra maneira de determinar se a DRI está funcionando adequadamente é a de usar um dos dois aplicativos de demonstração OpenGL instalados opcionalmente no Mesa-24.3.4. A partir de um terminal do X, execute glxinfo -B e procure pela frase:
name of display: :0
display: :0 screen: 0
direct rendering: Yes
Se a Renderização Direta estiver habilitada, [então] você poderá adicionar detalhamento executando "LIBGL_DEBUG=verbose glxinfo". Isso mostrará os controladores, nós de dispositivos e arquivos usados pelo sistema da "DRI".
Para confirmar se a aceleração de "hardware" "DRI2" está
funcionando, você pode (ainda no terminal do "X") executar o
comando glxinfo | grep -E
"(OpenGL vendor|OpenGL renderer|OpenGL
version)". Se isso informar algo diferente de "Software Rasterizer
", então você tem
aceleração funcional para o(a) usuário(a) que executou o
comando.
Se o teu "hardware" não tiver nenhum controlador "DRI2" disponível, [então] ele usará um "Software Rasterizer" para Renderização Direta. Nesses casos, você pode usar um novo "Software Rasterizador", acelerado por "LLVM", chamado "LLVMPipe". Para a finalidade de construir o "LLVMPipe", apenas certifique-se de que o "LLVM-19.1.7" esteja presente ao tempo da construção do "Mesa". Observe que toda a decodificação é feita na "CPU" e não na "GPU", de forma que a exibição ficará mais lenta que com aceleração de "hardware". Para verificar se você está usando o "LLVMpipe", revise a saída gerada do comando "glxinfo" acima. Um exemplo de saída gerada usando o "Software Rasterizer" é mostrado abaixo:
OpenGL vendor string: VMware, Inc.
OpenGL renderer string: Gallium 0.4 on llvmpipe (LLVM 3.5, 256 bits)
OpenGL version string: 3.0 Mesa 10.4.5
Você também consegue forçar o "LLVMPipe" exportando a
variável de ambiente "LIBGL_ALWAYS_SOFTWARE=1
" ao iniciar o "Xorg".
Novamente, se você tiver construído os demonstrativos "OpenGL" do "Mesa", [então] também poderá executar o aplicativo de teste "glxgears". Esse aplicativo abre uma janela com três engrenagens girando. O terminal do "X" exibirá quantos quadros foram desenhados a cada cinco segundos, de forma que isso dará uma avaliação comparativa aproximada. A janela é escalonável e os quadros desenhados por segundo são altamente dependentes do tamanho da janela. Em alguns "hardwares", o "glxgears" executará sincronizado com o sinal de atualização vertical e a taxa de quadros será aproximadamente a mesma que a taxa de atualização do monitor.
Ao iniciar o "Xorg", existem algumas maneiras de verificar
quaisquer problemas que você possa ter. Se o sistema
funcionar, [então] você poderá ver qual controlador está
sendo usado executando o "xdriinfo". Se existirem
problemas ou você quiser apenas verificar, {então} consulte
Xorg.0.log
.
O local do Xorg.0.log
depende
de como o Xorg está instalado. Se as instruções no livro
forem seguidas à risca e o Xorg for iniciado a partir da
linha de comando, ele estará localizado no diretório
$HOME/.local/share/xorg/
. Se o
Xorg for iniciado por um gerenciador de telas (por exemplo,
lightdm-1.32.0, sddm-0.21.0 ou GDM-47.0) ou se
$XORG_PREFIX/bin/Xorg
tiver o
bit suid configurado, ele estará localizado no diretório
/var/log/
.
Ao olhar para o "Xorg.0.log", verifique entradas como ("EE") ou ("WW"). Abaixo estão algumas entradas comuns:
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.
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>
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>
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.
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.
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").
Se você deseja configurar a resolução do monitor para o Xorg, primeiro execute xrandr em um terminal do X para listar as resoluções suportadas e as correspondentes taxas de atualização. Por exemplo, ele gera o seguinte para um monitor:
Screen 0: minimum 16 x 16, current 5760 x 2160, maximum 32767 x 32767
DP-1 connected primary 3840x2160+0+0 (normal left inverted right x axis y axis) 600mm x 340mm
3840x2160 59.98*+
2048x1536 59.95
1920x1440 59.90
1600x1200 59.87
1440x1080 59.99
1400x1050 59.98
1280x1024 59.89
1280x960 59.94
1152x864 59.96
1024x768 59.92
800x600 59.86
640x480 59.38
A partir da saída gerada podemos ver que o monitor está
identificado como DP-1
.
Selecione uma resolução adequada a partir da lista da saída
gerada, por exemplo 1920x1440
.
Então, como o(a) usuário(a) root
, crie um arquivo de configuração
para o servidor Xorg:
cat > /etc/X11/xorg.conf.d/monitor-DP-1.conf << "EOF"
Section "Monitor"
Identifier "DP-1"
Option "PreferredMode" "1920x1440"
EndSection
EOF
Às vezes, o xrandr pode falhar para detectar algumas configurações de resolução suportadas pelo monitor. Isso geralmente acontece com monitores virtuais de gerenciadores de máquinas virtuais, como qemu-9.2.2 ou VMWare: um monitor virtual na verdade suporta todos os pares de números inteiros em um intervalo conforme a resolução, mas xrandr só listará alguns. Para usar uma resolução não listada por xrandr, primeiro execute cvt para obter a linha de modo para a resolução. Por exemplo:
cvt 1600 900
# 1600x900 59.95 Hz (CVT 1.44M9) hsync: 55.99 kHz; pclk: 118.25 MHz
Modeline "1600x900_60.00" 118.25 1600 1696 1856 2112 900 903 908 934 -hsync +vsync
Como o(a) usuário(a) root
,
crie um arquivo de configuração do servidor Xorg contendo
essa linha de modo e especifique o modo como modo
preferido:
cat > /etc/X11/xorg.conf.d/monitor-DP-1.conf << "EOF"
Section "Monitor"
Identifier "DP-1"
Modeline "1600x900_60.00" 118.25 1600 1696 1856 2112 900 903 908 934 -hsync +vsync
Option "PreferredMode" "1600x900_60.00"
EndSection
EOF
Alguns monitores LCD de última geração suportam uma taxa de atualização superior a 100 Hz, mas xrandr pode falhar para reconhecer a taxa de atualização suportada e usar 60 Hz. Esse problema impediria você de utilizar a capacidade completa do monitor e poderia fazer com que a tela piscasse ou mostrasse “artefatos” como malhas ou grades. Para resolver o problema, use novamente cvt para obter a linha de modo com uma taxa de atualização personalizada:
cvt 3840 2160 144
# 3840x2160 143.94 Hz (CVT) hsync: 338.25 kHz; pclk: 1829.25 MHz
Modeline "3840x2160_144.00" 1829.25 3840 4200 4624 5408 2160 2163 2168 2350 -hsync +vsync
Em seguida, cole-a no arquivo de configuração do servidor Xorg e configure-a como modo preferido.
Outra configuração comum é ter vários esquemas de servidor para uso em ambientes diferentes. Apesar de que o servidor automaticamente detectará a presença de outro monitor, ele possivelmente obtenha a ordem incorreta:
cat > /etc/X11/xorg.conf.d/server-layout.conf << "EOF"
Section "ServerLayout"
Identifier "DefaultLayout"
Screen 0 "Screen0" 0 0
Screen 1 "Screen1" LeftOf "Screen0"
Option "Xinerama"
EndSection
EOF
Quando você arrasta uma janela no TWM (ou em qualquer gerenciador de janelas não de composição) horizontalmente, você poderá observar que as bordas verticais da janela são quebradas em vários segmentos. Esse é um exemplo dos artefatos visuais chamados rasgamento de tela. Para resolver os problemas de rasgamento de tela, crie um arquivo de configuração que habilite a opção TearFree. Observe que você precisa ter o remendo Tearfree aplicado a partir de Xorg-Server-21.1.16 para isso funcionar corretamente e isso pode aumentar a alocação de memória e reduzir o desempenho.
cat > /etc/X11/xorg.conf.d/20-tearfree.conf << "EOF"
Section "Device"
Identifier "Graphics Adapter"
Driver "modesetting"
Option "TearFree" "true"
EndSection
EOF
Com o moderno Xorg, pouca ou nenhuma configuração adicional
de placa gráfica é necessária. Se você devesse precisar de
opções extras passadas para o teu controlador de vídeo,
adicione-as na seção Device
também. As opções suportadas pelo controlador de
configuração de modo estão documentadas na página de manual
modesetting(4).
Se você ler texto somente em inglês e estiver feliz com as fontes livres comuns listadas na próxima página, possivelmente nunca precise se preocupar com os detalhes do como Fontconfig funciona. Mas, existem muitas coisas que podem ser alteradas se não atenderem às tuas necessidades.
No entanto, antes de passar muito tempo experimentando configurações diferentes, por favor, esteja ciente de que aplicativos modernos e ambientes de área de trabalho podem ignorar as configurações do fontconfig - veja-se Itens que conseguem substituir Fontconfig.
Embora esta página seja longa, ela mal arranha a superfície e você estará apto(a) a encontrar muitas visões alternativas na web (mas, por favor, lembre-se de que algumas coisas mudaram ao longo dos anos; por exemplo, o autohinter não mais é o padrão). O objetivo aqui é o de te fornecer informações suficientes para entender as mudanças que você está fazendo, por que elas nem sempre funcionam e para identificar informações on-line que não mais são apropriadas.
Infelizmente, parte da terminologia é ambígua (por exemplo, 'face da fonte' pode significar um nome conhecido pelo Fontconfig, ou as variações comuns, condensadas, etc. de uma fonte) e 'estilo' pode ser usado para diferenciar 'comum' de 'itálico' ou na descrição de algumas classes de fontes Serif.
Os links a seguir são para auxiliar a navegação nesta página.
O protocolo de fonte Xft fornece renderização de fonte
suavizada por intermédio do freetype, e as fontes são controladas a
partir do lado cliente usando o Fontconfig (exceto para o rxvt-unicode-9.31, que consegue usar
fontes listadas em ~/.Xresources
e o AbiWord-3.0.5 que usa
somente a fonte especificada). O caminho de pesquisa padrão é
/usr/share/fonts
e ~/.local/share/fonts
, embora, no momento, o
antigo e obsoleto local ~/.fonts
ainda funcione. O Fontconfig pesquisa diretórios no
caminho dele recursivamente e mantém um cache das
características da fonte em cada diretório. Se o cache
parecer desatualizado, ele será ignorado e as informações
serão obtidas a partir das próprias fontes (isso pode levar
alguns segundos se você tiver muitas fontes instaladas).
Se você tiver instalado o Xorg em qualquer prefixo diferente de
/usr
, quaisquer fontes do
X não foram instaladas em um
local conhecido para o Fontconfig. Links simbólicos foram
criados a partir dos diretórios de fontes OTF
e TTF
do
X para /usr/share/fonts/X11-{OTF,TTF}
em Fontes do
Xorg. Isso permite que o Fontconfig use as fontes OpenType e
TrueType fornecidas pelo X,
embora muitas pessoas preferirão usar fontes mais modernas.
O "Fontconfig" usa nomes para definir fontes. Os aplicativos geralmente usam nomes genéricos de fontes, como "Monospace", "Sans" e "Serif". O "Fontconfig" resolve esses nomes para uma fonte que tenha todos os caracteres que cubram a ortografia do idioma indicado pelas configurações de localidade.
Os comandos a seguir podem ser úteis ao se trabalhar com Fontconfig, especialmente se você estiver interessado(a) em substituir qual fonte será escolhida.
fc-list | less : mostra uma lista de todas as fontes disponíveis (/caminho/para/nome_do_arquivo: Nome da Fonte:estilo). Se você instalou uma fonte e ela não aparecer, então o diretório onde ela está contida não está legível pelo(a) teu(ua) usuário(a).
fc-match 'Nome da Fonte' : informa qual fonte será usada se a fonte nomeada for solicitada. Normalmente você usaria isso para ver o que acontece se uma fonte que não tenha instalada fosse solicitada, mas você também pode usá-lo se o sistema estiver fornecendo uma fonte diferente da que esperava (talvez porque o Fontconfig não pense que a fonte suporte o teu idioma).
fc-match TIPO
: mostra
qual fonte será usada no idioma atual para esse TIPO
(Monospace, Sans, Serif
(letra maiúscula inicial é
opcional)). Se essa fonte não mapear um ponto de
código, Fontconfig poderá
obter um glifo a partir de qualquer fonte disponível, mesmo
se ela não for do tipo especificado. Qualquer outro valor
para TIPO
será
presumido que seja Sans.
fc-match 'Serif :lang=ja:weight=bold' informará qual fonte e espessura serão escolhidas para o texto japonês em negrito. Isso não significa que a fonte informada será necessariamente capaz de mostrar ideogramas japoneses, de forma que uma substituta poderá ser usada ou alguns glifos possivelmente estarão ausentes. Para códigos de idioma, use valores ISO-639 como 'fr', 'ja', 'zh-cn'. Observe que um valor não reconhecido como apenas 'zh' não retornará nenhuma correspondência. Para ilustrar a substituta, em um sistema onde Noto Sans Mono e DejaVu Sans Mono estejam instaladas, fc-match 'monospace :lang=en mostrará que Noto Sans Mono será usada, mas se o idioma for mudado para 'ar' (árabe) DejaVu Sans será usada.
Se você quiser determinar se um arquivo de fonte tem dicas
(muitas fontes mais antigas não tem, porque foram
patenteadas) use fc-query
/caminho/para/arquivo_fonte
|
grep 'fonthashint:': que informará 'True(s)'
ou 'False(s)'. Algumas fontes recentes com versões TTF e OTF
terão dicas nos arquivos TTF.
Se você deseja saber qual fonte será usada para uma sequência
de caracteres de texto (ou seja, um ou mais glifos,
precedidos por um espaço), {então} cole o seguinte comando e
substitua o "xyz
" pelo texto de
teu interesse:
FC_DEBUG=4 pango-view --font=monospace -t xyz | grep family : isso exige o Pango-1.56.1 e o ImageMagick-7.1.1-43 - ele invocará display para mostrar o texto em uma pequena janela, e, depois de fechá-la, a última linha da saída gerada mostrará qual fonte foi escolhida. Isso é particularmente útil para idiomas CJK, e você também pode passar um idioma, por exemplo, PANGO_LANGUAGE=en;ja (inglês, então assuma o japonês) ou apenas zh-cn (ou outras variantes, como zh-sg ou zh-tw).
Os arquivos 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/
).
Se a fonte solicitada estiver instalada e desde que contenha
os pontos de código exigidos para o idioma atual (no
fonte, veja-se os arquivos ".orth" no diretório "fc-lang/
"), [então] ela será usada.
No entanto, se o documento ou página solicitou uma fonte que
não está instalada (ou, ocasionalmente, não contém todos os
pontos de código exigidos), as seguintes regras entram em
jogo: Primeiro, 30-metric-aliases.conf
é usado para mapear
apelidos para algumas fontes com as mesmas métricas (mesmo
tamanho, etc.). Observe que existem apelidos fracos e fortes,
de modo que os apelidos para uma forma, como Helvetica ou
Times New Roman, podem ser satisfeitos pelo outro estilo, ou
seja, qualquer coisa que seja um apelido de Arial ou Times
nesses exemplos. Alguns exemplos de fontes latinas com as
mesmas métricas podem ser encontrados nos PDFs 'Substitutes'
em typosetting.co.uk.
Depois disso, uma fonte desconhecida será procurada em
45-latin.conf
: 'Latin' cobre
cirílico e grego, e agora também mapeia fontes system-ui que
são usadas para mensagens da interface de usuário(a) em
outros alfabetos. Se a fonte for encontrada, ela será mapeada
como serif, sans-serif, monospace, fantasy, cursive ou
system-ui. Caso contrário, 49-sansserif.conf assumirá que é
Sans.
Então 60-latin.conf
fornece
listas ordenadas de substitutas - Fontes Noto será usada
se você as instalou. O cirílico e o grego parecem ser
tratados da mesma maneira. Todos esses arquivos preferem
fontes comerciais, se estiverem presentes, embora as fontes
livres modernas sejam frequentemente pelo menos iguais.
Finalmente, se um ponto de código ainda não for encontrado,
ele poderá ser obtido a partir de qualquer fonte disponível
do sistema. Os detalhes a seguir mencionam somente fontes
livremente disponíveis.
As fontes persas padrão são tratadas em 65-fonts-persian.conf
. Parece como se todas
as fontes listadas sejam comerciais. Usar fontes que suportam
persa (que tem a própria variante dele do alfabeto árabe e os
próprios estilos dele de fonte) está fora das habilidades
dos(as) editores(as) do BLFS.
Todos os conjuntos de comandos sequenciais restantes para os
quais Fontconfig tem
preferências (scripts CJK, scripts índicos) são tratados em
65-nonlatin.conf
. Esses são
novamente agrupados nominalmente como Serif, Sans-Serif,
Monospace. Das fontes livres, WenQuanYi Zen Hei (Pan-CJK
Sans) vem em primeiro lugar, tanto para Serif quanto para
Sans. Portanto, se você instalar isso como substituta, mas
quiser usar fontes diferentes para japonês ou coreano,
precisará configurar uma preferência. Da mesma forma, a
antiga fonte fireflysung Serif também está listada para Sans.
Depois das fontes Pan-CJK e chinesas, vem várias fontes japonesas e, em seguida, várias fontes coreanas (ambas divididas apropriadamente entre Sans e Serif). Finalmente vem as várias famílias Lohit Indic (um arquivo de fonte por conjunto de comandos sequenciais), rotuladas como Sans e Serif.
As fontes Monospace listadas em 65-nonlatin.conf
não incluem WenQuanYi Zen
Hei, embora elas estejam disponíveis como substitutas se
instaladas. Várias fontes góticas japonesas estão listadas,
seguidas por AR PL KaitiM GB (uma fonte zh-sc 'Brush'),
fontes AR PL Serif para zh-sc (SungtiL) e zh-tw (Mingti2L),
algumas fontes coreanas Sans e as várias Famílias Lohit
Indic.
Para fontes de Interface de Usuário(a), várias fontes de Interface de Usuário(a) Noto Sans são as únicas fontes livres listadas.
As diversas fontes Noto CJK não estão entre as fontes listadas; possivelmente os(as) desenvolvedores(as) do RedHat preferiram outras fontes. Agora elas vem em muitas variações, e a maioria dos(as) usuários(as) que as usam não instalará quaisquer outras fontes CJK.
Antes do Fontconfig-2.14, a primeira família de fontes latinas preferida era a Bitstream Vera. Na prática, isso raramente era usado porque cobria pouquíssimo. Depois disso, DejaVu foi a próxima família preferida, de forma que as pessoas foram recomendadas a instalá-la. Isso agora mudou; Bitstream Vera foi substituída pelas fontes Noto relevantes (Serif, Sans, Sans Mono), portanto essas serão preferidas se tiverem sido instaladas, seguidas pela DejaVu.
Para serif, Times New Roman poderia ter sido apelidado a partir de Liberation Serif ou Tinos, e Times a partir de TeX Gyre Termes, de forma que, embora as fontes nomeadas não sejam livres, as fontes compatíveis em métricas podem ser usadas. Ignorando outras fontes não livres, a ordem restante para serif é: Times New Roman, Luxi Serif, Nimbus Roman No9 L e Times. Na prática, isso significa que é improvável que as fontes no final da lista sejam usadas, a menos que uma página da web as solicite.
Para sans-serif, a ordem restante é qualquer coisa mapeada para Arial, Luxi Sans, Nimbus Sans L e qualquer coisa mapeada para Helvetica.
As alternativas restantes para monospace são Inconsolata, qualquer coisa mapeada para Courier New, Luxi Mono, Nimbus Mono e qualquer coisa mapeada para Courier.
Para 'fantasy' não existem fontes livres, portanto Fontconfig retornará para sans-serif.
Para 'cursive', a única fonte livre é TeX Gyre Chorus como um apelido para a chancelaria ITC Zapf, caso contrário Fontconfig novamente retornará para sans-serif.
A categoria system-ui é incomum. É para mensagens de interface, portanto alguns conjuntos de comandos sequenciais precisam de versões especiais para caber no espaço disponível. Para latim, grego e cirílico, uma fonte sans comum deveria caber sem problemas. No entanto, a primeira fonte preferida é Cantarell, seguida por Noto Sans UI. Cantarell começou como uma fonte latina sans-serif, que foi bifurcada no Gnome sob o mesmo nome, mas eles(as) fornecem somente o fonte. As fontes Noto Sans UI são para outros idiomas.
Desde Fontconfig-2.12.5, também existe correspondência genérica de família para algumas fontes de emoji e matemáticas; por favor, veja-se {45,60}-generic.conf.
Nos raros casos em que uma fonte não contém todos os pontos de código esperados, veja-se "Trial the First:" em "Eu olhei fixamente para o "fontconfig"" para os detalhes longos.
É possível mudar como, ou se, as fontes são sugeridas. O
arquivo de exemplo a seguir contém as configurações padrão,
mas com comentários. As configurações dependem muito das
preferências do(a) usuário(a) e da escolha das fontes, de
forma que uma mudança que melhora algumas páginas
possivelmente piore outras. O local preferido para esse
arquivo é: "~/.config/fontconfig/fonts.conf
"
Para testar configurações diferentes, você pode precisar sair do Xorg e então executar startx novamente, de forma que todos os aplicativos usem as novas configurações. Várias coisas podem substituir as configurações do fontconfig; veja-se Itens que conseguem substituir Fontconfig abaixo para mais detalhes. Para explorar as possibilidades, crie um arquivo para teu(tua) usuário(a):
mkdir -pv ~/.config/fontconfig &&
cat > ~/.config/fontconfig/fonts.conf << "EOF"
<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
<match target="font" >
<!-- autohint era o antigo prompt automático quando as dicas eram protegidas
por patente, de forma que desligue-o para garantir que qualquer informação de
dicas na própria fonte seja usada; esse é o padrão -->
<edit mode="assign" name="autohint"> <bool>false</bool></edit>
<!-- a dica está habilitada por padrão -->
<edit mode="assign" name="hinting"> <bool>true</bool></edit>
<!-- para o "lcdfilter", veja-se https://www.spasche.net/files/lcdfiltering/ -->
<edit mode="assign" name="lcdfilter"> <const>lcddefault</const></edit>
<!-- opções para estilo de dica:
hintfull: é presumido fornecer uma fonte nítida que se alinha bem à
grade de células de caracteres, mas ao custo do formato adequado
dela. No entanto, qualquer coisa que use Pango >= 1.44 não suportará
dicas completas; o Pango agora usa harfbuzz para dicas. Aplicativos que
usam Skia (por exemplo, Chromium, Firefox) não deveriam ser afetados por isso.
hintmedium: é informado que está quebrado.
hintslight é o padrão: - presumido ser mais confuso, mas mantém a forma.
hintnone: parece desligar a dica.
As variações são marginais e os resultados variam com diferentes fontes -->
<edit mode="assign" name="hintstyle"> <const>hintslight</const></edit>
<!-- a suavização está ligada por padrão e realmente ajuda para caracteres fracos
e também para fontes "xft": fontes usadas em "rxvt-unicode" -->
<edit mode="assign" name="antialias"> <bool>true</bool></edit>
<!-- subpixels são usualmente "rgb"; veja-se
http://www.lagom.nl/lcd-test/subpixel.php -->
<edit mode="assign" name="rgba"> <const>rgb</const></edit>
<!-- agradecimentos ao "wiki" da "Arch" pelos links "lcd" e subpixel -->
</match>
</fontconfig>
EOF
Agora você precisará editar o arquivo no teu editor preferido. Muitas das diferentes configurações apresentam diferenças muito sutis e os resultados podem diferir para algumas das fontes que você usar.
A dica, se habilitada, é feita em FreeType. Desde o FreeType-2.7, o interpretador TrueType padrão é v40. O hinter v35 original poderia ser habilitado por uma variável de ambiente, mas só é realmente apropriado para fontes originais TTF da Microsoft (Arial, etc). O hinter v38 (Infinality) não é construído por padrão e todas as opções para ajustá-lo foram removidas. Para detalhes completos, veja-se subpixel-hinting (Spoiler: NÃO existem dicas de subpixel; o código simplesmente ignora todas as instruções de dicas horizontais).
O Xorg assume que as telas tem 96 pontos por polegada (DPI). A maioria das telas LCD está próxima disso, mas algumas pessoas detectam distorções de cores se a tela delas divergir desse tamanho. Veja-se calc-dpi.
Se você tiver uma tela de alto DPI (geralmente descrita como '4K' ou maior), provavelmente usará tamanhos de fonte maiores e se beneficiará ao desabilitar as dicas.
Para mais exemplos, veja-se o tópico do "blfs-support" que começou em "2016-09/00128", particularmente o "2016-09/00137", e a solução preferida do postador original em "2016-09/00147". Existem outros exemplos em ""Fontconfig" no "wiki" do "Arch"" e ""Fontconfig" no "wiki" do "Gentoo"".
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
Em 90-synthetic.conf
existem
exemplos de aplicação de inclinamento e negritamento
sintéticos a uma fonte. O negritamento sintético pode ser
aplicado a uma fonte visivelmente esmaecida, mas os
resultados nem sempre são os esperados: apenas com o
negritado, o Epiphany
mostrou fontes mais escuras, enquanto o Firefox não - então, embora Cairo agora seja usado pelo firefox, o comentário acerca da
configuração do Peso ainda é válido. Mas configurando ambos,
Epiphany mostrará texto em
negrito por padrão, mas mostrará texto pesado se a marcação
para negrito for usada. Em ambos os casos, nem o libreOffice nem o falkon mostraram texto mais negritado.
Normalmente, as fontes do sistema e as fontes do(a)
usuário(a) são instaladas em diretórios abaixo dos locais
especificados em "O Protocolo de Fonte
Xft" e não existe razão óbvia para colocá-las em outro
lugar. No entanto, uma instalação completa do BLFS do
"texlive-20240312" coloca muitas
fontes em "/opt/texlive/2024/texmf-dist/fonts/
" nos
subdiretórios "opentype/
" e
"truetype/
". Embora extrair
todos esses arquivos possivelmente pareça útil (permite
usá-los em aplicativos que não sejam do "TeX"), existem vários problemas com essa
abordagem:
Existem centenas de arquivos, o que torna difícil selecionar fontes.
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.
Várias fontes tem vários tamanhos e nomes curtos impenetráveis, o que torna ainda mais difícil selecionar a fonte correta.
Quando uma fonte é adicionada ao CTAN, ela é acompanhada por pacotes do TeX para usá-la nos motores antigos (xelatex normalmente não precisa disso), e então a versão frequentemente é congelada enquanto a fonte é mantida separadamente. Algumas dessas fontes, como as Fontes Dejavu, provavelmente já estão instaladas em teu sistema BLFS em uma versão mais recente, e se você tiver múltiplas versões de uma fonte, não fica claro qual delas será usada pelo Fontconfig.
No entanto, às vezes é útil olhar para essas fontes em
aplicativos não "TeX", se somente para ver se você deseja
instalar uma versão atual. Se você tiver instalado todo o
"texlive", [então] o exemplo
a seguir disponibilizará uma das fontes "Arkandis Open Type"
para outros aplicativos e todas as três fontes "TrueType"
"ParaType". Ajuste ou repita as linhas conforme desejado
para, ou disponibilizar todas as fontes "opentype/
" ou "truetype
", ou para selecionar diferentes
diretórios de fontes. Como o(a) usuário(a) "root
":
cat > /etc/fonts/conf.d/09-texlive.conf << "EOF"
<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
<dir>/opt/texlive/2024/texmf-dist/fonts/opentype/arkandis/berenisadf</dir>
<dir>/opt/texlive/2024/texmf-dist/fonts/truetype/paratype</dir>
</fontconfig>
EOF
Se você fizer isso, [então] lembre-se de mudar todas as instâncias do ano nesse arquivo ao atualizar o "texlive" para um lançamento posterior.
Com exceção de páginas da web que usam fontes WOFF e as fornecem ou vinculam ao Google para baixá-las, as páginas da web tradicionalmente sugerem uma lista de nomes de famílias de fontes preferidas, se assim o desejarem (por exemplo, Times New Roman, Serif). Existem muitos motivos pelos quais as pessoas podem desejar que páginas que especificam uma fonte preferida usem uma fonte diferente ou prefiram fontes específicas em Monospace, Sans ou Serif. Como você esperará, existem várias maneiras de conseguir isso.
O "Fontconfig" instala a
documentação de usuário(a) que inclui um exemplo de "Arquivo
de usuário(a) de configuração" que, entre outras coisas,
prefere a "WenQuanYi ZenHei" (uma fonte "Sans")
se uma fonte "Serif"
for solicitada para chinês (essa parte pode ser anacrônica, a
menos que você tenha fontes chinesas não-livres, porque em
"65-nonlatin.conf
" essa fonte
já está entre as fontes preferidas quando "Serif" é
especificada para chinês) e prefere a moderna fonte
"VL
Gothic" se uma fonte "Sans" for especificada em uma
página em japonês (caso contrário, algumas outras fontes
seriam preferidas se tivessem sido instaladas).
Se você tiver instalado a versão atual, a documentação de
usuário(a) estará disponível em versões HTML, PDF e texto em
/usr/share/doc/fontconfig-2.16.0/
: mude a
versão se você instalou uma diferente.
Como um exemplo, se por algum motivo você desejou usar a fonte "Nimbus Roman No9 L" sempre que a "Times New Roman" for referenciada (ela é metricamente semelhante e preferida para "Times Roman", mas a fonte "Serif" originária das "Fontes Liberation" será preferida para a fonte "Times New Roman" se instalada), como um(a) usuário(a) individual, você poderia instalar a fonte e então criar o seguinte arquivo:
mkdir -pv ~/.config/fontconfig/conf.d &&
cat > ~/.config/fontconfig/conf.d/35-prefer-nimbus-for-timesnew.conf << "EOF"
<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
<!-- prefira Nimbus Roman No9 L para Times New Roman, bem como para Times;
sem isso, Tinos e Liberation Serif tem precedência para Times New Roman antes
que o Fontconfig volte para o que corresponde a Times -->
<alias binding="same">
<family>Times New Roman</family>
<accept>
<family>Nimbus Roman No9 L</family>
</accept>
</alias>
</fontconfig>
EOF
Isso é algo que você normalmente faria nas configurações de
um(a) usuário(a) individual, mas o arquivo nesse caso recebeu
o prefixo "35-", de forma que pudesse, se desejado, ser usado
abrangente a todo o sistema em "/etc/fonts/conf.d/
".
O exemplo a seguir de uma configuração local (ou seja, uma que se aplica a todos os(as) usuários(as) da máquina) faz várias coisas. Ela é particularmente apropriada onde nenhum idioma for especificado, ou para leitura de texto CJK em uma localidade não CJK, e onde as formas japonesas dos pontos de código compartilhados com o chinês são preferidas. Em particular, abordagens alternativas seriam especificar uma fonte chinesa antes da fonte japonesa, significando que somente símbolos Kana serão usados a partir da fonte japonesa, ou não especificar DejaVu, de forma que a primeira fonte em cada conjunto de preferências seja preferida para texto usando alfabetos latinos.
Se uma fonte Serif for especificada, ela prefere
Fontes Dejavu. Se pontos de código
Han forem encontrados ou o idioma japonês for
especificado, a fonte Mincho oriunda de Fontes IPAex
será usada. Se pontos de código Hangul forem
encontrados ou o idioma coreano for especificado,
UnBatang (veja-se Fontes coreanas) será
usado: Mude essa linha se você instalou uma fonte serif
coreana diferente. Depois disso, WenQuanYi
ZenHei (Sans, mas um padrão para Serif e monospace)
é usado. Uma versão anterior desta página mencionou o
uso de UMing, que é uma fonte do chinês tradicional que
vem com um antigo arquivo de configuração, preferindo-a
para códigos de idioma zh-tw e zh-hk (e para sans-serif
e monospace). Mas sem o arquivo de configuração,
Fontconfig somente a
tratará como adequada para zh-hk. O arquivo de
configuração precisa ser editado para o estilo atual e
então será anexado; portanto, especificar UMing não
pertence a esse arquivo local.conf
.
Para preferências de Sans Serif, comece novamente com Fontes Dejavu, depois VL Gothic para japonês antes de voltar para WenQuanYi Zen Hei, que é Sans e abrange Hangul chinês e coreano.
As fontes Monospace são forçadas para as fontes preferidas Sans. Se o texto estiver em chinês ou coreano, então a WenQuanYi ZenHei será usada.
Em uma localidade não CJK, o resultado é que fontes adequadas
serão usadas para todas as variantes de chinês, japonês e
coreano Hangul (mas variantes japonesas dos glifos
compartilhados com o chinês Han serão usadas). Todos os
outros idiomas já deveriam funcionar se uma fonte estiver
presente. Como o(a) usuário(a) root
:
cat > /etc/fonts/local.conf << "EOF"
<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
<alias>
<family>serif</family>
<prefer>
<family>DejaVu Serif</family>
<family>IPAexMincho</family>
<!-- WenQuanYi é preferida como Serif em 65-nonlatin.conf;
substitua isso, de forma que uma fonte real Coreana possa ser usada para Serif -->
<family>UnBatang</family>
</prefer>
</alias>
<alias>
<family>sans-serif</family>
<prefer>
<family>DejaVu Sans</family>
<family>VL Gothic</family>
<!-- Isto assume WenQuanYi; é boa o suficiente para Sans Coreana -->
</prefer>
</alias>
<alias>
<family>monospace</family>
<prefer>
<family>DejaVu Sans Mono</family>
<family>VL Gothic</family>
<!-- Isto assume WenQuanYi; é boa o suficiente para Monospace Coreana -->
</prefer>
</alias>
</fontconfig>
EOF
Algumas fontes, especialmente fontes chinesas, vem com
arquivos de configuração que podem ser instalados em
/etc/fonts/conf.d
. No entanto,
se você fizer isso e então usar um terminal para executar
qualquer comando que use o Fontconfig, você possivelmente veja
mensagens de erro como:
Aviso do Fontconfig:
"/etc/fonts/conf.d/69-odofonts.conf", linha 14: Ter-se várias
<famílias> em <apelido> não é suportado e
possivelmente não funcione conforme o esperado
.
Na prática, essas regras antigas não funcionam. Para usuários(as) não CJK, o Fontconfig geralmente fará um bom trabalho sem essas regras. A origem delas remonta a quando os(as) usuários(as) CJK precisavam que os bitmaps feitos à mão fossem legíveis em tamanhos pequenos, e eles pareciam feios perto dos glifos latinos suavizados - eles(as) preferiam usar a mesma fonte CJK para os glifos latinos. Existe um efeito colateral em fazer isso: a fonte (Serif) frequentemente também é usada para Sans, e em tal situação o texto (em inglês) nos menus do Gtk usará essa fonte - comparadas às fontes do sistema, além de ser serifada, é fraca e bastante pequena. Isso pode tornar desconfortável ler.
No entanto, esses antigos arquivos de configuração podem ser
corrigidos se você desejar usá-los. O seguinte exemplo é a
primeira parte do 64-arphic-uming.conf
, originário de
UMing -
existem muitos outros itens semelhantes que também precisam
de mudanças:
<match target="pattern"> <test qual="any" name="lang" compare="contains"> <string>zh-cn</string> <string>zh-sg</string> </test> <test qual="any" name="family"> <string>serif</string> </test> <edit name="family" mode="prepend" binding="strong"> <string>AR PL UMing CN</string> </edit> </match>
O processo para corrigir isso é simples, mas tedioso - para
cada item que produzir uma mensagem de erro, usando o teu
editor (como o(a) usuário(a) root
) edite o arquivo instalado para
repetir o bloco inteiro, tantas vezes quantas forem as
múltiplas variáveis, então reduza cada exemplo para ter
somente uma delas. Você possivelmente deseje trabalhar em um
erro de cada vez, salvar o arquivo depois de cada correção e,
a partir de um terminal separado, executar um comando como
fc-list 2>&1 |
less para ver se a correção funcionou. Para o
bloco acima, a versão corrigida será:
<match target="pattern"> <test qual="any" name="lang" compare="contains"> <string>zh-cn</string> </test> <test qual="any" name="family"> <string>serif</string> </test> <edit name="family" mode="prepend" binding="strong"> <string>AR PL UMing CN</string> </edit> </match> <match target="pattern"> <test qual="any" name="lang" compare="contains"> <string>zh-sg</string> </test> <test qual="any" name="family"> <string>serif</string> </test> <edit name="family" mode="prepend" binding="strong"> <string>AR PL UMing CN</string> </edit> </match>
Quando esta página e a próxima foram criadas, as fontes latinas vinham com no máximo duas espessuras - Regular ou Livro (Livro normalmente tem uma altura X maior para facilitar a leitura em grandes blocos de texto) e Negrito - e talvez um estilo itálico (ou inclinado). Algumas fontes também tinham faces condensadas (para caber mais texto em uma linha e geralmente usadas somente quando especificado). Sem a marcação CSS (Cascading Style Sheets), o texto usava a espessura Regular ou Book, exceto quando marcação <b> ... </b> era usada para texto em negrito. Os estilos em itálico seriam invocados por marcação <i> ... </i>, juntamente com a marcação em negrito para Bold Italic.
Algumas faces agora contêm até 9 espessuras, possivelmente
também com uma fonte variável (para economizar espaço
incluindo todas as alternativas em um arquivo e possivelmente
permitindo espessuras intermediárias). Para a maioria dos(as)
usuários(as) de área de trabalho que não precisam dessa ampla
gama de espessuras para criar conteúdo, é mais simples
instalar somente uma ou duas espessuras. Se uma face tiver
espessuras individuais mais uma fonte variável, a fonte
variável geralmente estará no nível superior do diretório
fornecido, com espessuras individuais em um subdiretório
static/
. Exceto na revisão
inicial de uma fonte, não faz sentido instalar estática e
variável, nem todas as espessuras possíveis.
As espessuras são rotuladas de 100 (fina) a 900 (preta ou pesada) na terminologia CSS, sendo 400 normal e 700 negrito. O conjunto completo de espessuras está descrito em Tabela de espessuras CSS de fontes.
Se você tiver instalado uma fonte com várias espessuras, você pode copiar font-weights.html para a tua máquina local. Conforme enviado, ele usará tua fonte Serif padrão, presumindo que você tenha uma. Edite-o para apontar para uma fonte específica instalada usando o nome conhecido para Fontconfig (também nos itens de texto *EDITME FONTNAME*) e abra-o a partir do teu navegador da área de trabalho. Você também pode usá-lo para visualizar uma fonte com apenas duas espessuras instaladas, por exemplo, para testar para ver se você prefere outras espessuras.
Apesar dos detalhes naquele link da Mozilla, parece que se apenas as espessuras normal e negrito forem instaladas, SemiBold (600) será mostrada usando negrito.
Parece haver pouca margem para mudar quais espessuras são usadas para normal e negrito se apenas duas espessuras tiverem sido instaladas. O Firefox, e provavelmente outros navegadores, procurarão a próxima espessura mais pesada que o normal. Se for menor que negrito (Médio, talvez SemiBold - incerto) será usada para normal e então a próxima espessura maior, se houver, será usada para negrito, permitindo que você deixe as fontes um pouco mais escuras. Por outro lado, se apenas uma espessura menor que o normal tiver sido instalada, como Light, ela será usada tanto para espessura normal quanto para negrito (a busca ascendente acontece primeiro).
Se remover algumas espessuras de uma fonte do sistema, você
possivelmente necessitará executar fc-cache como o(a)
usuário(a) root
e, em
seguida, deslogar-se completamente para limpar os caches
associados ao teu(tua) usuário(a).
Vários ambientes de área de trabalho, assim como alguns programas, usarão Fontconfig para achar fontes, mas possivelmente substituam certas coisas.
GNOME: As configurações em org.gnome.desktop.interface podem ser atualizadas com dconf-editor. Você pode configurar as fontes de acordo com tua preferência e tamanho desejado de ponto. Para usar as fontes escolhidas pelo Fontconfig especifique, por exemplo, 'Sans 12', 'Serif 11', 'Mono 10' conforme desejado. Revise também as configurações de antialiasing, dicas e rgba. Alternativamente, gnome-tweaks-46.1 também pode atualizar as configurações de fonte em um formato de GUI.
LXQt: Mude as configurações de fonte conforme necessário para corresponder ao Fontconfig em lxqt-config-appearance.
KDE Plasma: As configurações podem ser ajustadas em Configurações do Sistema sob Aparência -> Fontes ou em Editar -> Preferências do aplicativo individual.
Xfce desktop: As configurações podem ser ajustadas em Configurações -> Aparência -> Fontes. Especifique tuas fontes preferidas, por exemplo. 'Sans Regular' (para usar a face e espessura normais em vez de Negrito e (ou) Itálico) e ajuste o tamanho do ponto na opção. Revise as opções de renderização e DPI.
Firefox: Esse navegador te permite especificar as fontes padrão dele. Para a série 128esr use o menu 'Hamburger' para ir para Preferências, Geral e sob Fontes -> Avançado selecione Sans Serif, Serif ou Monospace conforme apropriado, se você desejar usar as fontes que correspondam ao Fontconfig. Configure os tamanhos dos pontos conforme desejado. Nas versões posteriores, as configurações estão em Preferências -> Fontes.
Libreoffice: Testes usando texto em inglês com uma antiga fonte japonesa (HanaMinA), que suporta vários idiomas europeus, mas tinha somente uma espessura e sem itálico ou inclinação, mostraram que, embora o Libreoffice use Fontconfig para encontrar a fonte, ele criou o próprio texto dele em negrito ou inclinado. Não está claro se fará o mesmo quando uma fonte realmente tiver espessura de negrito ou um estilo de itálico. Além disso, a documentação mostra que o Libreoffice tem as próprias regras dele de substituição para quando um ponto de código não é encontrado na fonte selecionada, mas não está claro se essas regras se aplicam no Linux usando Fontconfig.
Pango: conforme observado no
exemplo ~/.config/fontconfig
acima, qualquer coisa que use Pango-1.44 (a partir de 2019)
ou posterior agora usa Harfbuzz para dicas, não FreeType, e hintfull
não é suportado.
Thunderbird: As configurações de fonte podem ser mudadas indo-se para "Editar -> Configurações" e, a seguir, rolando para baixo até "Fontes & Cores".
As entradas do blog de Eevee são particularmente úteis se o Fontconfig não pensar que tua fonte escolhida suporta teu idioma e para preferir algumas fontes japonesas não MS quando uma fonte feia MS já estiver instalada.
A documentação do interpretador FreeType v40 em documentos do freetype explica como o hinter atual funciona e por que o intérprete Infinality anterior (lento) foi substituído.
Uma resposta antiga em
askubuntu fornece alguns detalhes acerca de como calcular
pontos por polegada de uma tela, mas essencialmente você
apenas mede a largura e a altura do painel visível, converte
para polegadas se usar medidas métricas e divide pelo número
de pixeis. Você pode então passar -dpi
ao
iniciar o Xorg, usando teu próprio valor.
90
Talvez mais que você gostaria de saber esteja em documentos CSS da Mozilla.
Se você estiver usando dicas e tiver uma fonte TTF (não OTF) que carece de dicas, mas te permite bifurcá-la, você poderá aplicar dicas usando ttfautohint que é baseado no antigo autohinter. A partir da versão 1.8.4, ele falha para construir sem o Qt5.
"Arch" tem muitas informações no "wiki" dela em "font_configuration".
"Gentoo" tem algumas informações no "wiki" dela em "Fontconfig", embora muitos detalhes (o que habilitar e "Infinality") sejam específicos para "Gentoo".
Originalmente, o Xorg fornecia somente fontes bitmap. Mais tarde, algumas fontes escaláveis Type1 foram adicionadas, mas o mundo da área de trabalho passou a usar fontes TrueType e Open Type. Para suportá-las, o Xorg usa Xft, a biblioteca de interface FreeType do X, com Fontconfig (veja-se a página anterior para detalhes, incluindo como fontes são selecionadas e vários motivos pelos quais uma fonte pode ser ignorada).
Algumas fontes são fornecidas como coleções (TTC ou OTC) onde os dados das fontes são compartilhados entre diferentes fontes, o que economiza espaço em disco. Essas deverias ser tratadas exatamente da mesma maneira que os arquivos individuais TTF ou OTF.
Se uma fonte fornecer ambos os formatos TTF e OTF, você deveria preferir o formato OTF no Linux, pois ele pode fornecer mais recursos para programas que sabem como usá-los (como xelatex). Os arquivos TTF dessas fontes geralmente contém dicas, veja-se Dicas e Suavização e Itens que conseguem substituir Fontconfig para motivos pelos quais as dicas podem ser indesejáveis ou não usáveis.
Uma fonte possivelmente tenha múltiplas variações. Por exemplo, Noto Sans tem nove gramaturas (ExtraLight, Light, Thin, Normal, Medium, SemiBold, Bold, ExtraBold e Black) e dois estilos (Regular e Italic), portanto dezoito (18) variações no total. Normalmente, cada variação é fornecida como um arquivo TTF ou OTF separado. Para cobertura completa, você precisa instalar todos esses arquivos TTF ou OTF. Mesmo se você estiver com pouco espaço em disco, você ainda deveria instalar duas gramaturas (Regular e Bold) por dois estilos (Normal e Italic) se a fonte tiver essas variações. Algumas fontes não tem estilo itálico (por exemplo, a maioria das fontes CJK e algumas fontes mono espaçadas), e algumas fontes tem somente uma variação (por exemplo, Noto Sans Math, ela fornece somente o glifo de alguns símbolos matemáticos).
Algumas fontes também estão disponíveis como arquivos de fontes variáveis. Ao contrário de um arquivo de fonte normal, que contém somente uma variação, um arquivo de fonte variável contém variações infinitas. Cada variação pode ser definida pelo aplicativo usando essa fonte, atribuindo número(s) para uma ou mais variáveis. Existem também instâncias nomeadas predefinidas análogas às variações tradicionais. Por exemplo, com a versão variável da Noto Sans, a variável espessura pode receber qualquer número não inferior a cem (100) e não superior a novecentos (900), e nove (9) instâncias nomeadas são predefinidas: ExtraLight para espessura = 100, Regular para espessura = 400, Negrito para espessura = 700, etc. Assim, uma vez que um arquivo de fonte variável para Noto Sans seja instalado, todas as nove (9) instâncias nomeadas (ou “variações”) estarão disponíveis. Observe que a inclinação não é definida como uma variável na versão variável da Noto Sans, de forma que Regular e Itálico ainda são variações tradicionais e um arquivo separado de fonte variável é necessário para a variação Itálico.
Um arquivo de fonte variável obviamente é mais flexível que os arquivos de fonte normais (estáticos). Ele é extremamente útil para ajuste fino da fonte para páginas da Web ou publicações. E o tamanho de um arquivo de fonte variável geralmente é significativamente menor que o tamanho total de vários arquivos de fonte estática para múltiplas variações. Por exemplo, o arquivo de fonte variável para Noto Sans SC tem somente 11M, enquanto o tamanho total de nove arquivos de fonte estática para Noto Sans SC é 91M. Mas você precisa ter certeza de que teus aplicativos realmente suportam fontes variáveis antes de instalar uma. Por exemplo, o lualatex suporta fonte variável, mas o xelatex não. Portanto, se você quiser usar uma fonte para um artigo e usar o xelatex para composição tipográfica, você não deve instalar os arquivos de fontes variáveis.
Para informações acerca de fontes variáveis, por favor, veja-se Fontes Variáveis.
Para alguns conjuntos de comandos sequenciais, o Pango é exigido para renderizar as coisas corretamente, seja selecionando diferentes formas de glifos ou combinando glifos - em ambos os casos, de acordo com o contexto. Isso se aplica particularmente aos conjuntos de comandos sequenciais Arábico e Índico.
Fontes escaláveis padrão que vem com o X fornecem uma cobertura Unicode muito fraca. Você possivelmente note em aplicações que usam o Xft que alguns caracteres aparecem como uma caixa com quatro dígitos binários dentro. Nesse caso, uma fonte com os glifos exigidos não foi encontrada. Outras vezes, os aplicativos que não usam outras famílias de fontes por padrão e não aceitam substituições originárias do Fontconfig exibirão linhas em branco quando a fonte padrão não cobrir a ortografia do idioma do(a) usuário(a).
As fontes disponíveis para um aplicativo são aquelas que estavam presentes quando ele foi iniciado, de forma que, se adicionar uma fonte extra e desejar usá-la em um aplicativo que esteja em execução, [então] você terá que fechar e reiniciar esse aplicativo.
Algumas pessoas ficam felizes em ter dezenas, ou mesmo centenas, de arquivos de fontes disponíveis, mas se você quiser selecionar uma fonte específica em um aplicativo de área de trabalho (por exemplo, em um processador de texto), [então] navegar por várias fontes para encontrar a certa é lento e desajeitado - menos é melhor. Portanto, para alguns pacotes de fontes você pode decidir instalar somente uma das fontes - mas mesmo assim instalar as diferentes variantes (itálico, negrito, etc.), pois todas são variações para o mesmo nome de fonte.
No passado, todos(as) recomendavam executar fc-cache como o(a)
usuário(a) root
depois de
instalar ou remover fontes, mas isso não mais é necessário no
Linux; o Fontconfig fará
isso automaticamente se necessário, bem como se os caches de
fonte forem mais antigos que trinta (30) segundos.
Entretanto, se você adicionar uma fonte e quiser usá-la
imediatamente, poderá executar esse comando como um(a)
usuário(a) normal.
Existem várias referências abaixo aos caracteres CJK. Isso significa Chinês, Japonês e Coreano, embora o Coreano moderno agora seja quase todo escrito usando os glifos fonéticos Hangul (às vezes costumava-se usar glifos Hanja que são semelhantes ao Chinês e ao Japonês). O Unicode decidiu optar pela Unificação Han e mapear alguns glifos Chineses e Japoneses para os mesmos pontos de código. Isso era muito impopular no Japão e o resultado é que fontes diferentes renderizariam alguns pontos de código em formatos bastante diferentes. Além disso, o Chinês Simplificado às vezes usará o mesmo ponto de código que o Chinês Tradicional, mas o mostrará diferentemente, um tanto análogo às diferentes formas usadas para as letras 'a' e 'g' em Inglês (um andar e dois andares), exceto que, em um contexto de idioma, alguém parecerá "errado" em vez de apenas "diferente".
Ao contrário da maioria dos outros pacotes neste livro, os(as) editores(as) do BLFS não monitoram as versões das fontes nesta página - uma vez que uma fonte é boa o suficiente para uso geral, as adições típicas em uma nova versão são menores (por exemplo, novos símbolos de moeda ou glifos não para um idioma moderno, como emojis ou cartas de baralho). Portanto, nenhuma dessas fontes mostra informações de versão ou de MD5.
A lista abaixo não fornecerá cobertura completa Unicode. O Unicode é atualizado a cada ano e a maioria das adições agora é para sistemas históricos de escrita. Para uma cobertura quase completa, você pode instalar o conjunto completo das Fontes Noto (existem fontes separadas para diferentes sistemas de escrita). Nós costumávamos recomendar o Guia de Fontes Unicode, mas ele não tem sido atualizado desde 2008 e muitos dos links dele estão mortos.
Exemplos renderizados da maioria dessas fontes, e muitas outras, com detalhes de quais idiomas elas cobrem, podem ser encontrados em um sítio web de comparação de fontes.
As fontes frequentemente são fornecidas em arquivos zip, exigindo ferramentas originárias do libarchive-3.7.7 ou do 7zip-24.09 para listá-las e extraí-las, mas mesmo que o lançamento atual seja um tarball, você ainda deveria verificar para ver se ele criará um diretório (espalhar-se o conteúdo de um arquivo zip ou tarball ao longo do diretório atual pode ser muito confuso, e algumas fontes criam diretórios __MACOSX/). Além disso, muitas fontes são fornecidas com permissões que não permitem que 'outros(as)' usuários(as) as leiam - se uma fonte é para ser instalada para uso abrangente a todo o sistema, quaisquer diretórios precisam estar no modo 755 e todos os arquivos no modo 644, de forma que você precisa mudá-los se as permissões forem diferentes. Se você se esquecer, o(a) usuário(a) root possivelmente esteja apto(a) a ver uma fonte específica em fc-list, mas um(a) usuário(a) normal não estará apto(a) a usá-las.
Como um exemplo de instalação de fontes, considere a
instalação das Fontes Dejavu. Nesse pacote específico,
os arquivos TTF estão em um subdiretório. A partir do
diretório desempacotado do fonte, execute os seguintes
comandos como o(a) usuário(a) root
:
install -v -d -m755 /usr/share/fonts/dejavu && install -v -m644 ttf/*.ttf /usr/share/fonts/dejavu && fc-cache -v /usr/share/fonts/dejavu
Se desejar, você também pode instalar quaisquer licenças ou
outra documentação, seja junto com a fonte ou em um diretório
correspondente sob /usr/share/doc/
.
Umas poucas fontes vem com o fonte, bem como com o(s) arquivo(s) completo(s) TTF ou OTF. A menos que você pretenda modificar a fonte e tenha as ferramentas corretas (às vezes FontForge-20230101, mas frequentemente ferramentas comerciais), o fonte não fornecerá nenhum benefício, de forma que não o instale. Uma ou duas fontes até mesmo vem com arquivos Web Open Font Format (WOFF) - isso é útil se você executar um servidor web e desejar usar essa fonte em teu sítio da web, mas não é útil para um sistema de área de trabalho.
Para fornecer maior cobertura Unicode, você deveria instalar algumas das seguintes fontes, dependendo de quais sítios da web e idiomas você desejar ler. A próxima parte desta página detalha algumas fontes que cobrem pelo menos os alfabetos Latinos; a parte final lida com alguns problemas do CJK.
A instalação das Fontes Dejavu é fortemente recomendada.
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 – 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 (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 – Essas fontes são uma extensão das, e substituição para as, fontes Bitstream Vera e fornecem conjuntos de comandos sequenciais baseados em Latim com acentos e pontuação, como "aspas inteligentes" e caracteres de espaçamento variantes, bem como Cirílico, Grego, Árabe, Hebraico, Armênio, Georgiano e alguns outros glifos. Na ausência das fontes Bitstream Vera (que tinham muito menos cobertura), essas eram as fontes substitutas padrão para idiomas 'Latinos'. A partir do Fontconfig-2.14, se as fontes Noto 'Latinas' tiverem sido instaladas, elas serão priorizadas antes das DejaVu.
GNU FreeFont – Esse conjunto de fontes cobre muitos caracteres não CJK, mas os glifos são comparativamente pequenos (ao contrário das fontes Noto e DejaVu que são comparativamente grandes) e bastante finos ("menos preto" quando preto sobre branco for usado), o que significa que, em alguns contextos, como terminais, eles não serão visualmente agradáveis, por exemplo, quando a maioria dos outros glifos for fornecida por outra fonte. Por outro lado, algumas fontes usadas principalmente para saída gerada impressa, e muitas fontes CJK, também são finas.
Gelasio é metricamente compatível com MS Georgia e o Fontconfig irá usá-la se a MS Georgia for solicitada, mas não estiver instalada.
As fontes Liberation fornecem substitutos livres para Arial, Courier New e Times New Roman. O Fontconfig as usará como substitutas para essas fontes e também para as semelhantes Helvetica, Courier e Times Roman, embora para essas ele possa preferir uma fonte diferente (vejam-se os exemplos nos PDFs em typosetting.co.uk).
Muitas pessoas acharão as fontes Liberation úteis para páginas onde uma dessas fontes for solicitada.
As Fontes Centrais da Microsoft datam de 2002. Elas foram fornecidas com versões antigas do Microsoft Windows e aparentemente foram disponibilizadas para uso geral. Você pode extraí-las a partir dos arquivos '.exe' usando o bsd-tar originário do libarchive-3.7.7. Certifique-se de ler a licença antes de usá-las. Ao mesmo tempo, algumas dessas fontes (particularmente Arial, Times New Roman e, em menor grau, Courier New) foram amplamente usadas em páginas da web. O conjunto completo contém Andale Mono, Arial, Arial Black, Comic Sans MS, Courier New, Georgia, Impact, Times New Roman, Trebuchet MS, Verdana e Webdings.
Por favor, observe que se somente quiser usar uma fonte com as mesmas métricas (tamanho dos caracteres, etc.) que a Arial, Courier New ou Times New Roman, você pode usar as fontes livres Liberation (acima) e, da mesma forma, consegue substituir a Georgia pela Gelasio.
Embora muitas postagens antigas recomendem instalar essas fontes para uma saída gerada que pareça melhor, postagens menos antigas dizem que elas são 'feias' ou 'quebradas' com os modernos Fontconfig, Freetype e Pango. A maioria das pessoas não vai querer instalar nenhuma dessas fontes.
As fontes mais recentes que a Microsoft tornou padrão em lançamentos posteriores do MS Windows ou do MS Office (Calibri e Cambria) nunca estiveram disponíveis livremente. Entretanto, se você não as tiver instaladas, poderá encontrar equivalentes métricas (Carlito e Caladea) acima.
As fontes Noto ('No Tofu', ou seja, evitar caixas com pontos [dígitos hexadecimais] quando um glifo não puder ser encontrado) são um conjunto de fontes que visa a cobrir cada glifo em Unicode, não importa quão obscuro.
Pessoas que usam idiomas escritos em alfabetos Latino, Grego ou Cirílico precisam instalar somente Noto Sans, Noto Serif e (ou) Noto Sans Mono. Para mais detalhes a respeito da organização das fontes Noto, veja-se como as fontes Noto estão organizadas. Existem também fontes separadas para todos os outros sistemas atuais de escrita, mas essas não abrangem texto em idiomas Latinos.
Essas três fontes são as preferências de primeira escolha do Fontconfig para texto nesses três alfabetos e são atualizadas frequentemente para cobrir adições recentes ao Unicode, como as extensões para transcrição fonética nos alfabetos Latino e Cirílico.
Possivelmente seja mais fácil baixar uma fonte específica Noto acessando-se Noto Sans e mudando o nome da fonte conforme apropriado, com '+' entre cada palavra, por exemplo, 'Noto+Kufi+Arabic', 'Noto+Serif+Georgian' ou qualquer outra, depois clicando em 'Download family'.
Para as fontes Noto CJK, é mais fácil encontrar o arquivo zip específico que você deseja no Github. Vá para https://github.com/notofonts/noto-cjk/releases/ e procure a versão Sans ou Serif mais recente com o próprio guia delas atualizado de download e os recursos delas. Os guias de download deveriam ajudá-lo(a) a identificar qual arquivo zip melhor atende aos teus requisitos.
Noto Sans é a fonte preferida para KDE Plasma e aplicativos, exceto para fontes mono espaçadas, onde Hack é preferida.
Para sistemas de escrita que não usam os alfabetos latino, grego ou cirílico, as fontes Noto não são preferidas pelo Fontconfig. Se usar uma fonte Noto para um idioma moderno onde outra fonte instalada também o cobre (por exemplo, as fontes DejaVu cobrem vários alfabetos da direita para a esquerda), você talvez necessite configurar uma preferência para Fontconfig - veja-se a página anterior.
Esse conjunto de fontes originário da Adobe (sete pesos) inclui o que agora é a fonte mono espaçada preferida para aqueles aplicativos que usam o gsettings-desktop-schemas-47.1. O lançamento GitHub source-code-pro contém OTF (preferida) e TTF, bem como o fonte e as fontes WOFF.
Para usar isso em terminais, você provavelmente desejará somente a fonte Regular.
Existe também uma versão mais antiga TTF disso disponível a partir de fontes do Google, mas essa tem uma cobertura muito limitada (adequada para a maioria dos idiomas Europeus que usam um alfabeto Latino).
Para idiomas índicos, Fontconfig agora prefere fontes Lohit (sânscrito para 'vermelho'). Elas podem ser encontradas em pagure.org
Conforme indicado anteriormente, o uso de uma combinação de caracteres Chineses, Japoneses e Coreanos pode ser complicado - cada fonte cobre somente um subconjunto dos pontos de código disponíveis; as formas preferidas dos glifos podem diferir entre os idiomas e muitas das fontes CJK atualmente não suportam o Coreano moderno.
Além disso, o Fontconfig prefere o Chinês ao Japonês por padrão. Ajustar isso está abordado em Preferindo fontes escolhidas CJK.
Embora o Unicode tenha sido estendido para permitir um número muito grande de pontos de código CJK, aqueles fora do Plano Base (maiores que U+0xFFFF) não são comumente usados em Mandarim (a forma normal do Chinês escrito, seja Simplificado (China continental, Malásia e Singapura) ou Tradicional (Hong Kong e Taiwan)) ou Japonês.
Para Hong Kong, que usa Chinês Tradicional e onde o Cantonês é o idioma dominante, o Conjunto de Caracteres Suplementares de Hong Kong foi adicionado ao Unicode em 2005 e revisado em 2009 (ele é parte da Extensão B do CJK e contém mais que mil e novecentos (1.900) caracteres). As fontes anteriores não serão capazes de suportar o Cantonês ou usar esses caracteres onde os nomes locais forem escritos em Mandarim. As fontes UMing HK, Noto Sans HK e WenQuanYi Zen Hei todas parecem cobrir o uso em Hong Kong (o Fontconfig discorda a respeito da Noto Sans HK).
Os glifos Han tem largura dupla e outros glifos na mesma fonte possivelmente sejam mais estreitos. Para o conteúdo CJK deles, todas essas fontes podem ser consideradas como mono espaçadas (ou seja, largura fixa).
Se você deseja usar fontes Noto, também existem versões Serif
das diversas fontes CJK delas. As fontes Noto Sans/Serif
SC/TC/HK/JP/KR são derivadas de um repositório monolítico
noto-cjk e você
pode encontrar lá os arquivos .ttc
para a família inteira de fontes Noto
Sans CJK (incluindo SC/TC/HK/JP/KR) ou Noto Serif CJK. O
Google recomenda, em vez disso, que os(as) usuários(as)
normais usem fontes separadas Noto Sans/Serif SC/TC/HK/JP/KR,
mas se você for capaz e estiver disposto a ler textos em mais
de um sistema de caracteres CJK, possivelmente seja mais
fácil usar um arquivo monolítico .ttc
para cobertura completa.
Se tudo o que você deseja fazer é renderizar glifos CJK, instalar WenQuanYi ZenHei possivelmente seja um bom lugar para começar, se você ainda não tiver uma preferência.
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.
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.
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 fornece uma fonte Sans-Serif que cobre todos os conjuntos de comandos sequenciais CJK, incluindo o Coreano. Embora ela inclua arquivos de configuração de estilo antigo, eles não são exigidos: o Fontconfig já tratará essas fontes (a 'sharp' contém bitmaps, a monospace parece não ser Mono na parte ASCII dela) como Sans, Serif e Monospace. Se tudo o que você deseja fazer é estar apto(a) a renderizar texto em Han e Coreano, sem se preocupar com as sutilezas das formas usadas, a fonte principal proveniente desse pacote é uma boa fonte para usar.
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.
As fontes IPAex são a versão atual das fontes IPA. Use o Tradutor do Google na página inicial e, então, clique no link de transferência para a Fonte IPAex Ver.004.01. Infelizmente, o Fontconfig conhece somente acerca das mais antigas fontes IPA e da fonte bifurcada IPA Mona (que não está facilmente disponível e que aparentemente não atende às diretrizes de Software Livre do Debian). Se instalar as fontes IPAex, você possivelmente queira torná-las conhecidas para o Fontconfig. Por favor, veja-se Preferindo fontes escolhidas CJK para uma maneira de fazer isso.
As fontes Kochi Substitute foram as primeiras fontes japonesas verdadeiramente livres (as fontes Kochi anteriores foram supostamente plagiadas de uma fonte comercial).
A fonte VL Gothic é uma fonte japonesa moderna em duas variantes com espaçamento monotônico ou proporcional para caracteres não japoneses.
Em Coreano, Batang ou Myeongjo (o nome mais antigo) são Serif; Dotum ou Gothic são as principais fontes Sans. O BLFS recomendava anteriormente as fontes Baekmuk, mas as fontes Nanum e Un agora são preferidas à Baekmuk pelo Fontconfig devido a solicitações de usuários(as).
Um lugar conveniente para ver exemplos dessas e de muitas
outras fontes Coreanas é Fontes Coreanas Livres.
Clique em 'Gothic Fonts' ou 'All Categories -> Myeongjo
Fonts', a seguir clique no exemplo de fonte para ver mais
detalhes, incluindo a Licença, e clique no link para
baixá-la. Para a Nanum, você precisará estar apto(a) a ler
Coreano para encontrar o link de transferência na página que
acessar. Para a Un, existem links diretos e você pode
encontrar o tarball un-fonts-core no diretório releases/
.
Alternativamente, considere Noto Sans KR ou WenQuanYi ZenHei.
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.
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.3.
Transferência (HTTP): https://www.x.org/pub/individual/
Tamanho da transferência: 4,2 MB
Espaço em disco estimado exigido: 30 MB
Tempo de construção estimado: 0,3 UPC
Primeiro, crie uma lista de arquivos a serem baixados. Esse arquivo também será usado para verificar a integridade das transferências quando concluídas:
cat > legacy.dat << "EOF"
e09b61567ab4a4d534119bba24eddfb1 util/ bdftopcf-1.1.1.tar.xz
20239f6f99ac586f10360b0759f73361 font/ font-adobe-100dpi-1.0.4.tar.xz
2dc044f693ee8e0836f718c2699628b9 font/ font-adobe-75dpi-1.0.4.tar.xz
2c939d5bd4609d8e284be9bef4b8b330 font/ font-jis-misc-1.0.4.tar.xz
6300bc99a1e45fbbe6075b3de728c27f font/ font-daewoo-misc-1.0.4.tar.xz
fe2c44307639062d07c6e9f75f4d6a13 font/ font-isas-misc-1.0.4.tar.xz
145128c4b5f7820c974c8c5b9f6ffe94 font/ font-misc-misc-1.1.3.tar.xz
EOF
Para baixar os arquivos necessários usando o Wget-1.25.0, use os seguintes comandos:
mkdir legacy && cd legacy && grep -v '^#' ../legacy.dat | awk '{print $2$3}' | wget -i- -c \ -B https://www.x.org/pub/individual/ && grep -v '^#' ../legacy.dat | awk '{print $1 " " $3}' > ../legacy.md5 && md5sum -c ../legacy.md5
Quando instalar múltiplos pacotes em um conjunto de comandos sequenciais, a instalação precisa ser feita como o(a) usuário(a) root. Existem três opções gerais que podem ser usadas para se fazer isso:
Executar o conjunto inteiro de comandos sequenciais como o(a) usuário(a) root (não recomendado).
Usar o comando sudo oriundo do pacote Sudo-1.9.16p2.
Usar su -c "argumentos do comando" (aspas exigidas), que solicitará a senha do(a) root para cada interação do loop.
Uma maneira de se lidar com essa situação é a de se criar uma função curta do bash que selecione automaticamente o método apropriado. Uma vez que o comando esteja configurado no ambiente, ele não precisa ser configurado novamente.
as_root() { if [ $EUID = 0 ]; then $* elif [ -x /usr/bin/sudo ]; then sudo $* else su -c \\"$*\\" fi } export -f as_root
Primeiro, inicie um sub shell que sairá em caso de erro:
bash -e
Instale todos os pacotes executando os seguintes comandos:
for package in $(grep -v '^#' ../legacy.md5 | awk '{print $2}') do packagedir=${package%.tar.?z*} tar -xf $package pushd $packagedir ./configure $XORG_CONFIG make as_root make install popd rm -rf $packagedir as_root /sbin/ldconfig done
Finalmente, saia do shell que foi iniciado anteriormente:
exit
$XORG_PREFIX
/share/fonts/100dpi,
$XORG_PREFIX
/share/fonts/75dpi,
$XORG_PREFIX
/share/fonts/misc
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" é a interface oficial C++ da biblioteca do kit de ferramentas de acessibilidade "ATK".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/atkmm/2.28/atkmm-2.28.4.tar.xz
Soma de verificação MD5 da transferência: e0f7271990c89a6c9987f215ba47bfc5
Tamanho da transferência: 724 KB
Espaço em disco estimado exigido: 14 MB
Tempo de construção estimado: 0,2 UPC
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
Atkmm é a interface C++ oficial para a biblioteca do kit de ferramentas de acessibilidade ATK. Essa versão é parte de uma nova API para suporte ao gtkmm-4.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/atkmm/2.36/atkmm-2.36.3.tar.xz
Soma de verificação MD5 da transferência: 8b03a39a5e3dd0d3c040ece345f7a786
Tamanho da transferência: 780 KB
Espaço em disco estimado exigido: 11 MB
Tempo de construção estimado: 0,2UPC
Instale Atkmm executando os seguintes comandos:
mkdir build && cd build && meson setup --prefix=/usr --buildtype=release .. && ninja
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
ninja install
O pacote "At-Spi2 Core" contém uma estrutura de acessibilidade abrangente para as Tecnologias Assistivas disponíveis na plataforma "GNOME". Isso inclui um conjunto de interfaces que são implementadas por outros kits de ferramentas e aplicativos.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/at-spi2-core/2.54/at-spi2-core-2.54.1.tar.xz
Soma de verificação MD5 da transferência: a05ad6cf4a49b19964cc5eec363d2310
Tamanho da transferência: 564 KB
Espaço em disco estimado exigido: 24 MB (com testes)
Tempo de construção estimado: 0,2 UPC (com testes)
dbus-1.16.0, GLib-2.82.5 (GObject Introspection exigido para GNOME), gsettings-desktop-schemas-47.1 (tempo de execução) e Bibliotecas do Xorg
Instale o "At-Spi2 Core" 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
A suíte de teste exige que os esquemas da glib do pacote já estejam instalados. Os testes também precisam executar em um ambiente gráfico. Agora que o pacote está instalado, teste os resultados emitindo: dbus-run-session ninja test.
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
-D docs=true
: Use essa chave se
você quiser construir a documentação. Observe que você
precisa ter Gi-DocGen-2025.3 e sphinx-8.2.1
instalados em teu sistema.
Cairo é uma biblioteca de gráficos 2D com suporte para múltiplos dispositivos de saída gerada. Os alvos de saída gerada atualmente suportados incluem o Sistema de Janelas X, Win32, buffers de imagem, PostScript, PDF e SVG. As estruturas de retaguarda experimentais incluem OpenGL, Quartz e saída gerada de arquivo XCB. Cairo foi projetado para produzir saída gerada consistente em todas as mídias de saída, aproveitando ao mesmo tempo a aceleração de hardware de exibição quando disponível (por exemplo, por meio do X Render Extension). A API do Cairo fornece operações semelhantes aos operadores de desenho de PostScript e PDF. As operações no Cairo incluem traçar e preencher splines cúbicas de Bézier, transformar e compor imagens translúcidas e renderização de texto suavizado. Todas as operações de desenho podem ser transformadas por qualquer transformação afim (escala, rotação, cisalhamento, etc.)
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.cairographics.org/releases/cairo-1.18.2.tar.xz
Soma de verificação MD5 da transferência: 5ad67c707edd0003f1b91c8bbc0005c1
Tamanho da transferência: 31 MB
Espaço em disco estimado exigido: 93 MB
Tempo de construção estimado: 0,2 UPC (Usando paralelismo=4)
Fontconfig-2.16.0, GLib-2.82.5 (exigido para a maioria das "GUIs") e Bibliotecas do Xorg
ghostscript-10.04.0, GTK-Doc-1.34.0, libdrm-2.4.124, librsvg-2.59.2, libxml2-2.13.6, LZO-2.10, Poppler-25.02.0, Valgrind-3.24.0, GTK+-2 e libspectre
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".
Primeiro, corrija um defeito que causa problemas com impressão de arquivos PDF:
patch -Np1 -i ../cairo-1.18.2-upstream_fixes-1.patch
Instale o "Cairo" executando os seguintes comandos:
mkdir build && cd build && meson setup --prefix=/usr --buildtype=release .. && ninja
Esse pacote não tem uma suíte funcional de teste.
Agora, como o(a) usuário(a) "root
":
ninja install
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
-D xlib-xcb=enabled
: Essa chave
habilita diversas funções experimentais de Xlib/XCB usadas
por alguns gerenciadores de janelas.
-D gtk_doc=true
: Use esse
parâmetro se GTK-Doc estiver instalado e você desejar criar e
instalar a documentação.
gera um registro de todas as chamadas feitas por um aplicativo para o "Cairo" |
|
contém as funções gráficas "2D" exigidas para renderizar para os vários alvos de saída gerada |
|
contém funções que integram o "Cairo" com o sistema de tipos "GObject" do "Glib" |
|
contém as funções do interpretador de conjunto de comandos sequenciais para executar e manipular os rastreamentos de execução do "Cairo" |
O pacote "libcairomm-1.0" fornece uma interface "C++" para o "Cairo".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.cairographics.org/releases/cairomm-1.14.5.tar.xz
Soma de verificação MD5 da transferência: 0974ef291d491f22df287f588580677d
Tamanho da transferência: 638 KB
Espaço em disco estimado exigido: 9,5 MB (com testes)
Tempo de construção estimado: menos que 0,1 UPC (com testes)
Cairo-1.18.2 e libsigc++-2.12.1
Boost-1.87.0 (para testes)
Instale o "Cairomm-1.0" executando os seguintes comandos:
mkdir bld && cd bld && meson setup .. \ --prefix=/usr \ --buildtype=release \ -D build-tests=true \ -D boost-shared=true && ninja
Para executar a suíte de teste, execute: ninja test.
Agora, como o(a) usuário(a) "root
":
ninja install
-D build-tests=true
:
Essa chave é para construir os testes de unidade. Remova se
você não tiver instalado Boost-1.87.0.
-D boost-shared=true
:
Essa chave faz com que o pacote use a versão compartilhada
das bibliotecas boost. Ela é exigida se você não tiver
instalado as bibliotecas estáticas boost e tiver passado
-D build-tests=true
.
-D build-documentation=true
: Essa
chave constrói a documentação HTML se o doxygen estiver
instalado.
O pacote libcairomm-1.16 fornece uma interface C++ para o Cairo. Essa versão da API é necessária para suportar gtkmm-4.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.cairographics.org/releases/cairomm-1.18.0.tar.xz
Soma de verificação MD5 da transferência: 4c7afc4ab5177655724ea4b31794db30
Tamanho da transferência: 620 KB
Espaço em disco estimado exigido: 25 MB (com testes)
Tempo de construção estimado: 0,2UPC (com testes)
Cairo-1.18.2 e libsigc++-3.6.0
Boost-1.87.0 (para testes)
Instale Cairomm-1.16 executando os seguintes comandos:
mkdir bld && cd bld && meson setup .. \ --prefix=/usr \ --buildtype=release \ -D build-tests=true \ -D boost-shared=true && ninja
Para executar a suíte de teste, execute: ninja test.
Agora, como o(a) usuário(a) root
:
ninja install
-D build-tests=true
:
Essa chave é para construir os testes de unidade. Remova se
você não tiver instalado Boost-1.87.0.
-D boost-shared=true
:
Essa chave faz com que o pacote use a versão compartilhada
das bibliotecas boost. Ela é exigida se você não tiver
instalado as bibliotecas estáticas boost e tiver passado
-D build-tests=true
.
-D build-documentation=true
: Essa
chave constrói a documentação HTML se o doxygen estiver
instalado.
O pacote "Colord GTK" contém ligações "GTK+" para o "Colord".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.freedesktop.org/software/colord/releases/colord-gtk-0.3.1.tar.xz
Soma de verificação MD5 da transferência: d436740c06e42af421384f16b2a9a0a7
Tamanho da transferência: 24 KB
Espaço em disco estimado exigido: 2,1 MB
Tempo de construção estimado: menos que 0,1 UPC
GLib-2.82.5 (com GObject Introspection), GTK-4.16.12 e Vala-0.56.17
docbook-xml-5.0, docbook-xsl-ns-1.79.2, libxslt-1.1.42 (para construir a página de manual) e GTK-Doc-1.34.0
Se construir a documentação, [então] "ninja -j1" precisa ser usado.
Instale o "Colord GTK" executando os seguintes comandos:
mkdir build && cd build && meson setup --prefix=/usr \ --buildtype=release \ -D gtk4=true \ -D vapi=true \ -D docs=false \ -D man=false \ .. && ninja
Se docbook-xml-5.0, docbook-xsl-ns-1.79.2 e libxslt-1.1.42 estiverem instalados, construa a página de manual:
sed '/class="manual"/i \ <refmiscinfo class="source">colord-gtk</refmiscinfo>' \ -i ../man/*.xml && meson configure -D man=true && ninja
Para testar os resultados, emita: "ninja test". Os testes precisam ser executados a partir de uma sessão do "X" e possivelmente exijam um perfil de cores para o teu monitor principal.
Agora, como o(a) usuário(a) "root
":
ninja install
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
-D vapi=true
: Essa
chave habilita a construção das ligações Vala. Remova essa
chave se você não tiver o Vala-0.56.17 instalado.
-D gtk4=true
: Essa
chave habilita construir as ligações GTK-4 para colord.
Configure essa opção como 'false' se você não tiver o
GTK-4.16.12 instalado.
-D docs=false
: Essa
chave desabilita construir documentação baseada em gtk-doc.
Mesmo se o gtk-doc estiver instalado, você precisará das
versões com nomes de espaço das folhas de estilo XSL do
Docbook.
"FLTK" (pronuncia-se "fulltick") é um kit de ferramentas "GUI" "C++" multiplataforma. "FLTK" fornece funcionalidade moderna "GUI" e suporta gráficos "3D" via" OpenGL" e as bibliotecas de emulação "GLUT" integradas dele usadas para criar interfaces gráficas de usuário(a) para aplicativos.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/fltk/fltk/releases/download/release-1.4.2/fltk-1.4.2-source.tar.gz
Soma de verificação MD5 da transferência: 2df31c81fbf9ef79f9ac5895d4559e6b
Tamanho da transferência: 8,8 MB
Espaço em disco estimado exigido: 223 MB
Tempo de construção estimado: 0,2 UPC (Usando paralelismo=4)
Documentação Opcional: https://github.com/fltk/fltk/releases/download/release-1.4.2/fltk-1.4.2-docs-html.tar.gz
hicolor-icon-theme-0.18, libjpeg-turbo-3.0.1 e libpng-1.6.46
alsa-lib-1.2.13, desktop-file-utils-0.28, Doxygen-1.13.2, GLU-9.0.3, Mesa-24.3.4 e texlive-20240312 (ou install-tl-unx)
O diretório de extração "tar" é "fltk-1.4.2" e não "fltk-1.4.2-source" conforme indicado pelo nome do "tarball".
Instale o "FLTK" executando os seguintes comandos:
sed -i -e '/cat./d' documentation/Makefile && ./configure --prefix=/usr \ --enable-shared && make
Se você deseja criar a documentação da "API", [então] emita:
make -C documentation html
Os testes para o pacote são interativos. Para executar os
testes, execute "test/unittests". Além
disso, existem outros setenta (70) aplicativos de teste
executáveis no diretório "test
"
que podem ser executados individualmente.
Agora, instale o pacote e remova bibliotecas estáticas
desnecessárias. Como o(a) usuário(a) root
:
make docdir=/usr/share/doc/fltk-1.4.2 install && rm -vf /usr/lib/libfltk*.a
Se desejado, instale alguns jogos de exemplo construídos como
parte dos testes, documentação extra e programas de exemplo.
Como o(a) usuário(a) root
:
make -C test docdir=/usr/share/doc/fltk-1.4.2 install-linux && make -C documentation docdir=/usr/share/doc/fltk-1.4.2 install-linux
Se você baixou a documentação HTML opcional, instale-a como
o(a) usuário(a) root
:
tar -C /usr/share/doc/fltk-1.4.2 --strip-components=4 -xf ../fltk-1.4.2-docs-html.tar.gz
sed ...
documentation/Makefile: Evite instalar
páginas em "/usr/share/man/cat*
".
é um jogo de eliminação de blocos baseado em "FLTK" |
|
é uma versão baseada em "FLTK" do jogo de damas |
|
é 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 |
|
é um projetista interativo de "GUI" para "FLTK" |
|
é uma implementação do popular jogo "Sudoku" |
|
contém funções que fornecem uma "API" para implementar interfaces gráficas de usuário(a) |
"Freeglut" pretende ser um clone 100% compatível e totalmente de fonte aberto da biblioteca "GLUT". "GLUT" é um kit de ferramentas independente do sistema de janelas para escrever aplicativos "OpenGL", implementando uma "API" de janelas simples, o que torna muito fácil aprender e explorar a programação "OpenGL".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://downloads.sourceforge.net/freeglut/freeglut-3.6.0.tar.gz
Soma de verificação MD5 da transferência: 1a1c4712b3100f49f5dea22a1ad57c34
Tamanho da transferência: 420 KB
Espaço em disco estimado exigido: 5,2 MB
Tempo de construção estimado: menos que 0,1 UPC
Instale o "Freeglut" executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ -D FREEGLUT_BUILD_DEMOS=OFF \ -D FREEGLUT_BUILD_STATIC_LIBS=OFF \ -W no-dev .. && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) "root
":
make install
-D
FREEGLUT_BUILD_DEMOS=OFF
: Desabilita construir
aplicativos opcionais de demonstração. Observe que, se você
optar por construí-los, a instalação deles precisa ser feita
manualmente. Os aplicativos de demonstração são limitados e a
instalação não é recomendada.
-D
FREEGLUT_BUILD_STATIC_LIBS=OFF
: Não construa a
biblioteca estática.
O pacote Gdk Pixbuf é um kit de ferramentas para carregamento de imagens e manipulação de buffer de pixel. Ele é usado pelo GTK+ 3 para carregar e manipular imagens. No passado, ele era distribuído como parte do GTK+ 2, mas foi dividido em um pacote separado em preparação para a mudança para o GTK+ 3.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/gdk-pixbuf/2.42/gdk-pixbuf-2.42.12.tar.xz
Soma de verificação MD5 da transferência: f986fdbba5ec6233c96f8b6535811780
Tamanho da transferência: 6,2 MB
Espaço em disco estimado exigido: 33 MB (com testes)
Tempo de construção estimado: 0,2UPC (com testes)
GLib-2.82.5 (GObject Introspection exigido para GNOME), libjpeg-turbo-3.0.1, libpng-1.6.46 e shared-mime-info-2.4
docutils-0.21.2, librsvg-2.59.2 (dependência de tempo de execução, necessária para carregar ícones simbólicos) e libtiff-4.7.0
Gi-DocGen-2025.3 (para gerar documentação), libavif-1.2.0 (dependência de tempo de execução, necessária para carregar imagens AVIF), libjxl-0.11.1 (dependência de tempo de execução, necessário para carregar imagens JPEG XL) e webp-pixbuf-loader-0.2.7 (dependência de tempo de execução, necessária para carregar imagens WebP)
Instale o "Gdk Pixbuf" executando os seguintes comandos:
mkdir build && cd build && meson setup .. \ --prefix=/usr \ --buildtype=release \ -D others=enabled \ --wrap-mode=nofallback && ninja
Se você tiver Gi-DocGen-2025.3 instalado e desejar construir a documentação da API para esse pacote, emita:
sed "/docs_dir =/s@\$@ / 'gdk-pixbuf-2.42.12'@" -i ../docs/meson.build && meson configure -D gtk_doc=true && ninja
Para testar os resultados, emita: "ninja test". Os testes fazem um uso intenso do disco.
Agora, como o(a) usuário(a) "root
":
ninja install
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
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
--wrap-mode=nofallback
: Essa
chave impede meson de usar substitutos
de subprojeto para quaisquer declarações de dependência nos
arquivos de construção, impedindo-o de baixar quaisquer
dependências opcionais que não estejam instaladas no sistema.
-D others=enabled
:
Habilite os carregadores para vários formatos de imagem, por
exemplo BMP e XPM.
-D man=false
: Use essa opção se
você não quiser gerar páginas de manual ou se não quiser
instalar o docutils-0.21.2.
é um pequeno utilitário que gera código "C" contendo imagens; usado para compilar imagens diretamente em aplicativos |
|
é uma ferramenta usada para converter "GdkPixbuf" em "GdkPixdata" |
|
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 |
|
cria miniaturas de imagens para uso em outros aplicativos |
|
contém funções usadas para carregar e renderizar imagens |
"GLEW" é a Biblioteca "OpenGL Extension Wrangler".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://downloads.sourceforge.net/glew/glew-2.2.0.tgz
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
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
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.
O pacote Glslang contém uma estrutura de interação direta com o(a) usuário(a) e um validador para sombreadores OpenGL, OpenGL ES e Vulkan.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/KhronosGroup/glslang/archive/15.1.0/glslang-15.1.0.tar.gz
Soma de verificação MD5 da transferência: 2bf049666f223732fc18d6c8b16b98cf
Tamanho da transferência: 3,7 MB
Espaço em disco estimado exigido: 170 MB (com testes)
Tempo de construção estimado: 0,4 UPC (com paralelismo=4; com testes)
Instale Glslang executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ -D ALLOW_EXTERNAL_SPIRV_TOOLS=ON \ -D BUILD_SHARED_LIBS=ON \ -D GLSLANG_TESTS=ON \ -G Ninja .. && ninja
Para testar os resultados, emita: ninja test.
Agora, como o(a) usuário(a) root
:
ninja install
-D
ALLOW_EXTERNAL_SPIRV_TOOLS=ON
: Essa chave permite
que o sistema de construção use a cópia instalada do sistema
do SPIRV-Tools-1.4.304.1, em vez de
baixar e instalar a própria cópia dele.
-D
BUILD_SHARED_LIBS=ON
: Essa chave constrói versões
compartilhadas das bibliotecas e não instala versões
estáticas delas.
-D GLSLANG_TESTS=ON
:
Essa chave constrói os testes para o pacote.
fornece uma estrutura de interação direta com o(a) usuário(a) e um validador para sombreadores OpenGL, OpenGL ES e Vulkan |
|
contém funções que fornecem uma estrutura de interação direta com o(a) usuário(a) e um validador para sombreadores OpenGL, OpenGL ES e Vulkan para outros programas |
|
fornece uma estrutura de interação direta com o(a) usuário(a) e um gerador para binários SPIR-V |
|
fornece um remapeador para binários SPIR-V |
Esse pacote fornece a biblioteca "OpenGL Utility" do Mesa.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://archive.mesa3d.org/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
Instale o "GLU" executando os seguintes comandos:
mkdir build && cd build && meson setup .. \ --prefix=$XORG_PREFIX \ -D gl_provider=gl \ --buildtype=release && ninja
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) "root
":
ninja install && rm -vf /usr/lib/libGLU.a
O pacote "GOffice" contém uma biblioteca de objetos e utilitários centrados em documentos "GLib"/"GTK". Isso é útil para realizar operações comuns em aplicativos centrados em documentos que sejam conceitualmente simples, mas complexos para se implementar totalmente. Algumas das operações fornecidas pela biblioteca "GOffice" incluem suporte para "plugins", rotinas de carregar/salvar para documentos de aplicativos e funções de desfazer/refazer.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/goffice/0.10/goffice-0.10.59.tar.xz
Soma de verificação MD5 da transferência: db013c15c5f6280c46a395647db759a4
Tamanho da transferência: 2,4 MB
Espaço em disco estimado exigido: 81 MB (com testes)
Tempo de construção estimado: 0,5 UPC (Usando paralelismo=4; com testes)
GTK-3.24.48, libgsf-1.14.53, librsvg-2.59.2, libxslt-1.1.42 e Which-2.23
GLib-2.82.5 (com GObject Introspection), ghostscript-10.04.0, gsettings-desktop-schemas-47.1, GTK-Doc-1.34.0, Lasem e libspectre
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
--enable-gtk-doc
: Use esse
parâmetro se GTK-Doc estiver
instalado e você desejar reconstruir e instalar a
documentação da API.
O pacote "Graphene" fornece uma fina camada de tipos para bibliotecas de gráficos.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/graphene/1.10/graphene-1.10.8.tar.xz
Soma de verificação MD5 da transferência: 169e3c507b5a5c26e9af492412070b81
Tamanho da transferência: 328 KB
Espaço em disco estimado exigido: 7,6 MB
Tempo de construção estimado: menos que 0,1 UPC (com testes)
GLib-2.82.5 (com GObject Introspection)
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
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
-D gtk_doc=true
: Use essa chave
se você tiver o GTK-Doc-1.34.0 instalado e desejar gerar
a documentação da API.
O pacote GTK3 contém bibliotecas usadas para criar interfaces gráficas de usuário(a) para aplicativos.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/gtk/3.24/gtk-3.24.48.tar.xz
Soma de verificação MD5 da transferência: 61b8af1ffb255cdabd44629cd2a05793
Tamanho da transferência: 13 MB
Espaço em disco estimado exigido: 255 MB (adicionar 8 MB para os testes)
Tempo de construção estimado: 0,8 UPC (usando paralelismo=4, adicionar 0,2 UPC para testes)
at-spi2-core-2.54.1, gdk-pixbuf-2.42.12, libepoxy-1.5.10 e Pango-1.56.1
adwaita-icon-theme-47.0 (em tempo de execução; padrão para algumas chaves de configurações do gtk3 e também necessário para um teste), docbook-xsl-nons-1.79.2 (para gerar páginas de manual), hicolor-icon-theme-0.18 (necessário para testes), ISO Codes-4.17.0, libxkbcommon-1.8.0, libxslt-1.1.42 (para gerar páginas de manual), Wayland-1.23.0 e wayland-protocols-1.40
GLib-2.82.5 (com GObject Introspection)
colord-1.4.7, Cups-2.4.11, GTK-Doc-1.34.0, libcloudproviders-0.3.6, PyAtSpi2-2.46.1 (para testes), sassc-3.6.2, tinysparql-3.8.2 e PAPI
Instale GTK3 executando os seguintes comandos:
mkdir build && cd build && meson setup .. \ --prefix=/usr \ --buildtype=release \ -D man=true \ -D broadway_backend=true && ninja
Para testar os resultados você precisa de uma sessão gráfica e, em seguida, emitir dbus-run-session ninja test.
Agora, como o(a) usuário(a) "root
":
ninja install
Um teste chamado check-cursor-names
é conhecido por falhar
se adwaita-icon-theme-47.0 não
estiver instalado.
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
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
-D
broadway_backend=true
: Essa chave habilita a
estrutura HTML5 de retaguarda do GTK.
-D man=true
: Essa
chave permite gerar páginas de manual.
-D gtk_doc=true
: Essa chave
habilita construir documentação. Ela exige GTK-Doc-1.34.0.
-D tracker3=true
: Essa chave
habilita a função de pesquisa baseada no TinySPARQL na caixa
de diálogo do seletor de arquivos do GTK3. Ela exige
tinysparql-3.8.2.
-D cloudproviders=true
: Use essa
chave se você tiver libcloudproviders-0.3.6
instalado e desejar habilitar suporte para provedores de
nuvem em uma janela de seletor de arquivos.
Temas do GTK3 mudam a
maneira como um aplicativo GTK3 aparenta. Um tema de ícones pode
ser usado para mudar os ícones que aparecem na barra de
ferramentas do aplicativo. Se tiver instalado um tema do
GTK3 (por exemplo, o tema
Adwaita construído no GTK3), um tema de ícones (como
oxygen-icons-6.0.0) e (ou) uma
fonte (Fontes Dejavu), você consegue
configurar tuas preferências em ~/.config/gtk-3.0/settings.ini
ou no
arquivo padrão de configuração abrangente ao sistema (como
o(a) usuário(a) root
), em
/etc/gtk-3.0/settings.ini
.
Para o(a) usuário(a) local, um exemplo é:
mkdir -vp ~/.config/gtk-3.0
cat > ~/.config/gtk-3.0/settings.ini << "EOF"
[Settings]
gtk-theme-name = Adwaita
gtk-icon-theme-name = oxygen
gtk-font-name = DejaVu Sans 12
gtk-cursor-theme-size = 18
gtk-toolbar-style = GTK_TOOLBAR_BOTH_HORIZ
gtk-xft-antialias = 1
gtk-xft-hinting = 1
gtk-xft-hintstyle = hintslight
gtk-xft-rgba = rgb
gtk-cursor-theme-name = Adwaita
EOF
Existem muitas chaves de configuração, algumas com valores padrão. Você pode encontrá-las em Configurações: Manual de Referência do GTK3. Existem muitos mais temas disponíveis em https://www.gnome-look.org/browse/ e em outros lugares.
Como parte do reprojeto do GTK-3.0, os botões da barra de
rolagem não mais estão visíveis na barra de rolagem em
muitos aplicativos. Se essa funcionalidade for desejada,
modifique o arquivo gtk.css
e
restaure-os usando o seguinte comando:
cat > ~/.config/gtk-3.0/gtk.css << "EOF"
* {
-GtkScrollbar-has-backward-stepper: 1;
-GtkScrollbar-has-forward-stepper: 1;
}
EOF
fornece suporte para exibir aplicativos GTK3 em um navegador da web, usando HTML5 e soquetes da web |
|
é um programa simples que demonstra algumas das tarefas que conseguem ser feitas com o GTK3 |
|
é um aplicativo simples do GTK3 |
|
é 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 |
|
é um programa para visualizar temas e pequenas engenhocas do GTK3 |
|
realiza várias operações sobre arquivos ".ui" do "GtkBuilder" |
|
converte ícones simbólicos SVG em arquivos PNG especialmente preparados. O GTK3 consegue carregar e recolorir esses PNGs, assim como os SVGs originais, mas carregá-los é muito mais rápido |
|
inicia um aplicativo usando o nome dado. O nome
deveria corresponder ao nome do arquivo de área de
trabalho do aplicativo, conforme residindo em
" |
|
coleta informações a respeito de módulos carregáveis de método de entrada para GTK3 e as escreve no local do arquivo padrão de cache ou na saída gerada padrão |
|
fornece uma listagem completa de todas as configurações relacionadas ao GTK3 |
|
é um utilitário de "cache" de temas de ícones que cria arquivos de "cache" compatíveis com "mmap" para temas de ícones |
|
contém funções que implementam as interfaces de acessibilidade definidas pelo Kit de Ferramentas de Acessibilidade do "GNOME" |
|
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 |
|
contém funções que fornecem uma "API" para implementar interfaces gráficas de usuário(a) |
O pacote "GTK 4" contém bibliotecas usadas para criar interfaces gráficas de usuário(a) para aplicativos.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/gtk/4.16/gtk-4.16.12.tar.xz
Soma de verificação MD5 da transferência: 0f2b154a0b05e4ca94a05aaeb7e1f3fb
Tamanho da transferência: 18 MB
Espaço em disco estimado exigido: 1,1 GB (com documentos; adicionar 157 MB para testes)
Tempo de construção estimado: 1,7 UPC (usando paralelismo=4; com documentos; adicionar 1,1 UPC para testes ou 3,7 UPC para NVIDIA)
Remendo recomendado (para corrigir a quebra de desserialização do espaço de cores de PNG com libpng-1.6.45 ou posterior): https://www.linuxfromscratch.org/patches/blfs/12.3/gtk-4.16.12-libpng_1_6_45-1.patch
FriBidi-1.0.16, gdk-pixbuf-2.42.12, graphene-1.10.8, ISO Codes-4.17.0, libepoxy-1.5.10, libxkbcommon-1.8.0, Pango-1.56.1, PyGObject-3.50.0 e wayland-protocols-1.40
adwaita-icon-theme-47.0 (padrão para algumas chaves de configurações do gtk4), gst-plugins-bad-1.24.12, glslc originário de shaderc-2024.4, gst-plugins-good-1.24.12 (tempo de execução, construído com libvpx-1.15.0), hicolor-icon-theme-0.18 (necessário para testes e para padrões), librsvg-2.59.2 e Vulkan-Loader-1.4.304
GLib-2.82.5 (com GObject Introspection)
Avahi-0.8 (para alguns testes), colord-1.4.7, Cups-2.4.11, docutils-0.21.2, Gi-DocGen-2025.3, Highlight-4.15 (tempo de execução, usado somente por gtk4-demo para realce de sintaxe de código fonte de demonstração), libcloudproviders-0.3.6, sassc-3.6.2, tinysparql-3.8.2, cpdb, pydbus (para alguns testes) e sysprof
Corrija a quebra de desserialização do espaço de cores de PNG com libpng-1.6.45 ou posterior:
patch -Np1 -i ../gtk-4.16.12-libpng_1_6_45-1.patch
Instale o "GTK 4" executando os seguintes comandos:
mkdir build && cd build && meson setup --prefix=/usr \ --buildtype=release \ -D broadway-backend=true \ -D introspection=enabled \ -D vulkan=enabled \ .. && ninja
Se você tiver Gi-DocGen-2025.3 instalado e desejar construir a documentação da API para esse pacote, emita:
sed "s@'doc'@& / 'gtk-4.16.12'@" -i ../docs/reference/meson.build && meson configure -D documentation=true && ninja
Para executar os testes, emita:
env -u{GALLIUM_DRIVER,MESA_LOADER_DRIVER_OVERRIDE} \ LIBGL_ALWAYS_SOFTWARE=1 VK_LOADER_DRIVERS_SELECT='lvp*' \ dbus-run-session meson test --setup x11 \ --no-suite={headless,needs-udmabuf}
Se você estiver em uma sessão do Wayland, substitua a
ocorrência de x11
por
wayland
. Muitos testes falharão
se ~/.config/gtk-4.0/settings.ini
existir e a
linha gtk-modules não estiver comentada. Vários outros testes
possivelmente falhem por motivo desconhecido. Em sistemas com
placas de vídeo NVIDIA, os testes possivelmente levem
significativamente mais tempo.
Agora, como o(a) usuário(a) "root
":
ninja install
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
-D
broadway-backend=true
: Essa chave habilita a
estrutura HTML5 de retaguarda do GDK.
-D
introspection=enabled
: Essa chave habilita usar
GObject Introspection para gerar ligações GIR desses pacotes.
Essas ligações são exigidas pelo GNOME.
-D cloudproviders=enabled
: Use
essa chave se você tiver o libcloudproviders-0.3.6
instalado e desejar habilitar o suporte para provedores de
nuvem em uma janela de seleção de arquivos.
-D tracker=enabled
: Use essa
chave se você tiver o tinysparql-3.8.2 instalado e
desejar usar a funcionalidade de pesquisa ao executar um
seletor de arquivos.
-D colord=enabled
: Use essa chave
se você tiver o colord-1.4.7 instalado e desejar usar o
colord com a estrutura de retaguarda de impressão do CUPS.
-D man-pages=true
: Use essa chave
se você tiver o docutils-0.21.2 instalado e desejar
gerar as páginas de manual.
-D sysprof=enabled
: Use essa
chave se você tiver o sysprof instalado e
desejar habilitar o suporte de rastreamento para aplicativos
baseados em GTK4.
-D vulkan=disabled
: Use essa
chave em vez de -D
vulkan=enabled
se você não tiver Vulkan-Loader-1.4.304 ou
glslc originário de
shaderc-2024.4 instalado. Ela desabilitará a estrutura de
retaguarda do Vulkan que o fluxo de desenvolvimento prefere
usar em ambientes gráficos baseados em Wayland.
LIBGL_ALWAYS_SOFTWARE=1
e
VK_LOADER_DRIVERS_SELECT='lvp*'
:
Força a suíte de teste a usar o controlador Gallium softpipe
ou llvmpipe e o controlador Vulkan lavapipe originário do
Mesa. A suíte de teste é tão sensível que as pequenas
diferenças causadas por um controlador Mesa diferente podem
deflagrar falhas de teste.
env
-u{GALLIUM_DRIVER,MESA_LOADER_DRIVER_OVERRIDE}:
Desconfigura variáveis que possam conflitar com LIBGL_ALWAYS_SOFTWARE=1
.
--no-suite={headless,needs-udmabuf}
:
Desabilita os testes que exigem a dependência externa pydbus
e os testes que exigem o nó do dispositivo /dev/udmabuf
. O nó do dispositivo não
existe se o recurso não estiver habilitado na configuração do
núcleo.
Temas do GTK 4 mudam a
maneira como um aplicativo GTK
4 aparenta. Um tema de ícones pode ser usado para
mudar os ícones que aparecem na barra de ferramentas do
aplicativo. Se tiver instalado um tema do GTK 4 (por exemplo, o tema Adwaita
construído em GTK 4), um
tema de ícones (como oxygen-icons-6.0.0) e (ou)
uma fonte (Fontes Dejavu), você consegue
configurar tuas preferências em ~/.config/gtk-4.0/settings.ini
ou no
arquivo padrão de configuração abrangente a todo o sistema
(como o(a) usuário(a) root
), em /usr/share/gtk-4.0/settings.ini
. Para
o(a) usuário(a) local, um exemplo é:
mkdir -pv ~/.config/gtk-4.0
cat > ~/.config/gtk-4.0/settings.ini << "EOF"
[Settings]
gtk-theme-name = Adwaita
gtk-icon-theme-name = oxygen
gtk-font-name = DejaVu Sans 12
gtk-cursor-theme-size = 18
gtk-xft-antialias = 1
gtk-xft-hinting = 1
gtk-xft-hintstyle = hintslight
gtk-xft-rgba = rgb
gtk-cursor-theme-name = Adwaita
EOF
Existem muitas chaves de configuração, algumas com valores padrão. Você consegue encontrá-las em Configurações: Manual de Referência do GTK 4.
fornece suporte para exibição de aplicativos "GTK 4" em um navegador da "web" usando "HTML5" e soquetes da "web" |
|
realiza várias operações sobre arquivos ".ui" do "GtkBuilder" |
|
é um aplicativo simples que demonstra algumas das tarefas que conseguem ser feitas com o "GTK 4" |
|
é um aplicativo simples "GTK 4" que é útil para testagem |
|
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 |
|
é 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 |
|
inicia um aplicativo usando o nome dado. O nome
deveria corresponder ao nome do arquivo ".desktop"
do aplicativo (como visto em " |
|
é 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" |
|
é um aplicativo simples para demonstrar impressão usando aplicativos "GTK 4" |
|
fornece uma listagem completa de todas as configurações relacionadas ao "GTK 4" |
|
é um utilitário de "cache" de temas de ícones que cria arquivos de "cache" compatíveis com "mmap" para temas de ícones |
|
é um aplicativo para visualizar temas e pequenas engenhocas do "GTK 4" |
|
contém funções que fornecem uma "API" para implementar interfaces gráficas de usuário(a) |
O pacote "Gtkmm" fornece uma interface "C++" para o "GTK+ 3".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/gtkmm/3.24/gtkmm-3.24.9.tar.xz
Soma de verificação MD5 da transferência: 47871a7973e186c1189b2145b507de15
Tamanho da transferência: 14 MB
Espaço em disco estimado exigido: 200 MB (com testes)
Tempo de construção estimado: 1,2 UPC (Usando paralelismo=4; com testes)
Atkmm-2.28.4, GTK-3.24.48 e Pangomm-2.46.4
Instale o "Gtkmm" executando os seguintes comandos:
mkdir gtkmm3-build && cd gtkmm3-build && meson setup --prefix=/usr --buildtype=release .. && ninja
Para testar os resultados, emita: ninja test. Observe que você precisa estar em um ambiente gráfico, pois os testes tentam abrir algumas janelas.
Agora, como o(a) usuário(a) "root
":
ninja install
Se você tiver construído a documentação (vejam-se as
Explicações dos Comandos abaixo), [então] ela foi instalada
em "/usr/share/doc/gtkmm-3.0
".
Para consistência, mova-a para um diretório versionado como
o(a) usuário(a) "root
":
mv -v /usr/share/doc/gtkmm-3.0 /usr/share/doc/gtkmm-3.24.9
-D build-documentation=true
: Se
você tiver instalado Doxygen-1.13.2, essa definição
construirá e instalará a documentação.
O pacote Gtkmm fornece uma interface C++ para GTK-4.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/gtkmm/4.16/gtkmm-4.16.0.tar.xz
Soma de verificação MD5 da transferência: d2161c39f2be1ac0c1285cd8e0c63b6c
Tamanho da transferência: 16 MB
Espaço em disco estimado exigido: 210 MB (com testes)
Tempo de construção estimado: 0,9 UPC (Com testes; ambos usando paralelismo=4)
Instale Gtkmm executando os seguintes comandos:
mkdir gtkmm4-build && cd gtkmm4-build && meson setup --prefix=/usr --buildtype=release .. && ninja
Para testar os resultados, emita: ninja test. Observe que você precisa estar em um ambiente gráfico, pois os testes tentam abrir algumas janelas.
Agora, como o(a) usuário(a) root
:
ninja install
Se você tiver construído a documentação (vejam-se as
Explicações do Comando abaixo), ela foi instalada em
/usr/share/doc/gtkmm-4.0
. Para
consistência, mova-a para um diretório versionado como o(a)
usuário(a) root
:
mv -v /usr/share/doc/gtkmm-4.0 /usr/share/doc/gtkmm-4.16.0
-D build-documentation=true
: Se
você tiver instalado Doxygen-1.13.2, essa definição
construirá e instalará a documentação.
O pacote "Gtk VNC" contém uma pequena engenhoca visualizadora "VNC" para o "GTK+". Ela é construída usando co rotinas, permitindo que seja completamente assíncrona enquanto permanece com camada única.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/gtk-vnc/1.5/gtk-vnc-1.5.0.tar.xz
Soma de verificação MD5 da transferência: 6e9815e7960636e95f626a3f164eb01d
Tamanho da transferência: 224 KB
Espaço em disco estimado exigido: 11 MB
Tempo de construção estimado: 0,2 UPC
GnuTLS-3.8.9, GTK-3.24.48 e libgcrypt-1.11.0
GLib-2.82.5 (com GObject Introspection) e Vala-0.56.17
Cyrus SASL-2.1.28, Gi-DocGen-2025.3 (para gerar documentação) e PulseAudio-17.0
Instale o "Gtk VNC" executando os seguintes comandos:
mkdir build && cd build && meson setup --prefix=/usr --buildtype=release .. && ninja
Para testar os resultados, emita: ninja test
Agora, como o(a) usuário(a) "root
":
ninja install
-D with-vala=false
: Essa chave
desabilita construção das ligações Vala. Adicione isso se
você decidir construir o gtk-vnc sem o vala instalado.
O pacote "GtkSourceView" contém bibliotecas usadas para estender as funções de texto do "GTK+" para incluir realce de sintaxe.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/gtksourceview/3.24/gtksourceview-3.24.11.tar.xz
Soma de verificação MD5 da transferência: b748da426a7d64e1304f0c532b0f2a67
Tamanho da transferência: 1,4 MB
Espaço em disco estimado exigido: 80 MB (com testes)
Tempo de construção estimado: 0,2 UPC (usando paralelismo = 4; com os testes)
GLib-2.82.5 (com GObject Introspection)
Vala-0.56.17, Valgrind-3.24.0, GTK-Doc-1.34.0, itstool-2.0.7, fop-2.10 (ou dblatex) e Glade
Primeiro, corrija a construção desse pacote com gcc-14 e posterior:
sed -i 's/g_object_ref (buffer)/g_object_ref (GTK_SOURCE_BUFFER (buffer))/' gtksourceview/gtksourceview.c
Instale o "GtkSourceView" executando os seguintes comandos:
./configure --prefix=/usr && make
Para testar os resultados, emita "make check". Os testes precisam ser executados em um ambiente gráfico.
Agora, como o(a) usuário(a) "root
":
make install
--enable-gtk-doc
: Use esse
parâmetro se GTK-Doc estiver
instalado e você desejar reconstruir e instalar a
documentação da API.
O pacote "GtkSourceView" contém bibliotecas usadas para estender as funções de texto do "GTK+" para incluir realce de sintaxe.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/gtksourceview/4.8/gtksourceview-4.8.4.tar.xz
Soma de verificação MD5 da transferência: 2bf056caaae27654ec3a5930dd5597d3
Tamanho da transferência: 1,1 MB
Espaço em disco estimado exigido: 71 MB (com testes)
Tempo de construção estimado: 0,1 UPC (com testes; ambos usando paralelismo=4)
GLib-2.82.5 (com GObject Introspection) e libxml2-2.13.6
Vala-0.56.17, Valgrind-3.24.0, GTK-Doc-1.34.0, itstool-2.0.7, fop-2.10 (ou dblatex) e Glade
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
-D gtk_doc=true
: Essa opção
normalmente é usada se o GTK-Doc estiver instalado e você desejar
reconstruir e instalar a documentação da API.
O pacote "GtkSourceView" contém uma biblioteca usada para estender as funções de texto do "GTK" para incluir realce de sintaxe.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/gtksourceview/5.14/gtksourceview-5.14.2.tar.xz
Soma de verificação MD5 da transferência: 2eaf1b453b3a9bcba89d63994f3e78b1
Tamanho da transferência: 1,2 MB
Espaço em disco estimado exigido: 36 MB
Tempo de construção estimado: 0,2 UPC (com testes; ambos usando paralelismo=4)
GLib-2.82.5 (com GObject Introspection) e libxml2-2.13.6
Gi-DocGen-2025.3, Vala-0.56.17, Valgrind-3.24.0, Vulkan-Loader-1.4.304 e sysprof
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
-D documentation=true
: Use essa
chave se você tiver Gi-DocGen-2025.3 instalado e desejar
gerar a documentação da API.
-D sysprof=true
: Use essa chave
se você tiver sysprof instalado e
desejar construir com suporte de perfilador sysprof.
"imlib2" é uma biblioteca de gráficos para carregamento, salvamento, renderização e manipulação rápida de arquivos.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://downloads.sourceforge.net/enlightenment/imlib2-1.12.3.tar.xz
Soma de verificação MD5 da transferência: 93e5b769ed02a183dfd78569f7b0fbe3
Tamanho da transferência: 816 KB
Espaço em disco estimado exigido: 13 MB (com documentos)
Tempo de construção estimado: 0,2 UPC (com documentos)
Doxygen-1.13.2 (para documentação da API), highway-1.2.0, libjpeg-turbo-3.0.1, libjxl-0.11.1, libpng-1.6.46, libtiff-4.7.0, libwebp-1.5.0, libheif, libid3tag, libspectre
Instale o "imlib2" executando os seguintes comandos:
./configure --prefix=/usr --disable-static && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
Se você gerou a documentação da "API", [então] instale-a como
o(a) usuário(a) "root
":
install -v -m755 -d /usr/share/doc/imlib2-1.12.3/html && install -v -m644 doc/html/* /usr/share/doc/imlib2-1.12.3/html
--disable-static
:
Essa chave impede a instalação das versões estáticas das
bibliotecas.
--enable-doc-build
: Essa chave
gera a documentação da API. Doxygen-1.13.2 precisa estar
instalado.
é testar a função "bumpmap" da "imlib2" |
|
é testar a função de espaço de cores da "imlib2" |
|
converte imagens entre formatos |
|
tira capturas de tela |
|
carrega e armazena imagens em cache |
|
é testar a função "poly" da "imlib2" |
|
é um teste de aplicativo da "imlib2" |
|
é um teste de aplicativo da "imlib2" |
|
exibe arquivos de imagem |
|
fornece as funções para aplicativos lidarem com vários formatos de dados de imagem |
"kColorPicker" é uma biblioteca "QToolButton" com um menu "pop-up" de cores, que te permite selecionar cores. O menu "pop-up" apresenta um botão de diálogo de cores que pode ser usado para adicionar cores personalizadas ao menu "pop-up".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/ksnip/kColorPicker/archive/v0.3.1/kColorPicker-0.3.1.tar.gz
Soma de verificação MD5 da transferência: 1efc91252446af0d7e5c467ea7d517e7
Tamanho da transferência: 16 KB
Espaço em disco estimado exigido: 2,4 MB
Tempo de construção estimado: menos que 0,1 UPC
Instale o "kColorPicker" executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ -D BUILD_SHARED_LIBS=ON \ -D BUILD_WITH_QT6=ON \ .. && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) "root
":
make install
"kImageAnnotator" é uma ferramenta para anotar imagens.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/ksnip/kImageAnnotator/archive/v0.7.1/kImageAnnotator-0.7.1.tar.gz
Soma de verificação MD5 da transferência: 68990dfe7fe03f1aff5e0e5338b9f3bb
Tamanho da transferência: 264 KB
Espaço em disco estimado exigido: 31 MB
Tempo de construção estimado: 0,6 UPC (Usando paralelismo=4)
Instale o "kImageAnnotator" executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ -D BUILD_SHARED_LIBS=ON \ -D BUILD_WITH_QT6=ON \ .. && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
O pacote "keybinder-3.0" contém uma biblioteca de utilitários registrando atalhos globais de teclado do "X" para o "GTK+-3".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/kupferlauncher/keybinder/releases/download/keybinder-3.0-v0.3.2/keybinder-3.0-0.3.2.tar.gz
Soma de verificação MD5 da transferência: 97260321fda721fce799174ea6ba10cf
Tamanho da transferência: 370 KB
Espaço em disco estimado exigido: 2,6 MB
Tempo de construção estimado: menos que 0,1 UPC
GLib-2.82.5 (com GObject Introspection)
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
--enable-gtk-doc
: Use esse
parâmetro se GTK-Doc estiver
instalado e você desejar reconstruir e instalar a
documentação da API.
O pacote "libadwaita" fornece pequenas engenhocas adicionais de IU do "GTK4" para uso no desenvolvimento de interfaces de usuário(a). Elas são usadas principalmente para aplicativos "GNOME".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/libadwaita/1.6/libadwaita-1.6.4.tar.xz
Soma de verificação MD5 da transferência: 8c8fe1e64c361eb5a84d60f61147fbf9
Tamanho da transferência: 2,3 MB
Espaço em disco estimado exigido: 42 MB (com testes)
Tempo de construção estimado: 0,3 UPC (com paralelismo=4; com testes)
AppStream-1.0.4, GTK-4.16.12 e sassc-3.6.2
Gi-DocGen-2025.3 e xdg-desktop-portal-1.20.0 (para dois testes)
Instale o "libadwaita" executando os seguintes comandos:
mkdir build && cd build && meson setup --prefix=/usr --buildtype=release .. && ninja
Se você tiver Gi-DocGen-2025.3 instalado e desejar construir a documentação da API para esse pacote, emita:
sed "s/apiversion/'1.6.4'/" -i ../doc/meson.build && meson configure -D gtk_doc=true && ninja
Para testar os resultados, emita: ninja test. Os testes precisam ser executados a partir de uma sessão gráfica. Dois testes falharão se xdg-desktop-portal-1.20.0 não estiver instalado.
Agora, como o(a) usuário(a) "root
":
ninja install
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
O pacote libei contém um conjunto de bibliotecas para manusear entradas emuladas. Destina-se principalmente para a pilha do Wayland.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://gitlab.freedesktop.org/libinput/libei/-/archive/1.3.0/libei-1.3.0.tar.gz
Soma de verificação MD5 da transferência: aeaffcb5afb5ad0bb9981eb93c4cd610
Tamanho de transferência: 228 KB
Espaço em disco estimado exigido: 5,4 MB
Tempo de construção estimado: menos que 0,1 UPC
libevdev-1.13.3, libxkbcommon-1.8.0, libxml2-2.13.6, munit e structlog
Instale libei executando os seguintes comandos:
mkdir build && cd build && meson setup --prefix=/usr --buildtype=release -D tests=disabled && ninja
Esse pacote vem com uma suíte de teste, mas ela exige uma dependência externa. Se você tiver o munit e structlog instalados e desejar executar a suíte de teste, execute os seguintes comandos:
meson configure -D tests=enabled .. && ninja test
Agora, como o(a) usuário(a) root
:
ninja install
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
-D tests=disabled
:
Essa chave evita uma dependência em relação a munit.
Remova essa chave se você tiver o munit instalado e desejar executar a
suíte de teste.
O pacote libgedit-amtk contém uma substituição básica do GTKUIManager baseada no GAction.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://gitlab.gnome.org/World/gedit/libgedit-amtk/-/archive/5.9.0/libgedit-amtk-5.9.0.tar.bz2
Soma de verificação MD5 da transferência: 8eaca94c4808fb00e6057ebf731f4daa
Tamanho da transferência: 60 KB
Espaço em disco estimado exigido: 2,4 MB (com testes)
Tempo de construção estimado: 0,1 UPC (com testes)
GTK-Doc-1.34.0 (para documentação) e Valgrind-3.24.0
Instale o libgedit-amtk executando os seguintes comandos:
mkdir amtk-build && cd amtk-build && meson setup .. \ --prefix=/usr \ --buildtype=release \ -D gtk_doc=false && ninja
Para testar os resultados, emita: ninja test. Um teste, test-action-map, é conhecido por falhar.
Agora, como o(a) usuário(a) root
:
ninja install
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
-D gtk_doc=false
:
Essa chave impede o sistema de construção de gerar e instalar
a documentação da API. Omita essa chave se você tiver o
GTK-Doc-1.34.0 instalado e desejar gerar
e instalar a documentação da API.
O pacote libgedit-gtksourceview fornece uma biblioteca que estende o GtkTextView. Essa biblioteca adiciona suporte para realce de sintaxe, desfazer/refazer, carregar e salvar arquivos, pesquisar e substituir, um sistema de completação, impressão, exibição de números de linha e outros recursos típicos de um editor de código-fonte.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://gitlab.gnome.org/World/gedit/libgedit-gtksourceview/-/archive/299.4.0/libgedit-gtksourceview-299.4.0.tar.bz2
Soma de verificação MD5 da transferência: 375fbe51c69ee982fb37ceffd50be6b4
Tamanho da transferência: 664 KB
Espaço em disco estimado exigido: 23 MB (com testes)
Tempo de construção estimado: 0,1 UPC (com testes)
Instale o libgedit-gtksourceview executando os seguintes comandos:
mkdir build-libgedit && cd build-libgedit && meson setup --prefix=/usr \ --buildtype=release \ -D gtk_doc=false \ .. && ninja
Para testar os resultados, emita: ninja test.
Agora, como o(a) usuário(a) root
:
ninja install
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
-D gtk_doc=false
:
Desabilita a construção da documentação da API. Remova se
você tiver o GTK-Doc-1.34.0 instalado e desejar
construir a documentação da API.
O pacote "libhandy" fornece pequenas engenhocas adicionais de "IU" do "GTK" para uso no desenvolvimento de interfaces de usuário(a).
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/libhandy/1.8/libhandy-1.8.3.tar.xz
Soma de verificação MD5 da transferência: af586a91ff6d4093a6e7e283dfab5f7f
Tamanho da transferência: 1,8 MB
Espaço em disco estimado exigido: 24 MB (com testes)
Tempo de construção estimado: 0,1 UPC (com testes)
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
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
-D gtk_doc=true
: Use essa opção
se você tiver o GTK-Doc-1.34.0 instalado e desejar
instalar a documentação.
"Libdrm" fornece uma biblioteca de espaço de usuário(a) para acessar o "Direct Rendering Manager" ("DRM") em sistemas operacionais que suportem a interface "ioctl". "Libdrm" é uma biblioteca de baixo nível, tipicamente usada por controladores gráficos, como os controladores "DRI" do "Mesa", os controladores do "X", "libva" e projetos semelhantes.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://dri.freedesktop.org/libdrm/libdrm-2.4.124.tar.xz
Soma de verificação MD5 da transferência: 78f7f7ee6aff711696d4b34465b40728
Tamanho da transferência: 472 KB
Espaço em disco estimado exigido: 8,8 MB (com testes)
Tempo de construção estimado: 0,1UPC (com testes)
Bibliotecas do Xorg (para suporte à "API" do "KMS" da "Intel" exigido pelo "Mesa")
Cairo-1.18.2 (para testes), CMake-3.31.5 (poderia ser usado para encontrar dependências sem arquivos do "pkgconfig"), docbook-xml-4.5, docbook-xsl-nons-1.79.2, docutils-0.21.2 e libxslt-1.1.42 (para construir páginas de manual), libatomic_ops-7.8.2 (exigido por arquiteturas sem operações atômicas nativas), Valgrind-3.24.0 e CUnit (para testes de "AMDGPU")
Instale o "libdrm" executando os seguintes comandos:
mkdir build && cd build && meson setup --prefix=$XORG_PREFIX \ --buildtype=release \ -D udev=true \ -D valgrind=disabled \ .. && ninja
Para verificar os resultados, execute "ninja test".
Agora, como o(a) usuário(a) "root
":
ninja install
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
-D udev=true
: Esse
parâmetro habilita o suporte para usar o Udev em vez do mknod.
-D valgrind=disabled
:
Esse parâmetro desabilita construir libdrm com suporte a
valgrind. Isso corrige construir alguns pacotes que usam
libdrm. Mude esse parâmetro para "enabled" (ou remova-o) se
você precisar de suporte para valgrind.
contém as funções específicas do "Direct Rendering Manager" do "AMDGPU" |
|
contém as funções específicas do "Direct Rendering Manager" da "Intel" |
|
contém as funções específicas do "Direct Rendering Manager" de fonte aberto da "nVidia" ("Nouveau") |
|
contém as funções específicas do "Direct Rendering Manager" da "Radeon" da "AMD" |
|
contém as funções da "API" do "Direct Rendering Manager" |
"libepoxy" é uma biblioteca para lidar com o gerenciamento de ponteiros de função do "OpenGL".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/libepoxy/1.5/libepoxy-1.5.10.tar.xz
Soma de verificação MD5 da transferência: 10c635557904aed5239a4885a7c4efb7
Tamanho da transferência: 220 KB
Espaço em disco estimado exigido: 13 MB (com testes)
Tempo de construção estimado: 0,1 UPC (com testes)
Doxygen-1.13.2 (para documentação)
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
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
-D docs=true
: Se você tiver o
Doxygen-1.13.2 instalado, adicione essa
opção para gerar documentação adicional.
A biblioteca "libnotify" é usada para enviar notificações da área de trabalho para um processo de segundo plano de notificação, conforme definido nas especificações do "Desktop Notifications". Essas notificações podem ser usadas para informar o(a) usuário(a) a respeito de um evento ou exibir alguma forma de informação sem atrapalhar o(a) usuário(a).
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/libnotify/0.8/libnotify-0.8.4.tar.xz
Soma de verificação MD5 da transferência: 00e2b66b100ea57106dee8988c40fe77
Tamanho da transferência: 108 KB
Espaço em disco estimado exigido: 2,2 MB
Tempo de construção estimado: menos que 0,1 UPC
GLib-2.82.5 (com GObject Introspection)
Gi-DocGen-2025.3 e xmlto-0.0.29
notification-daemon-3.20.0, xfce4-notifyd-0.9.7 ou lxqt-notificationd-2.1.1
"GNOME Shell" e "KDE KWin" fornecem os próprios processos de segundo plano de notificação deles.
Instale o "libnotify" executando os seguintes comandos:
mkdir build && cd build && meson setup --prefix=/usr \ --buildtype=release \ -D gtk_doc=false \ -D man=false \ .. && ninja
Esse pacote não vem com uma suíte de teste.
Se você tiver Gi-DocGen-2025.3 instalado e desejar construir a documentação da API para esse pacote, emita:
sed "/docs_dir =/s@\$@ / 'libnotify'@" \ -i ../docs/reference/meson.build && meson configure -D gtk_doc=true && ninja
Agora, como o(a) usuário(a) "root
":
ninja install && if [ -e /usr/share/doc/libnotify ]; then rm -rf /usr/share/doc/libnotify-0.8.4 mv -v /usr/share/doc/libnotify{,-0.8.4} fi
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
O pacote "libxklavier" contém uma biblioteca de utilitários para o teclado do "X".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://people.freedesktop.org/~svu/libxklavier-5.4.tar.bz2
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
GLib-2.82.5 (GObject Introspection recomendado), ISO Codes-4.17.0, libxml2-2.13.6 e Bibliotecas do Xorg
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
--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.
"Pango" é uma biblioteca para esquematização e renderização de texto, com ênfase na internacionalização. Ela pode ser usada em qualquer lugar onde o esquema de texto seja necessário, embora a maior parte do trabalho no "Pango" até agora tenha sido feito no contexto do kit de ferramentas de pequena engenhoca do "GTK+".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/pango/1.56/pango-1.56.1.tar.xz
Soma de verificação MD5 da transferência: 57656aefa189a5b24f3b1e67df7216b6
Tamanho da transferência: 1,8 MB
Espaço em disco estimado exigido: 22 MB (com testes)
Tempo de construção estimado: 0,1 UPC (Usando paralelismo=4; com testes)
Fontconfig-2.16.0 (precisa ser construído com FreeType-2.13.3 usando harfBuzz-10.4.0), FriBidi-1.0.16 e GLib-2.82.5 (GObject Introspection exigido para GNOME)
Cairo-1.18.2 (construído depois de harfBuzz-10.4.0) e Bibliotecas do Xorg
Gi-DocGen-2025.3 (para gerar documentação), help2man, libthai e sysprof
Instale o "Pango" executando os seguintes comandos:
mkdir build && cd build && meson setup --prefix=/usr \ --buildtype=release \ --wrap-mode=nofallback \ -D introspection=enabled \ .. && ninja
Se você tiver Gi-DocGen-2025.3 instalado e desejar construir a documentação da API para esse pacote, emita:
sed "/docs_dir =/s@\$@ / 'pango-1.56.1'@" -i ../docs/meson.build && meson configure -D documentation=true && ninja
Para testar os resultados, emita: ninja test. Um teste chamado testboundaries_ucd é conhecido por falhar porque espera suporte Unicode 16.0 originário da Glib 2.83 ou mais recente.
Agora, como o(a) usuário(a) "root
":
ninja install
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
-D introspection=disabled
: Use
essa chave se você não quiser usar GObject Introspection.
--wrap-mode=nofallback
: Essa
chave impede meson de usar substitutos
de subprojeto para quaisquer declarações de dependência nos
arquivos de construção, impedindo-o de baixar quaisquer
dependências opcionais que não estejam instaladas no sistema.
exibe uma lista de fontes que o "Pango" pode usar e que estão atualmente instaladas no sistema |
|
mostra a segmentação de texto conforme determinado pelo "Pango". |
|
renderiza um dado arquivo de texto por intermédio do "Pango" para fins de visualização |
|
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 |
O pacote "Pangomm" fornece uma interface "C++" para o "Pango".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/pangomm/2.46/pangomm-2.46.4.tar.xz
Soma de verificação MD5 da transferência: 5947d35899db62813531d7ea8faee60c
Tamanho da transferência: 680 KB
Espaço em disco estimado exigido: 8,9 MB
Tempo de construção estimado: 0,2 UPC
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
O pacote Pangomm fornece uma interface C++ para Pango. Essa versão é parte de uma nova API para suporte ao gtkmm-4.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/pangomm/2.56/pangomm-2.56.1.tar.xz
Soma de verificação MD5 da transferência: f3003015d87cb56c9cf731fa7a920a24
Tamanho da transferência: 728 KB
Espaço em disco estimado exigido: 11 MB
Tempo de construção estimado: 0,2UPC
Instale Pangomm executando os seguintes comandos:
mkdir build && cd build && meson setup --prefix=/usr --buildtype=release .. && ninja
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
ninja install
Qt6 é uma estrutura de aplicação multiplataforma que é amplamente usada para desenvolver software de aplicação com uma interface gráfica de usuário(a) (GUI) (nesses casos Qt6 é classificado como um kit de ferramentas de pequena engenhoca) e também usado para desenvolver aplicativos não GUI, como ferramentas de linha de comando e consoles para servidores.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.qt.io/archive/qt/6.8/6.8.2/single/qt-everywhere-src-6.8.2.tar.xz
Soma de verificação MD5 da transferência: ccc7100bc687005c167a8a43a4f99050
Tamanho da transferência: 948 MB
Espaço em disco estimado exigido: 45 GB (429 MB instalado)
Tempo de construção estimado: 22 UPC (usando paralelismo = 8)
alsa-lib-1.2.13, make-ca-1.15, Cups-2.4.11, double-conversion-3.3.1, GLib-2.82.5, gst-plugins-base-1.24.12 (estrutura de retaguarda QtMultimedia), harfBuzz-10.4.0, ICU-76.1, jasper-4.2.4, libjpeg-turbo-3.0.1, libinput-1.27.1, libmng-2.0.3, libpng-1.6.46, libtiff-4.7.0, libwebp-1.5.0, libxkbcommon-1.8.0, Mesa-24.3.4, mtdev-1.1.7, pcre2-10.45, SQLite-3.49.1, Wayland-1.23.0 (Mesa precisa ser construído com estrutura de retaguarda EGL do Wayland) e Utilitários XCB
BlueZ-5.79 (para sdpscanner, e em tempo de execução para o modulo QtConnectivity), GTK-3.24.48, ibus-1.5.31, LLVM-19.1.7 (com Clang), MariaDB-11.4.5 ou MySQL, MIT Kerberos V5-1.21.3, pciutils-3.13.0, PostgreSQL-17.4, PulseAudio-17.0, SDL2-2.30.11, unixODBC-2.3.12, assimp, Flite, Firebird, FreeTDS, libproxy, OpenAL, speech-dispatcher e tslib
Os(As) editores(as) do BLFS recomendam instalar o
Qt6 em um diretório
diferente de /usr
, ou seja,
/opt/qt6
. Para fazer isso,
configure a seguinte variável de ambiente:
export QT6PREFIX=/opt/qt6
Ocasionalmente, os caminhos de instalação estão rigidamente
codificados nos arquivos instalados. Essa é a razão pela
qual /opt/qt6
é usado como
prefixo de instalação em vez de /opt/qt-6.8.2
. Para criar um diretório
versionado do Qt6, você
pode renomear o diretório e criar um link simbólico:
mkdir -pv /opt/qt-6.8.2 ln -sfnv qt-6.8.2 /opt/qt6
Mais tarde, você pode querer instalar outras versões do
Qt6. Para fazer isso,
basta remover o link simbólico, criar o novo diretório
versionado e recriar o link simbólico /opt/qt6
novamente antes de construir a
nova versão. Qual versão do Qt6 você usa depende somente de onde o
link simbólico aponta.
Se qca-2.3.9 ou qcoro-0.11.0 tiverem sido instalados e você estiver reinstalando ou atualizando esse pacote, então aqueles pacotes precisarão ser reinstalados.
Se Qt6 estiver sendo
reinstalado no mesmo diretório que uma instância existente,
execute os comandos feitos por root
, como make install, a partir de
um console ou gerenciador de janelas não baseado em Qt6.
Ele sobrescreve bibliotecas do Qt6 que não deveriam estar em uso
durante o processo de instalação.
Se você não instalou alguma das dependências recomendadas, examine a saída gerada de ./configure --help para verificar como desabilitá-las ou para usar versões internas incluídas no tarball do fonte.
O tempo de construção e o espaço exigidos para o
Qt6 completo são bastante
longos. As instruções abaixo não constroem os tutoriais e
exemplos. Remover a linha -nomake
criará recursos
adicionais.
Os(As) editores(as) do BLFS não recomendam instalar o Qt6 na hierarquia /usr porque se torna difícil encontrar componentes e atualizar para uma nova versão.
Desabilite uma declaração conflitante em sistemas i686:
if [ "$(uname -m)" == "i686" ]; then sed -e "/^#elif defined(Q_CC_GNU_ONLY)/s/.*/& \&\& 0/" \ -i qtbase/src/corelib/global/qtypes.h fi
Instale Qt6 executando os seguintes comandos:
./configure -prefix $QT6PREFIX \ -sysconfdir /etc/xdg \ -dbus-linked \ -openssl-linked \ -system-sqlite \ -nomake examples \ -no-rpath \ -journald \ -skip qt3d \ -skip qtquick3dphysics \ -skip qtwebengine && ninja
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
ninja install
Remova referências ao diretório de construção dos arquivos de
dependência da biblioteca instalada (prl) executando o
seguinte comando como o(a) usuário(a) root
:
find $QT6PREFIX/ -name \*.prl \ -exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d' {} \;
Instale imagens e crie as entradas de menu para aplicativos
instalados. Novamente como o(a) usuário(a) root
:
pushd qttools/src && install -v -Dm644 assistant/assistant/images/assistant-128.png \ /usr/share/pixmaps/assistant-qt6.png && install -v -Dm644 designer/src/designer/images/designer.png \ /usr/share/pixmaps/designer-qt6.png && install -v -Dm644 linguist/linguist/images/icons/linguist-128-32.png \ /usr/share/pixmaps/linguist-qt6.png && install -v -Dm644 qdbus/qdbusviewer/images/qdbusviewer-128.png \ /usr/share/pixmaps/qdbusviewer-qt6.png && popd && cat > /usr/share/applications/assistant-qt6.desktop << EOF[Desktop Entry] Name=Qt6 Assistant Comment=Mostra documentação e exemplos do Qt6 Exec=$QT6PREFIX/bin/assistant Icon=assistant-qt6.png Terminal=false Encoding=UTF-8 Type=Application Categories=Qt;Development;Documentation;
EOF cat > /usr/share/applications/designer-qt6.desktop << EOF[Desktop Entry] Name=Qt6 Designer GenericName=Interface Designer Comment=Projeta GUIs para aplicativos Qt6 Exec=$QT6PREFIX/bin/designer Icon=designer-qt6.png MimeType=application/x-designer; Terminal=false Encoding=UTF-8 Type=Application Categories=Qt;Development;
EOF cat > /usr/share/applications/linguist-qt6.desktop << EOF[Desktop Entry] Name=Qt6 Linguist Comment=Adiciona traduções a aplicativos Qt6 Exec=$QT6PREFIX/bin/linguist Icon=linguist-qt6.png MimeType=text/vnd.trolltech.linguist;application/x-linguist; Terminal=false Encoding=UTF-8 Type=Application Categories=Qt;Development;
EOF cat > /usr/share/applications/qdbusviewer-qt6.desktop << EOF[Desktop Entry] Name=Qt6 QDbusViewer GenericName=D-Bus Debugger Comment=Depura aplicativos D-Bus Exec=$QT6PREFIX/bin/qdbusviewer Icon=qdbusviewer-qt6.png Terminal=false Encoding=UTF-8 Type=Application Categories=Qt;Development;Debugger;
EOF
-nomake examples
:
Essa chave desabilita construir os programas de exemplo
incluídos no tarball do fonte. Remova-a se você quiser
construí-los.
-skip qt3d
: Essa
chave desabilita construir suporte ao qt3d. Existe um
problema ao construir esses arquivos sem uma biblioteca
externa e nenhum pacote no BLFS usa qt3d.
-system-sqlite
: Essa
chave habilita uso da versão do sistema do SQLite.
-dbus-linked
-openssl-linked
:
Essas chaves habilitam vinculação explícita das bibliotecas
D-Bus e OpenSSL nas bibliotecas do Qt6 em vez de abri-las com dlopen().
-journald
: Essa chave
permite enviar mensagens do QT para o sistema de registro
journald.
-skip qtwebengine
:
Essa chave desabilita construir o QtWebEngine. Os(As)
editores(as) do BLFS optaram por construir qtwebengine-6.8.2 separadamente.
-skip
qtquick3dphysics
: Essa chave desabilita construir
o submódulo Quick 3D Physics do Qt. Em sistemas de 32 bits,
isso fará com que o processo de construção falhe com um erro
embutido na cópia agrupada do SDK PhysX do Qt6.
Se Sudo-1.9.16p2 estiver instalado, QT6DIR
também deveria estar disponível para o(a) superusuário(a).
Execute os seguintes comandos como o(a) usuário(a)
root
:
cat > /etc/sudoers.d/qt << "EOF"
Defaults env_keep += QT6DIR
EOF
Agora você precisa atualizar os seguintes arquivos de configuração, de forma que o Qt6 seja encontrado corretamente por outros pacotes e processos do sistema.
Como o(a) usuário(a) root
,
atualize o arquivo /etc/ld.so.conf
e o arquivo de cache de
tempo de execução do vinculador dinâmico:
cat >> /etc/ld.so.conf << EOF
# Inicia adição do Qt
/opt/qt6/lib
# Termina adição do Qt
EOF
ldconfig
Como o(a) usuário(a) root
,
crie o arquivo /etc/profile.d/qt6.sh
:
cat > /etc/profile.d/qt6.sh << "EOF"
# Inicia /etc/profile.d/qt6.sh
QT6DIR=/opt/qt6
pathappend $QT6DIR/bin PATH
pathappend $QT6DIR/lib/pkgconfig PKG_CONFIG_PATH
export QT6DIR
# Termina /etc/profile.d/qt6.sh
EOF
é uma ferramenta para apresentação de documentação on-line |
|
é 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 |
|
é 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 |
|
é 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 |
|
faz parte da cadeia de ferramentas Linguist do Qt6. Ele pode ser usado como uma ferramenta independente para converter e filtrar arquivos de dados de tradução |
|
fornece suporte para traduzir aplicativos para idiomas locais |
|
é 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 |
|
encontra as sequências de caracteres traduzíveis nos arquivos especificados de interface do fonte, cabeçalho e do Designer do Qt e armazena as mensagens extraídas em arquivos de tradução para serem processadas pelo lrelease |
|
exibe informações a respeito de arquivos de malha do qtquick-3d |
|
é um ampliador de área de trabalho - conforme você move teu mouse pela tela, ele mostrará o conteúdo ampliado na janela dele |
|
lista serviços disponíveis, caminhos de objetos, métodos, sinais e propriedades de objetos em um barramento |
|
pega um arquivo de fonte do C++ e gera uma definição XML do D-Bus da interface |
|
é um navegador gráfico do D-Bus |
|
é uma ferramenta que pode ser usada para analisar descrições de interfaces e produzir código estático representando essas interfaces, |
|
permite que um cache de fontes seja pré gerado para Text.QtRendering para acelerar uma inicialização de um aplicativo se a interface de usuário(a) tiver muito texto, ou múltiplas fontes, ou uma grande quantidade de caracteres distintos, por exemplo, em sistemas de escrita CJK |
|
é uma ferramenta usada por Desenvolvedores(as) do Qt para gerar documentação para projetos de software |
|
usa informações armazenadas em arquivos de projeto para determinar o que deveria constar nos arquivos make que ele gera |
|
executa um arquivo QML |
|
é uma ferramenta usada para definir as curvas de atenuação usando um editor interativo de curva |
|
formata arquivos QML de acordo com as convenções de codificação QML |
|
é um verificador de sintaxe para arquivos QML |
|
é uma ferramenta para criar um arquivo qmltypes |
|
é uma ferramenta usada para analisar aplicativos QML |
|
é uma ferramenta que monitora arquivos QML e JavaScript no disco e atualiza o aplicativo ao vivo com quaisquer mudanças |
|
é um utilitário que carrega e exibe documentos QML, mesmo antes que o aplicativo esteja completo |
|
é uma ferramenta usada para fazer testes |
|
é uma ferramenta para noticiar informações de diagnóstico a respeito do Qt e do ambiente dele |
|
é uma ferramenta para consultar informações de caminho do Qt |
|
despeja metadados a respeito dos plugins do Qt em formato JSON |
"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".
QtWebEngine usa uma cópia bifurcada do chromium e, portanto, é vulnerável a muitos problemas encontrados lá. Os(As) desenvolvedores(as) do Qt parecem bifurcar uma versão mais recente para versões secundárias do Qt, porém como o chromium muda para versões mais recentes muito frequentemente, no momento em que os(as) desenvolvedores(as) do Qt obtém uma versão bifurcada para passar em nos testes estendidos deles(as), ela é sempre uma versão antiga e correções de segurança provenientes do chromium (algumas das quais tem um número CVE) podem levar vários meses para aparecer em um lançamento do QtWebengine, mesmo se a gravidade tenha sido classificada como Crítica.
Portanto, você deveria ter cuidado ao usar o QtWebEngine em um contexto sensível e deveria sempre atualizar para o próximo lançamento assim que ela aparecer neste livro, mesmo que não esteja sinalizada como uma Atualização de Segurança. Identificar quais vulnerabilidades tenham sido corrigidas em um lançamento específico exige puxar a ramificação 'based-NNN' apropriada, pouco antes dos lançamentos anteriores e atuais e frequentemente é impraticável. Informes de itens de QTBUG corrigidos não parecem estar disponíveis e não existe nenhuma documentação no tarball para mudanças depois das versões qt-5.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
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.
Transferência (HTTP): https://download.qt.io/official_releases/qt/6.8/6.8.2/submodules/qtwebengine-everywhere-src-6.8.2.tar.xz
Soma de verificação MD5 da transferência: 9e81c46f237fdd8323c6fe07aa6a03b2
Tamanho da transferência: 540 MB
Espaço em disco estimado exigido: 9,2 GB (336 MB instalado)
Tempo de construção estimado: 72 UPC (Usando paralelismo=8)
Cups-2.4.11, html5lib-1.1, nodejs-22.14.0, nss-3.108, pciutils-3.13.0 e Qt-6.8.2
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.
ou alsa-lib-1.2.13 ou PulseAudio-17.0 (ou ambos), FFmpeg-7.1, ICU-76.1, libevent-2.1.12, libwebp-1.5.0, libxslt-1.1.42 e Opus-1.5.2
MIT Kerberos V5-1.21.3, pipewire-1.2.7, Poppler-25.02.0, jsoncpp, libsrtp e snappy
Primeiro, corrija uma falha de construção que ocorre porque a construção do BLFS do ffmpeg não usa OpenH264:
sed -e '189 s/=/& false/' \ -e '190 d' \ -i.orig src/3rdparty/chromium/third_party/webrtc/webrtc.gni
Instale o "qtwebengine" executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_MESSAGE_LOG_LEVEL=STATUS \ -D QT_FEATURE_webengine_system_ffmpeg=ON \ -D QT_FEATURE_webengine_system_icu=ON \ -D QT_FEATURE_webengine_system_libevent=ON \ -D QT_FEATURE_webengine_proprietary_codecs=ON \ -D QT_FEATURE_webengine_webrtc_pipewire=ON \ -D QT_BUILD_EXAMPLES_BY_DEFAULT=OFF \ -G Ninja .. && ninja
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) "root
":
ninja install
CMAKE_MESSAGE_LOG_LEVEL=STATUS
:
Produz mensagens interessantes nas quais usuários(as) do
projeto possam estar interessados(as). Idealmente, deveriam
ser concisas, não mais que uma linha, porém ainda
informativas.
QT_FEATURE_webengine_system_*
:
Especifique quais pacotes externos o sistema deveria usar.
QT_BUILD_EXAMPLES_BY_DEFAULT=OFF
:
Não construa exemplos por padrão.
NINJAJOBS=4 make
: Se você
remendou o "ninja" do sistema no LFS para reconhecer a
variável de ambiente "NINJAJOBS," [então] esse comando
executará o "ninja" do sistema com o número especificado de
tarefas (ou seja, quatro). Existem várias razões pelas quais
você poderia querer usar opções como essa:
Construir em um subconjunto de "CPUs" permite medir o
tempo de construção para um número menor de
processadores e (ou) executar outras tarefas com uso
intensivo da "CPU" ao mesmo tempo. Para um(a) editor(a)
em uma máquina com muitas "CPUs", tentando medir o
tempo de construção para uma máquina com quatro "CPUs",
"NINJAJOBS=4 make
"
fornecerá uma aproximação razoável (existe um curto
período onde N+2 tarefas "python" e "node" executam).
Em uma máquina com somente quatro "CPUs" "online", o padrão de agendamento de tarefas N+2 para o "qtwebengine" é mais lento entre três por cento (3%) e sete por cento (7%), provavelmente devido ao tamanho dos arquivos" C++" e às muitas inclusões e modelos deles. Portanto, se em dúvida, [então] configure "NINJAJOBS" para o número de "CPUs".
Reduzindo o número de núcleos sendo usados em execução prolongada, os pacotes com uso intensivo de "CPU" possivelmente aliviem os problemas de aquecimento.
Reduzir o número de núcleos evitará potenciais problemas de falta de memória em sistemas que não tenham memória suficiente (ou troca) quando todos os núcleos estiverem ativos. Uma abordagem sugerida é a de limitar o número de núcleos a cerca de um núcleo para cada 1,5 GB de "RAM" e espaço de troca combinados.
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.
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]
O pacote "startup-notification" contém bibliotecas
"startup-notification
". Elas
são úteis para construir uma maneira consistente para
notificar o(a) usuário(a) por meio do cursor que o aplicativo
está carregando.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.freedesktop.org/software/startup-notification/releases/startup-notification-0.12.tar.gz
Soma de verificação MD5 da transferência: 2cd77326d4dcaed9a5a23a1232fb38e9
Tamanho da transferência: 347 KB
Espaço em disco estimado exigido: 4 MB
Tempo de construção estimado: menos que 0,1 UPC
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
--disable-static
:
Essa chave impede a instalação das versões estáticas das
bibliotecas.
O pacote Vulkan-Headers contém um conjunto de arquivos de cabeçalho necessários para construir e vincular aplicativos à API do Vulkan.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/KhronosGroup/Vulkan-Headers/archive/v1.4.304/Vulkan-Headers-1.4.304.tar.gz
Soma de verificação MD5 da transferência: d3a2b80defd95f06387ff78029d8452e
Tamanho da transferência: 2,3 MB
Espaço em disco estimado exigido: 59 MB
Tempo de construção estimado: menos que 0,1 UPC
Instale Vulkan-Headers executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr -G Ninja .. && ninja
Para testar os resultados, emita: ninja test.
Agora, como o(a) usuário(a) root
:
ninja install
O pacote Vulkan-Loader contém uma biblioteca que fornece a API do Vulkan e fornece suporte básico para controladores gráficos para Vulkan.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/KhronosGroup/Vulkan-Loader/archive/v1.4.304/Vulkan-Loader-1.4.304.tar.gz
Soma de verificação MD5 da transferência: bda057142f094da44dfa8efbf342f503
Tamanho da transferência: 1,7 MB
Espaço em disco estimado exigido: 11 MB
Tempo de construção estimado: menos que 0,1 UPC
CMake-3.31.5, Vulkan-Headers-1.4.304 e Bibliotecas do Xorg
Mesa-24.3.4 (para controladores Vulkan)
Uma conexão com a Internet é necessária para alguns testes desse pacote. A loja de certificados do sistema possivelmente precise ser configurada com make-ca-1.15 antes de se testar esse pacote
Se esse pacote estiver sendo instalado em um sistema onde Mesa já tenha sido instalado anteriormente, por favor, reconstrua Mesa-24.3.4 depois desse pacote para instalar os controladores gráficos do Vulkan.
Instale Vulkan-Loader executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ -D CMAKE_SKIP_INSTALL_RPATH=ON \ -G Ninja .. && ninja
Para executar a suíte de teste, emita (observe que o comando usará git-2.48.1 para baixar uma cópia do GoogleTest para construir a suíte de teste):
sed "s/'git', 'clone'/&, '--depth=1', '-b', self.commit/" \ -i ../scripts/update_deps.py && cmake -D BUILD_TESTS=ON -D UPDATE_DEPS=ON .. && ninja && ninja test
Agora, como o(a) usuário(a) root
:
ninja install
-D
CMAKE_SKIP_INSTALL_RPATH=ON
: Essa chave faz com
que cmake
remova caminhos de pesquisa de biblioteca rigidamente
codificados (rpath) ao instalar um arquivo binário executável
ou uma biblioteca compartilhada. Esse pacote não precisa do
rpath depois de instalado no local padrão, e o rpath
ocasionalmente pode causar efeitos indesejados ou até mesmo
problemas de segurança.
-D BUILD_WSI_WAYLAND_SUPPORT=OFF
:
Essa opção permite construir sem suporte a Wayland-1.23.0.
O pacote "WebKitGTK" é uma porta do mecanismo de renderização "web" portável "WebKit" para as plataformas "GTK+ 3" e "GTK 4".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://webkitgtk.org/releases/webkitgtk-2.46.6.tar.xz
Soma de verificação MD5 da transferência: 10b5b88ffe8611202c45cfdc10a2bd72
Tamanho da transferência: 41 MB
Espaço em disco estimado exigido: 1,4 GB (163 MB instalado; adicionar 157 MB para GTK-4)
Tempo de construção estimado: 32 UPC (para GTK-3, usando paralelismo = 8; adicionar 32 UPC para GTK-4)
Cairo-1.18.2, CMake-3.31.5, gst-plugins-base-1.24.12, gst-plugins-bad-1.24.12, GTK-3.24.48, GTK-4.16.12, ICU-76.1, Little CMS-2.17, libgudev-238, libsecret-0.21.6, libsoup-3.6.4, libtasn1-4.20.0, libwebp-1.5.0, Mesa-24.3.4, OpenJPEG-2.5.3, Ruby-3.4.2, SQLite-3.49.1, unifdef-2.12 e Which-2.23
bubblewrap-0.11.0, enchant-2.8.2, GeoClue-2.7.2, GLib-2.82.5 (com GObject Introspection), hicolor-icon-theme-0.18, libavif-1.2.0, libjxl-0.11.1, libseccomp-2.6.0 e xdg-dbus-proxy-0.1.6
Gi-DocGen-2025.3, harfBuzz-10.4.0, Wayland-1.23.0, WOFF2-1.0.2, ccache, Hyphen, libbacktrace, libmanette e sysprof
Esse pacote permite construir com GTK-3 ou GTK-4, mas não ambos na mesma construção. A versão GTK-4 é necessária para pacotes como Epiphany-47.3.1. Outros pacotes, como Balsa-2.6.4 ou Evolution-3.54.3, requerem a versão GTK-3. Ambas as versões podem ser instaladas lado a lado no mesmo sistema. Nós fornecemos instruções de construção para ambos os casos abaixo, mas a única diferença é a configuração de -D USE_GTK4
Se você quiser instalar a versão GTK+-3 do WebKitGTK, execute os seguintes comandos:
mkdir -vp build && cd build && cmake -D CMAKE_BUILD_TYPE=Release \ -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_SKIP_INSTALL_RPATH=ON \ -D PORT=GTK \ -D LIB_INSTALL_DIR=/usr/lib \ -D USE_LIBBACKTRACE=OFF \ -D USE_LIBHYPHEN=OFF \ -D ENABLE_GAMEPAD=OFF \ -D ENABLE_MINIBROWSER=ON \ -D ENABLE_DOCUMENTATION=OFF \ -D ENABLE_WEBDRIVER=OFF \ -D USE_WOFF2=OFF \ -D USE_GTK4=OFF \ -D ENABLE_BUBBLEWRAP_SANDBOX=ON \ -D USE_SYSPROF_CAPTURE=NO \ -W no-dev -G Ninja .. && ninja
Esse pacote não tem uma suíte funcional de teste. No entanto, existe um navegador gráfico básico usável no diretório da construção, "build/bin/MiniBrowser". Se a inicialização dele falhar, [então] existe um problema com a construção.
Agora, como o(a) usuário(a) "root
":
ninja install
Se você quiser instalar a versão GTK4 do WebKitGTK, execute os seguintes comandos:
rm -rf * .[^.]* && cmake -D CMAKE_BUILD_TYPE=Release \ -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_SKIP_INSTALL_RPATH=ON \ -D PORT=GTK \ -D LIB_INSTALL_DIR=/usr/lib \ -D USE_LIBBACKTRACE=OFF \ -D USE_LIBHYPHEN=OFF \ -D ENABLE_GAMEPAD=OFF \ -D ENABLE_MINIBROWSER=ON \ -D ENABLE_DOCUMENTATION=OFF \ -D USE_WOFF2=OFF \ -D USE_GTK4=ON \ -D ENABLE_BUBBLEWRAP_SANDBOX=ON \ -D USE_SYSPROF_CAPTURE=NO \ -W no-dev -G Ninja .. && ninja
Agora, como o(a) usuário(a) "root
":
ninja install
Como a opção -D
ENABLE_DOCUMENTATION=OFF
é usada, a documentação não é
reconstruída nem instalada agora. Se precisar da
documentação, você pode, ou instalar o Gi-DocGen-2025.3 e
remover essa opção do comando cmake, ou instalar a
documentação pré construída (somente para a versão GTK-4):
install -vdm755 /usr/share/gtk-doc/html && cp -rv ../Documentation/* /usr/share/gtk-doc/html
-D
CMAKE_SKIP_INSTALL_RPATH=ON
: Essa chave faz com
que cmake
remova caminhos de pesquisa de biblioteca rigidamente
codificados (rpath) ao instalar um arquivo binário executável
ou uma biblioteca compartilhada. Esse pacote não precisa do
rpath depois de instalado no local padrão, e o rpath
ocasionalmente pode causar efeitos indesejados ou até mesmo
problemas de segurança.
-D
USE_LIBBACKTRACE=OFF
: Essa chave desabilita o uso
de libbacktrace para despejar um rastreamento de pilha quando
uma falha acontece. Você precisa instalar o libbacktrace
se desejar habilitá-la (substituindo OFF por ON ou apenas
removendo a chave).
-D USE_LIBHYPHEN=OFF
:
Essa chave desabilita a implementação padrão de hifenização
automática. Você precisa instalar o Hyphen
se desejar habilitá-la (substituindo OFF por ON ou apenas
removendo a chave).
-D
ENABLE_DOCUMENTATION=OFF
: Essa chave desabilita a
regeneração da documentação. Remova essa chave se você tiver
Gi-DocGen-2025.3 instalado e desejar
gerar novamente a documentação.
-D
ENABLE_GAMEPAD=OFF
: Essa chave desabilita suporte
ao gamepad. Remova essa chave se você tiver libmanette
instalado e desejar habilitá-lo.
-D
ENABLE_MINIBROWSER=ON
: Essa chave habilita
compilar e instalar o MiniBrowser.
-D
ENABLE_WEBDRIVER=OFF
: Essa chave desabilita
compilar e instalar WebKitWebDriver. Nós a
usamos para a construção do GTK-3 porque o WebKitWebDriver proveniente
da construção do GTK-3 será sobrescrito pela construção do
GTK-4 de qualquer maneira. Remova essa opção se você não
planeja construir esse pacote com GTK-4.
-D
ENABLE_BUBBLEWRAP_SANDBOX=ON
: Essa chave habilita
o sandbox Bubblewrap, que ajuda a mitigar o impacto da
maioria das vulnerabilidades de segurança nesse pacote. Mude
essa chave para OFF se você não quiser instalar bubblewrap-0.11.0, libseccomp-2.6.0 ou xdg-dbus-proxy-0.1.6, mas observe
que isso possivelmente te coloque em risco.
-D
USE_SYSPROF_CAPTURE=NO
: Essa chave desabilita uma
dependência rígida de sysprof.
-D USE_SYSTEM_MALLOC=ON
: Essa
chave habilita construir contra o malloc instalado no sistema.
-D ENABLE_GEOLOCATION=OFF
: Use
essa chave se você não quiser instalar o GeoClue-2.7.2.
-D USE_AVIF=OFF
: Use essa chave
se você não quiser instalar libavif-1.2.0. Observe que você não
terá suporte para imagens AVIF se fizer isso.
-D USE_WOFF2=ON
: Use essa chave
se o pacote opcional WOFF2-1.0.2 estiver instalado. Isso
adiciona suporte adicional para fontes.
-D USE_JPEGXL=OFF
: Use essa chave
se o pacote recomendado libjxl-0.11.1 não estiver instalado.
Observe que você não terá suporte para imagens JPEG XL se
essa opção for passada.
permite depuração e automação de páginas e navegadores da "web" |
|
contém funções centrais da "API" do "JavaScript"
usadas por "jsc" e
" |
|
contém funções centrais da API JavaScript usadas
por jsc e
|
|
contém as funções da "API" do "WebKit2" |
|
contém as funções de API do WebKit para aplicativos GTK-4 |
xdg-desktop-portal é um serviço D-Bus que permite que aplicativos interajam com a área de trabalho de forma segura. Vários aspectos da interação de área de trabalho, como seletor de arquivos, estilo da área de trabalho, etc, são implementados em diferentes APIs do D-Bus, conhecidas como portais. Os aplicativos em área restrita são os que mais se beneficiam desse serviço, pois não precisam de permissões especiais para usar as APIs do portal, mas qualquer aplicativo pode usá-lo. xdg-desktop-portal protege muitos recursos e funcionalidades com um sistema de permissão controlado pelo(a) usuário(a). Esse serviço precisa de uma estrutura de retaguarda que implemente interfaces de portal específicas de área de trabalho.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/flatpak/xdg-desktop-portal/releases/download/1.20.0/xdg-desktop-portal-1.20.0.tar.xz
Soma de verificação MD5 da transferência: 9f6450322a359a95018b57960d1ca4fd
Tamanho da transferência: 1,1 MB
Espaço em disco estimado exigido: 21 MB (adicionar 2 MB para os testes)
Tempo de construção estimado: 0,1 UPC (adicionar 0,2 UPC para testes; com paralelismo=4)
Fuse-3.16.2, gdk-pixbuf-2.42.12, JSON-GLib-1.10.6, pipewire-1.2.7 e dbus-1.16.0 (em tempo de execução). Além disso, uma estrutura de retaguarda é necessária em tempo de execução para esse pacote ser de algum uso, seja xdg-desktop-portal-gtk-1.15.2, seja xdg-desktop-portal-gnome-47.3 ou xdg-desktop-portal-lxqt-1.1.0
bubblewrap-0.11.0 e docutils-0.21.2 (para construir as páginas de manual)
Embora exista uma opção para construir o pacote sem o bubblewrap, os(as) desenvolvedores(as) do fluxo de desenvolvimento e os(as) editores(as) do LFS recomendam fortemente não usar essa possibilidade, pois isso criará um grande problema de segurança.
GeoClue-2.7.2 (para o portal do “local”), e pytest-8.3.4 com libportal-0.9.1, dbusmock-0.34.3 e umockdev-0.19.1 (para executar testes)
sphinx-8.2.1 com sphinxext.opengraph, sphinx_copybutton, furo e flatpak
Instale xdg-desktop-portal executando os seguintes comandos:
mkdir build && cd build && meson setup --prefix=/usr --buildtype=release -D tests=disabled .. && ninja
Se as dependências opcionais estiverem instaladas, você consegue testar os resultados executando:
meson configure -D tests=enabled && ninja test
Sem as dependências externas, um teste, integration/dynamiclauncher, é conhecido por falhar.
Agora, como o(a) usuário(a) root
:
ninja install
-D tests=disabled
:
Evita exigir diversas dependências opcionais que são
necessárias somente para testes.
Os principais arquivos de configuração são ~/.config/xdg-desktop-portal/portals.conf
,
/etc/xdg-desktop-portal/portals.conf
e
/usr/share/xdg-desktop-portal/portals.conf
.
Vários outros locais podem ser pesquisados em busca de
arquivos de configuração. Veja-se portals.conf(5).
Os vários arquivos de configuração são usados para escolher a estrutura de retaguarda, dependendo de várias condições. Veja-se portals.conf(5) para detalhes.
xdg-desktop-portal-gtk é uma estrutura de retaguarda para xdg-desktop-portal, que está usando GTK e várias peças da infraestrutura do GNOME.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/flatpak/xdg-desktop-portal-gtk/releases/download/1.15.2/xdg-desktop-portal-gtk-1.15.2.tar.xz
Soma de verificação MD5 da transferência: a84f2748611383cd1d1731542de7bce0
Tamanho da transferência: 92 KB
Espaço em disco estimado exigido: 6,3 MB
Tempo de construção estimado: 0,1 UPC
GTK-3.24.48 e xdg-desktop-portal-1.20.0
gnome-desktop-44.1 (para compilar mais interfaces de portal)
Instale xdg-desktop-portal-gtk executando os seguintes comandos:
mkdir build && cd build && meson setup --prefix=/usr --buildtype=release .. && ninja
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
ninja install
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" é um serviço de sistema que é responsável por fornecer "logins" gráficos e gerenciar exibições locais e remotas.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/gdm/47/gdm-47.0.tar.xz
Soma de verificação MD5 da transferência: 0312497290b26525e14fbc153f1a87f2
Tamanho da transferência: 916 KB
Espaço em disco estimado exigido: 37 MB
Tempo de construção estimado: 0,2UPC
AccountsService-23.13.9, DConf-0.40.0, libcanberra-0.30 (construído depois do GTK-3.24.48) e Linux-PAM-1.7.0
É 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 \ -D gdm-xsession=true \ -D run-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
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
-D initial-vt=7
: Use essa chave
para fazer o GDM iniciar no
Terminal Virtual 7 em vez do primeiro Terminal Virtual livre.
-D default-pam-config=lfs
: Use
essa chave se você não criou o arquivo /etc/lfs-release
ou a detecção automática
da distribuição falhará e você estará inapto(a) para usar o
GDM.
-D gdm-xsession=true
:
Isso habilita a instalação do arquivo Xsession do
GDM.
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
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
O GDM suspenderá o sistema quando a tela de saudação
estiver executando por um tempo sem qualquer entrada
interativa. Se você quiser desabilitar a suspensão
automática por qualquer motivo (por exemplo, se o sistema
estiver hospedando alguns serviços além de funcionar como
um sistema de área de trabalho), como o(a) usuário(a)
root
, emita:
su gdm -s /bin/bash \ -c "dbus-run-session \ gsettings set org.gnome.settings-daemon.plugins.power \ sleep-inactive-ac-type \ nothing"
O pacote "lightdm" contém um gerenciador de exibição leve baseado em no "GTK".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/CanonicalLtd/lightdm/releases/download/1.32.0/lightdm-1.32.0.tar.xz
Soma de verificação MD5 da transferência: e62a5da6c35f612e4d9575eda5c8d467
Tamanho da transferência: 508 KB
Espaço em disco estimado exigido: 20 MB
Tempo de construção estimado: 0,2 UPC
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.
Transferência (HTTP): https://github.com/Xubuntu/lightdm-gtk-greeter/releases/download/lightdm-gtk-greeter-2.0.9/lightdm-gtk-greeter-2.0.9.tar.gz
Soma de verificação MD5 da transferência: 35752d730f39293c2bbe884ef6963830
Tamanho da transferência: 592 KB
Espaço em disco estimado exigido: 5,2 MB
Tempo de construção estimado: menos que 0,1 UPC
Exo-4.20.0 (para o saudador), libgcrypt-1.11.0, itstool-2.0.7, Linux-PAM-1.7.0 e Xorg-Server-21.1.16 (tempo de execução)
GLib-2.82.5 (com GObject Introspection), libxklavier-5.4 e Vala-0.56.17
AccountsService-23.13.9 (tempo de execução), at-spi2-core-2.54.1, GTK-Doc-1.34.0, libido e libindicator
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.9.tar.gz && cd lightdm-gtk-greeter-2.0.9 && ./configure --prefix=/usr \ --libexecdir=/usr/lib/lightdm \ --sbindir=/usr/bin \ --sysconfdir=/etc \ --with-libxklavier \ --enable-kill-on-sigterm \ --disable-libido \ --disable-libindicator \ --disable-static \ --disable-maintainer-mode \ --docdir=/usr/share/doc/lightdm-gtk-greeter-2.0.9 && make
Agora, como o(a) usuário(a) "root
":
make install
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
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.
/etc/lightdm/{lightdm,users,keys,lightdm-gtk-greeter}.conf
Os arquivos de configuração oferecem muitas opções. Se, por
exemplo, você tiver uma configuração de vários monitores,
mas preferir que a janela de login seja exibida em somente
um monitor, configure 'active-monitor=<nome_monitor>'
em lightdm-gtk-greeter.conf
.
Por exemplo, você poderia usar active-monitor=HDMI-1
. Você consegue
determinar os nomes dos monitores com xrandr --listmonitors.
Observe que os nomes dos monitores possivelmente mudem se
você mudar o controlador de gráficos e você possivelmente
tenha que ajustar a configuração de acordo.
Instale a unidade "lightdm.service
" incluída no pacote
"blfs-systemd-units-20241211":
make install-lightdm
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.
O pacote sddm contém um gerenciador de tela leve baseado em Qt e QML.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/sddm/sddm/archive/v0.21.0/sddm-0.21.0.tar.gz
Soma de verificação MD5 da transferência: e32a35c282d9be3360737eefbe25b5fa
Tamanho da transferência: 3,4 MB
Espaço em disco estimado exigido: 24 MB
Tempo de construção estimado: 0,3 UPC (Usando paralelismo=4)
CMake-3.31.5, extra-cmake-modules-6.11.0 e Qt-6.8.2
docutils-0.21.2 (para as páginas de manual), Linux-PAM-1.7.0 e UPower-1.90.7
Primeiro, crie um(a) usuário(a) e um grupo dedicado(a) para
assumir o controle do processo de segundo plano do
sddm depois de
ele ser iniciado. Emita os seguintes comandos como o(a)
usuário(a) root
:
groupadd -g 64 sddm && useradd -c "Processo de Segundo Plano do sddm" \ -d /var/lib/sddm \ -u 64 -g sddm \ -s /bin/false sddm
Instale o sddm executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ -D RUNTIME_DIR=/run/sddm \ -D BUILD_MAN_PAGES=ON \ -D BUILD_WITH_QT6=ON \ -D DATA_INSTALL_DIR=/usr/share/sddm \ -D DBUS_CONFIG_FILENAME=sddm_org.freedesktop.DisplayManager.conf \ .. && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install && install -v -dm755 -o sddm -g sddm /var/lib/sddm /usr/bin/sddm --example-config > /etc/sddm.conf
-D
CMAKE_BUILD_TYPE=Release
: Essa chave é usada para
aplicar otimizações adicionais do compilador.
-D
DBUS_CONFIG_FILENAME=sddm_org.freedesktop.DisplayManager.conf
:
Essa chave evita que o arquivo /etc/dbus-1/system.d/org.freedesktop.DisplayManager.conf
seja sobrescrito, pois ele possivelmente seja usado por
outros DMs.
-D
BUILD_MAN_PAGES=ON
: Essa chave é usada para
construir e instalar páginas de manual.
/etc/sddm.config
Normalmente, você quer editar esse arquivo. Por exemplo, se
o Xorg estiver instalado em /opt, use teu editor preferido
como o(a) usuário(a) root
para substituir o valor padrão XauthPath por /opt/xorg/bin/xauth. Ou, como
o(a) usuário(a) root
,
emita:
sed -i.orig '/ServerPath/ s|usr|opt/xorg|' /etc/sddm.conf
Esse comando fará a substituição e criará uma cópia do
arquivo original com o nome /etc/sddm.conf.orig
.
A partir de agora descreveremos como modificar
configurações usando sed. É claro que você poderá usar teu
editor preferido como o(a) usuário(a) root
.
Por motivos de segurança, você normalmente quer o
ServerArguments=-nolisten
tcp padrão, a menos que uma máquina remota
precise acessar o servidor X local. Nesse caso, como o(a)
usuário(a) root
, emita:
sed -i 's/-nolisten tcp//' /etc/sddm.conf
Usuários(as) de área de trabalho (notebook) normalmente
querem ligar (desligar) a tecla Num Lock. Para isso, como
root
, emita:
sed -i '/Numlock/s/none/on/' /etc/sddm.conf
para usuários(as) de área de trabalho. Para usuários(as) de Notebook, substitua /on/ por /off/ no comando acima.
Por padrão, um teclado virtual é apresentado para o(a)
usuário(a). Se isso não for desejado, execute como
root
:
sed -i 's/qtvirtualkeyboard//' /etc/sddm.conf
Habilite a unidade do systemd pré-instalada executando o
seguinte comando como o(a) usuário(a) root
:
systemctl enable sddm
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
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.
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=
, por exemplo, <novo
tema>
Current=maldives
.
Para a finalidade de ver o tema sem sair da sessão, emita:
sddm-greeter --test-mode --theme <caminho do tema>
Gerenciadores de Janelas e Ambientes de Área de Trabalho são as interfaces de usuário(a) primárias no Sistema de Janelas "X". Um gerenciador de janelas é um aplicativo que controla a aparência das janelas e fornece os meios pelos quais o(a) usuário(a) consegue interagir com elas. Um Ambiente de Área de Trabalho fornece uma interface mais completa para o sistema operacional e fornece uma variedade de utilitários e aplicativos integrados.
Existem muitos Gerenciadores de Janelas disponíveis. Alguns dos mais bem conhecidos incluem "fvwm2", "Window Maker", "AfterStep", "Enlightenment", "Sawfish" e "Blackbox".
Os Ambientes de Área de Trabalho disponíveis para o Linux são "GNOME", "KDE" e "XFce".
Escolher um Gerenciador de Janelas ou um Ambiente de Área de Trabalho é altamente subjetivo. A escolha depende da aparência dos pacotes, dos recursos (RAM, espaço em disco) exigidos e dos utilitários incluídos. Um sítio da web que fornece um resumo muito bom do que está disponível, capturas de tela e respectivos recursos deles(as) é Gerenciadores de Janelas para X.
Neste capítulo, as instruções de instalação de vários Gerenciadores de Janelas e um Ambiente de Área de Trabalho leve são apresentadas. Mais adiante no livro, ambos, "KDE" e "GNOME", tem as próprias seções deles.
O pacote "Fluxbox" contém um gerenciador de janelas.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://downloads.sourceforge.net/fluxbox/fluxbox-1.3.7.tar.xz
Soma de verificação MD5 da transferência: b44afd10ee1e64624c23115aa51dcd55
Tamanho da transferência: 772 KB
Espaço em disco estimado exigido: 101 MB
Tempo de construção estimado: 0,9 UPC
dbus-1.16.0 (tempo de execução), FriBidi-1.0.16 e imlib2-1.12.3 (se você desejar usar outros formatos de imagem além do "XPM")
Primeiro, corrija uma falha de construção ao construir com o gcc-11.1 e posterior:
sed -i '/text_prop.value > 0/s/>/!=/' util/fluxbox-remote.cc
Instale o "Fluxbox" executando os seguintes comandos:
./configure --prefix=/usr && make
Esse pacote não tem uma suíte funcional de teste.
Agora, como o(a) usuário(a) "root
":
make install
Se o "Fluxbox" for o único
Gerenciador de Janelas que você quer usar, [então] você
pode iniciá-lo com um arquivo ".xinitrc
" em tua pasta inicial.
Certifique-se de produzir uma cópia de segurança do teu
".xinitrc
" atual antes de
continuar.
echo startfluxbox > ~/.xinitrc
Ou, alternativamente, se você usa um gerenciador de "login"
como o "GDM-47.0" ou o "lightdm-1.32.0" e
gostaria de poder escolher o "Fluxbox" na solicitação de "login",
[então] crie um arquivo "fluxbox.desktop
". Como "root
":
mkdir -pv /usr/share/xsessions &&
cat > /usr/share/xsessions/fluxbox.desktop << "EOF"
[Desktop Entry]
Encoding=UTF-8
Name=Fluxbox
Comment=Esta sessão te conecta ao Fluxbox
Exec=startfluxbox
Type=Application
EOF
Se você não instalou o "GDM-47.0" ou o "lightdm-1.32.0" no
"/usr
", então mude esse
comando para ajustar o prefixo que você escolher.
Agora crie os arquivos de configuração do "Fluxbox":
mkdir -v ~/.fluxbox && cp -v /usr/share/fluxbox/init ~/.fluxbox/init && cp -v /usr/share/fluxbox/keys ~/.fluxbox/keys
Para gerar o menu da aplicação, primeiro você possivelmente
deseje executar o "fluxbox-generate_menu
-h", para a finalidade de escolher
quaisquer <opções_de_usuário(a)>
;
então emita:
cd ~/.fluxbox &&
fluxbox-generate_menu <opções_de_usuário(a)>
Alternativamente, copie um menu pré gerado:
cp -v /usr/share/fluxbox/menu ~/.fluxbox/menu
Itens de menu são adicionados editando-se "~/.fluxbox/menu
". A sintaxe é explicada
na página de manual do "fluxbox".
Se quiser usar uma imagem como plano de fundo da tua área
de trabalho, copie o tema que você gostar em ~/.fluxbox
. Em seguida, adicione uma
linha para fazê-lo usar a imagem correta. No comando a
seguir, mude <tema>
para o nome do
tema desejado e mude </caminho/para/atraente/imagem.ext>
para apontar para a imagem atual que você deseja usar, onde
ext
precisa ser
xpm
, se o imlib2-1.12.3 não
estiver instalado para permitir outros formatos de imagem.
cp -r /usr/share/fluxbox/styles/<tema> ~/.fluxbox/theme && sed -i 's,\(session.styleFile:\).*,\1 ~/.fluxbox/theme,' ~/.fluxbox/init && [ -f ~/.fluxbox/theme ] && echo "background.pixmap: </caminho/para/atraente/imagem.ext>" >> ~/.fluxbox/theme || [ -d ~/.fluxbox/theme ] && echo "background.pixmap: </caminho/para/atraente/imagem.ext>" >> ~/.fluxbox/theme/theme.cfg
Em algumas localidades, a fonte especificada no tema
possivelmente não contenha os caracteres necessários. Isso
resulta em menus com itens em branco. Você consegue
corrigir isso editando "~/.fluxbox/theme
" com um editor de texto
e alterando-o, de forma que ele nomeie uma fonte adequada.
é um gerenciador de janelas para o "X11" baseado no "Blackbox" 0.61.0 |
|
é 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 |
|
é um utilitário para mudar a aparência da janela raiz baseado no aplicativo "bsetroot" do "Blackbox" |
|
é um utilitário que gera um menu escaneando a tua
" |
|
é um conjunto de comandos sequenciais de inicialização de sessão que permite a execução de comandos antes do início do "fluxbox" |
|
exibe uma janela de diálogo de execução |
|
fornece acesso de linha de comando aos comandos chave do "Fluxbox" |
|
use para gerenciar arquivos de configuração (recarregar, atualizar, testar) |
"IceWM" é um gerenciador de janelas com os objetivos de velocidade, simplicidade e não atrapalhar o(a) usuário(a).
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/ice-wm/icewm/archive/3.7.1/icewm-3.7.1.tar.gz
Soma de verificação MD5 da transferência: ffb2ea2016d230417c4946467ed779cc
Tamanho da transferência: 2,5 MB
Espaço em disco estimado exigido: 50 MB
Tempo de construção estimado: 0,4 UPC
CMake-3.31.5, imlib2-1.12.3 e um ambiente gráfico
asciidoc-10.2.1 (para regenerar a documentação HTML), FriBidi-1.0.16 (para idiomas escritos da direita para a esquerda), librsvg-2.59.2, libao-1.2.0, libsndfile-1.2.2, alsa-lib-1.2.13 (para o aplicativo experimental icesound) e gdk-pixbuf-xlib
Instale o "IceWM" executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ -D CFGDIR=/etc \ -D ENABLE_LTO=ON \ -D DOCDIR=/usr/share/doc/icewm-3.7.1 \ .. && make
Esse pacote não tem uma suíte funcional de teste.
Agora, como o(a) usuário(a) "root
":
make install
Esse pacote cria dois arquivos ".desktop
" no diretório "/usr/share/xsessions/
". Ambos não são
necessários em um sistema BLFS, de forma que evite o arquivo
extra aparecendo como uma opção em um gerenciador de tela.
Como o(a) usuário(a) "root
":
rm -v /usr/share/xsessions/icewm.desktop
-D ENABLE_LTO=ON
:
Essa opção habilita Link Time Optimization e é exigida para
esse pacote.
"~/.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
".
Se o "IceWM" for o único
Gerenciador de Janelas que você quer usar, [então] você
pode iniciá-lo com um arquivo ".xinitrc
" em tua pasta inicial.
Certifique-se de produzir uma cópia de segurança do teu
".xinitrc
" atual antes de
continuar.
echo icewm-session > ~/.xinitrc
Agora crie os arquivos de configuração do "IceWM":
mkdir -pv ~/.icewm && cp -v /usr/share/icewm/keys ~/.icewm/keys && cp -v /usr/share/icewm/menu ~/.icewm/menu && cp -v /usr/share/icewm/preferences ~/.icewm/preferences && cp -v /usr/share/icewm/toolbar ~/.icewm/toolbar && cp -v /usr/share/icewm/winoptions ~/.icewm/winoptions
Agora você pode editar esses arquivos para atender às tuas
necessidades. Em particular, revise o arquivo "preferences
". Você pode usar
"Logout ->
Restart-IceWM" no menu principal para
carregar tuas preferências mudadas, mas as mudanças para o
plano de fundo somente terão efeito quando o "IceWM" for iniciado.
Neste ponto você pode ou modificar os arquivos tradicionais de menu para atender às tuas necessidades, ou usar o "icewm-menu-fdo" mais recente descrito mais adiante.
A sintaxe dos menus é explicada nos arquivos de ajuda, os quais você consegue acessar executando "help" a partir do menu, mas alguns detalhes estão desatualizados e as seleções padrão nos menus (alguns antigos aplicativos no menu principal, todo o resto no menu "Programas") serão beneficiadas com a atualização para atender às tuas necessidades. Os exemplos a seguir são fornecidos para te incentivar a pensar a respeito do como deseja organizar teus menus. Por favor observe o seguinte:
Se um aplicativo listado no menu não tiver sido instalado, [então] ele não aparecerá quando o menu for exibido. Da mesma forma, se o aplicativo existir, mas o ícone especificado não existir, [então] nenhum ícone será exibido no menu.
Os ícones podem ser ou arquivos ".xpm
" ou ".png
" e não existe necessidade de
especificar a extensão. Se o ícone estiver localizado
na "biblioteca" ("/usr/share/icewm/icons
"), [então]
não existe necessidade de especificar o caminho.
A maioria dos aplicativos está em submenus, e o menu
principal sempre acrescentará entradas para
"janelas", "ajuda",
"configurações", "logout"
na parte inferior.
Um ícone para o "firefox" foi copiado para o
diretório da biblioteca e recebeu um nome
significativo. O ícone para o "xine" é "xine.xpm
" que foi instalado em um
diretório "pixmap".
A barra de ferramentas padrão não é alterada.
Se desejar usar esse método tradicional, [então] existem mais exemplos em lançamentos anteriores deste livro (por exemplo, BLFS-7.8).
Alternativamente, você pode criar um menu que esteja em conformidade com as Especificações de Menu de Área de Trabalho "FDO", onde os aplicativos podem ser encontrados porque tem um arquivo ".desktop" nos diretórios "XDG_DATA_HOME" ou "XDG_DATA_DIR". Ao contrário da maioria dos gerenciadores de janelas, o "icewm" não procura aplicativos quando o menu é invocado, de forma que, se você seguir esse caminho, [então] precisará executar novamente o seguinte comando depois de instalar ou remover aplicativos:
icewm-menu-fdo >~/.icewm/menu
Se desejar colocar ícones em tua área de trabalho, você precisará instalar um aplicativo como o rox-filer que fornece um quadro de avisos. Se fizer isso, você não mais poderá acessar o menu clicando com o botão direito na área de trabalho; você terá que usar o botão do IceWM. Para garantir que o quadro de avisos do rox esteja executando, os seguintes comandos o colocarão no arquivo de inicialização:
cat > ~/.icewm/startup << "EOF"
rox -p Default &
EOF &&
chmod +x ~/.icewm/startup
Existem vários atalhos de teclado no "IceWM":
Ctrl + Alt + FN
: vai para o
"tty
".
N
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.
é usado para exibir o manual "HTML" |
|
é um gerenciador de janelas de linha de comando que
pode ser usado em " |
|
reproduz arquivos de áudio em eventos de "GUI" gerados pelo "IceWM" |
|
é o gerenciador de janelas |
|
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" |
|
é um aplicativo auxiliar usado para gerenciar configurações de múltiplas telas |
|
executa "icewmbg", "icewm", "icewmtray", "startup", "shutdown" (ou seja, conjuntos de comandos sequenciais de inicialização e desligamento são executados se instalados) |
|
é um conjunto de comandos sequenciais para configurar o gerenciador de janelas "GNOME" como "icewm" usando o "gconftool" |
|
é usado para configurar o plano de fundo, de acordo
com as diversas configurações de " |
|
é usado internamente para fornecer dicas para o(a) usuário(a) |
"Openbox" é um gerenciador de janelas de área de trabalho altamente configurável com amplo suporte a padrões. Ele te permite controlar quase todos os aspectos de como você interage com a tua área de trabalho.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): http://openbox.org/dist/openbox/openbox-3.6.1.tar.gz
Soma de verificação MD5 da transferência: b72794996c6a3ad94634727b95f9d204
Tamanho da transferência: 944 KB
Espaço em disco estimado exigido: 19 MB
Tempo de construção estimado: 0,3 UPC
um ambiente gráfico e Pango-1.56.1 (compilado com suporte para "libXft")
dbus-1.16.0 (tempo de execução), imlib2-1.12.3 (para habilitar ícones no menu do botão direito), ImageMagick-7.1.1-43 (para mostrar os planos de fundo da área de trabalho conforme visto na seção Informações de Configuração abaixo), PyXDG-0.28, startup-notification-0.12 e librsvg-2.59.2
se "XORG_PREFIX" não for "/usr
", [então] informe ao "gcc" acerca disso:
export LIBRARY_PATH=$XORG_PREFIX/lib
Atualize os conjuntos de comandos sequenciais do pacote para habilitar o Python 3:
patch -Np1 -i ../openbox-3.6.1-py3-1.patch
Instale o "Openbox" executando os seguintes comandos:
autoreconf -fi && ./configure --prefix=/usr \ --sysconfdir=/etc \ --disable-static \ --docdir=/usr/share/doc/openbox-3.6.1 && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) "root
":
make install
Esse pacote cria três arquivos ".desktop
" no diretório "/usr/share/xsessions/
". Dois deles não são
apropriados em um sistema BLFS, de forma que evite os
arquivos extras aparecendo como opções em um gerenciador de
tela. Como o(a) usuário(a) "root
":
rm -v /usr/share/xsessions/openbox-{gnome,kde}.desktop
--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.
/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
O menu do botão direito do "Openbox" pode ser usado para iniciar
aplicativos. O menu em si é configurado com dois arquivos,
"/etc/xdg/openbox/menu.xml
" e
"~/.config/openbox/menu.xml
".
Para fazer mudanças no menu, copie
"/etc/xdg/openbox/menu.xml" para
"~/.config/openbox/menu.xml" e edite-o:
cp -rf /etc/xdg/openbox ~/.config
Para ter ícones em teu menu do botão direito, é exigido
instalar o "imlib2-1.12.3" antes de instalar o
"Openbox". Para configurar
um ícone para uma entrada no menu, edite "~/.config/openbox/menu.xml
" e adicione um
ícone à marca <item>, assim:
<item label="Mplayer" icon="/usr/share/pixmaps/mplayer.png">
Muitos outros aspectos do comportamento do "Openbox" são configurados com
"~/.config/openbox/rc.xml
",
como quais atalhos de teclado são usados para iniciar
aplicativos ou qual botão do mouse inicia o menu principal.
Detalhes do tema que o "Openbox" aplica às decorações de
janelas são configurados em "~/.config/openbox/rc.xml
". Você consegue
obter uma lista dos temas disponíveis com o comando:
ls -d /usr/share/themes/*/openbox-3 | sed 's#.*es/##;s#/o.*##'
Para iniciar automaticamente o "openbox" quando você iniciar o "Xorg":
echo openbox > ~/.xinitrc
Se quiser configurar uma imagem de plano de fundo para a tua área de trabalho, [então] você pode usar o "display" e iniciá-lo a partir de "~/.xinitrc" logo antes do "openbox":
cat > ~/.xinitrc << "EOF"
display -backdrop -window root /caminho/para/maravilhosa/fotografia.jpeg
exec openbox
EOF
Ou, se você gosta de um pouco de variedade, [então] coloque uma seleção de imagens em uma pasta (neste exemplo, o diretório "~/.config/backgrounds") e escolha uma aleatoriamente cada vez que você acionar o "xinit":
cat > ~/.xinitrc << "EOF"
# crie um vetor que liste as fotografias:
picture_list=(~/.config/backgrounds/*)
# crie um número inteiro aleatório entre zero e o número de fotografias:
random_number=$(( ${RANDOM} % ${#picture_list[@]} ))
# exibir a fotografia escolhida:
display -backdrop -window root "${picture_list[${random_number}]}"
exec openbox
EOF
Se você deseja ter a chave "numlock" configurada quando iniciar o "Xorg", [então] instale o "Numlockx" e adicione-o ao teu "xinitrc". Outra aplicação útil é o "dbus-1.16.0":
cat > ~/.xinitrc << "EOF"
. /etc/profile
picture_list=(~/.config/backgrounds/*)
random_number=$(( ${RANDOM} % ${#picture_list[*]} ))
display -backdrop -window root "${picture_list[${random_number}]}"
numlockx
eval $(dbus-launch --auto-syntax --exit-with-session)
lxpanel &
exec openbox
EOF
é uma ferramenta de linha de comando para enviar sinais para o "GDM" |
|
é um utilitário de linha de comando para invocar a caixa de diálogo/menu de execução do "Gnome Panel" |
|
é 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 |
|
é um gerenciador de janelas compatível com padrões e altamente configurável |
|
é um conjunto de comandos sequenciais para iniciar
uma sessão do "Gnome" com o "Openbox" como teu gerenciador
de janelas a partir de teu " |
|
é um conjunto de comandos sequenciais para iniciar
uma sessão do "KDE" com o "Openbox" como teu gerenciador
de janelas a partir de teu " |
|
é um conjunto de comandos sequenciais para iniciar
uma sessão do "Openbox" a partir de teu
" |
|
contém as funções usadas pelo "Openbox" para renderização de temas |
|
é a biblioteca do kit de ferramentas do "Openbox" |
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.
O pacote Tema de Ícones Adwaita contém um tema de ícones para aplicativos GTK+ 3 e GTK 4.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/adwaita-icon-theme/47/adwaita-icon-theme-47.0.tar.xz
Soma de verificação MD5 da transferência: b3863567f8019b056695cb51f4e0abc4
Tamanho da transferência: 4,0 MB
Espaço em disco estimado exigido: 29 MB
Tempo de construção estimado: menos que 0,1 UPC
GTK-3.24.48 ou GTK-4.16.12 e librsvg-2.59.2
Instale o "Tema de Ícone Adwaita" executando os seguintes comandos:
mkdir build && cd build && meson setup --prefix=/usr .. && ninja
Esse pacote não vem com uma suíte de teste.
Remova quaisquer ícones antigos e instale os novos. Como o(a)
usuário(a) root
:
rm -rf /usr/share/icons/Adwaita/ && ninja install
O pacote Ícones Breeze contém os ícones padrão para aplicativos KDE Plasma, mas pode ser usado para outros ambientes de janela.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.kde.org/stable/frameworks/6.11/breeze-icons-6.11.0.tar.xz
Soma de verificação MD5 da transferência: 8989043ad5c6bae49cb2abb3e88490aa
Tamanho da transferência: 2,1 MB
Espaço em disco estimado exigido: 258 MB
Tempo de construção estimado: 0,5 UPC
extra-cmake-modules-6.11.0 e Qt-6.8.2
Instale o "Ícones Breeze" executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D BUILD_TESTING=OFF \ -W no-dev ..
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) "root
":
make install
-D BUILD_TESTING=OFF
:
Esse parâmetro desabilita construir a estrutura essencial de
suporte de testes, a qual exige alguns módulos originários do
KDE
Frameworks-6.11.0.
O pacote "Tema de Ícone do GNOME" contém uma variedade de ícones não escaláveis de diferentes tamanhos e temas.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/gnome-icon-theme/3.12/gnome-icon-theme-3.12.0.tar.xz
Soma de verificação MD5 da transferência: f14bed7f804e843189ffa7021141addd
Tamanho da transferência: 17 MB
Espaço em disco estimado exigido: 85 MB
Tempo de construção estimado: 0,5 UPC
GTK-3.24.48, hicolor-icon-theme-0.18 e icon-naming-utils-0.8.90
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
O pacote "Extras do Tema de Ícone do GNOME" contém ícones extras para a Área de Trabalho do "GNOME".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/gnome-icon-theme-extras/3.12/gnome-icon-theme-extras-3.12.0.tar.xz
Soma de verificação MD5 da transferência: 91f8f7e35a3d8d926716d88b8b1e9a29
Tamanho da transferência: 1,7 MB
Espaço em disco estimado exigido: 12 MB
Tempo de construção estimado: menos que 0,1 UPC
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
O pacote "Simbólico do Tema de Ícone do GNOME" contém ícones simbólicos para o tema de ícone padrão do "GNOME".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/gnome-icon-theme-symbolic/3.12/gnome-icon-theme-symbolic-3.12.0.tar.xz
Soma de verificação MD5 da transferência: 3c9c0e6b9fa04b3cbbb84da825a26fd9
Tamanho da transferência: 228 KB
Espaço em disco estimado exigido: 6,8 MB
Tempo de construção estimado: menos que 0,1 UPC
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
O pacote "Extra dos Temas do GNOME", anteriormente conhecido como "Padrão dos Temas do GNOME", contém vários componentes do tema padrão do "GNOME".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/gnome-themes-extra/3.28/gnome-themes-extra-3.28.tar.xz
Soma de verificação MD5 da transferência: f9f2c6c521948da427f702372e16f826
Tamanho da transferência: 2,8 MB
Espaço em disco estimado exigido: 40 MB
Tempo de construção estimado: 0,3 UPC
Instale o "Extra dos Temas do GNOME" executando os seguintes comandos:
./configure --prefix=/usr --disable-gtk2-engine && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) "root
":
make install
--disable-gtk2-engine
: Essa
chave desabilita o mecanismo de tema do GTK+-2 porque GTK+-2
não mais é parte do BLFS.
--disable-gtk3-engine
: Essa chave
desabilita o mecanismo de tema do "GTK+-3".
O pacote "hicolor-icon-theme" contém um tema substituto padrão para implementações da especificação do tema de ícones.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://icon-theme.freedesktop.org/releases/hicolor-icon-theme-0.18.tar.xz
Soma de verificação MD5 da transferência: ef14f3af03bcde9ed134aad626bdbaad
Tamanho da transferência: 32 KB
Espaço em disco estimado exigido: 644 KB
Tempo de construção estimado: menos que 0,1 UPC
Instale o "hicolor-icon-theme" executando os seguintes comandos:
mkdir build && cd build && meson setup --prefix=/usr --buildtype=release .. && ninja
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) "root
":
ninja install
O pacote "icon-naming-utils" contém um conjunto de comandos sequenciais "Perl" usado para manter a compatibilidade retroativa com os atuais temas de ícones de área de trabalho, enquanto migra para os nomes especificados na Especificação de Nomenclatura de Ícones.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://tango.freedesktop.org/releases/icon-naming-utils-0.8.90.tar.bz2
Soma de verificação MD5 da transferência: dd8108b56130b9eedc4042df634efa66
Tamanho da transferência: 57 KB
Espaço em disco estimado exigido: 440 KB
Tempo de construção estimado: menos que 0,1 UPC
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
O pacote "Tema de Ícone do LXDE" contém o Tema de Ícone "nuoveXT 2.2" para o "LXDE".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://downloads.sourceforge.net/lxde/lxde-icon-theme-0.5.1.tar.xz
Soma de verificação MD5 da transferência: 7467133275edbbcc79349379235d4411
Tamanho da transferência: 4,3 MB
Espaço em disco estimado exigido: 18 MB
Tempo de construção estimado: menos que 0,1 UPC
GTK-3.24.48 (para o comando gtk-update-icon-cache)
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
O tema dos ícones do oxygen é um estilo de ícone fotorrealista, com um alto padrão de qualidade gráfica.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.kde.org/stable/oxygen-icons/oxygen-icons-6.0.0.tar.xz
Soma de verificação MD5 da transferência: 7de8aed8caa14ccf5b4906e68c020d55
Tamanho da transferência: 231 MB
Espaço em disco estimado exigido: 453 MB
Tempo de construção estimado: menos que 0,1 UPC
Primeiro, habilite ícones escalonáveis:
sed -i '/( oxygen/ s/)/scalable )/' CMakeLists.txt
Instale oxygen-icons executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr -W no-dev ..
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
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/.
O "KDE" é um ambiente de área de trabalho abrangente com um grande número de aplicativos escritos para ele e uma grande quantidade de usuários(as). Ele é baseado na estrutura essencial de suporte "Qt".
O sistema KDE6 tem dois blocos principais: as bibliotecas, chamadas Frameworks 6 ou KF6 do KDE, as quais podem ser usadas em outros ambientes; e o ambiente de área de trabalho, chamado Plasma 6 do KDE. A maioria dos aplicativos escritos pela equipe do KDE usa somente o KF6, e não precisa do ambiente Plasma.
Para mais informações, visite o sítio oficial do projeto "KDE" em https://kde.org/.
O pacote Módulos Extras do Cmake contém módulos extras do CMake usados pelo KDE Frameworks e outros pacotes.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.kde.org/stable/frameworks/6.11/extra-cmake-modules-6.11.0.tar.xz
Soma de verificação MD5 da transferência: 22bce8bd85c1ead07bda8a00518d1120
Tamanho da transferência: 320 KB
Espaço em disco estimado exigido: 9,5 MB
Tempo de construção estimado: menos que 0,1 UPC
sphinx-8.2.1 (para construir documentação), PyQt (suporte experimental para construir ligações Python do KDE) e ReuseTool (para executar testes internos)
Instale o "Módulos Extras do Cmake" executando os seguintes comandos:
sed -i '/"lib64"/s/64//' kde-modules/KDEInstallDirsCommon.cmake && sed -e '/PACKAGE_INIT/i set(SAVE_PACKAGE_PREFIX_DIR "${PACKAGE_PREFIX_DIR}")' \ -e '/^include/a set(PACKAGE_PREFIX_DIR "${SAVE_PACKAGE_PREFIX_DIR}")' \ -i ECMConfig.cmake.in && mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr -D BUILD_WITH_QT6=ON .. && make
Esse pacote não vem com uma suíte de teste.
Ao contrário de outros pacotes KF6, esse módulo é instalado em /usr, pois ele pode ser usado por alguns pacotes não KF6.
Agora, como o(a) usuário(a) "root
":
make install
sed ...
Modules/KDEInstallDirs.cmake: Esse comando
desabilita as aplicações que usam o "cmake" de tentarem
instalar arquivos em um sub diretório "lib64
".
sed ...
ECMConfig.cmake.in: Esse comando protege a
variável global do cmake
PACKAGE_PREFIX_DIR
de ser mudada
ao verificar a presença do ECM: desde que instalamos o ECM em
/usr
, a verificação
configuraria essa variável como /usr
, enquanto a maioria dos pacotes do KDE
espera que ela esteja configurada como /opt/kf6
e falharia para construir se
estivesse configurada para outra coisa.
Phonon é a API multimídia do KDE. Ela substitui o antigo pacote aRts. Phonon precisa da estrutura de retaguarda VLC.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.kde.org/stable/phonon/4.12.0/phonon-4.12.0.tar.xz
Soma de verificação MD5 da transferência: e80e9c73967080016bdb3c0ee514ceab
Tamanho da transferência: 400 KB
Espaço em disco estimado exigido: 23 MB
Tempo de construção estimado: 0,2 UPC (Usando paralelismo=4)
CMake-3.31.5, extra-cmake-modules-6.11.0, GLib-2.82.5 e Qt-6.8.2
phonon-backend-vlc-0.12.0 precisa ser instalado posteriormente para operação multimídia no KDE.
Instale o "Phonon" executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ -D PHONON_BUILD_QT5=OFF \ -W no-dev .. && make
Agora, como o(a) usuário(a) "root
":
make install
-D
CMAKE_BUILD_TYPE=Release
: Essa chave é usada para
aplicar um nível mais alto de otimização à compilação.
-D
PHONON_BUILD_QT5=OFF
: Essa chave é necessária
para evitar construir as ligações Qt5, que falham se Qt5 não estiver instalado.
Esse pacote fornece uma estrutura de retaguarda do "Phonon" que utiliza a estrutura essencial de suporte de mídia do "VLC".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.kde.org/stable/phonon/phonon-backend-vlc/0.12.0/phonon-backend-vlc-0.12.0.tar.xz
Soma de verificação MD5 da transferência: 2a27b5d249f97a15040481008fb16e1b
Tamanho da transferência: 72 KB
Espaço em disco estimado exigido: 6,6 MB
Tempo de construção estimado: 0,2 UPC
phonon-4.12.0 e VLC-3.0.21 (GUI não é necessária)
Instale o "Phonon-backend-vlc" executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ -D PHONON_BUILD_QT5=OFF \ .. && make
Agora, como o(a) usuário(a) "root
":
make install
-D
CMAKE_BUILD_TYPE=Release
: Essa chave é usada para
aplicar um nível mais alto de otimização à compilação.
"Polkit-Qt" fornece uma "API" para "PolicyKit" no ambiente "Qt".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.kde.org/stable/polkit-qt-1/polkit-qt-1-0.200.0.tar.xz
Soma de verificação MD5 da transferência: 6f23bc987ea9c49b4ef21983b9d1dc15
Tamanho da transferência: 60 KB
Espaço em disco estimado exigido: 3,8 MB
Tempo de construção estimado: 0,1 UPC
Instale o "Polkit-Qt" executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ -D QT_MAJOR_VERSION=6 \ -W no-dev .. && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) "root
":
make install
-D
CMAKE_BUILD_TYPE=Release
: Essa chave é usada para
aplicar um nível mais alto de otimização à compilação.
Esse pacote fornece um conjunto personalizado de definições de protocolo para o "KDE".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.kde.org/stable/plasma-wayland-protocols/plasma-wayland-protocols-1.16.0.tar.xz
Soma de verificação MD5 da transferência: 48b8d5d34d9284b1ab01b9b6aa45571b
Tamanho da transferência: 48 KB
Espaço em disco estimado exigido: 1,1 MB
Tempo de construção estimado: menos que 0,1 UPC
Instale o "Plasma-wayland-protocols" executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr ..
Agora, como o(a) usuário(a) "root
":
make install
KF6 pode ser instalado em /usr
ou
/opt/kf6
. Os(As) editores(as) do
BLFS recomendam o último no ambiente do BLFS.
Uma opção é a de instalar KDE
Frameworks na hierarquia /usr
. Isso cria uma configuração mais
simples, mas torna mais difícil testar múltiplas versões do
KDE Frameworks.
export KF6_PREFIX=/usr
É uma boa ideia adicionar as seguintes variáveis aos teus perfis de sistema ou pessoal:
cat >> /etc/profile.d/qt6.sh << "EOF"# Begin kf6 extension for /etc/profile.d/qt6.sh pathappend /usr/lib/plugins QT_PLUGIN_PATH pathappend $QT6DIR/lib/plugins QT_PLUGIN_PATH pathappend /usr/lib/qt6/qml QML2_IMPORT_PATH pathappend $QT6DIR/lib/qml QML2_IMPORT_PATH # End extension for /etc/profile.d/qt6.sh
EOF cat > /etc/profile.d/kf6.sh << "EOF"# Begin /etc/profile.d/kf6.sh export KF6_PREFIX=/usr # End /etc/profile.d/kf6.sh
EOF
Se qt6 foi instalado em
/usr
, as porções $QT6DIR/lib/
dos caminhos acima
possivelmente precisem ser mudadas para $QT6DIR/lib/qt6/
.
Adicionalmente, se Sudo-1.9.16p2 estiver instalado, essas
variáveis deveriam estar disponíveis para o(a)
superusuário(a). Execute os seguintes comandos como o(a)
usuário(a) root
:
cat >> /etc/sudoers.d/qt << "EOF"Defaults env_keep += QT_PLUGIN_PATH Defaults env_keep += QML2_IMPORT_PATH
EOF cat >> /etc/sudoers.d/kde << "EOF"Defaults env_keep += KF6_PREFIX
EOF
Um método de construir múltiplas versões instala KDE Frameworks na hierarquia
/opt
:
export KF6_PREFIX=/opt/kf6
Se você não estiver instalando KDE
Frameworks em /usr
, você
precisará fazer algumas mudanças adicionais de configuração.
A melhor prática é a de adicioná-las ao teu perfil de sistema
ou pessoal:
cat > /etc/profile.d/kf6.sh << "EOF"# Begin /etc/profile.d/kf6.sh export KF6_PREFIX=/opt/kf6 pathappend $KF6_PREFIX/bin PATH pathappend $KF6_PREFIX/lib/pkgconfig PKG_CONFIG_PATH pathappend $KF6_PREFIX/etc/xdg XDG_CONFIG_DIRS pathappend $KF6_PREFIX/share XDG_DATA_DIRS pathappend $KF6_PREFIX/lib/plugins QT_PLUGIN_PATH pathappend $KF6_PREFIX/lib/plugins/kcms QT_PLUGIN_PATH pathappend $KF6_PREFIX/lib/qml QML2_IMPORT_PATH pathappend $KF6_PREFIX/lib/python3.13/site-packages PYTHONPATH pathappend $KF6_PREFIX/include CPLUS_INCLUDE_PATH # End /etc/profile.d/kf6.sh
EOF cat >> /etc/profile.d/qt6.sh << "EOF"# Begin Qt6 changes for KF6 pathappend /usr/lib/plugins QT_PLUGIN_PATH pathappend $QT6DIR/plugins QT_PLUGIN_PATH pathappend $QT6DIR/qml QML2_IMPORT_PATH # End Qt6 changes for KF6
EOF
Expanda teu arquivo /etc/ld.so.conf
:
cat >> /etc/ld.so.conf << "EOF"
# Begin KF6 addition
/opt/kf6/lib
# End KF6 addition
EOF
Vários pacotes do KDE
Frameworks e do KDE
Plasma instalam arquivos nos diretórios do
D-Bus, do Polkit e do systemd. Ao instalar KDE 6 em um local diferente de
/usr
, D-Bus, Polkit e 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 $KF6_PREFIX/{etc,share} && ln -sfv /etc/dbus-1 $KF6_PREFIX/etc && ln -sfv /usr/share/dbus-1 $KF6_PREFIX/share && ln -sfv /usr/share/polkit-1 $KF6_PREFIX/share && install -v -dm755 $KF6_PREFIX/lib && ln -sfv /usr/lib/systemd $KF6_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 se evitar ter múltiplas
instalações de hicolor-icon-theme-0.18.
Execute os seguintes comandos como o(a) usuário(a)
root
:
install -v -dm755 $KF6_PREFIX/share/icons && ln -sfv /usr/share/icons/hicolor $KF6_PREFIX/share/icons
Ocasionalmente, os caminhos de instalação estão rigidamente
codificados nos arquivos instalados. Essa é a razão pela
qual /opt/kf6
é usado como
prefixo de instalação em vez de /opt/kf6-6.11.0
. Depois de instalar
KDE Frameworks, você pode
renomear o diretório e criar um link simbólico:
mv /opt/kf6{,-6.11.0} ln -sfv kf6-6.11.0 /opt/kf6
Mais tarde, você poderá querer instalar outras versões do
KDE Frameworks. Para fazer
isso, basta remover o link simbólico e usar /opt/kf6
como o prefixo novamente. Qual
versão do KDE Frameworks
você usa depende somente de onde o link simbólico aponta.
Nenhuma outra reconfiguração será necessária.
KDE Frameworks é uma coleção de bibliotecas baseadas em Qt6 e QML derivadas a partir de bibliotecas anteriores do KDE. Elas podem ser usadas independentemente do ambiente de exibição do KDE (Plasma 6).
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
As instruções abaixo constroem todos os pacotes do KDE Frameworks em uma etapa, usando um conjunto de comandos sequenciais do bash.
Transferência (HTTP): https://download.kde.org/stable/frameworks/6.11
Soma de verificação MD5 da transferência: Veja-se Abaixo
Tamanho da transferência: 108 MB
Espaço em disco estimado exigido: 2,9 GB (188 MB instalado)
Tempo de construção estimado: 12 UPC (usando paralelismo = 8)
extra-cmake-modules-6.11.0, breeze-icons-6.11.0, docbook-xml-4.5, docbook-xsl-nons-1.79.2, libcanberra-0.30, libgcrypt-1.11.0, libical-3.0.19, libxslt-1.1.42, lmdb-0.9.31, qca-2.3.9, qrencode-4.1.1, plasma-wayland-protocols-1.16.0, PyYAML-6.0.2, shared-mime-info-2.4, URI-5.31 e Wget-1.25.0 (exigido para baixar os pacotes)
Aspell-0.60.8.1 (estrutura de retaguarda de dicionário para Sonnet), Avahi-0.8 (estrutura de retaguarda de DNS-SD para KDNSSD), ModemManager-1.18.12 (necessário para construir ModemManager-Qt), NetworkManager-1.50.0 (necessário para construir NetworkManager-Qt), polkit-qt-0.200.0 (estrutura de retaguarda de autenticação para KAuth), Vulkan-Loader-1.4.304 (adiciona suporte para controladores gráficos do Vulkan) e zxing-cpp-2.3.0 (adicionar suporte necessário para construir spectacle)
Além disso, as instruções abaixo pressupõem que o ambiente tenha sido configurado conforme descrito em Introdução ao KF6.
BlueZ-5.79 (necessário para construir Bluez-Qt) e Datamatrix (considerado recomendado para Prison pelo fluxo de desenvolvimento)
Doxygen-1.13.2 (tempo de execução), doxypypy-0.8.8.7, doxyqml-0.5.3 e requests-2.32.3
libavif-1.2.0, libjxl-0.11.1, libraw-0.21.3, libheif, OpenEXR
UDisks-2.10.1, UPower-1.90.7 e media-player-info (tempo de execução)
GPGME-1.24.2, construído com ligações C++ (o que é o padrão).
A maneira mais fácil de obter os pacotes do KDE Frameworks é a de usar um wget para buscá-los todos de uma vez:
url=https://download.kde.org/stable/frameworks/6.11/
wget -r -nH -nd -A '*.xz' -np $url
The options used here are:
-r recurse through child directories
-nH disable generation of host-prefixed directories
-nd do not create a hierarchy of directories
-A '*.xz' just get the *.xz files
-np don't get parent directories
A ordem de construção dos arquivos é importante devido às dependências internas. Crie a lista de arquivos na ordem correta conforme segue:
cat > frameworks-6.11.0.md5 << "EOF"
9359cfb89031abeeff8616d73e161415 attica-6.11.0.tar.xz
#22bce8bd85c1ead07bda8a00518d1120 extra-cmake-modules-6.11.0.tar.xz
647b2f9cfd55930e86ebb8c1734df140 kapidox-6.11.0.tar.xz
20c3fbf44d196d578bf9b76d0631a1ad karchive-6.11.0.tar.xz
4b4af41ab285dda00a660b34e21e2f8c kcodecs-6.11.0.tar.xz
b0e4142ee55abf3cb38fe6cdf5a0fe71 kconfig-6.11.0.tar.xz
6fa75ef6c2e9ce2fc9b7fb7f77e8db53 kcoreaddons-6.11.0.tar.xz
2ee71003f7887b6ac6646abd134e23ba kdbusaddons-6.11.0.tar.xz
ead6114916c7aa01a8f6c3965315e9ec kdnssd-6.11.0.tar.xz
7679bb9a2a0e817f9660ec775f93dc04 kguiaddons-6.11.0.tar.xz
27a6809407ea64c9db9bbb595cfe1282 ki18n-6.11.0.tar.xz
16d30e56e423668c27bfcbd2425a19da kidletime-6.11.0.tar.xz
4f035f9b0466e297bd95ee57eb53f820 kimageformats-6.11.0.tar.xz
7e48fb5e56bcedff3281d64115d85699 kitemmodels-6.11.0.tar.xz
df934558aaa739a50b16677a3cdc97f7 kitemviews-6.11.0.tar.xz
cbe17f3ad215492a6d3d60d1b161a056 kplotting-6.11.0.tar.xz
85234f0053b4cf6ac5492ba92db2d648 kwidgetsaddons-6.11.0.tar.xz
0fe4524579013c8e9fcf7adf43ea844e kwindowsystem-6.11.0.tar.xz
72fbceb5e5b990d501a1ba3684c78ad0 networkmanager-qt-6.11.0.tar.xz
05d5c3b1277129f4e5fa1e3db9077e10 solid-6.11.0.tar.xz
cc92475aacad8a29de2029e6483ff0b2 sonnet-6.11.0.tar.xz
5236898e85ea7b2b8124ffe21e2e8a51 threadweaver-6.11.0.tar.xz
efe35421eb54433599bb5724bd4b2312 kauth-6.11.0.tar.xz
33067f4f53c2e0e0da9d1324f01af19a kcompletion-6.11.0.tar.xz
1562644115cb4a3d8f5e847c196a6e1b kcrash-6.11.0.tar.xz
52d5e6b18613fd23ba09d05459812062 kdoctools-6.11.0.tar.xz
0cadf6b126b5ed62393b99146bbdaec9 kpty-6.11.0.tar.xz
6d306e6f78769cb8405f909e26db3d76 kunitconversion-6.11.0.tar.xz
b0a6afbdee57b249771017be13b5e9cf kcolorscheme-6.11.0.tar.xz
b2c09a5d3fdcfa3c7fc88617590ac694 kconfigwidgets-6.11.0.tar.xz
71abec8311c27c7b3f8652da220011b8 kservice-6.11.0.tar.xz
357c4a01badb564c4a66ce3503bb7493 kglobalaccel-6.11.0.tar.xz
772720c4f1b51589abd1964750ef96e6 kpackage-6.11.0.tar.xz
6de72206275db095889d5ef02ecfeaae kdesu-6.11.0.tar.xz
f7c14bb2f32943060553c517956bcd36 kiconthemes-6.11.0.tar.xz
3a502ab55f0ca2f1a5e5ab69de951932 knotifications-6.11.0.tar.xz
e3056aadf29ca9a09f015632f5c851d8 kjobwidgets-6.11.0.tar.xz
fe6ac2b10dcadad94e2b54dfd8788fc1 ktextwidgets-6.11.0.tar.xz
cbecf5de939fa3c2340abf4c1c34a550 kxmlgui-6.11.0.tar.xz
83d780dba76ffdb59b119513a94cfaa0 kbookmarks-6.11.0.tar.xz
c69002e34487b8182a7b248265846a8f kwallet-6.11.0.tar.xz
e68dc289e81b20bf781ca7920133ae37 kded-6.11.0.tar.xz
76a597b191d8a1ff103dec70137635a7 kio-6.11.0.tar.xz
092619893a0c6e0e9e735e2396f9518b kdeclarative-6.11.0.tar.xz
90434f367fce9f8ea1cfaccc4642efef kcmutils-6.11.0.tar.xz
c12b36fecb8f26b48d793fe7e3a29405 kirigami-6.11.0.tar.xz
3227ac57ecdaed4c0d4c6b6b48b81ac4 syndication-6.11.0.tar.xz
096b9d761ee2997f34de83a9cee5062d knewstuff-6.11.0.tar.xz
e5ba9f692c12dc7f3f4e2291aca802d7 frameworkintegration-6.11.0.tar.xz
138bf9e51cadd7381a9de428345c78c2 kparts-6.11.0.tar.xz
f75164871c6e7594f81c71d0849f90d3 syntax-highlighting-6.11.0.tar.xz
5ece9440ecedae18706884501e8deae4 ktexteditor-6.11.0.tar.xz
cc4b04c3c42a54259d704534b083f991 modemmanager-qt-6.11.0.tar.xz
fb993807e86e8f1679a6ea59aed71c1e kcontacts-6.11.0.tar.xz
1545793a6da6d4b67f42959dc49d4cef kpeople-6.11.0.tar.xz
e55224a99439e7bb1abf7eab2cd2ef75 bluez-qt-6.11.0.tar.xz
43e1dba98100aebf27297815a0fb8296 kfilemetadata-6.11.0.tar.xz
5e4b41a45872794d45038ca66125cbf8 baloo-6.11.0.tar.xz
#8989043ad5c6bae49cb2abb3e88490aa breeze-icons-6.11.0.tar.xz
d336f55f2747377d0b8f388263749fe4 krunner-6.11.0.tar.xz
5291071632d3296b6d1201622fe1f54e prison-6.11.0.tar.xz
eb72c496e3e6ba0ea66aa96a81683491 qqc2-desktop-style-6.11.0.tar.xz
89a6c13f89e6ac7ae5cd36c28ea51ba4 kholidays-6.11.0.tar.xz
0f72d877a62f5697c08c3649d0dc61cc purpose-6.11.0.tar.xz
268c7ca1ba88d7cd544914760d1862a6 kcalendarcore-6.11.0.tar.xz
3b5c13512812315c913e936d8c14298d kquickcharts-6.11.0.tar.xz
29c0bab2e75f093cbfb1630f349959a3 knotifyconfig-6.11.0.tar.xz
eb41b80c24a0768b915dab171d3db5c3 kdav-6.11.0.tar.xz
56e50e418a25fd981a11553f0e313800 kstatusnotifieritem-6.11.0.tar.xz
1e757bef30a30391eafe34ac06b5d281 ksvg-6.11.0.tar.xz
cdb940239552ee0c70fab32f496bc592 ktexttemplate-6.11.0.tar.xz
ee50bf09b87548e416b60826b6086041 kuserfeedback-6.11.0.tar.xz
EOF
Na lista acima, observe que alguns arquivos foram comentados com um caractere cerquilha (#).
A entrada extra-cmake-modules foi comentada porque foi construída anteriormente no Introdução ao KDE.
O pacote de ícones é abordado separadamente em breeze-icons-6.11.0.
Quando instalar múltiplos pacotes em um conjunto de comandos sequenciais, a instalação precisa ser feita como o(a) usuário(a) root. Existem três opções gerais que podem ser usadas para se fazer isso:
Executar o conjunto inteiro de comandos sequenciais como o(a) usuário(a) root (não recomendado).
Usar o comando sudo oriundo do pacote Sudo-1.9.16p2.
Usar su -c "argumentos do comando" (aspas exigidas), que solicitará a senha do(a) root para cada interação do loop.
Uma maneira de se lidar com essa situação é a de se criar uma função curta do bash que selecione automaticamente o método apropriado. Uma vez que o comando esteja configurado no ambiente, ele não precisa ser configurado novamente.
as_root() { if [ $EUID = 0 ]; then $* elif [ -x /usr/bin/sudo ]; then sudo $* else su -c \\"$*\\" fi } export -f as_root
Se instalar em /opt
e existir
um /opt/kf6 existente ou como um diretório regular ou como
um link simbólico, ele deveria ser reinicializado (como
root
):
mv -v /opt/kf6 /opt/kf6.old && install -v -dm755 $KF6_PREFIX/{etc,share} && ln -sfv /etc/dbus-1 $KF6_PREFIX/etc && ln -sfv /usr/share/dbus-1 $KF6_PREFIX/share && ln -sfv /usr/share/polkit-1 $KF6_PREFIX/share && install -v -dm755 $KF6_PREFIX/lib && ln -sfv /usr/lib/systemd $KF6_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 # Get the file name, ignoring comments and blank lines if $(echo $line | grep -E -q '^ *$|^#' ); then continue; fi file=$(echo $line | cut -d" " -f2) pkg=$(echo $file|sed 's|^.*/||') # Remove directory packagedir=$(echo $pkg|sed 's|\.tar.*||') # Package directory name=$(echo $pkg|sed 's|-6.*$||') # Isolate package name tar -xf $file pushd $packagedir # kapidox is a python module case $name in kapidox) pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD as_root pip3 install --no-index --find-links dist --no-user kapidox popd rm -rf $packagedir continue ;; esac mkdir build cd build cmake -D CMAKE_INSTALL_PREFIX=$KF6_PREFIX \ -D CMAKE_INSTALL_LIBEXECDIR=libexec \ -D CMAKE_PREFIX_PATH=$QT6DIR \ -D CMAKE_SKIP_INSTALL_RPATH=ON \ -D CMAKE_BUILD_TYPE=Release \ -D BUILD_TESTING=OFF \ -W no-dev .. make as_root make install popd as_root rm -rf $packagedir as_root /sbin/ldconfig done < frameworks-6.11.0.md5 exit
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 estão rigidamente codificados nos arquivos instalados. Se o diretório instalado não for /usr, renomeie o diretório e crie um link simbólico:
mv -v /opt/kf6 /opt/kf6-6.11.0 ln -sfvn kf6-6.11.0 /opt/kf6
-D
CMAKE_PREFIX_PATH=$QT6DIR
: Essa chave é usada
para permitir que cmake encontre as bibliotecas Qt adequadas.
-D
CMAKE_BUILD_TYPE=Release
: Essa chave é usada para
aplicar um nível mais alto de otimização à compilação.
-D BUILD_TESTING=OFF
:
Essa chave é usada para evitar construir aplicativos de teste
e bibliotecas que não são de uso para um(a) usuário(a) final.
é uma ferramenta para verificar erros de sintaxe em arquivos XML DocBook do KDE |
|
é uma ferramenta para gerar um diagrama de dependências |
|
é uma ferramenta para gerar um diagrama de dependências para todas as estruturas essenciais de suporte de uma vez |
|
é uma ferramenta para preparar arquivos de ponto |
|
é uma ferramenta para converter um arquivo .desktop em um arquivo .json |
|
reconstrói o cache de configuração do sistema de arquivos da área de trabalho KService |
|
é 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 |
|
consolida vários pequenos serviços em um processo |
|
é um iniciador de processos mais ou menos semelhante ao famoso init usado para inicializar o UNIX |
|
é um aplicativo de linha de comando usado para recuperar informações a respeito da instalação do KDE ou de caminhos de usuário(a) |
|
executa conjuntos de comandos sequenciais kross escritos em Javascript, Python, Ruby, Java e Falcon do KDE |
|
gera plugins de pequena engenhoca para o Qt(TM) Designer |
|
é um processo de segundo plano usado para registrar as combinações de teclas e para ser notificado(a) quando a ação for deflagrada |
|
é o mecanismo ECMAScript/JavaScript do KDE |
|
é uma ferramenta para iniciar conjuntos de comandos sequenciais KJSEmbed a partir da linha de comando |
|
é um console para kjs6 |
|
é uma ferramenta de linha de comando para iniciar o aplicativo QML kpackage |
|
é uma ferramenta de linha de comando do kpackage |
|
é uma ferramenta de linha de comando para recuperar valores a partir dos arquivos de configuração do KDE |
|
inicia aplicativos via kdeinit |
|
é um serviço de telnet |
|
é um aplicativo auxiliar para lidar com a lixeira do KDE |
|
é o processo de segundo plano do gerenciador de carteira |
|
é uma ferramenta de linha de comando para escrever valores nos arquivos de configuração do KDE |
|
converte arquivos DocBook para HTML |
|
é uma ferramenta para instalar, listar e remover pacotes Plasma |
|
é um conjunto de comandos sequenciais para extrair o texto a partir de um arquivo de dicas |
|
é uma ferramenta de linha de comando para investigar dispositivos disponíveis |
O pacote Ark é uma ferramenta de arquivamento KF6. Ela é uma estrutura gráfica de interação direta com o(a) usuário(a) para o tar e ferramentas semelhantes.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.kde.org/stable/release-service/24.12.2/src/ark-24.12.2.tar.xz
Soma de verificação MD5 da transferência: fc84a8612a55f358d61de8c45fa2f217
Tamanho da transferência: 2,9 MB
Espaço em disco estimado exigido: 43 MB
Tempo de construção estimado: 0,4 UPC (usando paralelismo = 4)
KDE Frameworks-6.11.0 e libarchive-3.7.7
7zip-24.09, cpio-2.15, libarchive-3.7.7, UnRar-7.1.5 e Zip-3.0
Instale Ark executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=$KF6_PREFIX \ -D CMAKE_BUILD_TYPE=Release \ -D BUILD_TESTING=OFF \ -W no-dev .. && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
O pacote dolphin é um gerenciador de arquivos do KF6.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.kde.org/stable/release-service/24.12.2/src/dolphin-24.12.2.tar.xz
Soma de verificação MD5 da transferência: 873aa759cc10787ec4cbcdfd3914635f
Tamanho da transferência: 5,4 MB
Espaço em disco estimado exigido: 88 MB
Tempo de construção estimado: 0,8 UPC (usando paralelismo = 4)
KDE Frameworks-6.11.0 e phonon-4.12.0
baloo-widgets (para os recursos de metadados do Dolphin) e packagekit-qt
kio-extras-24.12.2 (para montar compartilhamentos SMB)
Instale dolphin executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=$KF6_PREFIX \ -D CMAKE_BUILD_TYPE=Release \ -D BUILD_TESTING=OFF \ -W no-dev .. && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
O pacote dolphin-plugins fornece plugins extras para o gerenciador de arquivos dolphin.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.kde.org/stable/release-service/24.12.2/src/dolphin-plugins-24.12.2.tar.xz
Soma de verificação MD5 da transferência: 56d47aa44323b9631d1260bba11f5b42
Tamanho da transferência: 312 KB
Espaço em disco estimado exigido: 26 MB
Tempo de construção estimado: 0,2 UPC (usando paralelismo = 4)
Instale dolphin-plugins executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=$KF6_PREFIX \ -D CMAKE_BUILD_TYPE=Release \ -D BUILD_TESTING=OFF \ -W no-dev .. && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
O pacote Kdenlive é um editor de vídeos baseado em KF6.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.kde.org/stable/release-service/24.12.2/src/kdenlive-24.12.2.tar.xz
Soma de verificação MD5 da transferência: 6efab0b88775858902f47d134078f999
Tamanho da transferência: 13 MB
Espaço em disco estimado exigido: 235 MB
Tempo de construção estimado: 1,8 UPC (usando paralelismo = 4)
KDE Frameworks-6.11.0, mlt-7.30.0 e v4l-utils-1.28.1 (tempo de execução)
Instale Kdenlive executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=$KF6_PREFIX \ -D CMAKE_BUILD_TYPE=Release \ -D BUILD_TESTING=OFF \ -W no-dev .. && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
O pacote KMix contém um aplicativo Misturador de Som baseado em KF6.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.kde.org/stable/release-service/24.12.2/src/kmix-24.12.2.tar.xz
Soma de verificação MD5 da transferência: 056b742471fdd5669c359cd854ec494e
Tamanho da transferência: 1,1 MB
Espaço em disco estimado exigido: 27 MB
Tempo de construção estimado: 0,2 UPC (usando paralelismo = 4)
Instale KMix executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=$KF6_PREFIX \ -D CMAKE_BUILD_TYPE=Release \ -D BUILD_TESTING=OFF \ -W no-dev .. && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
Khelpcenter é um aplicativo para mostrar a documentação dos Aplicativos do KDE.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.kde.org/stable/release-service/24.12.2/src/khelpcenter-24.12.2.tar.xz
Soma de verificação MD5 da transferência: 2e41c8b16cfd36a1508a7741c1cffb60
Tamanho da transferência: 4,0 MB
Espaço em disco estimado exigido: 24 MB
Tempo de construção estimado: 0,2 UPC (usando paralelismo = 4)
KDE Frameworks-6.11.0, libxml2-2.13.6 e xapian-1.4.27
kio-extras-24.12.2 (para exibir páginas de manual e páginas info)
Instale khelpcenter executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=$KF6_PREFIX \ -D CMAKE_BUILD_TYPE=Release \ -D BUILD_TESTING=OFF \ -W no-dev .. && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
O pacote Konsole é um emulador de terminal baseado em KF6.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.kde.org/stable/release-service/24.12.2/src/konsole-24.12.2.tar.xz
Soma de verificação MD5 da transferência: ceb176da5ce06121b91682af2e635d1e
Tamanho da transferência: 1,7 MB
Espaço em disco estimado exigido: 72 MB
Tempo de construção estimado: 0,6 UPC (usando paralelismo = 4)
Em ambientes não Plasma, a barra de rolagem do konsole e a alça dele não aparecem bem. Se desejado, aplique o remendo opcional ao pacote:
patch -Np1 -i ../konsole-24.12.2-scrollbar-1.patch
O remendo torna a barra de rolagem cinza claro com uma pequena borda branca. A alça é cinza escuro. Se desejado, as cores podem ser mudadas a gosto editando-se o remendo.
Instale Konsole executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=$KF6_PREFIX \ -D CMAKE_BUILD_TYPE=Release \ -D BUILD_TESTING=OFF \ -W no-dev .. && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
O pacote konversation é um cliente IRC baseado em KF6.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.kde.org/stable/release-service/24.12.2/src/konversation-24.12.2.tar.xz
Soma de verificação MD5 da transferência: a7eee4efc2a59ca2a38540c1553d88ec
Tamanho da transferência: 4,2 MB
Espaço em disco estimado exigido: 69 MB
Tempo de construção estimado: 0,7 UPC (usando paralelismo = 4)
Instale konversation executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=$KF6_PREFIX \ -D CMAKE_BUILD_TYPE=Release \ -D BUILD_TESTING=OFF \ -W no-dev .. && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
Libkexiv2 é um involucrador do KDE em torno da biblioteca Exiv2 para manipular metadados de imagens.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.kde.org/stable/release-service/24.12.2/src/libkexiv2-24.12.2.tar.xz
Soma de verificação MD5 da transferência: 936d48e2d37ff0194a9a8e3aa92a2bb8
Tamanho da transferência: 60 KB
Espaço em disco estimado exigido: 3,6 MB
Tempo de construção estimado: 0,2 UPC
Instale libkexiv2 executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=$KF6_PREFIX \ -D CMAKE_BUILD_TYPE=Release \ -D BUILD_WITH_QT6=ON \ -D BUILD_TESTING=OFF \ -W no-dev .. && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
O aplicativo plasma-activities-6.3.2 fornece componentes centrais para as atividades do KDE. Ele normalmente é construído com Plasma-6.3.2, mas é incluído aqui porque é necessário para okular-24.12.2 e kio-extras-24.12.2 se Plasma-6.3.2 ainda não foi construído.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.kde.org/stable/plasma/6.3.2/plasma-activities-6.3.2.tar.xz
Soma de verificação MD5 da transferência: c1ee6ea5e63f87819e53aae19e7175f5
Tamanho da transferência: 68 KB
Espaço em disco estimado exigido: 8,2 MB
Tempo de construção estimado: 0,2 UPC (usando paralelismo = 4)
Instale plasma-activities executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=$KF6_PREFIX \ -D CMAKE_BUILD_TYPE=Release \ -D BUILD_TESTING=OFF \ -W no-dev .. && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
A biblioteca plasma-activities-stats-6.3.2 fornece acesso aos dados de uso coletados pelo sistema KDE Activities. Ela normalmente é construída com Plasma-6.3.2, mas está incluída aqui porque é necessária para kio-extras-24.12.2.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.kde.org/stable/plasma/6.3.2/plasma-activities-stats-6.3.2.tar.xz
Soma de verificação MD5 da transferência: b59f54a9c59f5633d4141f9acd6369ce
Tamanho da transferência: 84 KB
Espaço em disco estimado exigido: 3,8 MB
Tempo de construção estimado: 0,2 UPC
Instale plasma-activities-stats executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=$KF6_PREFIX \ -D CMAKE_BUILD_TYPE=Release \ -D BUILD_TESTING=OFF \ -W no-dev .. && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
O pacote kio-extras contém componentes adicionais para aumentar a funcionalidade dos recursos e abstrações de acesso à rede de intercomunicação do KDE.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.kde.org/stable/release-service/24.12.2/src/kio-extras-24.12.2.tar.xz
Soma de verificação MD5 da transferência: ae2a8b1eb0365c6b50ae2f45cbb3541f
Tamanho da transferência: 3,4 MB
Espaço em disco estimado exigido: 97 MB
Tempo de construção estimado: 0,5 UPC (usando paralelismo = 4)
KDE Frameworks-6.11.0, kdsoap-ws-discovery-client-0.4.0, plasma-activities-stats-6.3.2 e qcoro-0.11.0
libtirpc-1.3.6, Samba-4.21.4, taglib-2.0.2, libappimage, libimobiledevice, libmtp, libplist, libssh e OpenEXR
Instale kio-extras executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=$KF6_PREFIX \ -D CMAKE_BUILD_TYPE=Release \ -D BUILD_TESTING=OFF \ -W no-dev .. && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
Okular é um visualizador de documentos para KDE. Ele consegue visualizar documentos de muitos tipos, incluindo PDF, PostScript, TIFF, DjVu, DVI, XPS e ePub.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.kde.org/stable/release-service/24.12.2/src/okular-24.12.2.tar.xz
Soma de verificação MD5 da transferência: f62fda183b2e52822c621a2d880425f8
Tamanho da transferência: 7,7 MB
Espaço em disco estimado exigido: 94 MB
Tempo de construção estimado: 1,1 UPC (usando paralelismo = 4)
KDE Frameworks-6.11.0 e plasma-activities-6.3.2
libkexiv2-24.12.2, libtiff-4.7.0, phonon-4.12.0 e Poppler-25.02.0 (construído com Qt6, exigido para suporte a PDF)
qca-2.3.9, discount, DjVuLibre, libspectre, libepub e LibZip
Instale Okular executando os seguintes comandos:
Se quaisquer das dependências opcionais estiverem instaladas, remova a referência associada na variável de ambiente SKIP_OPTIONAL.
mkdir build && cd build && SKIP_OPTIONAL='Discount;DjVuLibre;EPub;LibSpectre;LibZip' cmake -D CMAKE_INSTALL_PREFIX=$KF6_PREFIX \ -D CMAKE_BUILD_TYPE=Release \ -D BUILD_TESTING=OFF \ -D FORCE_NOT_REQUIRED_DEPENDENCIES="$SKIP_OPTIONAL" \ -W no-dev .. && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
Libkdcraw é um involucrador do KDE em torno da biblioteca libraw-0.21.3 para manipular metadados de imagens.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.kde.org/stable/release-service/24.12.2/src/libkdcraw-24.12.2.tar.xz
Soma de verificação MD5 da transferência: e9a0e5d42442ecdfe8169858c989f00c
Tamanho da transferência: 40 KB
Espaço em disco estimado exigido: 1,8 MB
Tempo de construção estimado: menos que 0,1 UPC
Instale libkdcraw executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=$KF6_PREFIX \ -D CMAKE_BUILD_TYPE=Release \ -D BUILD_TESTING=OFF \ -D QT_MAJOR_VERSION=6 \ -W no-dev .. && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
Gwenview é um visualizador de imagens rápido e fácil de usar para o KDE.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.kde.org/stable/release-service/24.12.2/src/gwenview-24.12.2.tar.xz
Soma de verificação MD5 da transferência: 7ba7f5b5465c173a23deb28345519363
Tamanho da transferência: 6,2 MB
Espaço em disco estimado exigido: 69 MB
Tempo de construção estimado: 0,7 UPC (usando paralelismo = 4)
Exiv2-0.28.5, kimageannotator-0.7.1, KDE Frameworks-6.11.0 e Little CMS-2.17
Instale Gwenview executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=$KF6_PREFIX \ -D CMAKE_BUILD_TYPE=Release \ -D BUILD_TESTING=OFF \ -W no-dev .. && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
O pacote "libkcddb" contém uma biblioteca usada para recuperar metadados de "CD" de áudio a partir da Internet.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.kde.org/stable/release-service/24.12.2/src/libkcddb-24.12.2.tar.xz
Soma de verificação MD5 da transferência: f54179c1a5a3deeda54dc6d76f3e7d3b
Tamanho da transferência: 440 KB
Espaço em disco estimado exigido: 11 MB
Tempo de construção estimado: 0,3 UPC
Instale libkcddb executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=$KF6_PREFIX \ -D CMAKE_BUILD_TYPE=Release \ -D BUILD_TESTING=OFF \ -D QT_MAJOR_VERSION=6 \ -W no-dev .. && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
O pacote K3b contém uma interface gráfica baseada em KF6 para as ferramentas de manipulação de CD/DVD Cdrtools e dvd+rw-tools. Ele também combina os recursos de muitos outros pacotes multimídia em uma interface central para fornecer um aplicativo simples de operar que consegue ser usado para lidar com muitos dos teus requisitos de gravação e formatação de CD/DVD. Ele é usado para criar CDs de áudio, dados, vídeo e modo misto, bem como copiar, extrair e gravar CDs e DVDs.
Embora o "k3b" possa ser usado para copiar quase qualquer "DVD" para uma mídia semelhante, ele não fornece uma maneira de copiar ou reproduzir um "DVD" de camada dupla em uma mídia de camada única. Claro, não existe um aplicativo em qualquer plataforma que consiga fazer uma duplicata exata de um "DVD" de camada dupla em um disco de camada única; existem aplicativos em algumas plataformas que conseguem comprimir os dados em um "DVD" de camada dupla para caber em um "DVD" de camada única produzindo uma imagem duplicada, mas comprimida. Se precisar copiar o conteúdo de um "DVD" de camada dupla para uma mídia de camada única, [então] você possivelmente queira olhar o pacote "RMLCopyDVD".
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.kde.org/stable/release-service/24.12.2/src/k3b-24.12.2.tar.xz
Soma de verificação MD5 da transferência: 87d18a897ba0d8442bf48e20d005c3ad
Tamanho da transferência: 10 MB
Espaço em disco estimado exigido: 140 MB
Tempo de construção estimado: 1,3 UPC (usando paralelismo = 4)
KDE Frameworks-6.11.0, libkcddb-24.12.2, libsamplerate-0.2.2 e shared-mime-info-2.4
A unidade de "CD"/"DVD" é detectada em tempo de execução usando o "UDisks-2.10.1", que precisa, por esse motivo, ser instalado antes de executar o "k3b".
libburn-1.5.6, libdvdread-6.1.3 e taglib-2.0.2
Existem aplicativos provenientes de três pacotes que o "k3b" procurará em tempo de execução: "Cdrtools-3.02a09" (exigido para queimar mídia de "CD-ROM"), "dvd+rw-tools-7.1" (exigido para queimar ou formatar mídia "DVD") e "Cdrdao-1.2.4" (exigido para queimar mídia de "CD-ROM" em modo "Disk At Once" ("DAO")). Se não precisar do recurso fornecido por nenhum dos três pacotes, [então] você não tem de instalá-los. Entretanto, uma mensagem de aviso será gerada toda vez que você executar o aplicativo "k3b" se algum não estiver instalado.
FLAC-1.5.0, LAME-3.100, libmad-0.15.1b, libsndfile-1.2.2, libvorbis-1.3.7 e Musepack (libmpcdec)
Instale K3b executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=$KF6_PREFIX \ -D CMAKE_BUILD_TYPE=Release \ -D BUILD_TESTING=OFF \ -W no-dev .. && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
Este capítulo não forneceu instruções para todos os pacotes disponíveis na Compilação de Software do KDE (Gear do KDE). Os pacotes incluídos foram selecionados baseados no que a maioria das pessoas gostaria de usar em um computador padrão de área de trabalho.
Para uma lista completa dos pacotes disponíveis, dê uma olhada nos servidores do KDE6 em https://download.kde.org/stable/release-service/24.12.2/src.
Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/Further_KDE_Packages
Alguns pacotes adicionais que compensa mencionar são:
Juk: Um reprodutor de música leve.
Dragon: Um reprodutor de vídeo.
Kcalc: Uma calculadora científica.
Kwalletmanager: Um aplicativo de gerenciamento de credenciais.
Marble: Um programa de mapas globais.
Spectacle: um programa de captura de tela.
Uma variedade (cerca de quarenta (40)) de jogos do KDE, incluindo: kpat, kfourinline e kmines.
Alguns pacotes exigirão dependências adicionais. Para determinar quais dependências são necessárias, execute a partir do topo da árvore do fonte:
cmake -W no-dev -LH .
Observe que isso cria alguns arquivos no topo do diretório fonte, de forma que é melhor reextrair um fonte limpo antes de prosseguir com a construção.
A maioria desses pacotes pode ser construída com as instruções padrão do KDE6:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=$KF6_PREFIX \ -D CMAKE_BUILD_TYPE=Release \ -D BUILD_TESTING=OFF \ -W no-dev .. && make
E como o(a) usuário(a) root
:
make install
Plasma do KDE é um ambiente de área de trabalho construído usando o Frameworks do KDE e QML que executa em cima de uma pilha de gráficos totalmente acelerada por hardware usando Qt, QtQuick e um gráfico de cena OpenGL(-ES).
Nenhuma configuração adicional é necessária antes de construir o Plasma do KDE porque ele usa a mesma configuração que o Frameworks do KDE usa.
Esse pacote fornece arquivos qml complementares para a estrutura Kirigami.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.kde.org/stable/kirigami-addons/kirigami-addons-1.4.0.tar.xz
Soma de verificação MD5 da transferência: 27d23279ee0ad5252a862c2671bc05ad
Tamanho da transferência: 1,3 MB
Espaço em disco estimado exigido: 40 MB
Tempo de construção estimado: 0,6 UPC (Usando paralelismo=4)
Instale kirigami-addons executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=$KF6_PREFIX \ -D CMAKE_BUILD_TYPE=Release \ -D BUILD_TESTING=OFF \ .. && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
Esse pacote é um envolucrador estilo Qt para PulseAudio-17.0. Ele permite consultas e manipulações de vários objetos do PulseAudio, como Sinks, Fontes e Fluxos. Ele não encapsula o conjunto completo de recursos da libpulse.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.kde.org/stable/pulseaudio-qt/pulseaudio-qt-1.7.0.tar.xz
Soma de verificação MD5 da transferência: 247fcc8c7876f84c8a13d1601d388fc2
Tamanho da transferência: 40 KB
Espaço em disco estimado exigido: 5,8 MB
Tempo de construção estimado: 0,1 UPC
Instale pulseaudio-qt executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=$KF6_PREFIX \ -D CMAKE_PREFIX_PATH=$QT6DIR \ -D CMAKE_SKIP_INSTALL_RPATH=ON \ -D CMAKE_BUILD_TYPE=Release \ -D BUILD_TESTING=OFF \ .. && make
Agora como o(a) usuário(a) root
:
make install
Plasma do KDE é uma coleção de pacotes baseados no Frameworks do KDE e QML. Eles implementam o Ambiente de Exibição do KDE (Plasma).
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
As instruções abaixo constroem todos os pacotes do Plasma em uma etapa usando um conjunto de comandos sequenciais do Bash.
Transferência (HTTP): https://download.kde.org/stable/plasma/6.3.2
Soma de verificação MD5 da transferência: Veja-se Abaixo
Tamanho da transferência: 250 MB
Espaço em disco estimado exigido: 2,2 GB (495 MB instalado)
Tempo de construção estimado: 15 UPC (usando paralelismo = 8)
Boost-1.87.0, FFmpeg-7.1, GTK-3.24.48, KDE Frameworks-6.11.0, kirigami-addons-1.4.0, libdisplay-info-0.2.0, libpwquality-1.4.5, libqalculate-5.5.1, libnl-3.11.0, libxcvt-0.1.3, libxkbcommon-1.8.0, Mesa-24.3.4 construído com Wayland-1.23.0, opencv-4.11.0, phonon-4.12.0, pipewire-1.2.7, pulseaudio-qt-1.7.0, qca-2.3.9, qcoro-0.11.0, sassc-3.6.2, taglib-2.0.2, xdotool-3.20211022.1 e Controlador Evdev do Xorg-2.11.0
gsettings-desktop-schemas-47.1, libcanberra-0.30, libinput-1.27.1, libpcap-1.10.5, libwacom-2.14.0 e Controlador Wacom do Xorg-1.2.3 (para wacomtablet), Linux-PAM-1.7.0, lm-sensors-3-6-0, oxygen-icons-6.0.0, pciutils-3.13.0, power-profiles-daemon-0.30, e os seguintes módulos Python: psutil-7.0.0, pygdbmi-0.11.0.0, sentry-sdk-2.22.0, urllib3-2.3.0 (se não estiverem instalados, eles serão baixados e instalados pelo procedimento de construção do drkonqi)
AccountsService-23.13.9, breeze-icons-6.11.0, kio-extras-24.12.2, smartmontools-7.4, xdg-desktop-portal-1.20.0 e Xwayland-24.1.6
AppStream-1.0.4 (construído com -qt=true), GLU-9.0.3, ibus-1.5.31, qtwebengine-6.8.2, KDevPlatform, libgps, libhybris, packagekit-qt, Qapt, SCIM e socat (para pam_kwallet)
A maneira mais fácil de obter os pacotes do Plasma do KDE é a de usar um wget para buscá-los todos de uma vez:
url=https://download.kde.org/stable/plasma/6.3.2/
wget -r -nH -nd -A '*.xz' -np $url
As opções usadas aqui são:
-r recursivamente pelos diretórios descendentes
-nH desabilita a geração de diretórios prefixados pelo anfitrião
-nd não cria uma hierarquia de diretórios
-A '*.xz' apenas obtém os arquivos *.xz
-np não obtém os diretórios pais
Existe um arquivo baixado, spectacle-6.3.2.1.tar.xz, que está rotulado incorretamente. Quando extraído, o diretório de nível superior não corresponde ao nome do tarball. Nós precisamos tornar esse arquivo consistente agora:
mv spectacle-6.3.2.1.tar.xz spectacle-6.3.2.tar.xz
A ordem de construção dos arquivos é importante devido às dependências internas. Crie a lista de arquivos na ordem correta conforme segue:
cat > plasma-6.3.2.md5 << "EOF"
34c760dc07f498d800c78013e89720b8 kdecoration-6.3.2.tar.xz
1a23a3c130d5a73e851556638e05c86a libkscreen-6.3.2.tar.xz
f8d52a88a1b4bb492fb4c590d93efd9f libksysguard-6.3.2.tar.xz
7d88c11927b7254a48c239f8ff833161 breeze-6.3.2.tar.xz
7c23c6cca6ae3b75c7d6e338d655f6be breeze-gtk-6.3.2.tar.xz
f56e4b5f766ddf07974646305e32f86e layer-shell-qt-6.3.2.tar.xz
c1ee6ea5e63f87819e53aae19e7175f5 plasma-activities-6.3.2.tar.xz
d98a720f6c7bf6b18f68eaa0842454c9 libplasma-6.3.2.tar.xz
97d0ef783470792339b0ab04325bc374 kscreenlocker-6.3.2.tar.xz
cb1b7c21781685de53e066ed83f0ec88 kinfocenter-6.3.2.tar.xz
153b3403440f5376a170055b3e0e7740 kglobalacceld-6.3.2.tar.xz
425782c861e1b1bf0bb49a782b402cd6 kwayland-6.3.2.tar.xz
e4c54188e25914eb0d0e5693b0e6332c kwin-6.3.2.1.tar.xz
#309881e87eab586be5448455f4d81b19 kwin-6.3.2.tar.xz
0c0eaea9839bff9b0ac70e09814618f2 plasma5support-6.3.2.tar.xz
b59f54a9c59f5633d4141f9acd6369ce plasma-activities-stats-6.3.2.tar.xz
dbdc3c9f45d0e0e09ab2b6cf6b6b75d7 kpipewire-6.3.2.tar.xz
b83418536dead5549a9c87eaf7b1fe4d plasma-workspace-6.3.2.tar.xz
5737bfdf712844e76b0da0acedd8f339 plasma-disks-6.3.2.tar.xz
62d50988f3833ed98e22a0c6fbb805ff bluedevil-6.3.2.tar.xz
dfd47627bc8da5c5b53475214a648b28 kde-gtk-config-6.3.2.tar.xz
06577237fc872fb7659b11e829594144 kmenuedit-6.3.2.tar.xz
77dba21438203d747f9361ef91e3f27b kscreen-6.3.2.tar.xz
2b880797d9e6ccd1cba40285436b1789 kwallet-pam-6.3.2.tar.xz
bf7edbc9fd326ab2764e1244e6835ffa kwrited-6.3.2.tar.xz
7d787ff90098760bf8eb5db7fd833bc8 milou-6.3.2.tar.xz
1b9dd5ae4ebf274bc282d2636af50fbb plasma-nm-6.3.2.tar.xz
281ec80a71b3942a8d42a5132682f1bc plasma-pa-6.3.2.tar.xz
0f225ead05e73c43599a66cd6d796cc6 plasma-workspace-wallpapers-6.3.2.tar.xz
5bdd87252dc6713f4b9ebd44e2caaf4e polkit-kde-agent-1-6.3.2.tar.xz
29608ea71ab87f3491adcb5584ca8dc9 powerdevil-6.3.2.tar.xz
f323dda4120302a0759fe81679c9dbd6 plasma-desktop-6.3.2.tar.xz
4353d584447fb28011637ed3d85b4920 kgamma-6.3.2.tar.xz
e278489c407a411270f70d945f6d6a51 ksshaskpass-6.3.2.tar.xz
#bf4d0d25e309e930cbf867b0f4460e51 plasma-sdk-6.3.2.tar.xz
2b4b42f97b187209a6d93f7167b793ca sddm-kcm-6.3.2.tar.xz
#05dd805ad6eaaa6563ac16ef413f8ad3 discover-6.3.2.tar.xz
#037192907099c3a3edcceee135336040 breeze-grub-6.3.2.tar.xz
#5e2b70c2282b5597f86008e3bf27b632 breeze-plymouth-6.3.2.tar.xz
a7846a4612e60ac416b1db227d208e95 kactivitymanagerd-6.3.2.tar.xz
477b200bc4bc43344529a835c5e607a3 plasma-integration-6.3.2.tar.xz
#9b3e41e24234f6c01f64739babcede7a plymouth-kcm-6.3.2.tar.xz
79cea0f52385ce4bb8448a0f7b17f212 xdg-desktop-portal-kde-6.3.2.tar.xz
6fd748a372f52c33ce869b58b7d5fe18 drkonqi-6.3.2.tar.xz
ed431307e4784a87bd24576df4394e6e plasma-vault-6.3.2.tar.xz
#6ed2a9395f7e569ca38875c44db408db plasma-browser-integration-6.3.2.tar.xz
147069fdc10dea3a7a7701df9fd2d9ee kde-cli-tools-6.3.2.tar.xz
3a846d5cf8d923780e21f011ae2ceb17 systemsettings-6.3.2.tar.xz
8b43cda434ae5d88c9436e3d4b793164 plasma-thunderbolt-6.3.2.tar.xz
#5c1c23af1627d25842bfc28dc56fe048 plasma-mobile-6.3.2.tar.xz
#9a07133320259913c5a826b5256f86d8 plasma-nano-6.3.2.tar.xz
488fc23da31e10dd7bc2a1e36ee6716d plasma-firewall-6.3.2.tar.xz
602917d54289a02a6711f215dae470bb plasma-systemmonitor-6.3.2.tar.xz
361d1a0da813fd82bd36e11fcc4b157b qqc2-breeze-style-6.3.2.tar.xz
b26d38fb9f9d83b27bcafaec1597843a ksystemstats-6.3.2.tar.xz
2102f13838581d36a8247e2b54fff369 oxygen-sounds-6.3.2.tar.xz
ba8261586695cccdb01a6de8d400281c kdeplasma-addons-6.3.2.tar.xz
#b32d6d4486fd549d61aeff96c1dfff85 flatpak-kcm-6.3.2.tar.xz
8d3998b1e171ee55c91a419cc8ba6319 plasma-welcome-6.3.2.tar.xz
faf86ec8c776cd351c1a96ed70328da3 ocean-sound-theme-6.3.2.tar.xz
f7a577b9baf316504e2ab9481f376008 print-manager-6.3.2.tar.xz
7d06df172f05b46ea6e97ae41f6e8be7 wacomtablet-6.3.2.tar.xz
#8575d2950cff501301f92426145e3056 kwayland-integration-6.3.2.tar.xz
#3679989f3a64f9c5b976175267119334 krdp-6.3.2.tar.xz
b812507c2d6720a1a9aca4e38b993f68 oxygen-6.3.2.tar.xz
#99b5985ac398900121545d03ab54530e plasma-dialer-6.3.2.tar.xz
#ffeddc23f3e90de981301940b21550d0 spacebar-6.3.2.tar.xz
e9fc02ced53504b97341e0f248c63ee8 spectacle-6.3.2.tar.xz
EOF
Na lista acima, vários arquivos estão comentados com um caractere cerquilha (#).
O pacote plasma-sdk é opcional e usado para desenvolvimento de software.
O pacote de descoberta exige que AppStream-1.0.4 seja construído com a chave -D qt=true.
Os pacotes breeze-grub, breeze-plymouth e plymouth-kcm acima são todos para suporte personalizado do Plymouth, que foi projetado para ser executado dentro de um disco inicial RAM durante a inicialização (veja-se “A respeito do initramfs”).
O pacote plasma-browser-integration foi projetado para implementar integração do navegador para Plasma no Mozilla Firefox e no Google Chrome. O pacote constrói, mas só é útil se você quiser que esses navegadores sejam integrados ao shell de uma forma que permita que você veja (e controle) transferências a partir da área de notificações do Plasma, bem como que permita que você pesquise o histórico do navegador no KDE Runner. Observe que você também precisa instalar uma extensão do navegador para isso funcionar. Para mais detalhes, veja-se a página wiki do KDE Plasma acerca de integração do navegador.
O pacote krdp é usado para permitir que um servidor RDP seja executado enquanto usar Plasma. Esse recurso exige a versão 2.x do FreeRDP, que não está no BLFS.
O pacote plasma-nano é usado para sistemas embarcados.
Os pacotes plasma-mobile, plasma-dialer e spacebar fornecem funcionalidade de telefone para o Plasma.
O pacote flatpak-kcm é para suporte de gerenciamento de aplicativos flatpak.
O aplicativo kwayland-integration exige suporte plasma5.
Quando instalar múltiplos pacotes em um conjunto de comandos sequenciais, a instalação precisa ser feita como o(a) usuário(a) root. Existem três opções gerais que podem ser usadas para se fazer isso:
Executar o conjunto inteiro de comandos sequenciais como o(a) usuário(a) root (não recomendado).
Usar o comando sudo oriundo do pacote Sudo-1.9.16p2.
Usar su -c "argumentos do comando" (aspas exigidas), que solicitará a senha do(a) root para cada interação do loop.
Uma maneira de se lidar com essa situação é a de se criar uma função curta do bash que selecione automaticamente o método apropriado. Uma vez que o comando esteja configurado no ambiente, ele não precisa ser configurado novamente.
as_root() { if [ $EUID = 0 ]; then $* elif [ -x /usr/bin/sudo ]; then sudo $* else su -c \\"$*\\" fi } export -f as_root
Primeiro, inicie um sub shell que sairá em caso de erro:
bash -e
Instale todos os pacotes executando os seguintes comandos:
while read -r line; do # Get the file name, ignoring comments and blank lines if $(echo $line | grep -E -q '^ *$|^#' ); then continue; fi file=$(echo $line | cut -d" " -f2) pkg=$(echo $file|sed 's|^.*/||') # Remove directory packagedir=$(echo $pkg |sed 's|\.tar.*||') # Source directory tar -xf $file pushd $packagedir mkdir build cd build cmake -D CMAKE_INSTALL_PREFIX=$KF6_PREFIX \ -D CMAKE_INSTALL_LIBEXECDIR=libexec \ -D CMAKE_BUILD_TYPE=Release \ -D BUILD_QT5=OFF \ -D BUILD_TESTING=OFF \ -W no-dev .. && make as_root make install popd as_root rm -rf $packagedir as_root /sbin/ldconfig done < plasma-6.3.2.md5 exit
Se você não configurou $KF5_PREFIX
como /usr
, crie links
simbólicos para permitir que gerenciadores de tela encontrem
o Plasma e para permitir que
XDG Desktop Portal seja detectado. Como o(a) usuário(a)
root
:
# Setup xsessions (X11 sessions) install -dvm 755 /usr/share/xsessions cd /usr/share/xsessions [ -e plasma.desktop ] || ln -sfv $KF6_PREFIX/share/xsessions/plasmax11.desktop # Setup wayland-sessions install -dvm 755 /usr/share/wayland-sessions cd /usr/share/wayland-sessions [ -e plasmawayland.desktop ] || ln -sfv $KF6_PREFIX/share/wayland-sessions/plasma.desktop # Setup xdg-desktop-portal install -dvm 755 /usr/share/xdg-desktop-portal cd /usr/share/xdg-desktop-portal [ -e kde-portals.conf ] || ln -sfv $KF6_PREFIX/share/xdg-desktop-portal/kde-portals.conf # Setup kde portal install -dvm 755 /usr/share/xdg-desktop-portal/portals cd /usr/share/xdg-desktop-portal/portals [ -e kde.portal ] || ln -sfv $KF6_PREFIX/share/xdg-desktop-portal/portals/kde.portal
Se você construiu o Plasma com o suporte Linux PAM recomendado, crie os
necessários arquivos de configuração executando os
seguintes comandos como o(a) usuário(a) root
:
cat > /etc/pam.d/kde << "EOF"# Begin /etc/pam.d/kde auth requisite pam_nologin.so auth required pam_env.so auth required pam_succeed_if.so uid >= 1000 quiet auth include system-auth account include system-account password include system-password session include system-session # End /etc/pam.d/kde
EOF cat > /etc/pam.d/kde-np << "EOF"# Begin /etc/pam.d/kde-np auth requisite pam_nologin.so auth required pam_env.so auth required pam_succeed_if.so uid >= 1000 quiet auth required pam_permit.so account include system-account password include system-password session include system-session # End /etc/pam.d/kde-np
EOF cat > /etc/pam.d/kscreensaver << "EOF"# Begin /etc/pam.d/kscreensaver auth include system-auth account include system-account # End /etc/pam.d/kscreensaver
EOF
Você consegue iniciar o Plasma a partir de um TTY, usando o xinit-1.4.3.
Para iniciar o Plasma usando o xinit-1.4.3, execute os seguintes comandos:
cat > ~/.xinitrc << "EOF"
dbus-launch --exit-with-x11 $KF6_PREFIX/bin/startplasma-x11
EOF
startx
A sessão do X inicia no primeiro terminal virtual não usado, normalmente o vt7. Você consegue comutar para outro vtn pressionando simultaneamente as teclas Ctrl-Alt-Fn (n=1, 2, ...). Para comutar de volta para a sessão do X, normalmente iniciada no vt7, use Ctrl-Alt-F7. O vt onde o comando startx foi executado exibirá muitas mensagens, incluindo mensagens de iniciação do X, aplicativos iniciados automaticamente com a sessão e, eventualmente, algumas mensagens de aviso e erro. Você possivelmente prefira redirecionar essas mensagens para um arquivo de registro, que não apenas manterá o vt inicial organizado, mas também poderá ser usado para fins de depuração. Isso pode ser feito iniciando-se o X com:
startx &> ~/x-session-errors
Ao desligar ou reinicializar, as mensagens de desligamento aparecem no terminal virtual onde o X estava executando. Se você desejar ver essas mensagens, pressione simultaneamente as teclas Alt-F7 (assumindo que o X estava executando no terminal virtual 7).
O objetivo desta seção é o construir uma área de trabalho do "GNOME".
O pacote Gcr contém bibliotecas usadas para exibir certificados e acessar armazenamentos de chaves. Ele também fornece o visualizador para arquivos criptográficos na área de trabalho do GNOME.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/gcr/3.41/gcr-3.41.2.tar.xz
Soma de verificação MD5 da transferência: 40a754ba44d5e95e4d07656d6302900c
Tamanho da transferência: 1012 KB
Espaço em disco estimado exigido: 33 MB (com testes)
Tempo de construção estimado: 0,2 UPC (com testes; ambos usando paralelismo=4)
GLib-2.82.5 (recomendado GObject Introspection), libgcrypt-1.11.0 e p11-kit-0.25.5
GnuPG-2.4.7, GTK-3.24.48, libsecret-0.21.6, libxslt-1.1.42 e Vala-0.56.17
Instale o Gcr executando os seguintes comandos:
sed -i 's:"/desktop:"/org:' schema/*.xml && mkdir build && cd build && meson setup --prefix=/usr \ --buildtype=release \ -D gtk_doc=false \ -D ssh_agent=false \ .. && ninja
Se você tiver Gi-DocGen-2025.3 instalado e desejar construir a documentação da API para esse pacote, emita:
sed -e "/install_dir/s@,\$@ / 'gcr-3.41.2'&@" \ -i ../docs/*/meson.build && meson configure -D gtk_doc=true && ninja
Para testar os resultados, emita: ninja test. Os testes precisam ser executados a partir de um Terminal do X ou similar.
Agora, como o(a) usuário(a) root
:
ninja install
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
-D ssh_agent=false
:
Evita um conflito com Gcr-4.3.1. Omita essa chave se você não
planeja instalar o Gcr-4.3.1 e deseja usar o gcr-ssh-agent.
-D gtk=false
: Use essa chave se
você não tiver instalado o GTK-3.24.48. Observe que o
gcr-viewer não será
instalado se isso for passado para o meson.
-D gtk_doc=true
: Permite
construir esse pacote sem Gi-DocGen-2025.3 instalado. Se
você tiver Gi-DocGen-2025.3 instalado e desejar
reconstruir e instalar a documentação da API, um comando
meson configure
reconfigurará essa opção.
O pacote Gcr contém bibliotecas usadas para exibir certificados e acessar armazenamentos de chaves. Ele também fornece o visualizador para arquivos criptográficos na área de trabalho do GNOME.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/gcr/4.3/gcr-4.3.1.tar.xz
Soma de verificação MD5 da transferência: d8a71f8cb0390bc353f52ded3f9a6733
Tamanho da transferência: 716 KB
Espaço em disco estimado exigido: 30 MB (com testes)
Tempo de construção estimado: 0,1 UPC (com testes; ambos usando paralelismo=4)
GLib-2.82.5 (recomendado GObject Introspection), libgcrypt-1.11.0 e p11-kit-0.25.5
GnuPG-2.4.7, GTK-4.16.12, libsecret-0.21.6, libxslt-1.1.42, OpenSSH-9.9p2 e Vala-0.56.17
Ambos, gcr-3 e gcr-4, são co instaláveis. Essa versão do pacote é usada para suportar aplicativos GTK-4, como o gnome-shell-47.4e Epiphany-47.3.1.
Instale o Gcr executando os seguintes comandos:
mkdir build && cd build && meson setup --prefix=/usr \ --buildtype=release \ -D gtk_doc=false \ .. && ninja
Se você tiver Gi-DocGen-2025.3 instalado e desejar construir a documentação da API para esse pacote, emita:
sed -e "/install_dir/s@,\$@ / 'gcr-4.3.1'&@" \ -i ../docs/*/meson.build && meson configure -D gtk_doc=true && ninja
Para testar os resultados, emita: ninja test. Os testes precisam ser executados a partir de um Terminal do X ou similar.
Agora, como o(a) usuário(a) root
:
ninja install
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
-D gtk4=false
: Use essa chave se
você não tiver instalado GTK-4.16.12. Observe que gcr-viewer-gtk4 não será instalado se
isso for passado para meson.
-D ssh_agent=false
: Use essa
chave se você não tiver instalado OpenSSH-9.9p2 e desejar
desabilitar os recursos de ssh.
-D gtk_doc=true
: Permite
construir esse pacote sem Gi-DocGen-2025.3 instalado. Se
você tiver Gi-DocGen-2025.3 instalado e desejar
reconstruir e instalar a documentação da API, um comando
meson configure
reconfigurará essa opção.
-D crypto=gnutls
: Use essa chave
se você tiver GnuTLS-3.8.9 instalado e desejar usá-lo em
vez de libgcrypt-1.11.0.
O pacote GSettings Desktop Schemas contém uma coleção de esquemas GSettings para configurações compartilhadas por vários componentes de uma Área de Trabalho do GNOME.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/gsettings-desktop-schemas/47/gsettings-desktop-schemas-47.1.tar.xz
Soma de verificação MD5 da transferência: cf4431e4d8ada7a6e73a46f80f553f06
Tamanho da transferência: 788 KB
Espaço em disco estimado exigido: 21 MB
Tempo de construção estimado: menos que 0,1 UPC
GLib-2.82.5 (com GObject Introspection)
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
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
sed ... schemas/*.in: Esse comando corrige algumas entradas obsoletas nos modelos de esquema.
O pacote libsecret contém uma biblioteca baseada em GObject para acessar a API de Serviço Secreto.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/libsecret/0.21/libsecret-0.21.6.tar.xz
Soma de verificação MD5 da transferência: e7139fca939c50309eba74280e7048ac
Tamanho da transferência: 204 KB
Espaço em disco estimado exigido: 10 MB (com testes)
Tempo de construção estimado: 0,3 UPC (com testes)
GLib-2.82.5 (GObject Introspection recomendado)
libgcrypt-1.11.0 (ou GnuTLS-3.8.9, para criptografia) e Vala-0.56.17
Gi-DocGen-2025.3 e docbook-xml-4.5, docbook-xsl-nons-1.79.2, libxslt-1.1.42 (para construir páginas de manual) e Valgrind-3.24.0 (pode ser usado em testes)
D-Bus Python-1.3.2, Gjs-1.82.1, PyGObject-3.50.0 (módulo do Python 3) e tpm2-tss
Qualquer pacote que exija a libsecret espera que o GNOME Keyring esteja presente em tempo de execução.
Instale o libsecret executando os seguintes comandos:
mkdir bld && cd bld && meson setup --prefix=/usr \ --buildtype=release \ -D gtk_doc=false \ .. && ninja
Se você tiver Gi-DocGen-2025.3 instalado e desejar construir a documentação da API para esse pacote, emita:
sed "s/api_version_major/'0.21.6'/" \ -i ../docs/reference/libsecret/meson.build && meson configure -D gtk_doc=true && ninja
Agora, como o(a) usuário(a) root
:
ninja install
Para testar os resultados, emita: dbus-run-session ninja test.
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
-D gtk_doc=false
:
Permite construir esse pacote sem Gi-DocGen-2025.3
instalado. Se você tiver Gi-DocGen-2025.3 instalado e
desejar reconstruir e instalar a documentação da API, um
comando meson
configure reconfigurará essa opção.
-D manpage=false
: Use essa chave
se você não tiver instalado os pacotes libxslt-1.1.42 e
DocBook.
-D crypto=gnutls
: Use essa chave
se você quiser usar GnuTLS-3.8.9 para criptografia em vez de
libgcrypt-1.11.0.
-D crypto=disabled
: Use essa
chave se você não tiver GnuTLS-3.8.9 ou libgcrypt-1.11.0
instalado. Observe que desabilitar o suporte de encriptação
de transporte fazendo isso não é recomendado.
O pacote rest contém uma biblioteca que foi projetada para tornar mais fácil acessar serviços web que afirmam ser "RESTful". Inclui envolucradores convenientes para libsoup e libxml para tornar o uso remoto da API RESTful mais fácil.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/rest/0.9/rest-0.9.1.tar.xz
Soma de verificação MD5 da transferência: b997b83232be3814a1b78530c5700df9
Tamanho da transferência: 72 KB
Espaço em disco estimado exigido: 3,2 MB (com testes)
Tempo de construção estimado: 0,1 UPC (com testes)
JSON-GLib-1.10.6, libsoup-3.6.4 e make-ca-1.15
GLib-2.82.5 (com GObject Introspection)
Gi-DocGen-2025.3, libadwaita-1.6.4 e gtksourceview5-5.14.2 (para construir a demonstração) e Vala-0.56.17
Uma conexão com a Internet é necessária para alguns testes desse pacote. A loja de certificados do sistema possivelmente precise ser configurada com make-ca-1.15 antes de se testar esse pacote
Instale o rest executando os seguintes comandos:
mkdir build && cd build && meson setup --prefix=/usr \ --buildtype=release \ -D examples=false \ -D gtk_doc=false \ .. && ninja
Se você tiver Gi-DocGen-2025.3 instalado e desejar construir a documentação da API para esse pacote, emita:
sed "/output/s/librest-1.0/rest-0.9.1/" -i ../docs/meson.build && meson configure -D gtk_doc=true && ninja
Para testar os resultados, emita: ninja test.
Agora, como o(a) usuário(a) root
:
ninja install
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
-D gtk_doc=false
:
Permite construir esse pacote sem Gi-DocGen-2025.3
instalado. Se você tiver Gi-DocGen-2025.3 instalado e
desejar reconstruir e instalar a documentação da API, um
comando meson
configure reconfigurará essa opção.
-D examples=false
:
Remova essa opção se libadwaita-1.6.4 e gtksourceview5-5.14.2 estiverem
instalados e você desejar construir o aplicativo de
demonstração fornecido por esse pacote.
-D vapi=true
: Use essa chave se
Vala-0.56.17 estiver instalado e você
desejar construir as ligações Vala fornecidas por esse
pacote.
O pacote Totem PL Parser contém uma biblioteca simples baseada em GObject usada para analisar vários formatos de lista de reprodução.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/totem-pl-parser/3.26/totem-pl-parser-3.26.6.tar.xz
Soma de verificação MD5 da transferência: 69dc2cf0e61e6df71ed45156b24b14da
Tamanho da transferência: 1,4 MB
Espaço em disco estimado exigido: 9,6 MB (com testes)
Tempo de construção estimado: 0,1 UPC (com testes)
GLib-2.82.5 (com GObject Introspection), libarchive-3.7.7 e libgcrypt-1.11.0
CMake-3.31.5, GTK-Doc-1.34.0, Gvfs-1.56.1 (para alguns testes), LCOV e libquvi >= 0.9.1 e libquvi-scripts - se eles estiverem instalados, então lua-socket (git) é necessário para os testes
Uma conexão com a Internet é necessária para alguns testes desse pacote. A loja de certificados do sistema possivelmente precise ser configurada com make-ca-1.15 antes de se testar esse pacote
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
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
O pacote VTE contém uma pequena engenhoca de terminal virtual para aplicativos GTK.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://gitlab.gnome.org/GNOME/vte/-/archive/0.78.4/vte-0.78.4.tar.gz
Soma de verificação MD5 da transferência: cdfc61b7021a43841845b8fb1593d28c
Tamanho da transferência: 792 KB
Espaço em disco estimado exigido: 22 MB (com testes)
Tempo de construção estimado: 0,4UPC (usando paralelismo = 4; com os testes)
GTK-3.24.48, libxml2-2.13.6 e pcre2-10.45
ICU-76.1, GnuTLS-3.8.9, GLib-2.82.5 (com GObject Introspection), GTK-4.16.12 e Vala-0.56.17
Instale o VTE executando os seguintes comandos:
mkdir build && cd build && meson setup --prefix=/usr --buildtype=release .. && ninja
Se você tiver Gi-DocGen-2025.3 instalado e desejar construir a documentação da API para esse pacote, emita:
sed -e "/docdir =/s@\$@/ 'vte-0.78.4'@" \ -i ../doc/reference/meson.build && meson configure -D docs=true && ninja
Para testar os resultados, emita: ninja test.
Agora, como o(a) usuário(a) root
:
ninja install && rm -v /etc/profile.d/vte.*
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
rm -v /etc/profile.d/vte.*: Esse comando remove dois arquivos instalados em /etc/profile.d que não tem uso em um sistema LFS.
-D gnutls=false
: Adicione essa
chave se você não quiser habilitar o suporte GnuTLS.
-D vapi=false
: Adicione essa
chave se você não quiser habilitar ligações Vala.
-D gtk4=false
: Adicione essa
chave se você não quiser construir a versão GTK-4 do VTE.
é um aplicativo de teste para as bibliotecas do VTE |
|
é um aplicativo de teste para a versão GTK-4 das bibliotecas do VTE |
|
é uma biblioteca que implementa uma pequena engenhoca de emulador de terminal para o GTK+ 3 |
|
é uma biblioteca que implementa uma pequena engenhoca de emulador de terminal para GTK-4 |
O pacote Yelp XSL contém folhas de estilo XSL que são usadas pelo navegador de ajuda do Yelp para formatar documentos Docbook e Mallard.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/yelp-xsl/42/yelp-xsl-42.1.tar.xz
Soma de verificação MD5 da transferência: c41858c78e34bb8b68a535657a3e15d9
Tamanho da transferência: 652 KB
Espaço em disco estimado exigido: 10 MB
Tempo de construção estimado: menos que 0,1 UPC
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
O Geocode GLib é uma biblioteca conveniente para as APIs do Yahoo! Place Finder. O serviço da web Place Finder te permite fazer geocodificação (encontrar longitude e latitude a partir de um endereço) bem como geocodificação reversa (encontrar um endereço a partir de coordenadas).
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/geocode-glib/3.26/geocode-glib-3.26.4.tar.xz
Soma de verificação MD5 da transferência: 4c0dcdb7ee1222435b20acd3d7b68cd1
Tamanho da transferência: 76 KB
Espaço em disco estimado exigido: 4,6 MB (com testes)
Tempo de construção estimado: 0,1 UPC (com testes)
JSON-GLib-1.10.6 e libsoup-3.6.4
GLib-2.82.5 (com GObject Introspection)
Instale o Geocode GLib executando os seguintes comandos:
mkdir build && cd build && meson setup --prefix=/usr \ --buildtype=release \ -D enable-gtk-doc=false \ -D soup2=false \ .. && ninja
Para testar os resultados, emita: LANG=C ninja test. Um teste
falha porque precisa da localidade sv_SE.utf8
, que não é instalado por padrão
no LFS.
Agora, como o(a) usuário(a) root
:
ninja install
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
-D
enable-gtk-doc=false
: Permite que esse pacote
seja construído sem o GTK-Doc-1.34.0. Remova esse parâmetro se
o GTK-Doc-1.34.0 estiver instalado e você
desejar reconstruir e instalar a documentação da API.
-D soup2=false
: Essa
chave força esse pacote a usar a libsoup-3 para solicitações
HTTP em vez da libsoup-2. Os pacotes no BLFS que usam
geocode-glib agora esperam que a libsoup-3 seja usada.
Gjs é um conjunto de ligações Javascript para GNOME.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/gjs/1.82/gjs-1.82.1.tar.xz
Soma de verificação MD5 da transferência: 3ebc85da56719932d4d8f713ffbcf786
Tamanho da transferência: 712 KB
Espaço em disco estimado exigido: 286 MB (com testes)
Tempo de construção estimado: 0,2 UPC (com testes; com paralelismo=4)
Cairo-1.18.2, dbus-1.16.0, GLib-2.82.5 (com GObject Introspection) e SpiderMonkey oriundo de Firefox-128.7.0
Valgrind-3.24.0 (para testes), DTrace, LCOV, sysprof e Systemtap
Instale o Gjs executando os seguintes comandos:
mkdir gjs-build && cd gjs-build && meson setup --prefix=/usr \ --buildtype=release \ --wrap-mode=nofallback \ .. && ninja
Para testar os resultados, emita: ninja test em uma sessão gráfica.
Agora, como o(a) usuário(a) root
:
ninja install
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
--wrap-mode=nofallback
: Essa
chave impede meson de usar substitutos
de subprojeto para quaisquer declarações de dependência nos
arquivos de construção, impedindo-o de baixar quaisquer
dependências opcionais que não estejam instaladas no sistema.
-D profiler=disabled
: evita
construir a estrutura de retaguarda do perfilador, mesmo se
sysprof estiver
instalado.
O pacote gnome-autoar fornece uma estrutura para extração, compactação e gerenciamento automático de arquivamentos.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/gnome-autoar/0.4/gnome-autoar-0.4.5.tar.xz
Soma de verificação MD5 da transferência: c8028c4df62c059418d4bdcde345cbe2
Tamanho da transferência: 52 KB
Espaço em disco estimado exigido: 2,8 MB
Tempo de construção estimado: 0,1 UPC
libarchive-3.7.7 e GTK-3.24.48
GTK-Doc-1.34.0 (para construir documentação)
Instale o gnome-autoar executando os seguintes comandos:
mkdir build && cd build && meson setup --prefix=/usr \ --buildtype=release \ -D vapi=true \ -D tests=true \ .. && ninja
Para testar os resultados, emita: ninja test
Agora, como o(a) usuário(a) root
:
ninja install
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
-D gtk_doc=true
: Use esse
parâmetro se o GTK-Doc estiver instalado e você desejar
reconstruir e instalar a documentação da API.
O pacote GNOME Desktop contém uma biblioteca que fornece uma API compartilhada por vários aplicativos na Área de Trabalho do GNOME.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/gnome-desktop/44/gnome-desktop-44.1.tar.xz
Soma de verificação MD5 da transferência: eda77690fcb351558ea0d1716a55e90b
Tamanho da transferência: 752 KB
Espaço em disco estimado exigido: 23 MB
Tempo de construção estimado: 0,2 UPC
gsettings-desktop-schemas-47.1, GTK-3.24.48, GTK-4.16.12, ISO Codes-4.17.0, itstool-2.0.7, libseccomp-2.6.0, libxml2-2.13.6 e xkeyboard-config-2.44
bubblewrap-0.11.0 (necessário para miniaturizadores no Nautilus) e GLib-2.82.5 (com GObject Introspection)
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
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
-D gtk_doc=true
: Use esse
parâmetro se você desejar construir a documentação da API.
-D installed_tests=true
: Use esse
parâmetro se você desejar habilitar os testes instalados.
O pacote GNOME Menus contém
uma implementação do rascunho Especificação
do Menu da Área de Trabalho proveniente de
freedesktop.org. Ele também contém os arquivos de
configuração de esquema de menu do GNOME e os arquivos .directory
.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/gnome-menus/3.36/gnome-menus-3.36.0.tar.xz
Soma de verificação MD5 da transferência: a8fd71fcf31a87fc799d80396a526829
Tamanho da transferência: 492 KB
Espaço em disco estimado exigido: 8,5 MB
Tempo de construção estimado: menos que 0,1 UPC
GLib-2.82.5 (GObject Introspection recomendado)
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
--disable-static
:
Essa chave impede a instalação das versões estáticas das
bibliotecas.
O pacote GNOME Online Accounts contém uma estrutura usada para acessar as contas online de usuário(a).
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/gnome-online-accounts/3.52/gnome-online-accounts-3.52.3.1.tar.xz
Soma de verificação MD5 da transferência: f14d6d5be4b0af4458bba52f6ffb95d7
Tamanho da transferência: 464 KB
Espaço em disco estimado exigido: 24 MB
Tempo de construção estimado: 0,2 UPC
Gcr-4.3.1, JSON-GLib-1.10.6, libadwaita-1.6.4, rest-0.9.1 e Vala-0.56.17
GLib-2.82.5 (com GObject Introspection)
A Chave de API do Google e os tokens OAuth abaixo são específicos do LFS. Se usar estas instruções para outra distribuição ou se você pretende distribuir cópias binárias do logiciário usando estas instruções, por favor, obtenha as tuas próprias chaves seguindo as instruções localizadas em https://www.chromium.org/developers/how-tos/api-keys.
Instale o GNOME Online Accounts executando os seguintes comandos:
mkdir build && cd build && meson setup \ --prefix=/usr \ --buildtype=release \ -D documentation=false \ -D kerberos=false \ -D google_client_secret=5ntt6GbbkjnTVXx-MSxbmx5e \ -D google_client_id=595013732528-llk8trb03f0ldpqq6nprjp1s79596646.apps.googleusercontent.com \ .. && ninja
Se você tiver instalado Gi-DocGen-2025.3 e desejar construir e instalar a documentação da API desse pacote, emita:
meson configure -D documentation=true && sed "s/project_name()/& + '-' + meson.project_version()/" \ -i ../doc/meson.build && ninja
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
ninja install
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
-D google_*
: Essas
chaves configuram o ID e o segredo do OAuth do BLFS para os
serviços do Google.
-D kerberos=true
: Use essa chave
se você tiver instalado o MIT Kerberos V5-1.21.3 e
deseja usá-lo com o GNOME Online
Accounts.
O pacote libgdata é uma biblioteca baseada em GLib para acessar APIs de serviços on-line usando o protocolo GData, principalmente os serviços do Google. Ele fornece APIs para acessar os serviços comuns do Google e tem suporte assíncrono completo.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/libgdata/0.18/libgdata-0.18.1.tar.xz
Soma de verificação MD5 da transferência: 92b058d1a0af5d1b96c86c21820f1eff
Tamanho da transferência: 832 KB
Espaço em disco estimado exigido: 54 MB (com testes)
Tempo de construção estimado: 0,5 UPC (com testes)
libsoup-2.74.3, gnome-online-accounts-3.52.3.1, GTK-3.24.48, JSON-GLib-1.10.6 e Vala-0.56.17
Gcr-3.41.2 e GLib-2.82.5 (com GObject Introspection)
GTK-Doc-1.34.0 (para documentação) e liboauth-1.0.3 (para suporte OAuth v1)
Instale o libgdata executando os seguintes comandos:
mkdir build && cd build && meson setup --prefix=/usr \ --buildtype=release \ -D gtk_doc=false \ -D always_build_tests=false \ .. && ninja
Esse pacote não vem com uma suíte funcional de teste.
Agora, como o(a) usuário(a) root
:
ninja install
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
-D gtk_doc=false
:
Remova isso se você tiver o GTK-Doc-1.34.0 instalado e quiser
reconstruir a documentação com ele.
-D oauth1=enabled
: Use essa opção
se desejar incluir suporte para OAuth v1. Observe que você
precisa ter o liboauth-1.0.3 instalado para a
finalidade de habilitar essa opção.
O pacote libgee é uma biblioteca de coleção que fornece interfaces e classes baseadas em GObject para estruturas de dados comumente usadas.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/libgee/0.20/libgee-0.20.8.tar.xz
Soma de verificação MD5 da transferência: e8e37df1c7a93aa5ba08be12ae7e7cad
Tamanho da transferência: 676 KB
Espaço em disco estimado exigido: 32 MB (com testes)
Tempo de construção estimado: 0,3 UPC (com testes)
GLib-2.82.5 (GObject Introspection recomendado) e Vala-0.56.17
Instale o libgee executando os seguintes comandos:
./configure --prefix=/usr --enable-vala && make
Para testar os resultados, emita: make check.
Agora, como o(a) usuário(a) root
:
make install
O pacote libgtop contém as principais bibliotecas do GNOME.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/libgtop/2.41/libgtop-2.41.3.tar.xz
Soma de verificação MD5 da transferência: 465db9f4f695c298d9c48dcf7f32a9c0
Tamanho da transferência: 740 KB
Espaço em disco estimado exigido: 19 MB
Tempo de construção estimado: 0,2 UPC
GLib-2.82.5 (GObject Introspection recomendado) e Bibliotecas do Xorg
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
--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.
O pacote libgweather é uma biblioteca usada para acessar informações meteorológicas a partir de serviços online para numerosos locais.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/libgweather/4.4/libgweather-4.4.4.tar.xz
Soma de verificação MD5 da transferência: 42c548a6d45f79c2120b0a0df8a74e68
Tamanho da transferência: 2,7 MB
Espaço em disco estimado exigido: 77 MB (com testes)
Tempo de construção estimado: 0,2UPC (com testes)
geocode-glib-3.26.4, GTK-3.24.48, libsoup-3.6.4 e PyGObject-3.50.0
GLib-2.82.5 (com GObject Introspection), libxml2-2.13.6 e Vala-0.56.17
Gi-DocGen-2025.3 (gi-docgen também é
fornecido como um subprojeto meson, que será usado se
-D gtk_doc=false
não for passado
para meson),
LLVM-19.1.7 (para formato clang) e
pylint
Uma conexão com a Internet é necessária para alguns testes desse pacote. A loja de certificados do sistema possivelmente precise ser configurada com make-ca-1.15 antes de se testar esse pacote
Instale o libgweather executando os seguintes comandos:
mkdir build && cd build && meson setup --prefix=/usr \ --buildtype=release \ -D gtk_doc=false \ .. && ninja
Se você tiver Gi-DocGen-2025.3 instalado e desejar construir a documentação da API para esse pacote, emita:
sed "s/libgweather_full_version/'libgweather-4.4.4'/" \ -i ../doc/meson.build && meson configure -D gtk_doc=true && ninja
Um teste precisa que os arquivos de localidade estejam instalados no sistema, de forma que é melhor executar os testes depois de instalar o pacote.
Agora, como o(a) usuário(a) root
:
ninja install
Para testar os resultados, emita: LC_ALL=C ninja test.
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
-D gtk_doc=false
:
Permite construir esse pacote sem Gi-DocGen-2025.3
instalado. Se você tiver Gi-DocGen-2025.3 instalado e
desejar reconstruir e instalar a documentação da API, um
comando meson
configure reconfigurará essa opção.
libpeas é um mecanismo de plug-ins baseado em GObject e tem como objetivo dar a cada aplicativo a chance de assumir a própria extensibilidade dele.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/libpeas/1.36/libpeas-1.36.0.tar.xz
Soma de verificação MD5 da transferência: b3dd31a79c47af0cbf22f2d6bf52bc7d
Tamanho da transferência: 192 KB
Espaço em disco estimado exigido: 10 MB (com testes)
Tempo de construção estimado: 0,2 UPC (com testes)
GLib-2.82.5 (com GObject Introspection) e GTK-3.24.48
libxml2-2.13.6 e PyGObject-3.50.0
Gi-DocGen-2025.3, Glade, embed, LGI (para ligações LUA, construído com LUA-5.1), com ou luajit-20250212 ou LUA-5.1
Instale o libpeas executando os seguintes comandos:
mkdir build && cd build && meson setup --prefix=/usr \ --buildtype=release \ --wrap-mode=nofallback \ .. && ninja
Se você tiver Gi-DocGen-2025.3 instalado e desejar construir a documentação da API para esse pacote, emita:
sed "/docs_dir =/s@\$@/ 'libpeas-1.36.0'@" \ -i ../docs/reference/meson.build && meson configure -D gtk_doc=true && ninja
Para testar os resultados, emita: ninja test. Uma sessão gráfica ativa com endereço de barramento é necessária para executar os testes.
Agora, como o(a) usuário(a) root
:
ninja install
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
--wrap-mode=nofallback
: Essa
chave impede meson de usar substitutos
de subprojeto para quaisquer declarações de dependência nos
arquivos de construção, impedindo-o de baixar quaisquer
dependências opcionais que não estejam instaladas no sistema.
-D vapi=true
: Adicione essa chave
se você desejar gerar dados vapi (vala).
-D demos=false
: Adicione essa
chave se você não desejar construir os aplicativos de
demonstração.
O pacote libshumate contém uma pequena engenhoca GTK-4 para exibir mapas.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/libshumate/1.3/libshumate-1.3.2.tar.xz
Soma de verificação MD5 da transferência: 3dea93dd98cd2665b7ad69b1f65f33cb
Tamanho da transferência: 5,6 MB
Espaço em disco estimado exigido: 15 MB
Tempo de construção estimado: 0,2 UPC
GTK-4.16.12, libsoup-3.6.4 e Protobuf-c-1.5.1
GLib-2.82.5 (com GObject Introspection) (exigido para gnome-maps)
Instale o libshumate executando os seguintes comandos:
mkdir build && cd build && meson setup --prefix=/usr \ --buildtype=release \ --wrap-mode=nodownload \ -D gtk_doc=false \ .. && ninja
Se você tiver Gi-DocGen-2025.3 instalado e desejar construir a documentação da API para esse pacote, emita:
sed -e 's/lib_version/version/' \ -i ../docs/meson.build && meson configure -D gtk_doc=true && ninja
Para testar os resultados, emita: ninja test.
Agora, como o(a) usuário(a) root
:
ninja install
--buildtype=release
:
Especifique 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.
O pacote Evolution Data Server fornece uma estrutura de retaguarda unificada para aplicativos que trabalham com contatos, tarefas e informações de calendário. Ele foi originalmente desenvolvido para Evolution (daí o nome), mas agora também é usado por outros pacotes.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/evolution-data-server/3.54/evolution-data-server-3.54.3.tar.xz
Soma de verificação MD5 da transferência: 1803a1127df96258a6c8b1d8d27edd25
Tamanho da transferência: 4,9 MB
Espaço em disco estimado exigido: 183 MB (com testes)
Tempo de construção estimado: 0,7UPC (usando paralelismo = 4)
libical-3.0.19, libsecret-0.21.6, nss-3.108 e SQLite-3.49.1
gnome-online-accounts-3.52.3.1, GLib-2.82.5 (com GObject Introspection), GTK-3.24.48, GTK-4.16.12, ICU-76.1, libcanberra-0.30, libgweather-4.4.4, Vala-0.56.17 e WebKitGTK-2.46.6
GTK-Doc-1.34.0, MIT Kerberos V5-1.21.3, um MTA (que forneça um comando sendmail), OpenLDAP-2.6.9, Berkeley DB (obsoleto) e libphonenumber
Instale o Evolution Data Server executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D SYSCONF_INSTALL_DIR=/etc \ -D ENABLE_VALA_BINDINGS=ON \ -D ENABLE_INSTALLED_TESTS=ON \ -D WITH_OPENLDAP=OFF \ -D WITH_KRB5=OFF \ -D ENABLE_INTROSPECTION=ON \ -D ENABLE_GTK_DOC=OFF \ -D WITH_LIBDB=OFF \ -W no-dev -G Ninja .. && ninja
Agora, como o(a) usuário(a) root
:
ninja install
Para testar os resultados, emita: ninja test.
-D
ENABLE_VALA_BINDINGS=ON
: Essa chave habilita
construir as ligações Vala. Remova-a se você não tiver
Vala-0.56.17 instalado.
-D
ENABLE_GTK_DOC=OFF
: Essa chave desabilita a
construção da documentação da API. Ela está quebrada para
esse pacote devido ao uso de um aplicativo gtk-doc há muito
obsoleto que não mais está disponível.
-D WITH_LIBDB=OFF
:
Essa chave permite construir esse pacote sem
Berkeley DB (obsoleto). SQLite-3.49.1 é usado para operação
normal.
-D ENABLE_OAUTH2_WEBKITGTK4=OFF
:
Use essa chave se você não construiu WebKitGTK-2.46.6
com GTK-4.
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.
é a biblioteca de manuseio de mensagens MIME do Evolution |
|
é a biblioteca de utilitários para estruturas de retaguarda do Evolution Data Server |
|
é a biblioteca cliente para catálogos de endereços do Evolution |
|
é a biblioteca cliente para contatos do Evolution |
|
é a biblioteca cliente para calendários do Evolution |
|
é a biblioteca de estrutura de retaguarda para catálogos de endereços do Evolution |
|
é a biblioteca de estrutura de retaguarda para calendários do Evolution |
|
é a biblioteca de utilitários para o Evolution Data Server |
|
é a biblioteca de utilitários de GUI para o Evolution Data Server |
|
é a biblioteca de utilitários de GUI baseada em GTK-4 para o Evolution Data Server |
|
é a biblioteca de utilitários de teste de servidor para o Evolution Data Server |
Tinysparql é um armazenamento triplo RDF de baixo custo com uma interface SPARQL 1.1.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/tinysparql/3.8/tinysparql-3.8.2.tar.xz
Soma de verificação MD5 da transferência: 9c3ab085fe15b55acfd956c039819a00
Tamanho da transferência: 2,0 MB
Espaço em disco estimado exigido: 53 MB (com testes)
Tempo de construção estimado: 0,4 UPC (com testes)
JSON-GLib-1.10.6 e Vala-0.56.17
GLib-2.82.5 (com GObject Introspection), ICU-76.1, libsoup-3.6.4, localsearch-3.8.2 (tempo de execução), PyGObject-3.50.0 e SQLite-3.49.1
asciidoc-10.2.1, Avahi-0.8, Graphviz-12.2.1 e bash-completion
Se você estiver atualizando esse pacote a partir de uma
versão de quando esse pacote era conhecido como
Tracker, remova um arquivo
que causará um conflito como o(a) usuário(a) root
:
rm -fv /usr/lib/systemd/user/tracker-xdg-portal-3.service
Corrija o local para instalar a documentação:
mv docs/reference/libtracker-sparql/doc/{Tsparql-3.0,tinysparql-3.8.2} && sed '/docs_name/s/Tsparql-3.0/tinysparql-3.8.2/' \ -i docs/reference/libtracker-sparql/meson.build
Instale Tinysparql executando os seguintes comandos:
mkdir build && cd build && meson setup --prefix=/usr \ --buildtype=release \ -D man=false \ .. && ninja
Agora, como o(a) usuário(a) root
:
ninja install
Para testar os resultados, emita: meson configure -D debug=true && LC_ALL=C ninja test. A suíte de teste deveria ser executada a partir de uma sessão gráfica. Um teste é conhecido por falhar devido às páginas de manual não serem geradas.
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
-D man=false
: Essa
chave impede o processo de construção de gerar páginas de
manual. Omita essa chave se você tiver asciidoc-10.2.1
instalado e desejar gerar e instalar as páginas de manual.
meson configure -D debug=true: Esse comando habilita algumas verificações de depuração necessárias para a suíte de teste. Nós não queremos habilitá-las para as bibliotecas e programas tinysparql instaladas, de forma que executamos a suíte de teste depois da instalação.
O pacote Localsearch contém um indexador de sistema de arquivos, bem como um extrator de metadados.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/localsearch/3.8/localsearch-3.8.2.tar.xz
Soma de verificação MD5 da transferência: 56dfb5a30b3ab5ba33939d9f6bc21016
Tamanho da transferência: 4,3 MB
Espaço em disco estimado exigido: 31 MB (com testes)
Tempo de construção estimado: 0,4 UPC (com paralelismo=4; adicionar o equivalente a 1,0 UPC para testes, dependente da velocidade do disco)
Exempi-2.6.5, gexiv2-0.14.3, gst-plugins-base-1.24.12 e tinysparql-3.8.2
giflib-5.2.2, gst-plugins-good-1.24.12 (tempo de execução), gst-libav-1.24.12 (tempo de execução), ICU-76.1, libexif-0.6.25, libgxps-0.3.2, libseccomp-2.6.0, Poppler-25.02.0 e UPower-1.90.7
asciidoc-10.2.1, CMake-3.31.5, DConf-0.40.0, FFmpeg-7.1, libgsf-1.14.53, NetworkManager-1.50.0, taglib-2.0.2, totem-pl-parser-3.26.6, libcue, libgrss, libitpcdata, libosinfo e gupnp
Habilite as seguintes opções na configuração do núcleo, em seguida recompile o núcleo e reinicialize se necessário:
Security options ---> [*] Enable different security models [SECURITY] [*] Landlock support [SECURITY_LANDLOCK] # List more Linux Security Modules here (separated with comma) if needed, # for example 'landlock,lockdown,smack': (landlock) Ordered list of enabled LSMs [LSM]
Se você estiver atualizando esse pacote a partir de uma
versão onde ele era conhecido como tracker-miners, existem vários
arquivos que causarão conflitos. Antes de instalar esse
pacote, remova esses arquivos como o(a) usuário(a)
root
:
rm -fv /etc/xdg/autostart/tracker-miner-fs-3.desktop && rm -fv /usr/lib/systemd/user/tracker-miner-fs-3.service && rm -fv /usr/lib/systemd/user/tracker-miner-fs-control-3.service && rm -fv /usr/share/dbus-1/services/org.freedesktop.Tracker3.Miner.Files.service && rm -fv /usr/share/dbus-1/services/org.freedesktop.Tracker3.Writeback.service && rm -fv /usr/share/dbus-1/services/org.freedesktop.Tracker3.Miner.Files.Control.service
Se você planeja executar os testes, alguns tempos limite
são muito curtos ao usar discos giratórios. Existem dois
lugares onde os tempos limite são usados: primeiro, testes
individuais dentro de um grupo de testes tem um tempo
limite padrão de 10s. Isso pode ser mudado configurando-se
a variável de ambiente TRACKER_TESTS_AWAIT_TIMEOUT
para o valor
desejado ao executar os testes (veja-se abaixo). Segundo,
um tempo limite global para um grupo de testes é fixado em
tempo de configuração. O valor padrão no diretório
functional-tests
(outros
diretórios tem somente testes de curta duração) pode ser
aumentado com o seguinte comando (substitua 200 por um
valor adequado para tua máquina):
sed -i s/120/200
/ tests/functional-tests/meson.build
Instale Localsearch executando os seguintes comandos:
mkdir build && cd build && meson setup --prefix=/usr \ --buildtype=release \ -D man=false \ -D miner_rss=false \ .. && ninja
Para testar os resultados, emita (ajuste o tempo limite do teste individual para um valor adequado para a tua máquina; veja-se a nota acima):
dbus-run-session env LC_ALL=C.UTF-8 TRACKER_TESTS_AWAIT_TIMEOUT=20
\
ninja test &&
rm -rf ~/tracker-tests
Agora, como o(a) usuário(a) root
:
ninja install
Os testes criam arquivos no diretório do(a) usuário(a) (até 24 MB), de forma que eles tem de ser removidos posteriormente.
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
-D man=false
: Essa
chave impede o processo de construção de gerar páginas de
manual. Omita essa chave se você tiver asciidoc-10.2.1
instalado e desejar gerar e instalar as páginas de manual.
-D miner_rss=false
:
Essa chave impede usar libgrss para indexar feeds RSS porque
libgrss é insegura e não mais está no BLFS.
-D seccomp=false
: Essa opção
desabilita o filtro de chamada de sistema seccomp. Em algumas
arquiteturas, como i686 e ARM, as funções que o
tracker-miners usa não são protegidas corretamente, e o
tracker-miners será morto com um SIGSYS como resultado.
Observe que desabilitar o seccomp pode fazer com que o
sistema seja comprometido ainda mais no caso de uma
vulnerabilidade de segurança no localsearch ou nas
dependências dele ser explorada.
-D landlock=disabled
: Essa chave
desabilita o sandbox de acesso a arquivos Landlock. Use-a se
você não quiser construir o núcleo com suporte a Landlock.
Observe que desabilitar Landlock pode fazer com que o sistema
seja comprometido ainda mais no caso de uma vulnerabilidade
de segurança no localsearch ou nas dependências dele ser
explorada.
-D battery_detection=none
: Use
essa opção se você não tiver instalado a dependência
recomendada upower. Não use essa opção se teu sistema tiver
uma bateria (bateria de laptop ou UPS), ou então o
localsearch possivelmente desperdice a vida útil da bateria
quando a eletricidade CA estiver indisponível.
O pacote gsound contém uma pequena biblioteca para reproduzir sons do sistema.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/gsound/1.0/gsound-1.0.3.tar.xz
Soma de verificação MD5 da transferência: 7338c295034432a6e782fd20b3d04b68
Tamanho da transferência: 24 KB
Espaço em disco estimado exigido: 864 KB
Tempo de construção estimado: menos que 0,1 UPC
GLib-2.82.5 (com GObject Introspection) e Vala-0.56.17
GTK-Doc-1.34.0 (para gerar documentação)
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
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
xdg-desktop-portal-gnome é uma estrutura de retaguarda para xdg-desktop-portal, que está usando GTK e várias peças da infraestrutura do GNOME.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/xdg-desktop-portal-gnome/47/xdg-desktop-portal-gnome-47.3.tar.xz
Soma de verificação MD5 da transferência: 4f3716cb0bd551dc0791b0ff9b41e7ec
Tamanho da transferência: 164 KB
Espaço em disco estimado exigido: 11 MB
Tempo de construção estimado: 0,2UPC
gnome-desktop-44.1, GTK-4.16.12, libadwaita-1.6.4, xdg-desktop-portal-1.20.0 e xdg-desktop-portal-gtk-1.15.2 (em tempo de execução)
Instale xdg-desktop-portal-gnome 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
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
O pacote DConf contém um sistema de configuração de baixo nível. O principal propósito dele é o de fornecer uma estrutura de retaguarda para o GSettings em plataformas que ainda não tem sistemas de armazenamento de configuração.
O DConf-Editor, como o nome sugere, é um editor gráfico para a base de dados DConf. A instalação é opcional, porque o gsettings originário de GLib-2.82.5 fornece funcionalidade semelhante na linha de comando.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/dconf/0.40/dconf-0.40.0.tar.xz
Soma de verificação MD5 da transferência: ac8db20b0d6b996d4bbbeb96463d01f0
Tamanho da transferência: 115 KB
Espaço em disco estimado exigido: 7,0 MB (com testes)
Tempo de construção estimado: 0,1 UPC (com testes)
Transferência (HTTP): https://download.gnome.org/sources/dconf-editor/45/dconf-editor-45.0.1.tar.xz
Soma de verificação MD5 da transferência: 82b2f5d396e95757ad7eaf89c82decd6
Tamanho da transferência: 596 KB
Espaço em disco estimado exigido: 21 MB
Tempo de construção estimado: 0,3 UPC
dbus-1.16.0, GLib-2.82.5, GTK-3.24.48 (para o editor), libhandy-1.8.3 (para o editor) e libxml2-2.13.6 (para o editor)
Instale o DConf executando os seguintes comandos:
mkdir build && cd build && meson setup --prefix=/usr \ --buildtype=release \ -D bash_completion=false \ .. && ninja
Para testar os resultados, emita: ninja test
Como o(a) usuário(a) root
:
ninja install
Agora, opcionalmente, instale o editor:
cd .. && tar -xf ../dconf-editor-45.0.1.tar.xz && cd dconf-editor-45.0.1 && mkdir build && cd build && meson setup --prefix=/usr --buildtype=release .. && ninja
Como o(a) usuário(a) root
:
ninja install
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
-D gtk_doc=true
: Use esse
parâmetro se GTK-Doc estiver
instalado e você desejar reconstruir e instalar a
documentação da API.
/usr/lib/gio/modules
)
O pacote GNOME Backgrounds contém uma coleção de arquivos gráficos que podem ser usados como planos de fundo no ambiente de Área de Trabalho do GNOME. Além disso, o pacote cria a adequada estrutura essencial de suporte e diretórios, de forma que você possa adicionar os teus próprios arquivos à coleção.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/gnome-backgrounds/47/gnome-backgrounds-47.0.tar.xz
Soma de verificação MD5 da transferência: c763f03aef289a3cd32c8049bf58443e
Tamanho da transferência: 13 MB
Espaço em disco estimado exigido: 28 MB
Tempo de construção estimado: menos que 0,1 UPC
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
O pacote Gvfs é um sistema de arquivos virtual de espaço de usuário(a) projetado para funcionar com as abstrações de E/S da biblioteca GIO da GLib.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/gvfs/1.56/gvfs-1.56.1.tar.xz
Soma de verificação MD5 da transferência: 5ba12cd02b17c058aa71adc39c5eb6cf
Tamanho da transferência: 1,2 MB
Espaço em disco estimado exigido: 29 MB
Tempo de construção estimado: 0,1 UPC (usando paralelismo = 4)
dbus-1.16.0, GLib-2.82.5, Gcr-4.3.1, libusb-1.0.27 e libsecret-0.21.6
GTK-3.24.48, libcdio-2.1.0, libgudev-238, libsoup-3.6.4, Systemd-257.3 (tempo de execução) e UDisks-2.10.1
Apache-2.4.63, Avahi-0.8, BlueZ-5.79, Fuse-3.16.2, gnome-online-accounts-3.52.3.1, GTK-Doc-1.34.0, libarchive-3.7.7, libgcrypt-1.11.0, libgdata-0.18.1, libxml2-2.13.6, libxslt-1.1.42, OpenSSH-9.9p2, Samba-4.21.4, gnome-desktop-testing (para testes), libbluray, libgphoto2, libimobiledevice, libmsgraph, libmtp, libnfs e Twisted
Instale o Gvfs executando os seguintes comandos:
mkdir build && cd build && meson setup \ --prefix=/usr \ --buildtype=release \ -D onedrive=false \ -D fuse=false \ -D gphoto2=false \ -D afc=false \ -D bluray=false \ -D nfs=false \ -D mtp=false \ -D smb=false \ -D dnssd=false \ -D goa=false \ -D google=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
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
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
-D
<option>=false
: Essas chaves são exigidas
se a dependência correspondente não estiver instalada. Remova
aquelas onde você tiver instalado o aplicativo correspondente
e desejar usá-lo com o Gvfs.
A opção dnssd exige avahi e, ambos, goa e google exigem GNOME
Online Accounts. A opção google também exige libgdata. A
opção google também exige libgdata. O suporte a onedrive
exige o pacote libmsgraph.
-D cdda=false
: Essa chave é
exigida se a libcdio não estiver instalada. A estrutura de
retaguarda cdda é inútil em máquinas sem uma unidade de
CDROM/DVD.
gexiv2 é um envolucrador baseado em GObject em torno da biblioteca Exiv2.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/gexiv2/0.14/gexiv2-0.14.3.tar.xz
Soma de verificação MD5 da transferência: d4ca9614baa0bc30d142bcad65f09910
Tamanho da transferência: 384 KB
Espaço em disco estimado exigido: 3,3 MB (com testes)
Tempo de construção estimado: 0,1 UPC (com paralelismo=4 e testes)
GTK-Doc-1.34.0 (para documentação)
Instale o gexiv2 executando os seguintes comandos:
mkdir build && cd build && meson setup --prefix=/usr --buildtype=release .. && ninja
Para testar os resultados, execute:
meson configure -D tests=true && ninja test
Como o(a) usuário(a) root
:
ninja install
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
O pacote Nautilus contém o gerenciador de arquivos do GNOME.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/nautilus/47/nautilus-47.2.tar.xz
Soma de verificação MD5 da transferência: 731bc0b5189c8ea9853d51c10c8764f7
Tamanho da transferência: 3,1 MB
Espaço em disco estimado exigido: 93 MB (com testes)
Tempo de construção estimado: 0,5 UPC (com testes, ambos usando paralelismo=4)
bubblewrap-0.11.0, gexiv2-0.14.3, gnome-autoar-0.4.5, gnome-desktop-44.1, libadwaita-1.6.4, libnotify-0.8.4, libportal-0.9.1, libseccomp-2.6.0 e tinysparql-3.8.2
desktop-file-utils-0.28, Exempi-2.6.5, GLib-2.82.5 (com GObject Introspection), gst-plugins-base-1.24.12, libcloudproviders-0.3.6 e libexif-0.6.25
adwaita-icon-theme-47.0 e Gvfs-1.56.1 (Para plugagem a quente e montagem de dispositivos funcionem)
Instale o Nautilus executando os seguintes comandos:
mkdir build && cd build && meson setup --prefix=/usr \ --buildtype=release \ .. && ninja
Se você tiver Gi-DocGen-2025.3 instalado e desejar gerar e instalar a documentação da API, emita os seguintes comandos:
sed "/docdir =/s@\$@ / 'nautilus-47.2'@" -i ../meson.build && meson configure -D docs=true && ninja
Para testar os resultados, emita: ninja test. Os testes precisam ser executados em um ambiente gráfico. Um teste é conhecido por falhar se o localsearch-3.8.2 não estiver instalado. Um teste também é conhecido por atingir o tempo limite se o(a) usuário(a) executando os testes tiver um diretório inicial grande.
Agora, como o(a) usuário(a) root
:
ninja install
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
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
-D cloudproviders=false
: Use essa
chave se você não tiver libcloudproviders-0.3.6
instalado.
O pacote GNOME Bluetooth contém ferramentas para gerenciar e manipular dispositivos Bluetooth usando a Área de Trabalho do GNOME.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/gnome-bluetooth/47/gnome-bluetooth-47.1.tar.xz
Soma de verificação MD5 da transferência: 715b4767b46b4c4b24a231358d0de83e
Tamanho da transferência: 292 KB
Espaço em disco estimado exigido: 12 MB (com testes)
Tempo de construção estimado: 0,1 UPC (Usando paralelismo=4, com testes)
GTK-4.16.12, gsound-1.0.3, libnotify-0.8.4 e UPower-1.90.7
GLib-2.82.5 (com GObject Introspection) e libadwaita-1.6.4
GTK-Doc-1.34.0 e dbusmock-0.34.3
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
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
O pacote GNOME Keyring contém um processo de segundo plano que mantém senhas e outros segredos para usuários(as).
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/gnome-keyring/46/gnome-keyring-46.2.tar.xz
Soma de verificação MD5 da transferência: 7a8ab16a87f03ca05fc176925fcce649
Tamanho da transferência: 1,3 MB
Espaço em disco estimado exigido: 129 MB
Tempo de construção estimado: 0,2 UPC (Usando paralelismo=4; adicionar 0,2 UPC para testes)
Linux-PAM-1.7.0, libxslt-1.1.42 e OpenSSH-9.9p2
Instale o GNOME Keyring executando os seguintes comandos:
sed -i 's:"/desktop:"/org:' schema/*.xml && ./configure --prefix=/usr \ --sysconfdir=/etc \ --enable-ssh-agent && make
Um endereço de barramento de sessão é necessário para executar os testes. Para testar os resultados, emita: make check.
Agora, como o(a) usuário(a) root
:
make install
sed ... schema/*.xml: Esse comando corrige uma entrada obsoleta no modelo de esquema.
--enable-ssh-agent
:
Essa chave habilita o agente SSH integrado ao gnome-keyring
em vez daquele no GCR. Isso é feito devido a defeitos no gcr
que fazem com que o agente não funcione corretamente.
O GNOME Settings Daemon é responsável por configurar vários parâmetros de uma Sessão do GNOME e dos aplicativos que executam sob ela.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/gnome-settings-daemon/47/gnome-settings-daemon-47.2.tar.xz
Soma de verificação MD5 da transferência: 39babcea9c9eb5fd7809cbc685cd282c
Tamanho da transferência: 1,4 MB
Espaço em disco estimado exigido: 33 MB
Tempo de construção estimado: 0,1 UPC (usando paralelismo=4, adicionar 0,5 UPC para testes)
alsa-lib-1.2.13, Fontconfig-2.16.0, Gcr-4.3.1, GeoClue-2.7.2, geocode-glib-3.26.4, gnome-desktop-44.1, libcanberra-0.30, libgweather-4.4.4, libnotify-0.8.4, libwacom-2.14.0, PulseAudio-17.0 e UPower-1.90.7
colord-1.4.7, Cups-2.4.11, NetworkManager-1.50.0, nss-3.108 e Wayland-1.23.0
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.
gnome-session-47.0.1, Mutter-47.5, dbusmock-0.34.3, umockdev-0.19.1 e Xvfb (para testes, originário de Xorg-Server-21.1.16 ou Xwayland-24.1.6)
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
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
O pacote Tecla contém um visualizador de esquema de teclado.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/tecla/47/tecla-47.0.tar.xz
Soma de verificação MD5 da transferência: 68233c486bfe8b86f759fdd9ae1be00a
Tamanho da transferência: 40 KB
Espaço em disco estimado exigido: 1,8 MB
Tempo de construção estimado: menos que 0,1 UPC
Instale Tecla executando os seguintes comandos:
mkdir build && cd build && meson setup --prefix=/usr --buildtype=release .. && ninja
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
ninja install
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
O pacote GNOME Control Center contém o gerenciador de configurações do GNOME.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/gnome-control-center/47/gnome-control-center-47.4.tar.xz
Soma de verificação MD5 da transferência: 1997a8871725d72a322820189378ea9a
Tamanho da transferência: 6,8 MB
Espaço em disco estimado exigido: 106 MB (com testes)
Tempo de construção estimado: 0,4 UPC (Usando paralelismo=4; com testes)
AccountsService-23.13.9, colord-gtk-0.3.1, Cups-2.4.11, gnome-bluetooth-47.1, gnome-online-accounts-3.52.3.1, gnome-settings-daemon-47.2, gsound-1.0.3, libadwaita-1.6.4, libgtop-2.41.3, libnma-1.10.6, libpwquality-1.4.5, MIT Kerberos V5-1.21.3, ModemManager-1.18.12, Samba-4.21.4, shared-mime-info-2.4, Tecla-47.0 e UDisks-2.10.1
Xvfb (originário de Xorg-Server-21.1.16 ou Xwayland-24.1.6) e dbusmock-0.34.3 (ambos para testes)
cups-pk-helper-0.2.7 (painel de impressoras), gnome-color-manager-3.36.2 (painel de cores), gnome-shell-47.4 (painel Aplicativos) e sound-theme-freedesktop-0.8 (Efeitos Sonoros Adicionais no painel Som)
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.
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
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
-D ibus=false
: Use essa chave se
você não tiver instalado a dependência recomendada do
IBus.
Mutter é o gerenciador de janelas para o GNOME. Ele não é invocado diretamente, mas a partir da Sessão GNOME (em uma máquina com um controlador de vídeo acelerado por hardware).
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/mutter/47/mutter-47.5.tar.xz
Soma de verificação MD5 da transferência: c899a4fed30ce1a99f0e17567b59cfb9
Tamanho da transferência: 6,5 MB
Espaço em disco estimado exigido: 72 MB (com testes)
Tempo de construção estimado: 0,5 UPC (Usando paralelismo=4; adicionar 1,4 UPC para testes)
gnome-settings-daemon-47.2, graphene-1.10.8, libei-1.3.0, libxcvt-0.1.3, libxkbcommon-1.8.0 e pipewire-1.2.7
desktop-file-utils-0.28, GLib-2.82.5 (com GObject Introspection), libdisplay-info-0.2.0 e startup-notification-0.12
libinput-1.27.1, Wayland-1.23.0, wayland-protocols-1.40 e Xwayland-24.1.6
dbusmock-0.34.3 (exigido para testes), Xorg-Server-21.1.16 (para sessões do X11), sysprof, Xvfb (proveniente de Xorg-Server-21.1.16 ou Xwayland-24.1.6), xvfb-run, e zenity (os testes X11 somente executariam com todos os três últimos)
Instale o Mutter executando os seguintes comandos:
mkdir build && cd build && meson setup --prefix=/usr \ --buildtype=release \ -D tests=disabled \ -D profiler=false \ .. && ninja
Se você quiser executar a suíte de teste, certifique-se de que dbusmock-0.34.3 esteja instalado e emita:
meson configure -D tests=enabled -D clutter_tests=false && ninja test
Os testes exigem uma sessão ativa do X ou do wayland. Alguns
testes são instáveis (especialmente sob uma carga alta do
sistema), de forma que se um teste falhar, você pode tentar
executá-lo novamente sozinho com o comando meson test <nome
teste>
. Alguns testes
possivelmente falhem dependendo de alguma configuração do
sistema. Não faça nenhuma entrada de mouse ou de teclado
enquanto a suíte de teste estiver executando ou alguns testes
possivelmente falhem. Você também consegue testar funções
básicas do Mutter seguindo
“Iniciando o Mutter,” depois de
instalá-lo.
Agora, como o(a) usuário(a) root
:
ninja install
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
-D tests=disabled
:
Permite construir o pacote sem dbusmock-0.34.3 instalado. Ele será
substituído por meson
configure se executar a suíte de teste.
-D
clutter_tests=false
: Desabilita os testes para a
biblioteca Clutter enviada.
Os testes Clutter são
conhecidos por falharem com --buildtype=release
.
-D profiler=false
:
Permite construir esse pacote sem Sysprof. Remova essa opção se você não
tiver instalado o Sysprof e
desejar analisar o desempenho de renderização do Mutter.
-D libdisplay_info=disabled
: Isso
permite construir esse pacote sem libdisplay-info-0.2.0 instalado.
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.
é um gerenciador de janelas de composição GTK+ baseado em Clutter |
|
contém as funções da API do Mutter |
|
contém as funções de API da suíte de teste do Mutter; essa biblioteca só é instalada se a suíte de teste desse pacote for executada e for necessária para a suíte de teste do gnome-shell |
O GNOME Shell é a interface central de usuário(a) do ambiente de área de trabalho do GNOME.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/gnome-shell/47/gnome-shell-47.4.tar.xz
Soma de verificação MD5 da transferência: d6d7e371c2eef21ffc55f1259fbaecba
Tamanho da transferência: 2,0 MB
Espaço em disco estimado exigido: 57 MB (com testes)
Tempo de construção estimado: 0,1 UPC (Usando paralelismo=4; com testes)
evolution-data-server-3.54.3, Gcr-4.3.1, Gjs-1.82.1, gnome-desktop-44.1, ibus-1.5.31, Mutter-47.5, Polkit-126 e startup-notification-0.12
desktop-file-utils-0.28, gnome-autoar-0.4.5, gnome-bluetooth-47.1, gst-plugins-base-1.24.12, NetworkManager-1.50.0 e power-profiles-daemon-0.30
GTK-Doc-1.34.0 e bash-completion
adwaita-icon-theme-47.0, DConf-0.40.0, GDM-47.0, gnome-control-center-47.4, libgweather-4.4.4 , e Systemd-257.3
Instale o GNOME Shell executando os seguintes comandos:
mkdir build && cd build && meson setup --prefix=/usr \ --buildtype=release \ -D tests=false \ .. && ninja
Para executar os testes, certifique-se de que Mutter esteja instalado depois de
executar a suíte de teste dele e emita: meson configure -D tests=true &&
ninja test. Você precisa estar executando uma
sessão do X para executar os testes. Alguns falharão se
GDM-47.0 não
estiver instalado. Um teste chamado Suporte a estilo CSS
é conhecido por falhar
com algumas configurações de vários monitores.
Agora, como o(a) usuário(a) root
:
ninja install
--buildtype=release
:
Especifique 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 extensions_tool=false
: Essa
chave permite construir esse pacote sem gnome-autoar-0.4.5 instalado.
O pacote GNOME Shell Extensions contém uma coleção de extensões que fornecem funcionalidades adicionais e opcionais para o GNOME Shell.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/gnome-shell-extensions/47/gnome-shell-extensions-47.4.tar.xz
Soma de verificação MD5 da transferência: 20f555270c63bd91546289f2811ff85a
Tamanho da transferência: 220 KB
Espaço em disco estimado exigido: 3,8 MB
Tempo de construção estimado: menos que 0,1 UPC
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
O pacote GNOME Session contém o gerenciador de sessões do GNOME.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/gnome-session/47/gnome-session-47.0.1.tar.xz
Soma de verificação MD5 da transferência: b234428ca39e494db57fb88613c71f6f
Tamanho da transferência: 476 KB
Espaço em disco estimado exigido: 9,6 MB
Tempo de construção estimado: 0,2 UPC
gnome-desktop-44.1, JSON-GLib-1.10.6, Mesa-24.3.4 , Systemd-257.3 (tempo de execução) e UPower-1.90.7
xmlto-0.0.29 e libxslt-1.1.42 com docbook-xml-4.5 e docbook-xsl-nons-1.79.2 (para construir a documentação)
Ao executar o GNOME sob o Wayland-1.23.0, as configurações de ambiente não são importadas para o(a) usuário(a) que usa o perfil do sistema. Os(As) desenvolvedores(as) do Wayland estão atualmente indecisos a respeito de um método padrão para fornecer configurações de ambiente de sistema para sessões de usuário(a). Para contornar essa limitação, execute o seguinte comando para fazer com que gnome-session use um shell de login:
sed 's@/bin/sh@/bin/sh -l@' -i gnome-session/gnome-session.in
Instale o GNOME Session executando os seguintes comandos:
mkdir build && cd build && meson setup --prefix=/usr --buildtype=release .. && ninja
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
ninja install
Mova a documentação para um diretório versionado:
mv -v /usr/share/doc/gnome-session{,-47.0.1}
Esse pacote cria dois arquivos .desktop
baseados em Xorg no diretório
/usr/share/xsessions/
e dois
arquivos .desktop
baseados em
Wayland no diretório /usr/share/wayland-sessions/
. Somente um é
necessário em cada diretório em um sistema BLFS, de forma que
evite que os arquivos extras apareçam como opções em um
gerenciador de exibição. Como o(a) usuário(a) root
:
rm -v /usr/share/xsessions/gnome.desktop && rm -v /usr/share/wayland-sessions/gnome.desktop
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
A maneira mais fácil de iniciar o GNOME é a de usar um gerenciador de exibição. GDM-47.0 é o gerenciador de exibição recomendado.
Também é possível iniciar o GNOME a partir da linha de comando. No entanto, você ainda precisa ter o GDM-47.0 instalado para que algumas partes da área de trabalho funcionem. Um motivo para iniciar a partir da linha de comando é se você quiser suporte ao Wayland em um sistema que tenha o controlador proprietário NVIDIA instalado, uma vez que o GDM não mostrará o tipo de sessão do Wayland em tal sistema.
Para iniciar o GNOME usando xinit-1.4.3, execute os seguintes comandos:
cat > ~/.xinitrc << "EOF"
dbus-run-session gnome-session
EOF
startx
Alternativamente, para iniciar o GNOME com suporte ao Wayland, execute o seguinte comando:
XDG_SESSION_TYPE=wayland dbus-run-session gnome-session
GNOME Tweaks é um aplicativo simples usado para ajustar configurações avançadas do GNOME.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/gnome-tweaks/46/gnome-tweaks-46.1.tar.xz
Soma de verificação MD5 da transferência: 1c770b4db46b037338e0501a6c5cc813
Tamanho da transferência: 676 KB
Espaço em disco estimado exigido: 4,4 MB
Tempo de construção estimado: menos que 0,1 UPC
GTK-4.16.12, gsettings-desktop-schemas-47.1, libadwaita-1.6.4, libgudev-238, PyGObject-3.50.0 e sound-theme-freedesktop-0.8
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
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
O pacote GNOME User Docs contém documentação para o GNOME.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/gnome-user-docs/47/gnome-user-docs-47.2.tar.xz
Soma de verificação MD5 da transferência: bc60cd81f0bbb03b85dd12580cfd565c
Tamanho da transferência: 14 MB
Espaço em disco estimado exigido: 173 MB
Tempo de construção estimado: 0,4 UPC (usando paralelismo = 4)
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
O pacote Yelp contém um navegador de ajuda usado para visualizar arquivos de ajuda.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/yelp/42/yelp-42.2.tar.xz
Soma de verificação MD5 da transferência: 3792122c4ab90725716cd88e9274f0f6
Tamanho da transferência: 1,4 MB
Espaço em disco estimado exigido: 21 MB
Tempo de construção estimado: 0,1 UPC
gsettings-desktop-schemas-47.1, WebKitGTK-2.46.6 e yelp-xsl-42.1
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.
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
--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.
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.
O pacote Baobab contém um analisador gráfico de árvore de diretórios.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/baobab/47/baobab-47.0.tar.xz
Soma de verificação MD5 da transferência: e11446a330a74fd5637c503f6c46ef7c
Tamanho da transferência: 596 KB
Espaço em disco estimado exigido: 10 MB
Tempo de construção estimado: menos que 0,1 UPC (Usando paralelismo=4)
adwaita-icon-theme-47.0, GTK-4.16.12, itstool-2.0.7, libadwaita-1.6.4 e Vala-0.56.17
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
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
Brasero é um aplicativo usado para gravar CDs e DVDs na Área de Trabalho do GNOME. Ele foi projetado para ser o mais simples possível e tem alguns recursos exclusivos que habilitam usuários(as) a criar os discos deles(as) fácil e rapidamente.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/brasero/3.12/brasero-3.12.3.tar.xz
Soma de verificação MD5 da transferência: ae48248dd36f89282d573eb7a0a1391f
Tamanho da transferência: 3,0 MB
Espaço em disco estimado exigido: 105 MB
Tempo de construção estimado: 1,0 UPC
gst-plugins-base-1.24.12, itstool-2.0.7, libcanberra-0.30 e libnotify-0.8.4
GLib-2.82.5 (com GObject Introspection), libburn-1.5.6, libisoburn-1.5.6, e libisofs-1.5.6, Nautilus-47.2, tinysparql-3.8.2 e totem-pl-parser-3.26.6
dvd+rw-tools-7.1 e Gvfs-1.56.1
Primeiro, corrija um problema de construção que ocorre com o GCC-14:
patch -Np1 -i ../brasero-3.12.3-upstream_fixes-1.patch
Instale o Brasero executando os seguintes comandos:
./configure --prefix=/usr \ --enable-compile-warnings=no \ --enable-cxx-warnings=no \ --disable-nautilus && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
--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.
EOG é um aplicativo usado para visualizar e catalogar arquivos de imagem na Área de Trabalho do GNOME. Ele também tem recursos básicos de edição.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/eog/47/eog-47.0.tar.xz
Soma de verificação MD5 da transferência: af0f617adbe8eabcdc3a926aae4ddaa7
Tamanho da transferência: 4,4 MB
Espaço em disco estimado exigido: 32 MB
Tempo de construção estimado: 0,2 UPC
adwaita-icon-theme-47.0, Exempi-2.6.5, gnome-desktop-44.1, libhandy-1.8.3, libjpeg-turbo-3.0.1, libpeas-1.36.0 e shared-mime-info-2.4
GLib-2.82.5 (com GObject Introspection), Little CMS-2.17, libexif-0.6.25, librsvg-2.59.2 e webp-pixbuf-loader-0.2.7
Instale o EOG executando os seguintes comandos:
mkdir build && cd build && meson setup --prefix=/usr \ --buildtype=release \ -D libportal=false \ .. && ninja
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
ninja install
Ainda como o(a) usuário(a) root
, reconstrua a base de dados de cache
dos tipos MIME manuseados pelos arquivos da área de trabalho,
de forma que o Nautilus-47.2 estará apto a abrir
arquivos de imagem com EOG.
update-desktop-database
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
-D libportal=false
:
Esse parâmetro desabilita a construção de EOG com suporte
para portais flatpak. Remova esse parâmetro se você tiver o
libportal-0.9.1 instalado e desejar ter
suporte para portais flatpak.
-D gtk_doc=true
: Use essa opção
se o GTK-Doc-1.34.0 estiver instalado e você
desejar reconstruir e instalar a documentação da API.
Evince é um visualizador de documentos para vários formatos de documentos. Ele suporta PDF, Postscript, DjVu, TIFF e DVI. Ele é útil para visualizar documentos de vários tipos usando um aplicativo simples em vez dos múltiplos visualizadores de documentos que existiam na Área de Trabalho do GNOME.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/evince/46/evince-46.3.1.tar.xz
Soma de verificação MD5 da transferência: e017e3544751c2442020f4d10a39e24d
Tamanho da transferência: 2,8 MB
Espaço em disco estimado exigido: 49 MB
Tempo de construção estimado: 0,2 UPC (Usando paralelismo=4)
adwaita-icon-theme-47.0, gsettings-desktop-schemas-47.1, GTK-3.24.48, itstool-2.0.7, libhandy-1.8.3, libxml2-2.13.6 e OpenJPEG-2.5.3
gnome-keyring-46.2, GLib-2.82.5 (com GObject Introspection), libarchive-3.7.7, libsecret-0.21.6 e Poppler-25.02.0
Cups-2.4.11 (para habilitar impressão, se o suporte estiver construído no GTK+ 3), gnome-desktop-44.1, gspell-1.14.0, gst-plugins-base-1.24.12, Gi-DocGen-2025.3, libgxps-0.3.2, libtiff-4.7.0, texlive-20240312 (ou install-tl-unx), DjVuLibre, libspectre e Synctex
Instale o Evince executando os seguintes comandos:
mkdir build && cd build && CPPFLAGS+=" -I/opt/texlive/2024/include" \ meson setup --prefix=/usr \ --buildtype=release \ -D gtk_doc=false \ --wrap-mode=nodownload \ .. && ninja
Se você tiver Gi-DocGen-2025.3 instalado e desejar construir a documentação da API para esse pacote, emita:
sed "/docs_dir/s@\$@ / 'evince-46.3.1'@" -i ../help/meson.build && meson configure -D gtk_doc=true && ninja
Esse pacote não tem uma suíte funcional de teste.
Agora, como o(a) usuário(a) root
:
ninja install
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
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
CPPFLAGS+="
-I/opt/texlive/2024/include"
: Certifique-se de
que o meson possa encontrar os cabeçalhos libkpathsea
originários do TeXLive se estiver instalado. Isso não tem
efeito em sistemas sem o TeXLive instalado.
--wrap-mode=nodownload
: Essa
chave desabilita a busca de qualquer dependência: o sistema
de construção tenta buscar gi-docgen mesmo se -D gtk_doc=false
for passado.
-D gtk_doc=false
:
Permite construir esse pacote sem Gi-DocGen-2025.3
instalado. Se você tiver Gi-DocGen-2025.3 instalado e
desejar reconstruir e instalar a documentação da API, um
comando meson
configure reconfigurará essa opção.
-D gspell=false
: Essa chave
desliga o suporte para o plugin de verificação ortográfica.
-D introspection=false
: Use essa
opção se você não tiver construído GLib-2.82.5 com GObject
Introspection e não desejar ter suporte de introspecção
integrado ao Evince.
-D nautilus=false
: Essa chave
desabilita a construção do plug-in do Nautilus. Use essa chave se o
Nautilus não estiver
instalado.
-D keyring=false
: Essa chave
desabilita o uso da libsecret. Use essa chave se a
libsecret não estiver
instalada.
-D ps=enabled
: Use essa chave se
a libspectre estiver
instalada e você quiser visualizar arquivos PostScript com o
Evince.
O pacote Evolution contém uma suíte integrada de correio, calendário e catálogo de endereços projetada para o ambiente do GNOME.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/evolution/3.54/evolution-3.54.3.tar.xz
Soma de verificação MD5 da transferência: 5e2bb6cc4a3c6b4563edf7ac507d8cce
Tamanho da transferência: 13 MB
Espaço em disco estimado exigido: 382 MB
Tempo de construção estimado: 1,0 UPC (Usando paralelismo=4)
adwaita-icon-theme-47.0, evolution-data-server-3.54.3, Gcr-4.3.1, gnome-autoar-0.4.5, shared-mime-info-2.4 e WebKitGTK-2.46.6
Bogofilter-1.2.5, enchant-2.8.2, gnome-desktop-44.1, gspell-1.14.0, Highlight-4.15, itstool-2.0.7, libcanberra-0.30, libgweather-4.4.4, libnotify-0.8.4, OpenLDAP-2.6.9 e Seahorse-47.0.1
GeoClue-2.7.2, geocode-glib-3.26.4 e GTK-Doc-1.34.0, clutter-gtk (plugin Contact Maps), cmark, Glade, libchamplain (plugin Contact Maps), libpst, libunity, libytnef
Instale o Evolution executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D SYSCONF_INSTALL_DIR=/etc \ -D ENABLE_INSTALLED_TESTS=ON \ -D ENABLE_PST_IMPORT=OFF \ -D ENABLE_YTNEF=OFF \ -D ENABLE_CONTACT_MAPS=OFF \ -D ENABLE_MARKDOWN=OFF \ -D ENABLE_WEATHER=ON \ -G Ninja .. && ninja
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
ninja install
-D ENABLE_YTNEF=OFF
:
Essa chave é usada para desabilitar o uso da biblioteca yTNEF
porque a libytnef não é
parte do BLFS.
-D
ENABLE_PST_IMPORT=OFF
: Essa chave é usada para
desabilitar o plugin pst-import porque a libpst não é parte do BLFS.
-D
ENABLE_CONTACT_MAPS=OFF
: Essa chave desabilita a
construção do plug-in de Mapas de Contato. Remova essa chave
se você tiver instalado as dependências necessárias e desejar
construir o plug-in de Mapas de Contato.
-D
ENABLE_MARKDOWN=OFF
: Essa chave permite construir
sem cmark. Remova essa
chave se você precisar de suporte a markdown e tiver
instalado a dependência necessária.
-D ENABLE_WEATHER=ON
:
Essa chave permite construir contra a libgweather-4.4.4.
-D WITH_HELP=OFF
: Essa chave
desabilita construir o manual desse pacote. Use essa chave se
você não tiver instalado itstool-2.0.7.
-D WITH_OPENLDAP=OFF
: Use essa
chave se você não tiver instalado o OpenLDAP-2.6.9.
File Roller é um gerenciador de arquivamentos para o GNOME com suporte para tar, bzip2, bzip3, gzip, zip, jar, compress, lzop, zstd, dmg e muitos outros formatos de arquivamento.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
File Roller é apenas uma interface gráfica para utilitários de arquivamento como o tar e zip.
Transferência (HTTP): https://download.gnome.org/sources/file-roller/44/file-roller-44.5.tar.xz
Soma de verificação MD5 da transferência: 8d996d0adbfde93dac1624226493f4e2
Tamanho da transferência: 1,0 MB
Espaço em disco estimado exigido: 21 MB
Tempo de construção estimado: 0,1 UPC (Usando paralelismo=4)
cpio-2.15, desktop-file-utils-0.28, JSON-GLib-1.10.6, libarchive-3.7.7, libadwaita-1.6.4, libportal-0.9.1 e Nautilus-47.2
Instale o File Roller executando os seguintes comandos:
mkdir build && cd build && meson setup --prefix=/usr \ --buildtype=release \ -D packagekit=false \ .. && ninja
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
ninja install && chmod -v 0755 /usr/libexec/file-roller/isoinfo.sh
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
Esse pacote instala arquivos de ícone na hierarquia
/usr/share/icons/hicolor
e
arquivos de área de trabalho na hierarquia /usr/share/applications
. Você pode
melhorar o desempenho do sistema e o uso de memória
atualizando /usr/share/icons/hicolor/index.theme
e
/usr/share/applications/mimeinfo.cache
.
Para realizar a atualização, você precisa ter o GTK-3.24.48
instalado (para o cache de ícones) e o desktop-file-utils-0.28 (para
o cache da área de trabalho) e emitir os seguintes comandos
como o(a) usuário(a) root
:
gtk-update-icon-cache -qtf /usr/share/icons/hicolor && update-desktop-database -q
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
-D packagekit=false
:
Essa chave desabilita o uso do PackageKit que não é adequado
para o BLFS.
-D api_docs=enabled
: Use essa
chave se você tiver o Gi-DocGen-2025.3 instalado e
desejar gerar a documentação da API.
GNOME Calculator é uma calculadora gráfica poderosa com modos financeiro, lógico e científico. Ela usa um pacote de precisão múltipla para fazer a aritmética dela para fornecer um alto grau de precisão.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/gnome-calculator/47/gnome-calculator-47.1.tar.xz
Soma de verificação MD5 da transferência: 3c7f14fd01b093e4b1a5abf870d17c5e
Tamanho da transferência: 1,1 MB
Espaço em disco estimado exigido: 35 MB (com testes)
Tempo de construção estimado: 0,4 UPC (com testes)
gtksourceview5-5.14.2, itstool-2.0.7, libadwaita-1.6.4, libgee-0.20.8 e libsoup-3.6.4
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
GNOME Color Manager é uma estrutura de sessão para o ambiente de área de trabalho do GNOME que facilita o gerenciamento, a instalação e a geração de perfis de cores.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/gnome-color-manager/3.36/gnome-color-manager-3.36.2.tar.xz
Soma de verificação MD5 da transferência: b23a411d3ab754da6ebc967716a971dc
Tamanho da transferência: 2,1 MB
Espaço em disco estimado exigido: 17 MB
Tempo de construção estimado: 0,1 UPC
colord-1.4.7, GTK-3.24.48, itstool-2.0.7 e Little CMS-2.17
DocBook-utils-0.6.14 (atualmente faz com que a construção falhe)
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
permite que você importe perfis ICC fornecidos por fornecedores(as) |
|
permite que você inspecione as configurações de gerenciamento de cores da tua sessão |
|
permite que você escolha cores exatas para uso por um colorímetro conectado |
|
permite que você visualize propriedades de perfis ICC |
gnome-connections é um cliente VNC e RDP para área de trabalho do GNOME.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/gnome-connections/46/gnome-connections-46.0.tar.xz
Soma de verificação MD5 da transferência: dcd819bfb15af4652842fb6b91fb9c7f
Tamanho da transferência: 3,9 MB
Espaço em disco estimado exigido: 16 MB
Tempo de construção estimado: 0,1 UPC
AppStream-1.0.4, FreeRDP-3.12.0, gtk-vnc-1.5.0, itstool-2.0.7, libhandy-1.8.3, libsecret-0.21.6 e Vala-0.56.17
Instale gnome-connections executando os seguintes comandos:
mkdir build && cd build && meson setup --prefix=/usr --buildtype=release .. && ninja
Para testar os resultads, emita: ninja test
Agora, como o(a) usuário(a) root
:
ninja install
O pacote GNOME Disk Utility fornece aplicativos usados para lidar com dispositivos de armazenamento.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/gnome-disk-utility/46/gnome-disk-utility-46.1.tar.xz
Soma de verificação MD5 da transferência: bfc4d0cfbf186ba5bd487f3fddbf07d2
Tamanho da transferência: 1,5 MB
Espaço em disco estimado exigido: 29 MB
Tempo de construção estimado: 0,2 UPC
gnome-settings-daemon-47.2, itstool-2.0.7, libdvdread-6.1.3, libhandy-1.8.3, libpwquality-1.4.5, libsecret-0.21.6 e UDisks-2.10.1
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
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.3.
Transferência (HTTP): https://download.gnome.org/sources/gnome-logs/45/gnome-logs-45.0.tar.xz
Soma de verificação MD5 da transferência: 5b9396cf24528ae72eb4c48934f60df2
Tamanho da transferência: 624 KB
Espaço em disco estimado exigido: 8,8 MB
Tempo de construção estimado: 0,1 UPC
GTK-4.16.12, gsettings-desktop-schemas-47.1, itstool-2.0.7 e libadwaita-1.6.4
appstream-glib-0.8.3, desktop-file-utils-0.28 (para a suíte de teste), e docbook-xml-4.5, docbook-xsl-nons-1.79.2, libxslt-1.1.42 (para construir páginas de manual) e dogtail
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
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
GNOME Maps é um aplicativo de mapas para o GNOME.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/gnome-maps/47/gnome-maps-47.4.tar.xz
Soma de verificação MD5 da transferência: 4df1707adc13aefabc349d8adda941b9
Tamanho da transferência: 3,1 MB
Espaço em disco estimado exigido: 19 MB
Tempo de construção estimado: 0,1 UPC
desktop-file-utils-0.28, GeoClue-2.7.2, geocode-glib-3.26.4, Gjs-1.82.1, libadwaita-1.6.4, libportal-0.9.1, libshumate-1.3.2, libgweather-4.4.4 e rest-0.9.1
Instale o GNOME Maps executando os seguintes comandos:
mkdir build && cd build && meson setup --prefix=/usr --buildtype=release .. && ninja
Para testar os resultados, emita: ninja test
Agora, como o(a) usuário(a) root
:
ninja install
O pacote GNOME Nettool é uma ferramenta de informações de rede de intercomunicação que fornece interface GUI para algumas das ferramentas de rede de intercomunicação de linha de comando mais comuns.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/gnome-nettool/42/gnome-nettool-42.0.tar.xz
Soma de verificação MD5 da transferência: ba99489e9e3a1af03e9f2719acac7beb
Tamanho da transferência: 413 KB
Espaço em disco estimado exigido: 12 MB
Tempo de construção estimado: menos que 0,1 UPC
GTK-3.24.48, itstool-2.0.7 e libgtop-2.41.3
Utilitários BIND-9.20.6, Nmap-7.95, Net-tools-2.10, Traceroute-2.1.6 e Whois-5.4.3
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
O pacote GNOME Power Manager contém uma ferramenta usada para informes acerca do gerenciamento de eletricidade do sistema.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/gnome-power-manager/43/gnome-power-manager-43.0.tar.xz
Soma de verificação MD5 da transferência: c7e33249b59c6082312909f65739912e
Tamanho da transferência: 376 KB
Espaço em disco estimado exigido: 7,0 MB
Tempo de construção estimado: menos que 0,1 UPC (com testes)
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
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
O GNOME Screenshot é um utilitário usado para fazer capturas de tela da tela inteira, de uma janela ou de uma área da tela definida pelo(a) usuário(a), com efeitos opcionais de embelezamento de borda.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/gnome-screenshot/41/gnome-screenshot-41.0.tar.xz
Soma de verificação MD5 da transferência: 3d0199188d8ba07399e468a61e0174e8
Tamanho da transferência: 352 KB
Espaço em disco estimado exigido: 7,4 MB
Tempo de construção estimado: menos que 0,1 UPC
GTK-3.24.48, libcanberra-0.30 (Compilado com suporte a GTK+3) e libhandy-1.8.3
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
Para a finalidade de melhor executar o GNOME Screenshot a partir da linha de comando, a opção -i precisa ser especificada.
O pacote GNOME System Monitor contém o substituto do GNOME para o gtop.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/gnome-system-monitor/47/gnome-system-monitor-47.1.tar.xz
Soma de verificação MD5 da transferência: f6e69d246adc5445228c82011fac118a
Tamanho da transferência: 1,0 MB
Espaço em disco estimado exigido: 33 MB
Tempo de construção estimado: 0,2 UPC (com paralelismo=4)
adwaita-icon-theme-47.0, Gtkmm-4.16.0, itstool-2.0.7, libgtop-2.41.3, libadwaita-1.6.4 e librsvg-2.59.2
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
O pacote GNOME Terminal contém o emulador de terminal para a Área de Trabalho do GNOME.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://gitlab.gnome.org/GNOME/gnome-terminal/-/archive/3.54.2/gnome-terminal-3.54.2.tar.gz
Soma de verificação MD5da transferência: 31091beb0965c03a9d129095d1d7aca7
Tamanho da transferência: 2,9 MB
Espaço em disco estimado exigido: 32 MB
Tempo de construção estimado: 0,3 UPC
DConf-0.40.0, gnome-shell-47.4, gsettings-desktop-schemas-47.1, itstool-2.0.7, libhandy-1.8.3, pcre2-10.45 e VTE-0.78.4
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
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.
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
-D search_provider=false
: Essa
chave desabilita o provedor “gnome-shell de
busca”. Use essa opção se você não tiver o
gnome-shell instalado.
-D nautilus_extension=false
: Essa
chave desabilita uma dependência do gerenciador de arquivos
nautilus. Use essa opção se
você não tiver o Nautilus instalado.
GNOME Weather é um pequeno aplicativo que te permite monitorar as atuais condições climáticas para a tua cidade, ou de qualquer lugar do mundo, e acessar previsões atualizadas fornecidas por vários serviços de Internet.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/gnome-weather/47/gnome-weather-47.0.tar.xz
Soma de verificação MD5 da transferência: 860b86e104dc575421c378a5cc5ffb73
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
GeoClue-2.7.2, Gjs-1.82.1, libadwaita-1.6.4 e libgweather-4.4.4
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
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
Gucharmap é um mapa de caracteres Unicode e visualizador de fontes. Ele te permite navegar por todos os caracteres e categorias Unicode disponíveis para as fontes instaladas e examinar as propriedades detalhadas deles. É uma maneira fácil de encontrar o caractere que você só conhece pelo nome Unicode dele ou ponto de código.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://gitlab.gnome.org/GNOME/gucharmap/-/archive/16.0.2/gucharmap-16.0.2.tar.bz2
Soma de verificação MD5 da transferência: b349d3a7d5606a934a1a5fe71a7550f0
Tamanho da transferência: 1,4 MB
Espaço em disco estimado exigido: 79 MB
Tempo de construção estimado: 0,1 UPC
Base de dados de Caracteres Unicode: https://www.unicode.org/Public/zipped/16.0.0/UCD.zip
Ideogramas Unificados CJK: https://www.unicode.org/Public/zipped/16.0.0/Unihan.zip
desktop-file-utils-0.28, gsettings-desktop-schemas-47.1, GTK-3.24.48, itstool-2.0.7, libarchive-3.7.7 e pcre2-10.45
GLib-2.82.5 (com GObject Introspection) e Vala-0.56.17
Esse pacote usa dois downloads não versionados. Você
possivelmente queira renomeá-los para um nome com versão,
por exemplo, UCD-16.zip
para
facilitar as atualizações.
Instale o Gucharmap executando os seguintes comandos:
mkdir build && cd build && mkdir ucd && pushd ucd && unzip ../../../UCD.zip && cp -v ../../../Unihan.zip . && popd && meson setup --prefix=/usr \ --strip \ --buildtype=release \ -D ucd_path=./ucd \ -D docs=false \ .. && ninja
Esse pacote não tem uma suíte de teste.
Agora, como o(a) usuário(a) root
:
rm -fv /usr/share/glib-2.0/schemas/org.gnome.Charmap.enums.xml && ninja install
--strip
: Embora o
padrão do pacote seja uma construção de lançamento sem
informações de depuração, sem essa chave existirão algumas
informações de depuração nos binários.
-D ucd_path=./ucd
:
Isso aponta para onde os principais arquivos de dados Unicode
extraídos e o arquivamento Unihan zipado podem ser
encontrados.
rm -fv /usr/share/glib-2.0/schemas/org.gnome.Charmap.enums.xml: Versões antigas desse pacote instalavam um arquivo obsoleto que impede o aplicativo de executar, como se o esquema principal não tivesse sido instalado. A remoção forçada funciona mesmo que o arquivo antigo não esteja presente.
-D docs=false
: Isso
permite que o pacote construa mesmo se o gtk-doc não tenha sido instalado. Remova
isso se você o tiver instalado e desejar construir a
documentação.
-D gir=false
: Use isso se você
não tiver instalado GLib-2.82.5 (com GObject Introspection).
-D vapi=false
: Use isso se você
não tiver instalado o Vala-0.56.17.
Seahorse é uma interface gráfica para gerenciar e usar chaves de criptografia. Atualmente ela suporta chaves PGP (usando GPG/GPGME) e chaves SSH.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/seahorse/47/seahorse-47.0.1.tar.xz
Soma de verificação MD5 da transferência: 18cd36abd8d2e25c236934be64c8b916
Tamanho da transferência: 1,3 MB
Espaço em disco estimado exigido: 44 MB
Tempo de construção estimado: 0,1 UPC (Usando paralelismo=4)
Gcr-3.41.2, GnuPG-2.4.7, GPGME-1.24.2, itstool-2.0.7, libhandy-1.8.3, libpwquality-1.4.5, libsecret-0.21.6 e Vala-0.56.17
libsoup-3.6.4 e OpenSSH-9.9p2 (para gerenciar chaves SSH)
Instale o Seahorse executando os seguintes comandos:
sed -i -r 's:"(/apps):"/org/gnome\1:' data/*.xml && mkdir build && cd build && meson setup --prefix=/usr --buildtype=release .. && ninja
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
ninja install
--buildtype=release
:
Especifique 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.
O pacote Snapshot contém um programa que tira fotos e vídeos a partir de uma web câmera.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/snapshot/47/snapshot-47.1.tar.xz
Soma de verificação MD5 da transferência: cfae2acf42f18677e6cd7bd716571bd7
Tamanho da transferência: 8,3 MB
Espaço em disco estimado exigido: 1,2 GB (6,1 MB instalado)
Tempo de construção estimado: 4,5 UPC
libadwaita-1.6.4, gst-plugins-bad-1.24.12 e rustc-1.85.0
libgstgtk4 proveniente de gst-plugins-rs-1.24.12, pipewire-1.2.7 e xdg-desktop-portal-gnome-47.3
Esse pacote leva muito tempo para construir porque o LTO está habilitado e a passagem do LTO não é paralelizada.
Instale Snapshot executando os seguintes comandos:
mkdir build && cd build && meson setup --prefix=/usr --buildtype=release .. && ninja
Para testar os resultados, emita: ninja test.
Agora, como o(a) usuário(a) root
:
ninja install
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
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.
O pacote libxfce4util é uma biblioteca de utilitários básicos para o ambiente de área de trabalho do Xfce.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://archive.xfce.org/src/xfce/libxfce4util/4.20/libxfce4util-4.20.0.tar.bz2
Soma de verificação MD5 da transferência: 810b370eb55fcd4635abfe55b047b38e
Tamanho da transferência: 604 KB
Espaço em disco estimado exigido: 6,9 MB
Tempo de construção estimado: menos que 0,1 UPC
GLib-2.82.5 (com GObject Introspection)
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
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) |
|
contém funções utilitárias básicas para o ambiente de área de trabalho do Xfce |
Xfconf é o sistema de armazenamento de configuração para o Xfce.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://archive.xfce.org/src/xfce/xfconf/4.20/xfconf-4.20.0.tar.bz2
Soma de verificação MD5 da transferência: ca596ff0a9be7fa655bb09cb05458644
Tamanho da transferência: 748 KB
Espaço em disco estimado exigido: 10 MB
Tempo de construção estimado: menos que 0,1 UPC
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
O pacote libxfce4ui contém pequenas engenhocas GTK+ 3 que são usadas por outros aplicativos do Xfce.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://archive.xfce.org/src/xfce/libxfce4ui/4.20/libxfce4ui-4.20.0.tar.bz2
Soma de verificação MD5 da transferência: a2fc9c0a73ba606a8779813b3d910729
Tamanho da transferência: 1,1 MB
Espaço em disco estimado exigido: 12 MB
Tempo de construção estimado: 0,1 UPC
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
--enable-gtk-doc
: Use esse
parâmetro se GTK-Doc estiver
instalado e você desejar reconstruir e instalar a
documentação da API.
Exo é uma biblioteca de suporte usada na área de trabalho do Xfce. Ela também tem alguns aplicativos auxiliares que são usados em todo o Xfce.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://archive.xfce.org/src/xfce/exo/4.20/exo-4.20.0.tar.bz2
Soma de verificação MD5 da transferência: f059ec3d8686d4b322c42d19ebec0366
Tamanho da transferência: 1,1 MB
Espaço em disco estimado exigido: 14 MB (com testes)
Tempo de construção estimado: 0,1 UPC (com testes)
GTK-3.24.48, libxfce4ui-4.20.0 e libxfce4util-4.20.0
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
--enable-gtk-doc
: Use esse
parâmetro se GTK-Doc estiver
instalado e você desejar reconstruir e instalar a
documentação da API.
é um utilitário de linha de comando para criar ou editar ícones na área de trabalho |
|
é 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 |
|
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) |
O pacote Garcon contém uma implementação de menu compatível com freedesktop.org baseada em GLib e GIO.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://archive.xfce.org/src/xfce/garcon/4.20/garcon-4.20.0.tar.bz2
Soma de verificação MD5 da transferência: fe17e9cb15a62013e0086183a446e89e
Tamanho da transferência: 648 KB
Espaço em disco estimado exigido: 8,6 MB
Tempo de construção estimado: 0,1 UPC
libxfce4ui-4.20.0 e GTK-3.24.48
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
O pacote libwnck contém o Window Navigator Construction Kit.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/libwnck/43/libwnck-43.2.tar.xz
Soma de verificação MD5 da transferência: b8c29ef589d3427c8a699c1542a2d25e
Tamanho da transferência: 448 KB
Espaço em disco estimado exigido: 9,9 MB
Tempo de construção estimado: menos que 0,1 UPC
GLib-2.82.5 (com GObject Introspection) e startup-notification-0.12
Instale libwnck executando os seguintes comandos:
mkdir build && cd build && meson setup --prefix=/usr --buildtype=release .. && ninja
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
ninja install
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
-D gtk_doc=true
: Use essa opção
para construir o manual de referência da API.
As Ferramentas de Desenvolvimento do Xfce4 são uma coleção de ferramentas e macros para construir algumas aplicações do Xfce.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): http://archive.xfce.org/src/xfce/xfce4-dev-tools/4.20/xfce4-dev-tools-4.20.0.tar.bz2
Soma de verificação MD5 da transferência: bea58046e67b4274c022fcff893fa350
Tamanho da transferência: 372 KB
Espaço em disco estimado exigido: 2,7 MB
Tempo de construção estimado: menos que 0,1 UPC
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
O pacote libxfce4windowing contém uma biblioteca de abstração de conceito de janelas para X11 e Wayland.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://archive.xfce.org/src/xfce/libxfce4windowing/4.20/libxfce4windowing-4.20.2.tar.bz2
Soma de verificação MD5 da transferência: d3094d3fd6f3cdbc99b921a515c141e0
Tamanho da transferência: 588 KB
Espaço em disco estimado exigido: 11 MB
Tempo de construção estimado: 0,1 UPC
GTK-3.24.48, libdisplay-info-0.2.0, libwnck-43.2 e xfce4-dev-tools-4.20.0
Instale libxfce4windowing executando os seguintes comandos:
./configure --prefix=/usr \ --sysconfdir=/etc \ --enable-x11 \ --disable-debug && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
--enable-gtk-doc
: Use esse
parâmetro se GTK-Doc estiver
instalado e você desejar reconstruir e instalar a
documentação da API.
O pacote Xfce4 Panel contém o Painel do Xfce4.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://archive.xfce.org/src/xfce/xfce4-panel/4.20/xfce4-panel-4.20.3.tar.bz2
Soma de verificação MD5 da transferência: 26796af791f8bf33708a0fa9fdc3a0e8
Tamanho da transferência: 2,2 MB
Espaço em disco estimado exigido: 39 MB
Tempo de construção estimado: 0,3 UPC (Usando paralelismo=4)
Cairo-1.18.2, Exo-4.20.0, Garcon-4.20.0, libwnck-43.2 e libxfce4windowing-4.20.2
Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/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
--enable-gtk-doc
: Use esse
parâmetro se GTK-Doc estiver
instalado e você desejar reconstruir e instalar a
documentação da API.
é o painel do Xfce |
|
é um conjunto de comandos sequenciais de shell que usa D-Bus e Xfce Panel para exibir um menu pop-up dos aplicativos instalados |
|
é 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 |
|
é um conjunto de comandos sequenciais de shell que usa DBus para exibir o Xfwm4 como um menu pop-up |
|
contém as funções da API do Xfce Panel |
Thunar é o gerenciador de arquivos do Xfce, uma GUI do GTK+ 3 para organizar os arquivos em teu computador.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://archive.xfce.org/src/xfce/thunar/4.20/thunar-4.20.2.tar.bz2
Soma de verificação MD5 da transferência: 87adf363ea5f93d7f7ab55ad384ff74e
Tamanho da transferência: 4,3 MB
Espaço em disco estimado exigido: 72 MB
Tempo de construção estimado: 0,2 UPC (Usando paralelismo=4)
libgudev-238, libnotify-0.8.4 e pcre2-10.45
GTK-Doc-1.34.0 (para documentação), Gvfs-1.56.1 (para navegação remota e montagem automática), libexif-0.6.25 e tumbler-4.20.0 (tempo de execução)
Instale o Thunar executando os seguintes comandos:
./configure --prefix=/usr \ --sysconfdir=/etc \ --docdir=/usr/share/doc/thunar-4.20.2 && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
O Thunar Volume Manager é uma extensão para o gerenciador de arquivos Thunar, que habilita o gerenciamento automático de unidades e mídias removíveis.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://archive.xfce.org/src/xfce/thunar-volman/4.20/thunar-volman-4.20.0.tar.bz2
Soma de verificação MD5 da transferência: 34c8e0af77ea3894db7e3d164998f9bf
Tamanho da transferência: 624 KB
Espaço em disco estimado exigido: 7,0 MB
Tempo de construção estimado: menos que 0,1 UPC
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
O pacote Tumbler contém um serviço de miniaturas do D-Bus baseado na especificação de gerenciamento de miniaturas do D-Bus. Isso é útil para gerar imagens em miniatura de arquivos.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://archive.xfce.org/src/xfce/tumbler/4.20/tumbler-4.20.0.tar.bz2
Soma de verificação MD5 da transferência: 8746afe5822d3564a5cd43945d488db7
Tamanho da transferência: 692 KB
Espaço em disco estimado exigido: 14 MB
Tempo de construção estimado: 0,1 UPC
cURL-8.12.1, FreeType-2.13.3, gdk-pixbuf-2.42.12, gst-plugins-base-1.24.12, GTK-Doc-1.34.0, libjpeg-turbo-3.0.1, libgsf-1.14.53, libpng-1.6.46, Poppler-25.02.0, FFmpegThumbnailer, libgepub e libopenraw
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
Xfce4 Appfinder é uma ferramenta para encontrar e iniciar aplicativos instalados pesquisando os arquivos .desktop instalados em teu sistema.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://archive.xfce.org/src/xfce/xfce4-appfinder/4.20/xfce4-appfinder-4.20.0.tar.bz2
Soma de verificação MD5 da transferência: e60f6c2521a985c6cfe09057d4fb2d69
Tamanho da transferência: 716 KB
Espaço em disco estimado exigido: 7,3 MB
Tempo de construção estimado: menos que 0,1 UPC
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
O Xfce4 Power Manager é um gerenciador de eletricidade para a área de trabalho do Xfce; o Xfce Power Manager gerencia as fontes de eletricidade no computador e os dispositivos que podem ser controlados para reduzir o consumo de eletricidade deles (como nível de brilho do LCD ou suspensão do monitor). Além disso, o Xfce4 Power Manager fornece um conjunto de interfaces do DBus compatíveis com freedesktop para informar a outros aplicativos a respeito do atual nível de eletricidade, de forma que eles possam ajustar o consumo de eletricidade deles.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://archive.xfce.org/src/xfce/xfce4-power-manager/4.20/xfce4-power-manager-4.20.0.tar.bz2
Soma de verificação MD5 da transferência: a9e27be5dafea884fb9fbbb918062963
Tamanho da transferência: 1,5 MB
Espaço em disco estimado exigido: 19 MB
Tempo de construção estimado: 0,1 UPC
libnotify-0.8.4, UPower-1.90.7 e xfce4-panel-4.20.3
Polkit-126 (exigido para controle de luz de fundo do laptop)
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
é um aplicativo auxiliar para as funções de suspensão e hibernação do xfce4-power-manager |
|
é o Gerenciador de Eletricidade do Xfce |
|
é um utilitário que vem com o Gerenciador de Eletricidade do Xfce para acessar/mudar a configuração dele |
|
é um utilitário de linha de comando para obter ou configurar o brilho da tua tela |
O pacote Xfce4 Settings contém uma coleção de aplicativos que são úteis para ajustar as tuas preferências do Xfce.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://archive.xfce.org/src/xfce/xfce4-settings/4.20/xfce4-settings-4.20.1.tar.bz2
Soma de verificação MD5 da transferência: f6a275e5e7c30dcceb4daa480375f8d0
Tamanho da transferência: 2,4 MB
Espaço em disco estimado exigido: 32 MB
Tempo de construção estimado: 0,4 UPC
gnome-icon-theme-3.12.0 ou lxde-icon-theme-0.5.1
libcanberra-0.30, libnotify-0.8.4 e libxklavier-5.4
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
--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.
é uma GUI GTK+ 3 para te permitir mudar algumas de tuas preferências de teclado e mouse |
|
é uma GUI GTK+ 3 para te permitir mudar algumas de tuas preferências de tema, ícone e fonte |
|
é uma GUI GTK+ 3 para te permitir mudar algumas de tuas preferências de tela |
|
é uma GUI GTK+ 3 para te permitir mudar algumas de tuas preferências de teclado |
|
é uma GUI GTK+ 3 para te permitir mudar quais aplicativos são usados para lidar com diferentes tipos MIME |
|
é uma GUI GTK+ 3 para te permitir mudar algumas de tuas preferências de mouse |
|
é uma GUI GTK+ 3 para te permitir mudar tuas preferências armazenadas no Xfconf |
|
é uma GUI GTK+ 3 para te permitir mudar muitas de tuas preferências do Xfce |
|
é o processo de segundo plano de configurações do Xfce |
Xfdesktop é um gerenciador de área de trabalho para o Ambiente de Área de Trabalho do Xfce. Xfdesktop configura a imagem/cor do plano de fundo, cria o menu do botão direito e a lista de janelas e exibe os ícones dos arquivos na área de trabalho usando as bibliotecas do Thunar.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://archive.xfce.org/src/xfce/xfdesktop/4.20/xfdesktop-4.20.1.tar.bz2
Soma de verificação MD5 da transferência: b845397fed5e555fa8dce4b189365dbc
Tamanho da transferência: 2,4 MB
Espaço em disco estimado exigido: 26 MB
Tempo de construção estimado: 0,2 UPC
Exo-4.20.0, libxfce4windowing-4.20.2 e libwnck-43.2
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
Xfwm4 é o gerenciador de janelas para o Xfce.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://archive.xfce.org/src/xfce/xfwm4/4.20/xfwm4-4.20.0.tar.bz2
Soma de verificação MD5 da transferência: e74cfb30b6e9ebf9cbaac0827dd534e3
Tamanho da transferência: 1,4 MB
Espaço em disco estimado exigido: 26 MB
Tempo de construção estimado: 0,2 UPC
libwnck-43.2 e libxfce4ui-4.20.0
Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/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
é o gerenciador de janelas do Xfce |
|
é um aplicativo GTK+ 3 que permite configurar algumas preferências, como o teu tema, atalhos de teclado e comportamento do foco do mouse |
|
é um aplicativo GTK+ 3 que permite configurar mais algumas preferências para o Xfwm4 |
|
é um aplicativo GTK+ 3 que permite configurar tuas preferências de espaço de trabalho |
Xfce4 Session é um gerenciador de sessão para o Xfce. A tarefa dele é a de salvar o estado da tua área de trabalho (aplicativos abertos e o local deles) e restaurá-lo durante a próxima iniciação. Você pode criar várias sessões e escolher uma delas na iniciação.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://archive.xfce.org/src/xfce/xfce4-session/4.20/xfce4-session-4.20.0.tar.bz2
Soma de verificação MD5 da transferência: f98b892974a489120ccdddf442ca00fa
Tamanho da transferência: 1,1 MB
Espaço em disco estimado exigido: 15 MB
Tempo de construção estimado: 0,1 UPC
libwnck-43.2, libxfce4windowing-4.20.2 e libxfce4ui-4.20.0
desktop-file-utils-0.28, xfce4-screensaver ou XScreenSaver-6.09, shared-mime-info-2.4 e polkit-gnome-0.105
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
--disable-legacy-sm
:
Essa chave desabilita o gerenciamento de sessões legadas que
não é necessário em sistemas modernos.
Existem várias dependências opcionais de tempo de execução para o Xfce4: dbus-1.16.0, GnuPG-2.4.7, hicolor-icon-theme-0.18, OpenSSH-9.9p2 e xinit-1.4.3
Ao construir um pacote do Xfce4, alguns arquivos de configuração
são instalados em /usr/share/applications
, /usr/share/icons
e /usr/share/mime
. Para a finalidade de usar
esses arquivos em tua sessão do Xfce4, você precisa atualizar várias
bases de dados. Faça isso executando, como o(a) usuário(a)
root
(você precisa ter as
dependências recomendadas instaladas):
update-desktop-database && update-mime-database /usr/share/mime
Você pode iniciar o Xfce4 a partir de um TTY usando o xinit-1.4.3 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.3, execute os seguintes comandos:
cat > ~/.xinitrc << "EOF"
dbus-launch --exit-with-x11 startxfce4
EOF
startx
A sessão do X inicia no primeiro terminal virtual não usado, normalmente o vt7. Você consegue comutar para outro vtn pressionando simultaneamente as teclas Ctrl-Alt-Fn (n=1, 2, ...). Para comutar de volta para a sessão do X, normalmente iniciada no vt7, use Ctrl-Alt-F7. O vt onde o comando startx foi executado exibirá muitas mensagens, incluindo mensagens de iniciação do X, aplicativos iniciados automaticamente com a sessão e, eventualmente, algumas mensagens de aviso e erro. Você possivelmente prefira redirecionar essas mensagens para um arquivo de registro, que não apenas manterá o vt inicial organizado, mas também poderá ser usado para fins de depuração. Isso pode ser feito iniciando-se o X com:
startx &> ~/.x-session-errors
Ao desligar ou reinicializar, as mensagens de desligamento aparecem no terminal virtual onde o X estava executando. Se você desejar ver essas mensagens, pressione simultaneamente as teclas Alt-F7 (assumindo que o X estava executando no terminal virtual 7).
Esta é uma pequena coleção de aplicativos opcionais que adicionam recursos extras para a tua área de trabalho do Xfce.
Parole é um reprodutor de DVD/CD/música para o Xfce que usa o GStreamer.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
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.
Transferência (HTTP): https://archive.xfce.org/src/apps/parole/4.18/parole-4.18.2.tar.bz2
Soma de verificação MD5 da transferência: 7be0c4cf3c557ccc44a12eecc68d5aff
Tamanho da transferência: 1,1 MB
Espaço em disco estimado exigido: 19 MB
Tempo de construção estimado: 0,2 UPC
dbus-glib-0.112, gst-plugins-base-1.24.12, gst-plugins-good-1.24.12 e libxfce4ui-4.20.0
libnotify-0.8.4 e taglib-2.0.2
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
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.
Terminal do Xfce4 é um emulador de terminal GTK+3. Isso é útil para executar comandos ou aplicativos no conforto de uma janela do Xorg; você pode arrastar e soltar arquivos no Terminal do Xfce4 ou copiar e colar texto com o teu mouse.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://archive.xfce.org/src/apps/xfce4-terminal/1.1/xfce4-terminal-1.1.4.tar.bz2
Soma de verificação MD5 da transferência: ee4c672fc96c81fc8d540f66411ddc6e
Tamanho da transferência: 1,4 MB
Espaço em disco estimado exigido: 15 MB
Tempo de construção estimado: 0,1 UPC
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
Xfburn é uma interface GUI GTK+ 3 para a Libisoburn. Isso é útil para criar CDs e DVDs a partir de arquivos em teu computador ou imagens ISO baixadas a partir de outro lugar.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://archive.xfce.org/src/apps/xfburn/0.7/xfburn-0.7.2.tar.bz2
Soma de verificação MD5 da transferência: a895d4d02cf2ee794162815c3f531a42
Tamanho da transferência: 1,2 MB
Espaço em disco estimado exigido: 15 MB
Tempo de construção estimado: 0,1 UPC
Exo-4.20.0, libburn-1.5.6, libisofs-1.5.6 e libxfce4ui-4.20.0
gst-plugins-base-1.24.12 e Cdrdao-1.2.4 (tempo de execução)
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
--disable-static
:
Essa chave impede a instalação das versões estáticas das
bibliotecas.
Ristretto é um visualizador de imagens rápido e leve para a área de trabalho do Xfce.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://archive.xfce.org/src/apps/ristretto/0.13/ristretto-0.13.3.tar.bz2
Soma de verificação MD5 da transferência: 4d140fe456480d90f99018ba5b932116
Tamanho da transferência: 834 KB
Espaço em disco estimado exigido: 9,9 MB
Tempo de construção estimado: 0,1 UPC
libexif-0.6.25 e libxfce4ui-4.20.0
tumbler-4.20.0 (tempo de execução)
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
O Processo de Segundo Plano de Notificação do Xfce4 é um pequeno aplicativo que implementa a parte "do lado do servidor" da especificação de notificações de área de trabalho do Freedesktop. Os aplicativos que desejam exibir um balão de notificação de maneira padrão podem usar o Xfce4-Notifyd para fazer isso, enviando mensagens padrão pelo D-Bus usando a interface org.freedesktop.Notifications.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://archive.xfce.org/src/apps/xfce4-notifyd/0.9/xfce4-notifyd-0.9.7.tar.bz2
Soma de verificação MD5 da transferência: d5bfe1fd8e8da9d64367a1f520d88633
Tamanho da transferência: 752 KB
Espaço em disco estimado exigido: 12 MB
Tempo de construção estimado: 0,1 UPC
libnotify-0.8.4, libxfce4ui-4.20.0, libcanberra-0.30, SQLite-3.49.1, xfce4-dev-tools-4.20.0 e xfce4-panel-4.20.3
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"
O Plugin Pulseaudio do Xfce4 é um plugin para o painel do Xfce que fornece uma maneira conveniente de ajustar o volume do áudio do sistema de som PulseAudio e para uma ferramenta de mixagem automática como o pavucontrol. Opcionalmente, ele pode lidar com teclas multimídia para controlar o volume do áudio.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://archive.xfce.org/src/panel-plugins/xfce4-pulseaudio-plugin/0.4/xfce4-pulseaudio-plugin-0.4.9.tar.bz2
Soma de verificação MD5 da transferência: c4424a441794c92c7f45d275864f00d3
Tamanho da transferência: 476 KB
Espaço em disco estimado exigido: 6,7 MB
Tempo de construção estimado: menos que 0,1 UPC
libnotify-0.8.4, PulseAudio-17.0 e xfce4-panel-4.20.3
keybinder-3.0-0.3.2 e pavucontrol-6.1 (tempo de execução)
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
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.
Para construir o LXQt, as seguintes etapas são recomendadas:
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.
Segundo, construa as partes exigidas do Qt. O pacote completo, Qt-6.8.2, é bastante longo e tem um monte de dependências.
Finalmente, construa a área de trabalho do LXQt usando as páginas abaixo em ordem. Os pacotes na seção de aplicativos são opcionais, mas no mínimo, qterminal-2.1.0 é recomendado.
O kwindowsystem fornece informações e permite a interação com o sistema de janelas. Ele fornece uma API de alto nível que é independente do sistema de janelas e tem implementações específicas de plataforma.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Esse pacote é extraído a partir do conjunto de pacotes do KF6. Se o KDE Frameworks-6.11.0 for construído, NÃO construa também esse pacote conforme apresentado aqui.
Transferência (HTTP): https://download.kde.org/stable/frameworks/6.11/kwindowsystem-6.11.0.tar.xz
Soma de verificação MD5 da transferência: 0fe4524579013c8e9fcf7adf43ea844e
Tamanho da transferência: 2,3 MB
Espaço em disco estimado exigido: 76 MB
Tempo de construção estimado: 0,3 UPC (Usando paralelismo=4)
extra-cmake-modules-6.11.0, plasma-wayland-protocols-1.16.0, Qt-6.8.2 e Bibliotecas do Xorg
Instale o kwindowsystem executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ -D BUILD_TESTING=OFF \ -W no-dev .. && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
O pacote kconfig fornece acesso aos arquivos de configuração.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Esse pacote é extraído a partir do conjunto de pacotes do KF6. Se o KDE Frameworks-6.11.0 for construído, NÃO construa também esse pacote conforme apresentado aqui.
Transferência (HTTP): https://download.kde.org/stable/frameworks/6.11/kconfig-6.11.0.tar.xz
Soma de verificação MD5 da transferência: b0e4142ee55abf3cb38fe6cdf5a0fe71
Tamanho da transferência: 339 KB
Espaço em disco estimado exigido: 29 MB
Tempo de construção estimado: 0,3 UPC (Usando paralelismo=4)
Instale o kconfig executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ -D CMAKE_INSTALL_LIBEXECDIR=libexec \ -D KDE_INSTALL_USE_QT_SYS_PATHS=ON \ -D BUILD_TESTING=OFF \ -W no-dev .. && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
lê a partir de um arquivo de configuração usando a interface KConfig |
|
escreve em um arquivo de configuração usando a interface KConfig |
|
contém a biblioteca central de configuração para o KF6 |
|
contém funções para uma GUI para interfacear com KConfig |
|
contém uma interface QML para o KConfig |
Solid é uma estrutura de integração de dispositivos. Ela fornece uma maneira de consultar e interagir com o hardware independentemente do sistema operacional subjacente.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Esse pacote é extraído a partir do conjunto de pacotes do KF6. Se o KDE Frameworks-6.11.0 for construído, NÃO construa também esse pacote conforme apresentado aqui.
Transferência (HTTP): https://download.kde.org/stable/frameworks/6.11/solid-6.11.0.tar.xz
Soma de verificação MD5 da transferência: 05d5c3b1277129f4e5fa1e3db9077e10
Tamanho da transferência: 296 KB
Espaço em disco estimado exigido: 39 MB
Tempo de construção estimado: 0,5 UPC (Usando paralelismo=4)
extra-cmake-modules-6.11.0 e Qt-6.8.2
UDisks-2.10.1, UPower-1.90.7, libimobiledevice e media-player-info
Instale o solid executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ -D CMAKE_INSTALL_LIBEXECDIR=libexec \ -D KDE_INSTALL_USE_QT_SYS_PATHS=ON \ -D BUILD_TESTING=OFF \ -W no-dev .. && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
KIdleTime é usado para informar o tempo ocioso de usuários(as) e do sistema. É útil não apenas para determinar o tempo ocioso atual do PC, mas também para ser notificado(a) acerca de eventos de tempo ocioso, como tempos limite personalizados ou atividade de usuário(a).
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Esse pacote é extraído a partir do conjunto de pacotes do KF6. Se o KDE Frameworks-6.11.0 for construído, NÃO construa também esse pacote conforme apresentado aqui.
Transferência (HTTP): https://download.kde.org/stable/frameworks/6.11/kidletime-6.11.0.tar.xz
Soma de verificação MD5 da transferência: 16d30e56e423668c27bfcbd2425a19da
Tamanho da transferência: 31 KB
Espaço em disco estimado exigido: 5,4 MB
Tempo de construção estimado: 0,3 UPC
extra-cmake-modules-6.11.0, plasma-wayland-protocols-1.16.0 e Qt-6.8.2
Instale o kidletime executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ -D CMAKE_INSTALL_LIBEXECDIR=libexec \ -D KDE_INSTALL_USE_QT_SYS_PATHS=ON \ -D BUILD_TESTING=OFF \ -W no-dev .. && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
kwayland é uma API estilo Qt para interagir com a API do wayland-client e do wayland-server.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Esse pacote é extraído a partir do conjunto de pacotes do KF6. Se o KDE Frameworks-6.11.0 for construído, NÃO construa também esse pacote conforme apresentado aqui.
Transferência (HTTP): https://download.kde.org/stable/plasma/6.3.2/kwayland-6.3.2.tar.xz
Soma de verificação MD5 da transferência: 425782c861e1b1bf0bb49a782b402cd6
Tamanho da transferência: 131 KB
Espaço em disco estimado exigido: 13 MB
Tempo de construção estimado: 0,3 UPC (Usando paralelismo=4)
extra-cmake-modules-6.11.0, Mesa-24.3.4 (construído com suporte a Wayland-1.23.0), plasma-wayland-protocols-1.16.0 e Qt-6.8.2
Instale o kwayland executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ -D CMAKE_INSTALL_LIBEXECDIR=libexec \ -D KDE_INSTALL_USE_QT_SYS_PATHS=ON \ -D BUILD_TESTING=OFF \ -W no-dev .. && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
O pacote libkscreen contém a biblioteca de gerenciamento de telas do KDE.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Esse pacote é extraído a partir do conjunto de pacotes do plasma. Se o Plasma-6.3.2 for construído, NÃO construa também esse pacote conforme apresentado aqui.
Transferência (HTTP): https://download.kde.org/stable/plasma/6.3.2/libkscreen-6.3.2.tar.xz
Soma de verificação MD5 da transferência: 1a23a3c130d5a73e851556638e05c86a
Tamanho da transferência: 117 KB
Espaço em disco estimado exigido: 20 MB
Tempo de construção estimado: 0,4 UPC (usando paralelismo = 4)
kwayland-6.3.2 para lxqt, plasma-wayland-protocols-1.16.0 e Qt-6.8.2
Instale o libkscreen executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ -D CMAKE_INSTALL_LIBEXECDIR=libexec \ -D KDE_INSTALL_USE_QT_SYS_PATHS=ON \ -D BUILD_TESTING=OFF \ -W no-dev .. && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
Esse componente é destinado para aplicativos estarem aptos para usar facilmente clientes baseados em um protocolo "wlr-layer-shell". Os clientes podem usar essa interface para atribuir a função surface_layer para wl_surfaces. Essas superfícies são atribuídas para uma "camada" da saída gerada e renderizadas com uma profundidade z definida, respectivamente para cada.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Esse pacote é extraído a partir do conjunto de pacotes do plasma. Se o Plasma-6.3.2 for construído, NÃO construa também esse pacote conforme apresentado aqui.
Transferência (HTTP): https://download.kde.org/stable/plasma/6.3.2/layer-shell-qt-6.3.2.tar.xz
Soma de verificação MD5 da transferência: f56e4b5f766ddf07974646305e32f86e
Tamanho da transferência: 36 KB
Espaço em disco estimado exigido: 5,0 MB
Tempo de construção estimado: 0,3 UPC (usando paralelismo = 4)
Instale layer-shell-qt executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ -W no-dev .. && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
O pacote muparser é uma biblioteca de analisador matemático rápido para C e C++.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/beltoforion/muparser/archive/v2.3.5/muparser-2.3.5.tar.gz
Soma de verificação MD5 da transferência: 04d4224cb01712207b85af05a255b6fc
Tamanho da transferência: 116 KB
Espaço em disco estimado exigido: 4,6 MB
Tempo de construção estimado: 0,1 UPC
Instale o muparser executando os seguintes comandos:
mkdir -v build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ .. && make
Para testar os resultados, emita: make test.
Agora, como o(a) usuário(a) root
:
make install
O pacote lxqt-build-tools fornece diversas ferramentas necessárias para construir o próprio LXQt, bem como outros componentes mantidos pelo projeto LXQt.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/lxqt/lxqt-build-tools/releases/download/2.1.0/lxqt-build-tools-2.1.0.tar.xz
Soma de verificação MD5 da transferência: 10c5d787ac0c9ab7c138e511d9668aa8
Tamanho da transferência: 28 KB
Espaço em disco estimado exigido: 776 KB
Tempo de construção estimado: menos que 0,1 UPC
Instale o lxqt-build-tools executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ .. && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
O pacote libdbusmenu-lxqt fornece uma implementação Qt do protocolo DBusMenu.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/lxqt/libdbusmenu-lxqt/releases/download/0.2.0/libdbusmenu-lxqt-0.2.0.tar.xz
Soma de verificação MD5 da transferência: 9e7871b3e8a1e75623bc8e0b8bfd6035
Tamanho da transferência: 40 KB
Espaço em disco estimado exigido: 8,0 MB
Tempo de construção estimado: 0,2 UPC (Usando paralelismo=4)
Instale libdbusmenu-lxqt executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ -W no-dev .. && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
-D WITH_DOC=ON
: Use
essa chave se você tiver instalado Doxygen-1.13.2 e
desejar construir a documentação opcional.
O pacote libqtxdg contém uma implementação Qt das especificações XDG do freedesktop.org.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/lxqt/libqtxdg/releases/download/4.1.0/libqtxdg-4.1.0.tar.xz
Soma de verificação MD5 da transferência: ccaac6dea23ed5385ae3f93099653c54
Tamanho da transferência: 72 KB
Espaço em disco estimado exigido: 8,7 MB
Tempo de construção estimado: 0,4 UPC
GTK-3.24.48 (para gtk-update-icon-cache) e xterm-397
Instale o libqtxdg executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ .. && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
O pacote lxqt-menu-data contém arquivos de menu compatíveis com o LXQt.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/lxqt/lxqt-menu-data/releases/download/2.1.0/lxqt-menu-data-2.1.0.tar.xz
Soma de verificação MD5 da transferência: 9eafc479031ffbe7ed50863b72771bce
Tamanho da transferência: 56 KB
Espaço em disco estimado exigido: 1,6 MB
Tempo de construção estimado: menos que 0,1 UPC
Instale o lxqt-menu-data executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ .. && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
A liblxqt é a biblioteca principal de utilitários para todos os componentes do LXQt.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/lxqt/liblxqt/releases/download/2.1.0/liblxqt-2.1.0.tar.xz
Soma de verificação MD5 da transferência: e6cab9e1e42d56505d1afd3914cd5211
Tamanho da transferência: 88 KB
Espaço em disco estimado exigido: 5,7 MB
tempo de construção estimado: 0,4 UPC
libqtxdg-4.1.0, kwindowsystem-6.11.0 para lxqt e polkit-qt-0.200.0
Instale o liblxqt executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ .. && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
O pacote libsysstat contém uma biblioteca usada para consultar informações e estatísticas do sistema.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/lxqt/libsysstat/releases/download/1.1.0/libsysstat-1.1.0.tar.xz
Soma de verificação MD5 da transferência: b21e0facd325c1d8e177121e2ac71e78
Tamanho da transferência: 20 KB
Espaço em disco estimado exigido: 1,9 MB
Tempo de construção estimado: menos que 0,1 UPC
Instale o libsysstat executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ .. && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
O qtxdg-tools contém uma ferramenta CLI MIME para lidar com associações de arquivos e abrir arquivos com os aplicativos padrão deles.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/lxqt/qtxdg-tools/releases/download/4.1.0/qtxdg-tools-4.1.0.tar.xz
Soma de verificação MD5 da transferência: ab241925bf7c3041313247fd8781a696
Tamanho da transferência: 20 KB
Espaço em disco estimado exigido: 1,7 MB
Tempo de construção estimado: 0,1 UPC
Instale o qtxdg-tools executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ .. && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
O pacote libfm-extra contém uma biblioteca e outros arquivos exigidos pelo programa menu-cache-gen em /usr/bin/libexec instalado por menu-cache-1.1.1.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://downloads.sourceforge.net/pcmanfm/libfm-1.3.2.tar.xz
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
Instale libfm-extra executando os seguintes comandos:
./configure --prefix=/usr \ --sysconfdir=/etc \ --with-extra-only \ --with-gtk=no \ --disable-static && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
--with-extra-only
:
Essa chave desabilita todos os componentes, exceto a
biblioteca libfm-extra.
--with-gtk=no
: Essa
chave desabilita suporte para GTK+, porque não é necessário para esse
pacote.
--disable-static
:
Essa chave impede a instalação das versões estáticas das
bibliotecas.
O pacote Menu Cache contém uma biblioteca para criar e utilizar caches para acelerar a manipulação de menus de aplicativos definidos pelo freedesktop.org.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/lxde/menu-cache/archive/1.1.1/menu-cache-1.1.1.tar.gz
Soma de verificação MD5 da transferência: a15e0de38188622a6b9e63433a6d616f
Tamanho da transferência: 68 KB
Espaço em disco estimado exigido: 3,8 MB
Tempo de construção estimado: menos que 0,1 UPC
GTK-Doc-1.34.0 e libfm-extra-1.3.2
sh autogen.sh && ./configure --prefix=/usr --disable-static && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
--disable-static
:
Essa chave impede a instalação das versões estáticas das
bibliotecas.
--enable-gtk-doc
: Use essa opção
se GTK-Doc estiver instalado
e você desejar construir e instalar a documentação da API.
libfm-qt é a porta Qt da libfm, uma biblioteca que fornece componentes para construir gerenciadores de arquivos da área de trabalho. No LXQt, libfm-qt também lida com ícones e planos de fundo da área de trabalho.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/lxqt/libfm-qt/releases/download/2.1.0/libfm-qt-2.1.0.tar.xz
Soma de verificação MD5 da transferência: 3ba7dc9e68e222e0180c1a86ee95e92c
Tamanho da transferência: 412 KB
Espaço em disco estimado exigido: 27 MB
Tempo de construção estimado: 0,4 UPC (Usando paralelismo=4)
Instale o libfm-qt executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ .. && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
O pacote lxqt-globalkeys contém um processo de segundo plano usado para registrar atalhos globais de teclado, bem como um editor para atalhos de teclado.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/lxqt/lxqt-globalkeys/releases/download/2.1.0/lxqt-globalkeys-2.1.0.tar.xz
Soma de verificação MD5 da transferência: 9a8d73be17f61157fa67f36c06a9967c
Tamanho da transferência: 76 KB
Espaço em disco estimado exigido: 10 MB
Tempo de construção estimado: 0,6 UPC
Instale o lxqt-globalkeys executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ .. && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
O pacote lxqt-qtplugin fornece um plugin Qt de integração da plataforma LXQt.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/lxqt/lxqt-qtplugin/releases/download/2.1.0/lxqt-qtplugin-2.1.0.tar.xz
Soma de verificação MD5 da transferência: 0c548d3298c8b4ad6a38adff80903dce
Tamanho da transferência: 24 KB
Espaço em disco estimado exigido: 2,2 MB
Tempo de construção estimado: 0,1 UPC
Instale o lxqt-qtplugin executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ .. && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
O pacote lxqt-panel contém um painel leve de área de trabalho do X11.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/lxqt/lxqt-panel/releases/download/2.1.4/lxqt-panel-2.1.4.tar.xz
Soma de verificação MD5 da transferência: 393531f5a06db5b2e271cf8558acb673
Tamanho da transferência: 696 KB
Espaço em disco estimado exigido: 66 MB
Tempo de construção estimado: 0,9 UPC (Usando paralelismo=4)
layer-shell-qt-6.3.2 para lxqt, libdbusmenu-lxqt-0.2.0, liblxqt-2.1.0, lxqt-globalkeys-2.1.0, lxqt-menu-data-2.1.0, solid-6.11.0 para lxqt e menu-cache-1.1.1
PulseAudio-17.0, libstatgrab-0.92.1 (monitor de rede de intercomunicação e plugins de carga da CPU), libsysstat-1.1.0 (plugins monitores de CPU e de rede de intercomunicação), libxkbcommon-1.8.0 (plugin indicador de teclado) e lm-sensors-3-6-0 (plugin de sensores)
Instale o lxqt-panel executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ .. && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
O pcmanfm-qt é um gerenciador de arquivos e gerenciador de ícones da área de trabalho (uma porta Qt do pcmanfm e libfm).
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/lxqt/pcmanfm-qt/releases/download/2.1.0/pcmanfm-qt-2.1.0.tar.xz
Soma de verificação MD5 da transferência: 764ee07067c3da652e9f7188c4f5194a
Tamanho da transferência: 392 KB
Espaço em disco estimado exigido: 15 MB
Tempo de construção estimado: 0,5 UPC
layer-shell-qt-6.3.2 para lxqt, liblxqt-2.1.0, libfm-qt-2.1.0 e lxqt-menu-data-2.1.0
Gvfs-1.56.1 (tempo de execução) e oxygen-icons-6.0.0 ou outro tema de ícones (dependendo da tua escolha, alguns ícones estarão ausentes em vários lugares)
Se libLayerShellQtInterface.so for instalado em /opt, ajude
esse pacote a encontrá-lo. Como o(a) usuário(a) root
:
if [ -e /opt/kf6/lib/libLayerShellQtInterface.so -a \ ! -e /usr/lib/libLayerShellQtInterface.so ]; then ln -sv /opt/kf6/lib/libLayerShellQtInterface.so \ /usr/lib/libLayerShellQtInterface.so fi
Instale o pcmanfm-qt executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ .. && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
Para facilitar a localização do pcmanfm-qt nos menus, ajuste o arquivo
.desktop. Novamente, como o(a) usuário(a) root
:
sed -e '/Categories=/s/=/=System;FileTools;/' \ -e '/Name=/s/=.*/=Gerenciador de Arquivos PCManFM-Qt'/ \ -i /usr/share/applications/pcmanfm-qt.desktop
O pacote lxqt-powermanagement fornece o módulo de gerenciamento de energia para o LXQt.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/lxqt/lxqt-powermanagement/releases/download/2.1.0/lxqt-powermanagement-2.1.0.tar.xz
Soma de verificação MD5 da transferência: 1f4f22f365ebfe01d8681371b6c44a54
Tamanho da transferência: 100 KB
Espaço em disco estimado exigido: 7,6 MB
Tempo de construção estimado: 0,2 UPC
liblxqt-2.1.0, kidletime-6.11.0 para lxqt, solid-6.11.0 para lxqt e UPower-1.90.7
Instale o lxqt-powermanagement executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ .. && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
O pacote lxqt-runner fornece uma ferramenta usada para iniciar aplicativos rapidamente, digitando-se os nomes deles.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/lxqt/lxqt-runner/releases/download/2.1.2/lxqt-runner-2.1.2.tar.xz
Soma de verificação MD5 da transferência: b31e85e1442cb4fcd4e334499719c1b6
Tamanho da transferência: 224 KB
Espaço em disco estimado exigido: 5,4 MB
Tempo de construção estimado: 0,2 UPC
lxqt-globalkeys-2.1.0, kwindowsystem-6.11.0 para lxqt e muparser-2.3.5
Instale o lxqt-runner executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ .. && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
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.
O pacote lxqt-themes fornece vários arquivos gráficos e temas para a área de trabalho do LXQt.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/lxqt/lxqt-themes/releases/download/2.1.0/lxqt-themes-2.1.0.tar.xz
Soma de verificação MD5 da transferência: 4386288b8e3ec76d6c632437165b2956
Tamanho da transferência: 25 MB
Espaço em disco estimado exigido: 28 MB
Tempo de construção estimado: menos que 0,1 UPC
Instale o lxqt-themes executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ .. && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
O pacote lxqt-admin fornece duas ferramentas GUI para ajustar as configurações do sistema operacional no qual o LXQt está executando.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/lxqt/lxqt-admin/releases/download/2.1.0/lxqt-admin-2.1.0.tar.xz
Soma de verificação MD5 da transferência: 142e8b5fb283e15bd9bf38f1765e220f
Tamanho da transferência: 152 KB
Espaço em disco estimado exigido: 4,5 MB
Tempo de construção estimado: 0,3 UPC
Instale o lxqt-admin executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ .. && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
O pacote lxqt-about fornece a caixa de diálogo independente “Sobre” do LXQt.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/lxqt/lxqt-about/releases/download/2.1.0/lxqt-about-2.1.0.tar.xz
Soma de verificação MD5 da transferência: 4f277859abfc05ab0053cbc203d0ec5f
Tamanho da transferência: 48 KB
Espaço em disco estimado exigido: 3,1 MB
Tempo de construção estimado: menos que 0,1 UPC
Instale o lxqt-about executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ .. && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
O pacote lxqt-config fornece o Centro de Configuração do LXQt.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/lxqt/lxqt-config/releases/download/2.1.1/lxqt-config-2.1.1.tar.xz
Soma de verificação MD5 da transferência: 00cbb9f610c30e4609332863eee66d3d
Tamanho da transferência: 392 KB
Espaço em disco estimado exigido: 24 MB
Tempo de construção estimado: 0,4 UPC (Usando paralelismo=4)
liblxqt-2.1.0, kconfig-6.11.0 para lxqt, libkscreen-6.3.2 para lxqt e xorg-libinput-1.5.0
Instale o lxqt-config executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ .. && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
é o Centro de Configuração do LXQt |
|
é usado para mudar temas do sistema, temas de ícones e fontes usadas por aplicativos em uma sessão do LXQt |
|
configura a configuração de brilho de um monitor |
|
é usado para associar tipos de arquivos a aplicativos |
|
é 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 |
|
configura a localidade usada em sessões do LXQt |
|
é uma estrutura gráfica de interação direta com o(a) usuário(a) para o xrandr que configura monitores em um sistema |
|
contém as funções da API do liblxqt-config-cursor |
O pacote lxqt-policykit é o agente PolicyKit do LXQt.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/lxqt/lxqt-policykit/releases/download/2.1.0/lxqt-policykit-2.1.0.tar.xz
Soma de verificação MD5 da transferência: e5bc12d449ec092a9a19348e83225670
Tamanho da transferência: 40 KB
Espaço em disco estimado exigido: 2,3 MB
Tempo de construção estimado: menos que 0,1 UPC
Instale o lxqt-policykit executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ .. && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
O pacote lxqt-sudo é um estrutura gráfica de interação direta com o(a) usuário(a) para sudo e su respectivamente.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/lxqt/lxqt-sudo/releases/download/2.1.0/lxqt-sudo-2.1.0.tar.xz
Soma de verificação MD5 da transferência: d9f2b8d91046920c32197617c5da9a33
Tamanho da transferência: 40 KB
Espaço em disco estimado exigido: 2,1 MB
Tempo de construção estimado: menos que 0,1 UPC
Instale o lxqt-sudo executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ .. && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
O pacote lxqt-openssh-askpass é uma GUI para consultar credenciais em nome de outros aplicativos.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/lxqt/lxqt-openssh-askpass/releases/download/2.1.0/lxqt-openssh-askpass-2.1.0.tar.xz
Soma de verificação MD5 da transferência: 549d4340b291fb814db998a6ef06f21a
Tamanho da transferência: 20 KB
Espaço em disco estimado exigido: 1,7 MB
Tempo de construção estimado: menos que 0,1 UPC
Instale o lxqt-openssh-askpass executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ .. && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
O pacote lxqt-session contém o gerenciador padrão de sessão para o LXQt.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/lxqt/lxqt-session/releases/download/2.1.1/lxqt-session-2.1.1.tar.xz
Soma de verificação MD5 da transferência: c97df888167a022462a56d33576c913e
Tamanho da transferência: 212 KB
Espaço em disco estimado exigido: 11 MB
Tempo de construção estimado: 0,5 UPC
Instale o lxqt-session executando os seguintes comandos:
sed -e '/TryExec/s|=|=/usr/bin/|' \ -i xsession/lxqt.desktop.in && mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ .. && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
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.
Gerenciadores de janela diferentes do openbox-3.6.1 podem ser
usados, por exemplo Xfwm4-4.20.0. Por favor, observe que o
IceWM-3.7.1 não é um bom substituto.
Fluxbox funciona, embora
nesse contexto (com lxqt-config-2.1.1), openbox-3.6.1 seja melhor. O arquivo de
configuração /usr/share/lxqt/windowmanagers.conf
vem com
muitos exemplos de gerenciadores de janelas e aqueles que
estão instalados aparecerão em uma lista suspensa do
lxqt-config-session. Para
aqueles não incluídos em /usr/share/lxqt/windowmanagers.conf
, você
consegue usar o botão "pesquisar" do lxqt-config-session, por
exemplo, para Fluxbox-1.3.7, navegando pelo sistema de
arquivos até que consiga escolher o fluxbox.
xdg-desktop-portal-lxqt é uma estrutura de retaguarda para xdg-desktop-portal, que está usando a biblioteca Qt.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/lxqt/xdg-desktop-portal-lxqt/releases/download/1.1.0/xdg-desktop-portal-lxqt-1.1.0.tar.xz
Soma de verificação MD5 da transferência: 2651833d11d7de9fd44e4870065dbf67
Tamanho da transferência: 20 KB
Espaço em disco estimado exigido: 2,1 MB
Tempo de construção estimado: menos que 0,1 UPC
libfm-qt-2.1.0, kwindowsystem-6.11.0 para lxqt e xdg-desktop-portal-1.20.0 (ao tempo de execução)
Instale xdg-desktop-portal-lxqt executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ .. && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
O pacote obconf-qt é uma ferramenta de configuração baseada em Qt para o Openbox.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/lxqt/obconf-qt/releases/download/0.16.5/obconf-qt-0.16.5.tar.xz
Soma de verificação MD5 da transferência: d5575e961c56676ed7cff32d87564f26
Tamanho da transferência: 124 KB
Espaço em disco estimado exigido: 5,1 MB
Tempo de construção estimado: 0,2 UPC
hicolor-icon-theme-0.18, lxqt-build-tools-2.1.0, openbox-3.6.1 e Qt-6.8.2
Instale o obconf-qt executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ .. && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
Por favor, siga estas instruções antes de iniciar o LXQt pela primeira vez.
openbox-3.6.1, ou outro gerenciador de janelas, como o Xfwm4-4.20.0, ou o kwin originário do Plasma-6.3.2. Observe que o IceWM-3.7.1 não é adequado para o LXQt.
breeze-icons-6.11.0 e desktop-file-utils-0.28
lightdm-1.32.0 ou outro Gerenciador de Telas, por exemplo, sddm-0.21.0, ou XScreenSaver-6.09
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
Você consegue iniciar o LXQt a partir de um TTY, usando o xinit-1.4.3 ou usando um gerenciador gráfico de telas, como o lightdm-1.32.0.
Para iniciar o LXQt usando o xinit-1.4.3, execute os seguintes comandos:
cat > ~/.xinitrc << "EOF"
exec startlxqt
EOF
startx
A sessão do X inicia no primeiro terminal virtual não usado, normalmente vt1. Você pode comutar para outro vtn pressionando simultaneamente as teclas Ctrl-Alt-Fn (n=2, 3, ...) . Para comutar de volta para a sessão do X, normalmente iniciada em vt1, use Ctrl-Alt-F1. O vt onde o comando startx foi executado exibirá muitas mensagens, incluindo mensagens de iniciação do X, aplicativos iniciados automaticamente com a sessão e, eventualmente, algumas mensagens de aviso e erro, mas essas são ocultadas pela interface gráfica. Você possivelmente prefira redirecionar essas mensagens para um arquivo de registro, que pode ser usado para fins de depuração. Isso pode ser feito iniciando o X com:
startx &> ~/.x-session-errors
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.
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".
Esta é uma pequena coleção de aplicativos opcionais que adicionam recursos extras para a área de trabalho do LXQt.
O pacote lximage-qt contém um visualizador de imagens leve e um aplicativo de captura de tela.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/lxqt/lximage-qt/releases/download/2.1.1/lximage-qt-2.1.1.tar.xz
Soma de verificação MD5 da transferência: 75ee584882996b54ca97b9dd6f083afd
Tamanho da transferência: 840 KB
Espaço em disco estimado exigido: 12 MB
Tempo de construção estimado: 0,2 UPC
Instale o lximage-qt executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_BUILD_TYPE=Release \ -D CMAKE_INSTALL_PREFIX=/usr \ .. && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
Se você tiver o xdg-utils-1.2.1 instalado, como o(a)
usuário(a) root
, execute
xdg-icon-resource forceupdate
--theme hicolor.
O pacote lxqt-archiver é um arquivador Qt de arquivos simples e leve, independente de área de trabalho.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/lxqt/lxqt-archiver/releases/download/1.1.0/lxqt-archiver-1.1.0.tar.xz
Soma de verificação MD5 da transferência: b552ea9f448a003a9c2f212a8ecdc29f
Tamanho da transferência: 188 KB
Espaço em disco estimado exigido: 10 MB
Tempo de construção estimado: 0,3 UPC
Instale o lxqt-archiver executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_BUILD_TYPE=Release \ -D CMAKE_INSTALL_PREFIX=/usr \ .. && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
O pacote lxqt-notificationd é o processo de segundo plano de notificação do LXQt.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/lxqt/lxqt-notificationd/releases/download/2.1.1/lxqt-notificationd-2.1.1.tar.xz
Soma de verificação MD5 da transferência: dc9575b6f5c19f5a812d1e76737cfcb2
Tamanho da transferência: 64 KB
Espaço em disco estimado exigido: 5,1 MB
Tempo de construção estimado: 0,3 UPC
Instale o lxqt-notificationd executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_BUILD_TYPE=Release \ -D CMAKE_INSTALL_PREFIX=/usr \ .. && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
pavucontrol-qt é a porta Qt do utilitário de controle de volume pavucontrol, que é usado para ajustar os níveis de áudio no Pulseaudio. Ele é independente do ambiente de área de trabalho.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/lxqt/pavucontrol-qt/releases/download/2.1.0/pavucontrol-qt-2.1.0.tar.xz
Soma de verificação MD5 da transferência: 54d62e1b4dc56c0c6786d8bdfe1079e9
Tamanho da transferência: 116 KB
Espaço em disco estimado exigido: 6,2 MB
Tempo de construção estimado: 0,2 UPC
liblxqt-2.1.0 e PulseAudio-17.0 (construído com suporte a GLib-2.82.5)
Instale o pavucontrol-qt executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_BUILD_TYPE=Release \ -D CMAKE_INSTALL_PREFIX=/usr \ .. && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
O pacote qps contém um gerenciador de processos Qt.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/lxqt/qps/releases/download/2.10.0/qps-2.10.0.tar.xz
Soma de verificação MD5 da transferência: 6d2e293badc7ca6713e6d3954754adc0
Tamanho da transferência: 452 KB
Espaço em disco estimado exigido: 9,8 MB
Tempo de construção estimado: 0,4UPC
Instale o qps executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_BUILD_TYPE=Release \ -D CMAKE_INSTALL_PREFIX=/usr \ .. && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
Se você tiver o xdg-utils-1.2.1 instalado, como o(a)
usuário(a) root
, execute
xdg-icon-resource forceupdate
--theme hicolor.
Como o nome sugere, o pacote qtermwidget é um pequena engenhoca de terminal para Qt.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/lxqt/qtermwidget/releases/download/2.1.0/qtermwidget-2.1.0.tar.xz
Soma de verificação MD5 da transferência: 0c86d45218a71df826b569af5ae00f07
Tamanho da transferência: 188 KB
Espaço em disco estimado exigido: 6,7 MB
Tempo de construção estimado: 0,2 UPC (Usando paralelismo=4)
Instale o qtermwidget executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ .. && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
O pacote qterminal contém um emulador de terminal baseado em pequena engenhoca de Qt para o Qt com suporte para múltiplas abas.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/lxqt/qterminal/releases/download/2.1.0/qterminal-2.1.0.tar.xz
Soma de verificação MD5 da transferência: bbca04a1eaed5f781732aebdf43ca1e2
Tamanho da transferência: 228 KB
Espaço em disco estimado exigido: 10 MB
Tempo de construção estimado: 0,2 UPC (Usando paralelismo=4)
Instale o qterminal executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ .. && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
O pacote screengrab é uma ferramenta multiplataforma para fazer capturas de tela rapidamente.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/lxqt/screengrab/releases/download/2.9.0/screengrab-2.9.0.tar.xz
Soma de verificação MD5 da transferência: b56af6addfdb14a405ed67b1611d6569
Tamanho da transferência: 344 KB
Espaço em disco estimado exigido: 7,9 MB
Tempo de construção estimado: 0,3 UPC
Instale o screengrab executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_BUILD_TYPE=Release \ -D CMAKE_INSTALL_PREFIX=/usr \ .. && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
Se você tiver o xdg-utils-1.2.1 instalado, como o(a)
usuário(a) root
, execute
xdg-icon-resource forceupdate
--theme hicolor.
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 é um processador de texto útil para escrever informes, cartas e outros documentos formatados.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://anduin.linuxfromscratch.org/BLFS/abiword/abiword-3.0.5.tar.gz
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)
Documentos do AbiWord: https://anduin.linuxfromscratch.org/BLFS/abiword/abiword-docs-3.0.2.tar.gz
Soma de verificação MD5 dos Documentos do AbiWord: c92c0e1e2081db20757231a53d80c338
Tamanho dos Documentos do AbiWord: 1,5 MB
Boost-1.87.0, cURL-8.12.1, FriBidi-1.0.16, GOffice-0.10.59 e wv-1.2.9
dbus-glib-0.112, evolution-data-server-3.54.3, GLib-2.82.5 (com GObject Introspection), libgcrypt-1.11.0, libical-3.0.19, libsoup-2.74.3, Redland-1.0.17, Valgrind-3.24.0. Aiksaurus, GtkMathView, libchamplain, libwmf, libwpd, libwpg, libwps, Link Grammar Parser, Loudmouth, OTS, Psiconv e telepathy-glib
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
Primeiro, corrija uma falha de construção ao usar libxml-2.12.x:
sed -e '/libxml/a #include <libxml/xmlmemory.h>' \ -i src/af/util/xp/ut_stringbuf.cpp
Instale o AbiWord executando os seguintes comandos:
sed -e "s/free_suggestions/free_string_list/" \ -e "s/_to_personal//" \ -e "s/in_session/added/" \ -i src/af/xap/xp/enchant_checker.cpp && ./configure --prefix=/usr && make
Esse aplicativo não vem com uma suíte funcional de teste.
Agora, como o(a) usuário(a) root
:
make install
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:
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
sed ...: Esse comando corrige o fonte para mudanças na dependência enchant-2.8.2.
--enable-plugins="collab openxml goffice
grammar"
: Construa alguns ou todos os plugins. O
plugin openxml habilita o Abiword para abrir alguns arquivos
.docx. O plugin grammar exige Analisador da
Gramática de Links
Escolha o modelo correto para teu idioma e localidade a partir da lista produzida pelo seguinte comando:
ls /usr/share/abiword-3.0/templates
Crie a pasta ~/.AbiSuite/templates
e, então, copie o
normal.awt
que você queira
para ela:
install -v -m750 -d ~/.AbiSuite/templates &&
install -v -m640 /usr/share/abiword-3.0/templates/normal.awt-<idioma>
\
~/.AbiSuite/templates/normal.awt
Mude <idioma>
pelo comando
acima para ajustar o nome do arquivo que você queira.
Se estiver usando vários idiomas, você possivelmente necessite editar o modelo para usar uma fonte com maior cobertura (por exemplo, uma das Fontes Dejavu, porque o Abiword não usa fontconfig e somente consegue exibir glifos que sejam fornecidos na fonte escolhida.
Se tiver desktop-file-utils-0.28 instalado, você deveria executar o comando update-desktop-database para atualizar o cache mimeinfo e permitir que o sistema de Ajuda funcione.
Se tiver xdg-utils-1.2.1 instalado, você deveria executar o comando xdg-icon-resource forceupdate --theme hicolor, para que o ícone instalado seja exibido no item de menu.
O pacote Gnumeric contém um aplicativo de planilha que é útil para análise matemática.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/gnumeric/1.12/gnumeric-1.12.59.tar.xz
Soma de verificação MD5 da transferência: b4629f134acc1649b79c99be13e9f1e9
Tamanho da transferência: 17 MB
Espaço em disco estimado exigido: 251 MB (adicionar 17 MB para os testes)
Tempo de construção estimado: 1,0 UPC (adicionar 2,7 UPC para testes; ambos usando paralelismo=4)
GOffice-0.10.59 e itstool-2.0.7
Um tema de ícones, como o adwaita-icon-theme-47.0, oxygen-icons-6.0.0 ou gnome-icon-theme-3.12.0; um ambiente gráfico e Yelp-42.2 para a funcionalidade de ajuda integrada
DConf-0.40.0 (para evitar algumas falhas de testes), GLib-2.82.5 (com GObject Introspection), PyGObject-3.50.0, Valgrind-3.24.0 (para alguns testes), dblatex (para documentos PDF), libgda, Mono, pxlib e Psiconv
Instale o Gnumeric executando os seguintes comandos:
./configure --prefix=/usr && make
Esse pacote precisa ser instalado antes da suíte de teste ser executada.
Agora, como o(a) usuário(a) root
:
make install
Para executar os testes, emita make check. Os testes deveriam ser executados a partir de uma sessão ativa do X e DConf-0.40.0 deveria ser instalado para evitar algumas falhas. Dois testes são conhecidos por falharem. Falhas adicionais possivelmente ocorram se valgrind estiver instalado.
--enable-pdfdocs
: Use essa chave
se você tiver instalado o dblatex e desejar criar documentos
PDF.
é um link simbólico para gnumeric-1.12.59 |
|
é o aplicativo de planilha do GNOME |
|
é um utilitário de linha de comando para converter arquivos de planilha entre vários formatos de arquivo de planilha |
|
é um utilitário de linha de comando para comparar duas planilhas |
|
é um utilitário de linha de comando para pesquisar sequências de caracteres em planilhas |
|
é um utilitário de linha de comando para gerar dados de índice para arquivos de planilha |
|
contém as funções da API do gnumeric |
LibreOffice é uma suíte de escritório completa. É amplamente compatível com o Microsoft Office e é descendente do OpenOffice.org.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência Central: https://download.documentfoundation.org/libreoffice/src/25.2.1/libreoffice-25.2.1.2.tar.xz
Soma de verificação MD5 da Transferência Central: 048d0354e6cfdb61c39e7f06cd0ad16c
Tamanho da Transferência Central: 268 MB
Espaço em disco estimado exigido: 11,0 GB incluindo os arquivos adicionais se baixados durante a construção (776 MB instalado). Instalar o conjunto inteiro de idiomas exige mais que 25 GB (cerca de 3 GB instalado)
Tempo de construção estimado: 35 UPC com paralelismo=8 (variará devido ao tempo de transferência)
Cerca de oitenta (80) pequenos tarballs e arquivos zip serão baixados durante a construção. O tempo de transferência variará com a velocidade local da Internet e carga do servidor. O tempo de transferência é de cerca de três (03) minutos em uma conexão de fibra e provavelmente não muito mais que dez (10) minutos em uma conexão ADSL. Se você não tiver instalado um ou mais das seguintes dependências, elas também serão baixados durante a construção.
Dicionários: https://download.documentfoundation.org/libreoffice/src/25.2.1/libreoffice-dictionaries-25.2.1.2.tar.xz
Soma de verificação MD5 dos Dicionários: fe89767a933839ec9c784a73f6a0585c
Tamanho dos Dicionários: 56 MB
Arquivos de Ajuda: https://download.documentfoundation.org/libreoffice/src/25.2.1/libreoffice-help-25.2.1.2.tar.xz
Soma de verificação MD5 dos Arquivos de Ajuda: 186ce73aeec67abcd1493095c89c947e
Tamanho dos Arquivos de Ajuda: 58 MB
Soma de verificação MD5 das Traduções: ff2232d569cc9d6ad6a59eea2e57dc86
Tamanho das Traduções: 219 MB
Remendo exigido para corrigir construir com ICU-76.1: https://www.linuxfromscratch.org/patches/blfs/12.3/libreoffice-25.2.1.2-icu76_fixes-1.patch
Archive-Zip-1.68, libarchive-3.7.7, Wget-1.25.0, Which-2.23 e Zip-3.0
Uma conexão com a Internet é necessária para construir esse pacote. A loja de certificados do sistema possivelmente precise ser configurada com make-ca-1.15 antes de se construir esse pacote
A maioria desses pacotes é recomendada porque, se não estiverem instalados, o processo de construção compilará e instalará a própria versão dela (geralmente mais antiga), com o efeito colateral de aumentar ambos, espaço em disco de construção e instalado, juntamente com aumentar o tempo de construção.
apache-ant-1.10.15, Boost-1.87.0, CLucene-2.3.3.4, Cups-2.4.11, cURL-8.12.1, libepoxy-1.5.10, libjpeg-turbo-3.0.1, LLVM-19.1.7 (clang é preferido para renderizar com skia), GLM-1.0.1, GLU-9.0.3, GPGME-1.24.2, Graphite2-1.3.14, gst-plugins-base-1.24.12, GTK-3.24.48, harfBuzz-10.4.0, ICU-76.1, libatomic_ops-7.8.2, Little CMS-2.17, librsvg-2.59.2, libtiff-4.7.0, libwebp-1.5.0, libxml2-2.13.6 e libxslt-1.1.42, lxml-5.3.1, Mesa-24.3.4, nss-3.108, OpenLDAP-2.6.9 (se conectar a um servidor LDAP), Poppler-25.02.0, PostgreSQL-17.4, Redland-1.0.17 e unixODBC-2.3.12
Abseil-cpp-20250127.0, Avahi-0.8, BlueZ-5.79, DConf-0.40.0, desktop-file-utils-0.28, Doxygen-1.13.2 (não relevante se usar --disable-odk), evolution-data-server-3.54.3, GDB-16.2, GnuTLS-3.8.9, GTK-4.16.12, KDE Frameworks-6.11.0, libpaper-2.2.6, MariaDB-11.4.5 ou MySQL, MIT Kerberos V5-1.21.3, NASM-2.16.03, Qt-6.8.2, SANE-1.2.1, Valgrind-3.24.0, VLC-3.0.21, Apache Commons Codec, Apache Commons HttpClient, Apache Commons Lang, Apache Commons Logging, BeanShell, box2d, CoinMP, Cppunit, Dragonbox, Firebird, frozen, glyphy, Gnome VFS, hamcrest, Hunspell, Hyphen, iwyu, Java-WebSocket, junit4, libabw, libcdr, libcmis, libebook, libepubgen, libetonyek, libexttextcat, libfixmath, libfreehand, liblangtag, libmspub, libmwaw, libnumbertext, libodfgen, libpagemaker, libqrcodegen, libqxp, librevenge (importador WordPerfect Document), libstaroffice, libvisio, libwpd, libwpg, libwps, libzmf, lp_solve, mdds, MyThes, odfvalidator, officeotron, OpenCOLLADA, Orcus, SystemTap e VIGRA
Existem muitas dependências opcionais não listadas aqui. Elas
podem ser encontrados no arquivo download.lst
no diretório do fonte.
Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/libreoffice
Primeiro, corrija falhas de construção introduzidas pela versão mais recente do ICU:
patch -Np1 -i ../libreoffice-25.2.1.2-icu76_fixes-1.patch
Em seguida, corrija um defeito com lincagem para zlib, corrija um defeito que causaria uma falha da instalação, e evite a compressão de páginas de manual:
sed -i '/icuuc \\/a zlib\\' writerperfect/Library_wpftdraw.mk && sed -i "/distro-install-file-lists/d" Makefile.in && sed -e "/gzip -f/d" \ -e "s|.1.gz|.1|g" \ -i bin/distro-install-desktop-integration
Se você tiver baixado os tarballs de dicionários, ajuda e de traduções, crie links simbólicos para eles a partir do diretório do fonte, de forma que não sejam baixados novamente:
install -dm755 external/tarballs && ln -sv ../../../libreoffice-dictionaries-25.2.1.2.tar.xz external/tarballs/ && ln -sv ../../../libreoffice-help-25.2.1.2.tar.xz external/tarballs/ && ln -sv ../../../libreoffice-translations-25.2.1.2.tar.xz external/tarballs/
As instruções no pacote desempacotam alguns tarballs em um local que não pode ser encontrado posteriormente. Crie alguns links simbólicos para ajudar o sistema de construção:
ln -sv src/libreoffice-help-25.2.1.2/helpcontent2/ && ln -sv src/libreoffice-dictionaries-25.2.1.2/dictionaries/ && ln -sv src/libreoffice-translations-25.2.1.2/translations/
Durante o processo de construção, alguns pacotes serão baixados (incluindo aqueles listados como dependências recomendadas e opcionais) se eles não estiverem presentes no sistema. Por causa disso, o tempo de construção possivelmente varie do horário publicado mais que o normal.
Devido ao grande tamanho do pacote, você possivelmente
prefira instalá-lo em /opt
, em
vez de /usr
. Dependendo da tua
escolha, substitua <PREFIX>
por
/usr
ou por /opt/libreoffice-25.2.1.2
:
export LO_PREFIX=<PREFIXO>
Os locais "fr" e "en-GB", que você encontrará abaixo, são apenas exemplos; você deveria mudá-los para atender às tuas necessidades - você pode querer ler as "Explicações do Comando", mais abaixo, antes de continuar.
Se você configurou a variável de ambiente ACLOCAL para suportar a instalação do Xorg em /opt, você precisará desconfigurá-la para esse pacote.
Se você estiver construir em uma máquina de 32 bits,
CFLAGS
está configurada como
-Os, o que
quebra a construção. Evite isso emitindo:
case $(uname -m) in i?86) sed /-Os/d -i solenv/gbuild/platform/LINUX_INTEL_GCC.mk ;; esac
Prepare o LibreOffice para compilação executando os seguintes comandos:
./autogen.sh --prefix=$LO_PREFIX \ --sysconfdir=/etc \ --with-vendor=BLFS \ --with-lang='fr en-GB' \ --with-help \ --with-myspell-dicts \ --without-junit \ --without-system-dicts \ --disable-dconf \ --disable-odk \ --disable-mariadb-sdbc \ --enable-release-build=yes \ --enable-python=system \ --with-jdk-home=/opt/jdk \ --with-system-boost \ --with-system-clucene \ --with-system-curl \ --with-system-epoxy \ --with-system-expat \ --with-system-glm \ --with-system-gpgmepp \ --with-system-graphite \ --with-system-harfbuzz \ --with-system-jpeg \ --with-system-lcms2 \ --with-system-libatomic_ops \ --with-system-libpng \ --with-system-libxml \ --with-system-nss \ --with-system-odbc \ --with-system-openldap \ --with-system-openssl \ --with-system-poppler \ --with-system-postgresql \ --with-system-redland \ --with-system-libtiff \ --with-system-libwebp \ --with-system-icu \ --with-system-zlib
Construa o pacote:
make build
Agora, como o(a) usuário(a) root
:
make distro-pack-install
Se instalado em /opt/libreoffice-25.2.1.2
, alguns passos
adicionais são necessários. Emita os seguintes comandos como
o(a) usuário(a) root
:
if [ "$LO_PREFIX" != "/usr" ]; then # Este link simbólico é necessário para as entradas do menu da área de trabalho ln -svf $LO_PREFIX/lib/libreoffice/program/soffice /usr/bin/libreoffice && # Configure um local genérico independente do número da versão ln -sfv $LO_PREFIX /opt/libreoffice # Ícones mkdir -vp /usr/share/pixmaps for i in $LO_PREFIX/share/icons/hicolor/32x32/apps/*; do ln -svf $i /usr/share/pixmaps done && # Entradas do menu da área de trabalho for i in $LO_PREFIX/lib/libreoffice/share/xdg/*; do ln -svf $i /usr/share/applications/libreoffice-$(basename $i) done && # Páginas de manual for i in $LO_PREFIX/share/man/man1/*; do ln -svf $i /usr/share/man/man1/ done unset i fi
Se você tiver instalado o desktop-file-utils-0.28 e
desejar atualizar a base de dados MIME, emita, como o(a)
usuário(a) root
:
update-desktop-database
A suíte e os módulos principais podem ser iniciados a partir
do menu. A partir de um terminal, a suíte pode ser iniciada
com o comando libreoffice e os módulos
com o comando libreoffice
--<módulo>
,
respectivamente, onde <módulo>
é base, calc,
draw, impress, math, web ou writer. Os módulos não podem ser
iniciados usando os nomes deles de script de iniciação do
shell (veja-se "Aplicativos Instalados", abaixo), se
LO_PREFIX for diferente de /usr
, a menos que o diretório $LO_PREFIX/bin
seja adicionado ao PATH.
--with-vendor=BLFS
:
Essa chave configura BLFS como o fornecedor mencionado quando
você clica em "Sobre" a partir do menu Ajuda na barra de
ferramentas.
--with-lang='fr
en-GB'
: Essa chave configura quais idiomas
suportar. Para listar vários idiomas, separe-os com um
espaço. Para todos os idiomas, use --with-lang=ALL
. Observe que o arquivo de
tradução não é necessário e não seria baixado se usar somente
en-US como um idioma.
Para uma lista dos idiomas disponíveis, olhe em
solenv/inc/langlist.mk
.
--with-help
: Sem essa
chave, os arquivos de ajuda não são construídos.
--with-jdk-home=/opt/jdk
: Esse
parâmetro silenciará um aviso de que o conjunto de comandos
sequenciais de configuração tentou encontrar JAVA_HOME
automaticamente (mesmo que isso seja passado no ambiente).
Omita isso se você desabilitou o java.
--with-myspell-dicts
:
Essa chave adiciona dicionários myspell ao conjunto de
instalação do LibreOffice.
--with-system-boost
:
Essa chave habilita usar o boost do sistema. De tempos em
tempos, versões recentes do boost quebram a construção do
libreoffice. Nesse caso, é possível usar a cópia agrupada do
boost removendo esse sinalizador.
--disable-dconf
: Essa
chave desabilita compilar o LibreOffice com o suporte do sistema de
configuração GNOME DConf.
--without-junit
: Essa
chave desabilita os testes para o controlador obsoleto HSQLDB
que é escrito em Java.
--without-system-dicts
: Essa
chave desabilita o uso de dicionários originários de caminhos
do sistema, de forma que aqueles instalados por esse pacote
sejam usados.
--disable-odk
: Essa
chave desabilita instalar o kit de desenvolvimento do Office.
Remova se você quiser desenvolver um aplicativo baseado no
LibreOffice.
--disable-mariadb-sdbc
: Essa
chave desabilita o conector SDBC do MariaDB para o
Libreoffice Base. Deixá-lo habilitado resulta em uma falha de
construção por causa de um problema de vinculação a MIT
Kerberos V5-1.21.3.
--enable-release-build=yes
:
Essa chave habilita uma Construção de Lançamento. O
LibreOffice pode ser
construído como uma Construção de Lançamento ou como uma
Construção de Desenvolvedor(a), porque os caminhos padrão de
instalação deles e caminhos de perfil de usuário(a) são
diferentes. A Construção de Desenvolvedor(a) exibe as
palavras "Dev" e "Beta" em vários lugares (por exemplo, menu
e tela inicial).
--enable-python=system
: Essa
chave diz ao LibreOffice
para usar o Python 3
instalado no sistema em vez daquele empacotado.
--with-system-icu
:
Essa chave informa ao sistema de construção para usar a
versão instalada de sistema do ICU.
--with-system-*
:
Essas chaves evitam que o LibreOffice tente compilar as próprias
versões dele dessas dependências. Se você não tiver instalado
algumas das dependências, remova as chaves correspondentes.
make distro-pack-install: Isso faz uma instalação normal, mas se você adicionar uma variável de ambiente DESTDIR, ela também instalará um monte de arquivos (de texto) gid_Module_* no DESTDIR, para ajudar distribuições que queiram quebrar o pacote em partes.
--with-parallelism=<soma>
:
Essa chave diz ao LibreOffice para usar <soma>
Elementos de Processamento de CPU para compilar em paralelo.
(Não inclua colchetes angulares literais). O padrão é o de
usar todos os Elementos de Processamento disponíveis no
sistema.
--disable-cups
: Use essa chave se
você não precisar de suporte para impressão.
--disable-dbus
: Use essa chave se
você não tiver instalado o D-Bus-1.8.0 ou posterior. Ela
também desabilita o suporte a Bluetooth e a instalação de
fontes via PackageKit.
--disable-firebird-sdbc
: Por
padrão, a habilidade de conectar-se a uma base de dados
firebird está habilitada.
Adicione essa chave se você não precisar desse recurso.
--disable-gstreamer-1-0
: Use essa
chave se você não tiver instalado o gst-plugins-base-1.24.12.
--disable-postgresql-sdbc
: Essa
chave desabilita compilar o LibreOffice com a habilidade de
conectar-se a uma base de dados PostgreSQL. Use-a se você não tiver
instalado o PostgreSQL e não
quiser que o LibreOffice
compile a cópia empacotada dele.
--disable-skia
: Use Cairo-1.18.2
para renderizar em vez de skia.
--enable-lto
: Essa chave
habilitará o Link Time Optimization, o que resulta em
bibliotecas um pouco menores (cerca de 40 MB). Diz-se que
isso faz com que os aplicativos do LibreOffice carreguem mais rápido (e
possivelmente executem mais rápido, por exemplo, ao
recalcular uma planilha). Em uma máquina de 8 Elementos de
Processamento com 16 GB de memória, a diferença nos tempos de
compilação foi mínima, mas 2 GB extras foram usados para os
arquivos de trabalho. Em máquinas com menos processadores ou
falta de memória, a compilação pode ser muito mais lenta.
--without-java
: Essa chave
desabilita o suporte a Java
no LibreOffice. Java é
necessário para o controlador obsoleto HSQLDB, que permite
ler bases de dados criadas por outros aplicativos ou em
versões anteriores do libreoffice base. Também é necessário para alguns
componentes opcionais de interface de usuário(a).
--without-fonts
: LibreOffice inclui diversas fontes
TrueType de terceiros(as). Se você já tiver instalado algumas
ou todas as mesmas fontes, possivelmente prefira usar as
versões do sistema.
--enable-evolution2
: Habilita o
suporte para catálogos de endereços do Evolution por meio do
Servidor de Dados do Evolution. Observe que o Servidor de
Dados do Evolution precisa estar instalado para esse recurso
funcionar.
--enable-qt5
: Essa chave habilita
suporte para integração com Qt6 e o mecanismo de temas do
Qt6. Se Qt-6.8.2 não estiver instalado em /usr
, os diretórios de inclusão e
biblioteca precisarão ser especificados nas variáveis de
ambiente QT6INC
e QT6LIB
.
--enable-kf6
: Essa chave habilita
integração KDE/Plasma. Se Qt-6.8.2 e (ou) KDE
Frameworks-6.11.0 não estiverem instalados em
/usr
, os diretórios de inclusão
e biblioteca precisarão ser especificados em QT6INC
, QT6LIB
,
KF6INC
e KF6LIB
, respectivamente. Isso inclui um plugin
de estilo e integração com KIO.
--with-system-abseil
: Essa chave
habilita usar uma versão de sistema das bibliotecas C++ de
Abseil, em vez da cópia agrupada. Adicione essa chave se
Abseil-cpp-20250127.0 estiver
instalado e você desejar usá-lo em vez da cópia agrupada.
--enable-gtk4
: Essa chave
habilita integração com GTK-4, incluindo o uso de uma caixa
de diálogo de navegação de arquivos e temas do GTK-4.
é a suíte principal do libreoffice (link simbólico para $LO_PREFIX/lib/libreoffice/program/soffice) |
|
é o conjunto de comandos sequenciais de iniciação do shell do módulo gerenciador de base de dados |
|
é o conjunto de comandos sequenciais de iniciação do shell do módulo de planilha |
|
é 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 |
|
é o conjunto de comandos sequenciais de iniciação do shell do módulo de exibição e o editor de apresentações (PowerPoint) |
|
é o conjunto de comandos sequenciais de iniciação do shell do módulo do editor de fórmulas matemáticas |
|
é o conjunto de comandos sequenciais de iniciação do shell do módulo do editor de HTML |
|
é o conjunto de comandos sequenciais de iniciação do shell do módulo do processador de texto |
|
é uma ferramenta para gerenciar extensões do LibreOffice a partir da linha de comando |
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 é um navegador da web do GNOME simples, mas poderoso, direcionado a usuários(as) não técnicos(as). Os princípios dele são simplicidade e conformidade com padrões.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/epiphany/47/epiphany-47.3.1.tar.xz
Soma de verificação MD5 da transferência: ba8e94876c62e3c17cad15a7e025d643
Tamanho da transferência: 3,9 MB
Espaço em disco estimado exigido: 48 MB (com testes)
Tempo de construção estimado: 0,2 UPC (com testes; ambos usando paralelismo=4)
Gcr-4.3.1, gnome-desktop-44.1, ISO Codes-4.17.0, JSON-GLib-1.10.6, libadwaita-1.6.4, libportal-0.9.1, Nettle-3.10.1 e WebKitGTK-2.46.6 (construído com GTK-4)
appstream-glib-0.8.3 e Granite
gnome-keyring-46.2 (para armazenar senhas) e Seahorse-47.0.1 (para gerenciar senhas armazenadas)
Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/epiphany
Se você estiver atualizando a partir de um epiphany-46 ou
anterior, remova alguns arquivos que causarão uma falha em
tempo de execução se estiverem presentes, como o(a)
usuário(a) root
:
rm -rf /usr/lib/epiphany
Instale o Epiphany executando os seguintes comandos:
mkdir build && cd build && meson setup --prefix=/usr --buildtype=release .. && ninja
Agora, como o(a) usuário(a) root
:
ninja install
Se você instalou o pacote em teu sistema usando um método
“DESTDIR”, /usr/share/glib-2.0/schemas/gschemas.compiled
não foi atualizado/criado. Crie (ou atualize) o arquivo
usando o seguinte comando como o(a) usuário(a) root
:
glib-compile-schemas /usr/share/glib-2.0/schemas
Um teste falharia se esse pacote não estivesse instalado, de forma que é melhor executar a suíte de teste depois da instalação. Para testar os resultados, emita ninja test. Os testes precisam ser executados a partir de uma sessão gráfica.
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
Falkon é um navegador da web do KDE que usa o mecanismo de renderização QtWebEngine. Anteriormente era conhecido como QupZilla. O objetivo dele é o de ser um navegador leve da web, disponível em todas as principais plataformas.
Embora o falkon agora faça parte do KDE, ele pode ser instalado sem o KDE (com a perda da funcionalidade do kwallet).
Falkon depende de QtWebEngine. Por favor, leia o aviso nessa página.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.kde.org/stable/release-service/24.12.2/src/falkon-24.12.2.tar.xz
Soma de verificação MD5 da transferência: 7abeb30a6628e367725b38380e7f7eb8
Tamanho da transferência: 2,5 MB
Espaço em disco estimado exigido: 156 MB
Tempo de construção estimado: 1,6 UPC (Usando paralelismo=4; adicionar 0,6 UPC para testes)
extra-cmake-modules-6.11.0, KDE Frameworks-6.11.0 (para karchive) e qtwebengine-6.8.2
Estritamente falando, somente o karchive e ki18n são exigidos para construir o falkon, mas vários outros pacotes no KDE Frameworks-6.11.0 podem ser usados se estiverem presentes. Para construir somente o karchive e ki18n, baixe esses pacotes a partir do diretório especificado em KDE Frameworks-6.11.0 e use as instruções de construção naquela página, mudando a $KF6_PREFIX para /usr.
gnome-keyring-46.2, PySide2 e Shiboken2
Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/falkon
Instale o falkon executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ .. && make
Os testes deveriam ser executados depois da instalação.
Agora, como o(a) usuário(a) root
:
make install && ldconfig
Para testar os resultados, emita: make test. Todos os testes
deveriam passar. Se algum falhar, os resultados completos
estarão em Testing/Temporary/LastTest.log
.
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.
Se estiver em uma arquitetura não x86_64 e tiver problemas
com texto ausente, você possivelmente deseje exportar
QTWEBENGINE_CHROMIUM_FLAGS="--no-sandbox"
antes de executar o Falkon.
-D BUILD_TESTING=OFF
: Isso
economizará um pouco de tempo e espaço não construindo os
aplicativos de teste; use isso se você não desejar executar o
teste.
Firefox é um navegador autônomo baseado na base de código Mozilla.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://archive.mozilla.org/pub/firefox/releases/128.7.0esr/source/firefox-128.7.0esr.source.tar.xz
Soma de verificação MD5 da transferência: aab1f335242b809813d1d4b754d10c0b
Tamanho da transferência: 543 MB
Espaço em disco estimado exigido: 6,6 GB (217 MB instalado) sem testes
Tempo de construção estimado: 14 UPC usando -j8, sem testes
O nome do diretório é firefox-128.7.0
Extrair o tarball reconfigurará as permissões do diretório
atual para 0755, se você tiver permissão para fazer isso.
Se você fizer isso em um diretório onde o bit sticky
estiver configurado, como /tmp
, ela terminará com mensagens de
erro:
tar: .: Cannot utime: Operation not permitted
tar: .: Cannot change mode to rwxr-xr-t: Operation not permitted
tar: Exiting with failure status due to previous errors
Isso finaliza com situação diferente de zero, mas
NÃO significa que
existe um problema real. Não desempacote como o(a)
usuário(a) root
em um
diretório onde o bit sticky estiver configurado - isso irá
desconfigurá-lo.
Tal como acontece com outros pacotes grandes que usam C++ (ou rust), os tempos de UPC para construir isso variam mais amplamente que você poderia esperar. Os tempos de construção aumentarão significativamente se tua máquina tiver que trocar.
Embora o(a) desenvolvedor(a) prefira usar PulseAudio, no momento Alsa ainda pode ser usado. Ambos possivelmente precisem de configuração de tempo de execução para que o som funcione.
Cbindgen-0.28.0, GTK-3.24.48, libnotify-0.8.4, libarchive-3.7.7, LLVM-19.1.7 (com clang, usado para bindgen mesmo se usar-se gcc), nodejs-22.14.0, PulseAudio-17.0 (ou alsa-lib-1.2.13 se você editar o mozconfig; agora obsoleto pela mozilla), em ambos os cassos, por favor, leiam-se a Informações de Configuração, Python-3.13.2 (depois de instalar SQLite-3.49.1) e startup-notification-0.12
ICU-76.1, libevent-2.1.12, libvpx-1.15.0, libwebp-1.5.0, NASM-2.16.03 e nss-3.108
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.
cURL-8.12.1, Doxygen-1.13.2, FFmpeg-7.1 (tempo de execução, para reproduzir arquivos mov, mp3 ou mp4), GeoClue-2.7.2 (tempo de execução), liboauth-1.0.3, pciutils-3.13.0 (tempo de execução), Valgrind-3.24.0, Wget-1.25.0, Wireless Tools-29, yasm-1.3.0, libproxy
Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/firefox
A configuração do Firefox é
realizada criando-se um arquivo mozconfig
contendo as opções desejadas de
configuração. Um mozconfig
padrão é criado abaixo. Para ver a lista completa de opções
de configuração disponíveis (e uma descrição abreviada de
algumas delas), emita ./mach
configure -- --help | less. Você também
possivelmente revise o arquivo inteiro e descomente quaisquer
outras opções desejadas. Crie o arquivo emitindo o seguinte
comando:
cat > mozconfig << "EOF"
# If you have a multicore machine, all cores will be used by default.
# If you have installed (or will install) wireless-tools, and you wish
# to use geolocation web services, comment out this line
ac_add_options --disable-necko-wifi
# Comment out the following line if you wish not to use Google's Location
# Service (GLS). Note that if Geoclue is installed and configured to use
# GLS (as the BLFS instruction does), Firefox can access GLS via Geoclue
# anyway. On the other hand if Geoclue is not installed (or not properly
# configured) and this line is commented out, the website requiring a
# location service will not function properly.
ac_add_options --with-google-location-service-api-keyfile=$PWD/google-key
# startup-notification is required since firefox-78
# Uncomment the following option if you have not installed PulseAudio and
# want to use alsa instead
#ac_add_options --enable-audio-backends=alsa
# Comment out following options if you have not installed
# recommended dependencies:
ac_add_options --with-system-icu
ac_add_options --with-system-libevent
ac_add_options --with-system-libvpx
ac_add_options --with-system-nspr
ac_add_options --with-system-nss
ac_add_options --with-system-webp
# The libdav1d library (av1 decoder) requires nasm. Uncomment this
# if nasm has not been installed. Do not uncomment this if you have
# ffmpeg installed.
#ac_add_options --disable-av1
# You cannot distribute the binary if you do this.
ac_add_options --enable-official-branding
# Stripping is now enabled by default.
# Uncomment these lines if you need to run a debugger:
#ac_add_options --disable-strip
#ac_add_options --disable-install-strip
# Disabling debug symbols makes the build much smaller and a little
# faster. Comment this if you need to run a debugger.
ac_add_options --disable-debug-symbols
# The BLFS editors recommend not changing anything below this line:
ac_add_options --prefix=/usr
ac_add_options --enable-application=browser
ac_add_options --disable-crashreporter
ac_add_options --disable-updater
# Enabling the tests will use a lot more space and significantly
# increase the build time, for no obvious benefit.
ac_add_options --disable-tests
# This enables SIMD optimization in the shipped encoding_rs crate.
ac_add_options --enable-rust-simd
ac_add_options --enable-system-ffi
ac_add_options --enable-system-pixman
ac_add_options --with-system-jpeg
ac_add_options --with-system-png
ac_add_options --with-system-zlib
# Sandboxing works well on x86_64 but might cause issues on other
# platforms, e.g. i686.
[ $(uname -m) != x86_64 ] && ac_add_options --disable-sandbox
# Using sandboxed wasm libraries has been moved to all builds instead
# of only mozilla automation builds. It requires extra llvm packages
# and was reported to seriously slow the build. Disable it.
ac_add_options --without-wasm-sandboxed-libraries
# The following option unsets Telemetry Reporting. With the Addons Fiasco,
# Mozilla was found to be collecting user's data, including saved passwords and
# web form data, without users consent. Mozilla was also found shipping updates
# to systems without the user's knowledge or permission.
# As a result of this, use the following command to permanently disable
# telemetry reporting in Firefox.
unset MOZ_TELEMETRY_REPORTING
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/firefox-build-dir
EOF
Se você estiver construindo com o ICU do sistema, adapte o mapeamento de quebra de linha para ICU 74 ou posterior. Esta construção adiciona cinco entradas para um vetor c++.
for i in {43..47}; do sed -i '/ZWJ/s/}/,CLASS_CHARACTER&/' intl/lwbrk/LineBreaker.cpp done
Se você estiver construindo com o ICU do sistema, adapte o sistema de construção para usar a biblioteca correta:
sed -i 's/icu-i18n/icu-uc &/' js/moz.configure
Compile o Firefox emitindo os seguintes comandos:
Se as APIs de geolocalização forem necessárias:
A chave de API do Google abaixo é específica para o LFS. Se usar essas instruções para outra distribuição ou se você pretender distribuir cópias binárias do software usando essas instruções, por favor, obtenha as tuas próprias chaves seguindo as instruções localizadas em https://www.chromium.org/developers/how-tos/api-keys.
echo "AIzaSyDxKL42zsPjbke5O8_rPVpVrLrJ8aeE9rQ" > google-key
Se você estiver compilando esse pacote em chroot, você
precisa assegurar que /dev/shm
esteja montado. Se você não
fizer isso, a configuração do Python falhará com um informe de
rastreamento reverso referenciando /usr/lib/pythonN.N/multiprocessing/synchronize.py
.
Como o(a) usuário(a) root
,
execute:
mountpoint -q /dev/shm || mount -t tmpfs devshm /dev/shm
Agora invoque o conjunto de comandos sequenciais Python mach para compilar o pacote.
export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE=none && export MOZBUILD_STATE_PATH=${PWD}/mozbuild && ./mach build
O mozconfig
acima desabilita os
testes porque eles usam muito mais tempo e espaço em disco
sem nenhum benefício óbvio. Se você, mesmo assim, os tiver
ativado, poderá executar os testes executando ./mach gtest. Isso exigirá
uma conexão de rede de intercomunicação e será executado a
partir de uma sessão do Xorg - existe uma caixa de diálogo
pop-up quando ele falha ao se conectar ao ALSA (isso não cria
um teste com falha). Um ou dois testes falharão. Para ver os
detalhes da(s) falha(s), você precisará registrar a saída
gerada a partir desse comando, de forma que consiga
revisá-la(s).
Agora, como o(a) usuário(a) root
:
export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE=none && ./mach install
Esvazie as variáveis de ambiente que foram configuradas acima:
unset MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE unset MOZBUILD_STATE_PATH
export
MOZBUILD_STATE_PATH=${PWD}/mozbuild: A
construção te informa que pretende criar ~/.mozbuild
e te oferece uma opção para
pressionar <ENTER> para aceitar isso ou Ctrl-C para
cancelar e reiniciar a construção depois de especificar o
diretório. Na prática, a mensagem possivelmente não apareça
até depois do <ENTER> ser pressionado, ou seja, a
construção para.
Esse diretório é usado para um (provavelmente aleatório) identificador de telemetria. Criar esse diretório dentro do construção da construção e deletá-lo depois da instalação evita que seja usado.
MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE=none: Use o Python do sistema para criar um ambiente virtual para o mach sem baixar nenhuma roda Python e sem usar os módulos Python do sistema. Isso evita incompatibilidades de versão entre módulos do sistema e os incluídos.
./mach build --verbose
: Use essa
alternativa se você precisar de detalhes a respeito de quais
arquivos estão sendo compilados, juntamente com quaisquer
sinalizadores C ou C++ sendo usados. Mas não adicione
'--verbose' ao comando de instalação, pois não é aceito lá.
./mach build -jN
: A construção
deveria, por padrão, usar todos os Elementos de Processamento
de CPU online. Se usar todos os Elementos de Processamento
fizer com que a construção use a área de troca porque você
tem memória insuficiente, usar menos Elementos de
Processamento poderá ser mais rápido.
: 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.
CC=gcc
CXX=g++
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
As configurações de aplicativo para o Firefox são acessíveis digitando-se about:config na barra de endereço.
Ocasionalmente, conseguir som que funcione no firefox pode ser um problema. Embora o(a) desenvolvedor(a) prefira o pulseaudio, no geral, usar Alsa possivelmente seja mais fácil.
Se você habilitou o Alsa para som, você possivelmente precise alterar uma variável para obter som funcional. Se executar o firefox a partir de um terminal e tentar reproduzir algo com som, você poderá encontrar mensagens de erro como:
Sandbox: seccomp sandbox violation:
pid 3941, tid 4030, syscall 16, args 48 2147767296
139909894784796 0 0 0.
Isso foi em x86_64, em i686 o número da chamada de sistema é 54. Para permitir esse chamada de sistema, em about:config mude security.sandbox.content.syscall_whitelist para 16 (ou 54 se usar i686).
Se usar pulseaudio em um ambiente
de área de trabalho, ele já poderá ter sido iniciado por
esse Ambiente. Mas se não tiver, embora o Firefox-57
conseguisse iniciá-lo, o Firefox-58 não consegue. Se
executar o firefox a partir de um
terminal e esse problema estiver presente, ao tentar
reproduzir o som, você encontrará mensagens de erro
avisando Can't get cubeb
context!
A correção para isso é fechar o firefox, iniciar o
pulseaudio para verificar se ele inicia (se não, leiam-se
as informações em Configuração em PulseAudio-17.0)
e reiniciar o firefox para verificar se está funcionando.
Se agora funcionar, adicione o seguinte ao teu ~/.xinitrc
: pulseaudio --verbose
--log-target=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 suportado (GPUs ATI, NVIDIA e Intel com Mesa-18 ou posterior). Para uma explicação, por favor, veja-se hacks.mozilla.org. A única desvantagem parece ser que, em uma máquina com RAM limitada, ele poderá usar mais RAM.
Para verificar se o WebRender está sendo usado, consulte about:support. Na seção Gráficos, a Composição ou mostrará 'Básico' (ou seja, não em uso) ou 'WebRender'. Para habilitá-lo, acesse about:config e mude gfx.webrender.all para True. Você precisará reiniciar o Firefox.
Possivelmente seja útil mencionar os processos provenientes do Firefox que podem aparecer no top - assim como o próprio firefox, possivelmente existam vários processos de Conteúdo da Web e agora um processo RDD (Remote Data Decoder) que aparece quando reproduzindo vídeos da web codificados com av1 (libdav1d). Se o WebRender tiver sido habilitado, um Processo de GPU também aparecerá quando o Firefox tiver que repintar (por exemplo, rolar, abrir uma nova guia ou reproduzir um vídeo).
Seamonkey é uma suíte de navegadores, um descendente do Netscape. Ele inclui o navegador, o compositor, clientes de mensagens e notícias e um cliente de IRC.
É a continuação do Mozilla Application Suite, controlado pela comunidade, criado depois que a Mozilla decidiu focar em aplicativos separados para navegação e mensagens eletrônicas. Esses aplicativos são Firefox-128.7.0 e Thunderbird-128.7.1esr.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://archive.seamonkey-project.org/releases/2.53.20/source/seamonkey-2.53.20.source.tar.xz
Soma de verificação MD5 da transferência: 1b506ff751f39b2480ba4e16afb86d6d
Tamanho da transferência: 237 MB
Espaço em disco estimado exigido: 4,4 GB (150 MB instalado)
Tempo de construção estimado: 6,8 UPC (com paralelismo=8)
Remendo recomendado (exigido para construir com ICU-75 do sistema ou mais recente): https://www.linuxfromscratch.org/patches/blfs/12.3/seamonkey-2.53.20-cxx17-1.patch
O tarball seamonkey-2.53.20.source.tar.xz desempacotará para o diretório seamonkey-2.53.20.
Cbindgen-0.28.0, GTK-3.24.48, libarchive-3.7.7, Python-3.11.1, yasm-1.3.0 e Zip-3.0
ICU-76.1, libevent-2.1.12, libwebp-1.5.0, LLVM-19.1.7 (com clang), NASM-2.16.03, NSPR-4.36, nss-3.108 e PulseAudio-17.0
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.
alsa-lib-1.2.13, dbus-glib-0.112, nodejs-22.14.0, Valgrind-3.24.0, Wget-1.25.0, Wireless Tools-29, Hunspell e Watchman
A configuração do Seamonkey
é realizada criando-se um arquivo mozconfig
contendo as opções desejadas de
configuração. Um arquivo mozconfig
padrão é criado abaixo. Para ver
a lista completa de opções disponíveis de configuração (e uma
descrição abreviada de cada uma), emita python3 configure.py
--help. Você também possivelmente revise o
arquivo inteiro e descomente quaisquer outras opções
desejadas. Crie o arquivo emitindo o seguinte comando:
cat > mozconfig << "EOF"
# If you have a multicore machine, all cores will be used
# If you have installed DBus-Glib comment out this line:
ac_add_options --disable-dbus
# If you have installed dbus-glib, and you have installed (or will install)
# wireless-tools, and you wish to use geolocation web services, comment out
# this line
ac_add_options --disable-necko-wifi
# Uncomment these lines if you have installed optional dependencies:
#ac_add_options --enable-system-hunspell
# Uncomment the following option if you have not installed PulseAudio
#ac_add_options --disable-pulseaudio
# and uncomment this if you installed alsa-lib instead of PulseAudio
#ac_add_options --enable-alsa
# Comment out the following option
# Comment out following options if you have not installed
# recommended dependencies:
ac_add_options --with-system-icu
ac_add_options --with-system-libevent
ac_add_options --with-system-nspr
ac_add_options --with-system-nss
ac_add_options --with-system-webp
# Disabling debug symbols makes the build much smaller and a little
# faster. Comment this if you need to run a debugger.
ac_add_options --disable-debug-symbols
# The elf-hack is reported to cause failed installs (after successful builds)
# on some machines. It is supposed to improve startup time and it shrinks
# libxul.so by a few MB. With recent Binutils releases the linker already
# supports a much safer and generic way for this.
ac_add_options --disable-elf-hack
ac_add_options --enable-linker=bfd
export LDFLAGS="$LDFLAGS -Wl,-z,pack-relative-relocs"
# Seamonkey has some additional features that are not turned on by default,
# such as an IRC client, calendar, and DOM Inspector. The DOM Inspector
# aids with designing web pages. Comment these options if you do not
# desire these features.
ac_add_options --enable-calendar
ac_add_options --enable-dominspector
ac_add_options --enable-irc
# The BLFS editors recommend not changing anything below this line:
ac_add_options --prefix=/usr
ac_add_options --enable-application=comm/suite
ac_add_options --disable-crashreporter
ac_add_options --disable-updater
ac_add_options --disable-tests
# The SIMD code relies on the unmaintained packed_simd crate which
# fails to build with Rustc >= 1.78.0. We may re-enable it once
# Mozilla ports the code to use std::simd and std::simd is stabilized.
ac_add_options --disable-rust-simd
ac_add_options --enable-strip
ac_add_options --enable-install-strip
# You cannot distribute the binary if you do this.
ac_add_options --enable-official-branding
ac_add_options --enable-system-ffi
ac_add_options --enable-system-pixman
ac_add_options --with-system-jpeg
ac_add_options --with-system-png
ac_add_options --with-system-zlib
export CC=clang CXX=clang++
EOF
Se você estiver compilando esse pacote em chroot, você
precisa assegurar que /dev/shm
esteja montado. Se você não
fizer isso, a configuração do Python falhará com um informe de
rastreamento reverso referenciando /usr/lib/pythonN.N/multiprocessing/synchronize.py
.
Como o(a) usuário(a) root
,
execute:
mountpoint -q /dev/shm || mount -t tmpfs devshm /dev/shm
Primeiro, se você estiver construindo com o ICU do sistema, adapte o mapeamento de quebra de linha para o ICU-74 ou posterior, aplique um remendo para construir esse pacote com o C++17 padrão porque os cabeçalhos do ICU-75 ou posterior exigem alguns recursos do C++17 e adapte o sistema de construção para usar a biblioteca correta com o ICU-76 ou posterior:
(for i in {43..47}; do sed '/ZWJ/s/$/,CLASS_CHARACTER/' -i intl/lwbrk/LineBreaker.cpp || exit $? done) && patch -Np1 -i ../seamonkey-2.53.20-cxx17-1.patch && sed -i 's/icu-i18n/icu-uc &/' js/moz.configure
Em seguida, remova um pedaço de código não usado que viola o padrão C++. O Clang começou a rejeitá-lo, embora não seja usado desde o lançamento 19.1.0:
sed -e '/ExclusiveData(ExclusiveData&&/,/^ *}/d' \ -i js/src/threading/ExclusiveData.h
A seguir, corrija um problema com o módulo incluído 'distro' do python:
sed -e '1012 s/stderr=devnull/stderr=subprocess.DEVNULL/' \ -e '1013 s/OSError/(OSError, subprocess.CalledProcessError)/' \ -i third_party/python/distro/distro.py
Compile Seamonkey executando os seguintes comandos:
export PATH_PY311=/opt/python3.11/bin:$PATH && PATH=$PATH_PY311 AUTOCONF=true MACH_USE_SYSTEM_PYTHON=1 ./mach build
Esse pacote não vem com uma suíte de teste.
Instale Seamonkey emitindo
os seguintes comandos como o(a) usuário(a) root
:
Se sudo ou
su for
invocado para abrir um shell executando como o(a)
usuário(a) root
,
certifique-se de que PATH_PY311
foi passado corretamente ou o comando a seguir falhará.
Para sudo,
use a opção --preserve-env=PATH_PY311
. Para
su,
não use as opções
-
ou --login
.
PATH=$PATH_PY311 MACH_USE_SYSTEM_PYTHON=1 ./mach install && chown -R 0:0 /usr/lib/seamonkey && cp -v $(find -name seamonkey.1 | head -n1) /usr/share/man/man1
Finalmente, desconfigure a variável PATH_PY311
:
unset PATH_PY311
export CC=clang CXX=clang++: Com a introdução do gcc-12, muitos mais avisos são gerados ao compilar-se aplicativos Mozilla e isso resulta em uma construção muito mais lenta e maior. Além disso, construir com GCC no i?86 atualmente está quebrado. Embora o código de fluxo de desenvolvimento da Mozilla tenha como padrão usar o llvm, a menos que substituído, o código de configuração mais antigo no Seamonkey tem como padrão o gcc.
./mach build --verbose
: Use essa
alternativa se você precisar de detalhes de quais arquivos
estão sendo compilados, juntamente com quaisquer
sinalizadores C ou C++ sendo usados. Mas não adicione
'--verbose' ao comando de instalação; não é aceito lá.
./mach build -jN
: A construção
deveria, por padrão, usar todos os Elementos de Processamento
de CPU online. Se usar todos os Elementos de Processamento
fizer com que a construção use a área de troca porque você
tem memória insuficiente, usar menos Elementos de
Processamento poderá ser mais rápido.
Para instalar vários complementos do Seamonkey, consulte Complementos para Seamonkey.
Juntamente com usar o menu “Preferências” para configurar opções e
preferências do Seamonkey
para atender aos gostos individuais, um controle mais
refinado de muitas opções somente está disponível usando-se
uma ferramenta não disponível a partir do sistema geral de
menus. Para acessar essa ferramenta, você precisará abrir uma
janela do navegador e digitar about:config
na barra de endereço. Isso
exibirá uma lista das preferências de configuração e
informações relacionadas a cada uma. Você pode usar a barra
“Pesquisar:” para inserir critérios de
pesquisa e restringir os itens listados. Mudar uma
preferência pode ser feito usando-se dois métodos. Primeiro,
se a preferência tiver um valor booleano (Verdadeiro/Falso),
simplesmente clique duas vezes na preferência para alternar o
valor; e dois, para outras preferências, simplesmente clique
com o botão direito na linha desejada, escolha “Modificar” no menu
e mude o valor. Criar novos itens de preferência é realizado
da mesma maneira, exceto que escolha “Novo” no menu e
forneça os dados desejados nos campos quando solicitado(a).
Se você usar um ambiente de área de trabalho, como
Gnome ou KDE, você possivelmente deseje criar um
arquivo seamonkey.desktop
, de
forma que Seamonkey apareça
nos menus do painel. Se você não habilitou Startup-Notification em teu mozconfig,
mude a linha StartupNotify para false. Como o(a) usuário(a)
root
:
mkdir -pv /usr/share/{applications,pixmaps} &&
cat > /usr/share/applications/seamonkey.desktop << "EOF"
[Desktop Entry]
Encoding=UTF-8
Type=Application
Name=Seamonkey
Comment=A Suíte Mozilla
Icon=seamonkey
Exec=seamonkey
Categories=Network;GTK;Application;Email;Browser;WebBrowser;News;
StartupNotify=true
Terminal=false
EOF
ln -sfv /usr/lib/seamonkey/chrome/icons/default/default128.png \
/usr/share/pixmaps/seamonkey.png
/usr/lib/seamonkey
Estes aplicativos usam o Sistema de Janelas X e não se enquadram facilmente em nenhum dos outros capítulos.
O pacote Balsa contém um cliente de mensagens baseado em GNOME-2.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://pawsa.fedorapeople.org/balsa/balsa-2.6.4.tar.xz
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)
Aspell-0.60.8.1, enchant-2.8.2, GMime-3.2.7, GPGME-1.24.2, GTK-3.24.48 e libnotify-0.8.4
MTA (isso fornece um comando sendmail)
Compface-1.5.2, Gcr-3.41.2, gtksourceview-3.24.11, libcanberra-0.30, libsecret-0.21.6, MIT Kerberos V5-1.21.3, OpenLDAP-2.6.9, Procmail-3.24, SQLite-3.49.1, WebKitGTK-2.46.6, html2text, osmo, rubrica, yelp-tools
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
--without-html-widget
: Essa
opção desabilita a construção do renderizador HTML. Se você
quiser que o renderizador HTML seja construído, verifique se
você tem o WebKitGTK-2.46.6 instalado e, então,
remova essa opção.
--with-canberra
: Habilita suporte
a libcanberra.
--with-compface
: Habilita suporte
a compface.
--with-gcr
: Usa libgcr para
suporte TLS.
--with-gss
: Habilita suporte
GSSAPI.
--with-ldap
: Use essa opção para
habilitar o suporte ao catálogo de endereços LDAP se o
OpenLDAP estiver instalado.
--with-libsecret
: Habilita
suporte a senhas fortes e suporte para o gnome-keyring
armazenar senhas.
--with-sqlite
: Use essa opção
para habilitar o suporte ao catálogo de endereços SQLite se o
SQLite estiver instalado.
feh é um visualizador de imagens rápido e leve que usa Imlib2. É orientado a linha de comando e suporta múltiplas imagens por meio de apresentações de slides, navegação em miniaturas ou múltiplas janelas, e montagens ou impressões de índice (usando fontes TrueType para exibir informações do arquivo). Os recursos avançados incluem zoom dinâmico rápido, carregamento progressivo, carregamento via HTTP (com suporte de recarga para assistir a câmeras da web), abertura recursiva de arquivos (apresentação de slides de uma hierarquia de diretórios) e controle de roda/teclado do mouse.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://feh.finalrewind.org/feh-3.10.3.tar.bz2
Soma de verificação MD5 da transferência: 4f9e2c6ecc120852ba86dc41df366aba
Tamanho da transferência: 2,0 MB
Espaço em disco estimado exigido: 5,2 MB (com testes)
Tempo de construção estimado: menos que 0,1 UPC (com testes)
libpng-1.6.46 e imlib2-1.12.3 (construído com suporta a giflib-5.2.2, para os testes)
libjpeg-turbo-3.0.1 (para rotação de imagem sem perdas) e ImageMagick-7.1.1-43 (para carregar formatos não suportados)
Test-Command-0.11 (exigido) e mandoc (opcional)
Instale o feh executando os seguintes comandos:
sed -i "s:doc/feh:&-3.10.3:" config.mk && make PREFIX=/usr
Para testar os resultados, emita: make test.
Agora, como o(a) usuário(a) root
:
make PREFIX=/usr install
sed -i "s:doc/feh:&-3.10.3:" config.mk: Esse sed corrige o diretório de documentação para um versionado, conforme usado no BLFS.
curl=0
: Use esse sinalizador do
make se você não tiver o pacote cURL instalado.
exif=1
: Esse sinalizador do make
habilita suporte integrado à exibição de rótulos Exif.
O pacote FontForge contém um editor de fontes de contorno que te permite criar tuas próprias fontes postscript, truetype, opentype, cid-keyed, multi-master, cff, svg e bitmap (bdf, FON, NFNT), ou editar as existentes.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/fontforge/fontforge/releases/download/20230101/fontforge-20230101.tar.xz
Soma de verificação MD5 da transferência: 7043f25368ed25bcd75d168564919fb7
Tamanho da transferência: 13 MB
Espaço em disco estimado exigido: 102 MB (adicionar 52 MB para os testes)
Tempo de construção estimado: 0,4 UPC (com paralelismo=4, adicionar 0,1 UPC para testes)
libspiro-20220722 e libxml2-2.13.6
giflib-5.2.2, git-2.48.1, libjpeg-turbo-3.0.1, libtiff-4.7.0, sphinx-8.2.1 (para construir documentação HTML) e WOFF2-1.0.2
Primeiro, corrija duas vulnerabilidades de segurança na funcionalidade Splinefont:
patch -Np1 -i ../fontforge-20230101-security_fixes-1.patch
A seguir, corrija um problema com traduções antigas exposto por gettext-0.22:
sed -i.orig 's/\(%[^%[:space:]]*\)hs/\1s/g' \ fontforgeexe/searchview.c po/de.po po/ca.po \ po/hr.po po/it.po po/pl.po po/uk.po po/en_GB.po \ po/fr.po po/vi.po po/ko.po po/ja.po
Instale o FontForge executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ -W no-dev .. && make
Para testar os resultados, emita: make check.
Agora, como o(a) usuário(a) root
:
make install
Se você tiver instalou o sphinx-build, a
documentação HTML foi construída e instalada em /usr/share/doc/fontforge
. Para poder
acessá-la como um diretório versionado, crie um link
simbólico como o(a) usuário(a) root
:
ln -sv fontforge /usr/share/doc/fontforge-20230101
-D
CMAKE_BUILD_TYPE=Release
: Essa chave é usada para
criar um lançamento otimizado sem informações de depuração.
-W no-dev
: Essa chave
é usada para suprimir avisos destinados para os(as)
desenvolvedores(as) do pacote.
-D ENABLE_X11=ON
: use uma
estrutura de retaguarda X11 em vez da GDK3 (gtk+-3) para
gráficos básicos do Xorg.
O pacote FreeRDP contém bibliotecas e utilitários para utilizar o Remote Desktop Protocol. Isso inclui ferramentas para executar um servidor RDP, bem como para conectar-se a um computador usando RDP. Isso é usado principalmente para conectar-se a computadores Microsoft Windows, mas também pode ser usado em Linux e macOS.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/freerdp/freerdp/archive/3.12.0/FreeRDP-3.12.0.tar.gz
Soma de verificação MD5 da transferência: 14ec84b674483893e4f53afedf014e39
Tamanho da transferência: 9,9 MB
Espaço em disco estimado exigido: 135 MB
Tempo de construção estimado: 0,2 UPC (Usando paralelismo=4)
FFmpeg-7.1, ICU-76.1 e Bibliotecas do Xorg
Cairo-1.18.2, docbook-xsl-nons-1.79.2, Fuse-3.16.2, JSON-C-0.18, MIT Kerberos V5-1.21.3, libusb-1.0.27, libxkbcommon-1.8.0 e Wayland-1.23.0
Cups-2.4.11, faac-1.31, FAAD2-2.11.1, fdk-aac-2.0.3, LAME-3.100, Linux-PAM-1.7.0, PulseAudio-17.0, cJSON, GSM, ocl-icd, mbedTLS, openh264, pcsclite, SDL_ttf, soxr e uriparser
Instale FreeRDP executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_SKIP_INSTALL_RPATH=ON \ -D CMAKE_BUILD_TYPE=Release \ -D WITH_CAIRO=ON \ -D WITH_CLIENT_SDL=OFF \ -D WITH_DSP_FFMPEG=ON \ -D WITH_FFMPEG=ON \ -D WITH_PCSC=OFF \ -D WITH_SERVER=ON \ -D WITH_SERVER_CHANNELS=ON \ -D DOCBOOKXSL_DIR=/usr/share/xml/docbook/xsl-stylesheets-nons-1.79.2 \ -W no-dev \ -G Ninja .. && ninja
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
ninja install
-D
CMAKE_SKIP_INSTALL_RPATH=ON
: Essa chave faz com
que cmake
remova caminhos de pesquisa de biblioteca rigidamente
codificados (rpath) ao instalar um arquivo binário executável
ou uma biblioteca compartilhada. Esse pacote não precisa do
rpath depois de instalado no local padrão, e o rpath
ocasionalmente pode causar efeitos indesejados ou até mesmo
problemas de segurança.
-D
DOCBOOKXSL_DIR=/usr/share/xml/docbook/xsl-stylesheets-nons-1.79.2
:
Esse parâmetro aponta CMake para o local das folhas de estilo
XSL do Docbook e é necessário porque o BLFS não usa versões
com espaço de nomes das folhas de estilo. Isso é necessário
para criar páginas de manual. Se você não quiser páginas de
manual, passe -D WITH_MANPAGES=OFF para o CMake.
-D WITH_CAIRO=ON
:
Esse parâmetro usa Cairo para HighDPI e suporte ao
redimensionamento de janelas.
-D
WITH_CLIENT_SDL=OFF
: Esse parâmetro desabilita
usar SDL para desenhar a janela ao usar o cliente FreeRDP.
Isso é desabilitado porque depende de SDL_ttf. Remova
essa chave se você tiver o pacote SDL_ttf instalado.
-D WITH_FFMPEG=ON
:
Esse parâmetro habilita suporte para usar ffmpeg para o modo
de renderização gráfica H.264, o qual é exigido ao
conectar-se via RDP a dispositivos Windows Server 2012 (ou
Windows 8) ou posteriores.
-D
WITH_DSP_FFMPEG=ON
: Esse parâmetro habilita
suporte para usar ffmpeg para redirecionamento de som e
microfone.
-D WITH_PCSC=OFF
:
Esse parâmetro desabilita suporte para SmartCards, pois o
BLFS não tem a dependência exigida para ele.
-D WITH_SERVER=ON
:
Esse parâmetro habilita construir os componentes do servidor
FreeRDP. Remova esse parâmetro se você não quiser usar o
servidor FreeRDP.
-D
WITH_SERVER_CHANNELS=ON
: Esse parâmetro constrói
plugins adicionais para o servidor FreeRDP.
-D WITH_LAME=ON
: Use essa opção
se você desejar habilitar suporte para usar LAME para
fornecer suporte ao Codificador/Decodificador de áudio MP3.
-D WITH_FAAC=ON
: Use essa opção
se você desejar habilitar suporte para usar FAAC para
fornecer suporte ao Codificador/Decodificador de áudio AAC.
-D WITH_FAAD2=ON
: Use essa opção
se você desejar habilitar suporte para usar FAAD2 para
fornecer suporte ao Codificador/Decodificador de áudio AAC.
-D WITH_FDK_AAC=ON
: Use essa
opção se você desejar habilitar suporte para usar fdk-aac
para fornecer suporte ao Codificador/Decodificador de áudio
AAC.
-D WITH_MBEDTLS=ON
: Use essa
opção se você tiver a dependência opcional mbedTLS
instalada e desejar usá-la como uma alternativa ao OpenSSL
para suporte de criptografia.
-D WITH_OPENCL=ON
: Use essa opção
se você tiver a dependência opcional ocl-icd instalada e
desejar usar suporte a OpenCL.
-D WITH_OPENH264=ON
: Use essa
opção se você tiver a dependência opcional openh264 instalada e
desejar usá-la para suporte a H.264 em vez do ffmpeg.
-D WITH_GSM=ON
: Use essa opção se
você tiver a dependência opcional GSM instalada e desejar usar
GSM como um codificador/decodificador de áudio.
-D WITH_SOXR=ON
: Use essa opção
se você tiver a dependência opcional soxr instalada e desejar
usá-la em vez do ffmpeg para redirecionamento de multimídia.
configura FreeRDP para usar um servidor proxy |
|
interfaceia com a funcionalidade de sombra no FreeRDP |
|
é um utilitário para compartilhar uma exibição do X via RDP |
|
é um utilitário para compartilhar uma exibição do X via RDP |
|
cria um resumo NTLM a partir de um par de nome de usuário(a) e senha |
|
cria certificados X.509 para uso com FreeRDP |
|
é um cliente RDP para Wayland |
|
é um cliente RDP para X11 |
|
contém funções que fornecem funcionalidade de cliente e servidor RDP |
O pacote Gimp contém o GNU Image Manipulation Program que é útil para retoque de fotos, composição de imagens e criação de imagens.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gimp.org/gimp/v3.0/gimp-3.0.0-RC3.tar.xz
Soma de verificação MD5 da transferência: 5fd4dc345ee39af23b2f74e37e86bd6b
Tamanho da transferência: 26 MB
Espaço em disco estimado exigido: 631 MB (164 MB instalado)
Tempo de construção estimado: 1,5 UPC (Usando paralelismo=4)
A versão em inglês dos arquivos de ajuda está completa, mas grandes partes do texto para muitos outros idiomas ainda não estão traduzidas.
Transferência (HTTP): https://anduin.linuxfromscratch.org/BLFS/gimp/gimp3-help-20240711.tar.xz
Tamanho da transferência: 129 MB
Soma de verificação MD5 da transferência: 162d57a67ff737ed221a8d7f274d119f
Espaço em disco estimado exigido: From 351 MB (74 MB installed) for en only to 1.5 GB for all languages
Tempo de construção estimado: 0,4 UPC (somente en), 5,1 UPC para todos os idiomas; usando paralelismo=4
appstream-glib-0.8.3, gegl-0.4.54, gexiv2-0.14.3, glib-networking-2.80.1, GTK-3.24.48, harfBuzz-10.4.0, libmypaint-1.6.1, librsvg-2.59.2, libtiff-4.7.0, libxml2-2.13.6 (para construir os arquivos da ajuda traduzida), Little CMS-2.17, mypaint-brushes-1.3.1 e Poppler-25.02.0 (incluindo poppler-data)
Graphviz-12.2.1, ghostscript-10.04.0 (com libgs instalada), ISO Codes-4.17.0, libgudev-238, PyGObject-3.50.0 e xdg-utils-1.2.1
AAlib-1.4rc5, alsa-lib-1.2.13, AppStream-1.0.4 (para um teste), Gi-DocGen-2025.3, Gjs-1.82.1, libjxl-0.11.1, libmng-2.0.3, libunwind-1.8.1, libwebp-1.5.0, Lua-5.4.7, OpenJPEG-2.5.3, cfitsio, libbacktrace, libiff, libilbm, libheif com libde265 (ambos necessários para ler imagens heic do macOS), libwmf, OpenEXR e qoi
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
Se atualizar a partir de uma instalação anterior do Gimp-3,
como o(a) usuário(a) root
,
remova alguns arquivos e diretórios da instalação antiga ou o
sistema de construção pode pegá-los erroneamente, causando
uma falha de construção:
rm -rf /usr/{lib,share}/gimp/3.0 && rm -f /usr/share/gir-1.0/Gimp-3.0.gir && rm -f /usr/lib/girepository-1.0/Gimp-3.0.typelib && rm -f /usr/lib/libgimp*-3.0.so*
Instale o Gimp executando os seguintes comandos:
mkdir gimp-build && cd gimp-build && meson setup --prefix=/usr \ --buildtype=release \ -D headless-tests=disabled .. && ninja
Para testar os resultados (exige um terminal em um ambiente
gráfico), emita: ninja
test. Se executar os testes em uma sessão do
Wayland, um sub teste chamado keyboard_zoom_focus
no teste ui
é conhecido por falhar.
Agora, como o(a) usuário(a) root
:
ninja install
Esse pacote instala arquivos de ícone na hierarquia
/usr/share/icons/hicolor
e
arquivos de área de trabalho na hierarquia /usr/share/applications
. Você pode
melhorar o desempenho do sistema e o uso de memória
atualizando /usr/share/icons/hicolor/index.theme
e
/usr/share/applications/mimeinfo.cache
.
Para realizar a atualização, você precisa ter o GTK-3.24.48
instalado (para o cache de ícones) e o desktop-file-utils-0.28 (para
o cache da área de trabalho) e emitir os seguintes comandos
como o(a) usuário(a) root
:
gtk-update-icon-cache -qtf /usr/share/icons/hicolor && update-desktop-database -q
O tarball gimp-help
contém
imagens e texto de ajuda em inglês para arquivos de ajuda,
juntamente com traduções. Se você desejar instalar cópias
locais dos arquivos de ajuda para ler offline, desempacote o
tarball gimp-help e mude para a raiz da árvore do fonte
recém-criada.
tar -xf ../../gimp3-help-20240711.tar.xz && cd gimp3-help-20240711 automake --add-missing ALL_LINGUAS="ca cs da de en en_GB es fa fr hr ko lt nl nn pt pt_BR ro sl sv uk zh_CN" \ ./configure --prefix=/usr
Remova de ALL_LINGUAS
os códigos
de quaisquer idiomas que você não desejar instalar.
Alternativamente, remova a linha que começa com ALL_LINGUAS
, se desejar construir todos os
idiomas.
Agora construa os arquivos de ajuda:
make
Emita os seguintes comandos como o(a) usuário(a) root
para instalar os arquivos de ajuda:
make install && chown -R root:root /usr/share/gimp/3.0/help
-D
headless-tests=disabled
: Essa chave desabilita
usar xvfb-run
para executar os testes. Sem essa chave, muitos testes falham
se xvfb-run
tiver sido instalado.
ALL_LINGUAS="ca cs da de en en_GB es
fa..."
: por padrão, os arquivos de ajuda serão
renderizados em todos os idiomas disponíveis. Remova os
códigos de quaisquer idiomas que você não desejar construir.
é o GNU Image Manipulation Program. Ele funciona com uma variedade de formatos de imagem e oferece uma grande seleção de ferramentas |
|
é um aplicativo de console que se comporta como se
o Gimp fosse
chamado com a opção de linha de comando
|
|
é uma ferramenta que pode construir plug-ins ou conjuntos de comandos sequenciais e instalá-los se forem distribuídos em um arquivo fonte. gimptool-3.0 também pode ser usado por programas que precisem saber com quais bibliotecas e caminhos de inclusão o Gimp foi compilado |
|
fornece ligações C para a Procedural Database (PDB) do Gimp, as quais oferecem uma interface para funções centrais e para funcionalidades fornecidas por plug-ins |
|
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 |
|
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 |
|
contém funções C para ler e escrever informações de configuração |
|
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 |
|
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 |
|
fornece as funções C para manusear os objetos em miniatura do Gimp |
|
contém as funções comuns de interface de usuário(a) do Gimp |
|
contém as funções de criação e manipulação de pequenas engenhocas do Gimp e do GTK |
Gparted é o Gnome Partition Editor, uma GUI Gtk 3 para outras ferramentas de linha de comando que conseguem criar, reorganizar ou deletar partições de disco.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://downloads.sourceforge.net/gparted/gparted-1.7.0.tar.gz
Soma de verificação MD5 da transferência: 97305db7509dd1bf2456a1331d2380f3
Tamanho da transferência: 5,1 MB
Espaço em disco estimado exigido: 72 MB (adicionar 70 MB para testes)
Tempo de construção estimado: 0,3 UPC (usando paralelismo=4; adicionar 0,3 UPC para testes)
btrfs-progs-6.13 (se usar um sistema de arquivos btrfs), exfatprogs e udftools
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
--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.
Para manipular sistemas de arquivos, o Gparted tem uma dependência de tempo de execução de várias ferramentas do sistema de arquivos (você somente precisa instalar as ferramentas para os sistemas de arquivos que usa atualmente): Hdparm-9.65 (exigido para opcionalmente exibir informações do número de série do dispositivo), btrfs-progs-6.13, dosfstools-4.2, e2fsprogs (instalado como parte do LFS), jfsutils-1.1.15, xfsprogs-6.13.0, mtools (exigido para ler e escrever rótulos de volume e UUIDs de FAT16/32), hfsutils, hfsprogs, nilfs-utils, Reiser4progs e reiserfsprogs.
Privilégios de root são exigidos para executar o Gparted. Se desejar executar o aplicativo a partir do menu, outros aplicativos e configurações serão necessários. Exemplos de aplicativos que podem ser usados: gksu, kdesudo ou xdg-su. Outra solução simples é ssh-askpass-9.9p2.
Para usar opcionalmente o ssh-askpass-9.9p2 se ele estiver
instalado em teu sistema, execute os seguintes comandos
como o(a) usuário(a) root
:
cp -v /usr/share/applications/gparted.desktop /usr/share/applications/gparted.desktop.back && sed -i 's/Exec=/Exec=sudo -A /' /usr/share/applications/gparted.desktop
Agora, clicando no item de menu para o Gparted, uma caixa de diálogo aparece na tela solicitando a senha do(a) administrador(a).
Inkscape é um editor o que você vê é o que você obtém de gráficos vetoriais escaláveis. É útil para criar, visualizar e mudar imagens SVG.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://inkscape.org/gallery/item/53679/inkscape-1.4.tar.xz
Soma de verificação MD5 da transferência: a93f3a8eab82ef3d610f426bfe58e3df
Tamanho da transferência: 44 MB
Espaço em disco estimado exigido: 784 MB (197 MB instalado)
Tempo de construção estimado: 2,6 UPC (com paralelismo=8)
O tarball inkscape-1.4.tar.xz
extrairá para o diretório inkscape-1.4_2024-10-09_e7c3feb100/
.
Boost-1.87.0, double-conversion-3.3.1, GC-8.2.8, gsl-2.8, Gtkmm-3.24.9, libsoup-2.74.3, libxslt-1.1.42, Poppler-25.02.0 e popt-1.19
ImageMagick-7.1.1-43 (tempo de execução), Little CMS-2.17, libcanberra-0.30 (para eliminar avisos de plugin), Potrace-1.16 (para a ferramenta bucket-fill), também vários módulos Python em tempo de execução para as extensões centrais: CacheControl-0.14.2, cssselect-1.2.0, lxml-5.3.1, NumPy-2.2.3, pySerial-3.5 e Scour-0.38.2
Aspell-0.60.8.1, dbus-1.16.0 (para executar inkscape a partir de conjuntos de comandos sequenciais), Doxygen-1.13.2, gspell-1.14.0, GraphicsMagick, libcdr, libvisio, libwpg (ou libwpd)
Primeiro, corrija falhas de construção com versões recentes do poppler:
patch -Np1 -i ../inkscape-1.4-poppler_fixes-2.patch
Instale o Inkscape executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ .. && make
Esse pacote não vem com uma suíte de teste funcional.
Agora, como o(a) usuário(a) root
:
make install
Esse pacote instala arquivos de ícone na hierarquia
/usr/share/icons/hicolor
e
arquivos de área de trabalho na hierarquia /usr/share/applications
. Você pode
melhorar o desempenho do sistema e o uso de memória
atualizando /usr/share/icons/hicolor/index.theme
e
/usr/share/applications/mimeinfo.cache
.
Para realizar a atualização, você precisa ter o GTK-3.24.48
instalado (para o cache de ícones) e o desktop-file-utils-0.28 (para
o cache da área de trabalho) e emitir os seguintes comandos
como o(a) usuário(a) root
:
gtk-update-icon-cache -qtf /usr/share/icons/hicolor && update-desktop-database -q
-D
CMAKE_BUILD_TYPE=Release
: Essa chave é usada para
construir a biblioteca de lançamento sem qualquer `assertiva`
de depuração no código.
-D WITH_DBUS=ON
: use isso se você
desejar usar o inkscape em conjuntos de
comandos sequenciais interativos que manipulam imagens.
rxvt-unicode é um clone do emulador de terminal rxvt, um emulador de terminal do Sistema de Janelas X que inclui suporte para XFT e Unicode.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
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.
Transferência (HTTP): http://dist.schmorp.de/rxvt-unicode/Attic/rxvt-unicode-9.31.tar.bz2
Soma de verificação MD5 da transferência: 3d0ec83705c9b9ff301a4b9965b3cd9f
Tamanho da transferência: 860 KB
Espaço em disco estimado exigido: 22 MB
Tempo de construção estimado: 0,2 UPC
libptytty-2.0 e um ambiente gráfico
gdk-pixbuf-2.42.12 (para imagens de plano de fundo) e startup-notification-0.12
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
--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.
O emulador de terminal rxvt-unicode usa a classe de recurso
URxvt
e o nome de recurso
urxvt
. Você pode adicionar
definições de recursos do X aos arquivos ~/.Xresources
ou ~/.Xdefaults
de um(a) usuário(a) ou ao
arquivo /etc/X11/app-defaults/URxvt
abrangente a
todo o sistema. O exemplo a seguir carregará a extensão do
matcher
do Perl (assumindo que o suporte
Perl não foi desabilitado),
o que habilita que um clique com o botão esquerdo abra um URL
sublinhado no navegador especificado, configure uma cor de
plano de fundo e de primeiro plano e carregue uma fonte Xft
(como o(a) usuário(a) root
):
cat >> /etc/X11/app-defaults/URxvt << "EOF"
! Use a cor especificada como a cor de plano de fundo de janelas [padrão branca]
URxvt*background: black
! Use a cor especificada como a cor de primeiro plano de janelas [padrão preta]
URxvt*foreground: yellow
! Selecione as fontes a serem usadas. Esta é uma lista separada por vírgulas de nomes de fontes
URxvt*font: xft:Monospace:pixelsize=18
! Lista(s) separada(s) por vírgulas de conjuntos de comandos sequenciais de extensão Perl (padrão: "default")
URxvt*perl-ext: matcher
! Especifica o aplicativo a ser iniciado com um argumento URL.
URxvt*url-launcher: firefox
! Quando clicado com o botão de mouse especificado no recurso "matcher.button"
! (padrão 2, ou meio), o aplicativo especificado no recurso "matcher.launcher"
! (padrão, o recurso "url-launcher", "sensible-browser" ) será iniciado com o
! texto correspondente como primeiro argumento.
! Abaixo, padrão modificado para botão esquerdo de mouse.
URxvt*matcher.button: 1
EOF
Para a finalidade de visualizar os recursos definidos do X, emita:
xrdb -query
Para a finalidade de adicionar as modificações do novo arquivo de configuração do(a) usuário(a), mantendo as configurações anteriores do X (é claro, a menos que você esteja mudando alguma definida anteriormente), emita:
xrdb -merge ~/.Xresources
O aplicativo rxvt-unicode também pode ser executado em modo de processo de segundo plano, o que torna possível abrir múltiplas janelas de terminal dentro do mesmo processo. O cliente urxvtc então se conecta ao processo de segundo plano urxvtd e solicita uma nova janela de terminal. Use essa opção com cuidado. Se o processo de segundo plano travar, todos os processos em execução nas janelas do terminal serão terminados.
Você consegue iniciar o processo de segundo plano
urxvtd no
conjunto de comandos sequenciais do sistema ou pessoal de
inicialização de sessão do X (por exemplo,
~/.xinitrc
) adicionando as
seguintes linhas perto o topo do conjunto de comandos
sequenciais:
# Inicia o processo de segundo plano urxvtd.
urxvtd -q -f -o &
Para mais informações, examine as páginas de manual
urxvt,
urxvtd,
urxvtc e
urxvtperl
.
Se você usa um Ambiente de Área de Trabalho, uma entrada de
menu pode ser incluída, emitindo-se, como o(a) usuário(a)
root
:
cat > /usr/share/applications/urxvt.desktop << "EOF" &&
[Desktop Entry]
Encoding=UTF-8
Name=Rxvt-Unicode Terminal
Comment=Use a linha de comandos
GenericName=Terminal
Exec=urxvt
Terminal=false
Type=Application
Icon=utilities-terminal
Categories=GTK;Utility;TerminalEmulator;
#StartupNotify=true
Keywords=console;command line;execute;
EOF
update-desktop-database -q
Para isso, você precisa do desktop-file-utils-0.28 e, pelo menos, um dos gnome-icon-theme-3.12.0, oxygen-icons-6.0.0 e lxde-icon-theme-0.5.1. Descomente a linha com “StartupNotify=true” se o startup-notification-0.12 estiver instalado.
/usr/lib/urxvt/perl
Thunderbird é um cliente de mensagens/notícias independente baseado na base de código do Mozilla. Ele usa o mecanismo de renderização Gecko para o habilitar a exibir e compor mensagens eletrônicas em HTML.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://archive.mozilla.org/pub/thunderbird/releases/128.7.1esr/source/thunderbird-128.7.1esr.source.tar.xz
Soma de verificação MD5 da transferência: 92352ad8b31fa250e2caadd9fb7b46dc
Tamanho da transferência: 649 MB
Espaço em disco estimado exigido: 7,8 GB (250 MB instalado)
Tempo de construção estimado: 13 UPC (em uma máquina de oito núcleos)
Cbindgen-0.28.0, GTK-3.24.48, libarchive-3.7.7, LLVM-19.1.7 incluindo clang, nodejs-22.14.0, PulseAudio-17.0 (ou alsa-lib-1.2.13 se você editar o mozconfig; embora ele esteja obsoleto agora pela mozilla), Python-3.13.2 (reconstruído com o módulo sqlite) e startup-notification-0.12
libevent-2.1.12, libvpx-1.15.0, libwebp-1.5.0, NASM-2.16.03, NSPR-4.36 e nss-3.108
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.
pciutils-3.13.0 (tempo de execução), Wget-1.25.0, Wireless Tools-29 e watchman
O processo de construção do Thunderbird pode usar oito (08) GB ou mais de RAM durante a vinculação. Certifique-se de que você tem swap ou RAM adequados antes de continuar.
A configuração do Thunderbird é realizada criando-se um
arquivo mozconfig
contendo as
opções de configuração desejadas. Um mozconfig
padrão é criado abaixo. Para ver
a lista completa de opções de configuração disponíveis (e uma
breve descrição de cada uma), emita ./mach configure -- --help |
less. Crie o arquivo com o seguinte comando:
cat > mozconfig << "EOF"
# If you have a multicore machine, all cores will be used.
# If you have installed wireless-tools comment out this line:
ac_add_options --disable-necko-wifi
# Uncomment the following option if you have not installed PulseAudio
#ac_add_options --enable-audio-backends=alsa
# Comment out following options if you have not installed
# recommended dependencies:
ac_add_options --with-system-libevent
ac_add_options --with-system-libvpx
ac_add_options --with-system-nspr
ac_add_options --with-system-nss
ac_add_options --with-system-webp
# The BLFS editors recommend not changing anything below this line:
ac_add_options --prefix=/usr
ac_add_options --enable-application=comm/mail
ac_add_options --disable-crashreporter
ac_add_options --disable-updater
ac_add_options --disable-debug
ac_add_options --disable-debug-symbols
ac_add_options --disable-tests
# This enables SIMD optimization in the shipped encoding_rs crate.
ac_add_options --enable-rust-simd
ac_add_options --enable-strip
ac_add_options --enable-install-strip
# You cannot distribute the binary if you do this.
ac_add_options --enable-official-branding
ac_add_options --enable-system-ffi
ac_add_options --enable-system-pixman
ac_add_options --with-system-jpeg
ac_add_options --with-system-png
ac_add_options --with-system-zlib
# Using sandboxed wasm libraries has been moved to all builds instead
# of only mozilla automation builds. It requires extra llvm packages
# and was reported to seriously slow the build. Disable it.
ac_add_options --without-wasm-sandboxed-libraries
EOF
Agora invoque o conjunto de comandos sequenciais Python mach para compilar o Thunderbird:
Se você estiver compilando esse pacote em chroot, você
precisa assegurar que /dev/shm
esteja montado. Se você não
fizer isso, a configuração do Python falhará com um informe de
rastreamento reverso referenciando /usr/lib/pythonN.N/multiprocessing/synchronize.py
.
Como o(a) usuário(a) root
,
execute:
mountpoint -q /dev/shm || mount -t tmpfs devshm /dev/shm
export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE=none && export MOZBUILD_STATE_PATH=$(pwd)/mozbuild && ./mach build
Esse pacote não vem com uma suíte de teste.
Instale o Thunderbird
executando os seguintes comandos como o(a) usuário(a)
root
:
MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE=none ./mach install
Esvazie as variáveis de ambiente que foram configuradas acima:
unset MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE && unset MOZBUILD_STATE_PATH
MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE=none: Use o Python do sistema para criar um ambiente virtual para o mach sem baixar nenhuma roda Python nem usar os módulos Python do sistema. Isso evita incompatibilidades de versão entre os módulos do sistema e os módulos incluídos.
./mach build --verbose
: Use essa
alternativa se você precisar de detalhes de quais arquivos
estão sendo compilados, juntamente com quaisquer
sinalizadores C ou C++ sendo usados.
./mach build -jN
: A construção
deveria, por padrão, usar todos os Elementos de Processamento
de CPU online. Se usar todos os Elementos de Processamento
fizer com que a construção use a área de troca porque você
tem memória insuficiente, usar menos Elementos de
Processamento poderá ser mais rápido.
: 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.
CC=gcc
CXX=g++
Se o teu Gerenciador de Janelas ou Ambiente de Área de Trabalho não te permitir configurar um navegador padrão, você pode adicionar um parâmetro de configuração ao Thunderbird, de forma que um navegador seja iniciado quando você clicar em um URL da Internet/intranet/local. O procedimento para verificar ou modificar qualquer dos parâmetros de configuração é bastante simples e as instruções aqui podem ser usadas para visualizar ou modificar quaisquer dos parâmetros.
Primeiro, abra a caixa de diálogo de configuração abrindo o menu suspenso “Editar”. Escolha “Configurações” e, então, role até o final da página. Em seguida, clique no botão “Config Editor”. Clique no botão “Eu aceito o risco!”. Isso exibirá uma lista de preferências de configuração e informações relacionadas a cada uma delas. Você pode usar a barra “Filtro:” para inserir critérios de pesquisa e restringir os itens listados. A mudança de uma preferência pode ser feita usando-se dois métodos. Primeiro, se a preferência tiver um valor booleano (Verdadeiro/Falso), simplesmente clique duas vezes na preferência para alternar o valor; e dois, para outras preferências, simplesmente clique com o botão direito na linha desejada, escolha “Modificar” a partir do menu e mude o valor. A criação de novos itens de preferência é realizada da mesma maneira, exceto que escolha “Novo” a partir do menu e forneça os dados desejados nos campos quando solicitado.
Se você usar um ambiente de área de trabalho, como
GNOME ou KDE, um arquivo de área de trabalho
thunderbird.desktop
pode ser
criado, para a finalidade de incluir uma entrada
“Thunderbird” no menu.
Execute os seguintes comandos como o(a) usuário(a)
root
:
mkdir -pv /usr/share/{applications,pixmaps} &&
cat > /usr/share/applications/thunderbird.desktop << "EOF" &&
[Desktop Entry]
Name=Thunderbird Mail
Comment=Envie e receba mensagens com o Thunderbird
GenericName=Cliente de Mensagens
Exec=thunderbird %u
Terminal=false
Type=Application
Icon=thunderbird
Categories=Network;Email;
MimeType=text/html;text/xml;application/xhtml+xml;application/xml;application/rss+xml;x-scheme-handler/mailto;
StartupNotify=true
EOF
ln -sfv /usr/lib/thunderbird/chrome/icons/default/default256.png \
/usr/share/pixmaps/thunderbird.png
Tigervnc é uma implementação avançada de VNC (Virtual Network Computing). Ele permite a criação de um servidor Xorg não vinculado a um console físico e também fornece um cliente para visualização da área de trabalho gráfica remota.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/TigerVNC/tigervnc/archive/v1.15.0/tigervnc-1.15.0.tar.gz
Soma de verificação MD5 da transferência: c8b8203dab00c7862dade8d964cec258
Tamanho da transferência: 2,0 MB
Espaço em disco estimado exigido: 148 MB
Tempo de construção estimado: 0,5 UPC (Usando paralelismo=4)
Arquivo exigido: https://www.x.org/pub/individual/xserver/xorg-server-21.1.16.tar.xz
A versão do Xorg pode eventualmente estar algumas versões desatualizadas, mas é exigida para as personalizações necessárias para esse pacote.
Remendo exigido: https://www.linuxfromscratch.org/patches/blfs/12.3/tigervnc-1.15.0-configuration_fixes-1.patch
Arquivo opcional para iniciar o servidor sem um gerenciador de tela: https://anduin.linuxfromscratch.org/BLFS/tigervnc/Xsession
CMake-3.31.5, FLTK-1.4.2, GnuTLS-3.8.9, libgcrypt-1.11.0, libjpeg-turbo-3.0.1, Pixman-0.44.2, Systemd-257.3 (com Linux-PAM-1.7.0), Aplicativos do Xorg, xinit-1.4.3 e Fontes Legadas do Xorg
Primeiro, faça ajustes nos arquivos de configuração para torná-los compatíveis com sistemas LFS:
patch -Np1 -i ../tigervnc-1.15.0-configuration_fixes-1.patch
Agora, torne o pacote consistente com fltk-1.4.1 e posteriores:
sed -i "s/maximize)/::&/" vncviewer/DesktopWindow.cxx && sed -i "/FL_MINOR_VERSION/s/3/4/" CMakeLists.txt
Instale o tigervnc executando os seguintes comandos:
# Put code in place mkdir -p unix/xserver && tar -xf ../xorg-server-21.1.16.tar.xz \ --strip-components=1 \ -C unix/xserver && ( cd unix/xserver && patch -Np1 -i ../xserver21.patch ) && # Build viewer cmake -G "Unix Makefiles" \ -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ -W no-dev . && make && # Build server pushd unix/xserver && autoreconf -fiv && CPPFLAGS="-I/usr/include/drm" \ ./configure $XORG_CONFIG \ --disable-xwayland --disable-dri --disable-dmx \ --disable-xorg --disable-xnest --disable-xvfb \ --disable-xwin --disable-xephyr --disable-kdrive \ --disable-devel-docs --disable-config-hal --disable-config-udev \ --disable-unit-tests --disable-selective-werror \ --disable-static --enable-dri3 \ --without-dtrace --enable-dri2 --enable-glx \ --with-pic && make && popd
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
#Install viewer make install && mv /usr/share/doc/tigervnc /usr/share/doc/tigervnc-1.15.0 #Install server ( cd unix/xserver/hw/vnc && make install ) && [ -e /usr/bin/Xvnc ] || ln -svf $XORG_PREFIX/bin/Xvnc /usr/bin/Xvnc
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.
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.
# Certifique-se de que não existam espaços ao final das linhas.
session=lxqt
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
é 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 |
|
é um aplicativo para configurar e controlar um servidor VNC |
|
permite que você configure a senha usada para acessar áreas de trabalho VNC |
|
é um conjunto de comandos sequenciais Perl usado para iniciar ou parar um servidor VNC |
|
é um cliente usado para conectar-se a áreas de trabalho VNC |
|
é um aplicativo para tornar uma tela do X em um terminal físico acessível via TigerVNC ou visualizadores compatíveis |
Transmission é um cliente BitTorrent multiplataforma e de fonte aberto. Isso é útil para baixar arquivos grandes (como ISOs do Linux) e reduz a necessidade para os(as) distribuidores(as) fornecerem largura de banda de servidor.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/transmission/transmission/releases/download/4.0.6/transmission-4.0.6.tar.xz
Soma de verificação MD5 da transferência: 8132b9f012b8e6309911c80ee9fd00f7
Tamanho da transferência: 11 MB
Espaço em disco estimado exigido: 226 MB (com ambas interfaces GUI)
Tempo de construção estimado: 2,3 UPC (com ambas interfaces GUI; usando paralelismo=4)
libevent-2.1.12, libpsl-0.21.5 (para usar bibliotecas do sistema, em vez das agrupadas) e librsvg-2.59.2
nodejs-22.14.0 (para construir o cliente web, não necessário em tempo de execução), appindicator, dht, libb64, libdeflate, libnatpmp, libutp e miniupnp
Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/transmission
Primeiro, corrija uma falha de construção devido a declarações incorretas em CMakeLists.txt:
patch -Np1 -i ../transmission-4.0.6-build_fix-1.patch
Instale o Transmission executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ -D CMAKE_INSTALL_DOCDIR=/usr/share/doc/transmission-4.0.6 \ .. && make
Agora, como o(a) usuário(a) root
:
make install
A seguir, se a dependência Gtkmm-4.16.0 foi instalada, crie
transmission.png a partir do arquivo SVG. Como o(a)
usuário(a) root
:
rsvg-convert \ /usr/share/icons/hicolor/scalable/apps/transmission.svg \ -o /usr/share/pixmaps/transmission.png
-D ENABLE_QT=OFF
: Essa chave
desabilita construir a interface Qt. O padrão é o de construí-la se
Qt-6.8.2
estiver instalado.
-D ENABLE_GTK=OFF
: Essa chave
desabilita construir a interface GTK-4. O padrão é o de
construí-la se o Gtkmm-4.16.0 estiver instalado.
-D ENABLE_WEB=OFF
: Essa chave
desabilita a construção do cliente web. O padrão é o de
construí-lo se o nodejs-22.14.0 estiver instalado.
-D REBUILD_WEB=ON
: Essa chave
força reconstruir o cliente web. Essa opção precisa de
nodejs-22.14.0 para ser instalado bem
como de uma conexão de internet. O padrão é o de não
reconstruir o cliente.
é uma ferramenta de linha de comando usada para criar arquivos .torrent |
|
é 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 |
|
é uma ferramenta de linha de comando para modificar URLs de anúncio de arquivos .torrent |
|
é um cliente bittorrent GTK+ |
|
é um cliente bittorrent baseado em Qt |
|
é um utilitário de controle remoto para transmission-daemon e transmission |
|
é uma ferramenta de linha de comando para exibir metadados de arquivo .torrent do BitTorrent |
XArchiver é um gerenciador GTK+ de arquivamentos com suporte para tar, xz, bzip2, gzip, zip, 7z, rar, lzo e muitos outros formatos de arquivamento.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
xarchiver é somente uma interface de linha de comando ou gráfica para utilitários de arquivamento, como tar e zip.
Transferência (HTTP): https://github.com/ib/xarchiver/archive/0.5.4.23/xarchiver-0.5.4.23.tar.gz
Soma de verificação MD5 da transferência: bfdace2b113417e1bc77ef304280d103
Tamanho da transferência: 1,1 MB
Espaço em disco estimado exigido: 11 MB
Tempo de construção estimado: 0,1 UPC
7zip-24.09, cpio-2.15, LZO-2.10, UnRar-7.1.5, Zip-3.0 e unzip
O BLFS fornece unzip como um link
simbólico para bsdunzip proveniente de
libarchive-3.7.7, mas não funciona
para o xarchiver. Adapte o xarchiver para usar 7zip-24.09
para manusear arquivos .zip
por
padrão:
sed '/TOGGLE.*prefer_unzip/s/TRUE/FALSE/' -i src/pref_dialog.c
Se você já tiver instalado e executou esse pacote antes
(talvez em outra distribuição, se seu /home
for uma partição compartilhada com
essa distribuição), ele provavelmente já está configurado
para preferir unzip. Desconfigure a
caixa de seleção “Preferir unzip para arquivos zip” na
caixa de diálogo “Ação => Preferências” para mudar a
configuração.
Instale o xarchiver executando os seguintes comandos:
./configure --prefix=/usr \ --libexecdir=/usr/lib/xfce4 \ --docdir=/usr/share/doc/xarchiver-0.5.4.23 && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
Esse pacote instala arquivos de ícone na hierarquia
/usr/share/icons/hicolor
e
arquivos de área de trabalho na hierarquia /usr/share/applications
. Você pode
melhorar o desempenho do sistema e o uso de memória
atualizando /usr/share/icons/hicolor/index.theme
e
/usr/share/applications/mimeinfo.cache
.
Para realizar a atualização, você precisa ter o GTK-3.24.48
instalado (para o cache de ícones) e o desktop-file-utils-0.28 (para
o cache da área de trabalho) e emitir os seguintes comandos
como o(a) usuário(a) root
:
gtk-update-icon-cache -qtf /usr/share/icons/hicolor && update-desktop-database -q
--libexecdir=/usr/lib/xfce4
:
Essa chave corrige o local para o thunar-archive-plugin, de
forma que ele funcionará se o thunar-4.20.2 estiver instalado.
xdg-utils é um conjunto de ferramentas de linha de comando que auxiliam os aplicativos em uma variedade de tarefas de integração de área de trabalho. É exigido para conformidade com o Linux Standards Base (LSB).
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://gitlab.freedesktop.org/xdg/xdg-utils/-/archive/v1.2.1/xdg-utils-v1.2.1.tar.gz
Soma de verificação MD5 da transferência: 4c72585a98ba8f775cb9e72b066cc0df
Tamanho da transferência: 304 KB
Espaço em disco estimado exigido: 3,3 MB (com testes)
Tempo de construção estimado: 2,5 UPC (com testes)
xmlto-0.0.29 com um de Lynx-2.9.2, Links-2.30 ou W3m
Compile o xdg-utils com os seguintes comandos:
./configure --prefix=/usr && make
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
é uma ferramenta de linha de comando para (des)instalar itens de menu da área de trabalho |
|
é uma ferramenta de linha de comando para (des)instalar ícones na área de trabalho |
|
é 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 |
|
é uma ferramenta de linha de comando para (des)instalar recursos de ícones |
|
abre um arquivo ou URL no aplicativo preferido do(a) usuário(a) |
|
abre o compositor preferido de mensagem eletrônica do(a) usuário(a) para a finalidade de enviar uma mensagem de correio |
|
é uma ferramenta de linha de comando para controlar o protetor de tela |
|
é uma ferramenta de linha de comando para gerenciar várias configurações a partir do ambiente de área de trabalho |
O pacote XScreenSaver é um protetor e travador de tela modular para o Sistema de Janelas do X. Ele é altamente personalizável e permite o uso de qualquer aplicativo que possa desenhar na janela raiz como modo de exibição. O objetivo do XScreenSaver é o de exibir imagens bonitas na tua tela quando não estiver em uso, de acordo com a filosofia de que os monitores não atendidos sempre deveriam estar fazendo algo interessante, assim como eles fazem nos filmes. No entanto, o XScreenSaver também pode ser usado como um travador de tela, para evitar que outras pessoas usem teu terminal enquanto você estiver ausente.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.jwz.org/xscreensaver/xscreensaver-6.09.tar.gz
Soma de verificação MD5 da transferência: 1f0e2b1698bc2a6ecfe9b668e4b75c3d
Tamanho da transferência: 21 MB
Espaço em disco estimado exigido: 262 MB
Tempo de construção estimado: 0,4 UPC (Usando paralelismo=4)
GTK-3.24.48 e Aplicativos do Xorg
GDM-47.0, FFmpeg-7.1, Linux-PAM-1.7.0, MIT Kerberos V5-1.21.3 e GLE
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
--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.
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
é um processo de segundo plano protetor e travador de tela |
|
controla um processo xscreensaver em execução, enviando-lhe mensagens de cliente |
|
é um link simbólico para 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 |
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.
O núcleo Linux agora fornece suporte ALSA por padrão. No entanto, os aplicativos precisam interfacear com esse recurso. As seguintes seis seções do livro lidam com os componentes separados do ALSA: as bibliotecas, os plugins, os utilitários, as ferramentas e o firmware.
O pacote ALSA Library contém a biblioteca ALSA usada por aplicativos (incluindo ALSA Utilities) que exigem acesso para a interface de som ALSA.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.alsa-project.org/files/pub/lib/alsa-lib-1.2.13.tar.bz2
Soma de verificação MD5 da transferência: dd856a78e0702c3c4c1d8f56bc07bf61
Tamanho da transferência: 1,2 MB
Espaço em disco estimado exigido: 72 MB (com testes e documentos)
Tempo de construção estimado: 0,3 UPC (com testes e documentos)
Arquivo recomendado: https://www.alsa-project.org/files/pub/lib/alsa-ucm-conf-1.2.13.tar.bz2
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
.
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.
Instale o ALSA Library executando os seguintes comandos:
./configure && make
Se você tiver o Doxygen instalado e desejar construir a documentação da API da biblioteca, execute os seguintes comandos a partir do diretório de nível superior da árvore do fonte:
make doc
Para testar os resultados, emita: make check.
Agora, como o(a) usuário(a) root
, instale o pacote e os arquivos
recomendados de configuração:
make install && tar -C /usr/share/alsa --strip-components=1 -xf ../alsa-ucm-conf-1.2.13.tar.bz2
Para instalar a documentação da API, execute o seguinte
comando como o(a) usuário(a) root
:
install -v -d -m755 /usr/share/doc/alsa-lib-1.2.13/html/search && install -v -m644 doc/doxygen/html/*.* \ /usr/share/doc/alsa-lib-1.2.13/html && install -v -m644 doc/doxygen/html/search/* \ /usr/share/doc/alsa-lib-1.2.13/html/search
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.
O pacote ALSA Plugins contém plugins para diversas bibliotecas de áudio e servidores de som.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.alsa-project.org/files/pub/plugins/alsa-plugins-1.2.12.tar.bz2
Soma de verificação MD5 da transferência: 71fce75baa38efab4e32e40db0a33716
Tamanho da transferência: 400 KB
Espaço em disco estimado exigido: 5,1 MB
Tempo de construção estimado: menos que 0,1 UPC
FFmpeg-7.1, libsamplerate-0.2.2, PulseAudio-17.0, Speex-1.2.1, JACK, libavtp e maemo
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
<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*
Permite aplicativos nativos ALSA executarem em OSS |
|
Permite mistura aumentadora de som para 4 ou 6 canais |
|
Permite mistura redutora de som de 4-6 canais para saída estéreo de 2 canais |
|
Permite aplicativos nativos ALSA funcionem com o jackd |
|
Permite aplicativos nativos ALSA acessarem um processo de segundo plano de som PulseAudio |
|
Converte o formato de som linear S16 para o formato comprimido A52 e envia-o para uma saída SPDIF |
|
Fornece um conversor externo de taxa por intermédio
da |
O pacote ALSA Utilities contém vários utilitários que são úteis para controlar tua placa de som.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.alsa-project.org/files/pub/utils/alsa-utils-1.2.13.tar.bz2
Soma de verificação MD5 da transferência: c04cdabee211a88bf3c6c2f45b2a4f3e
Tamanho da transferência: 1,7 MB
Espaço em disco estimado exigido: 21 MB
Tempo de construção estimado: 0,1 UPC
docutils-0.21.2, fftw-3.3.10, libsamplerate-0.2.2, xmlto-0.0.29 e Dialog
Primeiro corrija um problema nas regras do udev distribuído:
sed -e 's/acp-pdm-dmic/acp-dmic-codec/' \ -e '/LABEL="alsa_restore_go"/s/go/std/' \ -e '/^ENV.ALSA_CARD_NUMBER/i LABEL="alsa_restore_go"' \ -i alsactl/90-alsa-restore.rules.in
Instale o ALSA Utilities executando os seguintes comandos:
./configure --disable-alsaconf \ --disable-bat \ --disable-xmlto \ --with-curses=ncursesw && make
Para testar os resultados, emita: make check.
Agora, como o(a) usuário(a) root
:
make install
--disable-alsaconf
:
Essa chave desabilita construir a ferramenta de configuração
alsaconf que é
incompatível com o Udev.
--disable-xmlto
:
Omita essa chave se você tiver instalado o xmlto-0.0.29 e desejar
regenerar as páginas de manual.
--disable-bat
: Omita
essa chave se você tiver instalado o fftw-3.3.10 e desejar
instalar o Basic Audio Tester (BAT).
--with-curses=ncursesw
: Essa
chave força o uso de bibliotecas ncurses de caracteres
largos.
Como o(a) usuário(a) root
,
aplique a configuração padrão para a placa de som. Observe
que este comando pode retornar um código de saída 99,
embora a placa esteja inicializada corretamente:
alsactl init
Observe que todos os canais da tua placa de som possivelmente estejam silenciados por padrão. Você consegue usar o aplicativo alsamixer para mudar isso. Use o speaker-test para verificar se tuas configurações foram aplicadas corretamente. Você deveria ouvir “ruído rosa” nos teus alto-falantes.
O aplicativo alsactl
normalmente é executado a partir de uma regra padrão do
udev. Na primeira vez que
for executado, ele reclamará que não existe estado em
/var/lib/alsa/asound.state
.
Você pode evitar isso executando o seguinte comando como
o(a) usuário(a) root
:
alsactl -L store
As configurações de volume deveriam ser restauradas a partir do estado salvo pelo Udev quando o dispositivo for detectado (durante a inicialização ou quando plugado para dispositivos USB).
Em sistemas que tem múltiplas placas de som, você
possivelmente necessite ajustar o dispositivo de áudio
padrão, de forma que possa obter saída a partir dos teus
alto-falantes. Para configurar o dispositivo padrão,
primeiro verifique o arquivo /proc/asound/cards
para determinar qual
número precisa configurar. Depois que souber essas
informações, configure a placa padrão com o seguinte
comando como o(a) usuário(a) root
:
cat > /etc/asound.conf << "EOF"
# Inicia /etc/asound.conf
defaults.pcm.card 1
defaults.ctl.card 1
# Termina /etc/asound.conf
EOF
é um utilitário para conectar e desconectar duas portas existentes no sistema sequenciador do ALSA |
|
é 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 |
|
permite a criação de um loopback PCM entre um dispositivo de captura PCM e um dispositivo de reprodução PCM |
|
é um aplicativo de mistura baseado em Ncurses para uso com os controladores ALSA da placa de som |
|
é um utilitário usado para compilar arquivos de configuração de topologia em arquivos binários para controladores de núcleo |
|
permite aplicativos acessarem o hardware de maneira abstraída |
|
é usado para ler a partir de, e escrever para, as portas RawMIDI do ALSA |
|
permite o controle de linha de comando dos misturadores para os controladores ALSA da placa de som |
|
é um reprodutor de linha de comando de arquivos de som para os controladores ALSA da placa de som |
|
é 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 |
|
é um gravador de linha de comando de arquivo de som para os controladores ALSA da placa de som |
|
é 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 |
|
é um utilitário de linha de comando que imprime os eventos do sequenciador que receber como texto |
|
é um cliente sequenciador ALSA que envia e recebe pacotes de eventos ao longo de uma rede de intercomunicação |
|
é um gravador e reprodutor de linha de comando usado para transferir quadros de áudio entre dispositivos, e arquivos, de som |
|
é 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 |
|
é um gerador de linha de comando de tom de teste de alto-falante para o ALSA |
O pacote ALSA Tools contém ferramentas avançadas para determinadas placas de som.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.alsa-project.org/files/pub/tools/alsa-tools-1.2.11.tar.bz2
Soma de verificação MD5 da transferência: bc5f5e5689f46a9d4a0b85dc6661732c
Tamanho da transferência: 1,8 MB
Espaço em disco estimado exigido: 18 MB
Tempo de construção estimado: 0,3 UPC
GTK-3.24.48 (para construir hdajackretask), FLTK-1.4.2 (para construir hdspconf e hdspmixer), e GTK+-2 (para construir echomixer, envy24control e rmedigicontrol)
Quando instalar múltiplos pacotes em um conjunto de comandos sequenciais, a instalação precisa ser feita como o(a) usuário(a) root. Existem três opções gerais que podem ser usadas para se fazer isso:
Executar o conjunto inteiro de comandos sequenciais como o(a) usuário(a) root (não recomendado).
Usar o comando sudo oriundo do pacote Sudo-1.9.16p2.
Usar su -c "argumentos do comando" (aspas exigidas), que solicitará a senha do(a) root para cada interação do loop.
Uma maneira de se lidar com essa situação é a de se criar uma função curta do bash que selecione automaticamente o método apropriado. Uma vez que o comando esteja configurado no ambiente, ele não precisa ser configurado novamente.
as_root() { if [ $EUID = 0 ]; then $* elif [ -x /usr/bin/sudo ]; then sudo $* else su -c \\"$*\\" fi } export -f as_root
Primeiro, inicie um sub shell que sairá em caso de erro:
bash -e
Agora, remova algumas ferramenta que precisam de Qt2 ou 3 ou de GTK+-2 e também dois arquivos desnecessários (para as instruções do BLFS abaixo):
rm -rf qlo10k1 echomixer envy24control rmedigicontrol Makefile gitcompile
O pacote ALSA Tools somente é necessário para aqueles(as) com requisitos avançados para a placa de som deles(as). As ferramentas podem ser construídas todas juntas de uma vez, mas se somente um subconjunto for necessário, você precisa cd ao diretório de cada ferramenta que desejar compilar e executar os comandos. Aqui apresentamos instruções para construir todas as ferramentas.
Instale todas as ALSA Tools executando os seguintes comandos:
for tool in * do case $tool in seq ) tool_dir=seq/sbiload ;; * ) tool_dir=$tool ;; esac pushd $tool_dir ./configure --prefix=/usr make as_root make install as_root /sbin/ldconfig popd done unset tool tool_dir
Finalmente, saia do shell que foi iniciado anteriormente:
exit
é 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 |
|
é um aplicativo de controle do Creative Signal Processor (ASP/CSP) da SB16/AWE32 |
|
é uma GUI para facilitar a redefinição de teus conectores - por exemplo, transforme teu conector de microfone em um fone de ouvido extra ou torne-os saídas de linha e conecte-os ao teu receptor de envolver |
|
é um pequeno programa para enviar comandos de áudio de alta definição para um determinado dispositivo hwdep do ALSA na interface de áudio de alta definição |
|
é uma GUI para controlar as configurações Alsa do Hammerfall HDSP. Até quatro placas hdsp são suportadas |
|
é usado para carregar o firmware exigido pelas placas de som Hammerfall HDSP |
|
é 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 |
|
permite a você controlar o volume de fluxos individuais em placas de som que usam mixagem de hardware |
|
são ferramentas usadas para inicializar placas da série Audigy da Creative Sound Blaster |
|
é uma ferramenta usada para inicializar placas Creative Sound Blaster Live |
|
é o servidor de um carregador de remendo da EMU10K{1,2} para ALSA |
|
é o cliente de um carregador de remendo da EMU10K{1,2} para ALSA |
|
carrega despejos de configuração gerados por lo10k1 e ld10k1 |
|
é um conjunto de comandos sequenciais de iniciação para o carregador de remendo do ld10k1 |
|
é um programa auxiliar para carregar os binários de firmware nos controladores de som da placa miXart do Digigram. O módulo snd-mixart exige esse programa. Esses controladores não funcionam corretamente até que os arquivos de firmware exigidos sejam carregados, ou seja, nem PCM nem dispositivos de mixagem aparecerão |
|
é um programa auxiliar para carregar os binários de firmware nos controladores de som da placa compatíveis com pcxhr da Digigram. O módulo snd-pcxhr exige esse programa. Esses controladores não funcionam corretamente até que certos arquivos de firmware sejam carregados, ou seja, nem PCM nem dispositivos de mixagem aparecerão |
|
é um carregador de instrumentos FM OPL2/3 para o sequenciador do ALSA |
|
é um utilitário de controle SoundScape do ALSA |
|
é um aplicativo de controle Tascam US-428 |
|
é 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 |
|
é um programa auxiliar para carregar os binários de firmware nos controladores de som da placa VX do Digigram. Os módulos snd-vx222, snd-vxpocket e snd-vxp440 exigem esse programa. Esses controladores não funcionam corretamente até que determinados arquivos de firmware sejam carregados, ou seja, nem PCM nem dispositivos de mixagem aparecerão |
O pacote ALSA Firmware contém firmware para determinadas placas de som.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.alsa-project.org/files/pub/firmware/alsa-firmware-1.2.4.tar.bz2
Soma de verificação MD5 da transferência: ee6c1d24a1a4ac1d86992b408ed710a2
Tamanho da transferência: 4,9 MB
Espaço em disco estimado exigido: 39 MB
Tempo de construção estimado: menos que 0,1 UPC
AS31 (para reconstruir o firmware a partir do fonte)
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
O pacote AudioFile contém as bibliotecas de arquivos de áudio e dois aplicativos de suporte a arquivos de som úteis para suportar formatos básicos de arquivos de som.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/audiofile/0.3/audiofile-0.3.6.tar.xz
Soma de verificação MD5 da transferência: 235dde14742317328f0109e9866a8008
Tamanho da transferência: 520 KB
Espaço em disco estimado exigido: 18 MB
Tempo de construção estimado: 0,6 UPC
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.
--disable-static
:
Essa chave impede a instalação das versões estáticas das
bibliotecas.
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 |
|
converte formatos de arquivo de som onde o formato original e o formato de destino sejam suportados por essa biblioteca |
|
contém funções usadas por aplicativos para suportar formatos de áudio AIFF, compactados por AIFF, Sun/NeXT, WAV e BIC |
A aplicação faac é um codificador para um esquema de compressão de som com perdas especificado nos padrões MPEG-2 Parte 7 e MPEG-4 Parte 3 e conhecido como Advanced Audio Coding (AAC). Esse codificador é útil para produzir arquivos que podem ser reproduzidos em um iPod. Além disso, o iPod não compreende outros esquemas de compressão de som em arquivos de vídeo.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/lfs-book/faac/archive/v1.31/faac-1.31.tar.gz
Soma de verificação MD5 da transferência: 75164622b004ce78c0b856d3ad3fdd52
Tamanho da transferência: 240 KB
Espaço em disco estimado exigido: 6,0 MB
Tempo de construção estimado: menos que 0,1 UPC
No GitHub, nós bifurcamos o repositório do fluxo de
desenvolvimento para nosso próprio espaçode nomes
lfs-book
e recriamos uma
etiqueta para o lançamento. Isso é feito para garantir que
o nome do arquivo tarball baixado esteja correto e
consistente (ou seja, ele não deveria mudar ao se usar o
navegador em vez de uma ferramenta como wget). Nossa etiqueta e a
etiqueta do lançamento do fluxo de desenvolvimento estão no
mesmo commit, de forma que nós não introduzimos nenhuma
mudança no conteúdo do tarball, exceto o nome do diretório
de nível superior dele (que o Git não rastreia).
Instale faac executando os seguintes comandos:
./bootstrap && ./configure --prefix=/usr --disable-static && make
Esse pacote não vem com uma suíte de teste. No entanto, a funcionalidade básica pode ser testada codificando-se um arquivo WAV de amostra (o arquivo de amostra é instalado pelo pacote alsa-utils-1.2.13:
./frontend/faac -o Front_Left.mp4 /usr/share/sounds/alsa/Front_Left.wav
Em seguida, decodifique o resultado usando o aplicativo faad proveniente do pacote FAAD2-2.11.1 e reproduza o arquivo decodificado (exige o aplicativo aplay originário do pacote alsa-utils-1.2.13:
faad Front_Left.mp4 aplay Front_Left.wav
aplay deveria
identificar o arquivo como Signed 16 bit Little Endian, Rate 48000 Hz,
Stereo
, e você deveria ouvir as palavras “front left”.
Agora, como o(a) usuário(a) root
:
make install
--disable-static
:
Essa chave impede a instalação das versões estáticas das
bibliotecas.
A qualidade do faac não está à altura dos melhores codificadores AAC disponíveis atualmente. Além disso, ele suporta somente AAC e não High Efficiency AAC (também conhecido como aacPlus), que oferece melhor qualidade a baixas taxas de bits por meio do uso da tecnologia de “replicação de banda espectral”. Um exemplo de um programa alternativo para produzir fluxos AAC e HE-AAC é:
Codificador geral de áudio 3GPP Enhanced aacPlus:
disponível no formato de fonte, pode codificar somente
HE-AAC de até 48 kbps pronto para uso, mas a taxa de
bits máxima pode ser mudada editando-se a tabela de
ajuste no arquivo FloatFR_sbrenclib/src/sbr_main.c
.
Observe, entretanto, que o iPod suporta somente o perfil AAC de baixa complexidade, que é o padrão no faac, mas está completamente indisponível no codificador 3GPP.
FAAD2 é um decodificador para um esquema de compressão de som com perdas especificado nos padrões MPEG-2 Parte 7 e MPEG-4 Parte 3 e conhecido como Advanced Audio Coding (AAC).
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/knik0/faad2/archive/2.11.1/faad2-2.11.1.tar.gz
Soma de verificação MD5 da transferência: f85b2514c4fb2f87d22a3bc879d83277
Tamanho da transferência: 642 KB
Espaço em disco estimado exigido: 9,0 MB
Tempo de construção estimado: 0,1 UPC
Arquivo AAC de amostra: https://www.nch.com.au/acm/sample.aac (7 KB)
Instale o FAAD2 executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ -D BUILD_SHARED_LIBS=ON \ .. && make
Esse pacote não vem com uma suíte de teste. No entanto, a funcionalidade básica pode ser testada decodificando-se o arquivo AAC de amostra:
./faad -o sample.wav ../../sample.aac
Isso deveria exibir uma mensagem de direitos autorais e as seguintes informações a respeito do arquivo de amostra:
sample.aac file info:
ADTS, 4.608 sec, 13 kbps, 16000 Hz
---------------------
| Config: 2 Ch |
---------------------
| Ch | Position |
---------------------
| 00 | Left front |
| 01 | Right front |
---------------------
Agora reproduza o resultado (exige o aplicativo aplay originário do pacote alsa-utils-1.2.13):
aplay sample.wav
aplay deveria
identificar o arquivo como Signed 16 bit Little Endian, Rate 16000 Hz,
Stereo
, e você deveria escutar algumas notas de piano.
Agora, como o(a) usuário(a) root
:
make install
O pacote fdk-aac fornece a biblioteca Fraunhofer FDK AAC, que é considerada uma implementação de alta qualidade da Codificação Avançada de Áudio.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://downloads.sourceforge.net/opencore-amr/fdk-aac-2.0.3.tar.gz
Soma de verificação MD5 da transferência: f43e593991caefdce509ad837d3301bd
Tamanho da transferência: 2,8 MB
Espaço em disco estimado exigido: 39 MB
Tempo de construção estimado: 0,6 UPC (Usando paralelismo=4)
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
--disable-static
:
Essa chave impede a instalação das versões estáticas das
bibliotecas.
FLAC é um CODEC de áudio semelhante ao MP3, mas sem perdas, o que significa que o áudio é comprimido sem perder nenhuma informação.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/xiph/flac/releases/download/1.5.0/flac-1.5.0.tar.xz
Soma de verificação MD5 da transferência: 0bb45bcf74338b00efeec121fff27367
Tamanho da transferência: 1,1 MB
Espaço em disco estimado exigido: 25 MB (adicionais 170 MB para executar a suíte de teste)
Tempo de construção estimado: 0,2 UPC (adicionais 0,2 UPC para executar a suíte de teste)
libogg-1.3.5, DocBook-utils-0.6.14, Doxygen-1.13.2 e Valgrind-3.24.0
Instale o FLAC executando os seguintes comandos:
./configure --prefix=/usr \ --disable-thorough-tests \ --docdir=/usr/share/doc/flac-1.5.0 && make
Para testar os resultados, emita: make check. Observe que, se
você passou nos parâmetros --enable-exhaustive-tests
e --enable-valgrind-testing
para o configure e depois executar
a suíte de teste, levará tempo muito longo(até 300 UPCs) e usará
cerca de 375 MB de espaço em disco.
Agora, como o(a) usuário(a) root
:
make install
--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.
é um utilitário de linha de comando para codificar, decodificar e converter arquivos FLAC |
|
é um aplicativo para listar, adicionar, remover ou editar metadados em um ou mais arquivos FLAC |
|
essas bibliotecas fornecem APIs nativas C/C++ FLAC e Ogg FLAC para aplicativos que utilizam FLAC |
Frei0r é uma API minimalista de plugin para efeitos de vídeo. Observe que o 0 no nome é um zero, não uma letra maiúscula o.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://files.dyne.org/frei0r/releases/frei0r-plugins-1.8.0.tar.gz
Soma de verificação MD5 da transferência: 45ffe53925ce0a90ce1d838c05e0a3c0
Tamanho da transferência: 804 KB
Espaço em disco estimado exigido: 40 MB
Tempo de construção estimado: 0,5 UPC
Instale o Frei0r executando os seguintes comandos:
mkdir -vp build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ -W no-dev .. && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
-D WITHOUT_OPENCV=TRUE
: Essa
opção instrui o procedimento make a desabilitar a construção
de plugins dependentes do opencv.
-D WITHOUT_GAVL=TRUE
: Essa opção
instrui o procedimento make a desabilitar a construção de
plugins dependentes do gavl.
Gavl é a abreviatura de Gmerlin Audio Video Library. É uma biblioteca de baixo nível que lida com detalhes de formatos de áudio e vídeo, como espaços de cores, taxas de amostragem, configurações multicanais, etc. Ela fornece definições padronizadas para esses formatos, bem como estruturas de contêiner para transportar amostras de áudio ou imagens de vídeo dentro de um aplicativo.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://downloads.sourceforge.net/gmerlin/gavl-1.4.0.tar.gz
Soma de verificação MD5 da transferência: 2752013a817fbc43ddf13552215ec2c0
Tamanho da transferência: 4,4 MB
Espaço em disco estimado exigido: 50 MB
Tempo de construção estimado: 0,8 UPC
Primeiro, corrija um problema com o gcc-14 e posteriores:
sed -i "/stdio/a #include <string.h>" src/fill_test.c
Agora, instale Gavl executando os seguintes comandos:
LIBS=-lm \ ./configure --prefix=/usr \ --without-doxygen \ --with-cpuflags=none \ --docdir=/usr/share/doc/gavl-1.4.0 && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
LIBS=-lm
: Essa variável garante
que a biblioteca matemática seja pesquisada durante a
vinculação.
--without-doxygen
:
Essa chave desabilita o uso do Doxygen. Omita se o Doxygen
estiver instalado e você desejar construir a documentação da
API.
--with-cpuflags=none
:
Essa chave corrige um problema de identificação de recursos
da arquitetura do sistema.
gstreamer é uma estrutura de streaming de mídia que habilita aplicativos a compartilharem um conjunto comum de plug-ins para tarefas como codificação e decodificação de vídeo, codificação e decodificação de áudio, filtros de áudio e vídeo, visualização de áudio, streaming da web e qualquer outra coisa que transmite em tempo real ou não. Esse pacote fornece somente funcionalidades e bibliotecas básicas. Você possivelmente precise de pelo menos gst-plugins-base-1.24.12 e um dos plugins Good, Bad, Ugly ou Libav.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://gstreamer.freedesktop.org/src/gstreamer/gstreamer-1.24.12.tar.xz
Soma de verificação MD5 da transferência: 8bfc0b9b4e2467170a66e256d4846f9c
Tamanho da transferência: 1,8 MB
Espaço em disco estimado exigido: 59 MB (com testes)
Tempo de construção estimado: 0,3 UPC (Usando paralelismo=4; com testes)
GLib-2.82.5 (GObject Introspection exigido para GNOME)
GTK-3.24.48 (para exemplos), gsl-2.8 (usado por um teste se instalado), libunwind-1.8.1, rustc-1.85.0 (para suporte de relógio PTP IEEE 1588:2008), Valgrind-3.24.0, bash-completion, hotdoc e libdw
Instale o gstreamer executando os seguintes comandos:
mkdir build && cd build && meson setup .. \ --prefix=/usr \ --buildtype=release \ -D gst_debug=false && ninja
Para testar os resultados, emita: ninja test.
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
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
é 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 |
|
é uma ferramenta que constrói e executa pipelines gstreamer básicos |
|
é uma ferramenta usada para coletar estatísticas alusivas a operações do gstreamer |
|
executa um plano de teste em formato compatível com TAP enquanto se integra ao equipamento de teste Meson |
|
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 |
|
fornece algumas classes base para serem estendidas por elementos e classes utilitárias que são mais úteis para desenvolvedores(as) de plugins |
|
fornece funcionalidade para escrever testes unitários que usam a estrutura de verificação |
|
fornece funcionalidade para animar propriedades de elementos ao longo do tempo |
|
fornece elementos e objetos de rede de intercomunicação |
|
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 |
O GStreamer Base Plug-ins é uma coleção bem cuidada e bem mantida de plug-ins e elementos do GStreamer, abrangendo a gama de possíveis tipos de elementos que alguém desejaria escrever para o GStreamer. Você precisará de pelo menos um dos plugins Good, Bad, Ugly ou Libav para que os aplicativos GStreamer funcionem corretamente.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-1.24.12.tar.xz
Soma de verificação MD5 da transferência: af0d85f4dda9f750086516d834a17a8c
Tamanho da transferência: 2,3 MB
Espaço em disco estimado exigido: 99 MB (com testes)
Tempo de construção estimado: 0,7 UPC (Usando paralelismo=4; com testes)
alsa-lib-1.2.13, CDParanoia-III-10.2 (para construir o plugin CDDA), GLib-2.82.5 (com GObject Introspection), ISO Codes-4.17.0, libgudev-238, libjpeg-turbo-3.0.1, libogg-1.3.5, libpng-1.6.46, libvorbis-1.3.7, Mesa-24.3.4, Pango-1.56.1, wayland-protocols-1.40 e Bibliotecas do Xorg
graphene-1.10.8, GTK-3.24.48 (para exemplos), Opus-1.5.2, SDL2-2.30.11, Valgrind-3.24.0, hotdoc, libtheora, libvisual, Orc e Tremor
Se você precisar de um plugin para uma dada dependência, essa dependência precisará estar instalada antes desse pacote.
Instale o GStreamer Base Plug-ins executando os seguintes comandos:
mkdir build && cd build && meson setup .. \ --prefix=/usr \ --buildtype=release \ --wrap-mode=nodownload && ninja
Para testar os resultados, emita: ninja test. Os testes
exigem um terminal do X executando ou todos os testes GL
falharão. Cinco testes possivelmente produzam tempos limite
em alguns sistemas, dependendo do hardware gráfico deles e da
velocidade. Um teste, elements_appsrc
, é conhecido por falhar em
alguns sistemas.
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
--buildtype=release
:
Especifique 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.
é uma ferramenta de linha de comando que pode ser usada para testar a funcionalidade de monitoramento de dispositivos do GStreamer |
|
é uma ferramenta que pode ser usada para imprimir informações básicas de metadados e fluxo a respeito de um arquivo de mídia |
|
é uma ferramenta de linha de comando que pode ser usada para testar a reprodução básica usando o elemento playbin |
O GStreamer Good Plug-ins é um conjunto de plug-ins considerados pelos(as) desenvolvedores(as) do GStreamer como tendo código de boa qualidade, funcionalidade correta e a licença preferencial (LGPL para o código do plug -in, LGPL ou compatível com LGPL para a biblioteca de suporte). Uma ampla variedade de decodificadores, codificadores e filtros de vídeo e áudio está incluída.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-1.24.12.tar.xz
Soma de verificação MD5 da transferência: 99f259e6aca8b499ece578948cb91bbc
Tamanho da transferência: 2,8 MB
Espaço em disco estimado exigido: 114 MB (com testes)
Tempo de construção estimado: 0,7 UPC (Usando paralelismo=4; com testes)
Cairo-1.18.2, FLAC-1.5.0, gdk-pixbuf-2.42.12, LAME-3.100, libsoup-2.74.3, libsoup-3.6.4, libvpx-1.15.0, mpg123-1.32.10, NASM-2.16.03 e PulseAudio-17.0
AAlib-1.4rc5, GTK-3.24.48 (para exemplos), libdv-1.0.0, Qt-6.8.2, Speex-1.2.1, taglib-2.0.2, Valgrind-3.24.0, v4l-utils-1.28.1, Wayland-1.23.0, alsa-oss, hotdoc, JACK, libcaca, libavc1394, libiec61883, libraw1394, libshout, Orc, TwoLame e WavPack
Se você precisar de um plugin para uma dada dependência, essa dependência precisará estar instalada antes desse pacote.
Instale o GStreamer Good Plug-ins executando os seguintes comandos:
mkdir build && cd build && meson setup .. \ --prefix=/usr \ --buildtype=release && ninja
Para testar os resultados, emita: ninja test. Um teste,
elements_flvmux
, é conhecido
por falhar em alguns sistemas.
Agora, como o(a) usuário(a) root
:
ninja install
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
O pacote GStreamer Bad Plug-ins contém um conjunto de plug-ins que não estão à altura dos demais. Eles podem estar perto de serem de boa qualidade, mas está faltando alguma coisa - seja uma boa revisão de código, alguma documentação, um conjunto de testes, um(a) mantenedor(a) real ao vivo ou algum uso realmente amplo.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad-1.24.12.tar.xz
Soma de verificação MD5 da transferência: f2e4b24dca97397158e496059ec65ce6
Tamanho da transferência: 6,8 MB
Espaço em disco estimado exigido: 273 MB (com testes)
Tempo de construção estimado: 0,9 UPC (Usando paralelismo=4; com testes)
libdvdread-6.1.3, libdvdnav-6.1.1, libva-2.22.0 e SoundTouch-2.3.3
BlueZ-5.79, cURL-8.12.1, faac-1.31, FAAD2-2.11.1, fdk-aac-2.0.3, GTK-3.24.48 (para exemplos), gst-plugins-good-1.24.12 (para um teste), JSON-GLib-1.10.6, Little CMS-2.17, libaom-3.12.0, libass-0.17.3, libexif-0.6.25 (para um teste), librsvg-2.59.2, libsoup-2.74.3 (para um teste), libsndfile-1.2.2, libssh2-1.11.1, libusb-1.0.27, libwebp-1.5.0, libxkbcommon-1.8.0, neon-0.34.0, Nettle-3.10.1 ou libgcrypt-1.11.0 (para suporte SSL no plugin hls; se ambos não estiverem instalados, o OpenSSL será usado), opencv-4.11.0 (com módulos adicionais), OpenJPEG-2.5.3, Opus-1.5.2, qrencode-4.1.1, SBC-2.0, sdl12-compat-1.2.68, Valgrind-3.24.0, ambos Vulkan-Loader-1.4.304 e glslc originário de shaderc-2024.4 (para plugin Vulkan), Wayland-1.23.0 (GTK-3.24.48 precisa ter sido compilado com suporte wayland), x265-4.1, zxing-cpp-2.3.0, bs2b, Chromaprint, dssim, Flite, FluidSynth, Game Music Emu, GSM, hotdoc, LADSPA, ldacBT, libajantv2, libavtp, libdc1394-2, libdca, libde265, libkate, libmfx, libmms, libmodplug, libnice, libofa, libopenmpt, libopenni, libsrtp, lilv, LRDF, ltc-tools, microdns, Ferramentas MJPEG, mplex2, musepack, onnxruntime, OpenAL, OpenEXR, OpenH264, Orc, rtmpdump, spandsp, Srt, svthevcenc, VO AAC, VO AMRWB, WildMidi, WPE-WebKit, WPEBackend-fdo, ZBAR e ZVBI
Se você precisar de um plugin para uma dada dependência, essa dependência precisará estar instalada antes desse pacote.
Instale o GStreamer Bad Plug-ins executando os seguintes comandos:
mkdir build && cd build && meson setup .. \ --prefix=/usr \ --buildtype=release \ -D gpl=enabled && ninja
Para testar os resultados, emita: ninja test. Vários testes precisam de um emulador de terminal em uma sessão gráfica. Um teste, elements_dash_mpd, é conhecido por falhar. Se gst-plugins-good-1.24.12 não estiver instalado, dois testes, elements_rtpsrc e elements_rtpsink, falharão.
Agora, como o(a) usuário(a) root
:
ninja install
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
-D gpl=enabled
: Sem
essa chave, plugins com dependências de bibliotecas
licenciadas (A)GPL não são construídos.
O GStreamer Ugly Plug-ins é um conjunto de plug-ins considerados pelos(as) desenvolvedores(as) do GStreamer como tendo boa qualidade e funcionalidade correta, mas distribuí-los pode causar problemas. A licença dos plug-ins ou das bibliotecas de suporte pode não ser como os(as) desenvolvedores(as) do GStreamer gostariam. O código pode ser amplamente conhecido por apresentar problemas de patente.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-1.24.12.tar.xz
Soma de verificação MD5 da transferência: f71b3812bc7c2a1364e8b8fa0a4bdc5a
Tamanho da transferência: 232 KB
Espaço em disco estimado exigido: 9,2 MB (com testes)
Tempo de construção estimado: menos que 0,1 UPC (com testes)
liba52-0.8.0 (necessário para reproduzir DVDs), libdvdread-6.1.3 e x264-20250212
libmpeg2-0.5.1, libcdio-2.1.0 (para acesso à unidade de CD-ROM), Valgrind-3.24.0, hotdoc, libsidplay e Orc
Se você precisar de um plugin para uma dada dependência, essa dependência precisará estar instalada antes desse pacote.
Instale o GStreamer Ugly Plug-ins executando os seguintes comandos:
mkdir build && cd build && meson setup .. \ --prefix=/usr \ --buildtype=release \ -D gpl=enabled && ninja
Para testar os resultados, emita: ninja test.
Agora, como o(a) usuário(a) root
:
ninja install
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
-D gpl=enabled
: Sem
essa chave, plugins com dependências de bibliotecas
licenciadas (A)GPL não são construídos.
O pacote GStreamer Libav contém plug-ins GStreamer para Libav (uma bifurcação do FFmpeg).
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://gstreamer.freedesktop.org/src/gst-libav/gst-libav-1.24.12.tar.xz
Soma de verificação MD5 da transferência: 20fbf19f67d1b91eaf1279ede7494e9e
Tamanho da transferência: 216 KB
Espaço em disco estimado exigido: 14 MB
Tempo de construção estimado: menos que 0,1 UPC
FFmpeg-7.1 e gst-plugins-base-1.24.12
Instale o GStreamer Libav executando os seguintes comandos:
mkdir build && cd build && meson setup .. \ --prefix=/usr \ --buildtype=release && ninja
Para executar os testes, emita: ninja test.
Agora, como o(a) usuário(a) root
:
ninja install
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
id3lib é uma biblioteca para leitura, escrita e manipulação de contêineres de dados multimídia id3v1 e id3v2.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://downloads.sourceforge.net/id3lib/id3lib-3.8.3.tar.gz
Soma de verificação MD5 da transferência: 19f27ddd2dda4b2d26a559a4f0f402a7
Tamanho da transferência: 932 KB
Espaço em disco estimado exigido: 16 MB
Tempo de construção estimado: 0,2 UPC
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
--disable-static
:
Essa chave impede a instalação das versões estáticas das
bibliotecas.
converte entre formatos de rotulagem id3v1/v2 |
|
extrai rótulos id3v1/v2 a partir de arquivos de áudio digital |
|
imprime o conteúdo de rótulo id3v1/v2 |
|
é um utilitário para editar rótulos id3v1/v2 |
|
fornece funções para os aplicativos de edição de rótulos id3v1/v2, bem como outros aplicativos e bibliotecas externos(as) |
O pacote intel-media-driver fornece um controlador VA API para GPUs da Intel que são fornecidas com CPUs Broadwell e superiores. Isso inclui suporte para uma variedade de codecs.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/lfs-book/intel-media-driver/archive/v24.4.4/intel-media-driver-24.4.4.tar.gz
Soma de verificação MD5 da transferência: 3c90e965a00e2f4fa1c3d3d409bb47e5
Tamanho da transferência: 26 MB
Espaço em disco estimado exigido: 1,4 GB (211 MB instalado com um modelo de GPU)
Tempo de construção estimado: 3,1 UPC (com paralelismo=4 e um modelo de GPU)
No GitHub, nós bifurcamos o repositório do fluxo de
desenvolvimento para nosso próprio espaçode nomes
lfs-book
e recriamos uma
etiqueta para o lançamento. Isso é feito para garantir que
o nome do arquivo tarball baixado esteja correto e
consistente (ou seja, ele não deveria mudar ao se usar o
navegador em vez de uma ferramenta como wget). Nossa etiqueta e a
etiqueta do lançamento do fluxo de desenvolvimento estão no
mesmo commit, de forma que nós não introduzimos nenhuma
mudança no conteúdo do tarball, exceto o nome do diretório
de nível superior dele (que o Git não rastreia).
CMake-3.31.5, gmmlib-22.5.5, libva-2.22.0 e Ambiente de construção do "Xorg"
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]
Esse pacote leva muito tempo para construir porque compila código específico para cada geração individual de GPUs da Intel e para uma variedade de codificadores de mídia.
Se conhecer o modelo da tua GPU Intel, você pode passar a
opção -D{GEN{8,9,11,12},MTL,ARL,LNL,BMG,XE2_HPG}=OFF
para o comando cmake, mas deixando a
opção para tua GPU de fora. Observe que o número
“GEN”
aqui é a geração da GPU, não da CPU. Por exemplo, com uma
CPU Intel Core i7-1065G7 que envia uma GPU Intel de 11ª
geração, a opção -D{GEN{8,9,12},MTL,ARL,LNG,BMG,XE2_HPG}=OFF
pode ser usada, de forma que o código específico para as
outras gerações de GPUs Intel não seria construído.
Para determinar o modelo da GPU Intel, instale pciutils-3.13.0 e execute
lspci -nn | grep -Ei
'VGA|DISPLAY' primeiro. Ele exibirá algumas
informações acerca da GPU, incluindo o ID do fornecedor PCI
(8086
para Intel) e o ID do
dispositivo PCI. Por exemplo, com uma CPU Intel Core
i5-11300H, a saída gerada é 8086:9a49
. Agora, procurando pelo registro
desse ID de dispositivo na árvore do fonte
intel-media-driver:
grep -ri 'RegisterDevice(0x9a49
'
E determine o modelo de GPU a partir do nome do arquivo que
contém o registro. Para o exemplo acima, o nome do arquivo
é media_sysinfo_g12.cpp
,
indicando que o modelo é GEN12
.
Instale intel-media-driver executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=$XORG_PREFIX \ -D INSTALL_DRIVER_SYSCONF=OFF \ -D BUILD_TYPE=Release \ -G Ninja \ -W no-dev .. && ninja
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
ninja install
O pacote intel-vaapi-driver contém um controlador VA API para GPUs Intel que são fornecidos com CPUs Haswell e anteriores.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/intel/intel-vaapi-driver/releases/download/2.4.1/intel-vaapi-driver-2.4.1.tar.bz2
Soma de verificação MD5 da transferência: 073fce0f409559109ad2dd0a6531055d
Tamanho da transferência: 2,8 MB
Espaço em disco estimado exigido: 97 MB
Tempo de construção estimado: 0,3 UPC
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]
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
liba52 é uma biblioteca livre para decodificação de fluxos ATSC A/52 (também conhecido como AC-3). O padrão A/52 é usado em diversas aplicações, incluindo televisão digital e DVD.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://distfiles.adelielinux.org/source/a52dec/a52dec-0.8.0.tar.gz
Soma de verificação MD5 da transferência: 4debeed0257f5312e84d92711a5cfcec
Tamanho da transferência: 448 KB
Espaço em disco estimado exigido: 3,7 MB
Tempo de construção estimado: menos que 0,1 UPC
Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/liba52
Instale o liba52 executando os seguintes comandos:
./configure --prefix=/usr \ --mandir=/usr/share/man \ --enable-shared \ --disable-static \ CFLAGS="${CFLAGS:--g -O3} -fPIC" && make
Para testar os resultados, emita: make check.
Agora, como o(a) usuário(a) root
:
make install && cp liba52/a52_internal.h /usr/include/a52dec && install -v -m644 -D doc/liba52.txt \ /usr/share/doc/liba52-0.8.0/liba52.txt
CFLAGS="${CFLAGS:--g -O3}
-fPIC"
: Isso anexa -fPIC
a CFLAGS
,
mas usa - g -O3
(o padrão desse
pacote) em vez de uma sequência vazia de caracteres quando
CFLAGS
não estiver configurada.
Isso é necessário para compilar liba52 sem realocação de texto em tempo
de execução. A realocação de texto em tempo de execução é
proibida no x86_64, de forma que -fPIC
é estritamente exigido. No x86 de 32
bits, a realocação de texto em tempo de execução é permitida,
mas é insegura e pode desperdiçar RAM física; portanto,
-fPIC
ainda é melhor.
--disable-static
:
Essa chave impede a instalação das versões estáticas das
bibliotecas.
cp liba52/a52_internal.h ...: Copiar esse arquivo de cabeçalho para /usr/include/a52dec permite que alguns outros aplicativos (como o xine-lib) compilem e vinculem contra uma liba52 instalada no sistema.
O pacote libao contém uma biblioteca de áudio multiplataforma. Isso é útil para produzir áudio em uma ampla variedade de plataformas. Atualmente suporta arquivos WAV, Open Sound System (OSS), Enlighten Sound Daemon (ESD), Advanced Linux Sound Architecture (ALSA), Network Audio System (NAS), analog Real-Time Synthesizer (aRTS) e PulseAudio (arquitetura de som GNOME de próxima geração).
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://downloads.xiph.org/releases/ao/libao-1.2.0.tar.gz
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
Primeiro, corrija um problema do gcc-14:
sed -i '/limits.h/a #include <time.h>' src/plugins/pulse/ao_pulse.c
Instale o libao executando os seguintes comandos:
./configure --prefix=/usr && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install && install -v -m644 README /usr/share/doc/libao-1.2.0
O pacote libaom contém uma versão de referência do codificador de vídeo Alliance for Open Media. Esse codificador é uma alternativa livre de patente ao H.265 e está começando a ser usado em toda a Internet.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://storage.googleapis.com/aom-releases/libaom-3.12.0.tar.gz
Soma de verificação MD5 da transferência: aabd9c71c7d52c837ec276156d5a953f
Tamanho da transferência: 5,2 MB
Espaço em disco estimado exigido: 121 MB (adicionar 1,2 GB para os testes)
Tempo de construção estimado: 1,2 UPC (com paralelismo=4, adicionar 155 UPC para testes)
yasm-1.3.0 (ou NASM-2.16.03)
Uma conexão com a Internet é necessária para alguns testes desse pacote. A loja de certificados do sistema possivelmente precise ser configurada com make-ca-1.15 antes de se testar esse pacote
Instale o libaom executando os seguintes comandos:
mkdir aom-build && cd aom-build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ -D BUILD_SHARED_LIBS=1 \ -D ENABLE_DOCS=no \ -G Ninja .. && ninja
Para testar os resultados, emita: ninja testdata && ninja runtests. Observe que os testes tomam um tempo extremamente longo para executar.
Agora, como o(a) usuário(a) root
:
ninja install && rm -v /usr/lib/libaom.a
-D
BUILD_SHARED_LIBS=1
: Essa chave constrói versões
compartilhadas das bibliotecas.
-D ENABLE_DOCS=no
:
Essa chave desabilita a construção da documentação porque ela
falha devido a uma incompatibilidade com a versão mais
recente do Doxygen-1.13.2.
-D ENABLE_NASM=yes
: Use essa
chave se você tiver ambos, yasm-1.3.0 e NASM-2.16.03, instalados e
desejar usar nasm em vez do yasm.
libass é um renderizador de legendas portável para o formato de legendas Advanced Substation Alpha/Substation Alpha (ASS/SSA) que permite legendas mais avançadas que o SRT convencional e formatos similares.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/libass/libass/releases/download/0.17.3/libass-0.17.3.tar.xz
Soma de verificação MD5 da transferência: baed6dfc87bed705c1955cc6b932d7f6
Tamanho da transferência: 436 KB
Espaço em disco estimado exigido: 7,7 MB
Tempo de construção estimado: menos que 0,1 UPC
FreeType-2.13.3 e FriBidi-1.0.16
Fontconfig-2.16.0 e NASM-2.16.03
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
--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.
libcanberra é uma implementação das Especificações de Nome e de Tema de Som XDG, para gerar sons de eventos em áreas de trabalho livres, tais como o GNOME.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://0pointer.de/lennart/projects/libcanberra/libcanberra-0.30.tar.xz
Soma de verificação MD5 da transferência: 34cb7e4430afaf6f447c4ebdb9b42072
Tamanho da transferência: 312 KB
Espaço em disco estimado exigido: 7,5 MB
Tempo de construção estimado: 0,1 UPC
alsa-lib-1.2.13, gstreamer-1.24.12 e GTK-3.24.48
sound-theme-freedesktop-0.8, ou outro tema, para exemplo a partir do sítio da web gnome-look
Primeiro, aplique um remendo para corrigir um problema que causa o travamento de alguns aplicativos em ambientes de área de trabalho baseados em Wayland:
patch -Np1 -i ../libcanberra-0.30-wayland-1.patch
Instale o libcanberra executando os seguintes comandos:
./configure --prefix=/usr --disable-oss && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make docdir=/usr/share/doc/libcanberra-0.30 install
--disable-oss
:
desabilita o suporte opcional e obsoleto a OSS
--disable-gtk3
: desabilita
suporte opcional para GTK+-3
A libcddb é uma biblioteca que implementa os diferentes protocolos (CDDBP, HTTP, SMTP) para acessar dados em um servidor CDDB.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://downloads.sourceforge.net/libcddb/libcddb-1.3.2.tar.bz2
Soma de verificação MD5 da transferência: 8bb4a6f542197e8e9648ae597cd6bc8a
Tamanho da transferência: 384 KB
Espaço em disco estimado exigido: 3,9 MB (com testes)
Tempo de construção estimado: 0,2 UPC (com testes)
Uma conexão com a Internet é necessária para alguns testes desse pacote. A loja de certificados do sistema possivelmente precise ser configurada com make-ca-1.15 antes de se testar esse pacote
Por padrão esse pacote acessa freedb.org
, que já está fechado.
Modifique o padrão para usar gnudb.gnudb.org
e corrija dois arquivos
de dados de teste obsoletos:
sed -e '/DEFAULT_SERVER/s/freedb.org/gnudb.gnudb.org/' \ -e '/DEFAULT_PORT/s/888/&0/' \ -i include/cddb/cddb_ni.h && sed '/^Genre:/s/Trip-Hop/Electronic/' -i tests/testdata/920ef00b.txt && sed '/DISCID/i# Revision: 42' -i tests/testcache/misc/12340000
Corrija um problema de construção com gcc-14 e posterior:
sed -i 's/size_t l;/socklen_t l;/' lib/cddb_net.c
Instale o libcddb executando os seguintes comandos:
./configure --prefix=/usr --disable-static && make
Para testar os resultados, emita: make check -k. A suíte de teste precisa de conexão com a Internet. Um teste falha devido à ausência do servidor de teste.
Agora, como o(a) usuário(a) root
:
make install
A libcdio é uma biblioteca para acesso a CD-ROM e imagens de CD. A biblioteca libcdio-cdparanoia associada lê o áudio a partir do CD-ROM diretamente como dados, sem nenhuma etapa analógica entre eles, e escreve os dados em um arquivo ou canal como .wav, .aifc ou como PCM bruto linear de 16 bits.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://ftp.gnu.org/gnu/libcdio/libcdio-2.1.0.tar.bz2
Soma de verificação MD5 da transferência: aa7629e8f73662a762f64c444b901055
Tamanho da transferência: 1,7 MB
Espaço em disco estimado exigido: 53 MB (ambos os pacotes, incluindo verificações)
Tempo de construção estimado: 0,2 UPC (usando paralelismo=4; ambos os pacotes, incluindo verificações)
Arquivo exigido: https://ftp.gnu.org/gnu/libcdio/libcdio-paranoia-10.2+2.0.2.tar.bz2
Instale o libcdio executando os seguintes comandos:
./configure --prefix=/usr --disable-static && make
Para testar os resultados, emita: make check -k. Um teste
chamado realpath
é conhecido
por falhar.
Agora, como o(a) usuário(a) root
:
make install
Agora instale a libcdio-paranoia:
tar -xf ../libcdio-paranoia-10.2+2.0.2.tar.bz2 && cd libcdio-paranoia-10.2+2.0.2 && ./configure --prefix=/usr --disable-static && make
Para testar os resultados, emita: make check.
Agora, como o(a) usuário(a) root
:
make install
mostra as características da unidade de CD-ROM |
|
mostra informações a respeito de um CD ou imagem de CD |
|
é um utilitário de leitura de CD de áudio que inclui recursos extras de verificação de dados |
|
lê informações a partir de um CD ou imagem de CD |
|
é um reprodutor Curses simples de CD |
|
mostra informações a respeito de uma imagem ISO 9660 |
|
lê partes de uma imagem ISO 9660 |
|
emite comandos multimídia da libcdio |
|
contém as principais funções da API do cdio |
libdvdcss é uma biblioteca simples projetada para acessar DVDs como um dispositivo de bloco sem ter que se preocupar com a desencriptação.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://get.videolan.org/libdvdcss/1.4.3/libdvdcss-1.4.3.tar.bz2
Soma de verificação MD5 da transferência: e98239a88af9b2204f9b9d987c2bc71a
Tamanho da transferência: 380 KB
Espaço em disco estimado exigido: 3,3 MB
Tempo de construção estimado: menos que 0,1 UPC
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
--disable-static
:
Essa chave impede a instalação das versões estáticas das
bibliotecas.
libdvdread é uma biblioteca que fornece uma base simples para leitura de DVDs.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://get.videolan.org/libdvdread/6.1.3/libdvdread-6.1.3.tar.bz2
Soma de verificação MD5 da transferência: 3c58d1624a71a16ff40f55dbaca82523
Tamanho da transferência: 388 KB
Espaço em disco estimado exigido: 3,6 MB
Tempo de construção estimado: menos que 0,1 UPC
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
--disable-static
:
Essa chave impede a instalação das versões estáticas das
bibliotecas.
libdvdnav é uma biblioteca que permite uso fácil de recursos sofisticados de navegação de DVD, incluindo menus de DVD, reprodução multiangulo e até jogos interativos de DVD.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://get.videolan.org/libdvdnav/6.1.1/libdvdnav-6.1.1.tar.bz2
Soma de verificação MD5 da transferência: 46c46cb0294fbd1fcb8a0181818dad15
Tamanho da transferência: 360 KB
Espaço em disco estimado exigido: 3,7 MB
Tempo de construção estimado: menos que 0,1 UPC
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
--disable-static
:
Essa chave impede a instalação das versões estáticas das
bibliotecas.
O Quasar DV Codec (libdv) é um software CODEC para vídeo DV, o formato de codificação usado pela maioria das filmadoras digitais. Ele pode ser usado para copiar vídeos a partir de filmadoras usando uma conexão firewire (IEEE 1394).
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://downloads.sourceforge.net/libdv/libdv-1.0.0.tar.gz
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
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
--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.
O pacote libgstgtk4 contém uma biblioteca que vincula a estrutura de multimídia gstreamer ao GTK-4.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/archive/gstreamer-1.24.12/gst-plugins-rs-gstreamer-1.24.12.tar.gz
Soma de verificação MD5 da transferência: 217dc9b804c4fcbe52bfe87383e0ee57
Tamanho da transferência: 2,0 MB
Espaço em disco estimado exigido: 793 MB (52 MB instalado)
Tempo de construção estimado: 0,7 UPC (com paralelismo=8)
git-2.48.1, gst-plugins-base-1.24.12, GTK-4.16.12 e rustc-1.85.0
Uma conexão com a Internet é necessária para construir esse pacote. A loja de certificados do sistema possivelmente precise ser configurada com make-ca-1.15 antes de se construir esse pacote
Instale libgstgtk4 executando os seguintes comandos:
cd video/gtk4 && cargo build --release
Esse pacote não vem com uma suíte de teste, mas a funcionalidade básica dele pode ser testada depois da instalação.
Agora, como o(a) usuário(a) root
:
install -vm755 ../../target/release/libgstgtk4.so /usr/lib/gstreamer-1.0
Para testar a funcionalidade básica do pacote, emita: gst-launch-1.0 videotestsrc num-buffers=60 ! gtk4paintablesink em um emulador gráfico de terminal. Ele deveria reproduzir um vídeo de teste em uma janela GTK-4 por 2 segundos.
libmad é um decodificador de áudio MPEG de alta qualidade com capacidade de saída de 24 bits.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://downloads.sourceforge.net/mad/libmad-0.15.1b.tar.gz
Soma de verificação MD5 da transferência: 1be543bc30c56fb6bea1d7bf6a64e66c
Tamanho da transferência: 491 KB
Espaço em disco estimado exigido: 4,2 MB
Tempo de construção estimado: 0,1 UPC
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
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.
O pacote libmpeg2 contém uma biblioteca para decodificar fluxos de vídeo MPEG-2 e MPEG-1. A biblioteca é capaz de decodificar todos os fluxos MPEG que estejam em conformidade com certas restrições: “parâmetros restritos” para MPEG-1 e “perfil principal” para MPEG-2. Isso é útil para aplicativos e aplicações que necessitam decodificar fluxos de vídeo MPEG-2 e MPEG-1.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://libmpeg2.sourceforge.net/files/libmpeg2-0.5.1.tar.gz
Soma de verificação MD5 da transferência: 0f92c7454e58379b4a5a378485bbd8ef
Tamanho da transferência: 513 KB
Espaço em disco estimado exigido: 6 MB
Tempo de construção estimado: 0,1 UPC
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
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.
O pacote libmusicbrainz contém uma biblioteca que te permite acessar os dados mantidos no servidor MusicBrainz.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/metabrainz/libmusicbrainz/releases/download/release-5.1.0/libmusicbrainz-5.1.0.tar.gz
Soma de verificação MD5 da transferência: 4cc5556aa40ff7ab8f8cb83965535bc3
Tamanho da transferência: 76 KB
Espaço em disco estimado exigido: 6,6 MB (adicionais 4,4 MB para a documentação da API)
Tempo de construção estimado: 0,1 UPC
CMake-3.31.5, libxml2-2.13.6 e neon-0.34.0
Primeiro, corrija um problema causado pelo CMake-3.18.0 e posteriores:
patch -Np1 -i ../libmusicbrainz-5.1.0-cmake_fixes-1.patch
Corrija também um problema causado pela libxml-2.12.x:
sed -e 's/xmlErrorPtr /const xmlError */' \ -i src/xmlParser.cc
Instale o libmusicbrainz executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr -D CMAKE_BUILD_TYPE=Release .. && make
Se você tiver instalado o Doxygen-1.13.2, opcionalmente construa a documentação da API:
doxygen ../Doxyfile
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
Se você tiver construído a documentação da API, instale como
o(a) usuário(a) root
:
rm -rf /usr/share/doc/libmusicbrainz-5.1.0 && cp -vr docs/ /usr/share/doc/libmusicbrainz-5.1.0
O pacote libogg contém a estrutura de arquivo Ogg. Isso é útil para criar (codificar) ou reproduzir (decodificar) um fluxo físico de bits.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://downloads.xiph.org/releases/ogg/libogg-1.3.5.tar.xz
Soma de verificação MD5 da transferências: 3178c98341559657a15b185bf5d700a5
Tamanho da transferência: 420 KB
Espaço em disco estimado exigido: 3,5 MB (com testes)
Tempo de construção estimado: menos que 0,1 UPC (com testes)
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
--disable-static
:
Essa chave impede a instalação das versões estáticas das
bibliotecas.
O pacote libplacebo contém uma biblioteca para processamento de primitivos e sombreadores de imagem e vídeo. Também inclui um pipeline de renderização de alta qualidade que suporta OpenGL e Vulkan.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/haasn/libplacebo/archive/v7.349.0/libplacebo-7.349.0.tar.gz
Soma de verificação MD5 da transferência: 8dd72edf2ec5f1918770a317ef8107a5
Tamanho da transferência: 828 KB
Espaço em disco estimado exigido: 36 MB
Tempo de construção estimado: 0,1 UPC (Com testes, ambos usando paralelismo=4)
Glslang-15.1.0 e Vulkan-Loader-1.4.304
Little CMS-2.17 libunwind-1.8.1, dovi_tool, Nuklear e xxHash
Primeiro, corrija uma falha de construção que ocorre com glslang-15.0.0:
sed -e "20s/$/,/" \ -e "21i cxx.find_library('glslang', required: false)" \ -i src/glsl/meson.build
Instale libplacebo executando os seguintes comandos:
mkdir build && cd build && meson setup .. \ --prefix=/usr \ --buildtype=release \ -D tests=true \ -D demos=false && ninja
Para testar os resultados, emita: ninja test. Um teste, opengl_surfaceless.c, é conhecido por falhar.
Agora, como o(a) usuário(a) root
:
ninja install
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
-D demos=false
: Essa
chave desabilita construir os programas de demonstração,
porque construir plplay
atualmente está quebrado.
-D tests=true
: Essa
chave habilita construir o código necessário para executar os
testes.
libsamplerate é um conversor de taxa de amostragem para áudio.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/libsndfile/libsamplerate/releases/download/0.2.2/libsamplerate-0.2.2.tar.xz
Soma de verificação MD5 da transferência: 97c010fc25156c33cddc272c1935afab
Tamanho da transferência: 3,2 MB
Espaço em disco estimado exigido: 15 MB (adicionar 2 MB para os testes)
Tempo de construção estimado: menos que 0,1 UPC (adicionar 0,3 UPC para testes)
alsa-lib-1.2.13, libsndfile-1.2.2 e fftw-3.3.10 (para testes)
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
--disable-static
:
Essa chave impede a instalação das versões estáticas das
bibliotecas.
Libsndfile é uma biblioteca de rotinas C para leitura e escrita de arquivos contendo dados amostrados de áudio.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/libsndfile/libsndfile/releases/download/1.2.2/libsndfile-1.2.2.tar.xz
Soma de verificação MD5 da transferência: 04e2e6f726da7c5dc87f8cf72f250d04
Tamanho da transferência: 716 KB
Espaço em disco estimado exigido: 12 MB (adicionar 10 MB para os testes)
Tempo de construção estimado: 0,3 UPC (adicionar 0,3 UPC para testes)
FLAC-1.5.0, Opus-1.5.2 e libvorbis-1.3.7
alsa-lib-1.2.13, LAME-3.100, mpg123-1.32.10, Speex-1.2.1 e SQLite-3.49.1
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
compara dois arquivos de áudio |
|
concatena dois ou mais arquivos de áudio |
|
converte um arquivo de som de um formato para outro |
|
divide um multicanal em vários arquivos de canal único |
|
exibe informações acerca de um arquivo de som |
|
converte vários arquivos de canal único em um arquivo multicanal |
|
recupera metadados a partir de um arquivo de som |
|
configura metadados em um arquivo de som |
|
reproduz um arquivo de som |
|
salva os dados de áudio a partir de arquivos WAV com mais de 4 GB de tamanho |
|
contém as funções da API da libsndfile |
O pacote libva contém uma biblioteca que fornece acesso ao processamento de vídeo acelerado por hardware, usando hardware para acelerar o processamento de vídeo para a finalidade de descarregar a unidade central de processamento (CPU) para decodificar e codificar vídeo digital comprimido. A interface de decodificação/codificação de vídeo VA API é independente de plataforma e sistema de janela, voltada para Direct Rendering Infrastructure (DRI) no Sistema de Janelas X, no entanto, também pode ser usada potencialmente com framebuffer direto e subsistemas gráficos para saída gerada de vídeo. O processamento acelerado inclui suporte para decodificação de vídeo, codificação de vídeo, combinação de sub imagem e renderização.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/intel/libva/archive/2.22.0/libva-2.22.0.tar.gz
Soma de verificação MD5 da transferência: 3c90e965a00e2f4fa1c3d3d409bb47e5
Tamanho da transferência: 296 KB
Espaço em disco estimado exigido: 3,7 MB
Tempo de construção estimado: menos que 0,1 UPC
Ambiente de construção do "Xorg" e libdrm-2.4.124
O controlador VA API adequado para o hardware em teu sistema:
intel-vaapi-driver-2.4.1 (para
GPUs da Intel fornecidas com CPUs Haswell ou anteriores),
intel-media-driver-24.4.4
(para GPUs da Intel fornecidas com CPUs Broadwell ou
posteriores) e Mesa-24.3.4 (fornecendo os controladores VA
API r600
, radeonsi
e nouveau
, para as GPUs Radeon HD 2xxx e
posteriores da ATI/AMD, e GPUs
suportadas da NVIDIA; existe uma dependência circular;
leia-se a página do Mesa para informações acerca de como
quebrá-la)
Instale o libva executando os seguintes comandos:
cd build && meson setup --prefix=$XORG_PREFIX --buildtype=release && ninja
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
ninja install
Last updated on
O pacote libvdpau contém uma biblioteca que implementa a biblioteca VDPAU.
Video Decode and Presentation API for Unix (VDPAU) é uma biblioteca de fonte aberto (libvdpau) e API originalmente projetada pela NVIDIA para a série GeForce 8 dela e hardware de GPU posterior direcionado ao Sistema de Janelas X. Essa API da VDPAU permite que programas de vídeo transfiram partes do processo de decodificação de vídeo e pós-processamento de vídeo para o hardware de vídeo da GPU.
Atualmente, as partes capazes de serem transferidas pela VDPAU para a GPU são compensação de movimento (mo comp), transformação discreta inversa de cosseno (iDCT), decodificação de comprimento variável (VLD) e desbloqueio para vídeos codificados com MPEG-1, MPEG-2, MPEG-4 ASP (MPEG-4 Parte 2), H.264/MPEG-4 AVC e VC-1, WMV3/WMV9. Quais codificadores específicos desses podem ser transferidos para a GPU depende da versão do hardware da GPU; especificamente, para também decodificar os formatos MPEG-4 ASP (MPEG-4 Parte 2), Xvid/OpenDivX (DivX 4) e DivX 5, uma série GeForce 200M (2xxM) (a décima primeira geração de unidades de processamento gráfico GeForce da NVIDIA) ou mais recente hardware de GPU é exigido.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://gitlab.freedesktop.org/vdpau/libvdpau/-/archive/1.5/libvdpau-1.5.tar.bz2
Soma de verificação MD5 da transferência: 148a192110e7a49d62c0bf9ef916c099
Tamanho da transferência: 140 KB
Espaço em disco estimado exigido: 4,6 MB (com testes)
Tempo de construção estimado: menos que 0,1 UPC (com testes)
O controlador VDPAU adequado para o hardware em teu sistema:
libvdpau-va-gl-0.4.2 (para GPUs da
Intel) e Mesa-24.3.4 (fornecendo os controladores
VDPAU r600
, radeonsi
e nouveau
, para as GPUs Radeon HD 2xxx e
posteriores da ATI/AMD, e GPUs
suportadas da NVIDIA; o Mesa precisa ser construído
depois desse pacote para esses controladores)
Doxygen-1.13.2, Graphviz-12.2.1 e texlive-20240312 ou install-tl-unx
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}
Last updated on
O pacote libvdpau-va-gl contém uma biblioteca que implementa a biblioteca VDPAU. Libvdpau_va_gl usa OpenGL nos bastidores para acelerar o desenho e o dimensionamento e a VA-API (se disponível) para acelerar a decodificação de vídeo. Por enquanto, a VA-API está disponível em alguns chips da Intel e em alguns adaptadores de vídeo da AMD com a ajuda do controlador libvdpau.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência do Controlador Libvdpau-va-gl (HTTP): https://github.com/i-rinat/libvdpau-va-gl/archive/v0.4.2/libvdpau-va-gl-0.4.2.tar.gz
Soma de verificação MD5 da Transferência do Controlador Libvdpau-va-gl: 8db21dcfd5cd14c6ec51b992e20369dc
Tamanho da Transferência do Controlador Libvdpau-va-gl: 120 KB
Espaço em disco estimado exigido: 4,9 MB
Tempo de construção estimado: menos que 0,1 UPC (adicionar 1,1 UPC para testes)
CMake-3.31.5, libvdpau-1.5, libva-2.22.0 e Mesa-24.3.4
Doxygen-1.13.2, Graphviz-12.2.1 e texlive-20240312 ou install-tl-unx
Instale o libvdpau-va-gl executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=$XORG_PREFIX .. && make
Para testar os resultados, emita: make check. Os testes precisam ser executados a partir de um ambiente do Xorg.
Agora, como o(a) usuário(a) root
:
make install
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
Last updated on
O pacote libvorbis contém um formato de codificação de áudio e música de uso geral. Isso é útil para criar (codificar) e reproduzir (decodificar) som em um formato aberto (livre de patente).
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://downloads.xiph.org/releases/vorbis/libvorbis-1.3.7.tar.xz
Soma de verificação MD5 da transferência: 50902641d358135f06a8392e61c9ac77
Tamanho da transferência: 1,1 MB
Espaço em disco estimado exigido: 15 MB
Tempo de construção estimado: 0,1 UPC
Doxygen-1.13.2 e texlive-20240312 (ou install-tl-unx) (especificamente, pdflatex e htlatex) para construir a documentação PDF
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
--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.
Esse pacote, originário do projeto WebM, fornece as implementações de referência do Codificador VP8 (usado na maioria dos vídeos HTML5 atuais) e do Codificador VP9 de próxima geração.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/webmproject/libvpx/archive/v1.15.0/libvpx-1.15.0.tar.gz
Soma de verificação MD5 da transferência: 6d2b7b8e1c06f4b10ae63ca22491f8a4
Tamanho da transferência: 5,4 MB
Espaço em disco estimado exigido: 68 MB (adicionar 1,6 GB para os testes)
Tempo de construção estimado: 0,4 UPC (Usando paralelismo=4; adicionar aproximadamente 11 UPC para testes usando paralelismo=4, incluindo tempo de transferência)
yasm-1.3.0 ou NASM-2.16.03 e Which-2.23 (de forma que o configure consiga encontrar o yasm)
cURL-8.12.1 (para baixar arquivos de teste) e Doxygen-1.13.2 (para construir documentação)
Uma conexão com a Internet é necessária para alguns testes desse pacote. A loja de certificados do sistema possivelmente precise ser configurada com make-ca-1.15 antes de se testar esse pacote
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
sed ... : Esse comando corrige a titularidade de propriedade e as permissões dos arquivos instalados.
mkdir libvpx-build && cd libvpx-build: Os(As) desenvolvedores(as) da libvpx recomendam construir em um diretório de construção dedicado.
--disable-static
:
Essa chave impede a instalação das versões estáticas das
bibliotecas.
--disable-vp8
: Essa chave impede
construir suporte para o codificador VP8.
--disable-vp9
: Essa chave impede
construir suporte para o codificador VP9.
--target=generic-gnu
: Essa chave
desabilita otimizações específicas para x86 e x86-64,
permitindo construir esse pacote sem nasm e yasm instalados.
LD_LIBRARY_PATH=.: Isso é necessário para a suíte de teste usar a biblioteca que foi recém construída.
O pacote mlt é o Media Lovin Toolkit. Ele é uma estrutura multimídia de fonte aberto, projetada e desenvolvida para difusão televisiva. Ela fornece um kit de ferramentas para emissoras, editores de vídeo, reprodutores de mídia, transcodificadores, transmissores da web e muitos mais tipos de aplicativos.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/mltframework/mlt/releases/download/v7.30.0/mlt-7.30.0.tar.gz
Soma de verificação MD5 da transferência: ea1ac3e412fe182f6cb5e0e92f7eb116
Tamanho da transferência: 1,6 MB
Espaço em disco estimado exigido: 29 MB
Tempo de construção estimado: 0,1 UPC (Usando paralelismo=4)
frei0r-plugins-1.8.0 e Qt-6.8.2
Doxygen-1.13.2, fftw-3.3.10, libexif-0.6.25, SDL2-2.30.11, JACK, MOVEit, SoX e vid.stab
Instale mlt executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ -D MOD_QT=OFF \ -D MOD_QT6=ON \ -W no-dev .. && make
Esse pacote não vem com uma suíte de teste. No entanto, um arquivo .mp4 de teste pode ser reproduzido em um ambiente gráfico local com ./out/bin/melt <nome_arquivo>.mp4.
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
Opus é um formato de compressão de áudio com perdas desenvolvido pela Internet Engineering Task Force (IETF) que é particularmente adequado para fala interativa e transmissão de áudio pela Internet. Esse pacote fornece a biblioteca de desenvolvimento e cabeçalhos do Opus.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://downloads.xiph.org/releases/opus/opus-1.5.2.tar.gz
Soma de verificação MD5 da transferência: c40b3a1fbdbb9a7aa178600b88200c76
Tamanho da transferência: 7,4 MB
Espaço em disco estimado exigido: 33 MB (com testes)
Tempo de construção estimado: 0,5 UPC (com testes)
Instale o Opus executando os seguintes comandos:
mkdir build && cd build && meson setup --prefix=/usr \ --buildtype=release \ -D docdir=/usr/share/doc/opus-1.5.2 && ninja
Para testar os resultados, emita: ninja test.
Agora, como o(a) usuário(a) root
:
ninja install
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
O pacote pipewire contém um servidor e uma API de espaço de usuário(a) para lidar com pipelines de multimídia. Isso inclui uma API universal para conectar-se a dispositivos multimídia, bem como compartilhar arquivos multimídia entre aplicativos.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://gitlab.freedesktop.org/pipewire/pipewire/-/archive/1.2.7/pipewire-1.2.7.tar.bz2
Soma de verificação MD5 da transferência: 244a64d8873a868d102b2dd02c964906
Tamanho da transferência: 1,7 MB
Espaço em disco estimado exigido: 70 MB (com testes)
Tempo de construção estimado: 0,5 UPC (com testes, ambos usando paralelismo=4)
BlueZ-5.79, gstreamer-1.24.12, gst-plugins-base-1.24.12, PulseAudio-17.0, SBC-2.0, v4l-utils-1.28.1 e Wireplumber-0.5.8 (tempo de execução)
alsa-lib-1.2.13, Avahi-0.8, fdk-aac-2.0.3, FFmpeg-7.1, libcanberra-0.30, libdrm-2.4.124 (para um exemplo e suporte a libcamera), libxcb-1.17.0, libsndfile-1.2.2, libusb-1.0.27, Opus-1.5.2, SDL2-2.30.11 (para alguns exemplos), Valgrind-3.24.0, Vulkan-Loader-1.4.304, Bibliotecas do Xorg, Doxygen-1.13.2 e Graphviz-12.2.1 (para documentação), ffado, JACK, LC3plus, ldacBT, libcamera, libmysofa, lilv e xmltoman
Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/pipewire
Instale o pipewire executando os seguintes comandos:
mkdir build && cd build && meson setup .. \ --prefix=/usr \ --buildtype=release \ -D session-managers="[]" && ninja
Para testar o resultado, emita: ninja test.
Agora, como o(a) usuário(a) root
:
ninja install
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
-D
session-managers="[]"
: Essa chave permite
especificar-se os gerenciadores de sessão para construir-se
como subprojetos. Nós especificamos uma lista vazia para
evitar que meson baixe qualquer cópia
externa dos gerenciadores de sessão. Um gerenciador de sessão
do Pipewire recomendado pelos(as) desenvolvedores(as) do
PipeWire para uso geral, Wireplumber-0.5.8, está
disponível como um pacote do BLFS separado. Construa-o depois
de instalar Pipewire se você precisar executar o processo de
segundo plano do Pipewire (por exemplo, para a finalidade de
suportar Snapshot-47.1).
-D docs=true
: Essa chave habilita
a geração de documentação HTML. As dependências opcionais
para documentação precisam estar instaladas para isso
funcionar.
-D man=true
: Essa chave habilita
a geração de páginas de manual. As dependências opcionais
para documentação precisam estar instaladas para isso
funcionar.
-D ffmpeg=enabled
: Essa chave
habilita usar FFmpeg para conversão de áudio como uma
estrutura de retaguarda SPA.
-D vulkan=enabled
: Essa chave
habilita usar Vulkan para renderização de vídeo como uma
estrutura de retaguarda do SPA.
é um serviço que permite o acesso a dispositivos multimídia e permite o compartilhamento de arquivos multimídia entre aplicativos |
|
inicia uma versão compatível com Pulseaudio do serviço pipewire |
|
permite que você reproduza ou grave mídia usando uma instância do pipewire |
|
permite que você interaja com uma instância do pipewire |
|
permite que você interaja com o sistema de configuração do pipewire para propósitos de depuração ou verificação de sintaxe |
|
lista todos os processos de segundo plano e objetos em uso pelo pipewire |
|
despeja mensagens de depuração provenientes de uma instância local ou remota do pipewire para o console |
|
executa aplicativos JACK em uma instância do pipewire |
|
conecta as portas do pipewire |
|
inicializa um link de loopback entre duas portas pipewire. Isso é útil para testar e depurar |
|
inspeciona, adiciona e remove metadados de objetos |
|
despeja mensagens MIDI procedentes de um arquivo para a tela |
|
permite que você monitore instâncias de pipewire |
|
rastreia o uso de memória e chamadas de API usadas pelo pipewire |
|
reserva ou monitora um dispositivo via D-Bus |
|
exibe informações de desempenho em tempo real oriundas do pipewire |
|
executa aplicativos v4l2 em uma instância de pipewire |
|
inspeciona o perfil da placa de uma determinada placa de som |
|
permite você inspecionar plugins do pipewire |
|
despeja a configuração atual do pipewire no formato JSON |
|
permite você monitorar plugins do pipewire |
|
reamostra um determinado arquivo |
|
contém funções de API para lidar com pipelines multimídia |
PulseAudio é um sistema de som para Sistemas Operacionais POSIX, significando que ele é um proxy para aplicativos de som. Ele permite que você execute operações avançadas sobre teus dados de som à medida que eles passam entre teu aplicativo e teu hardware. Operações como transferir o áudio para uma máquina diferente, mudar o formato da amostra ou a contagem de canais e misturar vários sons em um são facilmente realizadas usando-se um servidor de som.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.freedesktop.org/software/pulseaudio/releases/pulseaudio-17.0.tar.xz
Soma de verificação MD5 da transferência: c4a3596a26ff4b9dcd0c394dd1d4f8ee
Tamanho da transferência: 1,5 MB
Espaço em disco estimado exigido: 42 MB (com testes)
Tempo de construção estimado: 0,2 UPC (Usando paralelismo=4; adicionar 0,2 UPC para testes)
alsa-lib-1.2.13, dbus-1.16.0, GLib-2.82.5, Speex-1.2.1 e Bibliotecas do Xorg
Avahi-0.8, BlueZ-5.79, Doxygen-1.13.2 (para documentação), fftw-3.3.10, gst-plugins-base-1.24.12, GTK-3.24.48, libsamplerate-0.2.2, SBC-2.0 (suporte a Bluetooth), Valgrind-3.24.0, JACK, libasyncns, LIRC, ORC, soxr, TDB e WebRTC AudioProcessing
Instale o PulseAudio executando os seguintes comandos:
mkdir build && cd build && meson setup --prefix=/usr \ --buildtype=release \ -D database=gdbm \ -D doxygen=false \ -D bluez5=disabled \ .. && ninja
Para testar os resultados, emita: ninja test. Um teste falha se os testes não forem executados como o(a) usuário(a) root, mas isso pode ser ignorado.
Agora, como o(a) usuário(a) root
:
ninja install
Executar o PulseAudio como um processo de segundo plano
abrangente a todo o sistema é possível, mas não recomendado.
Veja-se
https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/SystemWide/
para mais informações. Enquanto ainda como o(a) usuário(a)
root
, remova o arquivo de
configuração do D-Bus para o
processo de segundo plano abrangente a todo o sistema, para
evitar criar usuários(as) e grupos de sistema
desnecessários(as):
rm /usr/share/dbus-1/system.d/pulseaudio-system.conf
Se você tiver instalado Wireplumber-0.5.8, certifique-se de seguir os comandos para desabilitar o servidor Pulseaudio para evitar conflitos com Pipewire.
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
-D bluez5=disabled
:
Essa chave evita um erro de tempo de execução se dbus-1.16.0 e
SBC-2.0
estiverem instalados, mas BlueZ-5.79 não estiver instalado.
Remova isso se você tiver instalado todos os três pacotes.
-D doxygen=false
:
Isso permite que o pacote compile se Doxygen-1.13.2 não
estiver instalado. Remova isso se você tiver instalado isso e
desejar construir a documentação.
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.
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.
reproduz ou grava fluxos de áudio brutos ou codificados em um servidor de som PulseAudio |
|
é uma ferramenta usada para reconfigurar um servidor de som PulseAudio durante o tempo de execução |
|
é usado para controlar um servidor de som PulseAudio em execução |
|
é o envolucrador OSS do PulseAudio |
|
é um link simbólico para pacat |
|
é usado para reproduzir arquivos de áudio em um servidor de som PulseAudio |
|
é um link simbólico para pacat |
|
é um link simbólico para pacat |
|
é uma ferramenta que pode ser usada para informar a um servidor de som PulseAudio local para suspender temporariamente o acesso para os dispositivos de áudio, o que permite que outros aplicativos os acessem diretamente |
|
é o Utilitário de Credencial do X11 do PulseAudio |
|
é um conjunto de comandos sequenciais de shell que imprime diversas informações relacionadas ao servidor Pulseaudio atualmente em uso |
|
é um servidor de som, de baixa latência, em rede de intercomunicação, para Linux |
|
é uma interface de equalizador para coletores de equalizador PulseAudio (exige fftw-3.3.10 ao tempo da construção) |
|
inicia o PulseAudio e o registra no gerenciador de sessão do X11 |
O pacote SBC é um codificador e decodificador de áudio digital usado para transferir dados para dispositivos de saída de áudio Bluetooth, como fones de ouvido ou alto-falantes.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.kernel.org/pub/linux/bluetooth/sbc-2.0.tar.xz
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
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
--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.
A Simple DirectMedia Layer (abreviadamente SDL) é uma biblioteca multiplataforma projetada para facilitar escrever software multimídia, como jogos e emuladores. Esse código é uma camada de compatibilidade; ele fornece uma API compatível de binário e fonte para aplicativos escritos contra a SDL 1.2, mas usa a SDL 2.0 nos bastidores.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/libsdl-org/sdl12-compat/archive/release-1.2.68/sdl12-compat-release-1.2.68.tar.gz
Soma de verificação MD5 da transferência: 04ed17494dad2131b37e0300f8af31ec
Tamanho da transferência: 452 KB
Espaço em disco estimado exigido: 7,1 MB
Tempo de construção estimado: menos que 0,1 UPC
Instale o sdl12-compat executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=RELEASE \ .. && make
Agora, como o(a) usuário(a) root
:
make install && rm -vf /usr/lib/libSDLmain.a
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.
determina os sinalizadores de compilação e de
vinculador que deveriam ser usados para compilar e
vincular aplicativos que usam a |
|
contém funções que fornecem links de compatibilidade para funções de baixo nível SDL2 para áudio, teclado, mouse, joystick, hardware 3D via OpenGL e o buffer de quadro 2D em várias plataformas |
A Simple DirectMedia Layer Versão 2 (SDL2 para abreviar) é uma biblioteca multiplataforma projetada para facilitar escrever software multimídia, como jogos e emuladores.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.libsdl.org/release/SDL2-2.30.11.tar.gz
Soma de verificação MD5 da transferência: bea190b480f6df249db29eb3bacfe41e
Tamanho da transferência: 7,2 MB
Espaço em disco estimado exigido: 188 MB (com documentos)
Tempo de construção estimado: 0,5 UPC (usando paralelismo=4; com documentos)
libxkbcommon-1.8.0, wayland-protocols-1.40 e Bibliotecas do Xorg (se esses não estiverem presentes, os módulos correspondentes não serão construídos)
alsa-lib-1.2.13, Doxygen-1.13.2 (para criar documentação), ibus-1.5.31, libsamplerate-0.2.2, libunwind-1.8.1, NASM-2.16.03, pipewire-1.2.7, PulseAudio-17.0, um ambiente gráfico, DirectFB, fcitx, jack e sndio
Instale o SDL2 executando os seguintes comandos:
./configure --prefix=/usr && make
Se você tiver o Doxygen-1.13.2 instalado e quiser construir a documentação HTML, execute os seguintes comandos:
pushd docs && doxygen && popd
Se você desejar construir e executar os testes de regressão do pacote, não delete as bibliotecas estáticas abaixo até depois que os testes sejam construídos.
Agora, como o(a) usuário(a) root
:
make install && rm -v /usr/lib/libSDL2*.a
Se você construiu a documentação, instale-a como o(a)
usuário(a) root
:
install -v -m755 -d /usr/share/doc/SDL2-2.30.11/html && cp -Rv docs/output/html/* /usr/share/doc/SDL2-2.30.11/html
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.
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.
determina os sinalizadores de compilação e
vinculador que deveriam ser usados para compilar e
vincular aplicativos que usam a |
|
contém funções que fornecem acesso de baixo nível a áudio, teclado, mouse, joystick, hardware 3D via OpenGL e o buffer de quadro 2D em várias plataformas |
O pacote Sound Theme Freedesktop contém temas sonoros para a área de trabalho.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://people.freedesktop.org/~mccann/dist/sound-theme-freedesktop-0.8.tar.bz2
Soma de verificação MD5 da transferência: d7387912cfd275282d1ec94483cb2f62
Tamanho da transferência: 472 KB
Espaço em disco estimado exigido: 2 MB
Tempo de construção estimado: menos que 0,1 UPC
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
O pacote SoundTouch contém uma biblioteca de processamento de áudio de fonte aberto que permite mudar os parâmetros de andamento, tom e taxa de reprodução do som independentemente uns dos outros.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.surina.net/soundtouch/soundtouch-2.3.3.tar.gz
Soma de verificação MD5 da transferência: 489c1050315965f69a9c0ad949744d73
Tamanho da transferência: 596 KB
Espaço em disco estimado exigido: 7,6 MB
Tempo de construção estimado: 0,2UPC
O tarball se expande para 'soundtouch' em vez do esperado 'soundtouch-2.3.3'
Instale o SoundTouch executando os seguintes comandos:
O comando bootstrap abaixo falha se a variável de ambiente ACLOCAL estiver configurada conforme especificado em Xorg-7. Se ele for usado, ACLOCAL precisa estar desconfigurada para esse pacote e então reconfigurada para outros pacotes.
./bootstrap && ./configure --prefix=/usr \ --docdir=/usr/share/doc/soundtouch-2.3.3 && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
--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.
Speex é um formato de compressão de áudio projetado especificamente para fala. Ele é bem adaptado a aplicações de Internet e oferece recursos úteis que não estão presentes na maioria dos outros CODECs.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://downloads.xiph.org/releases/speex/speex-1.2.1.tar.gz
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ência (HTTP): https://downloads.xiph.org/releases/speex/speexdsp-1.2.1.tar.gz
Soma de verificação MD5 da transferência: e6eb5ddef743a362c8018f260b91dca5
Tamanho da transferência: 904 KB
Espaço em disco estimado exigido: 5,5 MB
Tempo de construção estimado: menos que 0,1 UPC
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
--disable-static
:
Essa chave impede a instalação das versões estáticas das
bibliotecas.
Taglib é uma biblioteca usada para ler, escrever e manipular rótulos de arquivos de áudio e é usada por aplicativos como VLC.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://taglib.org/releases/taglib-2.0.2.tar.gz
Soma de verificação MD5 da transferência: 95edea13107ac4cc07b7ad4bd1cb5cd1
Tamanho da transferência: 1,4 MB
Espaço em disco estimado exigido: 16 MB
Tempo de construção estimado: 0,1 UPC (Usando paralelismo=4)
Instale o Taglib executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ -D BUILD_SHARED_LIBS=ON \ .. && make
A suíte de teste exige Cppunit, mas ele não é um pacote do BLFS.
Agora, como o(a) usuário(a) root
:
make install
v4l-utils fornece uma série de utilitários para dispositivos de mídia, permitindo a habilidade de lidar com os formatos proprietários disponíveis a partir da maioria das câmeras de web (libv4l), e fornecendo ferramentas para testar dispositivos V4L.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.linuxtv.org/downloads/v4l-utils/v4l-utils-1.28.1.tar.xz
Soma de verificação MD5 da transferência: 6716de513a1fd2e1edb404a46a455855
Tamanho da transferência: 1,2 MB
Espaço em disco estimado exigido: 34 MB
Tempo de construção estimado: 0,4 UPC (usando paralelismo = 4)
alsa-lib-1.2.13, GLU-9.0.3 e libjpeg-turbo-3.0.1
Doxygen-1.13.2, Qt-6.8.2 (para qv4l2 e qvidcap), SDL2-2.30.11, ambos LLVM-19.1.7 (com Clang e alvo BPF) e libbpf (para decodificadores de controle remoto infravermelho baseados em BPF) e SDL_image
Se você tiver instalado o LLVM e a libbpf (não no BLFS), ou
habilite o alvo BPF (via -D
LLVM_TARGETS_TO_BUILD=
) quando construir o LLVM ou
desabilite os decodificadores de controle remoto
infravermelho baseados em BPF:
sed -i '/^ir_bpf_enabled/s/=.*/= false/' utils/keytable/meson.build
Instale o v4l-utils executando os seguintes comandos:
mkdir build && cd build && meson setup .. \ --prefix=/usr \ --buildtype=release \ -D gconv=disabled \ -D doxygen-doc=disabled && ninja
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
ninja install
Se você também desejar instalar os programas contrib, adicione:
for prog in v4l2gl v4l2grab do cp -v contrib/test/$prog /usr/bin done
-D gconv=disabled
:
Essa chave desabilita a instalação errada do gconv-modules
que quebraria a glibc.
é uma ferramenta para lidar com dispositivos baseados em cx18 |
|
decodifica formatos multiplexados a partir de dispositivos USB TM5600/TM6000 |
|
é uma ferramenta de linha de comando para serviços de TV digital |
|
é uma ferramenta destinada a converter entre diferentes formatos de arquivo. Ela é compatível com a versão 5 da API do DVB |
|
é 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 |
|
é 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 |
|
é 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 |
|
é 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) |
|
é um utilitário usado para configurar dispositivos V4L2 |
|
é usado para testar dispositivos de captura video4linux |
|
é usado para capturar vídeo a partir de um dispositivo V4L2 |
|
é 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 |
|
é uma ferramenta de teste de conformidade |
|
é uma ferramenta para controlar controles v4l2 a partir da linha de comandos |
|
é uma ferramenta para obter e configurar diretamente registradores de dispositivos v4l2 |
|
captura imagens usando libv4l e as armazena como arquivos PPM |
|
captura imagens usando libv4l e as armazena como arquivos PPM, ao mesmo tempo que permite opções adicionais, como configurar a quantidade de quadros capturados e salvar o arquivo como um arquivo RAW |
|
verifica os dispositivos de mídia instalados em uma máquina e os correspondentes nós de dispositivos |
O pacote Wireplumber contém um gerenciador de sessões e políticas para Pipewire.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://gitlab.freedesktop.org/pipewire/wireplumber/-/archive/0.5.8/wireplumber-0.5.8.tar.bz2
Soma de verificação MD5 da transferência: a2cbfe6885da8dcbeacbba05f62bcf67
Tamanho da transferência: 412 KB
Espaço em disco estimado exigido: 89 MB (com testes)
Tempo de construção estimado: 0,3 UPC (com testes)
GLib-2.82.5 , pipewire-1.2.7 e Systemd-257.3 (tempo de execução, reconstruído com Linux-PAM-1.7.0)
Doxygen-1.13.2, lxml-5.3.1, sphinx-8.2.1, sphinx_rtd_theme-3.0.2 e Breathe
Instale Wireplumber executando os seguintes comandos:
mkdir build && cd build && meson setup --prefix=/usr --buildtype=release -D system-lua=true .. && ninja
Para testar os resultados, emita: ninja test.
Agora, como o(a) usuário(a) root
:
ninja install
Por fim, renomeie o diretório de documentação para um
diretório versionado como o(a) usuário(a) root
:
mv -v /usr/share/doc/wireplumber{,-0.5.8}
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
-D system-lua=true
:
Essa chave habilita usar a versão do sistema de Lua. Omita
essa chave se você não tiver instalado Lua, mas observe que
meson baixará e instalará a
própria versão dele.
Para a finalidade de que o Wireplumber seja usado pelo Pipewire, o Wireplumber e o Pipewire precisam ser configurados para iniciar quando um ambiente de área de trabalho for iniciado.
O Pipewire agora fornece a própria implementação dele de
servidor Pulseaudio, o que causa conflitos de tempo de
execução com o servidor fornecido pelo próprio Pulseaudio.
Isso geralmente se apresenta por aplicativos travando ou
com mau funcionamento ao tentar reproduzir ou gravar áudio
e vídeo. Primeiro, evite que o Pulseaudio inicie a própria
implementação dele de servidor executando os seguintes
comandos como o(a) usuário(a) root
:
rm -vf /etc/xdg/autostart/pulseaudio.desktop && rm -vf /etc/xdg/Xwayland-session.d/00-pulseaudio-x11 && sed -e '$a autospawn = no' -i /etc/pulse/client.conf
A seguir, configure o Wireplumber para iniciar quando um
ambiente de área de trabalho for iniciado. Execute os
seguintes comandos como o(a) usuário(a) root
para habilitar as unidades de
usuário(a) do systemd:
systemctl enable --global pipewire.socket && systemctl enable --global pipewire-pulse.socket && systemctl enable --global wireplumber
Agora que o Wireplumber está configurado para iniciar quando um ambiente de área de trabalho for iniciado, é recomendado que você se deslogue da teu sessão e se logue novamente.
O pacote x264 fornece uma biblioteca para codificação de fluxos de vídeo no formato H.264/MPEG-4 AVC.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://anduin.linuxfromscratch.org/BLFS/x264/x264-20250212.tar.xz
Soma de verificação MD5 da transferência: 9fc19d8e9641d24639c9f6075add56d2
Tamanho da transferência: 728 KB
Espaço em disco estimado exigido: 12 MB
Tempo de construção estimado: 0,2 UPC (Usando paralelismo=4)
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
--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.
O pacote x265 fornece uma biblioteca para codificação de fluxos de vídeo no formato H.265/HEVC.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://bitbucket.org/multicoreware/x265_git/downloads/x265_4.1.tar.gz
Soma de verificação MD5 da transferência: f1c3c80248d8574378a4aac8f374f6de
Tamanho da transferência: 1,6 MB
Espaço em disco estimado exigido: 39 MB
Tempo de construção estimado: 0,4 UPC (usando paralelismo = 4)
Instale o x265 executando os seguintes comandos:
mkdir bld && cd bld && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D GIT_ARCHETYPE=1 \ -W no-dev \ ../source && make
Esse pacote não vem com uma suíte de teste.
Para instalar o pacote, primeiro remova quaisquer versões
antigas da biblioteca. Depois da instalação, remova uma
biblioteca estática. Como o(a) usuário(a) root
:
make install && rm -vf /usr/lib/libx265.a
-W no-dev
: Essa chave
é usada para suprimir avisos destinados para os(as)
desenvolvedores(as) do pacote.
-D GIT_ARCHETYPE=1
:
Essa chave é necessária porque o sistema de construção não
gerará um arquivo de pkg-config ou instalará uma biblioteca
compartilhada, a menos que git-2.48.1 esteja instalado. O Git não é
exigido para mais nada nesse pacote, de forma que essa chave
é usada para contornar isso para usuários(as) que não queiram
instalar o Git como uma dependência de construção.
rm -vf /usr/lib/libx265.a: O BLFS não recomenda usar bibliotecas estáticas.
O pacote Xine Libraries contém bibliotecas xine. Elas são úteis para interfacear com plugins externos que permitem o fluxo de informações a partir da fonte para o hardware de áudio e vídeo.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://downloads.sourceforge.net/xine/xine-lib-1.2.13.tar.xz
Soma de verificação MD5 da transferência: 9e1be39857b7a3cd7cc0f2b96331ff22
Tamanho da transferência: 4,8 MB
Espaço em disco estimado exigido: 98 MB (com documentação da API)
Tempo de construção estimado: 0,5 UPC (Usando paralelismo=4; com documentação da API)
um ambiente gráfico, FFmpeg-7.1, e ao menos um de: alsa-lib-1.2.13, PulseAudio-17.0 ou JACK
AAlib-1.4rc5, FAAD2-2.11.1, FLAC-1.5.0, gdk-pixbuf-2.42.12, GLU-9.0.3, ImageMagick-7.1.1-43, liba52-0.8.0, libdvdcss-1.4.3, libmad-0.15.1b, libmng-2.0.3, libnsl-2.0.1, libva-2.22.0 (exige GLU-9.0.3), libvdpau-1.5, libvorbis-1.3.7, libvpx-1.15.0, Mesa-24.3.4, Samba-4.21.4, sdl12-compat-1.2.68, Speex-1.2.1, Doxygen-1.13.2 (para criar a documentação da API), v4l-utils-1.28.1 DirectFB, libbluray, libcaca, libdca, libFAME, libmodplug, libtheora, musepack, VCDImager e WavPack,
Primeiro, corrija a construção desse pacote com ffmpeg-7.0 e posterior:
patch -Np1 -i ../xine-lib-1.2.13-upstream_fixes-1.patch
Instale o Bibliotecas Xine executando os seguintes comandos:
./configure --prefix=/usr \ --disable-vcd \ --with-external-dvdnav \ --docdir=/usr/share/doc/xine-lib-1.2.13 && make
Para criar a documentação da API, o Doxygen precisa estar instalado e emitir o seguinte comando:
doxygen doc/Doxyfile
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
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
--disable-vcd
: Essa
chave é exigida para compilar o Xine Lib sem o VCDImager instalado.
Remova essa opção se você tiver instalado o VCDImager.
--with-external-dvdnav
: Essa
chave é exigida porque as bibliotecas internas não conseguem
desencriptar DVD.
--docdir=/usr/share/doc/xine-lib-1.2.13
:
Essa chave faz com que a documentação seja instalada em um
diretório versionado, em vez do padrão /usr/share/doc/xine-lib
.
--disable-vaapi
: use essa chave
se libva-2.22.0 estiver instalado e GLU-9.0.3 não
estiver, para evitar uma falha de construção.
XviD é um CODEC de vídeo compatível com MPEG-4.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://downloads.xvid.com/downloads/xvidcore-1.3.7.tar.gz
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
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
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.
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 é um reprodutor de áudio.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://distfiles.audacious-media-player.org/audacious-4.4.2.tar.bz2
Soma de verificação MD5 da transferência: 5866219d45b199f882cb5c31aa320528
Tamanho da transferência: 624 KB
Espaço em disco estimado exigido: 16 MB (com suporte a GTK)
Tempo de construção estimado: 0,2 UPC (Usando paralelismo=4; com suporte GTK)
Plugins Exigidos
Transferência (HTTP): https://distfiles.audacious-media-player.org/audacious-plugins-4.4.2.tar.bz2
Soma de verificação MD5 da transferência: 07cc198e6961b84e5945f889cb88ea75
Tamanho da transferência: 1,7 MB
Espaço em disco estimado exigido: 40 MB (com suporte a GTK)
Tempo de construção estimado: 0,4 UPC (Usando paralelismo=4; com suporte a GTK)
mpg123-1.32.10, FFmpeg-7.1 e neon-0.34.0 (para mp3 online e rádio ogg)
alsa-lib-1.2.13, cURL-8.12.1, FAAD2-2.11.1, FLAC-1.5.0, LAME-3.100, libxml2-2.13.6, libcdio-2.1.0 (para identificar e reproduzir CDs), libnotify-0.8.4, libsndfile-1.2.2, libvorbis-1.3.7, pipewire-1.2.7, PulseAudio-17.0, SDL2-2.30.11, ampache-browser, adplug, A biblioteca Bauer stereophonic-to-binaural DSP (bs2b), FluidSynth, JACK (exige libsamplerate-0.2.2), libcue, libmodplug, libmms, libopenmpt, libsidplayfp, LIRC, sndio, SoX e WavPack
Instale o Audacious executando os seguintes comandos (você possivelmente deseje mudar o carimbo de construção para outra sequência de caracteres):
mkdir build && cd build && meson setup --prefix=/usr \ --buildtype=release \ -D gtk=true \ -D qt=true \ -D buildstamp=BLFS \ -D libarchive=true \ .. && ninja
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
ninja install
Instale o pacote exigido de plugins emitindo os seguintes comandos:
tar -xf ../../audacious-plugins-4.4.2.tar.bz2 && cd audacious-plugins-4.4.2 && mkdir build && cd build && meson setup \ --prefix=/usr \ --buildtype=release \ -D gtk=true \ -D qt=true \ .. && ninja
Agora, como o(a) usuário(a) root
:
ninja install
-D buildstamp=BLFS
:
Essa chave acrescenta o texto fornecido à sequência de
caracteres da versão.
-D gtk=true
: Essa
opção habilita suporte a GTK para a interface gráfica de
usuário(a).
-D qt=true
: Essa
opção habilita suporte a Qt para a interface gráfica de
usuário(a).
-D libarchive=true
:
Isso adiciona suporte para a libarchive, para leitura de
conjuntos de módulos comprimidos ou skins.
-D valgrind=true
: A opção
habilita o suporte à análise Valgrind.
O pacote CDParanoia contém
uma ferramenta de extração de áudio de CD. Isso é útil para
extrair arquivos .wav
a partir
de CDs de áudio. Uma unidade de CDROM compatível com CDDA é
necessária. Praticamente todas as unidades suportadas pelo
Linux podem ser usadas.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://downloads.xiph.org/releases/cdparanoia/cdparanoia-III-10.2.src.tgz
Soma de verificação MD5 da transferência: b304bbe8ab63373924a744eac9ebc652
Tamanho da transferência: 179 KB
Espaço em disco estimado exigido: 2,9 MB
Tempo de construção estimado: menos que 0,1 UPC
Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/cdparanoia
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
é usado para 'ripar' um CD de áudio. Ripar é o processo de extrair digitalmente música a partir de um CD de áudio |
|
contém funções usadas pelo cdparanoia, bem como outros pacotes, que podem identificar automaticamente se um dispositivo de CD é compatível com CDDA |
|
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 |
O pacote KWave contém um aplicativo Editor de Som baseado em KDE Frameworks.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.kde.org/stable/release-service/24.12.2/src/kwave-24.12.2.tar.xz
Soma de verificação MD5 da transferência: 8a336e3ff1885983e55c06b7bcd80d70
Tamanho da transferência: 6,2 MB
Espaço em disco estimado exigido: 85 MB
Tempo de construção estimado: 1,2 UPC (usando paralelismo = 4)
AudioFile-0.3.6, fftw-3.3.10, id3lib-3.8.3 e KDE Frameworks-6.11.0
alsa-lib-1.2.13, FLAC-1.5.0, libogg-1.3.5 e PulseAudio-17.0
Instale o KWave executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=$KF6_PREFIX \ -D CMAKE_BUILD_TYPE=Release \ -D BUILD_TESTING=OFF \ -W no-dev .. && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
O pacote LAME contém um codificador de MP3 e, opcionalmente, um analisador de quadros de MP3. Isso é útil para criar e analisar arquivos de áudio comprimidos.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://downloads.sourceforge.net/lame/lame-3.100.tar.gz
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
Dmalloc, Electric Fence, libsndfile-1.2.2 e NASM-2.16.03
Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/lame
Evite que o diretório do código-fonte seja codificado rigidamente por engano como um caminho de pesquisa de biblioteca compartilhada nos programas instalados:
sed -i -e 's/^\(\s*hardcode_libdir_flag_spec\s*=\).*/\1/' configure
Instale o LAME executando os seguintes comandos:
./configure --prefix=/usr --enable-mp3rtp --disable-static && make
Para testar os resultados, emita: LD_LIBRARY_PATH=libmp3lame/.libs make test.
Agora, como o(a) usuário(a) root
:
make pkghtmldir=/usr/share/doc/lame-3.100 install
--enable-mp3rtp
: Essa
chave habilita construir o aplicativo de codificação para
RTP.
--disable-static
:
Essa chave impede a instalação das versões estáticas das
bibliotecas.
--enable-nasm
: Essa opção
habilita o uso do NASM-2.16.03 para compilar rotinas
otimizadas de montagem para x86 de 32 bits. Observe que isso
não tem efeito em x86_64.
O pacote mpg123 contém um reprodutor de MP3 baseado em console. Ele afirma ser o decodificador de MP3 mais rápido para Unix.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://downloads.sourceforge.net/mpg123/mpg123-1.32.10.tar.bz2
Soma de verificação MD5 da transferência: f6d1a69dbf340c8d889b64772e8e0a61
Tamanho da transferência: 1,1 MB
Espaço em disco estimado exigido: 16 MB (com testes)
Tempo de construção estimado: 0,2 UPC (com testes)
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
é usado para reproduzir arquivos MP3 por intermédio do console |
|
é uma ferramenta para despejar metadados ID3 a partir de arquivos de áudio MPEG usando a libmpg123 |
|
extrai somente quadros MPEG a partir de um fluxo usando a libmpg123 (stdin para stdout) |
|
reproduz áudio PCM bruto para um dispositivo de saída |
|
contém as funções da API do mpg123 |
|
contém as funções da API do out123 |
|
contém algumas funções de síntese de sinal de áudio e conversão de formato |
PulseAudio Volume Control (pavucontrol) é uma ferramenta simples de controle de volume baseada em GTK ("mixer") para o servidor de som PulseAudio. Em contraste com as ferramentas clássicas de mixagem, essa te permite controlar o volume dos dispositivos de hardware e de cada fluxo de reprodução separadamente.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.freedesktop.org/software/pulseaudio/pavucontrol/pavucontrol-6.1.tar.xz
Soma de verificação MD5 da transferência: 51743b9bc9eb01959bf3c770facc6555
Tamanho da transferência: 168 KB
Espaço em disco estimado exigido: 5,2 MB
Tempo de construção estimado: 0,2UPC
Gtkmm-4.16.0, JSON-GLib-1.10.6, libsigc++-3.6.0 e PulseAudio-17.0
Instale o pavucontrol executando os seguintes comandos:
mkdir build && cd build && meson setup --prefix=/usr --buildtype=release -D lynx=false .. && ninja
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
ninja install && mv /usr/share/doc/pavucontrol /usr/share/doc/pavucontrol-6.1
-D lynx=false
: Essa
chave desabilita gerar o arquivo README em formato de texto.
Remova essa chave se você quiser o arquivo README em formato
de texto e tiver Lynx-2.9.2 instalado.
O pacote Pnmixer fornece um controle de volume leve com um ícone da bandeja.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/nicklan/pnmixer/releases/download/v0.7.2/pnmixer-v0.7.2.tar.gz
Soma de verificação MD5 da transferência: e9f17f56c50de39393030a96e343427b
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
Instale o Pnmixer executando os seguintes comandos:
mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr .. && make
Esse pacote não tem uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
O pacote Vorbis Tools contém ferramentas de linha de comando úteis para codificar, reproduzir ou editar arquivos usando o codec Ogg.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://downloads.xiph.org/releases/vorbis/vorbis-tools-1.4.2.tar.gz
Soma de verificação MD5 da transferência: 998fca293bd4e4bdc2b96fb70f952f4e
Tamanho da transferência: 1,3 MB
Espaço em disco estimado exigido: 12 MB
Tempo de construção estimado: 0,1 UPC
Primeiro, aplique um sed para corrigir um problema com gcc-14 e posterior:
sed -i '/i18n.h/i #include "utf8.h"' ogginfo/codec_skeleton.c
A seguir, aplique um sed para corrigir uma vulnerabilidade de segurança no 'oggenc':
sed -i 's/start+1,/start + strspn(start, PATH_SEPS),/' oggenc/platform.c
Instale o Vorbis Tools executando os seguintes comandos:
./configure --prefix=/usr --enable-vcut && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
--enable-vcut
: Esse
parâmetro é usado de forma que o aplicativo vcut seja construído como
não é por padrão.
é um reprodutor de áudio de linha de comando para fluxos Ogg Vorbis |
|
é um decodificador simples que converte arquivos Ogg Vorbis em arquivos de áudio PCM (WAV ou bruto) |
|
é um codificador que transforma arquivos brutos, WAV ou AIFF em um fluxo Ogg Vorbis |
|
imprime informações armazenadas em um arquivo de áudio |
|
divide um arquivo em dois arquivos em um ponto de corte designado |
|
é um editor que muda informações nos rótulos de metadados do arquivo de áudio |
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 é uma solução para gravar, converter e transmitir áudio e vídeo. Ela é um conversor de vídeo e áudio muito rápido e também pode adquirir a partir de uma fonte ao vivo de áudio/vídeo. Projetada para ser intuitiva, a interface de linha de comando (ffmpeg) tenta avaliar todos os parâmetros, quando possível. FFmpeg também pode converter de qualquer taxa de amostragem para qualquer outra e redimensionar o vídeo instantaneamente com um filtro polifásico de alta qualidade. FFmpeg pode usar uma fonte de vídeo compatível com Video4Linux e qualquer fonte de áudio Open Sound System.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://ffmpeg.org/releases/ffmpeg-7.1.tar.xz
Soma de verificação MD5 da transferência: 623aa63a72139a82ccb99cd6ee477b94
Tamanho da transferência: 11 MB
Espaço em disco estimado exigido: 205 MB (adicionar 1,5 GB para a suíte/testes FATE; adicionar 869 MB para documentação)
Tempo de construção estimado: 1,2 UPC (usando paralelismo=4; adicionar 3,2 UPC (com THREADS=4) para executar a suíte FATE depois que arquivos de amostra forem baixados; adicionar 0,2 UPC para documentos doxygen)
libaom-3.12.0, libass-0.17.3, fdk-aac-2.0.3, FreeType-2.13.3, LAME-3.100, libvorbis-1.3.7, libvpx-1.15.0, Opus-1.5.2, x264-20250212, x265-4.1 e NASM-2.16.03 ou yasm-1.3.0
alsa-lib-1.2.13, libva-2.22.0, SDL2-2.30.11
libvdpau-1.5 e libvdpau-va-gl-0.4.2
Doxygen-1.13.2, Fontconfig-2.16.0, FriBidi-1.0.16, frei0r-plugins-1.8.0, libcdio-2.1.0 (para identificar e reproduzir CDs), libdrm-2.4.124 (para entrada “kmsgrab”), libjxl-0.11.1, libwebp-1.5.0, OpenJPEG-2.5.3, GnuTLS-3.8.9, PulseAudio-17.0, Samba-4.21.4, Speex-1.2.1, texlive-20240312 (ou install-tl-unx) para documentação PDF e PS, v4l-utils-1.28.1, Vulkan-Loader-1.4.304, XviD-1.3.7, um ambiente gráfico, dav1d, Flite, GSM, libaacplus, libbluray, libcaca, libcelt, libdc1394, libdca, libiec61883, libilbc, libmodplug, libnut (Git checkout), librtmp, libssh, libtheora, OpenAL, OpenCore AMR, Srt, Schroedinger, TwoLAME, vo-aaenc, vo-amrwbenc e ZVBI
Primeiro, aplique um remendo que adicione uma API necessária para alguns pacotes construírem:
patch -Np1 -i ../ffmpeg-7.1-chromium_method-1.patch
Em seguida, corrija um problema causado pela versão mais recente do x265-4.1:
sed -e 's/X265_BUILD >= 210/(&) \&\& (X265_BUILD < 213)/' \ -i libavcodec/libx265.c
Em seguida, corrija um problema causado pelo Texinfo 7.2:
patch -Np1 -i ../ffmpeg-7.1-texinfo_fix-1.patch
Instale o FFmpeg executando os seguintes comandos:
./configure --prefix=/usr \ --enable-gpl \ --enable-version3 \ --enable-nonfree \ --disable-static \ --enable-shared \ --disable-debug \ --enable-libaom \ --enable-libass \ --enable-libfdk-aac \ --enable-libfreetype \ --enable-libmp3lame \ --enable-libopus \ --enable-libvorbis \ --enable-libvpx \ --enable-libx264 \ --enable-libx265 \ --enable-openssl \ --ignore-tests=enhanced-flv-av1 \ --docdir=/usr/share/doc/ffmpeg-7.1 && make && gcc tools/qt-faststart.c -o tools/qt-faststart
A documentação HTML foi construída na etapa anterior. Se você tiver o texlive-20240312 instalado e desejar construir versões PDF e Postscript da documentação, emita os seguintes comandos:
pushd doc && for DOCNAME in `basename -s .html *.html` do texi2pdf -b $DOCNAME.texi && texi2dvi -b $DOCNAME.texi && dvips -o $DOCNAME.ps \ $DOCNAME.dvi done && popd && unset DOCNAME
Se você tiver o Doxygen-1.13.2 instalado e desejar construir (se --disable-doc foi usado) ou reconstruir a documentação HTML, emita:
doxygen doc/Doxyfile
Os testes da suíte FATE incluem comparações com arquivos instalados e não deveriam ser executados antes que o pacote esteja instalado. Portanto, se você desejar executá-los, as instruções são fornecidas mais abaixo.
Agora, como o(a) usuário(a) root
:
make install && install -v -m755 tools/qt-faststart /usr/bin && install -v -m755 -d /usr/share/doc/ffmpeg-7.1 && install -v -m644 doc/*.txt /usr/share/doc/ffmpeg-7.1
Se a documentação PDF e Postscript foi construída, emita os
seguintes comandos, como o(a) usuário(a) root
, para instalá-las:
install -v -m644 doc/*.pdf /usr/share/doc/ffmpeg-7.1 && install -v -m644 doc/*.ps /usr/share/doc/ffmpeg-7.1
Se você usou o doxygen para criar
manualmente a documentação da API, instale-a emitindo os
seguintes comandos como o(a) usuário(a) root
:
install -v -m755 -d /usr/share/doc/ffmpeg-7.1/api && cp -vr doc/doxy/html/* /usr/share/doc/ffmpeg-7.1/api && find /usr/share/doc/ffmpeg-7.1/api -type f -exec chmod -c 0644 \{} \; && find /usr/share/doc/ffmpeg-7.1/api -type d -exec chmod -c 0755 \{} \;
Para testar a instalação corretamente, você precisa ter o rsync-3.4.1 instalado e seguir as instruções para o FFmpeg Automated Testing Environment (FATE). Primeiro, cerca de 1 GB de arquivos de amostra usados para executar o FATE são baixados com o comando:
make fate-rsync SAMPLES=fate-suite/
O diretório fate-suite
é criado
e os arquivos são baixados lá. Esse comando, atualmente,
executa um comando rsync para obter os arquivos de amostra.
Você possivelmente queira comprimir e manter esse diretório
para testagem novamente, para testagem em outro sistema ou
para quando uma nova versão do FFmpeg for lançada. Em
seguida, desempacote os arquivos de amostra no diretório do
fonte e execute o comando make
fate-rsync ... acima para sincronizar com o
repositório do(a) desenvolvedor(a). O tamanho e o tempo da
transferência são drasticamente reduzidos com isso. Os
valores estimados em "Informações do Pacote" não incluem o
UPC de transferência. Algumas amostras possivelmente tenham
sido removidas em versões mais recentes, de forma que, para a
finalidade de ter certeza de que as amostras FATE locais e do
servidor sejam idênticas, ao usar amostras salvas
anteriormente, execute o seguinte comando:
rsync -vrltLW --delete --timeout=60 --contimeout=60 \ rsync://fate-suite.ffmpeg.org/fate-suite/ fate-suite/
Em seguida, execute FATE com os seguintes comandos (existem mais que três mil e oitocentos (3.800) testes na suíte):
make fate THREADS=N
SAMPLES=fate-suite/ | tee ../fate.log &&
grep ^TEST ../fate.log | wc -l
onde N
é um
inteiro, N
≤ número
de elementos de processamento no sistema.
Uma execução bem-sucedida não deveria retornar erros ou avisos, apenas uma lista de testes e o valor total no final.
find ... ;: Corrige permissões de arquivos e diretórios da documentação.
--enable-libfreetype
:
Habilita suporte a Freetype.
--enable-gpl
:
habilita o uso de código GPL e permite suporte para
pós-processamento, swscale e muitos outros recursos.
--enable-version3
:
Habilita o uso do código (L)GPL versão 3.
--enable-nonfree
:
Habilita o uso de código não-livre. Observe que as
bibliotecas e binários resultantes não serão redistribuíveis.
--disable-static
:
Essa chave impede a instalação das versões estáticas das
bibliotecas.
--enable-shared
:
Habilita construir bibliotecas compartilhadas, caso
contrário, somente bibliotecas estáticas serão construídas e
instaladas.
--disable-debug
:
Desabilita construir símbolos de depuração nos aplicativos e
bibliotecas.
--enable-libaom
:
Habilita decodificação de áudio e vídeo AV1 via libaom
.
--enable-libass
:
Habilita a renderização do formato de legenda ASS/SSA via
libass
.
--enable-libdrm
: Use essa chave,
se o libdrm-2.4.124 estiver instalado, para
construir o módulo de entrada “kmsgrab”, o qual é
útil para captura ou transmissão de tela.
--enable-libfdk-aac
:
Habilita a codificação de áudio AAC via libfdk-aac
.
--enable-libmp3lame
:
Habilita a codificação de áudio MP3 via libmp3lame
.
--enable-libvorbis
--enable-libvpx
:
Habilita codificação WebM via libvorbis
e libvpx
.
--enable-libx264
:
Habilita a codificação H.264/MPEG-4 AVC de alta qualidade via
libx264
.
--enable-libx265
:
Habilita a codificação H.265/HEVC de alta qualidade via
libx265
.
--enable-openssl
:
Habilita o protocolo HTTPS para fluxos de rede de
intercomunicação.
--ignore-tests=...
:
Desabilita testes que falham para executar no BLFS sem os
pacotes opcionais. Atualmente o teste AV1 está desabilitado
porque precisa do dav1d para fazer decodificação AV1 na CPU.
O teste pode funcionar se você tiver uma GPU que consiga
decodificar AV1, mas isso não foi testado.
--enable-gnutls
: Use essa opção,
em vez de --enable-openssl
, se você
quiser usar GnuTLS em vez de
OpenSSL para protocolo
HTTPS.
--disable-doc
: Desabilita
construir documentação HTML. Isso somente é necessário se o
Doxygen-1.13.2 estiver instalado e você
não quiser construir a documentação HTML.
--enable-libpulse
: Habilita
suporte para Pulseaudio para
saída de áudio.
gcc tools/qt-faststart.c -o
tools/qt-faststart: Isso constrói o
aplicativo qt-faststart, o qual pode
modificar filmes formatados em QuickTime (.mov
ou .mp4
), de forma que as informações do
cabeçalho estejam localizadas no início do arquivo, e não no
final. Isso permite que o arquivo do filme comece a ser
reproduzido antes que todo o arquivo tenha sido baixado.
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.
é 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 |
|
é um reprodutor de mídia muito simples e portável
que usa as bibliotecas do |
|
reúne informações a partir de fluxos multimídia e as imprime de forma legível por humanos e máquinas |
|
move o arquivo de índice para a frente dos vídeos quicktime (mov/mp4) |
|
é uma biblioteca que contém os CODECs do FFmpeg (tanto codificação quanto decodificação) |
|
é a biblioteca de manuseio de dispositivos do FFmpeg |
|
é uma biblioteca de filtros que pode alterar vídeo ou áudio entre o decodificador e o codificador (ou saída gerada) |
|
é 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 |
|
é uma biblioteca que contém funções para reamostragem de áudio e vídeo. |
|
é a biblioteca de utilitários do FFmpeg |
|
é a biblioteca de pós-processamento do FFmpeg |
|
é a biblioteca de reescalonamento de áudio do FFmpeg; ela contém funções para converter formatos de amostra de áudio |
|
é a biblioteca de reescalonamento de imagens do FFmpeg |
mpv é um reprodutor de mídia livre para a linha de comando. Ele suporta uma ampla variedade de formatos de arquivos de mídia, codificadores de áudio e vídeo e tipos de legendas.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/mpv-player/mpv/archive/v0.39.0/mpv-0.39.0.tar.gz
Soma de verificação MD5 da transferência: a004bb1532bdaba8f19a488a27f41253
Tamanho da transferência: 3,3 MB
Espaço em disco estimado exigido: 26 MB
Tempo de construção estimado: 0,1 UPC (Usando paralelismo=4)
alsa-lib-1.2.13, FFmpeg-7.1, libass-0.17.3, libplacebo-7.349.0, Mesa-24.3.4 e PulseAudio-17.0
libjpeg-turbo-3.0.1, libva-2.22.0, libvdpau-1.5, luajit-20250212, uchardet-0.0.8 e Vulkan-Loader-1.4.304
libdvdcss-1.4.3, libdvdread-6.1.3, libdvdnav-6.1.1 e libbluray
pipewire-1.2.7, SDL2-2.30.11, JACK e OpenAL
Adicione uma correção para construir com FFMpeg > 7.0
sed -i 's/AV_OPT_TYPE_CHANNEL_LAYOUT/AV_OPT_TYPE_CHLAYOUT/' filters/f_lavfi.c
Instale mpv executando os seguintes comandos:
mkdir build && cd build && meson setup --prefix=/usr \ --buildtype=release \ -D x11=enabled \ .. && ninja
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
ninja install
Esse pacote instala arquivos de ícone na hierarquia
/usr/share/icons/hicolor
e
arquivos de área de trabalho na hierarquia /usr/share/applications
. Você pode
melhorar o desempenho do sistema e o uso de memória
atualizando /usr/share/icons/hicolor/index.theme
e
/usr/share/applications/mimeinfo.cache
.
Para realizar a atualização, você precisa ter o GTK-3.24.48
instalado (para o cache de ícones) e o desktop-file-utils-0.28 (para
o cache da área de trabalho) e emitir os seguintes comandos
como o(a) usuário(a) root
:
gtk-update-icon-cache -qtf /usr/share/icons/hicolor && update-desktop-database -q
-D x11=enabled
:
permite vincular com as bibliotecas do X11.
-D dvdnav=enabled
: habilita
suporte para reprodução de DVD.
-D cdda=enabled
: habilita suporte
para áudio de CD.
-D sdl2=enabled
: habilita o uso
de SDL2 para saída de áudio e vídeo.
VLC é um reprodutor, transmissor e codificador de mídia. Ele consegue reproduzir várias entradas, como arquivos, fluxos de rede de intercomunicação, dispositivos de captura, áreas de trabalho ou DVD, SVCD, VCD e CD de áudio. Ele consegue usar a maioria dos codificadores de áudio e vídeo (MPEG 1/2/4, H264, VC-1, DivX, WMV, Vorbis, AC3, AAC, etc.) e também consegue converter para diferentes formatos e (ou) enviar fluxos ao longo da rede de intercomunicação.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.videolan.org/vlc/3.0.21/vlc-3.0.21.tar.xz
Soma de verificação MD5 da transferência: cde72f38943c685a1a39acc82da2339f
Tamanho da transferência: 24 MB
Espaço em disco estimado exigido: 746 MB
Tempo de construção estimado: 1,9 UPC (usando paralelismo = 4; com testes)
alsa-lib-1.2.13, desktop-file-utils-0.28, FFmpeg-7.1, liba52-0.8.0, libgcrypt-1.11.0 libmad-0.15.1b, Lua-5.4.7 e um ambiente gráfico
dbus-1.16.0, libidn-1.42 e libssh2-1.11.1
libarchive-3.7.7, libcddb-1.3.2, libdv-1.0.0, libdvdcss-1.4.3, libdvdread-6.1.3, libdvdnav-6.1.1, opencv-4.11.0, Samba-4.21.4, v4l-utils-1.28.1, libbluray, libdc1394, libnfs, libproxy, libraw1394, Live555 e VCDImager (exige libcdio-2.1.0)
libogg-1.3.5, Game Music Emu, libdvbpsi, libshout, libmatroska (exige libebml), libmodplug, Musepack e sidplay-libs
FAAD2-2.11.1, FLAC-1.5.0, libaom-3.12.0, libass-0.17.3, libmpeg2-0.5.1, libpng-1.6.46, libva-2.22.0, libvorbis-1.3.7, Opus-1.5.2, Speex-1.2.1, libvpx-1.15.0, x264-20250212, aribb24, dav1d, Dirac, FluidLite, FluidSynth, libdca, libkate, libtheora, OpenMAX, Schroedinger, Shine, SoX, Tremor, Twolame e Zapping VBI
AAlib-1.4rc5, Fontconfig-2.16.0, FreeType-2.13.3, FriBidi-1.0.16, libplacebo-7.349.0 (atualmente quebrado), librsvg-2.59.2, libvdpau-1.5, sdl12-compat-1.2.68, libcaca e libmfx
PulseAudio-17.0, libsamplerate-0.2.2, spatialaudio e JACK
FreeRDP-3.12.0, libtar, libvncclient e LIRC
GnuTLS-3.8.9, libnotify-0.8.4, libxml2-2.13.6, Protobuf-29.3, taglib-2.0.2, xdg-utils-1.2.1 (tempo de execução), AtmoLight, libmicrodns e Srt
Primeiro, adicione correções para problemas do taglib-2.0 e ffmpeg-7 e posteriores:
patch -Np1 -i ../vlc-3.0.21-taglib-1.patch && patch -Np1 -i ../vlc-3.0.21-fedora_ffmpeg7-1.patch
Instale o VLC executando os seguintes comandos:
BUILDCC=gcc ./configure --prefix=/usr --disable-libplacebo && make
Para testar os resultados, emita: make check.
Agora, como o(a) usuário(a) root
:
make docdir=/usr/share/doc/vlc-3.0.21 install
Esse pacote instala arquivos de ícone na hierarquia
/usr/share/icons/hicolor
e
arquivos de área de trabalho na hierarquia /usr/share/applications
. Você pode
melhorar o desempenho do sistema e o uso de memória
atualizando /usr/share/icons/hicolor/index.theme
e
/usr/share/applications/mimeinfo.cache
.
Para realizar a atualização, você precisa ter o GTK-3.24.48
instalado (para o cache de ícones) e o desktop-file-utils-0.28 (para
o cache da área de trabalho) e emitir os seguintes comandos
como o(a) usuário(a) root
:
gtk-update-icon-cache -qtf /usr/share/icons/hicolor && update-desktop-database -q
--disable-libplacebo
:
Essa chave é exigida para desabilitar suporte para usar
libplacebo como um pipeline de renderização porque o VLC é
incompatível com a versão mais recente da libplacebo.
--disable-vpx
: Use essa chave
para desabilitar a libvpx.
--disable-mad
: Use essa chave se
você não tiver a libmad
instalada.
--disable-avcodec
--disable-swscale
: Use essas chaves se você não tiver
o FFmpeg instalado.
--disable-a52
: Use essa chave se
você não tiver a liba52
instalada.
--disable-xcb
: Use essa chave se
você não tiver o Sistema de Janelas
X instalado.
--disable-alsa
: Use essa chave se
você não tiver o ALSA
instalado.
--disable-libgcrypt
: Use essa
chave se você não tiver a libgcrypt instalada.
--disable-sftp
: O padrão é o de
construir o módulo sftp se libssh2-1.11.1 estiver instalado.
Use essa chave se você não quiser construir esse módulo.
Existem muitas opções para o comando configure do VLC. Verifique a saída gerada do configure --help para uma lista completa.
é um conjunto de comandos sequenciais para executar o VLC com a interface fictícia |
|
é um conjunto de comandos sequenciais para executar o VLC com a interface ncurses |
|
é um conjunto de comandos sequenciais para executar o VLC com uma interface de linha de comando |
|
é um conjunto de comandos sequenciais para executar o VLC com a interface de temas |
|
é o reprodutor de mídia VLC |
|
é um envolucrador para eliminar privilégios com o VLC |
O pacote xine User Interface contém um reprodutor multimídia. Ele reproduz CDs, DVDs e VCDs. Ele também decodifica arquivos multimídia como AVI, MOV, WMV, MPEG e MP3 a partir de unidades locais de disco e exibe multimídia transmitida pela Internet.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
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.
Transferência (HTTP): https://downloads.sourceforge.net/xine/xine-ui-0.99.14.tar.xz
Soma de verificação MD5 da transferência: 86a4db9050405a91fcc33b7ad85274f5
Tamanho da transferência: 2,1 MB
Espaço em disco estimado exigido: 23 MB
Tempo de construção estimado: 0,2 UPC
xine-lib-1.2.13 e shared-mime-info-2.4
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
Esse pacote instala arquivos de ícone na hierarquia
/usr/share/icons/hicolor
e
arquivos de área de trabalho na hierarquia /usr/share/applications
. Você pode
melhorar o desempenho do sistema e o uso de memória
atualizando /usr/share/icons/hicolor/index.theme
e
/usr/share/applications/mimeinfo.cache
.
Para realizar a atualização, você precisa ter o GTK-3.24.48
instalado (para o cache de ícones) e o desktop-file-utils-0.28 (para
o cache da área de trabalho) e emitir os seguintes comandos
como o(a) usuário(a) root
:
gtk-update-icon-cache -qtf /usr/share/icons/hicolor && update-desktop-database -q
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
.
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.
é um reprodutor de vídeo de arte ASCII que utiliza AAlib como interface para as bibliotecas xine |
|
é um reprodutor de vídeo de arte colorida ASCII que utiliza CACA como interface para as bibliotecas xine |
|
é uma interface de Framebuffer para as bibliotecas 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 |
|
produz uma descrição concisa do sistema e orienta você ao longo do processo de informar um defeito |
|
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 |
|
é uma ferramenta para conectar-se a um servidor de controle remoto xine |
Este capítulo contém informações acerca de utilitários de escrita de CD/DVD no Linux.
Fontes adicionais de informação incluem:
O pacote Cdrdao contém utilitários de gravação de CD. Eles são úteis para gravar um CD no modo disco de uma vez.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://downloads.sourceforge.net/cdrdao/cdrdao-1.2.4.tar.bz2
Soma de verificação MD5 da transferência: 2ada887d1b30b440867b8df0d3023cf7
Tamanho da transferência: 1,4 MB
Espaço em disco estimado exigido: 39 MB
Tempo de construção estimado: 0,1 UPC
libao-1.2.0, libvorbis-1.3.7, libmad-0.15.1b e LAME-3.100 (exigido para construir toc2mp3)
Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/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
--mandir=/usr/share/man: Instale páginas de manual em /usr/share/man em vez de /usr/man.
grava CD-Rs de áudio ou dados no modo disk-at-once (DAO) baseado em uma descrição textual do conteúdo do CD |
|
converte CUE para formato TOC para CDs de áudio |
|
converte um arquivo TOC do Cdrdao em um arquivo cddb e o imprime na stdout |
|
converte TOC para formato CUE para CDs de áudio |
|
converte uma imagem de disco de CD de áudio
(arquivo |
O pacote Cdrtools contém utilitários de gravação de CD. Eles são úteis para ler, criar ou escrever (gravar) CDs, DVDs e discos Blu-ray.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://downloads.sourceforge.net/cdrtools/cdrtools-3.02a09.tar.bz2
Soma de verificação MD5 da transferência: 1e224a6adbbe4ad40047b9fddbb0e60c
Tamanho da transferência: 2,1 MB
Espaço em disco estimado exigido: 32 MB
Tempo de construção estimado: 0,7 UPC
Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/Cdrtools
Esse pacote não suporta construção paralela.
Instale o Cdrtools executando os seguintes comandos:
sed -i 's|/opt/schily|/usr|g' DEFAULTS/Defaults.linux && sed -i 's|DEFINSGRP=.*|DEFINSGRP=root|' DEFAULTS/Defaults.linux && sed -i 's|INSDIR=\s*sbin|INSDIR=bin|' rscsi/Makefile && export GMAKE_NOWARN=true && export CFLAGS="$CFLAGS -std=gnu89 -fno-strict-aliasing" && make -j1 INS_BASE=/usr \ DEFINSUSR=root \ DEFINSGRP=root \ VERSION_OS="LinuxFromScratch"
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
GMAKE_NOWARN=true && make INS_BASE=/usr \ DEFINSUSR=root \ DEFINSGRP=root \ MANSUFF_LIB=3cdr \ install && install -v -m755 -d /usr/share/doc/cdrtools-3.02a09 && install -v -m644 README.* READMEs/* ABOUT doc/*.ps \ /usr/share/doc/cdrtools-3.02a09
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>.
atualiza o firmware em gravadores de DVD+/-RW BTC DRW1008. Por favor, tenha cuidado com esse programa |
|
converte áudio de CD em arquivos de som WAV |
|
grava áudio ou dados em Discos Compactos |
|
é um aplicativo de diagnóstico usado para despejar um dispositivo ISO-9660 ou arquivo em hexadecimal |
|
é usado para exibir os parâmetros de linha de comando usados para criar uma imagem ISO-9660 |
|
é um aplicativo de diagnóstico usado para despejar um dispositivo ou arquivo baseado na ISO-9660 |
|
é usado para analisar ou listar uma imagem ISO-9660 |
|
é usado para verificar uma imagem ISO-9660 |
|
é um link simbólico para mkisofs usado para criar imagens híbridas de sistemas de arquivos ISO-9660/HFS |
|
é usado para criar imagens de sistemas de arquivos ISO-9660/JOLIET/HFS, opcionalmente com atributos Rock Ridge |
|
lê ou escreve Discos Compactos |
|
é um gerenciador remoto SCSI |
|
é usado para verificar e averiguar a Interface
Binária do Aplicativo da |
|
é uma biblioteca de transporte SCSI altamente portável |
O pacote dvd+rw-tools contém vários utilitários para masterizar a mídia DVD, tanto +RW/+R quanto -R[W]. A ferramenta principal é growisofs que fornece uma maneira para estruturar e desenvolver um sistema de arquivos ISO9660 em (assim como gravar uma imagem arbitrária pré-masterizada em) todas as mídias de DVD suportadas. Isso é útil para criar um novo DVD ou adicionar uma imagem existente em um DVD parcialmente gravado.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://fy.chalmers.se/~appro/linux/DVD+RW/tools/dvd+rw-tools-7.1.tar.gz
Soma de verificação MD5 da transferência: 8acb3c885c87f6838704a0025e435871
Tamanho da transferência: 138 KB
Espaço em disco estimado exigido: 1,7 MB
Tempo de construção estimado: menos que 0,1 UPC
Cdrtools-3.02a09 (tempo de execução)
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
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.
libburn é uma biblioteca para gravação de dados pré-formatados em mídia óptica: CD, DVD e BD (Blu-Ray).
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://files.libburnia-project.org/releases/libburn-1.5.6.tar.gz
Soma de verificação MD5 da transferência: cf9852f3b71dbc2b6c9e76f6eb0474f0
Tamanho da transferência: 972 KB
Espaço em disco estimado exigido: 17 MB
Tempo de construção estimado: 0,1 UPC
Doxygen-1.13.2 (para gerar documentação HTML)
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
libisoburn é uma interface para as bibliotecas libburn e libisofs que habilita criação e expansão dos sistemas de arquivos ISO-9660 sobre todas as mídias CD/DVD/BD suportadas pela libburn. Isso inclui mídias como DVD+RW, que não suportam gerenciamento multissessão em nível de mídia e até mesmo arquivos simples de disco ou dispositivos de bloco.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://files.libburnia-project.org/releases/libisoburn-1.5.6.tar.gz
Soma de verificação MD5 da transferência: da transferência efb19f7f718f0791f717b2c6094995ec
Tamanho da transferência: 1,5 MB
Espaço em disco estimado exigido: 20 MB (com documentação Tk e HTML)
Tempo de construção estimado: 0,2 UPC (com documentação Tk e HTML)
libburn-1.5.6 e libisofs-1.5.6
Doxygen-1.13.2 (para gerar documentação HTML), Tk-8.6.16 (para xorriso-tcltk) e libjte
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
--disable-static
:
Essa chave impede a instalação das versões estáticas das
bibliotecas.
--enable-pkg-check-modules
:
Essa chave informa ao conjunto de comandos sequenciais de
configuração para usar pkg-config para verificar as bibliotecas
libburn e libisofs.
é um link simbólico para xorriso que copia arquivos da imagem ISO para um sistema de arquivos em disco |
|
é um link simbólico para xorriso que fornece uma interface de usuário(a) do tipo cdrecord |
|
é um aplicativo para criar, carregar, manipular, ler e escrever imagens de sistema de arquivos ISO 9660 com extensões Rock Ridge |
|
é um aplicativo para verificar um dispositivo USB ou cartão de memória para ver se ele é adequado para cópia de imagens |
|
é um link simbólico para xorriso que fornece uma interface de usuário(a) do tipo mkisofs |
|
é uma estrutura de interação direta com o(a) usuário(a) que opera o xorriso em modo de diálogo |
|
contém as funções da API da libisoburn |
libisofs é uma biblioteca para criar um sistema de arquivos ISO-9660 com extensões como RockRidge ou Joliet.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://files.libburnia-project.org/releases/libisofs-1.5.6.tar.gz
Soma de verificação MD5 da transferência: 9f996b317f622802f12d28d27891709f
Tamanho da transferência: 858 KB
Espaço em disco estimado exigido: 14 MB
Tempo de construção estimado: 0,1 UPC
Doxygen-1.13.2 (para gerar documentação HTML) e libjte
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
--disable-static
:
Essa chave impede a instalação das versões estáticas das
bibliotecas.
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.
O Common Unix Printing System (CUPS) é um aplicativo de gerenciamento de fila de documentos de impressão e utilitários associados. É baseado no "Internet Printing Protocol" e fornece serviços de impressão para a maioria das impressoras PostScript e raster.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/OpenPrinting/cups/releases/download/v2.4.11/cups-2.4.11-source.tar.gz
Soma de verificação MD5 da transferência: 922ef8d3d40e5bf654277ee3d0ae3eba
Tamanho da transferência: 7,8 MB
Espaço em disco estimado exigido: 60 MB (Adicionar 49 MB para testes)
Tempo de construção estimado: 0,4 UPC (Adicionar 1,0 UPC para testes)
colord-1.4.7, dbus-1.16.0, libusb-1.0.27, Linux-PAM-1.7.0 e xdg-utils-1.2.1
Avahi-0.8, libpaper-2.2.6, MIT Kerberos V5-1.21.3, PHP-8.4.4 e Python2
Gutenprint-5.3.4 e hplip (impressoras HP)
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]
Você precisará adicionar um(a) usuário(a) lp
, pois o Cups criará alguns arquivos de
propriedade desse usuário. (O(A) usuário(a) lp
é o padrão usado pelo Cups, mas pode ser mudado para um(a)
usuário(a) diferente passando-se um parâmetro para o conjunto
de comandos sequenciais configure). Use o seguinte
comando como o(a) usuário(a) root
:
useradd -c "Usuário(a) do Serviço de Impressão" -d /var/spool/cups -g lp -s /bin/false -u 9 lp
Você também precisará de um grupo dedicado que conterá
usuários(as) autorizados(as) a realizar tarefas
administrativas do Cups.
Adicione o grupo executando o seguinte comando como o(a)
usuário(a) root
:
groupadd -g 19 lpadmin
Se você deseja adicionar um(a) usuário(a) ao grupo
administrativo do Cups,
execute o seguinte comando como o(a) usuário(a) root
:
usermod -a -G lpadmin <nome_usuário(a)>
Se você não instalou o xdg-utils-1.2.1, use o seguinte sed para mudar o navegador padrão que será usado para acessar a interface web do Cups:
sed -i 's#@CUPS_HTMLVIEW@#firefox#' desktop/cups.desktop.in
Substitua firefox pelo navegador da web da tua escolha.
Construa o Cups executando os seguintes comandos:
./configure --libdir=/usr/lib \ --with-rundir=/run/cups \ --with-system-groups=lpadmin \ --with-docdir=/usr/share/cups/doc-2.4.11 && make
Para testar os resultados, emita: LC_ALL=C make -k check. Uma sessão gráfica já ativa com endereço de barramento é necessária para se executar os testes. Certifique-se de que não exista outra instância do Cups executando, caso contrário, pelo menos quatro (4) testes falharão com "address in use".
Agora, como o(a) usuário(a) root
:
make install && ln -svnf ../cups/doc-2.4.11 /usr/share/doc/cups-2.4.11
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
Esse pacote instala arquivos de ícone na hierarquia
/usr/share/icons/hicolor
e
você pode melhorar o desempenho do sistema e o uso de
memória atualizando /usr/share/icons/hicolor/index.theme
.
Para realizar a atualização, você precisa ter o GTK-3.24.48
instalado e emitir o seguinte comando como o(a) usuário(a)
root
:
gtk-update-icon-cache -qtf /usr/share/icons/hicolor
--with-rundir=/run/cups
: Essa
chave impede o pacote de referenciar o diretório obsoleto
/var/run
.
--with-system-groups=lpadmin
:
Essa chave garante que somente o lpadmin
será usado como o grupo
administrativo do Cups .
--disable-libusb
: Use essa chave
se você tiver instalado o libusb-1.0.27, mas desejar usar o
controlador usblp do núcleo.
--enable-libpaper
: Use essa chave
se você tiver instalado a libpaper e desejar usá-lo com o
Cups.
Normalmente, impressoras são configuradas por intermédio de um navegador da web. O servidor Cups normalmente se conectará por meio da URL http://localhost:631. A partir daí, impressoras, tarefas de impressão e a configuração do servidor podem ser configurados(as) e gerenciados(as). A administração remota do sistema também pode ser configurada. A configuração também pode ser feita a partir da linha de comando por meio dos comandos lpadmin, lpoptions e lpstat.
A configuração do Cups é dependente do tipo de impressora e pode ser complexa. Geralmente, as impressoras PostScript são mais fáceis. Para instruções detalhadas acerca da configuração e uso do Cups, veja-se https://www.cups.org/documentation.html.
Para impressoras não PostScript imprimirem com o Cups, você precisa instalar o ghostscript-10.04.0 para converter PostScript em imagens raster; e um controlador (por exemplo, proveniente de Gutenprint-5.3.4) para converter as imagens raster resultantes em um formato que a impressora entenda. Os controladores Foomatic usam o ghostscript-10.04.0 para converter PostScript diretamente em um formato imprimível, mas isso é considerado abaixo do ideal pelos(as) desenvolvedores(as) do Cups.
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
cancela tarefas de impressão existentes nas filas de impressão |
|
aceita tarefas enviadas para um destino |
|
é um utilitário de configuração do aplicativo Cups |
|
atualiza ou consulta o arquivo cupsd.conf para um servidor |
|
é o agendador do Common Unix Printing System |
|
para impressoras e classes |
|
inicia impressoras e classes |
|
é uma interface para o subsistema de filtros do Cups que te permite converter um arquivo para um formato específico |
|
rejeita tarefas enviadas para um destino |
|
testa a conformidade de arquivos PPD |
|
é uma impressora IPP Everywhere para CUPS |
|
encontra impressoras de protocolo de impressão da Internet |
|
envia solicitações IPP para o URI especificado e testa e (ou) exibe os resultados |
|
submete arquivos para impressão ou altera uma tarefa pendente |
|
configura filas de impressoras e classes fornecidas pelo Cups |
|
fornece controle limitado sobre filas de impressoras e classes fornecidas pelo Cups |
|
lista os dispositivos ou controladores disponíveis conhecidos pelo servidor Cups |
|
move a tarefa especificada para um novo destino |
|
exibe ou configura opções e padrões da impressora |
|
mostra a situação atual da fila de impressão na impressora nomeada |
|
submete arquivos para impressão |
|
cancela tarefas de impressão que tenham sido enfileiradas para impressão |
|
exibe informações de situação acerca das atuais classes, tarefas e impressoras |
|
compila arquivos fonte PPDC em um ou mais arquivos PPD |
|
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 |
|
importa um ou mais arquivos PPD para um arquivo fonte de compilador de PPD |
|
mescla dois ou mais arquivos PPD em um arquivo PPD multilíngue |
|
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 |
|
contém as funções da API do Cups |
O processo de segundo plano cups-browsed é usado para navegar na rede de intercomunicação em busca de filas remotas do CUPS e impressoras IPP de rede de intercomunicação e criar automaticamente filas locais apontando para elas.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/OpenPrinting/cups-browsed/releases/download/2.1.1/cups-browsed-2.1.1.tar.xz
Soma de verificação MD5 da transferência: 293948973ebfc7ef4d5d8242d5733181
Tamanho da transferência: 412 KB
Espaço em disco estimado exigido: 5,3 MB
Tempo de construção estimado: menos que 0,1 UPC (Usando paralelismo=4)
Avahi-0.8, libcupsfilters-2.1.1 e libppd-2.1.1
Instale cups-browsed executando os seguintes comandos:
./configure --prefix=/usr \ --with-cups-rundir=/run/cups \ --without-rcdir \ --disable-static \ --docdir=/usr/share/doc/cups-browsed-2.1.1 && make
Esse pacote não vem com uma suíte de teste funcional.
Agora, como o(a) usuário(a) root
:
make install
Instale a unidade do systemd executando o seguinte comando
como o(a) usuário(a) root
:
install -v -m644 daemon/cups-browsed.service /lib/systemd/system/cups-browsed.service
--disable-static
:
Essa chave impede a instalação das versões estáticas das
bibliotecas.
--with-cups-rundir=/run/cups
:
Define o diretório que contém dados transitórios de
impressão. O padrão /var/run/cups
está obsoleto.
--without-rcdir
: Essa
chave desabilita instalação do conjunto incluído de comandos
sequenciais de inicialização que não é compatível com o BLFS.
O pacote CUPS Filters só é necessário para adaptar as funções de filtro libcupsfilters-2.1.1 e libppd-2.1.1 para cups-2.x. Ele não deveria ser necessário para cups-3.x.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/OpenPrinting/cups-filters/releases/download/2.0.1/cups-filters-2.0.1.tar.xz
Soma de verificação MD5 da transferência: b40d0f135af414666e1c3917983a1bb3
Tamanho da transferência: 440 KB
Espaço em disco estimado exigido: 9,0 MB
Tempo de construção estimado: menos que 0,1 UPC (Usando paralelismo=4)
libcupsfilters-2.1.1 e libppd-2.1.1
cups-browsed-2.1.1 (se você precisar de recursos de descoberta de rede de intercomunicação)
Instale o CUPS Filters executando os seguintes comandos:
./configure --prefix=/usr \ --disable-static \ --docdir=/usr/share/doc/cups-filters-2.0.1 && make
Esse pacote não vem com uma suíte de teste funcional.
Agora, como o(a) usuário(a) root
:
make install
--disable-static
:
Essa chave impede a instalação das versões estáticas das
bibliotecas.
é um utilitário gerador de PPD para impressão sem controlador |
|
é um envolucrador para o driverless para dispositivos do tipo FAX |
|
é um filtro de impressão/involucrador RIP universal que pode ser usado como filtro do CUPS ou autônomo para impressão direta e sem aplicativo de gerenciamento de fila de documentos |
Ghostscript é um processador versátil para dados PostScript com a capacidade de renderizar PostScript para diferentes alvos. É uma parte obrigatória da pilha de impressão do CUPS.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs10040/ghostscript-10.04.0.tar.xz
Soma de verificação MD5 da transferência: a86a78cac91b6e1fc674c7961e760c3f
Tamanho da transferência: 65 MB
Espaço em disco estimado exigido: 352 MB (com fontes e libgs.so)
Tempo de construção estimado: 1,5 UPC (Usando paralelismo=4; com libgs.so)
Se desejar, você pode baixar fontes adicionais.
Fontes Padrão
Transferência (HTTP): https://downloads.sourceforge.net/gs-fonts/ghostscript-fonts-std-8.11.tar.gz
Soma de verificação MD5 da transferência: 6865682b095f8c4500c54b285ff05ef6
Tamanho da transferência: 3,7 MB
Outras Fontes
Transferência (HTTP): https://downloads.sourceforge.net/gs-fonts/gnu-gs-fonts-other-6.0.tar.gz
Soma de verificação MD5 da transferência: 33457d3f37de7ef03d2eea05a9e6aa4f
Tamanho da transferência: 796 KB
Cups-2.4.11 (exigido para construir a estrutura de retaguarda do dispositivo “cups”, o qual é necessário para cups-filters), Fontconfig-2.16.0 (exigido se você estiver instalando quaisquer das fontes sugeridas), FreeType-2.13.3, Little CMS-2.17, libjpeg-turbo-3.0.1, libpng-1.6.46, libtiff-4.7.0 e OpenJPEG-2.5.3
Cairo-1.18.2, GTK-3.24.48, libidn-1.42, libpaper-2.2.6, libwebp-1.5.0 e um ambiente gráfico
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
A biblioteca compartilhada depende do GTK-3.24.48. Ela é usada somente por aplicativos externos, como asymptote-3.01, dvisvgm-3.4.3 e ImageMagick-7.1.1-43.
Para compilar a biblioteca compartilhada libgs.so
, execute o seguinte comando
adicional como um(a) usuário(a) sem privilégios:
make so
Esse pacote não vem com uma suíte de teste. Um conjunto de arquivos de exemplo pode ser usado para testagem, mas isso é possível somente depois da instalação do pacote.
Agora, como o(a) usuário(a) root
:
make install
Se você construiu a biblioteca compartilhada, instale-a com:
make soinstall && install -v -m644 base/*.h /usr/include/ghostscript && ln -sfvn ghostscript /usr/include/ps
Agora torne a documentação acessível a partir de um local padrão:
mv -v /usr/share/doc/ghostscript/10.04.0 /usr/share/doc/ghostscript-10.04.0 && rmdir /usr/share/doc/ghostscript && cp -r examples/ -T /usr/share/ghostscript/10.04.0/examples
Se você tiver baixado as fontes, desempacote-as em
/usr/share/ghostscript
e
certifique-se de que a titularidade da propriedade dos
arquivos seja root
:
root
.
tar -xvf ../ghostscript-fonts-std-8.11.tar.gz -C /usr/share/ghostscript --no-same-owner && tar -xvf ../gnu-gs-fonts-other-6.0.tar.gz -C /usr/share/ghostscript --no-same-owner && fc-cache -v /usr/share/ghostscript/fonts/
Você pode agora testar a renderização de vários arquivos
PostScript e PDF a partir de /usr/share/ghostscript/10.04.0/examples
.
Para fazer isso, execute o seguinte comando (em uma sessão do
X11):
gs -q -dBATCH /usr/share/ghostscript/10.04.0/examples/tiger.eps
rm -rf zlib : zlib foi instalado como parte do LFS.
--disable-compile-inits
: Essa
opção torna gs
e libgs.so
ligeiramente
menores.
--with-system-libtiff
: Remova
essa opção se você não tiver instalado o libtiff-4.7.0.
install -v -m644 base/*.h... : Alguns pacotes (ImageMagick é um) precisam dos cabeçalhos de interface do Ghostscript no lugar para se vincularem com a biblioteca compartilhada. Esses comandos instalam os cabeçalhos.
ln -sfvn ghostscript /usr/include/ps: Alguns pacotes esperam encontrar os cabeçalhos da interface em um local alternativo.
mv -v /usr/share/doc/ghostscript/10.04.0 /usr/share/doc/ghostscript-10.04.0: Isso move a documentação para onde ela é esperada ser encontrada.
--disable-cups
: Essa opção
economizará uma pequena quantidade de espaço ao não vincular
gs e
libgs.so
às bibliotecas do
Cups-2.4.11 se você as tiver instalado.
é um interpretador para PostScript(tm) e Portable Document Format (PDF) da Adobe Systems |
|
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.
O pacote Gutenprint (anteriormente Gimp-Print) contém controladores de alta qualidade para muitas marcas e modelos de impressoras para uso com o Cups-2.4.11. Veja-se uma lista de impressoras suportadas em https://gutenprint.sourceforge.net/p_Supported_Printers.php.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://downloads.sourceforge.net/gimp-print/gutenprint-5.3.4.tar.xz
Soma de verificação MD5 da transferência: dc208cfb873f13a93439185c15aa6f81
Tamanho da transferência: 5,1 MB
Espaço em disco estimado exigido: 59 MB (sem testes)
Tempo de construção estimado: 0,4 UPC (sem testes)
Duas famílias de impressoras fotográficas DyeSub exigem, cada uma, outra biblioteca em tempo de execução. A menos que você tenha um desses dispositivos, você não desejará essas bibliotecas.
Para o Sinfonia S6145 e o Ciaat Brava 21, libS6145ImageReProcess, veja-se Fotos Peachy (Sinfonia) para instruções acerca de como construir e testar isso.
Para a família Mitsubishi D70 e a semelhante Kodak 305, libMitsuD70ImageReProcess, veja-se Fotos Peachy (Mitsubishi CP-D70) para instruções acerca de como construir e testar isso.
ImageMagick-7.1.1-43, texlive-20240312 (ou install-tl-unx), Doxygen-1.13.2 e DocBook-utils-0.6.14
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]
Instale o Gutenprint executando os seguintes comandos:
sed -i 's|$(PACKAGE)/doc|doc/$(PACKAGE)-$(VERSION)|' \ {,doc/,doc/developer/}Makefile.in && ./configure --prefix=/usr \ --disable-static \ --without-gimp2 \ --without-gimp2-as-gutenprint && make
Para testar os resultados, emita: make check. Os testes tomam um tempo bastante longo e usam um monte de espaço em disco. Quando testado pela última vez (versão 5.2.15 em junho de 2019), isso precisava de 75 UPC e 13,5 GB para completar os testes (um teste, rastertogutenprint falhou porque os PPDs do CUPS eram para uma versão anterior. Talvez o genppds devesse ser executado antes dos testes). Observe que os testes usaram somente uma CPU.
Agora, como o(a) usuário(a) root
:
make install && install -v -m755 -d /usr/share/doc/gutenprint-5.3.4/api/gutenprint{,ui2} && install -v -m644 doc/gutenprint/html/* \ /usr/share/doc/gutenprint-5.3.4/api/gutenprint && install -v -m644 doc/gutenprintui2/html/* \ /usr/share/doc/gutenprint-5.3.4/api/gutenprintui2
sed -i '...'
...Makefile.in: Esse comando é usado de forma
que a documentação do pacote seja instalada na estrutura
convencional de diretório /usr/share/doc
em vez de /usr/share/gutenprint/doc
.
--disable-static
:
Essa chave impede a instalação das versões estáticas das
bibliotecas.
--without-gimp2
: Essa
chave desabilita suporte para GIMP porque ainda não foi
atualizado para suportar GIMP3.
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.
calibra a saída de cores de impressoras usando os controladores do Gutenprint, CUPS ou do ESP Print Pro |
|
gera arquivos PPD do Gutenprint para uso com o CUPS |
|
regenera os arquivos PPD do Gutenprint em uso pelo CUPS |
|
é um utilitário de linha de comando para realizar várias tarefas de manutenção em impressoras jato de tinta Epson Stylus |
|
é um aplicativo de teste para aprender como usar a libgutenprint |
A biblioteca libcupsfilters contém funções de filtro para as tarefas de conversão de formato de dados necessárias em aplicativos de impressora. Ela também contém várias funções de API para desenvolver controladores de impressora/aplicativos de impressora.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/OpenPrinting/libcupsfilters/releases/download/2.1.1/libcupsfilters-2.1.1.tar.xz
Soma de verificação MD5 da transferência: 1e3144c242e7ddcee112d41c79266885
Tamanho da transferência: 1,4 MB
Espaço em disco estimado exigido: 39 MB (com testes)
Tempo de construção estimado: 0,1 UPC (Usando paralelismo=4; com testes)
Cups-2.4.11, GLib-2.82.5, ghostscript-10.04.0 ou mupdf-1.25.4, Little CMS-2.17, Poppler-25.02.0 e Qpdf-11.10.1
Fontes Dejavu (a construção falha se elas não estiverem instaladas, embora sejam exigidas somente para os testes), libexif-0.6.25, libjpeg-turbo-3.0.1, libpng-1.6.46 e libtiff-4.7.0
Instale libcupsfilters executando os seguintes comandos:
./configure --prefix=/usr \ --disable-static \ --docdir=/usr/share/doc/libcupsfilters-2.1.1 && make
Para testar os resultados, emita make check. Fontes DejaVu são necessárias para os testes.
Agora, como o(a) usuário(a) root
:
make install
--disable-static
:
Essa chave impede a instalação das versões estáticas das
bibliotecas.
--with-test-font-path=
: Se você desejar
executar os testes, mas não tiver a fonte VALOR
/usr/share/fonts/dejavu/DejaVuSans.ttf
padrão instalada, use essa chave para especificar onde
DejaVuSans.ttf
(ou talvez
alguma outra fonte TTF de texto - embora isso esteja não
testado) está localizada.
A biblioteca libppd contém funções para lidar com impressoras legadas usando arquivos de descrição PPD.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/OpenPrinting/libppd/releases/download/2.1.1/libppd-2.1.1.tar.xz
Soma de verificação MD5 da transferência: 65accc86f9956a1160937b14e0f516a6
Tamanho da transferência: 576 KB
Espaço em disco estimado exigido: 13 MB (com testes)
Tempo de construção estimado: menos que 0,1 UPC (Usando paralelismo=4; com testes)
Instale libppd executando os seguintes comandos:
./configure --prefix=/usr \ --disable-static \ --with-cups-rundir=/run/cups \ --enable-ppdc-utils \ --docdir=/usr/share/doc/libppd-2.1.1 && make
Para testar os resultados, emita make check.
Agora, como o(a) usuário(a) root
:
make install
--disable-static
:
Essa chave impede a instalação das versões estáticas das
bibliotecas.
--with-cups-rundir=/run/cups
:
Define o diretório que contém dados transitórios de
impressão. O padrão /var/run/cups
está obsoleto.
--enable-ppdc-utils
:
Permite construir utilitários para manipular arquivos
.ppd.
compila arquivos fonte PPDC em um ou mais arquivos PPD |
|
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 |
|
importa um ou mais arquivos PPD para um arquivo fonte de compilador de PPD |
|
mescla dois ou mais arquivos PPD em um arquivo PPD multilíngue |
|
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 |
|
contém funções de API para manipular arquivos .ppd |
Este capítulo contém aplicativos de digitalização que te permitem converter documentos impressos em documentos formatados legíveis por outros aplicativos.
SANE é a abreviação de Scanner Access Now Easy. O acesso à digitalizadora, entretanto, está longe de ser fácil, já que cada fornecedor(a) tem os próprios protocolos deles(as). O único protocolo conhecido que deveria trazer alguma unidade a esse caos é a interface TWAIN, mas isso é muito impreciso para permitir uma estrutura de digitalização estável. Portanto, SANE vem com o próprio protocolo dele e os controladores do(a) fornecedor(a) não podem ser usados.
SANE é dividido em estruturas de retaguarda e estruturas de interação direta com o(a) usuário(a). As estruturas de retaguarda são controladores para as digitalizadoras e câmeras suportadas. As estruturas de interação direta com o(a) usuário(a) são interfaces de usuário(a) para acessar as estruturas de retaguarda.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://anduin.linuxfromscratch.org/BLFS/sane/sane-backends-1.2.1.tar.gz
Soma de verificação MD5 da transferência: 302159419ed1ee216c6e1edbe97c2a8c
Tamanho da transferência: 6,9 MB
Espaço em disco estimado exigido: 311 MB (com testes)
Tempo de construção estimado: 0,7 UPC (Usando paralelismo=4; com testes)
O local do fluxo de desenvolvimento para esse arquivo está em https://gitlab.com/sane-project, mas o URL do arquivo usa uma soma de verificação MD5 incorporada. Por conveniência, o pacote foi copiado para o local acima.
Avahi-0.8, Cups-2.4.11, libjpeg-turbo-3.0.1, libtiff-4.7.0, libusb-1.0.27, v4l-utils-1.28.1, Net-SNMP, libieee1284, libgphoto2 e texlive-20240312 (ou install-tl-unx)
Para acessar tua digitalizadora, você provavelmente precisará dos controladores de núcleo relacionados e (ou) pacotes adicionais de suporte. Uma digitalizadora SCSI precisará de controladores SCSI; uma digitalizadora de porta paralela precisa de suporte a porta paralela (você deveria usar modos EPP aprimorados) e talvez libieee1284, e uma digitalizadora USB precisará do pacote libusb-1.0.27. Para dispositivos HP, você possivelmente precise do hplip. Certifique-se de ter os controladores necessários configurados corretamente para acessar os dispositivos.
O processo de segundo plano do SANE deveria executar com o próprio
grupo dele. Crie esse grupo emitindo o seguinte comando
como o(a) usuário(a) root
:
groupadd -g 70 scanner
configure
assume que o(a) usuário(a) construindo estruturas de
retaguarda do SANE é
um(a) membro(a) do grupo scanner
para testar a existência
desse grupo. Como resultado, o(a) usuário(a) construindo
o pacote precisa ser adicionado(a) ao grupo scanner
. Adicione o(a) usuário(a) ao
grupo scanner
emitindo o
seguinte comando como o(a) usuário(a) root
:
usermod -G scanner -a nome_usuário(a)
Depois de adicionar o grupo scanner
como acima, você precisará
sair e entrar novamente para ativá-lo.
Para uma digitalizadora USB, se você estiver vinculando ao libusb-1.0.27, inclua a chave de configuração --enable-libusb_1_0. Instale as estruturas de retaguarda do SANE executando os seguintes comandos:
sg scanner -c " \ PYTHON=python3 ./configure --prefix=/usr \ --sysconfdir=/etc \ --localstatedir=/var \ --with-lockdir=/run/lock \ --docdir=/usr/share/doc/sane-backends-1.2.1" && make
Para testar os resultados, emita: make check.
Agora, como o(a) usuário(a) root
:
make install && install -m 644 -v tools/udev/libsane.rules \ /etc/udev/rules.d/65-scanner.rules && mkdir -p /run/lock/sane && chgrp -v scanner /run/lock/sane
Com a digitalizadora ligada, execute scanimage -L e o nome e local do dispositivo deveriam aparecer. Claro, você precisa dos controladores de dispositivo configurados para a finalidade de executar esse teste.
sg scanner -c
"...": executa o comando entre aspas duplas
com o grupo principal scanner
. Isso possivelmente seja
necessário se o(a) usuário(a) tiver sido adicionado(a)
recentemente ao grupo scanner e não tiver feito logout e
login.
PYTHON=python3
: Essa
chave força o sistema de construção a usar Python 3 em vez de
Python 2.
--sysconfdir=/etc
:
Essa chave instala os arquivos de configuração em
/etc/sane.d
em vez de
/usr/etc/sane.d
.
Os arquivos de configuração de estrutura de retaguarda
estão localizados em /etc/sane.d
. Informações para
configurar as várias estruturas de retaguarda podem ser
encontradas usando-se a página de manual(5) para a
estrutura de retaguarda desejada. Execute man sane-<estrutura de
retaguarda>
, substituindo
a estrutura de retaguarda desejada.
Adicione quaisquer usuários(as) que usarão uma
escaneadora ao grupo scanner
.
Se você quiser acessar uma digitalizadora na rede de
intercomunicação, inclua duas linhas em net.conf
, como usuário(a) root
(certifique-se de substituir
<ip_servidor> pelo valor atual):
cat >> /etc/sane.d/net.conf << "EOF"
connect_timeout = 60
<ip_servidor>
EOF
No lado do servidor, inclua o IP do cliente na lista de
acesso de /etc/sane.d/saned.conf
, reinicie o
processo de segundo plano saned e certifique-se
de que o firewall, se houver, está aberto ao cliente.
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.
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/.
cria uma tabela gama no formato esperado pelo scanimage |
|
é uma ferramenta usada para determinar os sinalizadores do compilador e do vinculador que deveriam ser usados para compilar e vincular o SANE |
|
é o processo de segundo plano do SANE que permite que clientes remotos acessem dispositivos de aquisição de imagens disponíveis no dispositivo local |
|
é 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 |
|
é 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 |
|
é uma ferramenta usada para ler informações oriundas de digitalizadoras de porta paralela UMAX. Ela também pode ser usada para realizar diagnósticos nessas digitalizadoras |
|
é 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 |
|
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 |
O pacote Simple-scan contém um aplicativo moderno de digitalização de documentos. Ele captura imagens usando SANE e suporta os mais recentes gerenciamento de cores e padrões gráficos.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://download.gnome.org/sources/simple-scan/46/simple-scan-46.0.tar.xz
Soma de verificação MD5 da transferência: 5ae9ca4d4c59520736c11a2eb427502d
Tamanho da transferência: 1,1 MB
Espaço em disco estimado exigido: 27 MB
Tempo de construção estimado: 0,1 UPC
colord-1.4.7, itstool-2.0.7, libgusb-0.4.9, libadwaita-1.6.4, libwebp-1.5.0 e SANE-1.2.1
Instale Simple-scan executando os seguintes comandos:
mkdir build && cd build && meson setup --prefix=/usr --buildtype=release .. && ninja
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
ninja install && gtk-update-icon-cache -qtf /usr/share/icons/hicolor
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza
binários não otimizados.
gtk-update-icon-cache [...]: Esse comando atualiza o cache de ícones do GTK+ abrangente a todo o sistema, pois o sistema de construção do Simple-scan não o atualiza para dar conta dos ícones que ele instala.
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.
O pacote SGML Common contém o install-catalog. Isso é útil para criar e manter catálogos centralizados SGML.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://sourceware.org/ftp/docbook-tools/new-trials/SOURCES/sgml-common-0.6.3.tgz
Soma de verificação MD5 da transferência: 103c9828f24820df86e55e7862e28974
Tamanho da transferência: 75 KB
Espaço em disco estimado exigido: 1,5 MB
Tempo de construção estimado: menos que 0,1 UPC
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
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
cria um catálogo centralizado que mantém
referências para catálogos espalhados pela árvore
de diretórios |
|
imprime na saída padrão o nome do arquivo de configuração principal |
|
contém as entidades básicas de caracteres definidas com entradas SDATA |
|
contém as entidades básicas de caracteres definidas por uma representação hexadecimal do número de caracteres Unicode |
O pacote DocBook SGML DTD contém definições de tipo de documento para verificação de arquivos de dados SGML em relação ao conjunto de regras do DocBook. Elas são úteis para estruturar livros e documentação de software em um padrão, permitindo que você utilize transformações já escritas para esse padrão.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.docbook.org/sgml/3.1/docbk31.zip
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
O fonte do pacote é distribuído no formato zip
e exige o unzip (na verdade, um
link simbólico para bsdunzip proveniente da
libarchive). Você deveria
criar um diretório e mudar para esse diretório antes de
descompactar o arquivo para facilitar a remoção dos
arquivos do fonte depois que o pacote tiver sido instalado.
Instale o DocBook-3.1 SGML DTD executando os seguintes comandos:
sed -i -e '/ISO 8879/d' \ -e 's|DTDDECL "-//OASIS//DTD DocBook V3.1//EN"|SGMLDECL|g' \ docbook.cat
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
install -v -d -m755 /usr/share/sgml/docbook/sgml-dtd-3.1 && chown -R root:root . && install -v docbook.cat /usr/share/sgml/docbook/sgml-dtd-3.1/catalog && cp -v -af *.dtd *.mod *.dcl /usr/share/sgml/docbook/sgml-dtd-3.1 && install-catalog --add /etc/sgml/sgml-docbook-dtd-3.1.cat \ /usr/share/sgml/docbook/sgml-dtd-3.1/catalog && install-catalog --add /etc/sgml/sgml-docbook-dtd-3.1.cat \ /etc/sgml/sgml-docbook.cat
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.
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
O pacote DocBook-4.5 SGML DTD contém definições de tipo de documento para verificação de arquivos de dados SGML em relação ao conjunto de regras do DocBook. Elas são úteis para estruturar livros e documentação de software em um padrão, permitindo que você utilize transformações já escritas para esse padrão.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.docbook.org/sgml/4.5/docbook-4.5.zip
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
O fonte do pacote é distribuído no formato zip
e exige o unzip (na verdade, um
link simbólico para bsdunzip proveniente da
libarchive). Você deveria
criar um diretório e mudar para esse diretório antes de
descompactar o arquivo para facilitar a remoção dos
arquivos do fonte depois que o pacote tiver sido instalado.
Instale o DocBook-4.5 SGML DTD executando os seguintes comandos:
sed -i -e '/ISO 8879/d' \ -e '/gml/d' docbook.cat
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
install -v -d /usr/share/sgml/docbook/sgml-dtd-4.5 && chown -R root:root . && install -v docbook.cat /usr/share/sgml/docbook/sgml-dtd-4.5/catalog && cp -v -af *.dtd *.mod *.dcl /usr/share/sgml/docbook/sgml-dtd-4.5 && install-catalog --add /etc/sgml/sgml-docbook-dtd-4.5.cat \ /usr/share/sgml/docbook/sgml-dtd-4.5/catalog && install-catalog --add /etc/sgml/sgml-docbook-dtd-4.5.cat \ /etc/sgml/sgml-docbook.cat
sed -i -e '/ISO 8879/d' -e '/gml/d' docbook.cat: Esse comando remove as definições ENT do arquivo de catálogo.
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
O pacote OpenSP contém uma biblioteca C++ para usar arquivos SGML/XML. Isso é útil para validar, analisar e manipular documentos SGML e XML.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://downloads.sourceforge.net/openjade/OpenSP-1.5.2.tar.gz
Soma de verificação MD5 da transferência: 670b223c5d12cee40c9137be86b6c39b
Tamanho da transferência: 1,5 MB
Espaço em disco estimado exigido: 32 MB
Tempo de construção estimado: 1,0 UPC
Instale o OpenSP executando os seguintes comandos:
patch -Np1 -i ../OpenSP-1.5.2-gcc14-1.patch && sed -i 's/32,/253,/' lib/Syntax.cxx && sed -i 's/LITLEN 240 /LITLEN 8092/' \ unicode/{gensyntax.pl,unicode.syn} && ./configure --prefix=/usr \ --disable-static \ --disable-doc-build \ --enable-default-catalog=/etc/sgml/catalog \ --enable-http \ --enable-default-search-path=/usr/share/sgml && make pkgdatadir=/usr/share/sgml/OpenSP-1.5.2
Para testar os resultados, emita: make check. Até nove dos vinte e três (23) testes possivelmente falhem. Não fique assustado(a).
Agora, como o(a) usuário(a) root
:
make pkgdatadir=/usr/share/sgml/OpenSP-1.5.2 \ docdir=/usr/share/doc/OpenSP-1.5.2 \ install && ln -v -sf onsgmls /usr/bin/nsgmls && ln -v -sf osgmlnorm /usr/bin/sgmlnorm && ln -v -sf ospam /usr/bin/spam && ln -v -sf ospcat /usr/bin/spcat && ln -v -sf ospent /usr/bin/spent && ln -v -sf osx /usr/bin/sx && ln -v -sf osx /usr/bin/sgml2xml && ln -v -sf libosp.so /usr/lib/libsp.so
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.
é usado para processar arquivos SGML |
|
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 |
|
é um editor de fluxo de marcação |
|
imprime identificadores de sistema eficazes encontrados nos catálogos |
|
fornece acesso ao gerenciador de entidades do OpenSP |
|
é um normalizador SGML ou usado para converter arquivos SGML em arquivos XML |
|
é um link simbólico para onsgmls |
|
é um link simbólico para osx |
|
é um link simbólico para osgmlnorm |
|
é um link simbólico para ospam |
|
é um link simbólico para ospcat |
|
é um link simbólico para ospent |
|
é um link simbólico para osx |
|
contém funções exigidas pelos aplicativos do OpenSP para analisar, validar e manipular arquivos SGML e XML |
|
é um link simbólico para |
O pacote OpenJade contém um mecanismo DSSSL. Isso é útil para transformações SGML e XML em RTF, TeX, SGML e XML.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://downloads.sourceforge.net/openjade/openjade-1.3.2.tar.gz
Soma de verificação MD5 da transferência: 7df692e3186109cc00db6825b777201e
Tamanho da transferência: 880 KB
Espaço em disco estimado exigido: 19,2 MB
Tempo de construção estimado: 0,7 UPC
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
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.
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.
O pacote DocBook DSSSL Stylesheets contém folhas de estilo DSSSL. Elas são usadas pelo OpenJade ou outras ferramentas para transformar arquivos SGML e XML do DocBook.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://downloads.sourceforge.net/docbook/docbook-dsssl-1.79.tar.bz2
Soma de verificação MD5 da transferência: bc192d23266b9a664ca0aba4a7794c7c
Tamanho da transferência: 277 KB
Espaço em disco estimado exigido: 14 MB
Tempo de construção estimado: menos que 0,1 UPC
Documentação e dados de teste
Transferência (HTTP): https://downloads.sourceforge.net/docbook/docbook-dsssl-doc-1.79.tar.bz2
Soma de verificação MD5 da transferência: 9a7b809a21ab7d2749bb328334c380f2
Tamanho da transferência: 142 KB
docbook-3.1-dtd, docbook-4.5-dtd, OpenSP-1.5.2 e OpenJade-1.3.2
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
Os comandos acima criam um conjunto de comandos sequenciais de instalação para esse pacote.
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
O pacote DocBook-utils é uma coleção de conjuntos de comandos sequenciais utilitários usados para converter e analisar documentos SGML em geral, e arquivos DocBook em particular. Os conjuntos de comandos sequenciais são usados para converter DocBook ou outros formatos SGML em formatos de arquivo “clássicos”, como HTML, man, info, RTF e muitos mais. Existe também um utilitário para comparar dois arquivos SGML e exibir somente as diferenças na marcação. Isso é útil para comparar documentos preparados para diferentes idiomas.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://sourceware.org/ftp/docbook-tools/new-trials/SOURCES/docbook-utils-0.6.14.tar.gz
Soma de verificação MD5 da transferência: 6b41b18c365c01f225bc417cf632d81c
Tamanho da transferência: 124 KB
Espaço em disco estimado exigido: 1,44 MB
Tempo de construção estimado: menos que 0,1 UPC
OpenJade-1.3.2, docbook-dsssl-1.79 e docbook-3.1-dtd
SGMLSpm-1.1 (para conversão para manual e texinfo) e Lynx-2.9.2 ou Links-2.30 ou W3m (para conversão para texto ASCII)
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
O conjunto de comandos sequenciais jw usa o comando which para localizar os utilitários exigidos. Você precisa instalar o Which-2.23 antes de tentar usar qualquer um dos aplicativos DocBook-utils.
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.
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 |
|
são links simbólicos apontando para os comandos docbook2* respectivamente nomeados, criados para satisfazer o uso desses nomes por alguns aplicativos |
|
é 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 |
|
é 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 |
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.
O pacote DocBook-4.5 XML DTD-4.5 contém definições de tipo de documento para verificação de arquivos de dados XML em relação ao conjunto de regras do DocBook. Elas são úteis para estruturar livros e documentação de software em um padrão, permitindo que você utilize transformações já escritas para esse padrão.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.docbook.org/xml/4.5/docbook-xml-4.5.zip
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
O fonte do pacote é distribuído no formato zip
e exige o unzip (na verdade, um
link simbólico para bsdunzip proveniente da
libarchive). Você deveria
criar um diretório e mudar para esse diretório antes de
descompactar o arquivo para facilitar a remoção dos
arquivos do fonte depois que o pacote tiver sido instalado.
Instale o DocBook XML DTD
executando os seguintes comandos como o(a) usuário(a)
root
:
install -v -d -m755 /usr/share/xml/docbook/xml-dtd-4.5 && install -v -d -m755 /etc/xml && cp -v -af --no-preserve=ownership docbook.cat *.dtd ent/ *.mod \ /usr/share/xml/docbook/xml-dtd-4.5
Crie (ou atualize) e povoe o arquivo de catálogo /etc/xml/docbook
executando os seguintes
comandos como o(a) usuário(a) root
:
if [ ! -e /etc/xml/docbook ]; then xmlcatalog --noout --create /etc/xml/docbook fi && xmlcatalog --noout --add "public" \ "-//OASIS//DTD DocBook XML V4.5//EN" \ "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" \ /etc/xml/docbook && xmlcatalog --noout --add "public" \ "-//OASIS//DTD DocBook XML CALS Table Model V4.5//EN" \ "file:///usr/share/xml/docbook/xml-dtd-4.5/calstblx.dtd" \ /etc/xml/docbook && xmlcatalog --noout --add "public" \ "-//OASIS//DTD XML Exchange Table Model 19990315//EN" \ "file:///usr/share/xml/docbook/xml-dtd-4.5/soextblx.dtd" \ /etc/xml/docbook && xmlcatalog --noout --add "public" \ "-//OASIS//ELEMENTS DocBook XML Information Pool V4.5//EN" \ "file:///usr/share/xml/docbook/xml-dtd-4.5/dbpoolx.mod" \ /etc/xml/docbook && xmlcatalog --noout --add "public" \ "-//OASIS//ELEMENTS DocBook XML Document Hierarchy V4.5//EN" \ "file:///usr/share/xml/docbook/xml-dtd-4.5/dbhierx.mod" \ /etc/xml/docbook && xmlcatalog --noout --add "public" \ "-//OASIS//ELEMENTS DocBook XML HTML Tables V4.5//EN" \ "file:///usr/share/xml/docbook/xml-dtd-4.5/htmltblx.mod" \ /etc/xml/docbook && xmlcatalog --noout --add "public" \ "-//OASIS//ENTITIES DocBook XML Notations V4.5//EN" \ "file:///usr/share/xml/docbook/xml-dtd-4.5/dbnotnx.mod" \ /etc/xml/docbook && xmlcatalog --noout --add "public" \ "-//OASIS//ENTITIES DocBook XML Character Entities V4.5//EN" \ "file:///usr/share/xml/docbook/xml-dtd-4.5/dbcentx.mod" \ /etc/xml/docbook && xmlcatalog --noout --add "public" \ "-//OASIS//ENTITIES DocBook XML Additional General Entities V4.5//EN" \ "file:///usr/share/xml/docbook/xml-dtd-4.5/dbgenent.mod" \ /etc/xml/docbook && xmlcatalog --noout --add "rewriteSystem" \ "http://www.oasis-open.org/docbook/xml/4.5" \ "file:///usr/share/xml/docbook/xml-dtd-4.5" \ /etc/xml/docbook && xmlcatalog --noout --add "rewriteURI" \ "http://www.oasis-open.org/docbook/xml/4.5" \ "file:///usr/share/xml/docbook/xml-dtd-4.5" \ /etc/xml/docbook
Crie (ou atualize) e povoe o arquivo de catálogo /etc/xml/catalog
executando os seguintes
comandos como o(a) usuário(a) root
:
if [ ! -e /etc/xml/catalog ]; then xmlcatalog --noout --create /etc/xml/catalog fi && xmlcatalog --noout --add "delegatePublic" \ "-//OASIS//ENTITIES DocBook XML" \ "file:///etc/xml/docbook" \ /etc/xml/catalog && xmlcatalog --noout --add "delegatePublic" \ "-//OASIS//DTD DocBook XML" \ "file:///etc/xml/docbook" \ /etc/xml/catalog && xmlcatalog --noout --add "delegateSystem" \ "http://www.oasis-open.org/docbook/" \ "file:///etc/xml/docbook" \ /etc/xml/catalog && xmlcatalog --noout --add "delegateURI" \ "http://www.oasis-open.org/docbook/" \ "file:///etc/xml/docbook" \ /etc/xml/catalog
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
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
|
|
contêm componentes da definição do tipo de
documento que são carregados nos arquivos
|
|
contém listas de entidades nomeadas de caracteres permitidas em HTML |
O pacote DocBook XML DTD and Schemas-5.0 contém definições de tipo de documento e esquemas para verificação de arquivos de dados XML em relação ao conjunto de regras do DocBook. Elas são úteis para estruturar livros e documentação de software em um padrão, permitindo que você utilize transformações já escritas para esse padrão. Além de fornecer uma DTD, a versão 5 introduziu o esquema RelaxNG e as regras do Schematron e é incompatível com versões anteriores de XML do DocBook.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://docbook.org/xml/5.0/docbook-5.0.zip
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
Instale o DocBook XML DTD and
Schemas executando os seguintes comandos como o(a)
usuário(a) root
:
install -vdm755 /usr/share/xml/docbook/schema/{dtd,rng,sch,xsd}/5.0 && install -vm644 dtd/* /usr/share/xml/docbook/schema/dtd/5.0 && install -vm644 rng/* /usr/share/xml/docbook/schema/rng/5.0 && install -vm644 sch/* /usr/share/xml/docbook/schema/sch/5.0 && install -vm644 xsd/* /usr/share/xml/docbook/schema/xsd/5.0
Ainda como o(a) usuário(a) root
, crie os catálogos individuais:
xmlcatalog --noout --create /usr/share/xml/docbook/schema/dtd/5.0/catalog.xml && xmlcatalog --noout --add "public" \ "-//OASIS//DTD DocBook XML 5.0//EN" \ "docbook.dtd" /usr/share/xml/docbook/schema/dtd/5.0/catalog.xml && xmlcatalog --noout --add "system" \ "http://www.oasis-open.org/docbook/xml/5.0/dtd/docbook.dtd" \ "docbook.dtd" /usr/share/xml/docbook/schema/dtd/5.0/catalog.xml && xmlcatalog --noout --create /usr/share/xml/docbook/schema/rng/5.0/catalog.xml && xmlcatalog --noout --add "uri" \ "http://docbook.org/xml/5.0/rng/docbook.rng" \ "docbook.rng" /usr/share/xml/docbook/schema/rng/5.0/catalog.xml && xmlcatalog --noout --add "uri" \ "http://www.oasis-open.org/docbook/xml/5.0/rng/docbook.rng" \ "docbook.rng" /usr/share/xml/docbook/schema/rng/5.0/catalog.xml && xmlcatalog --noout --add "uri" \ "http://docbook.org/xml/5.0/rng/docbookxi.rng" \ "docbookxi.rng" /usr/share/xml/docbook/schema/rng/5.0/catalog.xml && xmlcatalog --noout --add "uri" \ "http://www.oasis-open.org/docbook/xml/5.0/rng/docbookxi.rng" \ "docbookxi.rng" /usr/share/xml/docbook/schema/rng/5.0/catalog.xml && xmlcatalog --noout --add "uri" \ "http://docbook.org/xml/5.0/rng/docbook.rnc" \ "docbook.rnc" /usr/share/xml/docbook/schema/rng/5.0/catalog.xml && xmlcatalog --noout --add "uri" \ "http://www.oasis-open.org/docbook/xml/5.0/rng/docbook.rnc" \ "docbook.rnc" /usr/share/xml/docbook/schema/rng/5.0/catalog.xml && xmlcatalog --noout --add "uri" \ "http://docbook.org/xml/5.0/rng/docbookxi.rnc" \ "docbookxi.rnc" /usr/share/xml/docbook/schema/rng/5.0/catalog.xml && xmlcatalog --noout --add "uri" \ "http://www.oasis-open.org/docbook/xml/5.0/rng/docbookxi.rnc" \ "docbookxi.rnc" /usr/share/xml/docbook/schema/rng/5.0/catalog.xml && xmlcatalog --noout --create /usr/share/xml/docbook/schema/sch/5.0/catalog.xml && xmlcatalog --noout --add "uri" \ "http://docbook.org/xml/5.0/sch/docbook.sch" \ "docbook.sch" /usr/share/xml/docbook/schema/sch/5.0/catalog.xml && xmlcatalog --noout --add "uri" \ "http://www.oasis-open.org/docbook/xml/5.0/sch/docbook.sch" \ "docbook.sch" /usr/share/xml/docbook/schema/sch/5.0/catalog.xml && xmlcatalog --noout --create /usr/share/xml/docbook/schema/xsd/5.0/catalog.xml && xmlcatalog --noout --add "uri" \ "http://docbook.org/xml/5.0/xsd/docbook.xsd" \ "docbook.xsd" /usr/share/xml/docbook/schema/xsd/5.0/catalog.xml && xmlcatalog --noout --add "uri" \ "http://www.oasis-open.org/docbook/xml/5.0/xsd/docbook.xsd" \ "docbook.xsd" /usr/share/xml/docbook/schema/xsd/5.0/catalog.xml && xmlcatalog --noout --add "uri" \ "http://docbook.org/xml/5.0/xsd/docbookxi.xsd" \ "docbookxi.xsd" /usr/share/xml/docbook/schema/xsd/5.0/catalog.xml && xmlcatalog --noout --add "uri" \ "http://www.oasis-open.org/docbook/xml/5.0/xsd/docbookxi.xsd" \ "docbookxi.xsd" /usr/share/xml/docbook/schema/xsd/5.0/catalog.xml && xmlcatalog --noout --add "uri" \ "http://docbook.org/xml/5.0/xsd/xlink.xsd" \ "xlink.xsd" /usr/share/xml/docbook/schema/xsd/5.0/catalog.xml && xmlcatalog --noout --add "uri" \ "http://www.oasis-open.org/docbook/xml/5.0/xsd/xlink.xsd" \ "xlink.xsd" /usr/share/xml/docbook/schema/xsd/5.0/catalog.xml && xmlcatalog --noout --add "uri" \ "http://docbook.org/xml/5.0/xsd/xml.xsd" \ "xml.xsd" /usr/share/xml/docbook/schema/xsd/5.0/catalog.xml && xmlcatalog --noout --add "uri" \ "http://www.oasis-open.org/docbook/xml/5.0/xsd/xml.xsd" \ "xml.xsd" /usr/share/xml/docbook/schema/xsd/5.0/catalog.xml
Crie (ou atualize) e povoe o catálogo XML do sistema
(/etc/xml/catalog
) executando
os seguintes comandos como o(a) usuário(a) root
:
if [ ! -e /etc/xml/catalog ]; then install -v -d -m755 /etc/xml && xmlcatalog --noout --create /etc/xml/catalog fi && xmlcatalog --noout --add "delegatePublic" \ "-//OASIS//DTD DocBook XML 5.0//EN" \ "file:///usr/share/xml/docbook/schema/dtd/5.0/catalog.xml" \ /etc/xml/catalog && xmlcatalog --noout --add "delegateSystem" \ "http://docbook.org/xml/5.0/dtd/" \ "file:///usr/share/xml/docbook/schema/dtd/5.0/catalog.xml" \ /etc/xml/catalog && xmlcatalog --noout --add "delegateURI" \ "http://docbook.org/xml/5.0/dtd/" \ "file:///usr/share/xml/docbook/schema/dtd/5.0/catalog.xml" \ /etc/xml/catalog && xmlcatalog --noout --add "delegateURI" \ "http://docbook.org/xml/5.0/rng/" \ "file:///usr/share/xml/docbook/schema/rng/5.0/catalog.xml" \ /etc/xml/catalog && xmlcatalog --noout --add "delegateURI" \ "http://docbook.org/xml/5.0/sch/" \ "file:///usr/share/xml/docbook/schema/sch/5.0/catalog.xml" \ /etc/xml/catalog && xmlcatalog --noout --add "delegateURI" \ "http://docbook.org/xml/5.0/xsd/" \ "file:///usr/share/xml/docbook/schema/xsd/5.0/catalog.xml" \ /etc/xml/catalog
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 |
|
contém as definições de esquema 5.0 RelaxNG, RelaxNG Compact e Schematron do Docbook |
|
arquivos contém regras Schematron do DocBook-5.0 |
O pacote DocBook XSL Stylesheets contém folhas de estilo XSL. Elas são úteis para realizar transformações em arquivos XML do DocBook.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/docbook/xslt10-stylesheets/releases/download/release/1.79.2/docbook-xsl-nons-1.79.2.tar.bz2
Soma de verificação MD5 da transferência: 2666d1488d6ced1551d15f31d7ed8c38
Tamanho da transferência: 22 MB
Espaço em disco estimado exigido: 58 MB (inclui instalar documentação opcional)
Tempo de construção estimado: menos que 0,1 UPC
Documentação opcional
Transferência (HTTP): https://github.com/docbook/xslt10-stylesheets/releases/download/release/1.79.2/docbook-xsl-doc-1.79.2.tar.bz2
Soma de verificação MD5 da transferência: 62375ca864fc198cb2b17d98209d0b8c
Tamanho da transferência: 522 KB
apache-ant-1.10.15 (para produzir documentos “webhelp”), libxslt-1.1.42 (ou qualquer outro processador XSLT), para processar documentos Docbook, Ruby-3.4.2 (para utilizar as folhas de estilo “epub”), Zip-3.0 (para produzir documentos “epub3”) e Saxon6 e Xerces2 Java (usado com apache-ant-1.10.15 para produzir documentos “webhelp”)
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
Crie (ou posponha) e povoe o arquivo de catálogo XML usando
os seguintes comandos como o(a) usuário(a) root
(ambas as formas http e https são usadas porque o fluxo
de desenvolvimento tem ambas colocadas na documentação
deles(as)):
if [ ! -d /etc/xml ]; then install -v -m755 -d /etc/xml; fi && if [ ! -f /etc/xml/catalog ]; then xmlcatalog --noout --create /etc/xml/catalog fi && xmlcatalog --noout --add "rewriteSystem" \ "http://cdn.docbook.org/release/xsl-nons/1.79.2" \ "/usr/share/xml/docbook/xsl-stylesheets-nons-1.79.2" \ /etc/xml/catalog && xmlcatalog --noout --add "rewriteSystem" \ "https://cdn.docbook.org/release/xsl-nons/1.79.2" \ "/usr/share/xml/docbook/xsl-stylesheets-nons-1.79.2" \ /etc/xml/catalog && xmlcatalog --noout --add "rewriteURI" \ "http://cdn.docbook.org/release/xsl-nons/1.79.2" \ "/usr/share/xml/docbook/xsl-stylesheets-nons-1.79.2" \ /etc/xml/catalog && xmlcatalog --noout --add "rewriteURI" \ "https://cdn.docbook.org/release/xsl-nons/1.79.2" \ "/usr/share/xml/docbook/xsl-stylesheets-nons-1.79.2" \ /etc/xml/catalog && xmlcatalog --noout --add "rewriteSystem" \ "http://cdn.docbook.org/release/xsl-nons/current" \ "/usr/share/xml/docbook/xsl-stylesheets-nons-1.79.2" \ /etc/xml/catalog && xmlcatalog --noout --add "rewriteSystem" \ "https://cdn.docbook.org/release/xsl-nons/current" \ "/usr/share/xml/docbook/xsl-stylesheets-nons-1.79.2" \ /etc/xml/catalog && xmlcatalog --noout --add "rewriteURI" \ "http://cdn.docbook.org/release/xsl-nons/current" \ "/usr/share/xml/docbook/xsl-stylesheets-nons-1.79.2" \ /etc/xml/catalog && xmlcatalog --noout --add "rewriteURI" \ "https://cdn.docbook.org/release/xsl-nons/current" \ "/usr/share/xml/docbook/xsl-stylesheets-nons-1.79.2" \ /etc/xml/catalog && xmlcatalog --noout --add "rewriteSystem" \ "http://docbook.sourceforge.net/release/xsl/current" \ "/usr/share/xml/docbook/xsl-stylesheets-nons-1.79.2" \ /etc/xml/catalog && xmlcatalog --noout --add "rewriteURI" \ "http://docbook.sourceforge.net/release/xsl/current" \ "/usr/share/xml/docbook/xsl-stylesheets-nons-1.79.2" \ /etc/xml/catalog
Ocasionalmente, você pode achar necessário instalar outras
versões das folhas de estilo XSL, pois alguns projetos
referenciam uma versão específica. Um exemplo é o BLFS-6.0,
que exigia a versão 1.67.2. Nesses casos você deveria
instalar qualquer outra versão exigida no próprio diretório
versionado dela e criar entradas de catálogo como segue
(substitua o número desejado de versão por <versão>
):
xmlcatalog --noout --add "rewriteSystem" \ "http://docbook.sourceforge.net/release/xsl/<version>
" \ "/usr/share/xml/docbook/xsl-stylesheets-<version>
" \ /etc/xml/catalog && xmlcatalog --noout --add "rewriteURI" \ "http://docbook.sourceforge.net/release/xsl/<version>
" \ "/usr/share/xml/docbook/xsl-stylesheets-<version>
" \ /etc/xml/catalog
O pacote Folhas de Estilo DocBook XSL (Namespaced) contém folhas de estilo XSL. Elas são úteis para realizar transformações sobre arquivos XML DocBook 5.0.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/docbook/xslt10-stylesheets/releases/download/release/1.79.2/docbook-xsl-1.79.2.tar.bz2
Soma de verificação MD5 da transferência: 4a400f0264a19329c7f95f69e098744a
Tamanho da transferência: 23 MB
Espaço em disco estimado exigido: 49 MB
Tempo de construção estimado: menos que 0,1 UPC
apache-ant-1.10.15 (para produzir documentos “webhelp”), libxslt-1.1.42 (ou qualquer outro processador XSLT), para processar documentos Docbook, Ruby-3.4.2 (para utilizar as folhas de estilo “epub”), Zip-3.0 (para produzir documentos “epub3”), e Saxon6 e Xerces2 Java (usados com apache-ant-1.10.15 para produzir documentos “webhelp”)
Primeiro, corrija um problema que causa estouros de pilha ao fazer recursão:
patch -Np1 -i ../docbook-xsl-1.79.2-stack_fix-1.patch
O BLFS não instala os pacotes exigidos para executar a suíte de teste e fornecer resultados significativos.
Instale o DocBook XSL
Stylesheets executando os seguintes comandos como o(a)
usuário(a) root
:
install -v -m755 -d /usr/share/xml/docbook/xsl-stylesheets-1.79.2 && cp -v -R VERSION assembly common eclipse epub epub3 extensions fo \ highlighting html htmlhelp images javahelp lib manpages params \ profiling roundtrip slides template tests tools webhelp website \ xhtml xhtml-1_1 xhtml5 \ /usr/share/xml/docbook/xsl-stylesheets-1.79.2 && ln -s VERSION /usr/share/xml/docbook/xsl-stylesheets-1.79.2/VERSION.xsl
A documentação para esse pacote é compartilhada com a contraparte dele sem espaço de nomes, o pacote docbook-xsl-nons-1.79.2. Instale esse último se você quiser a documentação.
Crie (ou posponha) e povoe o arquivo de catálogo XML usando
os seguintes comandos como o(a) usuário(a) root
(ambas as formas http e https são usadas porque o fluxo
de desenvolvimento tem ambas colocadas na documentação
deles(as)):
if [ ! -d /etc/xml ]; then install -v -m755 -d /etc/xml; fi && if [ ! -f /etc/xml/catalog ]; then xmlcatalog --noout --create /etc/xml/catalog fi && xmlcatalog --noout --add "rewriteSystem" \ "http://cdn.docbook.org/release/xsl/1.79.2" \ "/usr/share/xml/docbook/xsl-stylesheets-1.79.2" \ /etc/xml/catalog && xmlcatalog --noout --add "rewriteSystem" \ "https://cdn.docbook.org/release/xsl/1.79.2" \ "/usr/share/xml/docbook/xsl-stylesheets-1.79.2" \ /etc/xml/catalog && xmlcatalog --noout --add "rewriteURI" \ "http://cdn.docbook.org/release/xsl/1.79.2" \ "/usr/share/xml/docbook/xsl-stylesheets-1.79.2" \ /etc/xml/catalog && xmlcatalog --noout --add "rewriteURI" \ "https://cdn.docbook.org/release/xsl/1.79.2" \ "/usr/share/xml/docbook/xsl-stylesheets-1.79.2" \ /etc/xml/catalog && xmlcatalog --noout --add "rewriteSystem" \ "http://cdn.docbook.org/release/xsl/current" \ "/usr/share/xml/docbook/xsl-stylesheets-1.79.2" \ /etc/xml/catalog && xmlcatalog --noout --add "rewriteSystem" \ "https://cdn.docbook.org/release/xsl/current" \ "/usr/share/xml/docbook/xsl-stylesheets-1.79.2" \ /etc/xml/catalog && xmlcatalog --noout --add "rewriteURI" \ "http://cdn.docbook.org/release/xsl/current" \ "/usr/share/xml/docbook/xsl-stylesheets-1.79.2" \ /etc/xml/catalog && xmlcatalog --noout --add "rewriteURI" \ "https://cdn.docbook.org/release/xsl/current" \ "/usr/share/xml/docbook/xsl-stylesheets-1.79.2" \ /etc/xml/catalog && xmlcatalog --noout --add "rewriteSystem" \ "http://docbook.sourceforge.net/release/xsl-ns/current" \ "/usr/share/xml/docbook/xsl-stylesheets-1.79.2" \ /etc/xml/catalog && xmlcatalog --noout --add "rewriteURI" \ "http://docbook.sourceforge.net/release/xsl-ns/current" \ "/usr/share/xml/docbook/xsl-stylesheets-1.79.2" \ /etc/xml/catalog
Itstool extrai mensagens a partir de arquivos XML e gera arquivos de modelo PO, depois mescla traduções a partir de arquivos MO para criar arquivos traduzidos XML. Ele determina o que traduzir e como dividi-lo em mensagens usando o Internationalization Tag Set (ITS) da W3C.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://files.itstool.org/itstool/itstool-2.0.7.tar.bz2
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
Primeiro, corrija alguns problemas de compatibilidade com Python-3.12 e posterior:
sed -i 's/re.sub(/re.sub(r/' itstool.in && sed -i 's/re.compile(/re.compile(r/' itstool.in
Instale o itstool executando os seguintes comandos:
PYTHON=/usr/bin/python3 ./configure --prefix=/usr && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
O pacote xmlto é uma estrutura de interação direta com o(a) usuário(a) para uma cadeia de ferramentas de XSL. Ela escolhe uma folha de estilo apropriada para a conversão que você queira e a aplica usando um processador externo de XSLT. Ele também realiza qualquer pós-processamento necessário.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://pagure.io/xmlto/archive/0.0.29/xmlto-0.0.29.tar.gz
Soma de verificação MD5 da transferência: 556f2642cdcd005749bd4c08bc621c37
Tamanho da transferência: 64 KB
Espaço em disco estimado exigido: 1,9 MB (com testes)
Tempo de construção estimado: menos que 0,1 UPC (com testes)
docbook-xml-4.5, docbook-xsl-nons-1.79.2 e libxslt-1.1.42
fop-2.10, dblatex e PassiveTeX
Um de Links-2.30, Lynx-2.9.2, W3m ou ELinks
Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/xmlto
Instale o xmlto executando os seguintes comandos:
autoreconf -fiv && LINKS="/usr/bin/links" ./configure --prefix=/usr && make
Para testar os resultados, emita: make check.
Agora, como o(a) usuário(a) root
:
make install
LINKS="/usr/bin/links"
: Essa
variável de ambiente corrige um defeito que faz com que o
xmlto pense que
o comando links
é o mesmo que elinks. Configurar essa
variável não causa problemas se o Links-2.30 não estiver
instalado, a menos que você tenha o ELinks instalado e deseje usá-lo
para pós-processamento da estrutura de retaguarda de texto.
Se desejar ELinks, você deveria remover essa variável de
ambiente.
Este capítulo inclui aplicativos que criam, manipulam ou visualizam arquivos PostScript e criam ou visualizam arquivos Portable Document Format (PDF).
Enscript converte arquivos de texto ASCII em PostScript, HTML, RTF, ANSI e sobreposições.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Enscript não pode converter texto codificado em UTF-8 para PostScript. O problema é discutido detalhadamente na seção Codificação Necessária Não É uma Opção Válida da página Problemas Relacionados à Localidade. A solução é usar paps-0.8.0, em vez de Enscript, para converter texto codificado em UTF-8 para PostScript.
Transferência (HTTP): https://ftp.gnu.org/gnu/enscript/enscript-1.6.6.tar.gz
Soma de verificação MD5 da transferência: 3acc242b829adacabcaf28533f049afd
Tamanho da transferência: 1,3 MB
Espaço em disco estimado exigido: 14 MB
Tempo de construção estimado: 0,1 UPC
Instale o Enscript executando os seguintes comandos:
./configure --prefix=/usr \ --sysconfdir=/etc/enscript \ --localstatedir=/var \ --with-media=Letter && make && pushd docs && makeinfo --plaintext -o enscript.txt enscript.texi && popd
Se tiver texlive-20240312 instalado, você consegue criar documentação PostScript e PDF emitindo (não suporta make paralelo):
make -j1 -C docs ps pdf
Para testar os resultados, emita: make check.
Agora, como o(a) usuário(a) root
:
make install && install -v -m755 -d /usr/share/doc/enscript-1.6.6 && install -v -m644 README* *.txt docs/*.txt \ /usr/share/doc/enscript-1.6.6
Se você construiu documentação PostScript e PDF, instale-a
usando o seguinte comando como o(a) usuário(a) root
:
install -v -m644 docs/*.{dvi,pdf,ps} \ /usr/share/doc/enscript-1.6.6
--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.
converte arquivos de saída diff para um formato adequado para ser impresso com 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 |
|
cria um mapa de fontes a partir de um arquivo dado |
|
é um conjunto de comandos sequenciais que chama enscript e passa os parâmetros corretos para criar fontes sobrepostas |
|
fatia documentos com linhas longas |
|
é uma ferramenta de processamento de texto semelhante ao awk com algumas extensões de máquina de estado. Ele foi projetado para realçar o código-fonte do aplicativo, e para tarefas semelhantes, onde as informações de estado ajudam no processamento de entrada |
ePDFView-gtk3 é uma bifurcação do antigo programa ePDFView. Embora o repositório github https://github.com/Flow-It/epdfview_old.git o nomeie como 'antigo', é a bifurcação gtk3. É um substituto leve para o Evince, pois não depende das bibliotecas do GNOME e é mais capaz que o MuPDF.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://anduin.linuxfromscratch.org/BLFS/epdfview-gtk3/epdfview-gtk3-20200814.tar.xz
Soma de verificação MD5 da transferência: d222a3dc26c2faf6f862018bb478fb36
Tamanho da transferência: 184 KB
Espaço em disco estimado exigido: 3,5 MB
Tempo de construção estimado: menos que 0,1 UPC (usando paralelismo=4)
Cups-2.4.11 (para acessar filas de impressão), desktop-file-utils-0.28 e hicolor-icon-theme-0.18 (ambos para os ícones que isso instala)
A página inicial do repositório do projeto menciona que existem dependências opcionais, que são habilitadas por chaves. Elas são para construir a documentação e executar a suíte de teste, Doxygen-1.13.2 e Cppunit. Observe que doxygen instala somente uma página esquelética acerca dele mesmo, que não contém documentação de pacote, e o código de teste não compila com versões recentes de C++.
Instale o ePDFView-gtk3 executando os seguintes comandos:
mkdir build && cd build && meson setup --prefix=/usr \ --buildtype=release \ -D enable-printing=true \ .. && ninja
Esse pacote não vem com uma suíte construível de teste.
Agora, como o(a) usuário(a) root
:
ninja install
Esse pacote instala arquivos de ícone na hierarquia
/usr/share/icons/hicolor
e
arquivos de área de trabalho na hierarquia /usr/share/applications
. Você pode
melhorar o desempenho do sistema e o uso de memória
atualizando /usr/share/icons/hicolor/index.theme
e
/usr/share/applications/mimeinfo.cache
.
Para realizar a atualização, você precisa ter o GTK-3.24.48
instalado (para o cache de ícones) e o desktop-file-utils-0.28 (para
o cache da área de trabalho) e emitir os seguintes comandos
como o(a) usuário(a) root
:
gtk-update-icon-cache -qtf /usr/share/icons/hicolor && update-desktop-database -q
-D enable-printing=true: constrói o código para vincular com a(s) fila(s) de impressão do cups. Omita isso se você não tiver instalado o cups.
ePDFView-gtk3 tem várias teclas de atalho de teclado para recursos opcionais. A maioria delas está 'desligada' por padrão, incluindo a barra de ferramentas, e se ela tiver sido fechada com o menu desabilitado, o programa pode iniciar com todas as opções não estando visíveis até que as teclas relevantes de função sejam pressionadas.
[F6] - alternar barra de ferramentas
[F7] - alternar menu
[F8] - alternar cores invertidas
[F9] - alternar mostrar índice
[F11] - alternar para tela cheia
O pacote FOP (Formatting Objects Processor) contém um formatador de impressão controlado por objetos de formatação XSL (XSL-FO). É uma aplicação Java que lê uma árvore de objetos de formatação e renderiza as páginas resultantes em uma saída especificada. Os formatos de saída atualmente suportados incluem PDF, PCL, PostScript, SVG, XML (representação de árvore de área), impressão, AWT, MIF e texto ASCII. O alvo de saída principal é PDF.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://archive.apache.org/dist/xmlgraphics/fop/source/fop-2.10-src.tar.gz
Soma de verificação MD5 da transferência: 0815e845757c527e2617aca1ca2d82d1
Tamanho da transferência: 20 MB
Espaço em disco estimado exigido: 342 MB (incluindo arquivos baixados para o diretório do(a) usuário(a))
Tempo de construção estimado: 0,9 UPC
Transferências Adicionais Exigidas:
Sistema de construção Maven:
https://archive.apache.org/dist/maven/maven-3/3.9.4/binaries/apache-maven-3.9.4-bin.tar.gz
0698a533397eda60cbebcc0fb68ae842
9,0 MB (adicionalmente, cerca de 90 MB são baixados
para o diretório de construção do(a) usuário(a))
Remendo exigido: https://www.linuxfromscratch.org/patches/blfs/12.3/fop-2.10-upstream_fixes-1.patch
Pacotes recomendados
Padrões de hifenização Objects for Formatting Objects
(OFFO):
https://downloads.sourceforge.net/offo/2.2/offo-hyphenation.zip
bf9c09bf05108ef9661b8f08d91c2336
862 KB
um ambiente gráfico (para executar testes), Ferramentas de E/S de Imagens JAI e JEuclid
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
.
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
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
Primeiro, corrija um erro de construção causado pelo Java-23:
patch -Np1 -i ../fop-2.10-upstream_fixes-1.patch
O comando javadoc fornecido com o OpenJDK 10 e posterior tornou-se muito mais rigoroso que as versões anteriores em relação à conformidade dos comentários Javadoc no código-fonte para HTML. A documentação do FOP não atende a esses padrões, de forma que as verificações de conformidade tem de ser desabilitadas. Isso pode ser feito com o seguinte comando:
sed -i '\@</javad@i\ <arg value="-Xdoclint:none"/>\ <arg value="--allow-script-in-comments"/>\ <arg value="--ignore-source-errors"/>' \ fop/build.xml
Compile o fop executando os seguintes comandos:
cd fop && LC_ALL=en_US.UTF-8 \ PATH=$PATH:/tmp/apache-maven-3.9.4/bin \ ant package javadocs && mv build/javadocs .
Esse pacote vem com uma suíte de teste, mas a infraestrutura java instalada neste livro não permite executá-la.
Agora, instale o Fop como
o(a) usuário(a) root
:
install -v -d -m755 -o root -g root /opt/fop-2.10 && cp -vR build conf examples fop* javadocs lib /opt/fop-2.10 && chmod a+x /opt/fop-2.10/fop && ln -v -sfn fop-2.10 /opt/fop
Por fim, remova a cópia temporária do Apache Maven:
rm -rf /tmp/apache-maven-3.9.4
sed -i ... build.xml: Isso adiciona três chaves ao comando javadoc, evitando que alguns erros ocorram durante a construção da documentação.
export LC_ALL=en_US.UTF-8: o compilador falha se usar uma localidade ASCII.
ant target
: Isso lê o arquivo
build.xml
e constrói o alvo:
compile
compila os fontes java;
jar-main
gera arquivos jar;
jar-hyphenation
gera os padrões
de hifenização para o FOP; junit
executa os testes junit; e
javadocs
constrói a documentação.
O alvo all
executa tudo do acima.
ln -v -sf fop-2.10
/opt/fop: Isso é opcional e cria um link
simbólico de conveniência, de forma que $FOP_HOME
não tenha que ser mudada cada vez
que exista uma mudança na versão do pacote.
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
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.
/opt/fop/{build,lib}
; Os componentes
JAI incluem libmlib_jai.so, jai_codec.jar, jai_core.jar e
mlibwrapper_jai.jar
MuPDF é um visualizador leve de PDF e XPS.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://www.mupdf.com/downloads/archive/mupdf-1.25.4-source.tar.gz
Soma de verificação MD5 da transferência: e4e46add0485f4cc879ba954b2444fd9
Tamanho da transferência: 52 MB
Espaço em disco estimado exigido: 253 MB
Tempo de construção estimado: 0,2 UPC (Usando paralelismo=4)
GLU-9.0.3 e Bibliotecas do Xorg
harfBuzz-10.4.0, libjpeg-turbo-3.0.1, OpenJPEG-2.5.3 e cURL-8.12.1
xdg-utils-1.2.1 (tempo de execução), jbig2dec e MuJS
Instale o MuPDF executando os seguintes comandos:
cat > user.make << EOF && USE_SYSTEM_FREETYPE := yes USE_SYSTEM_HARFBUZZ := yes USE_SYSTEM_JBIG2DEC := no USE_SYSTEM_JPEGXR := no # not used without HAVE_JPEGXR USE_SYSTEM_LCMS2 := no # need lcms2-art fork USE_SYSTEM_LIBJPEG := yes USE_SYSTEM_MUJS := no # build needs source anyway USE_SYSTEM_OPENJPEG := yes USE_SYSTEM_ZLIB := yes USE_SYSTEM_GLUT := no # need freeglut2-art fork USE_SYSTEM_CURL := yes USE_SYSTEM_GUMBO := no EOF export XCFLAGS=-fPIC && make build=release shared=yes verbose=yes && unset XCFLAGS
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make prefix=/usr \ shared=yes \ docdir=/usr/share/doc/mupdf-1.25.4 \ install && ln -sfv libmupdf.so.25,4 /usr/lib/libmupdf.so && ln -sfv libmupdf.so.25,4 /usr/lib/libmupdf.so.4 && chmod 755 /usr/lib/libmupdf.so.25,4 && ln -sfv mupdf-x11 /usr/bin/mupdf
ln -sfv mupdf-x11 /usr/bin/mupdf : Esse link simbólico escolhe entre mupdf-gl e mupdf-x11 ao executar mupdf.
é um aplicativo para visualizar documentos PDF, XPS, EPUB e CBZ e vários formatos de imagem, como PNG, JPEG, GIFF e TIFF |
|
mesmo que mupdf, usando um renderizador opengl |
|
mesmo que mupdf, usando um renderizador do Janelas X |
|
é um aplicativo usado para realizar tarefas de rasterização com documentos PDF |
|
é um aplicativo para realizar diversas operações em arquivos PDF, como mesclar e limpar documentos PDF |
|
contém as funções de API do mupdf |
paps é um conversor de texto para PostScript que funciona por intermédio do Pango. A entrada dele é um arquivo de texto codificado em UTF-8 e produz PostScript vetorizado. Ele pode ser usado para imprimir qualquer conjunto de comandos sequenciais complexos suportados pelo Pango.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/dov/paps/releases/download/v0.8.0/paps-0.8.0.tar.gz
Soma de verificação MD5 da transferência: 6bd661b8fd224adc3343a91e6521a4f2
Tamanho da transferência: 220 KB
Espaço em disco estimado exigido: 4,0 MB
Tempo de construção estimado: menos que 0,1 UPC
Primeiro, corrija um problema com glib-2.81.0 ou posterior:
sed -i -r 's/g_utf8_(next|offset)/(char*) &/' src/paps.cc
Instale o paps executando os seguintes comandos:
./configure --prefix=/usr \ --disable-Werror \ --mandir=/usr/share/man && make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) root
:
make install
Este capítulo inclui aplicações texlive que criam resultados equivalentes à composição tipográfica.
Existem duas rotas alternativas ao longo deste capítulo:
Algumas pessoas possivelmente desejem usar o instalador binário, seja por causa da complexidade de instalar todo o texlive a partir do fonte, ou porque querem somente uma parte do pacote; ou talvez porque desejam obter atualizações assim que estiverem disponíveis (o fonte somente é atualizado anualmente, mas os binários e os arquivos tex e sty associados são atualizados por aproximadamente dez (10) meses). Essas pessoas deveriam começar em Configurando o PATH para TeX Live e depois seguir as instruções do install-tl-unx. Depois da instalação, elas conseguem executar o tlmgr para atualizar o sistema delas.
A maioria das pessoas que leem o BLFS desejará construir a partir do fonte. O BLFS costumava começar instalando install-tl-unx e depois usava isso para inicializar a construção. Hoje em dia, construímos quase todo o texlive sem uma instalação binária, adicionando os arquivos texmf empacotados separadamente nessa construção. Para isso, comece em Configurando o PATH para TeX Live e depois vá para texlive-20240312, que instalará a maior parte do texlive, juntamente com todos os arquivos de suporte. Essa instalação quase completa pode então ser usada para construir as partes restantes do texlive: asymptote-3.01, biber-2.20, dvisvgm-3.4.3 e xindy-2.5.1.
Como os arquivos texmf (incluindo documentação, fontes, conjuntos de comandos sequenciais e arquivos de suporte) estão todos em um tarball, não é prático limitar o que é extraído de maneira sensata (você poderia excluir um ou outro dos mecanismos de composição tipográfica, e não os muitos arquivos suportantes) ao construir a partir do fonte dessa maneira.
Em ambos os casos, o BLFS instala em /opt/texlive/2024
.
Além disso, por favor, observe que o texlive é lançado anualmente
e atualizar a partir do ano anterior para o ano atual não mais é
suportado. Se, por alguma razão, você desejar manter versões por
vários anos, para a maioria das coisas, você consegue montar o
sistema antigo ou o novo em /opt/texlive e corrigir o PATH dele
conforme necessário. No entanto, fazer isso não preservará
nenhuma mudança no texmf-local
e,
se você construir a partir do fonte e tentar executar uma versão
mais recente do biber com uma
versão mais antiga do biblatex,
é improvável que funcione.
O fluxo de desenvolvimento prefere instalar em /usr/local
, mas os(as) editores(as) do BLFS
consideram isso inconveniente e pensam que usar /opt/texlive
é mais apropriado.
Originalmente, o BLFS usava uma instalação binária completa
para inicializar a instalação do fonte, de forma que o mesmo
prefixo é usado para ambos.
Antes de começar a construir o TeX Live, configure teu PATH, de
forma que o sistema consiga encontrar os arquivos corretamente.
Se você configurou teus conjuntos de comandos sequenciais de
login conforme recomendado em Os Arquivos de
Iniciação do Shell Bash, atualize os caminhos necessários
criando o conjunto de comandos sequenciais texlive.sh
. Os aplicativos são sempre
instalados em um subdiretório <ARQUITETURA>-linux e no
x86 de 32 bits isso é sempre i386-linux. Para x86_64 e i?86,
podemos gerar isso como $TEXARCH:
Se atualizar a partir de uma versão do ano anterior, você
deveria editar manualmente o texlive.sh
para garantir que a versão para
o ano que você deseja usar seja a única TeX presente (algumas
pessoas precisam manter vários anos disponíveis para garantir
que não existam regressões nos documentos delas).
Agora, crie o conjunto de comandos sequenciais texlive.sh como
o(a) usuário(a) root
:
TEXARCH=$(uname -m | sed -e 's/i.86/i386/' -e 's/$/-linux/')
cat > /etc/profile.d/texlive.sh << EOF
# Begin texlive setup
TEXLIVE_PREFIX=/opt/texlive/2024
export TEXLIVE_PREFIX
pathappend \$TEXLIVE_PREFIX/texmf-dist/doc/info INFOPATH
pathappend \$TEXLIVE_PREFIX/bin/$TEXARCH
TEXMFCNF=\$TEXLIVE_PREFIX/texmf-dist/web2c
export TEXMFCNF
# End texlive setup
EOF
unset TEXARCH
As barras invertidas antes dos cifrões no conjunto de comandos sequenciais acima são para facilitar a operação de copiar/colar. As barras invertidas não deveriam aparecer no conjunto de comandos sequenciais atual.
Os novos caminhos podem ser ativados imediatamente executando-se:
source /etc/profile
Agora você deveria prosseguir para install-tl-unx para uma instalação binária do texlive ou para texlive-20240312 para começar a instalação a partir do fonte.
O pacote TeX Live é um sistema abrangente de produção de documentos TeX. Ele inclui TeX, LaTeX2e, LuaLaTeX, Metafont, MetaPost, BibTeX e muitos outros aplicativos; uma extensiva coleção de macros, fontes e documentação; e suporte para composição tipográfica em muitos conjuntos de comandos sequenciais oriundos de todo o mundo.
Esta página é para pessoas que desejam usar o instalador
binário para fornecer os aplicativos, os conjuntos de
comandos sequenciais e muitos arquivos e documentação de
suporte. O instalador é atualizado frequentemente, de forma
que qualquer soma de verificação MD5 publicada ficará
desatualizada em breve. Versões mais recentes do instalador
são esperadas funcionarem com estas instruções, desde que
sejam instaladas num diretório 2024/
.
Existem duas razões pelas quais você possivelmente deseje
instalar os binários no BLFS: ou você precisa de uma
instalação menor (por exemplo, no mínimo TeX simples sem
LaTeX, ConTeXt, etc), ou você deseja usar o tlmgr para obter
atualizações enquanto essa versão for suportada (tipicamente,
até março do ano seguinte ao lançamento dela). Para o última,
você pode preferir instalar em teu diretório /home
como um(a) usuário(a) sem privilégios
e, em seguida, fazer as mudanças correspondentes no PATH em
teu ~/.bashrc
ou equivalente.
Se você deseja usar o ConTeXt com luametatex (a maior parte do antigo código MKII e MKIV foi removido do TeX Live 2023 pelo(a) desenvolvedor(a) do ConTeXt), usar o binário é provavelmente a opção mais fácil. O fonte não mais é fornecido com o TeX Live e está mal adaptado para construção com sistemas, exceto aqueles executando Mac e Windows. Vejam-se os comentários 1 a 5 de #17823.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz
Soma de verificação MD5 da transferência: Varies frequently
Tamanho da transferência: 5,5 MB
Espaço em disco estimado exigido: 85 MB para TeX simples, normalmente 320 MB para latex e mecanismos posteriores, 8,6 GB se tudo estiver incluído
Tempo de construção estimado: varia, dependendo da velocidade e do tráfego da rede de intercomunicação
GnuPG-2.4.7 (para validar as transferências iniciais e também quaisquer atualizações que você possa fazer posteriormente usando o tlmgr) libwww-perl-6.78 (para usar uma conexão com o servidor, o que reduzirá a carga dele e acelerará as coisas)
Os binários estão vinculados principalmente a bibliotecas estáticas incluídas ou bibliotecas gerais do sistema (LFS), mas alguns dos aplicativos e vários conjuntos de comandos sequenciais falharão se os seguintes pacotes não estiverem presentes:
O ghostscript-10.04.0 é carregado dinamicamente pelo aplicativo externo dvisvgm, que é usado pelo asy quando esse cria arquivos SVG.
Bibliotecas do Xorg e libxcb-1.17.0 são necessários para inimf, mf, pdfclose, pdfopen e xdvi-xaw. Mas, se você estiver usando o asy, ou usando um mecanismo do TeX para criar um arquivo PDF, você precisará do um ambiente gráfico (para arquivos PDF, isso é para suportar um visualizador de PDF da tua escolha, por exemplo epdfview-gtk3-20200814).
A versão binária do asy precisa do Freeglut-3.6.0.
A versão binária do asy está vinculada à libGLX.so.0
originária de libglvnd,
mas instalar isso quebrará atualizações futuras dos pacotes
do BLFS, como Mesa-24.3.4. Contorne isso criando um link
simbólico como o(a) usuário(a) root
:
ln -sv libGL.so.1 /usr/lib/libGLX.so.0
As versões binárias de biber
e xindy estão vinculadas a
libcrypt.so.1
proveniente de
versões antigas da glibc.
Para usar esses dois aplicativos, siga a Observação acerca de
aplicativos somente binários em libxcrypt no LFS para instalar a
biblioteca crypt da ABI versão 1.
Como sempre acontece com software binário contribuído, é possível que as dependências exigidas mudem quando o instalador for atualizado. Em particular, essas dependências só foram verificadas em x86_64.
Python2
é usado pelo módulo CTAN ebong não mantido (destinado a
escrever Bengali em formato Rapid Roman). /usr/bin/python
também está na linha
shebang para os conjuntos de comandos sequenciais
latex-papersize e lilyglyphs, e a documentação no CTAN diz
que ambos os módulos foram atualizados para funcionar com
python3. No pythontex existem conjuntos de comandos
sequenciais para invocar python3 ou python2 de acordo com a
versão do sistema do python. Ruby-3.4.2 é usado por
dois conjuntos de comandos sequenciais, um é para pTex
(escrita vertical japonesa) e o outro é match_parens que pode
geralmente ser útil. O módulo perl
Tk, que precisa ser executado a partir de uma sessão do
X11 para executar os testes e exige Tk-8.6.16, é usado por um dos
conjuntos de comandos sequenciais para ptex e é necessário
para texdoctk (uma interface GUI para localizar arquivos de
documentação e abri-los com o visualizador apropriado).
ps2pdf,
proveniente de ghostscript-10.04.0, é usado por
alguns utilitários e conjuntos de comandos sequenciais.
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
.
Se você tiver escolhido instalar o binário como um(a)
usuário(a) normal, o diretório para o prefixo precisa ser
escrevível por esse(a) usuário(a). O(A) usuário(a)
root
pode mudar a
titularidade de propriedade do /opt/texlive/2024
para esse(a) usuário(a)
antes que o(a) usuário(a) inicie a instalação. Se qualquer
mudança posterior nesse diretório for feita pelo(a)
usuário(a) root
,
isso mudará a titularidade de
propriedade, o que quebra o uso por
usuários(as) normais.
Como acontece com qualquer outro pacote, desempacote o
instalador e mude para o diretório dele, install-tl-<CCYYMMDD>
. Esse nome de
diretório muda quando o instalador é atualizado, de forma que
substitua <CCYYMMDD> pelo nome correto de diretório.
Os binários de distribuição instalados abaixo podem usar lincagem estática para bibliotecas gerais do sistema Linux. Bibliotecas ou interpretadores adicionais, conforme especificado na seção de dependências, não precisam estar presentes durante a instalação, mas os aplicativos que precisam deles não serão executados até que as dependências específicas deles tenham sido instaladas.
Com todos os softwares binários contribuídos, possivelmente exista uma incompatibilidade entre o conjunto de ferramentas do(a) construtor(a) e o teu hardware. Na maior parte do TeX isso provavelmente não importará, mas em casos incomuns você poderá encontrar problemas. Por exemplo, se o teu processador x86_64 não suportar 3dnowext ou 3dnow, o binário 2014-06-28 falharia no ConTeXt ao executar LuaTeX, embora lualatex funcionasse, assim como os binários i686 na mesma máquina. Nesses casos, a solução mais fácil é a de instalar o texlive a partir do fonte. Similarmente, a versão binária x86_64 do asy executa muito lentamente ao criar diagramas 3D.
Agora, como o(a) usuário(a) root
:
TEXLIVE_INSTALL_PREFIX=/opt/texlive ./install-tl
Esse comando é interativo e permite seleção ou modificação de plataforma, pacotes, diretórios e outras opções. O tempo para concluir a transferência dependerá da velocidade da tua conexão de Internet e do número de pacotes selecionados.
Para uma instalação mínima que construirá documentação que seja referenciada no BLFS, as únicas coleções de instalação necessárias são '[a] Programas e arquivos essenciais' e '[D] Pacotes fundamentais do LaTeX'. Isso baixará cerca de 130 arquivos e usará cerca de 320 MB. Usuários(as) conseguem selecionar outras coleções conforme necessário, mas uma instalação completa baixará vários milhares de arquivos e usará mais de 8 GB.
Depois da instalação, a variável de ambiente PATH precisará
ser atualizada. Se o caminho estiver no local especificado
acima, execute como o(a) usuário(a) root
:
cat > /etc/profile.d/texlive.sh << EOF # Begin texlive setup TEXLIVE_PREFIX=/opt/texlive/2024 export TEXLIVE_PREFIX pathappend $TEXLIVE_PREFIX/bin/x86_64-linux # End texlive setup EOF
Imediatamente depois da instalação, atualize o PATH atual para teu shell atual como um(a) usuário(a) normal:
source /etc/profile.d/texlive.sh
./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/.
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 |
De acordo com https://www.tug.org/historic/ o site mestre na França suporta somente FTP e rsync. Agora que o FTP está geralmente obsoleto, essa página tem links para espelhos, alguns dos quais suportam HTTPS, por exemplo, em Utah e Chemnitz, bem como na China. Se você preferir usar um espelho diferente a partir dos links de exemplo aqui, você precisará navegar até systems/historic/texlive/2024 ou systems/texlive/2024 conforme o caso.
A maior parte do TeX Live pode ser construída a partir do fonte sem uma instalação pré existente, mas o xindy (para indexação) precisa de versões funcionais de latex e pdflatex quando o configure for executado e a suíte de teste e a instalação do asy (para gráficos vetoriais) falharão se o TeX ainda não tiver sido instalado. Além disso, biber não é fornecido no fonte do texlive e a versão de dvisvgm na árvore do texlive não pode ser construída se bibliotecas de sistema compartilhadas forem usadas.
Todos esses pacotes são tratados em nas próprias páginas deles e podem ser construídos depois de se instalar esse pacote. Se ainda não tiver feito isso, você deveria iniciar em Configurando o PATH para TeX Live, de forma que os comandos finais para inicializar a nova instalação sejam encontrados.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://ftp.math.utah.edu/pub/tex/historic/systems/texlive/2024/texlive-20240312-source.tar.xz
Soma de verificação MD5 da transferência: 1da2f08e3ba4a3708870dd088c1d6823
Tamanho da transferência: 67 MB
Espaço em disco estimado exigido: 9,1 GB incluindo a transferência adicional e os testes; 8,3 GB instalado
Tempo de construção estimado: 4,6 UPC incluindo a transferência adicional e os testes, construindo com paralelismo=4
Muito do ambiente do texlive (incluindo conjuntos de comandos sequenciais, documentação, fontes e vários outros arquivos) não faz parte do tarball do fonte. Você precisa baixá-lo separadamente. Isso te dará todos os arquivos adicionais que são fornecidos por uma instalação completa da versão binária, pois não existe uma maneira realista de restringir quais partes serão instaladas.
Devido ao tamanho desse pacote, é improvável que ele seja espelhado por espelhos do BLFS. Se você estiver impossibilitado(a) de baixar os arquivos para esse pacote, vá para https://www.ctan.org/mirrors/ para encontrar um espelho mais acessível.
Transferência (HTTP): https://ftp.math.utah.edu/pub/tex/historic/systems/texlive/2024/texlive-20240312-texmf.tar.xz
Soma de verificação MD5 da transferência: e67ce334dd0fddda5f4a87b4fcaaf48f
Tamanho da transferência: 4,0 GB
A base de dados tlpdb é enviada como um tarball separado. O programa texdoc precisa de um arquivo de cache derivado a partir desse (e criará o cache na primeira execução dele).
Transferência (HTTP): https://ftp.tu-chemnitz.de/pub/tug/historic/systems/texlive/2024/texlive-20240312-extra.tar.xz
Soma de verificação MD5 da transferência: 1bd045bd1673ce61bde590c10b86c6cc
Tamanho da transferência: 1,9 MB
Remendo exigido: https://www.linuxfromscratch.org/patches/blfs/12.3/texlive-20240312-source-upstream_fixes-1.patch
O fonte vem com as próprias versões dele de muitas bibliotecas, e as usará, a menos que seja forçado a usar as versões do sistema. As seguintes são recomendadas de forma que a versão do sistema seja usada: Cairo-1.18.2, Fontconfig-2.16.0, FreeType-2.13.3, GC-8.2.8, Graphite2-1.3.14, harfBuzz-10.4.0 (construído com graphite2 habilitado), ICU-76.1, libpaper-2.2.6 (usado por, pelo menos, context e xelatex) e libpng-1.6.46
Além disso, as instruções abaixo assumem que você está usando o esquema descrito em Configurando o PATH para TeX Live.
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
Python2
é usado pelo módulo CTAN ebong não mantido (destinado a
escrever Bengali em formato Rapid Roman). /usr/bin/python
também está na linha
shebang para os conjuntos de comandos sequenciais
latex-papersize e lilyglyphs, e a documentação no CTAN diz
que ambos os módulos foram atualizados para funcionar com
python3. No pythontex existem conjuntos de comandos
sequenciais para invocar python3 ou python2 de acordo com a
versão do sistema do python. Ruby-3.4.2 é usado por
dois conjuntos de comandos sequenciais, um é para pTex
(escrita vertical japonesa) e o outro é match_parens que pode
geralmente ser útil. O módulo perl
Tk, que precisa ser executado a partir de uma sessão do
X11 para executar os testes e exige Tk-8.6.16, é usado por um dos
conjuntos de comandos sequenciais para ptex e é necessário
para texdoctk (uma interface GUI para localizar arquivos de
documentação e abri-los com o visualizador apropriado).
ps2pdf,
proveniente de ghostscript-10.04.0, é usado por
alguns utilitários e conjuntos de comandos sequenciais.
Instale o TeX Live executando os seguintes comandos:
Se você desejar atualizar para o texlive atual em um sistema mais
antigo, onde pacotes extras (asymptote, dvisvgm ou xindy) tenham sido instalados, você
precisará reinstalá-los, bem como corrigir teu PATH
para $TEXLIVE_PREFIX
.
Uma instalação bem-sucedida exige que alguns comandos do
texlive sejam executados como o(a) usuário(a) root, de
forma que nós exportaremos a variável TEXARCH para permitir
que o(a) root
a use.
Corrija uma falha de construção que ocorre em algumas plataformas devido a avisos mais rigorosos do compilador:
sed -e '182 s/internal_font_number/boolean/' \ -e '301 s/internal_font_number/boolean/' \ -i texk/web2c/pdftexdir/pdftex.ch
Agora, como um(a) usuário(a) normal:
export TEXARCH=$(uname -m | sed -e 's/i.86/i386/' -e 's/$/-linux/') && patch -Np1 -i ../texlive-20240312-source-upstream_fixes-1.patch && mkdir texlive-build && cd texlive-build && ../configure -C \ --prefix=$TEXLIVE_PREFIX \ --bindir=$TEXLIVE_PREFIX/bin/$TEXARCH \ --datarootdir=$TEXLIVE_PREFIX \ --includedir=$TEXLIVE_PREFIX/include \ --infodir=$TEXLIVE_PREFIX/texmf-dist/doc/info \ --libdir=$TEXLIVE_PREFIX/lib \ --mandir=$TEXLIVE_PREFIX/texmf-dist/doc/man \ --disable-native-texlive-build \ --disable-static --enable-shared \ --disable-dvisvgm \ --with-system-cairo \ --with-system-fontconfig \ --with-system-freetype2 \ --with-system-gmp \ --with-system-graphite2 \ --with-system-harfbuzz \ --with-system-icu \ --with-system-libgs \ --with-system-libpaper \ --with-system-libpng \ --with-system-mpfr \ --with-system-pixman \ --with-system-zlib \ --with-banner-add=" - BLFS" && make
Para testar os resultados, emita: make -k check. Um teste,
psutils.test
, é conhecido por
falhar se usar a libpaper do sistema porque o TeX Live inclui
versões antigas de psutils e
libpaper que resultam em uma
diferença nas casas decimais finais do teste psresize. O(A)
desenvolvedor(a) do libpaper
não pensa que isso seja significativo.
Agora, como o(a) usuário(a) root
:
make install-strip && make texlinks && mkdir -pv $TEXLIVE_PREFIX/tlpkg/TeXLive/ && install -v -m644 ../texk/tests/TeXLive/* $TEXLIVE_PREFIX/tlpkg/TeXLive/ && tar -xf ../../texlive-20240312-extra.tar.xz -C $TEXLIVE_PREFIX/tlpkg --strip-components=2
Execute make texlinks somente uma vez. Se for executado novamente, poderá mudar todos os links simbólicos do aplicativo, de forma que eles apontem para eles mesmos e sejam inúteis.
Agora instale os arquivos adicionais como o(a) usuário(a)
root
:
tar -xf ../../texlive-20240312-texmf.tar.xz -C $TEXLIVE_PREFIX --strip-components=1
Ainda como o(a) usuário(a) root
, inicialize o novo sistema (o
comando fmtutil-sys
--all produzirá um monte de saída gerada):
mktexlsr && fmtutil-sys --all
Para permitir que o Evince-46.3.1, ou o dvisvgm-3.4.3, se
vincule a libkpathsea.so
, como
o(a) usuário(a) root
,
(re)crie um link simbólico a partir de /usr/lib
:
ln -svf $TEXLIVE_PREFIX/lib/libkpathsea.so{,.6} /usr/lib
O TeX Live não inclui o fonte para ConTeXt, somente os itens que estão no CTAN. Tentar construir o ConTeXt puramente a partir do fonte em um sistema TeX Live do BLFS é um uso de nicho e parece que será mais problemático do que vale a pena.
Se você desejar usar o ConTeXt com luametatex (a maior parte do antigo código do MKII e MKIV foi removido do TeX Live 2023 pelo(a) desenvolvedor(a) do ConTeXt), começando com o binário (somente instalando o ConTeXt, 753 MB em março de 2024 ) provavelmente seria a maneira mais fácil de inicializá-lo. O fonte para luametatex pode ser extraída com git a partir de github luametatex, compilado com meson e ninja, e instalado copiando-se para o diretório correto do programa. Isso deveria evitar ter-se que corrigir todos os links simbólicos, etc., e também evitar incluir as muitas partes não relacionadas do texmf-dist. Vejam-se os comentários 1 a 5 de #17823.
Agora você pode prosseguir para asymptote-3.01, biber-2.20, dvisvgm-3.4.3 e (ou) xindy-2.5.1 se desejar instalá-los.
-C: cria config.cache, o que economiza tempo significativo em uma construção paralela.
--prefix=
, --bindir=
, --datarootdir=
e outras chaves
“dir”:
essas chaves asseguram que os arquivos instalados a partir do
fonte sobrescreverão quaisquer arquivos correspondentes
previamente instalados por install-tl-unx, de forma que os métodos
alternativos de se instalar o texlive sejam consistentes.
--includedir=
--libdir=
: essas
chaves garantem que as bibliotecas e os arquivos de inclusão
estarão dentro dos diretórios do texlive deste ano.
--disable-static
:
Essa chave impede a instalação das versões estáticas das
bibliotecas.
--enable-shared
: Use
versões compartilhadas de libkpathsea
, libptexenc
, libsynctex
, libtexlua52
e libtexluajit
.
--with-system-
...: A
menos que esse parâmetro seja usado, as versões incluídas
dessas bibliotecas serão compiladas estaticamente nos
aplicativos que necessitarem delas. Se você decidiu não
instalar uma biblioteca recomendada, omita a chave
correspondente.
--disable-dvisvgm
:
Conforme observado acima, a versão enviada do dvisvgm, que
tem arquivos modificados de configuração, não pode ser
construída com bibliotecas de sistema compartilhadas.
make texlinks : isso executa o conjunto de comandos sequenciais texlinks.sh para criar links simbólicos de formats para engines. Na prática, vários dos alvos, como o xetex, agora são binários separados e para esses ele informará "file already exists".
tar -xf texlive-20240312-texmf.tar.xz -C $TEXLIVE_PREFIX --strip-components=1: o tarball contém os arquivos para o diretório texmf-dist e, devido ao tamanho dele, nós não queremos desperdiçar tempo e espaço desempacotando-o e depois copiando os arquivos.
install -v -m644
../texk/tests/TeXLive/*
$TEXLIVE_PREFIX/tlpkg/TeXLive/: Isso coloca
os módulos do Perl TLConfig.pm
e TLUtils.pm
no diretório onde
o instalador do binário os coloca - está no início do PATH
@INC@ do Perl dentro do texlive quando instalado usando as
chaves de configuração acima. Sem esses módulos, o texlive
não é usável.
mktexlsr: Crie
um arquivo ls-R
que lista o que
foi instalado - isso é usado pelo kpathsea para encontrar
arquivos.
fmtutil-sys --all: Isso inicializa os formatos do TeX, bases Metafont e memorandos Metapost.
--without-x
: use isso se você não
tiver o Xorg instalado.
Existem muitas outras opções '--disable' ou '--without'.
Algumas delas, como --without-texinfo
, são aceitas, mas não mais
fazem nada; outras impedirão um aplicativo de ser construído
- mas a quantidade muito maior de espaço usado para os itens
relacionados no texmf significa que não existe nenhum
benefício óbvio em desabilitar alguns dos aplicativos.
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 |
|
(kpathsearch) existe para procurar um arquivo em uma lista de diretórios e é usado pelo kpsewhich |
|
é uma biblioteca para pTeX japonês (publicação de TeX) |
|
é a biblioteca do analisador SyncTeX (Synchronize TeXnology) |
|
fornece Lua 5.2, modificado para uso com o LuaTeX |
|
fornece LuaJIT, modificado para uso com o LuaJITTeX |
Asymptote é uma poderosa linguagem gráfica vetorial descritiva que fornece uma estrutura natural baseada em coordenadas para desenhos técnicos. Rótulos e equações podem ser tipografados com LaTeX. Além de saída EPS, PDF e PNG, ele pode produzir renderização HTML 3D WebGL e (usando o dvisvgm) saída SVG.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://downloads.sourceforge.net/asymptote/asymptote-3.01.src.tgz
Soma de verificação MD5 da transferência: f2286eec207c03e9b5d378e77a6b43a2
Tamanho da transferência: 30 MB
Espaço em disco estimado exigido: 338 MB (56 MB instalado depois de sobrescrever arquivos em $TEXLIVE_PREFIX/texmf-dist/, com todas as dependências que estão no BLFS)
Tempo de construção estimado: 1,0 UPC (usando paralelismo = 4)
ghostscript-10.04.0 e texlive-20240312
cURL-8.12.1, Freeglut-3.6.0, GC-8.2.8, GLEW-2.2.0, GLM-1.0.1 e libtirpc-1.3.6
dvisvgm-3.4.3 para permitir saída gerada SVG
fftw-3.3.10, gsl-2.8, libsigsegv-2.14, ambos Boost-1.87.0 e rapidjson para usar LSP que pode ser usado com emacs, click e eigen
ImageMagick-7.1.1-43 para converter a saída para outros formatos, como JPEG ou para criar GIFs animados, PyQt5 (não testado, tem uma dependência de construção de Qt5) para usar xasy
Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/asymptote
Certos conjuntos de comandos sequenciais 3D de PDF possivelmente não funcionem quando invocados a partir do pdflatex em algumas máquinas APU zen+ amdgpu.
Instale o asymptote executando os seguintes comandos:
export TEXARCH=$(uname -m | sed -e 's/i.86/i386/' -e 's/$/-linux/') && ./configure --prefix=$TEXLIVE_PREFIX \ --bindir=$TEXLIVE_PREFIX/bin/$TEXARCH \ --datarootdir=$TEXLIVE_PREFIX/texmf-dist \ --infodir=$TEXLIVE_PREFIX/texmf-dist/doc/info \ --libdir=$TEXLIVE_PREFIX/texmf-dist \ --mandir=$TEXLIVE_PREFIX/texmf-dist/doc/man \ --disable-lsp \ --enable-gc=system \ --with-latex=$TEXLIVE_PREFIX/texmf-dist/tex/latex \ --with-context=$TEXLIVE_PREFIX/texmf-dist/tex/context/third && make
Para testar os resultados, emita: make check.
Agora, como o(a) usuário(a) root
:
make install
--prefix=
, --bindir=
, --datarootdir=
e outras chaves
“dir”:
essas chaves asseguram que os arquivos instalados a partir do
fonte sobrescreverão quaisquer arquivos correspondentes
previamente instalados por install-tl-unx, de forma que os métodos
alternativos de se instalar o texlive sejam consistentes.
--libdir=$TEXLIVE_PREFIX/texmf-dist
:
Esse parâmetro garante que o diretório asymptote
sobrescreverá de forma semelhante
quaisquer arquivos instalados por install-tl-unx.
--disable-lsp
: O
Language Server Protocol é habilitado por padrão, com
diversas fontes de terceiros incluídas, mas ele não constrói,
a menos que boost e rapidjson tenham sido instalados.
--enable-gc=system
:
isso garante que a versão do sistema da libgc.so
será usada em vez da versão
fornecida com esse pacote.
--with-latex=
--with-context=
:
Essas chaves garantem que os arquivos de estilo e um arquivo
tex sejam instalados nos diretórios do texlive em vez de criar um diretório
texmf-local
para eles.
Biber é um substituto do BibTeX para usuários(as) do biblatex, escrito em Perl, com suporte completo a Unicode.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/plk/biber/archive/v2.20/biber-2.20.tar.gz
Soma de verificação MD5 da transferência: a7f400cdac3a3d9d9ab13ca053eb6791
Tamanho da transferência: 1,6 MB
Espaço em disco estimado exigido: 15 MB (instala 1,6 MB de módulos Perl)
Tempo de construção estimado: 0,4 UPC incluindo testes
Se você tiver atualizado para um novo lançamento do
texlive-source, o biber e as dependências Perl dele ainda
estarão presentes em /usr
e
não precisam ser reconstruídas. Contudo, o biblatex instala
em /opt/texlive/2024
e
precisa ser reinstalado.
Se você instalou as dependências acima usando as instruções do BLFS para cada uma delas, perl ./Build.PL reclamará que Mozilla::CA não está instalado, mas isso não é necessário, a menos que o CPAN seja usado para instalar os módulos. O BLFS corrige LWP::Protocol::https para usar os certificados do sistema; Mozilla::CA usa certificados antigos.
autovivification-0.18, Business-ISBN-3.011, Business-ISMN-1.204, Business-ISSN-1.008, Class-Accessor-0.51, Data-Compare-1.29, Data-Dump-1.25, Data-Uniqid-0.12, DateTime-Calendar-Julian-0.107, DateTime-Format-Builder-0.83, Encode-EUCJPASCII-0.03, Encode-HanExtra-0.23, Encode-JIS2K-0.05, File-Slurper-0.014, IO-String-1.08, IPC-Run3-0.049, Lingua-Translit-0.29, List-AllUtils-0.19, List-MoreUtils-0.430, Log-Log4perl-1.57, LWP-Protocol-https-6.14, Module-Build-0.4234, Parse-RecDescent-1.967015, PerlIO-utf8_strict-0.010, Regexp-Common-2024080801, Sort-Key-1.33, Text-BibTeX-0.91, Text-CSV-2.05, Text-Roman-3.5, Unicode-Collate-1.31, Unicode-LineBreak-2019.001, XML-LibXML-Simple-1.01, XML-LibXSLT-2.003000 e XML-Writer-0.900
File-Which-1.27 e Test-Differences-0.71
É possível instalar todas as dependências ausentes
automaticamente. Você precisa primeiro instalar Module-Build-0.4234, usando
instalação
automática de módulos "Perl". Em seguida, execute
perl
./Build.PL e quando solicitado, torne-se
o(a) usuário(a) root
e
execute ./Build
installdeps - isso usará CPAN e, como
observado acima, usará Mozilla::CA, em vez de usar os
certificados de sistema.
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
O pacote dvisvgm converte arquivos DVI, EPS e PDF para o formato SVG.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://github.com/mgieseki/dvisvgm/releases/download/3.4.3/dvisvgm-3.4.3.tar.gz
Soma de verificação MD5 da transferência: 1b354023a504a72bba35a639a0987d76
Tamanho da transferência: 2,8 MB
Espaço em disco estimado exigido: 268 MB (net 7 MB instalados depois de sobrescrever arquivos em $TEXLIVE_PREFIX/texmf-dist/, adicionar 948 MB para os testes)
Tempo de construção estimado: 0,8 UPC (adicionar 0,5 UPC para testes, ambos usando paralelismo=4)
Brotli-1.1.0, ghostscript-10.04.0, Potrace-1.16 e texlive-20240312
asciidoc-10.2.1 com xmlto-0.0.29 e libxslt-1.1.42, dblatex (com o acima) e xxHash (a versão atual está incluída no tarball)
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
--with-kpathsea=$TEXLIVE_PREFIX
:
Isso permite que o sistema de construção encontre os
cabeçalhos para kpathsea
Xindy é um processador de índice que pode ser usado para gerar índices semelhantes a livros para sistemas arbitrários de preparação de documentos. Isso inclui sistemas como TeX e LaTeX, a família roff e sistemas baseados em SGML/XML (por exemplo, HTML) que processam algum tipo de texto e geram informações de indexação.
Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3.
Transferência (HTTP): https://tug.ctan.org/support/xindy/base/xindy-2.5.1.tar.gz
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
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
sed -i "s/ grep -v '^;'/ awk NF/" ...: A construção classifica os arquivos em codificações latinas{1..3} para criar latin.xdy, e versões Unicode desses, para criar utf8.xdy depois de usar grep -v '^;' para remover linhas em branco. Com grep-2.23, qualquer dado que não esteja na codificação esperada é tratado como binário, resultando em um arquivo inútil. Esse comando usa uma forma alternativa de remover linhas em branco.
sed -i 's%\(indexentry\)%\1\\%'
...: Uma expressão regular contém
indexentry{
- Perl avisou acerca
da chave esquerda sem escape por algum tempo e agora a trata
como ilegal. Mude para indexentry\{
, duplicando a barra invertida
para o sed.
patch -Np1 -i ../xindy-2.5.1-upstream_fixes-2.patch: O Xindy agora é mantido no CTAN. Esse remendo atualiza o fonte com algumas das mudanças feitas lá (mas ignorando as mudanças que foram feitas somente para permitir espaços nos nomes de caminhos e algumas mudanças triviais recentes).
--prefix=
, --bindir=
, --datarootdir=
e outras chaves
“dir”:
essas chaves asseguram que os arquivos instalados a partir do
fonte sobrescreverão quaisquer arquivos correspondentes
previamente instalados por install-tl-unx, de forma que os métodos
alternativos de se instalar o texlive sejam consistentes.
--includedir=/usr/include
: Esse
parâmetro garante que os cabeçalhos kpathsea
oriundos do texlive-20240312 serão
encontrados.
make
LC_ALL=POSIX: com a versão atual do
coreutils, é essencial
construir o xindy na
localidade POSIX (ou C), porque em uma localidade UTF -8 o
arquivo latin.xdy
conterá
somente um cabeçalho e então uma linha 'Binary file (standard input) matches
' em vez
das muitas linhas de comandos de regra de mesclagem do
lisp que deve conter.
Código Jurídico da Creative Commons
Atribuição - Uso não-Comercial - Compartilhamento pela mesma licença 2.0
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.
Definições
"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.
"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.
"Licenciante" significa a pessoa física ou a jurídica que oferece a Obra sob os termos desta Licença.
"Autor(a) Original" significa a pessoa física ou jurídica que criou a Obra.
"Obra" significa a obra autoral, passível de proteção pelo direito autoral, oferecida sob os termos desta Licença.
"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.
"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.
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.
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:
reproduzir a Obra, incorporar a Obra em uma ou mais Obras Coletivas e reproduzir a Obra quando incorporada em Obra Coletiva;
para criar e reproduzir Obras Derivadas;
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;
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).
Restrições. A licença concedida na Seção 3 acima está expressamente sujeita e limitada aos seguintes termos:
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.
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.
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.
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.
Para evitar dúvidas, quando a Obra for uma composição musical:
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.
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.
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.
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Ê.
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.
Terminação
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.
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.
Outras Disposições
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.
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.
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.
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.
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ê.
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/.
Direitos autorais © 1999-2025 A Equipe de Desenvolvimento do BLFS
Permissão é aqui concedida, gratuitamente, para qualquer pessoa que obtenha uma cópia deste software e arquivos de documentação associados (o "Software"), para lidar com o Software sem restrição, incluindo, sem limitação, os direitos para usar, copiar, modificar, mesclar, publicar, distribuir, sublicenciar, e (ou) vender cópias do Software, e para permitir para as pessoas para quem o Software for fornecido para fazer o mesmo, sujeito às seguintes condições:
O aviso de direitos autorais acima e este aviso de permissão deveria ser incluído em todas as cópias ou porções substanciais do Software.
O SOFTWARE É FORNECIDO “NO ESTADO EM QUE SE ENCONTRA”, SEM GARANTIAS DE QUALQUER ESPÉCIE, EXPLÍCITAS OU IMPLÍCITAS, INCLUINDO, PORÉM NÃO LIMITADA A, AS GARANTIAS DE COMERCIALIZAÇÃO, ADEQUAÇÃO PARA UM PROPÓSITO PARTICULAR E NÃO-VIOLAÇÃO. EM NENHUMA CIRCUNSTÂNCIA OS AUTORES OU TITULARES DE DIREITOS AUTORAIS SERÃO RESPONSÁVEIS POR QUAISQUER ALEGAÇÕES, DANOS OU OUTRA RESPONSABILIDADE, SEJA EM UMA AÇÃO DE CONTRATO, ATO ILÍCITO OU DE OUTRA FORMA, DECORRENTE DE, OU EM CONEXÃO COM, O SOFTWARE OU O USO OU OUTRAS NEGOCIAÇÕES NO SOFTWARE.
UNIS/Módulo Compositor 669
Application Binary Interface
Asymmetric Digital Subscriber Line
Andrew File System
AMD Generic Encapsulated Software Architecture
Audio Interchange File Format
Advanced Linux Sound Architecture
American National Standards Institute
Application Programming Interface
Apache Portable Runtime
Address Resolution Protocol
American Standard Code for Information Interchange
Address Space Layout Randomization
Abstract Syntax Notation
Advanced Streaming Format
Advanced Technology Attachment
Advanced Television Systems Committee
Accessibility ToolKit
Audio Video Interleave
Abstract Window Toolkit
Basic Encoding Rules
Berkeley Internet Name Domain
Basic Input/Output System
Beyond Linux From Scratch
Bit MaP
Compact Disk
Compact Disc Digital Audio
Common Internet File System
Ver Também SMB .
Cryptographic Message Syntax
Módulo COmpression/DECompression
Common Object Request Broker Architecture
Central Processing Unit
Color Rendering Dictionary
Color Space Array
Conteúdo Scrambling System
Cascading Style Sheets
Common Unix Printing System
Concurrent Versions System
Disc At Once
Directory Address Resolution Protocol Allocation
Digital Equipment Corporation
Distinguished Encoding Rules
Data Encryption Standard
Dynamic Host Configuration Protocol
Dictionary Server Protocol (RFC 2229)
German Industrial Norm
Domain Name Service
Disk Operating System
Direct Rendering Infrastructure
Document Structuring Conventions
Dynamic Shared Objects
Document Style Semantics and Specification Language
Digital Video
Digital Versatile Disk (também Digital Video Disk)
DeVice Independent
Executable and Linking Format
Enhanced Parallel Port
Encapsulated PostScript
Enlighten Sound Daemon
Extended Simple Mail Transfer Protocol
File Alteration Monitor
Fast Assembly Mpeg Encoder
Frequently Asked Questions
Facsimile
Frame Buffer
File Hierarchy Standard
Free Lossless Audio CODEC
Formatted Objects
File Transfer Protocol
GNU Compiler Collection
GNU DataBase Manager
GTK+ Drawing Kit
GNOME Display Manager
Group IDentity
Graphics Interchange Format
OpenGL Utility Toolkit
GNU Multiple Precision Arithmetic
GNU NYU Ada 9x Translator
GNU Network Object Model Environment
GNU's Not Unix
Global Offset Table
General Public License
General Purpose Mouse
Generic Security Service
Generic Security Service Application Programming Interface
GIMP ToolKit
Graphical User Interface
Hierarchical File System
HyperText Markup Language
HyperText Transfer Protocol
HyperText Transfer Protocol Secured
Hang UP
Internet Assigned Numbers Authority
International Color Consortium
Internet Control Message Protocol
Integrated Drive Electronics
Integrated Development Environment
Interface Definition Language
Ink Jet Systems
Internet Location Server
Internet Message Access Protocol
Inode MONitor
Internet Protocol
Ver Também TCP .
Internetwork Packet eXchange
Internet Relay Chat
Integrated Services Digital Network
International Standards Organisation
Internet Service Provider
ImpulseTracker Module
Java Advanced Imaging
Java ARchive
Java Development Kit
JPEG File Interchange Format
Joint Photographic Experts Group
Key Distribution Center
KDesktop Environment
Lame Ain't an MP3 Encoder
Local Area Network
Lightweight Directory Access Protocol
Lightweight Data Interchange Format
Linux From Scratch
Library General Public License
Line PRinter
Lempel-Ziv-Oberhumer
Lempel-Ziv-Welch
Media Access Control
Multimedia COmmunication Protocol
Multipoint Control Unit
Message-Digest
Mail Delivery Agent
MED/OctaMED Module
Musical Instrument Digital Interface
Maker Interchange Format
Media Independent Interface
Multipurpose Internet Mail Extensions
Massachusetts Institute of Technology
Multiple-image Network Graphics
Módulo ProTracker
MPEG-1 audio layer 3
Moving Picture Experts Group
Magick Scripting Language
Mail Transport Agent
MultiTracker Module
Mail User Agent
Netwide ASseMbler
Network News Transfer Protocol
Network File System
Network Information Service
Native Posix Thread Library
Netscape Portable Runtime
Network Security Services
Network Time Protocol
Object Activation Framework
Open DataBase Connectivity
Open Metadata Framework
Object Request Broker
Ver Também CORBA .
Object Relational Database Management System
Operating System
Open Software Foundation
Open Sound System
Pluggable Authentication Modules
Portable BitMap
Peripheral Component Interconnect
Printer Control Language
Pulse Code Modulation
Primary Domain Controller
Portable Document Format
PHP Extension and Application Repository
Portable Grey Map
Pretty Good Privacy
PHP Hypertext Preprocessor
Position Independent Executable
Personal Information Manager
Parallel Line Internet Protocol
Portable Network Graphics
Portable Object
Plain Old Documentation
Post Office Protocol
PostScript Printer Description
Portable Pixel Map
Point-to-Point Protocol
Point-to-Point Protocol over Ethernet
PostScript
Remote Authentication Dial-In User Service
Random Access Memory
Reverse Address Resolution Protocol
Revision Control System
Request For Comments
Red Green Blue
Red Green Blue Alpha
Read-Only Memory
Roaring Penguin
Remote Procedure Call
Real Time Clock
Real Time Protocol
Read Write
ScreamTracker Version 3 Module
Secure/MIME
Scanner Access Now Easy
Simple Authentication and Security Layer
Serial Advanced Technology Attachment
Standard Build Unit
Small Computer System Interface
Software Development Kit
Standard Generalized Markup Language
Self Monitoring Analysis and Reporting Technology
Server Message Block
Synchronized Multimedia Integration Language
Simple Mail Transfer Protocol
Structured Query Language
Secure SHell
Secure Sockets Layer
Stack Smash Protection
Set User IDentity
Scalable Vector Graphics
Super Video Graphics Array
Tool Command Language
Transmission Control Protocol
Ticket-Granting Ticket
Tag(ged) Image File Format
Transport Layer Security
TrueType Font
Text To Speech
Universal Character Set
Universal Disk Format
User IDentity
User Datagram Protocol
User Interface
Unified Modelling Language
Uniform Resource Locator
Universal Serial Bus
Upstream Ready
UCS Transformation Format
Unix-to-Unix Copy Protocol
Video Compact Disk
Version Control System
Video Electronics Standards Association
Video Graphics Array
Virtual Network Computer
Video OBject
Voice Over IP
World Wide Web Consortium
Waveform Audio
World Wide Web
XDisplay Manager Control Protocol
FastTracker Module
eXtensible Markup Language
eXtensible Style Language
eXtensible Style Language Transformation
X/Open System Management
XMultiMedia System
Yellow Pages
Luminance-Bandwidth-Chrominance