Beyond Linux^® From Scratch (Edição System V) Versão 12.3 A Equipe de Desenvolvimento do BLFS 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 [1]Licença da Creative Commons. As instruções de computador podem ser extraídas a partir do livro sob a [2]Licença do MIT. Linux® é uma marca comercial registrada de Linus Torvalds. Publicado em 2025-03-05 Histórico de Revisões Revisão 12.3 2025-03-05 Trigésimo primeiro lançamento Revisão 12.2 2024-09-01 Trigésimo Lançamento Revisão 12.1 2024-03-01 Vigésimo nono lançamento Revisão 12.0 2023-09-01 Vigésimo oitavo lançamento Revisão 11.3 2023-03-01 Vigésimo sétimo lançamento Revisão 11.2 2022-09-01 Vigésimo sexto lançamento Revisão 11.1 2022-03-01 Vigésimo quinto lançamento Revisão 11.0 2021-09-01 Vigésimo quarto lançamento Revisão 10.1 2021-03-01 Vigésimo terceiro lançamento Revisão 10.0 2020-09-01 Vigésimo segundo lançamento Revisão 9.1 2020-03-01 Vigésimo primeiro lançamento Revisão 9.0 2019-09-01 Vigésimo lançamento Revisão 8.4 2019-03-01 Décimo nono lançamento Revisão 8.3 2018-09-01 Décimo oitavo lançamento Revisão 8.2 2018-03-02 Décimo sétimo lançamento Revisão 8.1 2017-09-01 Décimo sexto lançamento Revisão 8.0 2017-02-25 Décimo quinto lançamento Revisão 7.10 2016-09-07 Décimo quarto lançamento Revisão 7.9 2016-03-08 Décimo terceiro lançamento Revisão 7.8 2015-10-01 Décimo segundo lançamento Revisão 7.7 2015-03-06 Décimo primeiro lançamento Revisão 7.6 2014-09-23 Décimo lançamento Revisão 7.5 2014-03-05 Nono lançamento Revisão 7.4 2013-09-14 Oitavo lançamento Revisão 6.3 2008-08-24 Sétimo lançamento Revisão 6.2 2007-02-14 Sexto lançamento Revisão 6.1 2005-08-14 Quinto lançamento Revisão 6.0 2005-04-02 Quarto lançamento Revisão 5.1 2004-06-05 Terceiro lançamento Revisão 5.0 2003-11-06 Segundo lançamento Revisão 1.0 2003-04-25 Primeiro lançamento Resumo Este livro é uma continuação do livro Linux From Scratch. Ele introduz e guia o(a) leitor(a) ao longo de adições ao sistema incluindo rede de comunicação, interfaces gráficas, suporte a som e suporte a impressora e escaneadora. __________________________________________________________________ Dedicação Este livro é dedicado para a comunidade do LFS Índice * [3]Prefácio + [4]Introito + [5]Quem Desejaria Ler este Livro + [6]Organização * [7]I. Introdução + [8]1. Boas vindas ao BLFS o [9]Quais Seções do Livro Eu Quero? o [10]Convenções Usadas neste Livro o [11]Versão do Livro o [12]Sítios Espelhos o [13]Obtendo os Pacotes Fonte o [14]Registro das Mudanças o [15]Listas de Discussão o [16]Observações do(a) Editor(a) o [17]Pedindo Ajuda e as Perguntas Frequentes o [18]Créditos o [19]Informação de Contato + [20]2. Informação Importante o [21]Observações Acerca de Construir Software o [22]O Debate /usr Versus /usr/local o [23]Remendos Opcionais o [24]Conjuntos de Comandos Sequenciais de Inicialização do BLFS o [25]Acerca dos arquivos de Arquivamento do Libtool (.la) o [26]Bibliotecas: Estáticas ou compartilhadas? o [27]Problemas Relacionados à Localidade o [28]Indo Além do BLFS * [29]II. Configuração Pós LFS e Software Extra + [30]3. Problemas Depois da Configuração do LFS o [31]Criando um Dispositivo Personalizado de Inicialização o [32]Acerca das Fontes do Console o [33]Acerca de Firmware o [34]Acerca de Dispositivos o [35]Configurando para Adicionar Usuários(as) o [36]Acerca de Usuários(as) e de Grupos do Sistema o [37]Os Arquivos de Iniciação do Shell Bash o [38]Os Arquivos /etc/vimrc e ~/.vimrc o [39]Personalizando o seu Logon com o /etc/issue o [40]Geração de Número Aleatório + [41]4. Segurança o [42]Vulnerabilidades o [43]make-ca-1.15 o [44]CrackLib-2.10.3 o [45]cryptsetup-2.7.5 o [46]Cyrus SASL-2.1.28 o [47]GnuPG-2.4.7 o [48]GnuTLS-3.8.9 o [49]GPGME-1.24.2 o [50]iptables-1.8.11 o [51]Configurando um Firewall de Rede de Comunicação o [52]libcap-2.73 com PAM o [53]Linux-PAM-1.7.0 o [54]liboauth-1.0.3 o [55]libpwquality-1.4.5 o [56]MIT Kerberos V5-1.21.3 o [57]Nettle-3.10.1 o [58]NSS-3.108 o [59]OpenSSH-9.9p2 o [60]p11-kit-0.25.5 o [61]Polkit-126 o [62]polkit-gnome-0.105 o [63]Shadow-4.17.3 o [64]ssh-askpass-9.9p2 o [65]stunnel-5.74 o [66]Sudo-1.9.16p2 o [67]Tripwire-2.4.3.7 + [68]5. Sistemas de Arquivos e Gerenciamento de Disco o [69]A respeito do initramfs o [70]btrfs-progs-6.13 o [71]dosfstools-4.2 o [72]Fuse-3.16.2 o [73]jfsutils-1.1.15 o [74]LVM2-2.03.30 o [75]A respeito de Logical Volume Management (LVM) o [76]A respeito de RAID o [77]mdadm-4.3 o [78]ntfs-3g-2022.10.3 o [79]gptfdisk-1.0.10 o [80]parted-3.6 o [81]smartmontools-7.4 o [82]sshfs-3.7.3 o [83]xfsprogs-6.13.0 o Pacotes para Inicialização UEFI o [84]efivar-39 o [85]efibootmgr-18 o [86]GRUB-2.12 para EFI o [87]Usando o GRUB para Configurar o Processo de Inicialização com UEFI + [88]6. Editores de Texto o [89]Bluefish-2.2.16 o [90]Ed-1.21 o [91]Emacs-30.1 o [92]Gedit-48.1 o [93]JOE-4.6 o [94]kate-24.12.2 o [95]Mousepad-0.6.3 o [96]Nano-8.3 o [97]Vim-9.1.1166 + [98]7. Shells o [99]Dash-0.5.12 o [100]Tcsh-6.24.15 o [101]zsh-5.9 + [102]8. Virtualização o [103]qemu-9.2.2 * [104]III. Bibliotecas e Utilitários Gerais + [105]9. Bibliotecas Gerais o [106]Abseil-cpp-20250127.0 o [107]AppStream-1.0.4 o [108]appstream-glib-0.8.3 o [109]Apr-1.7.5 o [110]Apr-Util-1.6.3 o [111]Aspell-0.60.8.1 o [112]boost-1.87.0 o [113]brotli-1.1.0 o [114]CLucene-2.3.3.4 o [115]dbus-glib-0.112 o [116]Double-conversion-3.3.1 o [117]duktape-2.7.0 o [118]enchant-2.8.2 o [119]Exempi-2.6.5 o [120]fftw-3.3.10 o [121]fmt-11.1.4 o [122]GLib-2.82.5 o [123]GLibmm-2.66.7 o [124]GLibmm-2.82.0 o [125]GMime-3.2.7 o [126]gmmlib-22.5.5 o [127]gsl-2.8 o [128]gspell-1.14.0 o [129]highway-1.2.0 o [130]icu-76.1 o [131]inih-58 o [132]Jansson-2.14 o [133]JSON-C-0.18 o [134]JSON-GLib-1.10.6 o [135]keyutils-1.6.3 o [136]libaio-0.3.113 o [137]libarchive-3.7.7 o [138]libassuan-3.0.2 o [139]libatasmart-0.19 o [140]libatomic_ops-7.8.2 o [141]libblockdev-3.3.0 o [142]libbytesize-2.11 o [143]libclc-19.1.7 o [144]libcloudproviders-0.3.6 o [145]libdaemon-0.14 o [146]libdisplay-info-0.2.0 o [147]libgcrypt-1.11.0 o [148]libgpg-error-1.51 o [149]libgsf-1.14.53 o [150]libgudev-238 o [151]libgusb-0.4.9 o [152]libical-3.0.19 o [153]libidn-1.42 o [154]libidn2-2.3.7 o [155]libksba-1.6.7 o [156]liblinear-248 o [157]libmbim-1.26.4 o [158]libnvme-1.11.1 o [159]libpaper-2.2.6 o [160]libportal-0.9.1 o [161]libptytty-2.0 o [162]libqalculate-5.5.1 o [163]libqmi-1.30.8 o [164]libseccomp-2.6.0 o [165]libsigc++-2.12.1 o [166]libsigc++-3.6.0 o [167]libsigsegv-2.14 o [168]libssh2-1.11.1 o [169]libstatgrab-0.92.1 o [170]libtasn1-4.20.0 o [171]libunistring-1.3 o [172]libunwind-1.8.1 o [173]liburcu-0.15.1 o [174]libusb-1.0.27 o [175]libuv-1.50.0 o [176]libxkbcommon-1.8.0 o [177]libxml2-2.13.6 o [178]libxmlb-0.3.21 o [179]libxslt-1.1.42 o [180]libwacom-2.14.0 o [181]libyaml-0.2.5 o [182]log4cplus-2.1.2 o [183]LZO-2.10 o [184]mtdev-1.1.7 o [185]Node.js-22.14.0 o [186]npth-1.8 o [187]NSPR-4.36 o [188]PCRE2-10.45 o [189]Popt-1.19 o [190]Protobuf-29.3 o [191]Protobuf-c-1.5.1 o [192]Qca-2.3.9 o [193]qcoro-0.11.0 o [194]SpiderMonkey oriundo de firefox-128.7.0 o [195]SPIRV-Headers-1.4.304.1 o [196]SPIRV-Tools-1.4.304.1 o [197]SPIRV-LLVM-Translator-19.1.4 o [198]Talloc-2.4.3 o [199]Uchardet-0.0.8 o [200]Umockdev-0.19.1 o [201]utfcpp-4.0.6 o [202]Wayland-1.23.0 o [203]Wayland-Protocols-1.40 o [204]wv-1.2.9 o [205]Xapian-1.4.27 + [206]10. Bibliotecas de Gráficos e de Fontes o [207]AAlib-1.4rc5 o [208]babl-0.1.110 o [209]Exiv2-0.28.5 o [210]FreeType-2.13.3 o [211]Fontconfig-2.16.0 o [212]FriBidi-1.0.16 o [213]gegl-0.4.54 o [214]giflib-5.2.2 o [215]Glad-2.0.8 o [216]GLM-1.0.1 o [217]Graphite2-1.3.14 o [218]harfBuzz-10.4.0 o [219]jasper-4.2.4 o [220]Little CMS-2.17 o [221]libavif-1.2.0 o [222]libexif-0.6.25 o [223]libgxps-0.3.2 o [224]libjpeg-turbo-3.0.1 o [225]libjxl-0.11.1 o [226]libmng-2.0.3 o [227]libmypaint-1.6.1 o [228]libpng-1.6.46 o [229]libraw-0.21.3 o [230]librsvg-2.59.2 o [231]Libspiro-20220722 o [232]libtiff-4.7.0 o [233]libwebp-1.5.0 o [234]mypaint-brushes-1.3.1 o [235]newt-0.52.24 o [236]opencv-4.11.0 o [237]OpenJPEG-2.5.3 o [238]Pixman-0.44.2 o [239]Poppler-25.02.0 o [240]Potrace-1.16 o [241]Qpdf-11.10.1 o [242]qrencode-4.1.1 o [243]sassc-3.6.2 o [244]webp-pixbuf-loader-0.2.7 o [245]woff2-1.0.2 o [246]zxing-cpp-2.3.0 + [247]11. Utilitários Gerais o [248]Asciidoctor-2.0.23 o [249]Bogofilter-1.2.5 o [250]Compface-1.5.2 o [251]desktop-file-utils-0.28 o [252]dos2unix-7.5.2 o [253]glslc originário de shaderc-2024.4 o [254]Graphviz-12.2.1 o [255]GTK-Doc-1.34.0 o [256]Highlight-4.15 o [257]ibus-1.5.31 o [258]ImageMagick-7.1.1-43 o [259]ISO Codes-4.17.0 o [260]lsof-4.99.0 o [261]pinentry-1.3.1 o [262]Screen-5.0.0 o [263]shared-mime-info-2.4 o [264]Sharutils-4.15.2 o [265]tidy-html5-5.8.0 o [266]Time-1.9 o [267]tree-2.2.1 o [268]unixODBC-2.3.12 o [269]xdg-dbus-proxy-0.1.6 o [270]Xdg-user-dirs-0.18 + [271]12. Utilitários de Sistema o [272]7zip-24.09 o [273]AccountsService-23.13.9 o [274]acpid-2.0.34 o [275]at-3.2.5 o [276]autofs-5.1.9 o [277]BlueZ-5.79 o [278]Bubblewrap-0.11.0 o [279]Colord-1.4.7 o [280]cpio-2.15 o [281]cups-pk-helper-0.2.7 o [282]dbus-1.16.0 o [283]elogind-255.17 o [284]blocaled-0.7 o [285]Fcron-3.2.1 o [286]GPM-1.20.7 o [287]Hdparm-9.65 o [288]hwdata-0.392 o [289]LSB-Tools-0.12 o [290]lm-sensors-3-6-0 o [291]Logrotate-3.22.0 o [292]MC-4.8.33 o [293]ModemManager-1.18.12 o [294]notification-daemon-3.20.0 o [295]Pax-20240817 o [296]pciutils-3.13.0 o [297]pm-utils-1.4.1 o [298]Power-profiles-daemon-0.30 o [299]Raptor-2.0.16 o [300]Rasqal-0.9.33 o [301]Redland-1.0.17 o [302]sg3_utils-1.48 o [303]sysmond-1.0.0 o [304]sysmon3-3.0.1 o [305]Sysstat-12.7.7 o [306]UDisks-2.10.1 o [307]UnRar-7.1.5 o [308]UPower-1.90.7 o [309]usbutils-018 o [310]Which-2.23 e Alternativas o [311]xdotool-3.20211022.1 o [312]Zip-3.0 + [313]13. Programação o [314]cargo-c-0.10.11 o [315]Cbindgen-0.28.0 o [316]Clisp-2.49 o [317]CMake-3.31.5 o [318]Doxygen-1.13.2 o [319]dtc-1.7.2 o [320]GCC-14.2.0 o [321]GC-8.2.8 o [322]GDB-16.2 o [323]Git-2.48.1 o [324]Executando um Servidor "Git" o [325]Guile-3.0.10 o [326]LLVM-19.1.7 o [327]Lua-5.4.7 o [328]luajit-20250212 o [329]Mercurial-6.9.2 o [330]NASM-2.16.03 o [331]Patchelf-0.18.0 o [332]Módulos Perl o [333]Dependências de Módulos "Perl" o [334]PHP-8.4.4 o [335]Python-3.13.2 o [336]Python-3.11.1 o [337]Módulos "Python" o [338]Dependências do "Python" o [339]Ruby-3.4.2 o [340]Rustc-1.85.0 o [341]rust-bindgen-0.71.1 o [342]SCons-4.8.1 o [343]slang-2.3.3 o [344]Subversion-1.14.5 o [345]Executando um Servidor "Subversion" o [346]SWIG-4.3.0 o [347]Tk-8.6.16 o [348]unifdef-2.12 o [349]Vala-0.56.17 o [350]Valgrind-3.24.0 o [351]yasm-1.3.0 o Java o [352]Java-23.0.2 o [353]OpenJDK-23.0.2 o [354]Configurando o ambiente Java o [355]apache-ant-1.10.15 * [356]IV. Rede de Intercomunicação + [357]14. Conectando a uma Rede de Intercomunicação o [358]dhcpcd-10.2.2 + [359]15. Aplicativos de Rede de Intercomunicação o [360]bridge-utils-1.7.1 o [361]cifs-utils-7.2 o [362]NcFTP-3.2.7 o [363]Net-tools-2.10 o [364]NFS-Utils-2.8.2 o [365]Configurando para Sistemas de Arquivos de Rede de Intercomunicação o [366]ntp-4.2.8p18 o [367]rpcbind-1.2.7 o [368]rsync-3.4.1 o [369]Samba-4.21.4 o [370]Wget-1.25.0 o [371]Configurando o Núcleo Linux para Sem Fios o [372]iw-6.9 o [373]Wireless Tools-29 o [374]wpa_supplicant-2.11 + [375]16. Utilitários de Trabalho em Rede de Intercomunicação o [376]Avahi-0.8 o [377]Utilitários BIND-9.20.6 o [378]NetworkManager-1.50.0 o [379]network-manager-applet-1.34.0 o [380]Nmap-7.95 o [381]Traceroute-2.1.6 o [382]Whois-5.4.3 o [383]Wireshark-4.4.5 + [384]17. Bibliotecas de Operação Interativa de Dispositivos Via Rede de Intercomunicação o [385]c-ares-1.34.4 o [386]cURL-8.12.1 o [387]GeoClue-2.7.2 o [388]glib-networking-2.80.1 o [389]kdsoap-2.2.0 o [390]kdsoap-ws-discovery-client-0.4.0 o [391]ldns-1.8.4 o [392]libevent-2.1.12 o [393]libmnl-1.0.5 o [394]libndp-1.9 o [395]libnl-3.11.0 o [396]libnma-1.10.6 o [397]libnsl-2.0.1 o [398]libpcap-1.10.5 o [399]libpsl-0.21.5 o [400]libslirp-4.9.0 o [401]libsoup-2.74.3 o [402]libsoup-3.6.4 o [403]libtirpc-1.3.6 o [404]neon-0.34.0 o [405]nghttp2-1.64.0 o [406]rpcsvc-proto-1.4.4 o [407]Serf-1.3.10 o [408]uhttpmock-0.11.0 + [409]18. Navegadores da Web em Texto o [410]Links-2.30 o [411]Lynx-2.9.2 + [412]19. Clientes de Mensagem/Notícias o [413]Fetchmail-6.5.2 o [414]mailx-12.5 o [415]Mutt-2.2.14 o [416]Procmail-3.24 o [417]Outros Aplicativos de Mensagem e Notícias * [418]V. Servidores + [419]20. Servidores Principais o [420]Apache-2.4.63 o [421]BIND-9.20.6 o [422]Servidor DHCP Kea 2.6.1 o [423]ProFTPD-1.3.8b + [424]21. Logiciário de Servidor de Mensagens o [425]Dovecot-2.4.0 o [426]Exim-4.98.1 o [427]Postfix-3.10.1 o [428]sendmail-8.18.1 + [429]22. Bases de Dados o [430]Observações Importantes Relativas a Atualização do Logiciário do Servidor de Base de Dados o [431]lmdb-0.9.31 o [432]MariaDB-11.4.5 o [433]PostgreSQL-17.4 o [434]SQLite-3.49.1 + [435]23. Outro Logiciário de Servidor o [436]OpenLDAP-2.6.9 o [437]Unbound-1.22.0 * [438]VI. Componentes Gráficos + [439]24. Ambientes Gráficos o [440]Introdução ao Xorg-7 o [441]util-macros-1.20.2 o [442]xorgproto-2024.1 o [443]libXau-1.0.12 o [444]libXdmcp-1.1.5 o [445]xcb-proto-1.17.0 o [446]libxcb-1.17.0 o [447]Bibliotecas do Xorg o [448]libxcvt-0.1.3 o [449]xcb-util-0.4.1 o [450]Utilitários XCB o [451]Mesa-24.3.4 o [452]xbitmaps-1.1.3 o [453]Aplicativos do Xorg o [454]luit-20240910 o [455]xcursor-themes-1.0.7 o [456]Fontes do Xorg o [457]XKeyboardConfig-2.44 o [458]Xwayland-24.1.6 o [459]Xorg-Server-21.1.16 o [460]Controladores de Entrada do Xorg o [461]twm-1.0.12 o [462]xterm-397 o [463]xclock-1.1.1 o [464]xinit-1.4.3 o [465]Testagem e Configuração do Xorg-7 o [466]Ajustando Fontconfig o [467]Fontes TTF e OTF o [468]Legado do Xorg + [469]25. Bibliotecas Gráficas de Ambiente o [470]Atkmm-2.28.4 o [471]Atkmm-2.36.3 o [472]at-spi2-core-2.54.1 o [473]Cairo-1.18.2 o [474]libcairomm-1.0 (cairomm-1.14.5) o [475]libcairomm-1.16 (cairomm-1.18.0) o [476]colord-gtk-0.3.1 o [477]FLTK-1.4.2 o [478]Freeglut-3.6.0 o [479]gdk-pixbuf-2.42.12 o [480]GLEW-2.2.0 o [481]Glslang-15.1.0 o [482]GLU-9.0.3 o [483]GOffice-0.10.59 o [484]Graphene-1.10.8 o [485]GTK-3.24.48 o [486]GTK-4.16.12 o [487]Gtkmm-3.24.9 o [488]Gtkmm-4.16.0 o [489]gtk-vnc-1.5.0 o [490]gtksourceview-3.24.11 o [491]gtksourceview4-4.8.4 o [492]gtksourceview5-5.14.2 o [493]imlib2-1.12.3 o [494]kColorPicker-0.3.1 o [495]kImageAnnotator-0.7.1 o [496]keybinder-3.0-0.3.2 o [497]libadwaita-1.6.4 o [498]libei-1.3.0 o [499]libgedit-amtk-5.9.0 o [500]libgedit-gtksourceview-299.4.0 o [501]libhandy-1.8.3 o [502]Libdrm-2.4.124 o [503]libepoxy-1.5.10 o [504]libnotify-0.8.4 o [505]libxklavier-5.4 o [506]Pango-1.56.1 o [507]Pangomm-2.46.4 o [508]Pangomm-2.56.1 o [509]Qt-6.8.2 o [510]QtWebEngine-6.8.2 o [511]startup-notification-0.12 o [512]Vulkan-Headers-1.4.304 o [513]Vulkan-Loader-1.4.304 o [514]WebKitGTK-2.46.6 o [515]xdg-desktop-portal-1.20.0 o [516]xdg-desktop-portal-gtk-1.15.2 + [517]26. Gerenciadores de Tela o [518]GDM-47.0 o [519]lightdm-1.32.0 o [520]sddm-0.21.0 + [521]27. Gerenciadores de Janela o [522]Fluxbox-1.3.7 o [523]IceWM-3.7.1 o [524]openbox-3.6.1 + [525]28. Ícones o [526]adwaita-icon-theme-47.0 o [527]breeze-icons-6.11.0 o [528]gnome-icon-theme-3.12.0 o [529]gnome-icon-theme-extras-3.12.0 o [530]gnome-icon-theme-symbolic-3.12.0 o [531]gnome-themes-extra-3.28 o [532]hicolor-icon-theme-0.18 o [533]icon-naming-utils-0.8.90 o [534]lxde-icon-theme-0.5.1 o [535]oxygen-icons-6.0.0 * [536]VII. KDE + [537]29. Introdução ao KDE o [538]Preliminares do KDE o [539]extra-cmake-modules-6.11.0 o [540]Phonon-4.12.0 o [541]Phonon-backend-vlc-0.12.0 o [542]Polkit-Qt-0.200.0 o [543]plasma-wayland-protocols-1.16.0 + [544]30. KDE Frameworks 6 o [545]Configuração de Pré-instalação do KDE Frameworks 6 o [546]Construindo KDE Frameworks 6.11.0 (KF6) + [547]31. Aplicativos Baseados no Frameworks 6 do KDE o [548]ark-24.12.2 o [549]dolphin-24.12.2 o [550]dolphin-plugins-24.12.2 o [551]kdenlive-24.12.2 o [552]KMix-24.12.2 o [553]khelpcenter-24.12.2 o [554]Konsole-24.12.2 o [555]konversation-24.12.2 o [556]libkexiv2-24.12.2 o [557]plasma-activities-6.3.2 o [558]plasma-activities-stats-6.3.2 o [559]kio-extras-24.12.2 o [560]okular-24.12.2 o [561]libkdcraw-24.12.2 o [562]gwenview-24.12.2 o [563]libkcddb-24.12.2 o [564]k3b-24.12.2 o [565]Mais pacotes do KDE + [566]32. Plasma do KDE o [567]kirigami-addons-1.4.0 o [568]pulseaudio-qt-1.7.0 o [569]Construindo o Plasma * [570]VIII. GNOME + [571]33. Bibliotecas e Área de Trabalho do GNOME o Bibliotecas o [572]Gcr-3.41.2 o [573]Gcr-4.3.1 o [574]gsettings-desktop-schemas-47.1 o [575]libsecret-0.21.6 o [576]rest-0.9.1 o [577]totem-pl-parser-3.26.6 o [578]VTE-0.78.4 o [579]yelp-xsl-42.1 o [580]geocode-glib-3.26.4 o [581]Gjs-1.82.1 o [582]gnome-autoar-0.4.5 o [583]gnome-desktop-44.1 o [584]gnome-menus-3.36.0 o [585]gnome-online-accounts-3.52.3.1 o [586]libgdata-0.18.1 o [587]libgee-0.20.8 o [588]libgtop-2.41.3 o [589]libgweather-4.4.4 o [590]libpeas-1.36.0 o [591]libshumate-1.3.2 o [592]evolution-data-server-3.54.3 o [593]tinysparql-3.8.2 o [594]localsearch-3.8.2 o [595]GSound-1.0.3 o [596]xdg-desktop-portal-gnome-47.3 o Componentes da Área de Trabalho do GNOME o [597]DConf-0.40.0 / DConf-Editor-45.0.1 o [598]gnome-backgrounds-47.0 o [599]Gvfs-1.56.1 o [600]gexiv2-0.14.3 o [601]Nautilus-47.2 o [602]gnome-bluetooth-47.1 o [603]gnome-keyring-46.2 o [604]gnome-settings-daemon-47.2 o [605]Tecla-47.0 o [606]gnome-control-center-47.4 o [607]Mutter-47.5 o [608]gnome-shell-47.4 o [609]gnome-shell-extensions-47.4 o [610]gnome-session-47.0.1 o [611]gnome-tweaks-46.1 o [612]gnome-user-docs-47.2 o [613]Yelp-42.2 + [614]34. Aplicativos do GNOME o [615]Baobab-47.0 o [616]Brasero-3.12.3 o [617]EOG-47.0 o [618]Evince-46.3.1 o [619]Evolution-3.54.3 o [620]File-Roller-44.5 o [621]gnome-calculator-47.1 o [622]gnome-color-manager-3.36.2 o [623]gnome-connections-46.0 o [624]gnome-disk-utility-46.1 o [625]gnome-maps-47.4 o [626]gnome-nettool-42.0 o [627]gnome-power-manager-43.0 o [628]gnome-screenshot-41.0 o [629]gnome-system-monitor-47.1 o [630]gnome-terminal-3.54.2 o [631]gnome-weather-47.0 o [632]Gucharmap-16.0.2 o [633]Seahorse-47.0.1 o [634]Snapshot-47.1 * [635]IX. Xfce + [636]35. Área de Trabalho do Xfce o [637]libxfce4util-4.20.0 o [638]Xfconf-4.20.0 o [639]libxfce4ui-4.20.0 o [640]Exo-4.20.0 o [641]Garcon-4.20.0 o [642]libwnck-43.2 o [643]xfce4-dev-tools-4.20.0 o [644]libxfce4windowing-4.20.2 o [645]xfce4-panel-4.20.3 o [646]thunar-4.20.2 o [647]thunar-volman-4.20.0 o [648]tumbler-4.20.0 o [649]xfce4-appfinder-4.20.0 o [650]xfce4-power-manager-4.20.0 o [651]xfce4-settings-4.20.1 o [652]Xfdesktop-4.20.1 o [653]Xfwm4-4.20.0 o [654]xfce4-session-4.20.0 + [655]36. Aplicativos do Xfce o [656]Parole-4.18.2 o [657]xfce4-terminal-1.1.4 o [658]Xfburn-0.7.2 o [659]Ristretto-0.13.3 o [660]xfce4-notifyd-0.9.7 o [661]xfce4-pulseaudio-plugin-0.4.9 * [662]X. LXQt + [663]37. Área de Trabalho LXQt o [664]Instruções de Pré Instalação da Área de Trabalho do LXQt o Dependências do KF6, Plasma, and Misc o [665]kwindowsystem-6.11.0 para lxqt o [666]kconfig-6.11.0 para lxqt o [667]solid-6.11.0 para lxqt o [668]kidletime-6.11.0 para lxqt o [669]kwayland-6.3.2 para lxqt o [670]libkscreen-6.3.2 para lxqt o [671]layer-shell-qt-6.3.2 para lxqt o [672]muparser-2.3.5 o Componentes da Área de Trabalho LXQt o [673]lxqt-build-tools-2.1.0 o [674]libdbusmenu-lxqt-0.2.0 o [675]libqtxdg-4.1.0 o [676]lxqt-menu-data-2.1.0 o [677]liblxqt-2.1.0 o [678]libsysstat-1.1.0 o [679]qtxdg-tools-4.1.0 o [680]libfm-extra-1.3.2 o [681]menu-cache-1.1.1 o [682]libfm-qt-2.1.0 o [683]lxqt-globalkeys-2.1.0 o [684]lxqt-qtplugin-2.1.0 o [685]lxqt-panel-2.1.4 o [686]pcmanfm-qt-2.1.0 o [687]lxqt-powermanagement-2.1.0 o [688]lxqt-runner-2.1.2 o [689]lxqt-themes-2.1.0 o [690]lxqt-admin-2.1.0 o [691]lxqt-about-2.1.0 o [692]lxqt-config-2.1.1 o [693]lxqt-policykit-2.1.0 o [694]lxqt-sudo-2.1.0 o [695]lxqt-openssh-askpass-2.1.0 o [696]lxqt-session-2.1.1 o [697]xdg-desktop-portal-lxqt-1.1.0 o [698]obconf-qt-0.16.5 o [699]Instruções finais da área de trabalho do LXQt + [700]38. Aplicativos LXQt o [701]lximage-qt-2.1.1 o [702]lxqt-archiver-1.1.0 o [703]lxqt-notificationd-2.1.1 o [704]pavucontrol-qt-2.1.0 o [705]qps-2.10.0 o [706]qtermwidget-2.1.0 o [707]qterminal-2.1.0 o [708]screengrab-2.9.0 * [709]XI. Software do X + [710]39. Aplicativos de Escritório o [711]AbiWord-3.0.5 o [712]Gnumeric-1.12.59 o [713]LibreOffice-25.2.1 + [714]40. Navegadores Gráficos da Web o [715]Epiphany-47.3.1 o [716]falkon-24.12.2 o [717]Firefox-128.7.0esr o [718]Seamonkey-2.53.20 + [719]41. Outros Aplicativos baseados no X o [720]Balsa-2.6.4 o [721]feh-3.10.3 o [722]FontForge-20230101 o [723]FreeRDP-3.12.0 o [724]Gimp-3.0.0-RC3 o [725]Gparted-1.7.0 o [726]Inkscape-1.4 o [727]rxvt-unicode-9.31 o [728]Thunderbird-128.7.1esr o [729]Tigervnc-1.15.0 o [730]Transmission-4.0.6 o [731]xarchiver-0.5.4.23 o [732]xdg-utils-1.2.1 o [733]XScreenSaver-6.09 * [734]XII. Multimídia + [735]42. Bibliotecas e Controladores de Multimídia o [736]ALSA o [737]alsa-lib-1.2.13 o [738]alsa-plugins-1.2.12 o [739]alsa-utils-1.2.13 o [740]alsa-tools-1.2.11 o [741]alsa-firmware-1.2.4 o [742]AudioFile-0.3.6 o [743]faac-1.31 o [744]FAAD2-2.11.1 o [745]fdk-aac-2.0.3 o [746]FLAC-1.5.0 o [747]frei0r-plugins-1.8.0 o [748]gavl-1.4.0 o [749]gstreamer-1.24.12 o [750]gst-plugins-base-1.24.12 o [751]gst-plugins-good-1.24.12 o [752]gst-plugins-bad-1.24.12 o [753]gst-plugins-ugly-1.24.12 o [754]gst-libav-1.24.12 o [755]id3lib-3.8.3 o [756]intel-media-driver-24.4.4 o [757]intel-vaapi-driver-2.4.1 o [758]Liba52-0.8.0 o [759]Libao-1.2.0 o [760]libaom-3.12.0 o [761]libass-0.17.3 o [762]libcanberra-0.30 o [763]libcddb-1.3.2 o [764]libcdio-2.1.0 o [765]libdvdcss-1.4.3 o [766]Libdvdread-6.1.3 o [767]Libdvdnav-6.1.1 o [768]Libdv-1.0.0 o [769]libgstgtk4 proveniente de gst-plugins-rs-1.24.12 o [770]libmad-0.15.1b o [771]libmpeg2-0.5.1 o [772]libmusicbrainz-5.1.0 o [773]libogg-1.3.5 o [774]libplacebo-7.349.0 o [775]libsamplerate-0.2.2 o [776]libsndfile-1.2.2 o [777]libva-2.22.0 o [778]libvdpau-1.5 o [779]libvdpau-va-gl-0.4.2 o [780]libvorbis-1.3.7 o [781]libvpx-1.15.0 o [782]mlt-7.30.0 o [783]Opus-1.5.2 o [784]Pipewire-1.2.7 o [785]PulseAudio-17.0 o [786]SBC-2.0 o [787]sdl12-compat-1.2.68 o [788]SDL2-2.30.11 o [789]sound-theme-freedesktop-0.8 o [790]SoundTouch-2.3.3 o [791]Speex-1.2.1 o [792]Taglib-2.0.2 o [793]v4l-utils-1.28.1 o [794]Wireplumber-0.5.8 o [795]x264-20250212 o [796]x265-4.1 o [797]xine-lib-1.2.13 o [798]XviD-1.3.7 + [799]43. Utilitários de Áudio o [800]Audacious-4.4.2 o [801]CDParanoia-III-10.2 o [802]kwave-24.12.2 o [803]LAME-3.100 o [804]mpg123-1.32.10 o [805]pavucontrol-6.1 o [806]pnmixer-0.7.2 o [807]vorbis-tools-1.4.2 + [808]44. Utilitários de Vídeo o [809]FFmpeg-7.1 o [810]mpv-0.39.0 o [811]VLC-3.0.21 o [812]xine-ui-0.99.14 + [813]45. Utilitários de Escrita de CD/DVD o [814]Cdrdao-1.2.4 o [815]Cdrtools-3.02a09 o [816]dvd+rw-tools-7.1 o [817]libburn-1.5.6 o [818]libisoburn-1.5.6 o [819]libisofs-1.5.6 * [820]XIII. Impressão, Digitalização e Composição Tipográfica + [821]46. Impressão o [822]Cups-2.4.11 o [823]cups-browsed-2.1.1 o [824]cups-filters-2.0.1 o [825]ghostscript-10.04.0 o [826]Gutenprint-5.3.4 o [827]libcupsfilters-2.1.1 o [828]libppd-2.1.1 + [829]47. Digitalizando o [830]SANE-1.2.1 o [831]Simple-scan-46.0 + [832]48. Standard Generalized Markup Language (SGML) o [833]sgml-common-0.6.3 o [834]docbook-3.1-dtd o [835]docbook-4.5-dtd o [836]OpenSP-1.5.2 o [837]OpenJade-1.3.2 o [838]docbook-dsssl-1.79 o [839]DocBook-utils-0.6.14 + [840]49. Linguagem Extensível de Marcação (XML) o [841]docbook-xml-4.5 o [842]docbook-xml-5.0 o [843]docbook-xsl-nons-1.79.2 o [844]docbook-xsl-ns-1.79.2 o [845]itstool-2.0.7 o [846]xmlto-0.0.29 + [847]50. PostScript o [848]Enscript-1.6.6 o [849]ePDFView-gtk3-20200814 o [850]fop-2.10 o [851]MuPDF-1.25.4 o [852]paps-0.8.0 + [853]51. Composição Tipográfica o [854]Configurando o PATH para TeX Live o [855]install-tl-unx o [856]texlive-20240312-source o [857]asymptote-3.01 o [858]biber-2.20 o [859]dvisvgm-3.4.3 o [860]xindy-2.5.1 * [861]A. Licença da Creative Commons * [862]B. A Licença do MIT * [863]Glossário * [864]Índice Remissivo Prefácio Tendo ajudado com o Linux From Scratch por um curto período, eu percebi que nós estávamos obtendo muitas consultas do tipo como fazer coisas além do sistema LFS base. Na época, a única assistência oferecida especificamente relacionada ao LFS eram as dicas do LFS ([865]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 [866]Introdução do livro. Divirta-se usando o BLFS. Mark Hymers markh 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 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 linuxfromscratch.org Editor do BLFS (Junho de 2004–Dezembro de 2006 e Fevereiro de 2011–agor a) 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 linuxfromscratch.org Editor do BLFS (Dezembro de 2006–Janeiro de 2011) Introito Esta versão do livro é destinada para ser usada quando se construir sobre um sistema construído usando o livro LFS. Cada esforço tem sido feito para garantir a precisão e a confiabilidade das instruções. Muitas pessoas entendem que, ao se usar as instruções neste livro depois de construir a versão atual estável ou de desenvolvimento do LFS, fornece um sistema Linux estável e muito moderno. Aproveite! Randy McMurchy 24 de agosto de 2008 Quem Desejaria Ler este Livro Este livro é principalmente destinado para aqueles(as) que tenham construído um sistema baseado no livro LFS. Ele também será útil para aqueles(as) que estiverem usando outras distribuições e, por uma razão ou outra, quiserem construir manualmente "software" e necessitarem de alguma assistência. Observe que o material contido neste livro, em particular as listagens de dependências, presume que você esteja usando um sistema LFS básico com cada pacote listado no livro LFS já instalado e configurado. O BLFS pode ser usado para criar uma gama de sistemas diversos e, assim, a audiência alvo provavelmente é tão ampla quanto aquela do livro LFS. Se você achou o LFS útil, [então] você também deveria gostar deste! Desde o lançamento 7.4, a versão do livro BLFS tem correspondido com a versão do livro LFS. Este livro possivelmente seja incompatível com um lançamento anterior ou posterior do livro LFS. Organização Este livro está dividido nas seguintes quatorze partes. Parte I - Introdução Essa parte contém informações essenciais que são necessárias para compreender o restante do livro. Parte II - Pós Configuração do LFS e Software Extra Aqui nós apresentamos problemas básicos de configuração e segurança. Também discutimos uma gama de editores de texto, sistemas de arquivos e "shells" que não são cobertos no livro LFS principal. Parte III - Bibliotecas e Utilitários Gerais Nessa seção abordamos bibliotecas que frequentemente são necessárias ao longo do livro, bem como utilitários de sistema. Informações relativas a programação (incluindo a recompilação do GCC para suportar toda a gama dele de linguagens) conclui essa parte. Parte IV - Rede Básica de Comunicação Aqui explicamos como conectar-se a uma rede de intercomunicação quando você não estiver usando a configuração simples de IP estático apresentada no livro principal do LFS. Bibliotecas de rede de intercomunicação e ferramentas de linha de comando de rede de intercomunicação também são abordadas aqui. Parte V - Servidores Aqui mostramos como configurar o correio e outros servidores (como FTP, Apache, etc.). Parte VI - X + Gerenciadores de Janela Essa parte explica como configurar um Sistema de Janelas X básico, junto com algumas bibliotecas X genéricas e gerenciadores de janelas. Parte VII - KDE Essa parte é para aqueles(as) que desejam usar o K Desktop Environment, ou partes dele. Parte VIII - GNOME GNOME é a alternativa principal ao KDE na arena do Ambiente de Área de Trabalho. Parte IX - Xfce Xfce é uma alternativa peso leve ao GNOME e ao KDE. Parte X - LXQt LXDE é outra alternativa peso leve ao GNOME e ao KDE. Parte XI - Mais Software do X Os aplicativos do "Office" e os navegadores gráficos da "web" são importantes para a maioria das pessoas. Eles e alguns softwares X genéricos podem ser encontrados nessa parte do livro. Parte XII - Multimídia Aqui abordamos bibliotecas e controladores multimídia, juntamente com alguns aplicativos de áudio, vídeo e gravação de CD. Parte XIII - Impressão, Digitalização e Composição de Texto (PST) Essa parte cobre o manuseio de documentos, desde aplicativos como Ghostscript, CUPS e DocBook, até o texlive. Anexos Os Anexos apresentam informações que não pertencem ao corpo do livro; eles estão incluídos como material de referência. O glossário de siglas é um recurso útil. Parte I. Introdução Capítulo 1. Boas vindas ao BLFS O livro Beyond Linux From Scratch foi projetado para continuar a partir de onde o livro LFS parou. Porém, diferente do livro LFS, ele não foi projetado para ser seguido sequenciadamente. Ler a parte [867]Quais seções do livro? deste capítulo deveria ajudar a guiar você ao longo do livro. Por favor, leia cuidadosamente a maior parte desta parte do livro, pois ela explica algumas das convenções usadas ao longo do livro. Quais Seções do Livro Eu Quero? Ao contrário do livro Linux From Scratch, o BLFS não foi projetado para ser seguido de maneira linear. O LFS fornece instruções sobre como criar um sistema básico que pode se tornar qualquer coisa, desde um servidor "web" até um sistema multimídia de área de trabalho. O BLFS tenta orientá-lo(a) no processo de passagem do sistema básico até o teu destino pretendido. A escolha está muito envolvida. Todos(as) que lerem este livro vão querer ler certas seções. A [868]Introdução que você está lendo atualmente contém informações genéricas. Tome nota especial das informações no [869]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 [870]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 ([871]Capítulo 4, Segurança), Sistemas de Arquivos ([872]Capítulo 5, Sistemas de Arquivos e Gerenciamento de Disco - incluindo "GRUB" para "UEFI"), Editores de Texto ([873]Capítulo 6, Editores de Texto) e "Shells" ([874]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 [875]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 [876]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 [877]Rede de Intercomunicação. Ela lida com a conexão à Internet ou à sua "LAN" ([878]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 ([879]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 [880]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 [881]Componentes Gráficos. Essa parte também trata de algumas bibliotecas genéricas baseadas no X ([882]Capítulo 25, Bibliotecas Gráficas de Ambiente). Depois disso, [883]KDE, [884]GNOME, [885]Xfce e [886]LXQt recebem as próprias partes deles, seguidas por uma relativa a [887]Software do X. O livro então passa a lidar com pacotes [888]Multimídia. Observe que muitas pessoas possivelmente queiram usar as instruções [889]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 [890]Impressão, Digitalização e Composição Tipográfica. Isso é útil para a maioria das pessoas com sistemas de área de trabalho, mas mesmo aqueles(as) que estiverem criando sistemas dedicados de servidores possivelmente achem-na útil. Esperamos que você goste de usar o BLFS. Que você realize seu sonho de construir o sistema Linux perfeitamente personalizado! Convenções Usadas neste Livro Convenções Tipográficas Para facilitar o acompanhamento, diversas convenções são usadas ao longo do livro. Aqui estão alguns exemplos: ./configure --prefix=/usr Essa forma de texto deveria ser digitada exatamente como mostrado, salvo indicação em contrário no texto ao redor. Também é usado para identificar referências a comandos específicos. install-info: unknown option `--dir-file=/mnt/lfs/usr/info/dir' Essa forma de texto (fonte de largura fixa) mostra a saída gerada de tela, provavelmente o resultado da emissão de um comando. Também é usada para mostrar nomes de arquivos como /boot/grub/grub.conf Nota Por favor, configure teu navegador para exibir texto de largura fixa com uma boa fonte mono espaçada, com a qual você consiga distinguir claramente os glifos de Il1 ou O0. Ênfase Essa forma de texto é usada para diversos fins, mas principalmente para enfatizar pontos importantes, ou para dar exemplos do que digitar. [891]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. [892]seamonkey-2.53.20 Essa forma de texto é usada para links internos para o livro, como outra seção que descreve um pacote diferente. cat > $LFS/etc/group << "EOF" root:x:0: bin:x:1: ...... EOF Esse estilo é usado principalmente ao criar arquivos de configuração. O primeiro comando (em negrito) diz ao sistema para criar o arquivo $LFS/etc/group a partir do que for digitado nas linhas seguintes, até que a sequência "EOF" seja encontrada. Portanto, toda essa seção geralmente é digitada exatamente como mostrada. Lembre-se, copiar e colar é seu(a) amigo(a)! Essa forma de texto é usada para encapsular o texto que deveria ser modificado e não é para ser digitado conforme mostrado, nem copiado e colado. Os colchetes angulares não são parte do texto literal; eles são parte da substituição. root Essa forma de texto é usada para mostrar uma referência específica a um(a) usuário(a) ou grupo do sistema nas instruções. Convenções Usadas para Dependências de Pacote Quando novos pacotes são criados, os(as) autores(as) do logiciário dependem de trabalhos anteriores. Para a finalidade de construir um pacote no BLFS, essas dependências precisam ser construídas antes que o pacote desejado possa ser compilado. Para cada pacote, os pré-requisitos estão listados em uma ou mais seções separadas: Exigidas, Recomendadas e Opcionais. Dependências Exigidas Essas dependências são o mínimo necessário para construir o pacote. Pacotes no LFS e as dependências exigidas desses pacotes exigidos estão omitidos dessa lista. Lembre-se sempre de verificar dependências aninhadas. Se uma dependência for considerada “tempo de execução”, ela não será necessária para construir o pacote, mas somente para usá-lo depois da instalação. Dependências Recomendadas Essas são dependências que os(as) editores(as) do BLFS determinaram serem importantes para fornecer recursos razoáveis para o pacote. Se uma dependência recomendada não for considerada “tempo de execução”, as instruções de instalação do pacote assumem que ela está instalada. Se não estiver instalada, as instruções possivelmente exijam modificações para acomodar o pacote ausente. Uma dependência de “tempo de execução” recomendada não precisa ser instalada antes de construir o pacote, mas precisa ser construída posteriormente para executar o pacote com capacidades razoáveis. Dependências Opcionais Essas são dependências que o pacote possivelmente use. A integração de dependências opcionais possivelmente seja automática pelo pacote, ou etapas adicionais não apresentadas pelo BLFS possivelmente sejam necessárias. Dependências opcionais são, ocasionalmente, listadas sem instruções BLFS explícitas. Nesse caso, você mesmo(a) precisa determinar como realizar a instalação. Convenções Usadas para Opções de Configuração do Núcleo Alguns pacotes exigem opções específicas de configuração do núcleo. O esquema geral para esses se parece com isto: Master section ---> Subsection ---> [*] Required parameter [REQU_PAR] <*> Required parameter (not as module) [REQU_PAR_NMOD] <*/M> Required parameter (could be a module) [REQU_PAR_MOD] Required parameter (as a module) [REQU_PAR_MOD_ONLY] < /*/M> Optional parameter [OPT_PAR] < /M> Optional parameter (as a module if enabled) [OPT_PAR_MOD_ONLY] [ ] Incompatible parameter [INCOMP_PAR] < > Incompatible parameter (even as module) [INCOMP_PAR_MOD] [...] na direita fornece o nome simbólico da opção, de forma que você pode facilmente verificar se ela está configurada no teu arquivo config. Observe que o arquivo .config contém um prefixo CONFIG_ antes de todos os nomes simbólicos. O significado das várias entradas é: Seção mestre item do topo do menu Subseção item do submenu Parâmetro exigido a opção pode ou estar integrada ou não selecionada: ela precisa ser selecionada Parâmetro exigido (não como módulo) a opção pode ser integrada, um módulo ou não selecionada ("tri-state"): ela precisa ser selecionada como integrada Parâmetro exigido (poderia ser um módulo) a opção pode ser integrada, um módulo, ou não selecionada: ela precisa ser selecionada, ou como integrada ou como um módulo Parâmetro exigido (como um módulo) a opção pode ser integrada, um módulo, ou não selecionada: ela precisa ser selecionada como um módulo; selecioná-la como integrada possivelmente cause efeitos indesejados Parâmetro opcional a opção pode ser integrada, um módulo, ou não selecionada: ela possivelmente seja selecionada como um módulo ou integrada se você precisar dela para controlar o hardware ou recursos opcionais do núcleo Parâmetro opcional (como um módulo se habilitado) a opção pode ser integrada, um módulo, ou não selecionada: ela possivelmente seja selecionada como um módulo se você precisar dela para controlar o hardware ou recursos opcionais do núcleo, mas selecioná-la como integrada possivelmente cause efeitos indesejados Parâmetro incompatível a opção pode ser ou integrada ou não selecionada: ela precisa não ser selecionada Parâmetro incompatível (mesmo como módulo) a opção pode ser integrada, um módulo ou não selecionada: ela precisa não ser selecionada Observe que, dependendo de outras seleções, os colchetes angulares (<>) no menu de configuração possivelmente apareçam como chaves ({}), se a opção não puder ser desmarcada; ou mesmo traços (-*- ou -M-), quando a escolha for imposta. O texto de ajuda descrevente da opção especifica as outras seleções das quais essa opção depende e como aquelas outras seleções são configuradas. A letra em azul é a tecla de atalho para essa opção. Se você estiver executando make menuconfig, você pode pressionar uma tecla para percorrer rapidamente todas as opções com essa tecla como a tecla de atalho na tela. Valores da UPC no BLFS Assim como no LFS, cada pacote no BLFS tem um tempo de construção listado em Unidades Padrão de Construção ("UPCs"). Esses tempos são relativos ao tempo que levou para construir "binutils" no LFS e são destinados a fornecer algumas dicas sobre quanto tempo levará para construir um pacote. A maioria dos tempos listados é para um processador ou núcleo para construir o pacote. Em alguns casos, compilações grandes e de longa duração testadas em sistemas de múltiplos núcleos tem tempos de "UPC" listados com comentários como '(paralelismo=4)'. Esses valores indicam que o teste foi feito usando vários núcleos. Observe que, embora isso acelere a construção em sistemas com o "hardware" apropriado, a aceleração não é linear e, até certo ponto, depende do pacote individual e do "hardware" específico usado. Para pacotes que usam "Ninja" (ou seja, qualquer coisa que use "Meson") ou "Rust", por padrão todos os núcleos são usados; comentários semelhantes serão vistos em tais pacotes mesmo quando o tempo de construção for mínimo. Mesmo que uma construção paralela leve mais de quinze (15) "UPCs", em certas máquinas o tempo possivelmente seja consideravelmente maior, mesmo quando a construção não usa troca. Em particular, diferentes microarquiteturas construirão alguns arquivos a diferentes velocidades relativas, e isso pode introduzir atrasos quando certos alvos do "Make" aguardam que outro arquivo seja criado. Onde uma construção grande usa muitos arquivos "C++", os processadores com Multi Camadas Simultâneas compartilharão a Unidade de Ponto Flutuante e podem levar quarenta e cinco inteiros por cento (45%) mais tempo que ao usar quatro núcleos 'principais' (medido em um Intel i7 usando o conjunto de tarefas e mantendo os outros núcleos ociosos). Alguns pacotes não suportam construções paralelas; para esses, o comando "make" precisa especificar "-j1". Os pacotes que são conhecidos por imporem tais limites estão assim marcados no texto. Versão do Livro Esta é a versão do Livro do BLFS 12.3 datada de 05 de março de 2025. Esta é a ramificação 12.3 do livro do BLFS, atualmente direcionando para o livro 12.3 do LFS. Para versões de desenvolvimento, se essa versão for mais antiga que um mês, é provável que teu espelho não tenha sido sincronizado recentemente e uma versão mais recente provavelmente esteja disponível para transferência ou visualização. Verifique um dos sítios espelhos em [893]https://www.linuxfromscratch.org/mirrors.html para uma versão atualizada. Sítios Espelhos O projeto BLFS tem um número de espelhos configurados mundo afora para tornar mais fácil e mais conveniente para você acessar o sítio da web. Por favor, visite o sítio da web [894]https://www.linuxfromscratch.org/mirrors.html para a lista dos espelhos atuais. Obtendo os Pacotes Fonte Dentro das instruções do BLFS, cada pacote tem duas referências para se encontrar os arquivos fonte para o pacote—um link HTTP e um link FTP (alguns pacotes possivelmente listem somente um desses links). Cada esforço tem sido feito para garantir que esses links estejam corretos. Entretanto, a World Wide Web está em fluxo contínuo. Os pacotes ocasionalmente são movidos ou atualizados e a URL exata especificada nem sempre está disponível. Para contornar esse problema, a Equipe do BLFS, com a assistência do Laboratório do Fonte Aberto da Universidade Estadual do Oregon, tem tornado um sítio HTTP/FTP disponível via espelhos mundo afora. Veja-se [895]https://www.linuxfromscratch.org/blfs/download.html#sources para uma lista. Esses sítios tem todos os fontes das versões exatas dos pacotes usados no BLFS. Se você não puder encontrar o pacote do BLFS que precisar nos endereços listados, [então] obtenha-o a partir desses sítios. Nós gostaríamos de pedir um favor, entretanto. Apesar de esse ser um recurso público para você usar, por favor, não abuse dele. Nós já tivemos um indivíduo sem noção transferindo cerca de três (03) GB de dados, incluindo múltiplas cópias dos mesmos arquivos que são colocados em locais diferentes (via links simbólicos) para tornar mais fácil a procura do pacote certo. Essa criatura claramente não sabia que arquivos precisava e transferiu tudo. O melhor lugar para transferir arquivos é o sítio ou sítios configurados pelo(a) desenvolvedor(a) do código fonte. Por favor, tente lá primeiro. Registro das Mudanças Lançamento atual: 12.3 – 05 de março de 2025 Entradas do Registro das Mudanças: * 5 março 2025 + [bdubbs] - Lançamento do BLFS-12.3. * 4 março 2025 + [renodr] - Atualização para libreoffice-25.2.1.2. Corrige [896]#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 [897]#21127. * 2 março 2025 + [renodr] - Corrigir a suíte de teste do Samba. + [renodr] - Atualização para vte-0.78.4. Corrige [898]#21171. + [bdubbs] - Atualização para vim-9.1.1166 (Atualização de Segurança). Corrige [899]#21172. + [bdubbs] - Atualização para gnumeric-1.12.59. Corrige [900]#21170. + [bdubbs] - Atualização para goffice-0.10.59. Corrige [901]#21169. + [bdubbs] - Atualização para icewm-3.7.1. Corrige [902]#21157. + [bdubbs] - Atualização para postfix-3.10.1. Corrige [903]#21140. + [bdubbs] - Atualização para plasma-6.3.2. Corrige [904]#21153. + [renodr] - Atualização para unrar-7.1.5. Corrige [905]#21098. + [bdubbs] - Atualização para bind9 e bind-utilities-9.20.6. Corrige [906]#21118. + [bdubbs] - Atualização para fltk-1.4.2. Corrige [907]#21142. + [bdubbs] - Atualização para sphinx-8.2.1 (módulo Python). Corrige [908]#21161. + [bdubbs] - Atualização para gi_docgen-2025.3 (módulo Python). Corrige [909]#21160. + [bdubbs] - Atualização para faac-1.31. Corrige [910]#21163. * 1 março 2025 + [bdubbs] - Atualização para power-profiles-daemon-0.30. Corrige [911]#21111. + [bdubbs] - Atualização para libassuan-3.0.2. Corrige [912]#21108. + [bdubbs] - Atualização para xdg-desktop-portal-1.20.0. Corrige [913]#21143. + [bdubbs] - Atualização para libnotify-0.8.4. Corrige [914]#21128. + [renodr] - Atualização para libavif-1.2.0. Corrige [915]#21154. + [bdubbs] - Atualização para sysmon3-3.0.1.. + [bdubbs] - Atualização para libqalculate-5.5.1. Corrige [916]#21148. * 28 fevereiro 2025 + [bdubbs] - Atualização para python-dbusmock-0.34.3 (módulo Python). Corrige [917]#21132. + [renodr] - Atualização para harfbuzz-10.4.0. Corrige [918]#21126. + [bdubbs] - Atualização para fmt-11.1.4. Corrige [919]#21155. + [renodr] - Atualização para dhcpcd-10.2.2. Corrige [920]#21141. + [renodr] - Atualização para glib-2.82.5. Corrige [921]#21125. + [bdubbs] - Atualização para mercurial-6.9.2. Corrige [922]#21117. * 27 fevereiro 2025 + [bdubbs] - Atualização para sentry-sdk-2.22.0 (módulo Python). Corrige [923]#21099. + [bdubbs] - Atualização para sphinx-8.2.0 (módulo Python). Corrige [924]#21114. + [bdubbs] - Atualização para libwww-perl-6.78 (módulo Perl). Corrige [925]#21116. + [bdubbs] - Atualização para Net-DNS-1.50 (módulo Perl). Corrige [926]#21131. + [bdubbs] - Atualização para cargo-c-0.10.11. Corrige [927]#21134. + [bdubbs] - Atualização para rustc-1.85.0. Corrige [928]#21124. + [renodr] - Atualização para userspace-rcu-0.15.1 (liburcu). Corrige [929]#21109. + [renodr] - Atualização para sqlite-3.49.1. Corrige [930]#21113. + [renodr] - Atualização para shadow-4.17.3 (sincronia com LFS). Corrige [931]#21146. + [renodr] - Atualização para systemd-257.3 (sincronia com LFS). Corrige [932]#20838. + [renodr] - Atualização para postgresql-17.4. Corrige [933]#21123. + [renodr] - Atualização para exiv2-0.28.5 (Atualização de Segurança). Corrige [934]#21130. + [renodr] - Atualização para libxml2-2.13.6 (Atualização de Segurança). Corrige [935]#21106. * 26 fevereiro 2025 + [renodr] - Atualização para exim-4.98.1 (Atualização de Segurança). Corrige [936]#21133. * 25 fevereiro 2025 + [bdubbs] - Atualização para openssh-9.9p2 ssh-askpass-9.9p2. Corrige [937]#21104. + [bdubbs] - Atualização para xorg-server-21.1.16 e xwayland-24.1.6. Corrige [938]#21152. * 24 fevereiro 2025 + [bdubbs] - Atualização para qemu-9.2.2. Corrige [939]#21147. + [bdubbs] - Atualização para wireshark-4.4.5. Corrige [940]#21150. * 23 fevereiro 2025 + [renodr] - Corrigir construção do fop novamente com Java 23. + [renodr] - Atualização para FreeRDP-3.12.0. Corrige [941]#21089. + [renodr] - Atualização para asymptote-3.01. Corrige [942]#21103. + [bdubbs] - Atualização para emacs-30.1 (Atualização de Segurança). Corrige [943]#21139. + [renodr] - Atualização para xdg-desktop-portal-gnome-47.3. Corrige [944]#21100. + [bdubbs] - Atualização para postfix-3.9.2. Corrige [945]#21094. + [bdubbs] - Atualização para tigervnc-1.15.0. Corrige [946]#21102. + [bdubbs] - Atualização para icewm-3.7.0. Corrige [947]#21135. * 21 fevereiro 2025 + [bdubbs] - Atualização para wireshark-4.4.4. Corrige [948]#21121. + [bdubbs] - Atualização para vim-9.1.1122 (sincronia com LFS). Corrige [949]#21115. + [bdubbs] - Atualização para menu-cache-1.1.1. Corrige [950]#21107. * 20 fevereiro 2025 + [bdubbs] - Adicionar o pacote zxing-cpp-2.3.0. + [renodr] - Atualização para libppd-2.1.1. Corrige [951]#21120. + [renodr] - Atualização para libcupsfilters-2.1.1. Corrige [952]#21112. + [renodr] - Atualização para xfsprogs-6.13.0. Corrige [953]#21096. + [xry111] - Atualização para samba-4.21.4. Corrige [954]#21095. * 18 fevereiro 2025 + [bdubbs] - Atualização para kde-gear-24.12.2 incluindo kate, falkon e kwave. Corrige [955]#20904. + [bdubbs] - Atualização para kf6-6.11.0. Corrige [956]#20903. * 18 fevereiro 2025 + [bdubbs] - Atualização para xfce4-notifyd-0.9.7. Corrige [957]#21091. + [bdubbs] - Atualização para xfdesktop-4.20.1. Corrige [958]#21101. + [zeckma] - Atualização para thunderbird-128.7.1esr. Corrige [959]#21105. + [bdubbs] - Atualização para qpdf-11.10.1. Corrige [960]#21093. + [bdubbs] - Atualização para libportal-0.9.1. Corrige [961]#21072. + [bdubbs] - Atualização para libblockdev-3.3.0. Corrige [962]#21079. * 17 fevereiro 2025 + [zeckma] - Atualização para node.js-22.14.0. Corrige [963]#21090. + [renodr] - Atualização para sysstat-12.7.7. Corrige [964]#21092. * 16 fevereiro 2025 + [bdubbs] - Atualização para double-conversion-3.3.1. Corrige [965]#21087. + [thomas] - Atualização para btrfs-progs-6.3. Corrige [966]#21086. * 15 fevereiro 2025 + [bdubbs] - Atualização para ruby-3.4.2. Corrige [967]#21088. + [bdubbs] - Atualização para sentry_sdk-2.21.0 (módulo Python). Corrige [968]#21073. + [bdubbs] - Atualização para psutil-7.0.0 (módulo Python). Corrige [969]#21082. + [bdubbs] - Atualização para numpy-2.2.3 (módulo Python). Corrige [970]#21080. + [bdubbs] - Atualização para php-8.4.4. Corrige [971]#21081. + [renodr] - Atualização para cURL-8.12.1. Corrige [972]#21076. + [thomas] - Atualização para dhcpcd-10.2.0. Corrige [973]#21074. + [thomas] - Atualização para postgresql-17.3. Corrige [974]#21085. + [thomas] - Atualização para cifsutils-7.2. Corrige [975]#21083. * 12 fevereiro 2025 + [renodr] - Atualização para ImageMagick-7.1.1-43. Corrige [976]#21071. + [renodr] - Atualização para luajit-20250212. Corrige [977]#21070. + [renodr] - Atualização para x264-20250212. Corrige [978]#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 [979]#21068. + [renodr] - Atualização para vim-9.1.1106 (sincronia com LFS). Corrige [980]#21065. + [renodr] - Atualização para libaom-3.12.0. Corrige [981]#21064. + [renodr] - Atualização para Python-3.13.2 (Atualização de Segurança). Corrige [982]#21018. + [renodr] - Atualização para tk-8.6.16. Corrige [983]#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 [984]#21067. + [renodr] - Arquivar Sub-Identify (Dependência do Módulo Perl). Corrige [985]#21067. + [renodr] - Atualização para cython-3.0.12 (módulo Python). Corrige [986]#21063. + [renodr] - Atualização para gimp-3.0.0-RC3. Corrige [987]#21060. + [renodr] - Atualização para asymptote-2.99. Corrige [988]#21059. + [renodr] - Atualização para gpgme-1.24.2. Corrige [989]#21057. + [renodr] - Atualização para qemu-9.2.1. Corrige [990]#21045. * 11 fevereiro 2025 + [renodr] - Atualizar a versão do Microcode da Intel para 20250211 (Atualização de Segurança). Corrige [991]#21061. + [zeckma] - Atualização para flac-1.5.0. Corrige [992]#21062. + [zeckma] - Atualização para exiv2-0.28.4. Corrige [993]#21058. * 10 fevereiro 2025 + [renodr] - Atualização para thunar-4.20.2. Corrige [994]#21056. + [renodr] - Atualização para file-roller-44.5. Corrige [995]#21055. + [renodr] - Atualização para xkeyboard-config-2.44. Corrige [996]#21054. + [renodr] - Atualização para lxml-5.3.1 (módulo Python). Corrige [997]#21053. + [renodr] - Atualização para lcms2-2.17. Corrige [998]#21052. + [renodr] - Atualização para gegl-0.4.54. Corrige [999]#21051. + [renodr] - Atualização para xfce4-settings-4.20.1. Corrige [1000]#21049. + [renodr] - Atualização para qpdf-11.10.0. Corrige [1001]#21046. + [renodr] - Atualização para lxqt-config-2.1.1. Corrige [1002]#21040. * 9 fevereiro 2025 + [renodr] - Atualização para WebKitGTK-2.46.6 (Atualização de Segurança). Corrige [1003]#21039. + [renodr] - Atualização para libreoffice-25.2.0.3. Corrige [1004]#21036. + [renodr] - Atualização para make-ca-1.15. Corrige [1005]#21048. + [renodr] - Atualização para gnutls-3.8.9 (Atualização de Segurança). Corrige [1006]#21044. + [renodr] - Atualização para asymptote-2.98. Corrige [1007]#21042. + [renodr] - Atualização para wireplumber-0.5.8. Corrige [1008]#21041. + [renodr] - Atualização para gtk-vnc-1.5.0. Corrige [1009]#21038. + [renodr] - Atualização para SPIRV-Headers e SPIRV-Tools 1.4.304.1. Corrige [1010]#21037. + [renodr] - Atualização para FreeRDP-3.11.1. Corrige [1011]#21033. + [renodr] - Corrigir construir Inkscape com poppler-25.02.0. Corrige [1012]#21050. * 8 fevereiro 2025 + [thomas] - Adicionar remendo para corrigir um problema de construção do Kea-dhcp com boost 1.87 ou posterior. Corrige [1013]#21043. * 7 fevereiro 2025 + [bdubbs] - Atualização para talloc-2.4.3. Corrige [1014]#21034. + [bdubbs] - Atualização para mako-1.3.9 (módulo Python). Corrige [1015]#21017. + [bdubbs] - Atualização para hwdata-0.392. Corrige [1016]#21016. + [bdubbs] - Atualização para poppler-25.02.0. Corrige [1017]#21015. + [bdubbs] - Atualização para libxkbcommon-1.8.0. Corrige [1018]#21014. + [bdubbs] - Atualização para abseil-cpp-20250127.0. Corrige [1019]#21013. + [bdubbs] - Atualização para tcsh-6.24.15. Corrige [1020]#21012. + [renodr] - Atualização para FreeRDP-3.11.0. Corrige [1021]#21033. + [renodr] - Atualização para gcr-4.3.1. Corrige [1022]#21030. + [renodr] - Atualização para xwayland-24.1.5. Corrige [1023]#21029. + [renodr] - Atualização para pcre2-10.45. Corrige [1024]#21028. + [renodr] - Atualização para nss-3.108. Corrige [1025]#21027. + [zeckma] - Atualização para sqlite-autoconf-3490000 (3.49.0). Corrige [1026]#21035. * 6 fevereiro 2025 + [renodr] - Atualização para firefox-128.7.0esr (Atualização de Segurança). Corrige [1027]#21009. + [renodr] - Atualização para thunderbird-128.7.0esr (Atualização de Segurança). Corrige [1028]#21021. + [renodr] - Atualização para cURL-8.12.0 (Atualização de Segurança). Corrige [1029]#21020. + [renodr] - Atualização para libtasn1-4.20.0 (Atualização de Segurança). Corrige [1030]#21032. + [renodr] - Atualização para mariadb-11.4.5 (Atualização de Segurança). Corrige [1031]#21022. * 5 fevereiro 2025 + [renodr] - Atualização para mutter-47.5. Corrige [1032]#21025. + [renodr] - Atualização para gnome-shell-extensions-47.4. Corrige [1033]#21024. + [renodr] - Atualização para gnome-shell-47.4. Corrige [1034]#21023. + [renodr] - Atualização para nautilus-47.2. Corrige [1035]#21019. + [renodr] - Atualização para gnome-control-center-47.4. Corrige [1036]#21011. + [renodr] - Atualização para gnome-system-monitor-47.1. Corrige [1037]#21002. + [renodr] - Atualização para gdb-16.2. Corrige [1038]#21001. * 4 fevereiro 2025 + [renodr] - Atualização para intel-gmmlib-22.5.5. Corrige [1039]#20972. + [renodr] - Atualização para intel-media-24.4.4. Corrige [1040]#20973. + [bdubbs] - Atualização para xhost-1.0.10 (aplicação Xorg). Corrige [1041]#21005. + [bdubbs] - Atualização para libX11-1.8.11 (biblioteca do Xorg). Corrige [1042]#21004. + [bdubbs] - Atualização para protobuf-c-1.5.1. Corrige [1043]#21003. + [renodr] - Atualização para lximage-qt-2.1.1. Corrige [1044]#20989. + [renodr] - Atualização para lxqt-runner-2.1.2. Corrige [1045]#20990. * 3 fevereiro 2025 + [bdubbs] - Atualização para xfce4-panel-4.20.3. Corrige [1046]#21007. + [bdubbs] - Atualização para libxfce4windowing-4.20.2. Corrige [1047]#21006. * 2 fevereiro 2025 + [renodr] - Atualização para vim-9.1.1071 (Atualização de Segurança). Corrige [1048]#21008. + [renodr] - Atualização para qt6 e qtwebengine 6.8.2 (Atualização de Segurança). Corrige [1049]#20998. + [thomas] - Atualização para libslirp-4.9.0. Corrige [1050]#20986. + [thomas] - Atualização para which-2.23. Corrige [1051]#21000. * 1 fevereiro 2025 + [renodr] - Atualização para BIND-9.20.5 (Atualização de Segurança). Corrige [1052]#20984. + [renodr] - Atualização para epiphany-47.3.1. Corrige [1053]#20999. + [renodr] - Atualização para libadwaita-1.6.4. Corrige [1054]#20997. + [renodr] - Atualização para gnome-maps-47.4. Corrige [1055]#20988. + [thomas] - Atualização para gparted-1.7.0.. Corrige [1056]#20994. + [renodr] - Atualização para libshumate-1.3.2. Corrige [1057]#20987. + [renodr] - Atualizar a pilha do gstreamer to 1.24.12. Corrige [1058]#20991. + [renodr] - Atualização para Text-BibTeX-0.91 (módulo Perl). Corrige [1059]#20993. + [renodr] - Atualização para SPIRV-LLVM-Translator-19.1.4. Corrige [1060]#20996. + [renodr] - Atualização para wayland-protocols-1.40. Corrige [1061]#20992. * 31 janeiro 2025 + [xry111] - Atualização para rustc-1.84.1.. Corrige [1062]#20995. * 29 janeiro 2025 + [xry111] - Atualização para attrs-25.1.0, hatchling-1.27.0, meson_python-0.17.1, pyproject-metadata-0.9.0, trove-classifiers-2025.1.15.22, typogrify-2.1.0 (dependências Python). Endereça [1063]#18562. + [xry111] - Arquivar mandoc. Corrige [1064]#20975. * 28 janeiro 2025 + [zeckma] - Atualização para cmake-3.31.5. Corrige [1065]#20983. + [renodr] - Atualização para Business-ISSN-1.008 (módulo Perl). Corrige [1066]#20981. + [renodr] - Atualização para gtk+-3.24.48. Corrige [1067]#20978. + [renodr] - Atualização para dovecot-2.4.0. Corrige [1068]#20971. + [renodr] - Atualização para OpenJDK-23.0.2 (Atualização de Segurança). Corrige [1069]#20968. * 27 janeiro 2025 + [zeckma] - Atualização para thunderbird-128.6.1esr. Corrige [1070]#20980. + [bdubbs] - Atualização para fmt-11.1.3. Corrige [1071]#20979. + [bdubbs] - Atualização para mupdf-1.25.4. Corrige [1072]#20974. + [bdubbs] - Atualização para libpng-1.6.46. Corrige [1073]#20970. + [bdubbs] - Atualização para fltk-1.4.1. Corrige [1074]#20666. + [zeckma] - Vulkan-Loader: Rebaixar Wayland para Recomendado. * 24 janeiro 2025 + [bdubbs] - Atualização para which-2.22. Corrige [1075]#20969. + [renodr] - Atualização para libseccomp-2.6.0. Corrige [1076]#20965. + [renodr] - Atualização para libpaper-2.2.6. Corrige [1077]#20964. + [renodr] - Atualização para abseil-cpp-20240722.1 (Atualização de Segurança). Corrige [1078]#20963. + [bdubbs] - Atualização para httpd-2.4.63. Corrige [1079]#20967. + [bdubbs] - Atualização para mc-4.8.33. Corrige [1080]#20966. * 22 janeiro 2025 + [bdubbs] - Atualização para mupdf-1.25.3. Corrige [1081]#20962. + [zeckma] - Atualização para mesa-24.3.4. Corrige [1082]#20960. + [renodr] - Atualização para xdg-desktop-portal-gnome-47.2. Corrige [1083]#20956. + [zeckma] - Atualização para node.js-22.13.1 (Atualização de Segurança). Corrige [1084]#20957. * 20 janeiro 2025 + [bdubbs] - Atualização para mlt-7.30.0. Corrige [1085]#20955. + [bdubbs] - Atualização para sentry_sdk-2.20.0 (módulo Python). Corrige [1086]#20684. * 19 janeiro 2025 + [xry111] - Atualização para cargo-c-0.10.9. Corrige [1087]#20954. + [renodr] - Atualização para pango-1.56.1. Corrige [1088]#20953. + [renodr] - Atualização para numpy-2.2.2 (módulo Python). Corrige [1089]#20952. + [renodr] - Atualização para gdb-16.1. Corrige [1090]#20951. * 18 janeiro 2025 + [renodr] - Atualização para libgee-0.20.8. Corrige [1091]#20946. + [renodr] - Atualização para libsoup-3.6.4. Corrige [1092]#20945. + [renodr] - Atualização para mercurial-6.9.1. Corrige [1093]#20943. + [bdubbs] - Atualização para unrar-7.1.3. Corrige [1094]#20950. + [bdubbs] - Atualização para libexif-0.6.25. Corrige [1095]#20949. * 17 janeiro 2025 + [zeckma] - Atualização para fontconfig-2.16.0. Corrige [1096]#20948. + [bdubbs] - Atualização para php-8.4.3. Corrige [1097]#20947. * 16 janeiro 2025 + [renodr] - Atualização para pangomm-2.56.1. Corrige [1098]#20942. + [renodr] - Atualização para libsecret-0.21.6. Corrige [1099]#20940. + [renodr] - Atualização para rsync-3.4.1. Corrige [1100]#20939. + [renodr] - Atualização para libuv-1.50.0. Corrige [1101]#20937. + [renodr] - Atualização para LVM2-2.03.30. Corrige [1102]#20936. + [renodr] - Atualização para libwnck-43.2. Corrige [1103]#20933. + [renodr] - Atualização para gnome-color-manager-3.36.2. Corrige [1104]#20932. + [renodr] - Atualização para sqlite-3.48.0. Corrige [1105]#20931. + [renodr] - Atualização para shadow-4.17.2 (sincronia com LFS). Corrige [1106]#20911. + [renodr] - Atualização para pango-1.56.0. Corrige [1107]#20799. + [xry111] - Atualização para cbindgen-0.28.0. Corrige [1108]#20938. + [xry111] - Atualização para libclc-19.1.7. Corrige [1109]#20462. + [xry111] - Atualização para cargo-c-0.10.8. Corrige [1110]#20914. + [xry111] - Atualização para Rustc-1.84.0. Corrige [1111]#20897. + [xry111] - Atualização para LLVM-19.1.7. Corrige [1112]#20465. * 15 janeiro 2025 + [renodr] - Atualização para mutter-47.4. Corrige [1113]#20927. + [renodr] - Atualização para FreeRDP-3.10.3. Corrige [1114]#20926. + [renodr] - Atualização para gnome-shell e gnome-shell-extensions 47.3. Corrige [1115]#20925. + [renodr] - Atualização para libqalculate-5.5.0. Corrige [1116]#20923. + [renodr] - Atualização para glslc-2024.4. Corrige [1117]#20935. + [renodr] - Atualização para glslang-15.1.0. Corrige [1118]#20804. + [renodr] - Atualização para Vulkan-Headers e Vulkan-Loader 1.4.304.0. Corrige [1119]#20679. + [renodr] - Atualização para SPIRV-Headers e SPIRV-Tools 1.4.304.0. Corrige [1120]#20922. + [renodr] - Atualização para polkit-126. Corrige [1121]#20921. * 14 janeiro 2025 + [renodr] - Atualização para vim-9.1.1016 (Atualização de Segurança). Corrige [1122]#20930. + [renodr] - Atualização para git-2.48.1 (Atualização de Segurança). Corrige [1123]#20928. + [renodr] - Atualização para rsync-3.4.0 (Atualização de Segurança). Corrige [1124]#20929. + [zeckma] - Atualização para elogind-255.17. Corrige [1125]#20924. * 13 janeiro 2025 + [renodr] - Atualização para fmt-11.1.2. Corrige [1126]#20919. + [renodr] - Atualização para lxqt-runner-2.1.1. Corrige [1127]#20918. + [renodr] - Atualização para lxqt-panel-2.1.4. Corrige [1128]#20917. + [renodr] - Atualização para gnome-online-accounts-3.52.3.1. Corrige [1129]#20916. + [renodr] - Atualização para libsoup-3.6.3. Corrige [1130]#20915. + [renodr] - Atualização para Text-CSV-2.05 e Text-CSV_XS-1.59 (Módulos Perl). Corrige [1131]#20913. + [renodr] - Atualização para harfbuzz-10.2.0. Corrige [1132]#20912. + [renodr] - Atualização para at-spi2-core-2.54.1. Corrige [1133]#20910. + [renodr] - Atualização para cmake-3.31.4. Corrige [1134]#20907. + [renodr] - Atualização para gnome-control-center-47.3. Corrige [1135]#20906. + [renodr] - Atualização para xdg-desktop-portal-gtk-1.15.2. Corrige [1136]#20902. + [renodr] - Atualização para libadwaita-1.6.3. Corrige [1137]#20901. + [renodr] - Atualizar as instruções da suíte de teste para doxyqml. + [renodr] - Atualização para doxygen-1.13.2. Corrige [1138]#20900. + [renodr] - Atualização para libpng-1.6.45. Corrige [1139]#20884. * 12 janeiro 2025 + [renodr] - Atualização para opencv-4.11.0. Corrige [1140]#20898. * 11 janeiro 2025 + [thomas] - Atualização para git-2.48.0. Corrige [1141]#20909. + [thomas] - Atualização para upower-1.90.7. Corrige [1142]#20899. * 10 janeiro 2025 + [rahul] - Atualização para gtk4-4.16.12. Corrige [1143]#20859. + [rahul] - Atualização para mesa-24.3.3. Corrige [1144]#20858. + [rahul] - Atualização para hwdata-0.391. Corrige [1145]#20857. * 9 janeiro 2025 + [renodr] - Atualização para pulseaudio-qt-1.7.0. Corrige [1146]#20896. + [renodr] - Atualização para plasma-wayland-protocols-1.16.0. Corrige [1147]#20895. + [renodr] - Atualização para cups-browsed-2.1.1. Corrige [1148]#20893. + [renodr] - Atualização para glib-networking-2.80.1. Corrige [1149]#20892. + [renodr] - Atualização para wireshark-4.4.3. Corrige [1150]#20891. + [renodr] - Atualização para protobuf-29.3. Corrige [1151]#20890. * 8 janeiro 2025 + [zeckma] - Atualização para node.js-22.13.0. Corrige [1152]#20883. + [renodr] - Atualização para libreoffice-24.8.4.2 (Atualização de Segurança). Corrige [1153]#20821. + [renodr] - Atualização para poppler-25.01.0. Corrige [1154]#20855. + [renodr] - Atualização para dolphin-24.12.0.1. Corrige [1155]#20889. + [renodr] - Atualização para cachecontrol-0.14.2 (Módulos Python). Corrige [1156]#20886. + [renodr] - Atualização para highlight-4.15. Corrige [1157]#20885. + [renodr] - Atualização para umockdev-0.19.1. Corrige [1158]#20854. + [renodr] - Atualização para doxygen-1.13.1. Corrige [1159]#20852. + [renodr] - Atualização para gimp-3.0.0-RC2. Corrige [1160]#20847. + [renodr] - Atualização para Thunderbird-128.6.0esr (Atualização de Segurança). Corrige [1161]#20880. + [thomas] - Atualização para ed-1.21. Corrige [1162]#20882. + [thomas] - Atualizar suíte gstreamer para 1.24.11. Corrige [1163]#20877. + [renodr] - Atualização para Firefox (e Spidermonkey) 128.6.0esr (Atualização de Segurança). Corrige [1164]#20871. + [renodr] - Atualização para Seamonkey-2.53.20 (Atualização de Segurança). Corrige [1165]#20888. * 7 janeiro 2025 + [zeckma] - Atualização para xinit-1.4.3. Corrige [1166]#20868. + [zeckma] - Atualização para xf86-input-synaptics-1.10.0 (controlador Xorg). Corrige [1167]#20867. + [zeckma] - Atualização para libinput-1.27.1 (controlador Xorg). Corrige [1168]#20875. + [renodr] - Atualização para gtk-vnc-1.4.0. Corrige [1169]#20876. + [renodr] - Atualização para samba-4.21.3. Corrige [1170]#20874. + [renodr] - Atualização para Text-BibTeX-0.90 (módulo Perl). Corrige [1171]#20873. + [renodr] - Atualização para ExtUtils-LibBuilder-0.09 (Dependência de Módulo Perl. Corrige [1172]#20881. + [renodr] - Atualização para pygments-2.19.1 (módulo Python). Corrige [1173]#20866. + [renodr] - Atualização para dvisvgm-3.4.3. Corrige [1174]#20865. + [renodr] - Atualização para gnome-maps-47.3. Corrige [1175]#20864. + [renodr] - Atualização para libshumate-1.3.1. Corrige [1176]#20863. + [renodr] - Atualização para Business-ISBN-3.011 (módulo Perl). Corrige [1177]#20862. + [renodr] - Atualização para liblinear-248. Corrige [1178]#20861. + [renodr] - Atualização para fetchmail-6.5.2. Corrige [1179]#20845. + [renodr] - Atualização para gnome-calculator-47.1. Corrige [1180]#20813. + [renodr] - Atualização para tinysparql-3.8.2. Corrige [1181]#20810. + [renodr] - Atualização para stunnel-5.74. Corrige [1182]#20805. + [renodr] - Atualização para FreeRDP-3.10.2. Corrige [1183]#20797. + [renodr] - Atualização para localsearch-3.8.2. Corrige [1184]#20788. + [renodr] - Atualização para nautilus-47.1. Corrige [1185]#20780. * 6 janeiro 2025 + [zeckma] - Atualização para xterm-397. Corrige [1186]#20869. * 5 janeiro 2025 + [thomas] - Atualização para evolution-data-server-3.54.3 e evolution-3.54.3. Corrige [1187]#20860. * 3 janeiro 2025 + [pierre] - Atualização para blocaled-0.7. Corrige [1188]#20856. * 2 janeiro 2025 + [renodr] - Atualização para Firefox-128.5.2esr (incluindo Spidermonkey). Corrige [1189]#20795. + [renodr] - Atualização para Thunderbird-128.5.2esr (Atualização de Segurança). Corrige [1190]#20794. + [renodr] - Atualização para WebKitGTK-2.46.5 (Atualização de Segurança). Corrige [1191]#20815. + [renodr] - Atualização para cURL-8.11.1 (Atualização de Segurança). Corrige [1192]#20790. + [thomas] - Atualização para SDL2-2.30.11. Corrige [1193]#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 [1194]#20853. + [bdubbs] - Atualização para pyparsing-3.2.1 (módulo Python). Corrige [1195]#20849. + [bdubbs] - Atualização para SPIRV-LLVM-Translator-19.1.3. Corrige [1196]#20848. + [bdubbs] - Atualização para nettle-3.10.1. Corrige [1197]#20844. * 31 dezembro 2024 + [renodr] - Atualização para dbus-1.16.0 (sincronia com LFS). Corrige [1198]#20812. + [bdubbs] - Atualização para shadow-4.17.1. Corrige [1199]#20832. + [thomas] - Atualização para thunar-4.20.1. Corrige [1200]#20846. * 28 dezembro 2024 + [bdubbs] - Atualização para doxygen-1.13.0. Corrige [1201]#20843. + [bdubbs] - Atualização para Net-DNS-1.49 (módulo Perl). Corrige [1202]#20842. + [bdubbs] - Atualização para gegl-0.4.52. Corrige [1203]#20841. + [bdubbs] - Atualização para umockdev-0.19.0. Corrige [1204]#20840. + [bdubbs] - Atualização para ruby-3.4.1. Corrige [1205]#20834. + [bdubbs] - Atualização para fmt-11.1.1. Corrige [1206]#20833. * 27 dezembro 2024 + [bdubbs] - Atualização para lxqt-session-2.1.1. Corrige [1207]#20831. + [bdubbs] - Atualização para cracklib-2.10.3. Corrige [1208]#20829. + [bdubbs] - Atualização para python_dbusmock-0.34.2. Corrige [1209]#20827. + [bdubbs] - Atualização para libportal-0.9.0. Corrige [1210]#20825. + [bdubbs] - Atualização para wayland-protocols-1.39. Corrige [1211]#20823. + [thomas] - Atualização para xfce4-terminal-1.1.4. Corrige [1212]#20837. + [thomas] - Atualização para ristretto-0.13.3. Corrige [1213]#20836. + [thomas] - Atualização para parole-4.18.2. Corrige [1214]#20835. * 26 dezembro 2024 + [thomas] - Atualização para libical-3.0.19. Corrige [1215]#20830. + [thomas] - Atualização para liburcu-0.15.0. Corrige [1216]#20822. * 24 dezembro 2024 + [zeckma] - Atualização para cmake-3.31.3. Corrige [1217]#20828. * 22 dezembro 2024 + [renodr] - Atualização para numpy-2.2.1 (módulo Python). Corrige [1218]#20826. + [renodr] - Atualização para xorg-server-21.1.15. Corrige [1219]#20814. + [thomas] - Atualização para nano-8.3. Corrige [1220]#20824. * 21 dezembro 2024 + [zeckma] - Atualização para mesa-24.3.2. Corrige [1221]#20820. * 20 dezembro 2024 + [bdubbs] - Atualização para psutil-6.1.1 (módulo Python). Corrige [1222]#20819. + [bdubbs] - Atualização para php-8.4.2. Corrige [1223]#20818. + [bdubbs] - Atualização para libwebp-1.5.0. Corrige [1224]#20817. * 19 dezembro 2024 + [bdubbs] - Atualização para protobuf-29.2. Corrige [1225]#20816. + [xry111] - Atualização para Gimp-3.0.0-RC1. Corrige [1226]#20634. * 17 dezembro 2024 + [bdubbs] - Atualização para xfce-4.20. Corrige [1227]#20811. + [thomas] - Atualização para mpg123-1.32.10. Corrige [1228]#20809. * 16 dezembro 2024 + [bdubbs] - Atualização para vim-9.1.0927. Corrige [1229]#12241. + [bdubbs] - Atualização para muparser-2.3.5. Corrige [1230]#20808. + [bdubbs] - Atualização para python3-3.13.1 (Atualização de Segurança). Corrige [1231]#20750. + [bdubbs] - Atualização para libcap-2.73. Corrige [1232]#20740. * 15 dezembro 2024 + [zeckma] - WebKitGTK: Adicionar remendo de fluxo de desenvolvimento para corrigir falhas de construção. + [zeckma] - Atualização para libXau-1.0.12, libXv-1.0.13, libXxf86vm-1.1.6, libxshmfence-1.3.3 e libxcvt-0.1.3 (bibliotecas Xorg). Corrige [1233]#20807. + [thomas] - Atualização para c-ares-1.34.4. Corrige [1234]#20806. * 13 dezembro 2024 + [bdubbs] - Atualização para pacote do kf6 solid-6.9.1. + [bdubbs] - Atualização para plasma-6.2.4. Corrige [1235]#20722. * 13 dezembro 2024 + [bdubbs] - Atualização para kde-gear-24.12.0. Corrige [1236]#20796. + [zeckma] - Atualizações para libICE-1.1.2, libSM-1.2.5 e libXrender-0.9.12 (bibliotecas do Xorg). Corrige [1237]#20801, [1238]#20802 e [1239]#20803. + [thomas] - Atualização para bind-9.20.4, bind-utils-9.20.4. Corrige [1240]#20792. + [bdubbs] - Atualização para plasma-wayland-protocols-1.15.0. Corrige [1241]#20773. + [bdubbs] - Atualização para kf6-6.9.0 com extra-cmake-modules e breeze-icons. Corrige [1242]#20800. * 12 dezembro 2024 + [bdubbs] - Atualização para boost-1.87.0. Corrige [1243]#20791. + [bdubbs] - Atualização para mupdf-1.25.2. Corrige [1244]#20789. + [bdubbs] - Atualização para nfs-utils-2.8.2. Corrige [1245]#20786. * 11 dezembro 2024 + [xry111] - Atualização para rust-bindgen-0.71.1. Corrige [1246]#20765. + [bdubbs] - Atualização para qemu-9.2.0. Corrige [1247]#20783. + [bdubbs] - Atualização para python-dbusmock-0.33.0 (módulo Python). Corrige [1248]#20785. + [bdubbs] - Atualização para json-glib-1.10.6. Corrige [1249]#20784. + [bdubbs] - Atualização para glib-2.82.4. Corrige [1250]#20781. + [bdubbs] - Atualização para LVM2.2.03.29. Corrige [1251]#20778. + [bdubbs] - Arquivar sysmon-qt. * 10 dezembro 2024 + [zeckma] - Atualização para openjpeg-2.5.3. Corrige [1252]#20779. + [bdubbs] - Adicionar utilitário de monitoramento do sistema sysmon3/sysmond. * 9 dezembro 2024 + [bdubbs] - Atualização para subversion-1.14.5. Corrige [1253]#20777. + [bdubbs] - Atualização para AppStream-1.0.4. Corrige [1254]#20775. + [bdubbs] - Atualização para numpy-2.2.0 (módulo Python). Corrige [1255]#20776. + [bdubbs] - Atualização para mako-1.3.8 (módulo Python). Corrige [1256]#20774. * 8 dezembro 2024 + [rahul] - Atualização para cmake-3.31.2. Corrige [1257]#20761. + [rahul] - Atualização para xfce4-pulseaudio-plugin-0.4.9. Corrige [1258]#20763. + [rahul] - Atualização para libwacom-2.14.0. Corrige [1259]#20760. * 7 dezembro 2024 + [bdubbs] - Atualização para xapian-core-1.4.27. Corrige [1260]#20764. + [rahul] - Atualização para SDL2-2.30.10. Corrige [1261]#20766. + [rahul] - Atualização para sqlite-3.74.2. Corrige [1262]#20767. + [rahul] - Atualização para graphviz-12.2.1. Corrige [1263]#20771. + [rahul] - Atualização para gedit-48.1. Corrige [1264]#20768. + [rahul] - Atualização para libgedit-tepl-6.12.0. Corrige [1265]#20770. + [rahul] - Atualização para libgedit-gtksourceview-299.4.0. Corrige [1266]#20772. + [rahul] - Atualização para libgedit-gfls-0.2.1. Corrige [1267]#20769. * 6 dezembro 2024 + [renodr] - Atualização para mutter-47.3. Corrige [1268]#20762. * 5 dezembro 2024 + [zeckma] - Atualização para mesa-24.3.1. Corrige [1269]#20681. + [rahul] - Atualização para samba-4.21.2. Corrige [1270]#20703. + [bdubbs] - Atualização para protobuf-29.1. Corrige [1271]#20754. + [bdubbs] - Atualização para unrar-7.1.2. Corrige [1272]#20759. + [bdubbs] - Atualização para libdrm-2.4.124. Corrige [1273]#20758. + [bdubbs] - Atualização para xkbevd-1.1.6 (app Xorg). Corrige [1274]#20757. + [bdubbs] - Atualização para six-1.17.0 (módulo Python). Corrige [1275]#20755. + [thomas] - Atualizar postfix para 3.9.1. Corrige [1276]#20756. * 4 dezembro 2024 + [renodr] - Atualizar a pilha gstreamer para 1.22.10 (Atualização de Segurança). Corrige [1277]#20747. + [renodr] - Atualização para qtwebengine-6.8.1 (Atualização de Segurança). Corrige [1278]#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 [1279]#20753. + [renodr] - Atualização para qt-6.8.1. Corrige [1280]#20743. + [bdubbs] - Atualização para xfsprogs-6.12.0. Corrige [1281]#20748. + [bdubbs] - Atualização para mako-1.3.7. Corrige [1282]#20749. + [bdubbs] - Atualização para hwdata-0.390. Corrige [1283]#20752. + [zeckma] - Atualização para node.js-22.12.0. Corrige [1284]#20751. * 3 dezembro 2024 + [renodr] - Corrigir construção do libreoffice com poppler-24.12.0. + [zeckma] - Atualização para thunderbird-128.5.1esr. Corrige [1285]#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 [1286]#20741. + [renodr] - Atualização para wireplumber-0.5.7. Corrige [1287]#20744. + [renodr] - Atualização para lxqt-panel-2.1.3. Corrige [1288]#20738. + [renodr] - Atualização para lxqt-notificationd-2.1.1. Corrige [1289]#20737. + [zeckma] - Atualização para xterm-396. Corrige [1290]#20742. + [zeckma] - Atualização para pixman-0.44.2. Corrige [1291]#20745. * 2 dezembro 2024 + [zeckma] - Atualização para pytest-8.3.4 (módulo Python). Corrige [1292]#20739. * 30 novembro 2024 + [bdubbs] - Atualização para SPIRV-LLVM-Translator-19.1.2. Corrige [1293]#20735. + [bdubbs] - Atualização para btrfs-progs-v6.12. Corrige [1294]#20733. + [xry111] - Atualização para cargo-c-0.10.7. Corrige [1295]#20730. * 29 novembro 2024 + [renodr] - Atualização para firefox-128.5.1esr. Corrige [1296]#20732. + [renodr] - Atualização para webkitgtk-2.46.4 (Atualização de Segurança). Corrige [1297]#20728. + [renodr] - Atualização para libjxl-0.11.1 (Atualização de Segurança). Corrige [1298]#20721. + [renodr] - Atualização para protobuf-29.0. Corrige [1299]#20726. + [renodr] - Atualização para openldap-2.6.9. Corrige [1300]#20725. * 29 novembro 2024 + [xry111] - Atualização para cargo-c-0.10.6. Corrige [1301]#20730. + [xry111] - Atualização para rustc-1.83.0. Corrige [1302]#20731. * 28 novembro 2024 + [zeckma] - Atualização para pango-1.55.0. Corrige [1303]#20727. * 27 novembro 2024 + [bdubbs] - Atualização para pipewire-1.2.7. Corrige [1304]#20724. + [bdubbs] - Atualização para mupdf-1.25.1. Corrige [1305]#20723. + [bdubbs] - Atualização para tcsh-6.24.14. Corrige [1306]#20720. + [bdubbs] - Atualização para libqalculate-5.4.0. Corrige [1307]#20709. + [bdubbs] - Atualização para gnupg-2.4.7. Corrige [1308]#20708. + [bdubbs] - Atualização para x265_4.1. Corrige [1309]#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 [1310]#20719. + [renodr] - Atualização para firefox-128.5.0esr (Atualização de Segurança). Corrige [1311]#20704. + [renodr] - Atualização para spidermonkey-128.5.0. Corrige [1312]#20705. + [renodr] - Atualização para tree-2.2.1. Corrige [1313]#20710. + [thomas] - Atualização para sqlite-3.47.1. Corrige [1314]#20711. + [thomas] - Atualização para git-2.47.1. Corrige [1315]#20706. + [thomas] - Atualização para sudo-1.9.16p2. Corrige [1316]#20716. + [thomas] - Atualização para cmake-3.31.1. Corrige [1317]#20707. + [renodr] - Atualização para gnome-shell-extensions-47.2. Corrige [1318]#20714. + [renodr] - Atualização para gnome-shell-47.2. Corrige [1319]#20714. + [renodr] - Atualização para mutter-47.2. Corrige [1320]#20715. + [renodr] - Atualização para gnome-control-center-47.2. Corrige [1321]#20713. + [renodr] - Atualização para file-roller-44.4. Corrige [1322]#20701. + [renodr] - Atualização para gnome-maps-47.2. Corrige [1323]#20698. * 25 novembro 2024 + [renodr] - Atualização para gnome-terminal-3.54.2. Corrige [1324]#20697. + [renodr] - Atualização para gnome-online-accounts-3.52.2. Corrige [1325]#20695. + [renodr] - Atualização para evolution-3.54.2. Corrige [1326]#20693. + [renodr] - Atualização para evolution-data-server-3.54.2. Corrige [1327]#20693. + [renodr] - Atualização para localsearch-3.8.1. Corrige [1328]#20689. + [renodr] - Atualização para tinysparql-3.8.1. Corrige [1329]#20690. + [renodr] - Atualização para gnome-user-docs-47.2. Corrige [1330]#20688. + [renodr] - Atualização para gnome-settings-daemon-47.2. Corrige [1331]#20687. + [renodr] - Atualização para gtksourceview-5.14.2. Corrige [1332]#20686. + [renodr] - Atualização para dvisvgm-3.4.2. Corrige [1333]#20662. + [renodr] - Atualização para asymptote-2.95. Corrige [1334]#20655. + [renodr] - Atualização para libsoup-3.6.1 (Atualização de Segurança). Corrige [1335]#20671. + [bdubbs] - Atualização para lxqt-panel-2.1.2. Corrige [1336]#20702. + [bdubbs] - Atualização para postgresql-17.2. Corrige [1337]#20685. + [bdubbs] - Atualização para wireshark-4.4.2 (Atualização de Segurança). Corrige [1338]#20676. + [renodr] - Finalizar restauro de kio-extras para o livro. Corrige [1339]#20672. + [renodr] - Adicionar kdsoap-ws-discovery-client para kio-extras. + [zeckma] - Atualização para gtk4-4.16.7. Corrige [1340]#20700. + [zeckma] - Atualização para unix-tree-2.2.0. Corrige [1341]#20699. * 24 novembro 2024 + [zeckma] - Atualização para mercurial-6.9. Corrige [1342]#20675. + [renodr] - Adicionar plasma-activities-stats para kio-extras. Observe que se um(a) usuário(a) tiver instalado uma construção completa do Plasma, esse pacote não é exigido. + [renodr] - Restaurar KDSoap para o livro para kio-extras. * 23 novembro 2024 + [zeckma] - Atualização para vte-0.78.2. Corrige [1343]#20696. + [zeckma] - Atualização para neon-0.34.0. Corrige [1344]#20694. * 22 novembro 2024 + [zeckma] - Atualização para libadwaita-1.6.2. Corrige [1345]#20692. + [bdubbs] - Atualização para php-8.4.1 (Atualização de Segurança). Corrige [1346]#20683. + [bdubbs] - Atualização para node-22.11.0. Corrige [1347]#20682. + [bdubbs] - Atualização para nss-3.107. Corrige [1348]#20680. * 21 novembro 2024 + [renodr] - Remover um sed desnecessário do lxqt-panel. + [renodr] - Desconfigurar CLASSPATH quando construir OpenJDK. * 20 novembro 2024 + [zeckma] - Atualização para node.js-20.18.1. Corrige [1349]#20674. + [rahul] - Atualização para gtk4-4.16.6. Corrige [1350]#20678. + [rahul] - Atualização para qemu-9.1.2. Corrige [1351]#20673. + [rahul] - Atualização para Vulkan-Headers e Vulkan-Loader 1.3.301. Corrige [1352]#20576. + [renodr] - Remover x11perf dos Aplicativos Xorg. Corrige [1353]#20649. + [zeckma] - Atualização para libinput-1.27.0 (controlador de entrada do Xorg). Corrige [1354]#20670. + [zeckma] - Atualização para thunderbird-128.4.4esr. Corrige [1355]#20669. * 18 novembro 2024 + [bdubbs] - Atualização para mupdf-1.24.11. Corrige [1356]#20668. + [bdubbs] - Atualização para libreoffice-24.8.3.2. Corrige [1357]#20663. + [zeckma] - Atualização para libXt-1.3.1 (biblioteca Xorg). Corrige [1358]#20667. * 16 novembro 2024 + [bdubbs] - Atualização para fltk-1.3.10. Corrige [1359]#20666. + [bdubbs] - Atualização para postgresql-17.1 (Atualização de Segurança). Corrige [1360]#20661. * 15 novembro 2024 + [bdubbs] - Atualização para vim-9.1.0866. Sincronia com LFS. + [bdubbs] - Atualização para libnvme-1.11.1. Corrige [1361]#20665. + [bdubbs] - Atualização para libcap-2.72. Corrige [1362]#20647. * 14 novembro 2024 + [bdubbs] - Atualização para xprop-1.2.8 (aplicativo Xorg). Corrige [1363]#20660. + [bdubbs] - Atualização para util-macros-1.20.2. Corrige [1364]#20659. + [bdubbs] - Atualização para sphinx_rtd_theme-3.0.2 (módulo Python). Corrige [1365]#20658. * 13 novembro 2024 + [zeckma] - Documentar a opção de núcleo do firmware GSP nouveau. + [zeckma] - Atualização para mesa-24.2.7. Corrige [1366]#20657. + [zeckma] - Atualização para thunderbird-128.4.3esr (Atualização de Segurança). Corrige [1367]#20656. + [bdubbs] - Atualização para sudo-1.9.16p1. Corrige [1368]#20652. + [bdubbs] - Atualização para fetchmail-6.5.1. Corrige [1369]#20654. * 12 novembro 2024 + [zeckma] - Atualização para npth-1.8. Corrige [1370]#20653. + [zeckma] - Atualização para libxml2-2.13.5. Corrige [1371]#20651. + [zeckma] - Atualização para alsa-lib e alsa-utils 1.2.13. Corrige [1372]#20650. + [thomas] - Atualização para libgpg-error-1.51. Corrige [1373]#20648. * 10 novembro 2024 + [bdubbs] - Atualização para wget-1.25.0 (Atualização de Segurança). Corrige [1374]#20646. + [renodr] - Atualização para cmake-3.31.0. Corrige [1375]#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 [1376]#20645. + [bdubbs] - Atualização para c-ares-1.34.3. Corrige [1377]#20644. + [bdubbs] - Atualização para packaging-24.2 (módulo Python). Corrige [1378]#20643. + [bdubbs] - Atualização para Net-DNS-1.48 (módulo Perl). Corrige [1379]#20642. + [bdubbs] - Atualização para ibus-1.5.31.. Corrige [1380]#20641. + [bdubbs] - Atualização para iptables-1.8.11.. Corrige [1381]#20640. * 9 novembro 2024 + [bdubbs] - Atualização para lxqt-2.1.0.. Corrige [1382]#20622. * 8 novembro 2024 + [bdubbs] - Atualização para plasma-6.2.3. Para lxqt, inclui kwayland, libkscreen e layer-shell-qt. Corrige [1383]#20351. + [bdubbs] - Atualização para kde-gear-24.08.3 Incluindo falkon e kate. Corrige [1384]#20362. + [bdubbs] - Atualização para kf6-6.8.0. Inclui extra-cmake-modules, kconfig, kidletime, kwindowsystem, solid e breeze-icons. Corrige [1385]#20367. + [renodr] - Atualização para xrandr-1.5.3 (Aplicativo Xorg). Corrige [1386]#20638. + [renodr] - Atualização para libblockdev-3.2.1. Corrige [1387]#20637. + [renodr] - Atualização para intel-gmmlib-22.5.3. Corrige [1388]#20573. + [renodr] - Atualização para intel-media-driver-24.3.4. Corrige [1389]#20573. * 7 novembro 2024 + [renodr] - Atualização para Thunderbird-128.4.2esr. Corrige [1390]#20629. + [bdubbs] - Atualização para gpgme-1.24.0. Corrige [1391]#20630. + [bdubbs] - Atualização para dtc-1.7.2. Corrige [1392]#20633. + [renodr] - Atualização para unrar-7.1.1. Corrige [1393]#20631. + [renodr] - Atualização para libXcursor-1.2.3 (Bibliotecas Xorg). Corrige [1394]#20624. + [renodr] - Atualização para harfbuzz-10.1.0. Corrige [1395]#20625. + [renodr] - Atualização para pixman-0.44.0. Corrige [1396]#20626. + [renodr] - Atualização para gnutls-3.8.8. Corrige [1397]#20627. + [renodr] - Atualização para curl-8.11.0 (Atualização de Segurança). Corrige [1398]#20628. + [bdubbs] - Atualização para URI-5.31 (módulo Perl). Corrige [1399]#20632. * 6 novembro 2024 + [bdubbs] - Atualização para ruby-3.3.6. Corrige [1400]#20623. * 5 novembro 2024 + [renodr] - Atualização para fop-2.10 (Atualização de Segurança). Corrige [1401]#20501. + [renodr] - Atualização para OpenJDK-23.0.1 (Atualização de Segurança). Corrige [1402]#20540. + [renodr] - Corrigir construir Libreoffice com ICU-76. + [renodr] - Corrigir construir Node.js com ICU-76. + [renodr] - Atualização para icu-76.1. Corrige [1403]#20568. + [renodr] - Corrigir construir Texlive a partir do fonte em i686. + [bdubbs] - Atualização para mariadb-11.4.4. Corrige [1404]#20620. + [bdubbs] - Atualização para cachecontrol-0.14.1 (módulo Python). Corrige [1405]#20621. + [bdubbs] - Atualização para sentry_sdk-2.18.0 (módulo Python). Corrige [1406]#20619. + [bdubbs] - Atualização para hwdata-0.389. Corrige [1407]#20618. + [bdubbs] - Atualização para LVM2.2.03.28. Corrige [1408]#20617. * 4 novembro 2024 + [bdubbs] - Atualização para SDL2-2.30.9. Corrige [1409]#20615. + [bdubbs] - Atualização para audacious e audacious-plugins-4.4.2. Corrige [1410]#20614. + [bdubbs] - Atualização para graphviz-12.2.0. Corrige [1411]#20613. + [bdubbs] - Atualização para gegl-0.4.50. Corrige [1412]#20612. + [bdubbs] - Atualização para utfcpp-4.0.6. Corrige [1413]#20611. + [bdubbs] - Atualização para poppler-24.11.0. Corrige [1414]#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 [1415]#20609. + [bdubbs] - Atualização para mpg123-1.32.9. Corrige [1416]#20610. + [renodr] - Corrigir construção de evolution-data-server com ICU-76. + [bdubbs] - Atualização para libvpx-1.15.0. Corrige [1417]#20608. + [bdubbs] - Atualização para gtk4-4.16.5. Corrige [1418]#20606. + [bdubbs] - Atualização para valgrind-3.24.0. Corrige [1419]#20605. + [bdubbs] - Atualização para bluez-5.79. Corrige [1420]#20604. + [renodr] - Atualização para WebKitGTK-2.46.3 (Atualização de Segurança). Corrige [1421]#20597. * 1 novembro 2024 + [bdubbs] - Atualizar a pilha gstreamer para 1.24.9. Corrige [1422]#20601. + [bdubbs] - Atualização para libcap-2.71. Corrige [1423]#20578. + [bdubbs] - Atualização para libnvme-1.11. Corrige [1424]#20603. + [bdubbs] - Atualização para SPIRV-LLVM-Translator-19.1.1. Corrige [1425]#20602. * 31 outubro 2024 + [bdubbs] - Atualização para mesa-24.2.6. Corrige [1426]#20600. + [bdubbs] - Atualização para libnl-3.11.0. Corrige [1427]#20599. + [bdubbs] - Atualização para bubblewrap-0.11.0. Corrige [1428]#20598. + [bdubbs] - Atualização para fetchmail-6.5.0 (Atualização de Segurança). Corrige [1429]#20594. + [bdubbs] - Atualização para librsvg-2.59.2. Corrige [1430]#20590. + [bdubbs] - Atualização para gnupg-2.4.6. Corrige [1431]#20588. * 30 outubro 2024 + [renodr] - Atualização para thunderbird-128.4.0esr (Atualização de Segurança). Corrige [1432]#20587. + [renodr] - Promover elogind para exigido em libei. + [renodr] - Remover alguns arquivos não usados no polkit em sistemas SysV. Isso é devido a polkit assume que systemd está em uso. + [renodr] - Atualização para firefox-128.4.0esr (Atualização de Segurança). Corrige [1433]#20586. + [renodr] - Atualização para spidermonkey-128.4.0. Corrige [1434]#20584. + [renodr] - Atualização para xwayland-24.1.4 (Atualização de Segurança). Corrige [1435]#20593. + [renodr] - Atualização para xorg-server-21.1.14 (Atualização de Segurança). Corrige [1436]#20592. + [renodr] - Atualização para xf86-input-wacom-1.2.3 (Controlador de Xorg). Corrige [1437]#20591. + [renodr] - Atualização para pipewire-1.2.6. Corrige [1438]#20563. * 29 outubro 2024 + [bdubbs] - Atualização para libunwind-1.8.1. Corrige [1439]#20582. + [bdubbs] - Atualização para mercurial-6.8.2. Corrige [1440]#20585. * 28 outubro 2024 + [bdubbs] - Atualização para Python-3.13.0. Corrige [1441]#20491. + [bdubbs] - Atualização para babl-0.1.110. Corrige [1442]#20581. * 27 outubro 2024 + [xry111] - Adicionar docbook-xsl-ns-1.79.2. Corrige [1443]#20580. + [bdubbs] - Atualização para mpg123-1.32.8 (Atualização de Segurança). Corrige [1444]#20579. + [bdubbs] - Atualização para sphinxcontrib_htmlhelp-2.1.0 (módulo Python). Corrige [1445]#20577. + [bdubbs] - Atualização para desktop-file-utils-0.28. Corrige [1446]#20575. + [bdubbs] - Atualização para tigervnc-1.14.1. Corrige [1447]#20572. + [bdubbs] - Atualização para php-8.3.13. Corrige [1448]#20570. + [bdubbs] - Atualização para nss-3.106. Corrige [1449]#20566. * 26 outubro 2024 + [bdubbs] - Atualização para Linux-PAM-1.7.0. Corrige [1450]#20565. * 25 outubro 2024 + [thomas] - Atualização para xterm-395. Corrige [1451]#20571. + [thomas] - Atualização para log4cplus-2.1.2. Corrige [1452]#20569. * 24 outubro 2024 + [bdubbs] - Reverter para URI-6.29 (Módulo Perl). Corrige [1453]#20521. * 23 outubro 2024 + [renodr] - Atualização para thunderbird-128.3.3esr. Corrige [1454]#20560. + [renodr] - Atualização para gnome-weather-47.0. Corrige [1455]#20406. + [renodr] - Atualização para baobab-47.0. Corrige [1456]#20405. + [renodr] - Atualização para gnome-terminal-3.54.1. Corrige [1457]#20388. + [renodr] - Atualização para gnome-system-monitor-47.0. Corrige [1458]#20387. + [renodr] - Atualização para gnome-calculator-47.0. Corrige [1459]#20386. + [renodr] - Atualização para gnome-maps-47.1. Corrige [1460]#20370. + [renodr] - Atualização para gucharmap-16.0.2. Corrige [1461]#20352. + [renodr] - Atualização para eog-47.0. Corrige [1462]#20337. + [renodr] - Atualização para gedit-48.0. Inclui atualizações para libgedit-gfls-0.2.0 e libgedit-tepl-6.11.0. Corrige [1463]#20378. + [renodr] - Atualização para libgedit-gtksourceview-299.3.0. Corrige [1464]#20561. + [renodr] - Atualização para epiphany-47.2. Corrige [1465]20559. + [renodr] - Atualização para NetworkManager-1.50.0. Corrige [1466]#20473. + [renodr] - Atualização para dhcpcd-10.1.0. Corrige [1467]#20482. + [renodr] - Atualização para gnome-user-docs-47.0. Corrige [1468]#20384. + [renodr] - Atualização para gnome-session-47.0.1. Corrige [1469]#20414. + [renodr] - Atualização para gnome-shell-extensions-47.1. Corrige [1470]#20383. + [renodr] - Atualização para gdm-47.0. Corrige [1471]#20415. + [renodr] - Atualização para gnome-shell-47.1. Corrige [1472]#20383. + [renodr] - Atualização para mutter-47.1. Corrige [1473]#20385. + [renodr] - Atualização para gnome-control-center-47.1.1. Corrige [1474]#20396. + [renodr] - Atualização para tecla-47.0. Corrige [1475]#20403. + [renodr] - Atualização para gnome-settings-daemon-47.1. Corrige [1476]#20391. + [bdubbs] - Atualização para usbutils-018. Corrige [1477]#20558. + [bdubbs] - Atualização para protobuf-28.3. Corrige [1478]#20557. + [bdubbs] - Atualização para FreeRDP-3.9.0. Corrige [1479]#20556. + [bdubbs] - Atualização para sqlite-autoconf-3470000 (3.47.0). Corrige [1480]#20553. + [bdubbs] - Atualização para nghttp2-1.64.0. Corrige [1481]#20552. + [renodr] - Atualização para gnome-bluetooth-47.1. Corrige [1482]#20397. + [bdubbs] - Atualização para mako-1.3.6 (observe mudança de Mako). Corrige [1483]#20551. + [bdubbs] - Atualização para nspr-4.36. Corrige [1484]#20550. + [bdubbs] - Atualização para mousepad-0.6.3. Corrige [1485]#20549. + [renodr] - Atualização para nautilus-47.0. Corrige [1486]#20393. + [renodr] - Atualização para gvfs-1.56.1. Corrige [1487]#20019. + [renodr] - Atualização para snapshot-47.1. Corrige [1488]#20394. + [renodr] - Adicionar libgstgtk4 ao livro em suporte do Snapshot. Parte de [1489]#20394. * 22 outubro 2024 + [renodr] - Substituir tracker-miners3 por localsearch e atualizar para localsearch-3.8.0. Corrige [1490]#20413. + [renodr] - Substituir tracker3 por tinysparql e atualizar para tinysparql-3.8.0. Corrige [1491]#20412. + [renodr] - Atualização para evolution-3.54.1. Corrige [1492]#20016. + [renodr] - Atualização para evolution-data-server-3.54.1. Corrige [1493]#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 [1494]#20018. + [renodr] - Atualização para gjs-1.82.1. Corrige [1495]#20555. + [renodr] - Atualização para vte-0.78.1. Corrige [1496]#20389. + [renodr] - Atualização para WebKitGTK-2.46.2. Corrige [1497]#20554. * 21 outubro 2024 + [renodr] - Atualização para libppd-2.1.0. Corrige [1498]#20539. + [renodr] - Atualização para libcupsfilters-2.1.0. Corrige [1499]#20538. + [renodr] - Atualização para cups-browsed-2.1.0. Corrige [1500]#20537. + [renodr] - Atualização para epiphany-47.1. Corrige [1501]#20523. + [renodr] - Atualização para samba-4.21.1. Corrige [1502]#20522. + [renodr] - Atualização para cups-2.4.11. Corrige [1503]#20505. + [renodr] - Atualização para wireshark-4.4.1 (Atualização de Segurança). Corrige [1504]#20503. + [bdubbs] - Atualização para subversion-1.14.4. Corrige [1505]#20500. + [bdubbs] - Atualização para swig-4.3.0. Corrige [1506]#20548. + [bdubbs] - Atualização para SDL2-2.30.8. Corrige [1507]#20508. + [bdubbs] - Atualização para qemu-9.1.1. Corrige [1508]#20542. + [renodr] - Atualização para libreoffice-24.8.2.1. Corrige [1509]#20365. * 20 outubro 2024 + [bdubbs] - Atualização para libwnck-43.1. Corrige [1510]#20486. + [bdubbs] - Atualização para gtk4-4.16.3. Corrige [1511]#20484. + [bdubbs] - Atualização para qcoro-0.11.0. Corrige [1512]#20481. + [bdubbs] - Atualização para mesa-24.2.5. Corrige [1513]#20480. + [bdubbs] - Atualização para nfs-utils-2.8.1. Corrige [1514]#20547. + [bdubbs] - Atualização para libuv-v1.49.2. Corrige [1515]#20543. + [bdubbs] - Atualização para Vulkan-Headers e Vulkan-Loader 1.3.299. Corrige [1516]#20541. + [thomas] - Atualização para xfsprogs-6.11.0.. Corrige [1517]#20546. * 18 outubro 2024 + [xry111] - Atualização para gjs-1.82.0.. Corrige [1518]#20035. + [xry111] - Atualização para spidermonkey-128.3.1 (Atualização de Segurança). Corrige [1519]#20077. + [xry111] - Atualização para cargo-c-0.10.5.. Corrige [1520]#20545. + [xry111] - Atualização para rustc-1.82.0.. Corrige [1521]#20533. * 17 outubro 2024 + [bdubbs] - Temporariamente reverter para poppler-24.09.0 até que outros pacotes sejam atualizados para usá-lo (por exemplo, inkscape, libreoffice) + [renodr] - Atualização para thunderbird-128.3.2esr. Corrige [1522]#20509. + [bdubbs] - Atualização para unbound-1.22.0. Corrige [1523]#20536. + [bdubbs] - Atualização para sentry_sdk-2.17.0 (módulo Python). Corrige [1524]#20534. + [bdubbs] - Atualização para psutil-6.1.0 (módulo Python). Corrige [1525]#20532. + [bdubbs] - Atualização para glib-2.82.2. Corrige [1526]#20531. + [renodr] - Atualização para asymptote-2.92. Corrige [1527]#20495. + [thomas] - Atualização para libtirpc-1.3.6. Corrige [1528]#20535. + [thomas] - Atualização para bind 9.20.3, bind-utils-9.20.3. Corrige [1529]#20527. * 17 outubro 2024 + [bdubbs] - Atualização para libgedit-amtk-5.9.0. Corrige [1530]#20530. + [bdubbs] - Atualização para libunistring-1.3. Corrige [1531]#20529. + [bdubbs] - Atualização para libssh2-1.11.1. Corrige [1532]#20528. + [bdubbs] - Atualização para xf86-input-libinput-1.5.0 (Controlador Xorg). Corrige [1533]#20526. + [bdubbs] - Atualização para xf86-input-evdev-2.11.0 (Controlador Xorg). Corrige [1534]#20525. + [bdubbs] - Atualização para c-ares-1.34.2. Corrige [1535]#20524. + [bdubbs] - Atualização para poppler-24.10.0. Corrige [1536]#20521. + [bdubbs] - Atualização para libxmlb-0.3.21. Corrige [1537]#20520. * 14 outubro 2024 + [bdubbs] - Atualização para libarchive-3.7.7 (Atualização de Segurança). Corrige [1538]#20519. + [bdubbs] - Atualização para pyparsing-3.2.0 (módulo Python). Corrige [1539]#20518. + [bdubbs] - Atualização para libadwaita-1.6.1. Corrige [1540]#20517. + [bdubbs] - Atualização para inkscape-1.4. Corrige [1541]#20516. + [bdubbs] - Atualização para wayland-protocols-1.38. Corrige [1542]#20515. + [bdubbs] - Atualização para xwud-1.0.7 (aplicativo do Xorg). Corrige [1543]#20514. + [bdubbs] - Atualização para xtrans-1.5.1 (biblioteca do Xorg). Corrige [1544]#20513. + [bdubbs] - Atualização para xcmsdb-1.0.7 (aplicativo do Xorg). Corrige [1545]#20512. + [bdubbs] - Atualização para libqtxdg-4.0.1. Corrige [1546]#20511. + [bdubbs] - Atualização para libuv-v1.49.1. Corrige [1547]#20510. * 13 outubro 2024 + [bdubbs] - Atualização para sphinx_rtd_theme-3.0.1 (módulo Python). Corrige [1548]#20494. + [bdubbs] - Atualização para sphinx-8.1.3 (módulo Python). Corrige [1549]#20506. + [bdubbs] - Atualização para sentry_sdk-2.16.0 (módulo Python). Corrige [1550]#20499. + [bdubbs] - Atualização para SPIRV-Headers e SPIRV-Tools-1.3.296.0. Corrige [1551]#20496. + [bdubbs] - Atualização para URI-5.30 (módulo Perl). Corrige [1552]#20497. + [bdubbs] - Atualização para git-2.47.0. Corrige [1553]#20490. + [bdubbs] - Atualização para gtksourceview-5.14.1. Corrige [1554]#20485. + [bdubbs] - Atualização para qtwebengine-6.8.0 (Atualização de Segurança). Corrige [1555]#20493. + [bdubbs] - Atualização para qt-everywhere-src-6.8.0 (Atualização de Segurança). Corrige [1556]#20492. + [bdubbs] - Atualização para libqalculate-5.3.0. Corrige [1557]#20489. + [bdubbs] - Atualização para Vulkan-Headers e Vulkan-Loader 1.3.298. Corrige [1558]#20483. + [bdubbs] - Atualização para node-20.18.0. Corrige [1559]#20477. * 10 outubro 2024 + [thomas] - Atualização para cmake-3.30.5. Corrige [1560]#20502. + [thomas] - Atualização para c-ares-1.34.1. Corrige [1561]#20504. * 9 outubro 2024 + [renodr] - Atualização para thunderbird-128.3.0esr (Atualização de Segurança). Corrige [1562]#20469. + [renodr] - Atualização para firefox-128.3.1esr (Atualização de Segurança). Corrige [1563]#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 [1564]#20456. + [renodr] - Corrigir um defeito no Cairo que causa problemas com impressão de arquivos PDF. Corrige [1565]#20443. + [renodr] - Atualização para epiphany-47.0. Corrige [1566]#20364. + [renodr] - Atualização para seahorse-47.0.1. Corrige [1567]#20423. + [renodr] - Atualização para WebKitGTK-2.46.1 (Atualização de Segurança). Corrige [1568]#20409. + [xry111] - Atualização para pyproject-metadata-0.8.1 (dependência Python). Endereça [1569]#18562. + [xry111] - Atualização para Markdown-3.7 (dependência Python). Endereça [1570]#18562. + [xry111] - Atualização para trove-classifiers-2024.9.12 (dependência Python). Endereça [1571]#18562. * 8 outubro 2024 + [thomas] - Atualização para cifs-utils-7.1. Corrige [1572]#20488. * 7 outubro 2024 + [renodr] - Atualização para xdg-dbus-proxy-0.1.6. Corrige [1573]#20428. + [renodr] - Atualização para xdg-desktop-portal-gnome-47.1. Corrige [1574]#20404. + [renodr] - Atualização para adwaita-icon-theme-47.0. Corrige [1575]#20401. + [renodr] - Atualização para gnome-backgrounds-47.0. Corrige [1576]#20402. + [renodr] - Atualização para xdg-desktop-portal-0.18.4 (Atualização de Segurança). Corrige [1577]#20430. + [renodr] - Atualização para pipewire-1.2.5. Corrige [1578]#20429. + [renodr] - Atualização para upower-1.90.6. Corrige [1579]#20421. + [renodr] - Corrigir executar a suíte de teste XML-LibXML com libxml2-2.13. Corrige [1580]#20457. + [renodr] - Atualização para unbound-1.21.1 (Atualização de Segurança). Corrige [1581]#20479. + [bdubbs] - Atualização para numpy-2.1.2 (módulo Python). Corrige [1582]#20487. + [bdubbs] - Atualização para python-dbusmock-0.32.2 (módulo Python). Corrige [1583]#20478. * 3 outubro 2024 + [bdubbs] - Atualização para mupdf-1.24.10. Corrige [1584]#20475. + [bdubbs] - Atualização para xwayland-24.1.3. Corrige [1585]#20474. + [bdubbs] - Atualização para LVM2.2.03.27. Corrige [1586]#20471. + [bdubbs] - Atualização para hwdata-0.388. Corrige [1587]#20472. + [bdubbs] - Atualização para xkeyboard-config-2.43. Corrige [1588]#20468. + [bdubbs] - Atualização para sentry_sdk-2.15.0. Corrige [1589]#20467. + [bdubbs] - Atualização para Python3-3.12.7. Corrige [1590]#20466. + [bdubbs] - Atualização para libgsf-1.14.53 (Atualização de Segurança). Corrige [1591]#20463. + [bdubbs] - Atualização para btrfs-progs-v6.11. Corrige [1592]#20411. + [bdubbs] - Atualização para ffmpeg-7.1. Corrige [1593]#20461. + [bdubbs] - Atualização para gdb-15.2. Corrige [1594]#20459. + [bdubbs] - Atualização para glad-2.0.8. Corrige [1595]#20458. + [bdubbs] - Atualização para postgresql-17.0. Corrige [1596]#20450. + [bdubbs] - Atualização para shaderc-2024.3 (glslc). Corrige [1597]#20438. + [renodr] - Atualizar a pilha gstreamer para 1.24.8. Corrige [1598]#20427. * 2 outubro 2024 + [renodr] - Corrigir construir libplacebo com glslang-15.0.0. Corrige [1599]#20470. * 30 setembro 2024 + [bdubbs] - Atualização para graphviz-12.1.2. Corrige [1600]#20455. + [bdubbs] - Atualização para nss-3.105. Corrige [1601]#20452. + [bdubbs] - Atualização para audacious e audacious-plugins-4.4.1. Corrige [1602]#20448. + [bdubbs] - Atualização para mpv-0.39.0. Corrige [1603]#20442. + [bdubbs] - Atualização para harfbuzz-10.0.1. Corrige [1604]#20437. + [xry111] - Atualização para unifont-16.0.01 (dados de fonte do GRUB para UEFI). Corrige [1605]#20395. * 28 setembro 2024 + [bdubbs] - Atualização para cmake-3.30.4. Corrige [1606]#20453. + [bdubbs] - Atualização para Vulkan-Headers e Vulkan-Loader-1.3.296. Corrige [1607]#20451. + [bdubbs] - Atualização para libuv-v1.49.0. Corrige [1608]#20444. + [bdubbs] - Atualização para gtk-4.16.2. Corrige [1609]#20441. + [bdubbs] - Atualização para glib-2.82.1. Corrige [1610]#20434. + [bdubbs] - Atualização para librsvg-2.59.1. Corrige [1611]#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 [1612]#20454. + [bdubbs] - Atualização para qt-6.7.3 (Atualização de Segurança). Corrige [1613]#20454. + [bdubbs] - Atualização para php-8.3.12 (Atualização de Segurança). Corrige [1614]#20449. + [bdubbs] - Atualização para glslang-15.0.0. Corrige [1615]#20446. + [bdubbs] - Atualização para fribidi-1.0.16. Corrige [1616]#20445. + [bdubbs] - Atualização para git-2.46.2. Corrige [1617]#20439. + [bdubbs] - Atualização para bluefish-2.2.16. Corrige [1618]#20436. + [bdubbs] - Atualização para LibRaw-0.21.3. Corrige [1619]#20419. * 27 setembro 2024 + [thomas] - Atualização para libarchive-3.7.6.. Corrige [1620]#20440. + [thomas] - Atualização para openssh-9.9p1.. Corrige [1621]#20432. + [thomas] - Atualização para libxml2-2.13.4.. Corrige [1622]#20418. + [rahul] - Atualização para protobuf-28.2.. Corrige [1623]#20354. + [rahul] - Atualização para libpng-1.6.44.. Corrige [1624]#20358. + [rahul] - Atualização para bluez-5.78.. Corrige [1625]#20341. + [rahul] - Atualização para curl-8.10.1 (Atualização de Segurança). Corrige [1626]#20355. + [rahul] - Atualização para qemu-9.1.0.. Corrige [1627]#20161. + [rahul] - Atualização para power-profiles-daemon-0.23.. Corrige [1628]#20342. * 26 setembro 2024 + [renodr] - Atualização para ghostscript-10.04.0 (Atualização de Segurança). Corrige [1629]#20424. + [renodr] - Atualização para thunderbird-128.2.3esr. Corrige [1630]#20408. + [renodr] - Atualização para seamonkey-2.53.19 (Atualização de Segurança). Corrige [1631]#20111. * 22 setembro 2024 + [bdubbs] - Atualização para Net-DNS-1.47 (módulo Perl). Corrige [1632]#20422. + [bdubbs] - Atualização para tk8.6.15. Corrige [1633]#20400. + [bdubbs] - Atualização para highlight-4.14. Corrige [1634]#20398. + [bdubbs] - Atualização para pulseaudio-qt-1.6.0. Corrige [1635]#20398. + [thomas] - Atualização para bind-9.20.2, bind-utils-9.20.2. Corrige [1636]#20260. * 20 setembro 2024 + [xry111] - Atualização para libclc-19.1.0.. Corrige [1637]#19985. + [xry111] - Atualização para SPIRV-LLVM-Translator-19.1.0.. Corrige [1638]#20417. + [xry111] - Atualização para LLVM-19.1.0.. Corrige [1639]#19968. + [renodr] - Atualização para bubblewrap-0.10.0 (parte de uma atualização de segurança). Corrige [1640]#20431. + [renodr] - Atualização para tiff-4.7.0 (Atualização de Segurança). Corrige [1641]#20420. * 19 setembro 2024 + [renodr] - Atualização para mesa-24.2.3. Corrige [1642]#20416. * 18 setembro 2024 + [renodr] - Atualização para gsettings-desktop-schemas-47.1. Corrige [1643]#20390. * 17 setembro 2024 + [renodr] - Arquivar Lua 5.2. + [renodr] - Adicionar LuaJIT ao livro para substituir Lua 5.2. Corrige [1644]#20312. * 16 setembro 2024 + [renodr] - Atualização para dvisvgm-3.4.1. Corrige [1645]#20407. + [renodr] - Atualização para json-c-0.18. Corrige [1646]#20392. + [renodr] - Atualização para gspell-1.14.0. Corrige [1647]#20372. + [renodr] - Atualização para libshumate-1.3.0. Corrige [1648]#20369. * 15 setembro 2024 + [bdubbs] - Atualização para gtksourceview-5.14.0. Corrige [1649]#20382. + [bdubbs] - Atualização para at-spi2-core-2.54.0. Corrige [1650]#20381. + [bdubbs] - Atualização para git-2.46.1. Corrige [1651]#20380. + [bdubbs] - Atualização para iso-codes-4.17.0. Corrige [1652]#20379. * 14 setembro 2024 + [bdubbs] - Atualização para libadwaita-1.6.0. Corrige [1653]#20377. + [bdubbs] - Atualização para traceroute-2.1.6. Corrige [1654]#20375. + [bdubbs] - Atualização para libjxl-0.11.0. Corrige [1655]#20374. + [bdubbs] - Atualização para libarchive-3.7.5 (Atualização de Segurança). Corrige [1656]#20373. + [bdubbs] - Atualização para mlt-7.28.0. Corrige [1657]#20366. + [bdubbs] - Atualização para plasma-wayland-protocols-1.14.0. Corrige [1658]#20361. + [bdubbs] - Atualização para pygobject3-3.50.0 (módulo Python). Corrige [1659]#20360. + [bdubbs] - Atualização para xcb-util-cursor-0.1.5. Corrige [1660]#20356. + [bdubbs] - Atualização para gtkmm-4.16.0. Corrige [1661]#20350. + [bdubbs] - Atualização para luit-20240910. Corrige [1662]#20349. + [bdubbs] - Atualização para gtk-4.16.1. Corrige [1663]#20376. + [xry111] - Atualização para gobject-introspection-1.82.0 (transferência adicional do glib). Corrige [1664]#20371. * 13 setembro 2024 + [bdubbs] - Atualização para libblockdev-3.2.0. Corrige [1665]#20345. + [bdubbs] - Atualização para graphviz-12.1.1. Corrige [1666]#20346. + [bdubbs] - Atualização para pytest-8.3.3 (módulo Python). Corrige [1667]#20348. + [bdubbs] - Atualização para mariadb-11.4.3. Corrige [1668]#20344. + [bdubbs] - Atualização para sentry_sdk-2.14.0 (módulo Python). Corrige [1669]#20343. + [bdubbs] - Atualização para stunnel-5.73. Corrige [1670]#20340. * 12 setembro 2024 + [bdubbs] - Atualização para gtk4-4.16.0. Corrige [1671]#20336. + [bdubbs] - Adicionar glslc proveniente de shaderc-2024.2 necessário para gtk4-4.16.0. * 9 setembro 2024 + [renodr] - Atualização para WebKitGTK-2.44.4. Corrige [1672]#20339. + [bdubbs] - Atualização para gc-8.2.8. Corrige [1673]#20338. + [renodr] - Atualização para systemd-256.5. Corrige [1674]#20300. + [bdubbs] - Atualização para python3-3.12.6 (Atualização de Segurança). Corrige [1675]#20335. * 7 setembro 2024 + [xry111] - Atualização para rustc-1.81.0.. Corrige [1676]#20332. * 6 setembro 2024 + [renodr] - Atualização para wireplumber-0.5.6. Corrige [1677]#20334. + [renodr] - Atualização para mesa-24.2.2. Corrige [1678]#20333. + [renodr] - Atualização para gnome-disk-utility-46.1. Corrige [1679]#20311. + [renodr] - Atualização para libwacom-2.13.0. Corrige [1680]#20307. + [renodr] - Atualização para libportal-0.8.1. Corrige [1681]#20306. + [renodr] - Atualização para libgweather-4.4.4. Corrige [1682]#20304. + [renodr] - Atualização para gnome-autoar-0.4.5. Corrige [1683]#20295. + [renodr] - Atualização para Vulkan-Headers e Vulkan-Loader 1.3.295. Corrige [1684]#20293. + [bdubbs] - Atualização para URI-5.29 (módulo Perl). Corrige [1685]#20331. + [bdubbs] - Atualização para cairo-1.18.2. Corrige [1686]#20303. + [bdubbs] - Atualização para SPIRV-LLVM-Translator-18.1.4. Corrige [1687]#20299. + [bdubbs] - Atualização para apache-ant-1.10.15. Corrige [1688]#20287. + [bdubbs] - Atualização para screen-5.0.0. Corrige [1689]#20284. + [renodr] - Atualização para ruby-3.3.5 (Atualização de Segurança). Corrige [1690]#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 [1691]#20328. + [bdubbs] - Atualização para glibmm-2.82.0. Corrige [1692]#20327. + [bdubbs] - Atualização para nano-8.2. Corrige [1693]#20326. + [renodr] - Atualização para thunderbird-128.2.0esr (Atualização de Segurança). Corrige [1694]#20320. + [renodr] - Atualização para firefox-128.2.0esr (Atualização de Segurança). Corrige [1695]#20305. * 5 setembro 2024 + [bdubbs] - Atualização para SDL2-2.30.7. Corrige [1696]#20323. + [bdubbs] - Atualização para libXi-1.8.2 (biblioteca do Xorg). Corrige [1697]#20322. + [bdubbs] - Atualização para umockdev-0.18.4. Corrige [1698]#20321. + [bdubbs] - Atualização para libevdev-1.13.3 (controlador do Xorg). Corrige [1699]#20319. + [bdubbs] - Atualização para geoclue-2.7.2. Corrige [1700]#20318. + [bdubbs] - Atualização para cryptsetup-2.7.5. Corrige [1701]#20313. + [bdubbs] - Atualização para numpy-2.1.1 (módulo Python). Corrige [1702]#20316. + [bdubbs] - Atualização para scons-4.8.1. Corrige [1703]#20315. + [bdubbs] - Atualização para hwdata-0.387. Corrige [1704]#20330. * 4 setembro 2024 + [rahul] - Atualização para nss-3.104. Corrige [1705]#20290. + [rahul] - Atualização para cmake-3.30.3. Corrige [1706]#20288. + [rahul] - Atualização para samba-4.21.0. Corrige [1707]#20309. + [rahul] - Atualização para FreeRDP-3.8.0. Corrige [1708]#20296. + [rahul] - Atualização para wayland-protocols-1.37. Corrige [1709]#20298. + [rahul] - Atualização para json-glib-1.10.0. Corrige [1710]#20291. + [rahul] - Atualização para sudo-1.9.16. Corrige [1711]#20301. + [rahul] - Atualização para NetworkManager-1.48.10. Corrige [1712]#20276. + [rahul] - Atualização para power-profiles-daemon-0.22. Corrige [1713]#20308. + [rahul] - Atualização para xterm-394. Corrige [1714]#20310. + [rahul] - Atualização para dhcpcd-10.0.10. Corrige [1715]#20262. + [bdubbs] - Atualização para poppler-24.09.0. Corrige [1716]#20302. + [bdubbs] - Atualização para php-8.3.11. Corrige [1717]#20289. + [bdubbs] - Atualização para userspace-rcu-0.14.1 (liburcu). Corrige [1718]#20283. + [bdubbs] - Atualização para nghttp2-1.63.0. Corrige [1719]#20282. + [bdubbs] - Atualização para protobuf-28.0. Corrige [1720]#20281. + [bdubbs] - Atualização para upower-v1.90.5. Corrige [1721]#20275. * 3 setembro 2024 + [bdubbs] - Atualização para glibmm-2.80.1. Corrige [1722]#20280. + [bdubbs] - Atualização para glib-2.82.0. Corrige [1723]#20279. + [bdubbs] - Atualização para libdrm-2.4.123. Corrige [1724]#20277. + [bdubbs] - Atualização para apr-1.7.5 (Atualização de Segurança). Corrige [1725]#20273. + [bdubbs] - Atualização para node-20.17.0. Corrige [1726]#20259. + [bdubbs] - Atualização para rust-bindgen-0.70.1. Corrige [1727]#20254. + [bdubbs] - Atualização para mesa-24.2.1. Corrige [1728]#20232. + [bdubbs] - Atualização para mupdf-1.24.9. Corrige [1729]#20297. + [bdubbs] - Atualização para libpcap-1.10.5 (Correções de Segurança). Corrige [1730]#20292. + [bdubbs] - Atualização para wireshark-4.4.0. Corrige [1731]#20285. + [bdubbs] - Atualização para xfsprogs-6.10.1. Corrige [1732]#20274. + [bdubbs] - Atualização para pyparsing-3.1.4 (módulo Python). Corrige [1733]#20271. + [bdubbs] - Atualização para taglib-2.0.2. Corrige [1734]#20270. + [bdubbs] - Atualização para c-ares-1.33.1. Corrige [1735]#20268. + [bdubbs] - Atualização para nfs-utils-2.7.1. Corrige [1736]#20261. + [bdubbs] - Atualização para libinput-1.26.2 (controlador de entrada do Xorg). Corrige [1737]#20250. * 2 setembro 2024 + [bdubbs] - Atualização para IO-Socket-SSL-2.089 (módulo Perl). Corrige [1738]#20286. + [bdubbs] - Arquivar Qt5. * 1 setembro 2024 + [bdubbs] - Lançamento do BLFS-12.2. Listas de Discussão O servidor linuxfromscratch.org está hospedando um número de listas de discussão que são usadas para o desenvolvimento do livro BLFS. Essas listas incluem, entre outras, as listas principais de desenvolvimento e de suporte. Para mais informação acerca de quais listas estão disponíveis, como assiná-las, locais de arquivamento, etc., visite [1739]https://www.linuxfromscratch.org/mail.html. Observações do(a) Editor(a) O Projeto BLFS criou um Wiki para editores(as) comentarem acerca das páginas e das instruções em [1740]https://wiki.linuxfromscratch.org/blfs/wiki. Quando observações do(a) editor(a) estiverem presentes, um link aparece no formato https://wiki.linuxfromscratch.org/blfs/wiki/pkgname logo abaixo da lista de dependências. A ideia por trás das observações do(a) editor(a) é a de fornecer informações adicionais acerca do pacote e (ou) das instruções de construção dele, armadilhas comuns ou talvez configurações ainda mais sofisticadas para casos especiais de uso. A maioria dos pacotes não tem observações do(a) editor(a). Nota As observações do(a) editor(a) podem estar desatualizadas. Mesmo que as páginas devam ser revisadas quando um pacote é atualizado, pode acontecer que existam observações referentes a uma versão obsoleta e, portanto, as observações possam estar desatualizadas. Verifique sempre a data das observações e, mais importante, a versão do pacote a que as observações se referem. Pedindo Ajuda e as Perguntas Frequentes Se você encontrar um problema enquanto usar este livro e o seu problema não estiver listado nas Perguntas Frequentes ([1741]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 [1742]Listas de discussão. Para nos auxiliar a diagnosticar e solucionar o seu problema, inclua tanta informação relevante quanto for possível na sua solicitação por ajuda. Coisas a Verificar Antes do Pedido Antes de pedir ajuda, você deveria rever os seguintes itens: * O suporte ao hardware está compilado internamente ao núcleo ou está disponível como um módulo para o núcleo? Se for um módulo, [então] está configurado adequadamente no modprobe.conf e foi carregado? Você deveria usar o lsmod como o(a) usuário(a) root para ver se está carregado. Verifique o arquivo sys.log ou execute modprobe 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 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 “[1743]Indo Além do BLFS” está disponível para ajudar você a verificar. Coisas a Mencionar Além de uma breve explicação do problema que você está enfrentando, as coisas essenciais a se incluir na sua solicitação são: * a versão do livro que você está usando (sendo 12.3), * o pacote ou seção dando problemas para você, * a mensagem de erro exata ou sintoma que você está recebendo, * se você tiver se desviado do livro ou do LFS de alguma forma (colocar as instruções do livro em um conjunto de comandos sequenciais enquanto o livro não diz para fazer isso é sempre considerado um desvio, porque tem existido muitos casos de problemas onde pessoas falham em notar uma diferença sutil entre o conjunto de comandos sequenciais e o livro), * se você está instalando um pacote do BLFS em um sistema que não é o LFS. Note que dizer que você se desviou do livro não significa que nós não te ajudaremos. Isso apenas nos ajudará a ver outras possíveis causas do teu problema. Se você tiver se desviado do livro, você também deveria dizer precisamente qual é o desvio, de forma que outras pessoas consigam reproduzi-lo. Um conjunto de comandos sequenciais pode ser anexado para mostrar o que você fez exatamente (especialmente se você já tiver um conjunto de comandos sequenciais desse, ou seja, você já tiver se desviado do livro ao empacotar as instruções do livro em um conjunto de comandos sequenciais e executá-lo). Espere por orientação em vez de instruções específicas. Se você for instruído(a) a ler alguma coisa, [então], por favor, faça isso. Geralmente implica que a resposta era óbvia demais e que a pergunta não teria sido feita se um pouco de pesquisa fosse feita antes de perguntar. Os(As) voluntários(as) na lista de discussão preferem não serem usados(as) como uma alternativa a fazer uma pesquisa razoável de sua parte. Adicionalmente, a qualidade da sua experiência com o BLFS também é grandemente melhorada por essa pesquisa e a qualidade dos(as) voluntários(as) é melhorada, pois eles(as) não sentem que o tempo deles(as) foi desperdiçado, de forma que é muito mais provável que eles(as) participem. Um artigo excelente acerca de como pedir ajuda na Internet em geral foi escrito por Eric S. Raymond. Ele está disponível online em [1744]http://www.catb.org/~esr/faqs/smart-questions.html. Leia e siga as dicas naquele documento e é muito mais provável que você obtenha uma resposta inicial e também obtenha a ajuda que você precisa realmente. Créditos Muitas pessoas tem contribuído, direta e indiretamente, para o BLFS. Esta página lista todos(as) os(as) que podemos imaginar. Nós possivelmente tenhamos deixado pessoas fora e, se você sente que esse é o caso, [então] envie-nos uma mensagem. Muito obrigado a todos(as) da comunidade do LFS pela ajuda com este projeto. Editores(as) Atuais * Rahul Chandra * Bruce Dubbs * Pierre Labastie * Douglas Reno * Xi Ruoyao * Thomas Trepl Colaboradores(as) e Antigos(as) Editores(as) A lista dos(as) colaboradores(as) é ampla demais para fornecer informação detalhada acerca das contribuições para cada colaborador(a). Ao longo dos anos, os seguintes indivíduos forneceram contribuições significantes para o livro: * Timothy Bauscher * Daniel Bauman * Jeff Bauman * Andy Benton * Wayne Blaszczyk * Paul Campbell * Nathan Coulson * Jeroen Coumans * Guy Dalziel * Robert Daniels * Richard Downing * Manuel Canales Esparcia * Jim Gifford * Manfred Glombowski * Ag Hatzimanikas * Mark Hymers * James Iwanek * David Jensen * Jeremy Jones * Seth Klein * Alex Kloss * Eric Konopka * Larry Lawrence * D-J Lucas * Chris Lynn * Andrew McMurry * Randy McMurchy * Ken Moffat * Denis Mugnier * Billy O'Connor * Fernando de Oliveira * Alexander Patrakov * Olivier Peres * Andreas Pedersen * Henning Rohde * Matt Rogers * James Robertson * Henning Rohde * Chris Staub * Jesse Tie-Ten-Quee * Ragnar Thomsen * Tushar Teredesai * Jeremy Utley * Zack Winkles * Christian Wurst * Igor Živković Reconhecimentos Gerais * Fernando Arbeiza * Miguel Bazdresch * Gerard Beekmans * Oliver Brakmann * Jeremy Byron * Ian Chilton * David Ciecierski * Jim Harris * Lee Harris * Marc Heerdink * Steffen Knollmann * Eric Konopka * Scot McPherson * Ted Riley Informação de Contato Por favor, direcione as suas mensagens de correio eletrônico para uma das listas de discussão do BLFS. Veja-se [1745]Listas de discussão para mais informação acerca das listas de discussão disponíveis. Capítulo 2. Informação Importante Este capítulo é usado para explicar algumas das políticas usadas ao longo do livro; para apresentar conceitos importantes; e para explicar alguns problemas que você possivelmente veja com alguns dos pacotes inclusos. Observações Acerca de Construir Software Aquelas pessoas que tenham construído um sistema LFS possivelmente estejam cientes dos princípios gerais da transferência e do desempacotamento de software. Alguma daquela informação está repetida aqui para aquelas novatas em construir o próprio software delas. Cada conjunto de instruções de instalação contém um URL a partir do qual você pode transferir o pacote. Os remendos, no entanto, estão armazenados nos servidores do LFS e estão disponíveis via HTTP. Esses estão referenciados conforme necessários nas instruções de instalação. Embora possa manter os arquivos do fonte onde quiser, presumimos que você desempacotou o pacote e mudou para o diretório criado pelo processo de desempacotamento (o diretório do fonte). Também presumimos que você descomprimiu quaisquer remendos exigidos e que eles estão no diretório imediatamente acima do diretório do fonte. Nós não podemos enfatizar fortemente o suficiente que você deveria iniciar a partir de uma árvore limpa do fonte a cada vez. Isso significa que, se você tiver tido um erro durante a configuração ou a compilação, [então] geralmente é melhor deletar a árvore do fonte e desempacotá-la outra vez antes de tentar novamente. Isso, obviamente, não se aplica se você for um(a) usuário(a) avançado(a) habituado(a) a hackear Makefiles e código C; porém, se em dúvida, [então] inicie a partir de uma árvore limpa. Construindo Software como um(a) Usuário(a) Não Privilegiado(a) (não root) A regra de ouro da Administração do Sistema Unix é a de usar os seus super poderes somente quando necessário. Assim, o BLFS recomenda que você construa software como um(a) usuário(a) não privilegiado(a) e somente se torne o(a) usuário(a) root quando instalar o software. Essa filosofia é seguida em todos os pacotes neste livro. A menos que especificado de outra maneira, todas as instruções deveriam ser executadas como um(a) usuário(a) não privilegiado(a). O livro alertará você acerca de instruções que precisarem de privilégios do(a) root. Desempacotando o Software Se um arquivo estiver no formato .tar e comprimido, [então] ele é desempacotado executando-se um dos seguintes comandos: tar -xvf nome_arquivo.tar.gz tar -xvf nome_arquivo.tgz tar -xvf nome_arquivo.tar.Z tar -xvf nome_arquivo.tar.bz2 Nota Você possivelmente omita o uso do parâmetro v nos comandos mostrados acima e abaixo se você desejar suprimir a listagem verbosa de todos os arquivos no arquivamento conforme eles forem extraídos. Isso pode ajudar a acelerar a extração, bem como torna quaisquer erros produzidos durante a extração mais óbvios para você. Você também pode usar um método ligeiramente diferente: bzcat nome_arquivo.tar.bz2 | tar -xv Finalmente, ocasionalmente, temos um arquivo de remendo comprimido no formato .patch.gz ou .patch.bz2. A melhor maneira de aplicar o remendo é a de canalizar a saída gerada do descompressor para o utilitário patch. Por exemplo: gzip -cd ../patchname.patch.gz | patch -p1 Ou para um remendo comprimido com bzip2: bzcat ../nome_remendo.patch.bz2 | patch -p1 Averiguando a Integridade do Arquivo Geralmente, para se averiguar se o arquivo transferido está completo, muitos(as) mantenedores(as) de pacote também distribuem somas de verificação md5 dos arquivos. Para averiguar a soma de verificação md5 dos arquivos transferidos, transfira ambos, o arquivo e o arquivo correspondente de soma de verificação md5, para o mesmo diretório (preferencialmente a partir de locais diferentes online) e (assumindo que arquivo.md5sum seja o arquivo de soma de verificação md5 transferido) execute o seguinte comando: md5sum -c arquivo.md5sum Se existirem quaisquer erros, [então] eles serão informados. Observe que o livro BLFS inclui somas de verificação md5 para todos os arquivos de fonte também. Para usar as somas de verificação md5 fornecidas pelo BLFS, você pode criar um arquivo.md5sum (coloque os dados da soma de verificação md5 e o nome exato do arquivo transferido na mesma linha de um arquivo, separados por espaço em branco) e executar o comando mostrado acima. Alternativamente, simplesmente execute o comando mostrado abaixo e compare a saída gerada para os dados da soma de verificação md5 mostrada no livro BLFS. md5sum 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 [1746]make-ca-1.15 no sistema BLFS; nós podemos razoavelmente confiar nos URLs de transferência para o sítio oficial da web do(a) desenvolvedor(a) com protocolo https. Observe que o próprio livro BLFS está publicado em um sítio da web com https, de forma que você já deveria ter alguma confiança no protocolo https ou você não confiaria no conteúdo do livro. Se o pacote for transferido a partir de um local não oficial (por exemplo, um espelho local), [então] as somas de verificação geradas por algoritmos de resumo criptograficamente seguros (por exemplo, SHA256) podem ser usadas para averiguar a genuinidade do pacote. Transfira o arquivo da soma de verificação a partir do sítio da web oficial do(a) desenvolvedor(a) (ou algum lugar que você possa confiar) e compare a soma de verificação do pacote oriunda do local não oficial com ele. Por exemplo, a soma de verificação SHA256 pode ser verificada com o comando: Nota Se a soma de verificação e o pacote forem transferidos a partir do mesmo local não confiável, [então] você não ganharia melhoramento de segurança averiguando o pacote com a soma de verificação. O(A) atacante pode falsear a soma de verificação assim como comprometer o próprio pacote. sha256sum -c arquivo.sha256sum Se o [1747]GnuPG-2.4.7 estiver instalado, [então] você também pode averiguar a genuinidade do pacote com uma assinatura GPG. Importe a chave pública GPG do(a) desenvolvedor(a) com: gpg --recv-key ID_da_chave ID_da_chave deveria ser substituído pelo ID da chave oriundo de algum lugar que você possa confiar (por exemplo, copie-o a partir do sítio da web oficial do(a) desenvolvedor(a) usando https). Agora, você consegue averiguar a assinatura com: gpg --recv-key arquivo.sig arquivo A vantagem da assinatura GnuPG é, tão logo você importou uma chave pública que possa ser confiada, você pode transferir ambos, o pacote e a assinatura dele, a partir do mesmo local não oficial e averiguá-los com a chave pública. Assim, você não precisaria conectar com o sítio da web oficial do(a) desenvolvedor(a) para ir buscar uma soma de verificação para cada lançamento novo. Você somente precisa atualizar a chave pública se ela estiver expirada ou revogada. Criando Arquivos de Registro Durante a Instalação Para pacotes mais largos, é conveniente se criar arquivos de registro em vez de olhar fixamente para a tela esperando pegar um erro ou aviso em particular. Os arquivos de registro também são úteis para depuração e para manter registros. O seguinte comando permite a você criar um registro da instalação. Substitua pelo comando que você pretende executar. ( 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 seja retornado como o resultado e não o resultado do comando tee. Usando Múltiplos Processadores Para muitos sistemas modernos com múltiplos processadores (ou núcleos) o tempo de compilação para um pacote pode ser reduzido realizando-se um "make paralelo", ou configurando-se uma variável de ambiente, ou dizendo-se ao aplicativo make para simultaneamente executar múltiplas tarefas. Por exemplo, uma CPU Intel Core i9-13900K contém 8 núcleos de desempenho (P) e 16 núcleos de eficiência (E), e os núcleos P suportam SMT (Simultaneous MultiThreading, também conhecido como “Hyper-Threading”), portanto cada núcleo P pode executar duas camadas simultaneamente e o núcleo Linux tratará cada núcleo P como dois núcleos lógicos. Como resultado, existem 32 núcleos lógicos no total. Para utilizar todos esses núcleos lógicos executando make, nós podemos configurar uma variável de ambiente para dizer ao make para executar 32 tarefas simultaneamente: export MAKEFLAGS='-j32' ou apenas construir com: make -j32 Se você tiver aplicado o sed opcional quando da construção do ninja no LFS, [então] você pode usar: export NINJAJOBS=32 quando um pacote usar o ninja; ou apenas: ninja -j32 Se você não tiver certeza acerca do número de núcleos lógicos, execute o comando nproc. Para make, o número padrão de tarefas é 1. Mas para ninja, o número padrão de tarefas é N + 2, se o número de núcleos lógicos N for maior que 2; ou N + 1 se N for 1 ou 2. A razão para usar um número de tarefas ligeiramente maior que o número de núcleos lógicos é a de manter todos os processadores lógicos ocupados, mesmo se algumas tarefas estiverem realizando operações de E/S. Observe que as chaves -j somente limitam as tarefas paralelas iniciadas por make ou ninja, mas cada tarefa possivelmente ainda gere os próprios processos ou camadas dela. Por exemplo, alguns testes de pacotes podem gerar várias camadas para testar propriedades de segurança de camadas. Não existe uma maneira genérica de o sistema de construção saber o número de processos ou camadas gerados por uma tarefa. Portanto, geralmente nós não deveríamos considerar o valor passado com -j como um limite rígido do número de núcleos lógicos a serem usados. Leia-se [1748]“Use o Grupo de Controle do Linux para Limitar o Uso de Recursos” se você quiser configurar tal limite tão rígido. Geralmente o número de processos não deveria exceder muito o número de elementos de processamento suportados pela CPU. Para listar os processadores em teu sistema, emita: grep processor /proc/cpuinfo. Em alguns casos, usar múltiplos processos possivelmente resulte em uma condição de 'corrida' onde o sucesso da construção depende da ordem dos comandos executados pelo aplicativo make. Por exemplo, se um executável precisar do Arquivo A e do Arquivo B, [então] tentar-se vincular o aplicativo antes que um dos componentes dependentes esteja disponível resultará em uma falha. Essa condição geralmente surge, pois o(a) desenvolvedor(a) do aplicativo não designou adequadamente todos os pré requisitos necessários para realizar uma etapa no Makefile. Se isso ocorrer, a melhor maneira de se proceder é a de se voltar para uma construção de processador único. Adicionar -j1 a um comando make substituirá a configuração semelhante na variável de ambiente MAKEFLAGS. Importante Outro problema possivelmente ocorra com CPUs modernas, as quais tem um monte de núcleos. Cada trabalho iniciado consome memória e, se a soma da memória necessária para cada trabalho exceder da memória disponível, [então] você possivelmente encontre, ou uma interrupção de kernel Out of Memory (OOM), ou troca intensa, que retardará a construção além de limites razoáveis. Algumas compilações com o g++ possivelmente consumam até 2,5 GB de memória, de forma que, para estar seguro(a), você deveria restringir o número de trabalhos a (Memória Total em GB)/2,5, ao menos para pacotes grandes, tais como o LLVM; o WebKitGtk; o QtWebEngine; ou o Libreoffice. Use o Grupo de Controle do Linux para Limitar o Uso de Recursos Às vezes queremos limitar o uso de recursos quando construímos um pacote. Por exemplo, quando temos 8 núcleos lógicos, podemos querer usar somente 6 núcleos para construir o pacote e reservar outros 2 núcleos para reproduzir um filme. O núcleo Linux fornece um recurso chamado grupos de controle (cgroup) para tal necessidade. Habilite o grupo de controle na configuração do núcleo, em seguida reconstrua o núcleo e reinicialize se necessário: General setup ---> [*] Control Group support ---> [CGROUPS] [*] Memory controller [MEMCG] [*] Cpuset controller [CPUSETS] Certifique-se de que [1749]Sudo-1.9.16p2 esteja instalado. Para executar make -j5 com os primeiros 4 núcleos lógicos e 8 GB de memória do sistema, emita: bash -e << \EOF sudo mkdir /sys/fs/cgroup/$$ sudo sh -c \ "echo +memory +cpuset > /sys/fs/cgroup/cgroup.subtree_control" sudo sh -c \ "echo 0-3 > /sys/fs/cgroup/$$/cpuset.cpus" sudo sh -c \ "echo $(bc -e '8*2^30') > /sys/fs/cgroup/$$/memory.high" ( sudo sh -c "echo $BASHPID > /sys/fs/cgroup/$$/cgroup.procs" exec make -j5 ) sudo rmdir /sys/fs/cgroup/$$ EOF Com 8589934592 (a saída gerada de bc -e '8*2^30', 2^30 representa 2^30, ou seja, um Gigabyte) na entrada memory.high, um limite flexível de uso de memória está configurado. Se os processos no cgroup (make e todos os descendentes dele) usarem mais que 8 GB de memória do sistema no total, o núcleo irá desacelerar os processos e tentará recuperar a memória do sistema proveniente deles. Mas eles ainda podem usar mais que 8 GB de memória do sistema. Se você quiser definir um limite rígido, substitua memory.high com memory.max. Mas fazer isso causará a interrupção dos processos se 8 GB não forem suficientes para eles. 0-3 na entrada cpuset.cpus faz com que o núcleo execute somente os processos no cgroup nos núcleos lógicos com números 0, 1, 2 ou 3. Você possivelmente precise ajustar essa configuração baseada no mapeamento entre os núcleos lógicos e os núcleos físicos. Por exemplo, com uma CPU Intel Core i9-13900K, os núcleos lógicos 0, 2, 4, ..., 14 são mapeados para as primeiras camadas dos oito núcleos P físicos; os núcleos lógicos 1, 3, 5, ..., 15 são mapeados para as segundas camadas dos núcleos P físicos; e os núcleos lógicos 16, 17, ..., 31 são mapeados para os 16 núcleos E físicos. Portanto, se quisermos usar quatro camadas de quatro núcleos P, precisamos especificar 0,2,4,6 em vez de 0-3. Observe que os outros modelos de CPU podem usar um esquema de mapeamento diferente. Se você não tiver certeza acerca do mapeamento entre os núcleos lógicos e os núcleos físicos, execute o comando lscpu --extended que gerará IDs de núcleo lógico na coluna CPU e IDs de núcleo físico na coluna CORE. Quando o comando nproc ou ninja executa em um cgroup, ele usará o número de núcleos lógicos atribuídos para o cgroup como a “contagem de núcleos lógicos do sistema”. Por exemplo, em um cgroup com núcleos lógicos 0-3 atribuídos, nproc imprimirá 4 e ninja executará 6 (4 + 2) tarefas simultaneamente se nenhuma configuração -j for fornecida explicitamente. Leia-se o arquivo Documentation/admin-guide/cgroup-v2.rst na árvore do fonte do núcleo Linux para a explicação detalhada das entradas do pseudo sistema de arquivos cgroup2 referidas no comando. Procedimentos Automatizados de Construção Existem ocasiões onde automatizar a construção de um pacote pode vir a calhar. Todo mundo tem razões próprias para querer automatizar a construção e todo mundo faz isso de maneira própria. Criar Makefiles; scripts do Bash; scripts do Perl; ou, simplesmente, uma lista de comandos usados para recortar e colar, são apenas alguns dos métodos que você pode usar para automatizar a construção de pacotes do BLFS. Detalhar como e fornecer exemplos das muitas maneiras que você pode automatizar a construção de pacotes está além do escopo desta seção. Esta seção exporá você ao uso do redirecionamento de arquivo e do comando yes para ajudar a fornecer ideias acerca do como automatizar suas construções. Redirecionamento de Arquivo para Automatizar a Entrada Gerada Você achará ocasiões ao longo da sua jornada BLFS quando você se deparará com um pacote que tenha um comando solicitando informação. Essa informação poderia ser detalhes de configuração; um caminho de diretório; ou uma resposta a um acordo de licença. Isso pode apresentar um desafio para automatizar a construção desse pacote. Ocasionalmente, você será consultado(a) para diferentes informações em uma série de perguntas. Um método para automatizar esse tipo de cenário exige colocar as respostas desejadas em um arquivo e usar redirecionamento, de forma que o aplicativo use os dados no arquivo como as respostas para as perguntas. Isso, efetivamente, faz com que a suíte de teste use as respostas no arquivo como a entrada gerada para as perguntas. Ocasionalmente você possivelmente termine fazendo um bocado de tentativa e erro para determinar o formato exato do seu arquivo de entrada gerada para algumas coisas, porém, tão logo determinado e documentado, você consegue usar isso para automatizar a construção do pacote. Usando o yes para Automatizar a Entrada Gerada Ocasionalmente você somente precisará fornecer uma resposta ou fornecer a mesma resposta para muitas solicitações. Para tais instâncias, o comando yes funciona realmente bem. O comando yes pode ser usado para fornecer uma resposta (a mesma) para uma ou mais instâncias de perguntas. Ele pode ser usado para simular o pressionamento apenas da tecla Enter; informar a tecla Y; ou informar uma sequência de caracteres de texto. Talvez a maneira mais fácil de mostrar o uso dele é em um exemplo. Primeiro, crie um script curto do Bash informando os seguintes comandos: cat > blfs-yes-test1 << "EOF" #!/bin/bash echo -n -e "\n\nPor favor, digite algo (ou nada) e pressione Enter ---> " read A_STRING if test "$A_STRING" = ""; then A_STRING="Apenas a tecla Enter foi pressionada" else A_STRING="Você informou '$A_STRING'" fi echo -e "\n\n$A_STRING\n\n" EOF chmod 755 blfs-yes-test1 Agora execute o script emitindo ./blfs-yes-test1 a partir da linha de comando. Ele aguardará por uma resposta, que pode ser algo (ou nada) seguida pela tecla Enter. Depois de informar alguma coisa, o resultado será ecoado para a tela. Agora use o comando yes para automatizar a entrada de uma resposta: yes | ./blfs-yes-test1 Perceba que canalizar o próprio yes para o script resulta em y sendo passada para o script. Agora tente com uma sequência de caracteres de texto: yes 'Este é algum texto' | ./blfs-yes-test1 A sequência exata de caracteres foi usada como a resposta para o script. Finalmente, tente usando uma sequência de caracteres vazia (nula): yes '' | ./blfs-yes-test1 Perceba que isso resulta na passagem apenas do pressionamento da tecla Enter para o script. Isso é útil para ocasiões quando a resposta padrão para a solicitação for suficiente. Essa sintaxe é usada nas instruções do [1750]Net-tools para aceitar todos os padrões para as muitas solicitações durante a etapa de configuração. Você possivelmente agora remova o script de teste, se desejado. Redirecionamento de Arquivo para Automatizar a Saída Gerada Para a finalidade de automatizar a construção de alguns pacotes, especialmente aqueles que exigem que você leia um acordo de licença em uma página por vez, exige-se usar um método que evite ter que pressionar uma tecla para exibir cada página. Redirecionar a saída gerada para um arquivo pode ser usado nessas instâncias para auxiliar com a automação. A seção anterior nesta página tocou na criação de arquivos de registro da saída gerada da construção. O método de redirecionamento mostrado lá usou o comando tee para redirecionar a saída gerada para um arquivo enquanto também exibia a saída gerada na tela. Aqui, a saída gerada somente será enviada para um arquivo. Novamente, a maneira mais fácil para demonstrar a técnica é de mostrar um exemplo. Primeiro, emita o comando: ls -l /usr/bin | less Certamente, você será exigido(a) a visualizar a saída gerada uma página por vez, pois o filtro less foi usado. Agora tente o mesmo comando, porém, dessa vez, redirecione a saída gerada para um arquivo. O arquivo especial /dev/null pode ser usado em vez do nome de arquivo mostrado, porém você não terá arquivo de registro para examinar: ls -l /usr/bin | less > redirect_test.log 2>&1 Perceba que, dessa vez, o comando imediatamente retornou ao prompt do shell sem ter que paginar ao longo da saída gerada. Você agora possivelmente remova o arquivo de registro. O último exemplo usará o comando yes em combinação com o redirecionamento da saída gerada para desviar-se de ter que paginar ao longo da saída gerada e, então, fornecerá um y para uma solicitação. Essa técnica poderia ser usada em instâncias quando, de outra maneira, você teria que paginar ao longo da saída gerada de um arquivo (como um acordo de licença) e, então, responder à pergunta de você aceita o acima?. Para esse exemplo, outro conjunto curto de comandos sequenciais do Bash é exigido: cat > blfs-yes-test2 << "EOF" #!/bin/bash ls -l /usr/bin | less echo -n -e "\n\nVocê curtiu ler isso? (y,n) " read A_STRING if test "$A_STRING" = "y"; then A_STRING="Você informou a tecla 'y'" else A_STRING="Você NÃO informou a tecla 'y'" fi echo -e "\n\n$A_STRING\n\n" EOF chmod 755 blfs-yes-test2 Esse script pode ser usado para simular um aplicativo que exige que você leia um acordo de licença, então responda apropriadamente que aceita o acordo antes do aplicativo instalar qualquer coisa. Primeiro, execute o script sem quaisquer técnicas de automação emitindo ./blfs-yes-test2. Agora emita o seguinte comando que usa duas técnicas de automação, tornando-o adequado para uso em um script automatizado de construção: yes | ./blfs-yes-test2 > blfs-yes-test2.log 2>&1 Se desejado, emita tail blfs-yes-test2.log para ver o final da saída gerada paginada e a confirmação de que y foi passada ao longo para o script. Tão logo satisfeito que ele funciona como deveria, você possivelmente remova o script e o arquivo de registro. Finalmente, tenha em mente que existem muitas maneiras de automatizar e (ou) roteirizar os comandos de construção. Não existe maneira única “correta” para fazê-lo. Sua imaginação é o único limite. Dependências Para cada pacote descrito, o BLFS lista as dependências conhecidas. Essas são listadas sob vários títulos, cujo significado é como segue: * Exigida significa que o pacote alvo não pode ser construído corretamente sem que a dependência tenha sido instalada primeiro, exceto se a dependência for considerada de “tempo de execução”, o que significa que o pacote alvo pode ser construído, mas não pode funcionar sem ela. Observe que um pacote alvo pode começar a “funcionar” de muitas maneiras sutis: um arquivo de configuração instalado pode fazer o sistema init, o processo de segundo plano cron ou o processo de segundo plano de barramento executar um aplicativo automaticamente; outro pacote usando o pacote alvo como dependência pode executar um aplicativo oriundo do pacote alvo no sistema de construção; e as seções de configuração no livro BLFS também podem executar um aplicativo a partir de um pacote recém-instalado. Portanto, se estiver instalando o pacote alvo sem uma dependência Exigida (tempo de execução) instalada, você deveria instalar a dependência o mais rápido possível depois da instalação do pacote alvo. * Recomendada significa que o BLFS sugere fortemente que esse pacote seja instalado primeiro (exceto se for dito ser “tempo de execução,” veja-se abaixo) para uma construção limpa e sem problemas, que não terá problemas nem durante o processo de construção nem em tempo de execução. As instruções no livro pressupõem que esses pacotes estejam instalados. Em muitos casos, se uma dependência recomendada (não apenas “tempo de execução”) não estiver instalada, o pacote construído pode carecer algumas funcionalidades importantes (por exemplo, um reprodutor de vídeo pode reproduzir somente áudio). Às vezes, é necessário modificar as instruções do livro para desabilitar essas funcionalidades importantes. Em outros casos, o sistema de construção do pacote pode construir uma cópia da dependência (frequentemente desatualizada e às vezes com vulnerabilidades conhecidas de segurança) enviada na árvore do fonte ou pode ser baixada da a partir da Internet durante o processo de construção. Isso aumenta o tempo de construção e o uso do disco. Isso poderia causar outros problemas. Se uma dependência recomendada for “tempo de execução,” isso significa que o BLFS sugere fortemente que essa dependência seja instalada antes de usar o pacote, para obter funcionalidade completa. * Opcional significa que esse pacote pode ser instalado para funcionalidade adicional. Frequentemente, o BLFS descreverá a dependência para explicar a funcionalidade adicional que resultará. Algumas dependências opcionais são automaticamente selecionadas pelo pacote alvo se a dependência estiver instalada, enquanto outras também precisam de opções de configuração adicionais para serem habilitadas quando o pacote alvo for construído. Essas opções adicionais frequentemente estão documentadas no livro BLFS. Se uma dependência opcional for dita como “tempo de execução”, significa que você pode instalar a dependência depois de instalar o pacote alvo para suportar alguns recursos opcionais do pacote alvo se precisar desses recursos. Uma dependência opcional pode estar fora do BLFS. Se você precisar de uma tal dependência opcional externa para alguns recursos necessários, leia [1751]Indo Além do BLFS para as dicas gerais acerca de instalar um pacote fora do BLFS. Usando os Fontes Mais Atuais de Pacote Ocasionalmente você possivelmente se encontre em uma situação no livro onde um pacote não construirá ou não funcionará adequadamente. Apesar dos(as) Editores(as) tentarem garantir que cada pacote no livro construa e funcione adequadamente, ocasionalmente um pacote tenha sido negligenciado ou não foi testado com esta versão particular do BLFS. Se você descobrir que um pacote não construirá ou não funcionará adequadamente, [então] você deveria ver se existe uma versão mais recente do pacote. Tipicamente isso significa você ir ao sítio da web do(a) mantenedor(a) e transferir o tarball mais recente e tentar construir o pacote. Se você não conseguir determinar o sítio da web do(a) mantenedor(a) olhando para os URLs de transferência, [então] use o Google e consulte o nome do pacote. Por exemplo, na barra de pesquisa do Google, digite: 'nome_do_pacote download' (omita as aspas) ou algo semelhante. Ocasionalmente, digitar: 'nome_do_pacote home page' resultará em você encontrar o sítio da web do(a) mantenedor(a). Despojando Mais Uma Vez No LFS, a remoção de símbolos de depuração e entradas desnecessárias na tabela de símbolos foi discutida algumas vezes. Ao construir pacotes BLFS, geralmente não existem instruções especiais que discutam a remoção novamente. A remoção pode ser feita durante a instalação de um pacote ou posteriormente. Despojando enquanto se Instala um Pacote Existem várias maneiras de se despojar executáveis instalados por um pacote. Elas dependem do sistema de construção usado (veja-se abaixo [1752]a seção acerca de sistemas de construção), de modo que somente algumas generalidades podem ser listadas aqui: Nota Os métodos a seguir que usam o recurso de um sistema de construção ("autotools", "meson" ou "cmake") não despojarão bibliotecas estáticas, se alguma estiver instalada. Felizmente não existem muitas bibliotecas estáticas no BLFS, e uma biblioteca estática sempre pode ser despojada com segurança executando strip --strip-unneeded nela manualmente. * Os pacotes que usam "Autotools" geralmente tem um alvo install-strip nos arquivos Makefile gerados deles. Portanto, instalar executáveis despojados é apenas uma questão de usar make install-strip em vez de make install. * Os pacotes que usam o sistema de construção do meson conseguem aceitar -D strip=true ao executar meson. Se tiver esquecido de adicionar essa opção executando o meson, você também consegue executar meson install --strip em vez de ninja install. * cmake gera alvos install/strip para ambos os geradores Unix Makefiles e Ninja (o padrão é Unix Makefiles no Linux). Portanto, basta executar make install/strip ou ninja install/strip em vez das contrapartes install. * A remoção (ou não geração) de símbolos de depuração também consegue ser obtida removendo-se as opções -g em chamadas "C/C++". Como fazer isso é muito específico para cada pacote. E não remove entradas desnecessárias da tabela de símbolos. Portanto, não será explicado em detalhes aqui. Veja-se também abaixo os parágrafos acerca de otimização. Despojando Executáveis Instalados O utilitário strip muda arquivos no local, o que possivelmente quebre alguma coisa que os usem se estiverem carregados na memória. Observe que se um arquivo estiver em uso, mas recém removido do disco (ou seja, não sobrescrito nem modificado), isso não será um problema, pois o núcleo consegue usar arquivos “deletados”. Veja-se /proc/*/maps e é provável que você veja algumas entradas (deleted). O mv apenas remove o arquivo de destino a partir do diretório, mas não toca no conteúdo dele, de modo que satisfaça a condição para o núcleo usar o arquivo antigo (deletado). Porém, essa abordagem pode desanexar links rígidos em cópias duplicadas, causando um inchaço que, obviamente, é indesejado, pois estamos despojando para reduzir o tamanho do sistema. Se dois arquivos em um mesmo sistema de arquivos compartilharem o mesmo número de inode, eles serão links rígidos entre eles e deveríamos reconstruir o link. O conjunto de comandos sequenciais abaixo é apenas um exemplo. Ele deveria ser executado como o(a) usuário(a) root: cat > /usr/sbin/strip-all.sh << "EOF" #!/usr/bin/bash if [ $EUID -ne 0 ]; then echo "Precisa ser root" exit 1 fi last_fs_inode= last_file= { find /usr/lib -type f -name '*.so*' ! -name '*dbg' find /usr/lib -type f -name '*.a' find /usr/{bin,sbin,libexec} -type f } | xargs stat -c '%m %i %n' | sort | while read fs inode file; do if ! readelf -h $file >/dev/null 2>&1; then continue; fi if file $file | grep --quiet --invert-match 'not stripped'; then continue ; fi if [ "$fs $inode" = "$last_fs_inode" ]; then ln -f $last_file $file; continue; fi cp --preserve $file ${file}.tmp strip --strip-unneeded ${file}.tmp mv ${file}.tmp $file last_fs_inode="$fs $inode" last_file=$file done EOF chmod 744 /usr/sbin/strip-all.sh Se você instalar aplicativos em outros diretórios, como /opt ou /usr/local, você possivelmente queira despojar os arquivos lá também . Basta adicionar outros diretórios a escanear na lista composta de comandos find entre chaves. Para mais informações acerca de despojamento, veja-se [1753]https://www.technovelty.org/linux/stripping-shared-libraries.html . Trabalhando com diferentes sistemas de construção Existem, agora, três sistemas de construção em uso comum para converter código fonte C ou C++ em aplicativos ou bibliotecas compilados e os detalhes deles (particularmente, descobrir acerca de opções disponíveis e os valores padrão delas) diferem. Possivelmente seja mais fácil entender os problemas causados por algumas escolhas (tipicamente, execução lenta; ou uso inesperado de, ou omissão de, otimizações) iniciando-se com as variáveis de ambiente CFLAGS, CXXFLAGS e LDFLAGS. Também existem alguns aplicativos que usam Rust. A maioria dos(as) construtores(as) do LFS e do BLFS provavelmente está ciente dos básicos de CFLAGS e CXXFLAGS para alterar como um aplicativo é compilado. Tipicamente, alguma forma de otimização é usada pelos(as) desenvolvedores(as) de aplicativos (-O2 ou -O3), ocasionalmente com a criação de símbolos de depuração (-g), como padrões. Se existirem sinalizadores contraditórios (por exemplo, múltiplos valores -O), o último valor será usado. Ocasionalmente, isso significa que os sinalizadores especificados em variáveis de ambiente serão escolhidos antes dos valores codificados rigidamente no Makefile, e, portanto, ignorados. Por exemplo, onde um(a) usuário(a) especificar -O2 e isso for seguido por -O3, a construção usará -O3. Existem várias outras coisas que podem ser passadas em CFLAGS ou em CXXFLAGS, tais como permitir-se usar as extensões de conjunto de instruções disponíveis com uma microarquitetura específica (por exemplo, -march=amdfam10 ou -march=native) ajustar o código gerado para uma microarquitetura específica (por exemplo, -mtune=tigerlake ou -mtune=native; se -mtune= não for usada, a microarquitetura oriunda da configuração -march= será usada) ou especificar-se um padrão específico para C ou C++ (-std=c++17, por exemplo). Porém, uma coisa que agora veio à tona é que os(as) programadores(as) poderiam incluir asserções de depuração no código deles(as), esperando que sejam desabilitadas em lançamentos usando-se -D NDEBUG. Especificamente, se o [1754]Mesa-24.3.4 for construído com essas asserções habilitadas, algumas atividades, tais como o carregamento de níveis dos jogos, podem tomar tempos extremamente longos, mesmo em placas de vídeo de alta qualidade. Autotools com Make Essa combinação frequentemente é descrita como “CMMI” (configure; make; make install) e é usada aqui também para cobrir os poucos pacotes que tenham um conjunto de comandos sequenciais de configuração que não seja gerado por autotools. Ocasionalmente, executar-se ./configure --help produzirá opções úteis acerca de chaves que poderiam ser usadas. Em outras ocasiões, depois de olhar para a saída gerada a partir do configure, você possivelmente precise olhar para os detalhes do script para descobrir pelo que ele estava procurando atualmente. Muitos scripts de configuração escolherão quaisquer CFLAGS ou CXXFLAGS a partir do ambiente, porém os pacotes CMMI variam acerca do como esses serão misturados com quaisquer sinalizadores que, de outra maneira, seriam usados (variadamente: ignorados; usados para substituir a sugestão do(a) programador(a); usados antes da sugestão do(a) programador(a); ou usados depois da sugestão do(a) programador(a)). Na maioria dos pacotes CMMI, executar-se make listará cada comando e o executará, intercalado com quaisquer avisos. Porém, alguns pacotes tentam ser “silenciosos” e mostram somente qual arquivo eles estão compilando ou vinculando em vez de mostrar a linha de comando. Se você precisar inspecionar o comando, seja por causa de um erro, seja apenas para ver quais opções e sinalizadores estão sendo usados, adicionar V=1 à invocação do make possivelmente ajude. CMake O CMake funciona de uma maneira muito diferente e ele tem duas estruturas de retaguarda que conseguem ser usadas no BLFS: make e ninja. A estrutura de retaguarda padrão é o make, porém o ninja pode ser mais rápido sobre pacotes grandes com múltiplos processadores. Para usar o ninja, especifique -G Ninja no comando cmake. Entretanto, existem alguns pacotes que criam erros fatais nos arquivos ninja deles, porém constroem com sucesso usando o padrão dos Makefiles do Unix. A parte mais difícil do usar-se o CMake é saber quais opções você poderia desejar especificar. A única maneira de se obter uma lista do que o pacote conhece é a de executar cmake -LAH e olhar para a saída gerada para esta configuração padrão. Talvez a coisa mais importante acerca do CMake é que ele tem uma variedade de valores CMAKE_BUILD_TYPE e esses afetam os sinalizadores. O padrão é o de que isso não seja configurado e nenhum sinalizador seja gerado. Quaisquer CFLAGS ou CXXFLAGS no ambiente serão usadas. Se o(a) programador(a) tiver codificado quaisquer asserções de depuração, essas estarão habilitadas, a menos que -D NDEBUG seja usado. Os seguintes valores CMAKE_BUILD_TYPE gerarão os sinalizadores mostrados e esses virão depois de quaisquer sinalizadores no ambiente e, portanto, terão precedência. Valor Sinalizadores Debug -g Release -O3 -D NDEBUG RelWithDebInfo -O2 -g -D NDEBUG MinSizeRel -Os -D NDEBUG O "CMake" tenta produzir construções silenciosas. Para ver os detalhes dos comandos que estão sendo executados, use make VERBOSE=1 ou ninja -v. Por padrão, o "CMake" trata a instalação de arquivos diferentemente dos outros sistemas de construção: se um arquivo já existir e não for mais recente que um arquivo que o sobrescreveria, então o arquivo não será instalado. Isso possivelmente seja um problema se um(a) usuário(a) quiser registrar qual arquivo pertence a um pacote, seja usando LD_PRELOAD, ou listando arquivos mais recentes que um carimbo de tempo. O padrão pode ser mudado definindo-se a variável CMAKE_INSTALL_ALWAYS como um ("1") no ambiente, por exemplo, via export. Meson O Meson tem algumas semelhanças com o CMake, porém muitas diferenças. Para obter os detalhes das definições que você possivelmente queira mudar, você pode olhar para o meson_options.txt que normalmente está no diretório de nível de topo. Se você já configurou o pacote executando o meson e, agora, deseja mudar uma ou mais configurações, [então] você ou pode remover o diretório de construção, recriá-lo e usar as opções alteradas; ou, dentro do diretório de construção, executar meson configure, por exemplo, para configurar uma opção: meson configure -D =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 [1755]Mesa-24.3.4). Também pode ser fornecido explicitamente passando-se -D b_ndebug=true. Para ver os detalhes dos comandos que estão sendo executados em um pacote usando o meson, use ninja -v. Rustc e Cargo A maioria dos aplicativos rustc lançados é fornecida como engradado (tarballs de fonte), que consultarão um servidor para verificar as versões atuais de dependências e, então, as baixarão conforme necessário. Esses pacotes são construídos usando-se cargo --release. Na teoria, você consegue manipular a RUSTFLAGS para mudar o nível de otimização (padrão para --release é 3, isto é, -Copt-level=3, semelhante a -03) ou para forçá-lo a construir para a máquina na qual está sendo compilado, usando -Ctarget-cpu=native; porém, na prática, isso parece não fazer uma diferença significante. Se você estiver compilando um programa Rust independente (como um arquivo .rs desempacotado) executando rustc diretamente, você deveria especificar -O (a abreviatura de -Copt-level=2) ou -Copt-level=3, caso contrário ele fará uma compilação não otimizada e executará muito mais lento. Se estiver compilando o programa para depurá-lo, substitua as opções -O ou -Copt-level= por -g para produzir um programa não otimizado com informações de depuração. Semelhante ao ninja, por padrão cargo usa todos os núcleos lógicos. Isso frequentemente pode ser contornado, seja exportando-se CARGO_BUILD_JOBS= seja passando-se --jobs para cargo. Para compilar o próprio rustc, especificar-se --jobs para invocações do x.py (juntamente com a variável de ambiente CARGO_BUILD_JOBS=, que se parece com uma abordagem “cinto e suspensórios”, porém parece ser necessária) funciona na maioria. A exceção é a de executar-se os testes quando construir-se o rustc; alguns deles, ainda assim, usarão todas as CPUs online, pelo menos desde o rustc-1.42.0. Otimizando a construção Muitas pessoas preferirão otimizar compilações como acharem melhor, fornecendo CFLAGS ou CXXFLAGS. Para uma introdução às opções disponíveis com o gcc e com o g++, veja-se [1756]https://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/Optimize-Options.ht ml. 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 [1757]https://www.linuxfromscratch.org/~ken/tuning/ - em particular, README.txt, tuning-1-packages-and-notes.txt e tuning-notes-2B.txt. A coisa específica a lembrar é que se quiser experimentar alguns dos sinalizadores mais interessantes, você possivelmente precise forçar construções detalhadas para confirmar o que está sendo usado. Claramente, se estiver otimizando teu próprio aplicativo, você pode gastar tempo para perfilá-lo e, talvez, recodificar algo dele, se ele estiver lento demais. Porém, para construir um sistema inteiro, essa abordagem é impraticável. No geral, -O3 geralmente produz aplicativos mais rápidos que -O2. Especificar-se -march=native também é benéfico, porém significa que você não pode mover os binários para uma máquina incompatível - isso também pode se aplicar a máquinas mais novas, não apenas às máquinas mais antigas. Por exemplo, os aplicativos compilados para amdfam10 executam em Phenoms antigos; Kaveris; e Ryzens; porém, os aplicativos compilados para um Kaveri não executarão em um Ryzen, pois certos códigos de operação não estão presentes. Similarmente, se você construir para um Haswell, nem tudo executará em um SandyBridge. Nota Atente-se que o nome de uma configuração -march nem sempre corresponde à linha de base da microarquitetura com o mesmo nome. Por exemplo, os processadores Intel Celeron baseados em Skylake não suportam AVX, mas -march=skylake assume AVX e até mesmo AVX2. Quando uma biblioteca compartilhada é construída pelo GCC, um recurso chamado “interposição semântica” é habilitado por padrão. Quando a biblioteca compartilhada se refere a um nome de símbolo com ligação externa e visibilidade padrão, se o símbolo existir tanto na biblioteca compartilhada quanto no executável principal, a interposição semântica garante que o símbolo no executável principal sempre seja usado. Esse recurso foi inventado na tentativa de tornar o comportamento de vincular uma biblioteca compartilhada e vincular uma biblioteca estática o mais semelhante possível. Hoje, somente um pequeno número de pacotes ainda depende da interposição semântica, mas o recurso ainda está ativado por padrão do GCC, fazendo com que muitas otimizações sejam desabilitadas para bibliotecas compartilhadas porque entram em conflito com a interposição semântica. A opção -fno-semantic-interposition pode ser passada para gcc ou g++ para desabilitar a interposição semântica e habilitar mais otimizações para bibliotecas compartilhadas. Essa opção é usada como padrão de alguns pacotes (por exemplo [1758]Python-3.13.2) e também é o padrão do Clang. Existem também várias outras opções que algumas pessoas alegam que são benéficas. Na pior das hipóteses, você consegue recompilar e testar e, então, descobrir que, em seu uso, as opções não fornecem um benefício. Se construir módulos Perl ou Python, em geral as CFLAGS e CXXFLAGS usadas são aquelas que foram usadas por esses pacotes “ancestrais”. Para LDFLAGS, três opções podem ser usadas para otimização. Elas são bastante seguras de usar e o sistema de construção de alguns pacotes usa algumas dessas opções como padrão. Com -Wl,-O1, o vinculador otimizará a tabela de resumo para acelerar a vinculação dinâmica. Observe que -Wl,-O1 não tem nenhuma relação com o sinalizador de otimização do compilador -O1. Com -Wl,--as-needed, o vinculador desconsiderará opções -lfoo desnecessárias da linha de comando, ou seja, a biblioteca compartilhada libfoo só será vinculada se um símbolo em libfoo realmente estiver referenciado pelo executável ou biblioteca compartilhada sendo vinculado. Às vezes, isso pode atenuar os problemas de “dependências excessivas de bibliotecas compartilhadas” causados pela libtool. Com -Wl,-z,pack-relative-relocs, o vinculador gera uma forma mais compactada das entradas relativas de realocação para PIEs e bibliotecas compartilhadas. Ele reduz o tamanho do PIE vinculado ou da biblioteca compartilhada e acelera o carregamento do PIE ou da biblioteca compartilhada. O prefixo -Wl, é necessário porque, apesar da variável ser chamada LDFLAGS, o conteúdo dela é na verdade passado para o gcc (ou g++, clang, etc.) durante o estágio de ligação, não passado diretamente para o ld. Opções para fortalecer a construção Mesmo em sistemas de área de trabalho, existe ainda um monte de vulnerabilidades exploráveis. Para muitas dessas, o ataque vem via javascript em um navegador. Frequentemente, uma série de vulnerabilidades é usada para ganhar acesso a dados (ou, às vezes, para pwn, isto é, dominar, a máquina e instalar rootkits). A maioria das distribuições comerciais aplicará várias medidas de fortalecimento. No passado, existia o LFS Reforçado, onde o gcc (uma versão muito mais antiga) era forçado a usar o reforçamento (com opções para desativar parte dele na base do por pacote). Os livros atuais do LFS e BLFS estão levando adiante uma parte do espírito dele ao habilitar PIE (-fPIE -pie) e SSP (-fstack-protector-strong) como padrões para GCC e clang. E o lincador (ld) também habilitou -Wl,-z,relro, o que torna uma parte da Global Offset Table (GOT) imutável, por padrão desde Binutils 2.27. O que está sendo coberto aqui é diferente - primeiro você tem que ter certeza de que o pacote está realmente usando teus sinalizadores adicionados e não os substituindo. Para opções de reforço que são razoavelmente baratas, existe alguma discussão no link "ajuste" acima (ocasionalmente, uma ou mais dessas opções podem ser inadequadas para um pacote). Essas opções são -D _FORTIFY_SOURCE=2 (ou -D _FORTIFY_SOURCE=3 que é mais seguro, mas com maior sobrecarga de desempenho) e (para C++) -D _GLIBCXX_ASSERTIONS. Nas máquinas modernas, isso deveria ter somente um pequeno impacto na rapidez com que as coisas executam e, muitas vezes, não serão perceptíveis. As principais distribuições usam muito mais, como: * -Wl,-z,now: desabilita vinculação preguiçosa para aprimorar -Wl,-z,relro, de forma que todo o GOT possa se tornar imutável. * -fstack-clash-protection: impede o(a) atacante de usar um deslocamento grande o suficiente e não verificado adequadamente para pular a página de proteção de pilha colocada pelo núcleo e o canário de pilha colocado por -fstack-protector=strong, e modificar a pilha a partir de um endereço de pilha, ou vice-versa. * -ftrivial-auto-var-init=zero: inicializa algumas variáveis preenchendo zero bytes se elas não forem inicializadas por outros meios. * -fcf-protection=full: utiliza a tecnologia CET da Intel e da AMD para limitar os endereços alvo das instruções de transferência de fluxo de controle. Para torná-lo realmente eficaz para um pacote, todos os pacotes que fornecem uma biblioteca compartilhada para o pacote usar precisam ser construídos com essa opção, bem como o próprio pacote, a Glibc precisa ser configurada com a opção --enable-cet habilitada, e o sistema precisa executar no Intel Tiger Lake ou mais recente, ou no AMD Zen 3 ou mais recente. Se o critério não for atendido, o programa compilado com essa opção ainda executará, mas não realmente protegido pelo CET. No GCC 14, a opção -fhardened é uma abreviação para habilitar todas as opções de reforçamento mencionadas acima. Ela configura -D _FORTIFY_SOURCE=3 em vez de -D _FORTIFY_SOURCE=2. Você também pode encontrar o assim chamado “retpoline de espaço de usuário(a)” (-mindirect-branch=thunk etc.), que é o equivalente das mitigações de espectro aplicadas para o núcleo Linux no final de 2018. As mitigações do núcleo causaram muitas reclamações acerca da perda de desempenho. Se tiver um servidor de produção, você pode desejar considerar testar isso, junto com as outras opções disponíveis, para ver se o desempenho ainda é suficiente. Embora o gcc tenha muitas opções de fortalecimento, os pontos fortes do clang/LLVM estão em outro lugar. Algumas opções que o gcc fornece são ditas serem menos efetivas no clang/LLVM. O Debate /usr Versus /usr/local Eu deveria instalar XXX em /usr ou em /usr/local? Essa é uma pergunta sem uma resposta óbvia para um sistema baseado no LFS. Em sistemas tradicionais Unix, /usr geralmente contém arquivos que vem com a distribuição do sistema e a árvore /usr/local está livre para o(a) administrador(a) local gerenciar. A única regra realmente rígida e rápida é a de que as distribuições do Unix não deveriam tocar no /usr/local, exceto, talvez, para criar os diretórios básicos dentro dele. Com distribuições Linux, tais como Red Hat, Debian, etc., uma possível regra é a de que o /usr é gerenciado pelo sistema de pacote da distribuição e o /usr/local não o é. Dessa maneira, a base de dados do gerenciador de pacote sabe acerca de cada arquivo dentro do /usr. Os(As) usuários(as) do LFS constroem o próprio sistema deles(as) e, portanto, decidir onde o sistema termina e os arquivos locais começam não é simples. Por isso, a escolha deveria ser feita para a finalidade de tornar as coisas mais fáceis de administrar. Existem várias razões para dividir os arquivos entre o /usr e o /usr/local. * Em uma rede de comunicação de várias máquinas, todas executando o LFS; ou misturadas, o LFS e outras distribuições Linux, o /usr/local poderia ser usado para manter os pacotes que fossem comuns entre todos os computadores na rede de comunicação. Ele pode ser montado NFS ou espelhado a partir de um servidor. Aqui, local indica local para o sítio. * Em uma rede de comunicação de vários computadores, todos executando um sistema idêntico LFS, /usr/local poderia manter os pacotes que fossem diferentes entre as máquinas. Nesse caso, local se refere aos computadores individuais. * Mesmo em um computador, o /usr/local pode ser útil se você tiver várias distribuições instaladas simultaneamente e queira um local para colocar os pacotes que serão os mesmos em todas elas. * Ou você poderia reconstruir regularmente o seu LFS, porém quer um local para colocar os arquivos que você não quer reconstruir a cada vez. Dessa maneira você pode limpar o sistema de arquivos do LFS e iniciar a partir de uma partição limpa a cada vez sem perder tudo. Algumas pessoas perguntam por que não usar sua própria árvore de diretório, por exemplo, /usr/site, em vez de /usr/local? Não existe nada parando você; muitos sítios fazem as próprias árvores deles; entretanto, isso torna a instalação de software novo mais dificultosa. Os instaladores automáticos, frequentemente, procuram por dependências no /usr e no /usr/local e, se o arquivo que eles estiverem procurando estiver no /usr/site ao invés, [então] o instalador provavelmente falhará, a menos que você, especificamente, diga a ele onde procurar. Qual é a posição do BLFS a respeito? Todas as instruções do BLFS instalam os aplicativos no /usr, com instruções opcionais para instalar no /opt para alguns pacotes específicos. Remendos Opcionais Conforme seguir as várias seções no livro, você observará que o livro, ocasionalmente, inclui remendos que são exigidos para uma instalação exitosa e segura dos pacotes. A política geral do livro é a de incluir remendos que caiam em um dos seguintes critérios: * Corrige um problema de compilação. * Corrige um problema de segurança. * Corrige uma funcionalidade quebrada. Resumindo, o livro inclui somente os remendos que sejam ou exigidos ou recomendados. Existe um [1759]Sub projeto dos Remendos que hospeda vários remendos (incluindo os remendos referenciados nos livros) para te habilitar a configurar o seu LFS da maneira que você gostar. Conjuntos de Comandos Sequenciais de Inicialização do BLFS O pacote BLFS Bootscripts contém os conjuntos de comandos sequenciais de inicialização que são usados ao longo do livro. É presumido que você estará usando o pacote BLFS Bootscripts conjuntamente com um pacote compatível LFS-Bootscripts. Consulte [1760]../../../../lfs/view/12.3/chapter09/bootscripts.html para mais informação acerca do pacote LFS-Bootscripts. Informação do Pacote * Transferência: [1761]https://anduin.linuxfromscratch.org/BLFS/blfs-bootscripts/blf s-bootscripts-20250225.tar.xz O pacote BLFS Bootscripts será usado ao longo do livro BLFS para conjuntos de comandos sequenciais de inicialização. Diferente do LFS, cada conjunto de comandos sequenciais de inicialização tem um alvo de instalação separado no pacote BLFS Bootscripts. É recomendado que você mantenha o diretório do fonte do pacote por perto até completar o teu sistema BLFS. Quando um conjunto de comandos sequenciais for solicitado a partir do BLFS Bootscripts, simplesmente mude para o diretório e, como o(a) usuário(a) root, execute o dado comando make install-. Esse comando instala o conjunto de comandos sequenciais de inicialização no local apropriado dele (junto com quaisquer conjuntos de comandos sequenciais de configuração auxiliares) e, também, cria os links simbólicos adequados para iniciar e parar o serviço no nível de execução adequado. Nota Você deveria revisar cada conjunto de comandos sequenciais de inicialização antes da instalação para verificar se ele atende à tua necessidade. Verifique também se os links simbólicos de iniciar e de parar que ele cria correspondem às tuas preferências. Nota De tempos em tempos, os conjuntos de comandos sequenciais de inicialização são atualizados para acomodar pacotes novos ou para se fazer pequenas correções. Todas as versões dos conjuntos de comandos sequenciais de inicialização estão localizadas em [1762]https://anduin.linuxfromscratch.org/BLFS/blfs-bootscripts/. Acerca dos arquivos de Arquivamento do Libtool (.la) Arquivos com uma extensão .la No LFS e no BLFS, muitos pacotes usam uma cópia da libtool enviada internamente para construir em uma variedade de plataformas Unix. Isso inclui plataformas como AIX, Solaris, IRIX, HP-UX e Cygwin, bem como Linux. As origens dessa ferramenta são bastante antigas. Ela era destinada gerenciar bibliotecas em sistemas com capacidades menos avançadas que um sistema Linux moderno. Em um sistema Linux, os arquivos específicos da "libtool" geralmente são desnecessários. Normalmente as bibliotecas são especificadas no processo de construção durante a fase de ligação. Como um sistema Linux usa o [1763]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 [1764]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 # Certifique-se de que estamos executando com privilégios de "root" if test "${EUID}" -ne 0; then echo "Erro: $(basename ${0}) precisa ser executado como o(a) usuário(a) root ! Saindo..." exit 1 fi # Certifique-se de que PKG_CONFIG_PATH esteja definido se descartado pelo "sudo" source /etc/profile OLD_LA_DIR=/var/local/la-files mkdir -p $OLD_LA_DIR # Pesquise somente diretórios em /opt, mas não links simbólicos para diretórios OPTDIRS=$(find /opt -mindepth 1 -maxdepth 1 -type d) # Mova todos os arquivos ".la" encontrados para um diretório fora do caminho find /usr/lib $OPTDIRS -name "*.la" ! -path "/usr/lib/ImageMagick*" \ -exec mv -fv {} $OLD_LA_DIR \; ############### # Corrija quaisquer arquivos ".pc" que possam ter referências ".la" STD_PC_PATH='/usr/lib/pkgconfig /usr/share/pkgconfig /usr/local/lib/pkgconfig /usr/local/share/pkgconfig' # Para cada diretório que pode conter arquivos ".pc" for d in $(echo $PKG_CONFIG_PATH | tr : ' ') $STD_PC_PATH; do # Para cada arquivo "pc" for pc in $d/*.pc ; do if [ $pc == "$d/*.pc" ]; then continue; fi # Verifique cada palavra em uma linha com uma referência ".la" for word in $(grep '\.la' $pc); do if $(echo $word | grep -q '.la$' ); then mkdir -p $d/la-backup cp -fv $pc $d/la-backup basename=$(basename $word ) libref=$(echo $basename|sed -e 's/^lib/-l/' -e 's/\.la$//') # Corrige o arquivo ".pc" sed -i "s:$word:$libref:" $pc fi done done done EOF chmod +x /usr/sbin/remove-la-files.sh Bibliotecas: Estáticas ou compartilhadas? Bibliotecas: Estáticas ou compartilhadas? As bibliotecas originais eram simplesmente um arquivamento de rotinas a partir do qual as rotinas necessárias eram extraídas e vinculadas ao aplicativo executável. Elas são descritas como bibliotecas estáticas, com nomes no formato libfoo.a em sistemas operacionais do tipo UNIX. Em alguns sistemas operacionais antigos elas são o único tipo disponível. Em quase todas as plataformas Linux também existem bibliotecas “compartilhadas” (ou equivalentemente “dinâmicas”) (com nomes no formato libfoo.so) – uma cópia da biblioteca é carregada na memória virtual e compartilhada por todos os aplicativos que chamam alguma das funções dela. Isso é eficiente em termos de espaço. No passado, aplicativos essenciais, como um "shell", frequentemente eram vinculados estaticamente, de forma que existisse alguma forma de sistema mínimo de recuperação, mesmo se bibliotecas compartilhadas, como libc.so, se tornassem danificadas (por exemplo, movidas para lost+found depois de fsck após um desligamento incorreto). Hoje em dia, a maioria das pessoas usa uma instalação alternativa de sistema ou um pendrive se precisar se recuperar. Os sistemas de arquivos com registro em diário também reduzem a probabilidade desse tipo de problema. Dentro do livro, existem vários locais onde chaves de configuração, tais como --disable-static, são empregadas; e outros locais onde a possibilidade de usar versões de sistema das bibliotecas em vez das versões inclusas em outro pacote é discutida. A razão principal para isso é a de simplificar as atualizações de bibliotecas. Se um pacote for vinculado a uma biblioteca dinâmica, [então] a atualização para uma versão mais recente da biblioteca é automática tão logo a biblioteca mais recente seja instalada e o aplicativo for (re)iniciado (condicionada a que a versão maior da biblioteca não seja modificada, por exemplo, indo de libfoo.so.2.0 para libfoo.so.2.1. Ir para libfoo.so.3 exigirá recompilação – o ldd pode ser usado para encontrar quais aplicativos usam a versão antiga). Se um aplicativo for vinculado a uma biblioteca estática, [então] o aplicativo sempre tem de ser recompilado. Se você souber quais aplicativos estão vinculados a uma biblioteca estática em particular, [então] isso é meramente um aborrecimento. Entretanto, normalmente você não saberá quais aplicativos recompilar. Uma forma de identificar quando uma biblioteca estática é usada é a de tratar disso ao final da instalação de cada pacote. Escreva um script para achar todas as bibliotecas estáticas em /usr/lib ou onde quer que você esteja instalando, e, ou mova-as para outro diretório, de forma que não mais sejam encontradas pelo vinculador; ou renomeie-as, de forma que libfoo.a se torne, por exemplo. libfoo.a.oculta. A biblioteca estática pode então ser restaurada temporariamente se for efetivamente necessária, e o pacote que precisa dela pode ser identificado. Isso não deveria ser feito às cegas, pois muitas bibliotecas existem somente em uma versão estática. Por exemplo, algumas bibliotecas originárias dos pacotes glibc e gcc deveriam sempre estar presentes no sistema (libc_nonshared.a, libg.a, libpthread_nonshared.a, libssp_nonshared. a, libsupc++.a desde "glibc-2.36" e "gcc-12.2"). Se você usar essa abordagem, [então] você possivelmente descubra que mais pacotes que o que estava esperando usam uma biblioteca estática. Esse foi o caso com o nettle-2.4 na configuração padrão somente estática dele: Ele era exigido pelo GnuTLS-3.0.19, porém vinculado também em pacote(s) que usa(m) o GnuTLS, tais como o glib-networking-2.32.3. Muitos pacotes colocam algumas das funções comuns deles em uma biblioteca estática que somente é usada pelos aplicativos dentro do pacote e, crucialmente, a biblioteca não é instalada como uma biblioteca independente. Essas bibliotecas internas não são um problema – se o pacote tiver de ser reconstruído para corrigir um defeito ou uma vulnerabilidade, [então] nada mais é vinculado a elas. Quando o BLFS menciona bibliotecas de sistema, significa versões compartilhadas de bibliotecas. Alguns pacotes como [1765]Firefox-128.7.0 e [1766]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 [1767]libpng-1.6.46, se usada pelo [1768]Firefox-128.7.0). De vez em quando, um pacote envia uma biblioteca antiga e não mais pode se vincular à versão atual, porém pode se vincular a uma versão mais antiga. Nesse caso, o BLFS normalmente usará apenas a versão enviada. De quando em quando, a biblioteca inclusa não mais é desenvolvida separadamente; ou o(a) desenvolvedor(a) dela é o(a) mesmo(a) que o desenvolvedor(a) do pacote e você não tem outros pacotes que a usarão. Nesses casos, você será levado(a) a usar a biblioteca inclusa, mesmo se geralmente preferir usar as bibliotecas do sistema. Problemas Relacionados à Localidade Esta página contém informações acerca de problemas e de consequências relacionados à localidade. Nos parágrafos seguintes você encontrará uma visão geral das coisas que podem surgir ao configurar o seu sistema para várias localidades. Muitos (mas, não todos) problemas existentes relacionados à localidade podem ser classificados e enquadrados sob um dos títulos abaixo. As avaliações de gravidade abaixo usam o seguinte critério: * Crítica: O aplicativo não realiza a função principal dele. A correção seria muito invasiva; é melhor procurar por uma substituição. * Alta: Parte da funcionalidade que o aplicativo fornece não é utilizável. Se essa funcionalidade for exigida, [então] é melhor procurar por uma substituição. * Baixa: O aplicativo funciona em todos os casos típicos de uso, porém carece de alguma funcionalidade normalmente fornecida pelos equivalentes dele. Se existir uma solução alternativa conhecida para um pacote específico, ela aparecerá na página desse pacote. A Codificação Necessária Não É uma Opção Válida no Aplicativo Gravidade: Crítica Alguns aplicativos exigem que o(a) usuário(a) especifique a codificação de caracteres para os dados de entrada gerada ou de saída gerada deles e apresentam somente uma escolha limitada de codificações. Esse é o caso para a opção -X no [1769]Enscript-1.6.6; para a opção -input-charset no [1770]Cdrtools-3.02a09 não remendado; e para os conjuntos de caracteres oferecidos para exibição no menu do [1771]Links-2.30. Se a codificação exigida não estiver na lista, [então] o aplicativo geralmente se torna completamente inutilizável. Para os aplicativos não interativos, possivelmente seja possível contornar isso convertendo-se o documento para um conjunto suportado de caracteres de entrada gerada antes de submetê-lo ao aplicativo. Uma solução para esse tipo de problema é a de implementar o suporte necessário para a codificação ausente como um remendo para o aplicativo original ou encontrar um substituto. O Aplicativo Assume a Codificação Baseada no Locale dos Documentos Externos Gravidade: Alta para documentos não textuais; baixa para documentos de texto Alguns aplicativos, [1772]nano-8.3 ou [1773]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 [1774]nano-8.3; ao [1775]JOE-4.6; e a todos os reprodutores de mídia, exceto o [1776]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 [1777]Wine. O Aplicativo Usa ou Cria os Nomes de Arquivo na Codificação Errada Gravidade: Crítica O padrão POSIX manda que a codificação do nome de arquivo seja a codificação implícita pela categoria de locale LC_CTYPE atual. Essa informação está bem ocultada na página que especifica o comportamento dos aplicativos Tar e Cpio. Alguns aplicativos obtém isso errado por padrão (ou, simplesmente, não tem informação suficiente para obter isso certo). O resultado é o de que eles criam nomes de arquivo que não são subsequentemente mostrados corretamente pelo ls; ou eles se recusam a aceitar nomes de arquivo que o ls mostra adequadamente. Para a biblioteca [1778]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 [1779]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 [1780]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 [1781]OpenSSH-9.9p2). Para a finalidade de se evitar desfigurar os caracteres não ASCII quando se transferir arquivos para um sistema com um locale diferente, quaisquer dos seguintes métodos podem ser usados: * Transfira de qualquer modo; corrija o dano com o convmv. * No lado do(a) remetente, crie um arquivamento tar com a chave --format=posix passada para o tar (isso será o padrão em uma versão futura do tar). * Envie os arquivos como anexos de mensagem de correio eletrônico. Os clientes de correio eletrônico especificam a codificação dos nomes de arquivos anexados. * Escreva os arquivos para um disco removível formatado com um sistema de arquivos FAT ou FAT32. * Transfira os arquivos usando o Samba. * Transfira os arquivos via FTP usando um servidor (atualmente, isso significa somente o wu-ftpd, que tem um mau histórico de segurança) e um cliente (por exemplo, o lftp) cientes da RFC2640. Os últimos quatro métodos funcionam, pois os nomes de arquivos são convertidos automaticamente do locale do(a) remetente para UNICODE e armazenados ou enviados nessa forma. Eles são então convertidos transparentemente do UNICODE para a codificação do locale do(a) recipiente. O Aplicativo Quebra Caracteres Multi Byte ou Não Conta Células de Caracteres Corretamente Gravidade: Alta ou crítica Muitos aplicativos foram escritos em uma era mais antiga onde locales multi Byte não eram comuns. Tais aplicativos assumem que o tipo de dados "char" do C, que é um Byte, pode ser usado para armazenar caracteres únicos. Além disso, eles assumem que qualquer sequência de caracteres é uma sequência de caracteres válida e que cada caractere ocupa uma célula única de caractere. Tais presunções quebram completamente em locales UTF-8. A manifestação visível é a de que o aplicativo trunca sequências de caracteres prematuramente (isto é, em oitenta (80) Bytes, em vez de oitenta (80) caracteres). Os aplicativos baseados em terminal não colocam o cursor corretamente na tela; não reagem à tecla "Backspace" apagando um caractere; e deixam caracteres inúteis ao atualizar a tela, geralmente transformando a tela em uma completa bagunça. Corrigir esses tipos de problemas é uma tarefa tediosa, a partir de um ponto de vista do(a) programador(a), semelhante a todos os outros casos de retro adequar conceitos novos no projeto falho antigo. Nesse caso, deve-se reprojetar todas as estruturas de dados para a finalidade de acomodar ao fato de que um caractere completo possivelmente abranja um número variável de "char"s (ou alternar para wchar_t e converter conforme necessário). Também, para cada chamada à "strlen" e funções similares, descobrir se um número de Bytes; um número de caracteres; ou a largura da sequência de caracteres realmente foi declarada. Ocasionalmente, é mais rápido escrever um aplicativo com a mesma funcionalidade desde o zero. Entre os pacotes do BLFS, esse problema se aplica ao [1782]xine-ui-0.99.14 e a todos os shells. Indo Além do BLFS Os pacotes que são instalados neste livro são apenas a ponta do iceberg. Nós esperamos que a experiência que você ganhou com o livro LFS e com o livro BLFS te dará o conhecimento necessário para compilar, instalar e configurar pacotes que não estejam inclusos neste livro. Quando você quiser instalar um pacote para um local outro que / ou /usr, você estará instalando fora das configurações padrão de ambiente na maioria das máquinas. Os seguintes exemplos deveriam te auxiliar a determinar como corrigir essa situação. Os exemplos cobrem o intervalo completo de configurações que possivelmente precisem de atualização, porém eles não são todo o necessário em cada situação. * Expanda a PATH para incluir $PREFIX/bin. * Expanda a PATH para o(a) root para incluir $PREFIX/sbin. * Adicione $PREFIX/lib ao /etc/ld.so.conf; ou expanda a LD_LIBRARY_PATH para inclui-lo. Antes de usar a última opção, consulte [1783]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 [1784]https://sourceforge.net/directory/; e procure no "GitHub" por ele em [1785]https://github.com/. Também, procure no "Google" em [1786]https://google.com/. Ocasionalmente, uma busca pelo rpm em [1787]https://rpmfind.net/; ou pelo deb em [1788]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 [1789]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 [1790]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" [1791]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 [1792]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 [1793]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 [1794]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 [1795]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 [1796]https://mirror.rackspace.com/gentoo-portage/ e [1797]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 [1798]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 [1799]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 [1800]http://ftp.ubuntu.com/ubuntu/pool/ - vejam-se as observações Debian acima. Se tudo o mais falhar, [então] tente a lista de discussão "blfs-support". Dica Se você tiver encontrado um pacote que está disponível somente no formato .deb ou no .rpm, [então] existem dois scripts pequenos, rpm2targz e deb2targz, que estão disponíveis em [1801]https://anduin.linuxfromscratch.org/BLFS/extras/deb2targz.tar.bz2 e [1802]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 [1803]https://lore.kernel.org/all/20021016121842.GA2292@ncsu.edu/2-rpm2 cpio funciona para a maioria dos "source rpms". O script "rpm2targz" usará um script ou binário "rpm2cpio" se um estiver no teu caminho. Observe que o "rpm2cpio" desempacotará um "source rpm" no diretório atual, dando um "tarball"; um arquivo de especificação; e, talvez, remendos ou outros arquivos. Parte II. Configuração Pós LFS e Software Extra Capítulo 3. Problemas Depois da Configuração do LFS A intenção do LFS é a de fornecer um sistema básico sobre o qual você possa construir. Existem várias coisas acerca de aprimorar o sistema que muitas pessoas se questionam tão logo tenham feito a instalação básica. Nós esperamos cobrir esses problemas neste capítulo. A maioria das pessoas vindas de origens não Unix para o Linux acha o conceito de arquivos de configuração somente texto um pouco estranho. No Linux, quase toda a configuração é feita via manuseio de arquivos de texto. A maioria desses arquivos pode ser encontrada na hierarquia /etc. Existem frequentemente aplicativos gráficos de configuração disponíveis para diferentes subsistemas, porém a maioria é simplesmente estrutura bonita de interação direta com o(a) usuário(a) para o processo de editar um arquivo de texto. A vantagem da configuração somente texto é a de que você consegue editar os parâmetros usando o seu editor de texto favorito, seja ele vim; emacs; ou qualquer outro editor. A primeira tarefa é a de fazer um dispositivo de inicialização de recuperação em [1804]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—[1805]Os Arquivos de Iniciação do Shell Bash e [1806]Os Arquivos vimrc. Os tópicos restantes, [1807]Personalizando o seu Logon com o /etc/issue e [1808]Geração de número aleatório, são então endereçados, nessa ordem. Eles não tem muita interação com os outros tópicos neste capítulo. Criando um Dispositivo Personalizado de Inicialização Necessidades Decentes do Dispositivo de Inicialização de Resgate Esta seção realmente é a respeito de criar um dispositivo de resgate. Como o nome resgate indica, o sistema anfitrião tem um problema, frequentemente informação de partição perdida ou sistemas de arquivo corrompidos, que o impede de inicializar e (ou) de operar normalmente. Por essa razão, você não deve depender dos recursos oriundos do anfitrião sendo "resgatado". Presumir que qualquer dada partição ou unidade rígida estará disponível é uma suposição arriscada. Em um sistema moderno, existem muitos dispositivos que podem ser usados como um dispositivo de resgate: disquete; CDROM; unidade USB; ou mesmo uma placa de rede. Qual desses você usa depende do seu hardware e do seu BIOS. No passado, um dispositivo de resgate era concebido para ser um disquete. Atualmente, muitos sistemas nem mesmo tem uma unidade de disquete. Construir um dispositivo de resgate completo é uma tarefa desafiadora. De muitas maneiras, isso é equivalente a construir um sistema LFS inteiro. Adicionalmente, seria uma repetição da informação já disponível. Por essas razões, os procedimentos para uma imagem de dispositivo de resgate não são apresentados aqui. Criando um Disquete de Resgate O software dos sistemas atuais cresceu muito. O Linux 2.6 não mais suporta inicializar diretamente a partir de um disquete. Apesar disso, existem soluções disponíveis usando versões mais antigas do Linux. Uma das melhores é o Disco de Root/Inicialização do Tom disponível em [1809]http://www.toms.net/rb/. Isso fornecerá um sistema mínimo Linux em disquete único e fornece a habilidade para personalizar o conteúdo do seu disco se necessário. Criando um CD-ROM Inicializável Existem várias fontes que podem ser usadas para um CD-ROM de resgate. Quase quaisquer CD-ROMs ou DVDs de instalação das distribuições comerciais funcionarão. Essas incluem RedHat; Ubuntu; e SuSE. Uma opção muito popular é a Knoppix. Também, a Comunidade do LFS desenvolveu o próprio LiveCD dela, disponível em [1810]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 [1811]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 [1812]Capítulo 10 do LFS. Criando uma Unidade USB Inicializável Uma unidade Pen USB, por vezes chamada de unidade Polegar, é reconhecida pelo Linux como um dispositivo SCSI. Usar um desses dispositivos como um dispositivo de resgate tem a vantagem de que, geralmente, ele é largo o suficiente para manter mais que uma imagem de inicialização mínima. Você consegue salvar dados críticos na unidade, bem como usá-la para diagnosticar e recuperar um sistema danificado. Inicializar tal unidade exige suporte BIOS, porém construir o sistema consiste de formatar a unidade; adicionar o GRUB; bem como o núcleo Linux e arquivos de suporte. Acerca das Fontes do Console Um sistema LFS pode ser usado sem uma área de trabalho gráfica e, a menos ou até que instale o [1813]um ambiente gráfico, você terá que trabalhar no console. A maioria, se não todos, dos PCs inicializa com uma fonte 8x16 - qualquer que seja o tamanho atual da tela. Existem umas poucas coisas que você pode fazer para alterar a exibição no console. A maioria delas envolve mudar a fonte, porém a primeira altera a linha de comando usada pelo GRUB. Configurando uma resolução menor de tela no grub As telas modernas frequentemente tem muito mais pixeis que as telas usadas no passado. Se a tua tela for da largura de mil e seiscentos (1.600) pixeis, uma fonte 8x16 te dará duzentas (200) colunas de texto - a menos que o teu monitor seja enorme, o texto será pequeno. Uma das maneiras de se contornar isso é a de se dizer ao GRUB e ao núcleo para usar uma resolução menor, tal como 1.024x768 ou 800x600; ou mesmo 640x480. Mesmo se a tua tela não tiver uma proporção de aspecto de 4:3, isso deveria funcionar. Se você tiver seguido o livro LFS para configurar teu núcleo com SimpleDRM habilitado e o controlador dedicado de núcleo para tua GPU (por exemplo, i915 ou AMDGPU) for construído como um módulo de núcleo, antes que o controlador dedicado seja carregado, o controlador SimpleDRM será usado para exibição. O controlador SimpleDRM em si não consegue mudar a resolução, de forma que você precisa dizer ao GRUB para configurar a resolução adequada antes de carregar o núcleo modificando a linha set gfxpayload=1024x768x32 no [1814]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 [1815]edid-decode e execute o comando edid-decode /sys/class/drm/card-/edid para mostrar as informações (incluindo o nome do modelo e as resoluções suportadas) acerca do monitor conectado na saída. Se decidir que deseja fazer isso, você pode então (como o(a) usuário(a) root) editar /boot/grub/grub.cfg. Usando as fontes psf padrão No LFS o pacote kbd é usado. As fontes que ele fornece são as Fontes de Tela do PC, geralmente chamadas de PSF, e elas foram instaladas no /usr/share/consolefonts. Onde essas incluem uma tabela de mapeamento Unicode, o sufixo do arquivo frequentemente é mudado para .psfu, apesar de pacotes tais como o terminus-font (veja-se abaixo) não adicionarem o 'u'. Essas fontes geralmente são comprimidas com o gzip para economizar espaço, porém isso não é essencial. As telas de texto iniciais do PC tinham oito (08) cores; ou dezesseis (16) cores se as versões brilhantes das oito (08) cores originais fossem usadas. Uma fonte PSF pode incluir até duzentos e cinquenta e seis (256) caracteres (tecnicamente, glifos) enquanto permite dezesseis (16) cores; ou até quinhentos e doze (512) caracteres (caso no qual, as cores brilhantes não estarão disponíveis). Claramente, essas fontes de console não podem ser usadas para exibir texto CJK - isso precisaria de centenas de glifos disponíveis. Algumas fontes no kbd conseguem cobrir mais que quinhentos e doze (512) pontos de código ('caracteres'), com graus variantes de fidelidade: Unicode contém vários pontos de código de espaço em branco os quais podem todos serem mapeados para um espaço; variedades de traços podem ser mapeados para um sinal de menos; aspas inteligentes podem ser mapeadas para as aspas ASCII regulares em vez de para o que é usado para "ponto de código não presente ou inválido"; e aquelas letras cirílicas ou gregas que se parecem com letras latinas podem ser mapeadas nelas, de forma que 'A' também pode cumprir o dever para o A cirílico e grego Alfa; e 'P' também pode cumprir o dever para o cirílico ER e grego RHO. Infelizmente, onde uma fonte tenha sido criada a partir de um arquivo BDF (o método no terminus e no [1816]console-setup do Debian) tal mapeamento dos pontos de código adicionais em um glifo existente nem sempre é feito, apesar das fontes ter-vXXn do terminus fazerem isso bem. Existem mais que cento e vinte (120) combinações de fonte e tamanho no kbd: frequentemente uma fonte é fornecida em vários tamanhos de caracteres; e, de vez em quando, as variedades cobrem subconjuntos diferentes do Unicode. A maioria é da largura de oito (08) pixeis, em alturas de oito (08) até dezesseis (16) pixeis; porém, existem umas poucas que são da largura de nove (09) pixeis; algumas outras são 12x22; e mesmo uma, (latarcyrheb-sun32.psfu), que foi escalada até 16x32. Usar uma fonte maior é outra maneira de tornar o texto mais fácil de ler em uma tela grande. Testando fontes diferentes Você consegue testar as fontes como um(a) usuário(a) normal. Se tiver uma fonte que não tenha sido instalada, [então] você consegue carregá-la com: setfont /caminho/para/sua_fonte.ext Para as fontes já instaladas você precisa somente do nome; assim, usando gr737a-9x16.psfu.gz como um exemplo: setfont gr737a-9x16 Para ver os glifos na fonte, use: showconsolefont Se a fonte aparentar como se pudesse ser útil, você pode então ir em frente para testá-la mais minuciosamente. Quando você encontrar uma fonte que desejar usar, como o(a) usuário(a) root edite o /etc/sysconfig/console conforme descrito na seção 9.6.5 do LFS [1817]../../../../lfs/view/12.3/chapter09/usage.html . Para fontes não fornecidas com o pacote kbd, você precisará opcionalmente comprimi-la(s) com o gzip e então instalá-la(s) como o(a) usuário(a) root. Editando fontes usando o psf-tools Apesar de algumas fontes de console serem criadas a partir de arquivos "BDF", que é um formato de texto com valores hexadecimais para os pixeis em cada linha do caractere, existem ferramentas mais modernas disponíveis para editar fontes "psf". O pacote [1818]psftools te permite despejar uma fonte para uma representação de texto com um travessão para um pixel que esteja desligado (preto); e uma cerquilha para um pixel que esteja ligado (branco). Você consegue então editar o arquivo de texto para adicionar mais caracteres; ou remodelá-los; ou mapear pontos extras de código para eles; e, então, criar uma fonte "psf" nova com as suas mudanças. Usando fontes a partir da fonte Terminus O pacote [1819]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 [1820]Aplicativos do Xorg não tiver sido instalado. O script configure somente é realmente útil se você for em frente para instalar todas as fontes (console e mapa de bits do X11) nos diretórios corretos, como em uma distribuição. Para construir somente as fontes PSF e as dependências delas, execute: make psf Isso criará mais que duzentas e quarenta (240) fontes ter-*.psf. O sufixo 'b' indica brilhante; 'n' indica normal. Você consegue então testá-las para ver se alguma se adéqua às suas exigências. A menos que esteja criando uma distribuição, parece não fazer sentido instalá-las todas. Como um exemplo, para instalar a última dessas fontes, você pode gzipá-la e, então, como o(a) usuário(a) root: install -v -m644 ter-v32n.psf.gz /usr/share/consolefonts Acerca de Firmware Em alguns PCs recentes, pode ser necessário, ou desejável, carregar firmware para fazê-los funcionar da melhor forma possível. O núcleo ou os controladores de núcleo procuram imagens de firmware em /lib/firmware. Mas no LFS /lib é um link simbólico para usr/lib, de forma que o diretório que contém os arquivos de firmware é, na verdade, /usr/lib/firmware. Atualmente, a maioria do firmware pode ser encontrada em um repositório git, o qual pode ser visualizado no navegador com a URL [1821]https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-fi rmware.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 [1822]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 [1823]git-2.48.1 e clone [1824]https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-fi rmware.git, ou abra essa URL em um navegador e baixe o instantâneo mais recente listado na tabela Tag. Importante Observe que alguns arquivos de firmware exigidos (e diretórios) são, na verdade, links simbólicos para outros arquivos (ou diretórios). Esses links simbólicos não são armazenados no repositório Git; em vez disso, eles estão documentados no arquivo WHENCE. Cada linha começando com Link: descreve um link simbólico. Se você estiver baixando um item que precisa e ele for um link simbólico (ou em um diretório que seja um link simbólico), você precisa criar o link simbólico manualmente e baixar o alvo. Por outro lado, se você quiser todos os arquivos de firmware, use o comando ./copy-firmware.sh /usr/lib/firmware que copiará os arquivos de firmware e criará todos os links simbólicos no arquivo WHENCE, em vez de um comando de cópia simples como cp -r * /usr/lib/firmware/. Para algum outro firmware, particularmente para microcódigo da Intel e certos dispositivos wifi, o firmware necessário não está disponível no repositório acima. Algo disso será endereçado abaixo, porém uma busca da Internet pelo firmware necessário de vez em quando é necessária. Os arquivos de firmware convencionalmente são referenciados como blobs, pois você não consegue determinar o que eles farão. Observe que o firmware é distribuído sob diferentes licenças que não permitem desmontagem ou engenharia reversa. Firmware para PCs caem em quatro categorias: * Atualizações para a CPU contornar erros, geralmente referenciadas como microcódigo. * Firmware para controladores de vídeo. Em máquinas x86, isso é exigido para dispositivos ATI (chips Radeon e AMDGPU); e possivelmente seja útil para GPUs Intel (Skylake e posteriores) e NVIDIA (Kepler e posteriores). Dispositivos ATI Radeon e AMDGPU todos exigem firmware para estarem aptos para usar KMS (kernel modesetting - a opção preferida), bem como para o Xorg. GPUs integradas Intel a partir do Skylake em diante conseguem usar firmware para GuC (o microcontrolador Graphics) e, também, para o HuC (microcontrolador HEVC/H265, que descarrega para a GPU); e o DMC (Display Microcontroller) para fornecer estados adicionais de baixa eletricidade. O GuC e o HuC tiveram um histórico duvidoso no núcleo e o firmware atualizado possivelmente esteja desabilitado por padrão, dependendo da sua versão de núcleo. Maiores detalhes podem ser encontrados em [1825]01.org; e [1826]Arch linux. GPUs NVIDIA a partir do Kepler em diante exigem firmware assinado, caso contrário o controlador nouveau estará inapto para fornecer aceleração de hardware. A NVIDIA agora lançou firmware até Ada Lovelace (série GeForce 40) para linux-firmware. * Atualizações de firmware para portas cabeadas de rede de comunicação. A maioria delas funciona mesmo sem as atualizações, porém provavelmente funcionarão melhor com o firmware atualizado. Para alguns laptops modernos, o firmware para ambos, ethernet cabeado (por exemplo, rtl_nic), e também para dispositivos bluetooth (por exemplo, qca), é exigido antes que a rede de comunicação cabeada possa ser usada. * Firmware para outros dispositivos, tais como NICs sem fios. Esses dispositivos não são exigidos para o PC inicializar, porém precisam do firmware antes que esses dispositivos possam ser usados. Nota Apesar de não necessárias para carregar um blob de firmware, as seguintes ferramentas possivelmente sejam úteis para determinar, obter ou preparar o firmware necessário para a finalidade de carregá-lo no sistema: [1827]cpio-2.15; [1828]git-2.48.1; [1829]pciutils-3.13.0; e [1830]Wget-1.25.0 Atualizações de microcódigo para CPUs Em geral, microcódigo pode ser carregado pelo BIOS ou pela UEFI e poderia ser atualizado atualizando-se para uma versão mais recente daqueles. No Linux, você também pode carregar o microcódigo a partir do núcleo se estiver usando um processador AMD família 10h ou posterior (introduzido primeiramente no final de 2007); ou um processador Intel a partir de 1998 e posterior (Pentium4, Core, etc), se microcódigo atualizado tiver sido lançado. Essas atualizações duram somente até que a máquina seja desligada, de forma que elas precisam ser aplicadas a cada inicialização. Nota Em alguns casos raros, uma atualização de microcódigo oriunda do núcleo pode ser inefetiva. Por exemplo, apesar de intel-microcode-20241029 conter a revisão de microcódigo Raptor Lake 0x12b, que visa a corrigir um problema notório de voltagem excessiva que causa problemas de estabilidade e até mesmo danos permanentes para a CPU, quando o núcleo inicializa, já é [1831]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 [1832]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 [1833]Intel Disables TSX Instructions: Erratum Found in Haswell, Haswell-E/EP, Broadwell-Y). Sem essa atualização, a "glibc" pode fazer a coisa errada em situações incomuns. Nas versões anteriores deste livro, era recomendado o carregamento atrasado do microcódigo para verificar se ele seria aplicado, seguido pelo uso de um "initrd" para forçar o carregamento antecipado. Mas agora que o conteúdo do "tarball" do microcódigo "Intel" está documentado e o microcódigo "AMD" pode ser lido por um script "Python" para determinar quais máquinas ele cobre, não existe razão real para usar o carregamento atrasado. Ainda pode ser possível forçar manualmente o carregamento atrasado do microcódigo. Mas isso possivelmente cause mau funcionamento do núcleo e você mesmo(a) deveria correr o risco. Você precisará reconfigurar teu núcleo para carregamento atrasado, mas carregamento antecipado sempre é suportado pelo núcleo Linux versão 6.6 ou posterior em um sistema x86 (não importa se 32 bits ou 64 bits). As instruções aqui te mostrarão como criar um initrd para carregamento antecipado. Também é possível construir o mesmo arquivo binário de microcódigo interno ao núcleo, o que permite carregamento antecipado, mas exige que o núcleo seja recompilado para atualizar o microcódigo. Para confirmar qual(is) processador(es) você tem (se mais que um, eles serão idênticos) olhe em "/proc/cpuinfo". Determine os valores decimais da família da "CPU"; do modelo; e da revisão executando o seguinte comando (também informará a versão atual do microcódigo): head -n7 /proc/cpuinfo Converta a família da "CPU", o modelo e a revisão em pares de dígitos hexadecimais e lembre-se do valor do campo “microcode”. Agora você pode verificar se existe algum microcódigo disponível. Se você estiver criando um "initrd" para atualizar "firmware" para máquinas diferentes, como uma distribuição faria, [então] vá para baixo até 'Carregamento antecipado do microcódigo' e concatene todos os "blobs" "Intel" para "GenuineIntel.bin"; ou concatene todos os "blobs" "AMD" para "AuthenticAMD.bin". Isso cria um "initrd" mais largo - para todas as máquinas "Intel" na atualização 20200609, o tamanho era de três (3,0) MB comparado a tipicamente vinte e quatro (24) KB para uma máquina. Microcódigo Intel para a CPU O primeiro passo é o de obter a versão mais recente do microcódigo da Intel. Isso precisa ser feito navegando-se até [1834]https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Fil es/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 [1835]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 [1836]“Carregamento antecipado do microcódigo”. Microcódigo AMD para a CPU Comece baixando um contêiner do "firmware" para a família da sua "CPU" a partir de [1837]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 [1838]https://github.com/AMDESE/amd_ucode_info/blob/master/amd_ucode_in fo.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 [1839]“Carregamento antecipado do microcódigo”. Carregamento antecipado do microcódigo Se você tiver estabelecido que o microcódigo atualizado está disponível para o seu sistema, [então] é hora de prepará-lo para o carregamento antecipado. Isso exige um pacote adicional, o [1840]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 pelo nome do contêiner para a família da sua CPU): cp -v ../ kernel/x86/microcode/AuthenticAMD.bin Ou, para uma máquina Intel, copie o blob apropriado usando este comando: cp -v ../intel-ucode/ 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 [1841]“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= ro [ 0.585605] microcode: Current revision: 0x000000b8 [ 0.585611] microcode: Updated early from: 0x00000086 Um exemplo histórico AMD: [ 0.000000] Linux version 4.15.3 (ken@testserver) (gcc version 7.3.0 (GCC)) #2 SMP Sun Feb 18 02:32:03 GMT 2018 [ 0.000000] Command line: BOOT_IMAGE=/vmlinuz-4.15.3-sda5 root=/dev/sda5 ro [ 0.307619] microcode: microcode updated early to new patch_level=0x010000c8 [ 0.307678] microcode: CPU0: patch_level=0x010000c8 [ 0.307723] microcode: CPU1: patch_level=0x010000c8 [ 0.307795] microcode: Microcode Update Driver: v2.2. Firmware para Placas de Vídeo Firmware para chips de vídeo ATI Radeon Os dispositivos iniciais Radeon precisavam somente de um blob de firmware de 2K. Os dispositivos recentes precisam de vários blobs e alguns deles são muito maiores. O tamanho total do diretório do firmware Radeon é de mais que 500K — em um sistema largo moderno você provavelmente pode poupar o espaço, porém ainda é redundante instalar todos os arquivos não usados a cada vez que construir um sistema. Uma abordagem melhor é a de instalar o [1842]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 [1843]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 [1844]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 /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 [1845]“A respeito do initramfs” para detalhes) ou incluí-los na própria imagem do núcleo (leia-se [1846]“Incluir Blobs de Firmware na Imagem do Núcleo” para detalhes). "Firmware" para chips de vídeo "amdgpu" "AMD"/"ATI" Todos os controladores de vídeo que usam o controlador "amdgpu" do núcleo exigem "firmware", se você estará usando o controlador "amdgpu" do "Xorg", o controlador "modesetting" do "xserver" ou apenas o "modesetting" do núcleo para obter um "framebuffer" do console maior que "80x25". Instale [1847]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 [1848]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 /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 [1849]“A respeito do initramfs” para detalhes) ou incluí-los na própria imagem do núcleo (leia-se [1850]“Incluir Blobs de Firmware na Imagem do Núcleo” para detalhes). Firmware para chips de vídeo NVIDIA Algumas GPUs NVIDIA a partir da Kepler em diante (incluindo todas as GPUs NVIDIA GeForce RTX e séries GTX 9xx em diante) exigem firmware assinado pela NVIDIA para funcionar. Para o controlador Nouveau, a NVIDIA lançou os arquivos assinados de firmware no diretório nvidia/ do linux-firmware. Leia-se [1851]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 [1852]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 [1853]o VideoAcceleration do wiki Nouveau. Para extrair e instalar esses arquivos de firmware, emita: wget https://anduin.linuxfromscratch.org/BLFS/nvidia-firmware/extract_firmware.p y wget https://us.download.nvidia.com/XFree86/Linux-x86/340.32/NVIDIA-Linux-x86-34 0.32.run sh NVIDIA-Linux-x86-340.32.run --extract-only python3 extract_firmware.py mkdir -p /usr/lib/firmware/nouveau cp -d nv* vuc-* /usr/lib/firmware/nouveau/ Firmware para Interfaces de Rede de Comunicação O núcleo gosta de carregar firmware para alguns controladores de rede de intercomunicação, particularmente aqueles provenientes da Realtek (o diretório /usr/lib/linux-firmware/rtl_nic/), mas eles geralmente parecem funcionar sem ele. Portanto, você pode inicializar o núcleo, verificar o dmesg para mensagens acerca desse firmware ausente e, se necessário, baixar o firmware e colocá-lo no diretório especificado em /usr/lib/firmware, de forma que ele seja encontrado em inicializações subsequentes. Observe que com os núcleos atuais isso funciona independentemente de o controlador ser compilado internamente ou construído como um módulo; não existe necessidade de construir esse firmware internamente no núcleo. Aqui está um exemplo onde o controlador R8169 foi compilado internamente, mas o firmware não foi disponibilizado. Uma vez que o firmware tenha sido fornecido, não existiu menção a ele em inicializações posteriores. dmesg | grep firmware | grep r8169 [ 7.018028] r8169 0000:01:00.0: Direct firmware load for rtl_nic/rtl8168g-2.f w failed with error -2 [ 7.018036] r8169 0000:01:00.0 eth0: unable to load firmware patch rtl_nic/rt l8168g-2.fw (-2) Firmware para Base de Dados Regulatória de Dispositivos Sem Fio Diferentes países tem diferentes regulamentações acerca do uso do espectro de rádio de dispositivos sem fio. Você pode instalar um firmware para fazer os dispositivos sem fio obedecerem às regulamentações locais do espectro, de forma que você não seja questionado(a) por autoridades locais ou encontre tua placa de rede sem fio bloqueando as frequências de outros dispositivos (por exemplo, controles remotos). O firmware da base de dados regulatória pode ser baixado a partir de [1854]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 [1855]“Firmware para Placas de Vídeo”. O ponto de acesso (AP) enviaria um código de país para tua NIC sem fio e [1856]wpa_supplicant-2.11 diria ao núcleo para carregar a regulação desse país a partir de regulatory.db, e aplicá-la. Observe que vários AP não enviam esse código de país, de forma que você possivelmente fique bloqueado(a) para um uso bastante restrito (especialmente se quiser usar tua interface como um AP). Firmware Aberto de Som Alguns sistemas (especialmente laptops econômicos) utilizam um DSP fornecido com a CPU para conexão com o codificador de áudio. O Firmware Aberto de Som precisa ser carregado no DSP para torná-lo funcional. Esses arquivos de firmware podem ser baixados a partir de [1857]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 [1858]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 [1859]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 [1860]“Configurando o ALSA Utilities” para configurar tua placa de som para ALSA corretamente. Firmware para Outros Dispositivos Identificar o firmware correto tipicamente exigirá que você instale o [1861]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 [1862]iw-6.9, [1863]Wireless Tools-29 or [1864]wpa_supplicant-2.11. Firmware possivelmente também seja necessário para outros dispositivos, tais como alguns controladores SCSI; adaptadores bluetooth; ou gravadores de TV. Os mesmos princípios se aplicam. Incluir Blobs de Firmware na Imagem do Núcleo Alguns controladores, principalmente os controladores para GPU ATI ou AMD, exigem os arquivos de firmware acessíveis no momento em que são carregados. O método mais fácil de lidar com esses controladores é o de construí-los como um módulo do núcleo. Um método alternativo é o de criar um initramfs (leia-se [1865]“A respeito do initramfs” para detalhes) incluindo os arquivos de firmware. Se não quiser usar nenhum dos métodos, você pode incluir os arquivos de firmware na própria imagem do núcleo. Instale os arquivos de firmware necessários em /usr/lib/firmware primeiro, depois configure a seguinte configuração do núcleo e reconstrua o núcleo: Device Drivers ---> Generic Driver Options ---> Firmware loader ---> <*> Firmware loading facility [FW_LOADER] (xx/aa.bin xx/bb.bin) Build named firmware blobs into the kernel binary ... [EXTRA_FIRMWARE] # This is the default, you can change it to "/usr/lib/firmware" # if you want: (/lib/firmware) Firmware blobs root directory ... [EXTRA_FIRMWARE_DIR] Substitua xx/aa.bin xx/bb.bin por uma lista de caminhos separados por espaços em branco para os arquivos de firmware necessários, relativos a /usr/lib/firmware. Um método mais fácil que digitar manualmente a lista (ele possivelmente seja longa) é o de executar o seguinte comando: echo CONFIG_EXTRA_FIRMWARE='"'$({ cd /usr/lib/firmware; echo amdgpu/* })'"' >> . config make oldconfig Substitua amdgpu/* por um padrão de shell que corresponda aos arquivos de firmware necessários. Atenção Não distribua uma imagem do núcleo contendo o firmware para terceiros(as) ou você possivelmente viole a GPL. Acerca de Dispositivos Apesar da maioria dos dispositivos necessitados pelos pacotes no BLFS e além serem configurados adequadamente pelo udev usando as regras padrão instaladas pelo LFS em /etc/udev/rules.d, existem casos onde as regras precisam ser modificadas ou estendidas. Múltiplas Placas de Som Se existirem múltiplas placas de som em um sistema, [então] a placa de som "padrão" se torna aleatória. O método para estabelecer a ordem da placa de som depende se os controladores são módulos ou não. Se os controladores da placa de som forem compilados internamente no núcleo, [então] o controle é via parâmetros de linha de comando do núcleo em /boot/grub/grub.cfg. Por exemplo, se um sistema tiver ambas, uma placa FM801 e uma placa PCI SoundBlaster, [então] o seguinte pode ser acrescentado à linha de comando: snd-fm801.index=0 snd-ens1371.index=1 Se os controladores da placa de som forem construídos como módulos, [então] a ordem pode ser estabelecida no arquivo /etc/modprobe.conf com: options snd-fm801 index=0 options snd-ens1371 index=1 Consequências do Dispositivo USB Os dispositivos USB geralmente tem dois tipos de nós de dispositivo associados com eles. O primeiro tipo é criado pelos controladores específicos do dispositivo (por exemplo, usb_storage/sd_mod ou usblp) no núcleo. Por exemplo, um dispositivo USB de armazenamento em massa seria /dev/sdb; e uma impressora USB seria /dev/usb/lp0. Esses nós de dispositivo existem somente quando o controlador específico do dispositivo estiver carregado. O segundo tipo de nós de dispositivo (/dev/bus/usb/BBB/DDD, onde BBB é o número do barramento e DDD é o número do dispositivo) é criado mesmo se o dispositivo não tiver um controlador de núcleo. Ao usar esses nós de dispositivo USB "crus", um aplicativo consegue trocar pacotes USB arbitrários com o dispositivo, isto é, contornar o possivelmente existente controlador de núcleo. O acesso a nós de dispositivo USB brutos é necessário quando um aplicativo do espaço do(a) usuário(a) estiver atuando como um controlador de dispositivo. Entretanto, para o aplicativo abrir o dispositivo com sucesso, as permissões tem de ser configuradas corretamente. Por padrão, devido a motivos de segurança, todos os dispositivos USB brutos são de propriedade do(a) usuário(a) root e do grupo root, e tem permissões 0664 (o acesso de leitura é necessário, por exemplo, para o lsusb funcionar e para os aplicativos acessarem hubs USB). Os pacotes (tais como SANE e libgphoto2) contendo controladores de dispositivo USB do espaço do(a) usuário(a) também enviam regras do Udev que mudam as permissões dos dispositivos USB brutos controlados. Isto é, as regras instaladas pelo SANE mudam as permissões para escaneadores conhecidos, porém não para impressoras. Se um(a) mantenedor(a) de pacote se esqueceu de escrever uma regra para o teu dispositivo, informe um defeito para ambos, o BLFS (se o pacote estiver lá) e o(a) desenvolvedor(a), e você precisará escrever tua própria regra. Antes do Linux-2.6.15, o acesso de dispositivo USB bruto era realizado não com nós de dispositivo /dev/bus/usb/BBB/DDD, mas com pseudo arquivos /proc/bus/usb/BBB/DDD. Alguns aplicativos ainda usam somente essa técnica obsoleta e não conseguem usar os novos nós de dispositivo. Eles não conseguem funcionar com a versão 3.5 ou mais recente do núcleo Linux. Se você precisar executar tal aplicativo, contacte o(a) desenvolvedor(a) dele para uma correção. Atributos de Dispositivo do Udev O ajuste fino dos atributos de dispositivo, tais como nome e permissões do grupo, é possível criando-se regras extras do udev, casando com algo como isto. O fornecedor e produto pode ser encontrado procurando-se nas entradas do diretório /sys/devices ou usando-se o udevadm info depois que o dispositivo tenha sido anexado. Veja-se a documentação no diretório atual do udev do /usr/share/doc para detalhes. SUBSYSTEM=="usb_device", SYSFS{idVendor}=="05d8", SYSFS{idProduct}=="4002", \ GROUP:="scanner", MODE:="0660" Nota A linha acima é usada somente para propósitos descritivos. As regras do udev da escaneadora são colocadas no lugar quando se instalar o [1866]SANE-1.2.1. Dispositivos para Servidores Em alguns casos, faz sentido desabilitar o udev completamente e criar dispositivos estáticos. Servidores são um exemplo dessa situação. Um servidor precisa da capacidade de manusear dispositivos dinâmicos? Somente o(a) administrador(a) do sistema pode responder a essa pergunta, porém, em muitos casos, a resposta será não. Se dispositivos dinâmicos não forem desejados, então dispositivos estáticos precisam ser criados no sistema. Na configuração padrão, o script de inicialização /etc/rc.d/rcS.d/S10udev monta uma partição tmpfs sobre o diretório /dev. Esse problema pode ser ultrapassado montando-se a partição raiz temporariamente: Atenção Se as instruções abaixo não forem seguidas cuidadosamente, [então] o seu sistema poderia se tornar não inicializável. mount --bind / /mnt cp -a /dev/* /mnt/dev rm /etc/rc.d/rcS.d/{S10udev,S50udev_retry} umount /mnt Neste ponto, o sistema usará dispositivos estáticos até a próxima reinicialização. Crie quaisquer dispositivos adicionais desejados usando o mknod. Se você quiser restaurar os dispositivos dinâmicos, recrie os vínculos simbólicos /etc/rc.d/rcS.d/{S10udev,S50udev_retry} e reinicialize novamente. Dispositivos estáticos não precisam ser removidos (console e null sempre são necessários), pois eles são cobertos pela partição tmpfs. O uso do disco para dispositivos é desprezível (cerca de 20–30 bytes por entrada). Dispositivos para Unidades de DVD Se o processo inicial da inicialização não configurar o dispositivo /dev/dvd adequadamente, [então] ele pode ser instalado usando-se a seguinte modificação para as regras padrão do udev. Como o(a) usuário(a) root, execute: sed '1d;/SYMLINK.*cdrom/ a\ KERNEL=="sr0", ENV{ID_CDROM_DVD}=="1", SYMLINK+="dvd", OPTIONS+="link_priority=- 100"' \ /lib/udev/rules.d/60-cdrom_id.rules > /etc/udev/rules.d/60-cdrom_id.rules Configurando para Adicionar Usuários(as) Juntos, o comando /usr/sbin/useradd e o diretório /etc/skel (ambos são fáceis de configurar e de usar), fornecem uma maneira para assegurar que usuários(as) novos(as) sejam adicionados(as) ao seu sistema LFS com as mesmas configurações iniciais para coisas como o PATH; o processamento do teclado; e outras variáveis ambientais. Usar essas duas facilidades torna mais fácil assegurar esse estado inicial para cada usuário(a) novo(a) adicionado(a) ao sistema. O diretório /etc/skel mantém cópias de vários arquivos de inicialização e de outros que possivelmente sejam copiados para o diretório home do(a) novo(a) usuário(a) quando o aplicativo /usr/sbin/useradd adicionar o(a) usuário(a) novo(a). Useradd O aplicativo useradd usa uma coleção de valores padrão mantidos em /etc/default/useradd. Esse arquivo é criado em uma instalação da base do LFS pelo pacote Shadow. Se ele tiver sido removido ou renomeado, [então] o aplicativo useradd usa alguns parâmetros residuais internos. Você consegue ver os valores dos parâmetros residuais executando /usr/sbin/useradd -D. Para mudar esses valores, simplesmente modifique o arquivo /etc/default/useradd como o(a) usuário(a) root. Uma alternativa para modificar diretamente o arquivo é a de executar useradd como o(a) usuário(a) root enquanto fornece as modificações desejadas na linha de comando. Informação acerca do como fazer isso pode ser encontrada na página de manual do useradd. /etc/skel Para começar, crie um diretório /etc/skel e tenha certeza de que ele seja gravável somente pelo(a) administrador(a) do sistema, usualmente o(a) root. Criar-se o diretório como o(a) root é o melhor caminho a percorrer. O modo de quaisquer arquivos oriundos desta parte do livro que você coloque no /etc/skel deveria ser gravável somente pelo(a) dono(a). Também, dado que não existe como se dizer que tipo de informação sensível um(a) usuário(a) eventualmente possa colocar na cópia dele(a) desses arquivos, você deveria torná-los ilegíveis por "group" e "other". Você também pode colocar outros arquivos no /etc/skel e permissões diferentes possivelmente sejam necessárias para eles. Decida quais arquivos de inicialização deveriam ser fornecidos em cada (ou na maioria) diretório "home" do(a) usuário(a) novo(a). As decisões que você tomar afetarão o que você fizer nas próximas duas seções, [1867]Os Arquivos de Iniciação do Shell Bash e [1868]Os Arquivos vimrc. Alguns, ou todos, daqueles arquivos serão úteis para o(a) root; para quaisquer usuários(as) já existentes; e para usuários(as) novos(as). Os arquivos originários daquelas seções que você poderia querer colocar no /etc/skel incluem: .inputrc; .bash_profile; .bashrc; .bash_logout; .dircolors; e .vimrc. Se estiver inseguro(a) acerca de quais desses deveriam ser colocados lá, [então] apenas continue para as seções seguintes; leia cada seção e quaisquer referências fornecidas; e, então, tome a sua decisão. Você executará um conjunto ligeiramente modificado de comandos para arquivos que estejam colocados no /etc/skel. Cada seção te lembrará disso. Em resumo, os comandos do livro foram escritos para arquivos não adicionados ao /etc/skel; e, em vez disso, apenas envia os resultados para o diretório "home" do(a) usuário(a). Se o arquivo estará no /etc/skel, [então] mude o(s) comando(s) do livro para enviar a saída gerada para lá em vez disso; e, então, apenas copie o arquivo a partir do /etc/skel para os diretórios apropriados, como o /etc; o ~; ou o diretório "home" de qualquer outro(a) usuário(a) já no sistema. Quando Adicionando-se um(a) Usuário(a) Quando se adicionar um(a) usuário(a) novo(a) com o useradd, use o parâmetro -m, o qual diz ao useradd para criar o diretório "home" do(a) usuário(a); e para copiar arquivos a partir do /etc/skel (pode ser anulado) para o diretório "home" do(a) usuário(a) novo(a). Por exemplo, (realize como o(a) usuário(a) root): useradd -m 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 | 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 && useradd -u -g Acerca de Usuários(as) e de Grupos do Sistema Ao longo do BLFS, muitos pacotes instalam aplicativos que executam como processos em segundo plano ou, de alguma maneira, deveriam ter um nome de usuário(a) ou um de grupo atribuído. Geralmente esses nomes são usados para mapear um ID do(a) usuário(a) (uid) ou um ID do grupo (gid) para uso do sistema. Geralmente os números específicos do uid ou do gid usados por esses aplicativos não são significativos. A exceção, certamente, é que o(a) root tem um uid e um gid de zero (0), que é, de fato, especial. Os valores do uid são armazenados em /etc/passwd; e os valores do gid são encontrados em /etc/group. Costumeiramente, os sistemas Unix classificam os(as) usuários(as) e os grupos em duas categorias: usuários(as) do sistema; e usuários(as) regulares. Aos(Às) usuários(as) e aos grupos do sistema são dados números baixos; e os(as) usuários(as) e os grupos regulares tem valores numéricos maiores que todos os valores do sistema. O ponto de corte para esses números é encontrado em dois parâmetros no arquivo de configuração /etc/login.defs. O valor padrão UID_MIN é mil (1000); e o valor padrão GID_MIN é mil (1000). Se um valor específico do uid e do gid não for especificado quando se criar um(a) usuário(a) com o useradd ou um grupo com o groupadd, [então] os valores atribuídos sempre estarão acima desses valores do ponto de corte. Adicionalmente, o [1869]Linux Standard Base recomenda que os valores do "UID" e do "GID" do sistema deveriam estar abaixo de cem (100). Abaixo está uma tabela de valores sugeridos do uid/gid usados no BLFS além daqueles definidos em uma instalação da base do LFS. Estes podem ser mudados conforme desejado, porém fornecem um conjunto sugerido de valores consistentes. Tabela 3.1. Valores Sugeridos do UID/GID Nome uid gid bin 1 lp 9 adm 16 atd 17 17 messagebus 18 18 lpadmin 19 named 20 20 gdm 21 21 fcron 22 22 systemd-journal 23 23 apache 25 25 smmsp 26 26 polkitd 27 27 rpc 28 28 exim 31 31 postfix 32 32 postdrop 33 sendmail 34 mail 34 vmailman 35 35 news 36 36 kdm 37 37 fetchmail 38 mariadb 40 40 postgres 41 41 dovecot 42 42 dovenull 43 43 ftp 45 45 proftpd 46 46 vsftpd 47 47 rsyncd 48 48 sshd 50 50 stunnel 51 51 dhcpcd 52 52 svn 56 56 svntest 57 git 58 58 games 60 60 kvm 61 wireshark 62 sddm 64 64 lightdm 65 65 scanner 70 colord 71 71 systemd-journal-gateway 73 73 systemd-journal-remote 74 74 systemd-journal-upload 75 75 systemd-network 76 76 systemd-resolve 77 77 systemd-timesync 78 78 systemd-coredump 79 79 uuidd 80 80 systemd-oom 81 81 ldap 83 83 avahi 84 84 avahi-autoipd 85 85 netdev 86 ntp 87 87 unbound 88 88 plugdev 90 wheel 97 anonymous 98 nobody 65534 nogroup 65534 Os Arquivos de Iniciação do Shell Bash O aplicativo de shell /bin/bash (doravante referenciado apenas como "o shell") usa uma coleção de arquivos de iniciação para auxiliar a criar um ambiente. Cada arquivo tem um uso específico e possivelmente afete diferentemente os ambientes de login e os interativos. Os arquivos no diretório /etc geralmente fornecem configurações globais. Se um arquivo equivalente existir no seu diretório home, [então] ele possivelmente substitua as configurações globais. Um shell de login interativo é iniciado depois de um login exitoso, usando o /bin/login, pela leitura do arquivo /etc/passwd. Essa invocação do shell normalmente lê /etc/profile e o equivalente privado dele ~/.bash_profile (ou o ~/.profile, se chamado como /bin/sh) assim que iniciar. Um shell de não login interativo normalmente é iniciado em linha de comando usando um aplicativo de shell (por exemplo, [prompt]$/bin/bash) ou pelo comando /bin/su. Um shell de não login interativo também é iniciado com um aplicativo de terminal, tal como o xterm ou o konsole, a partir de dentro de um ambiente gráfico. Esse tipo de invocação do shell normalmente copia o ambiente do(a) ancestral e, então, lê o arquivo ~/.bashrc do(a) usuário(a) para instruções adicionais de configuração de iniciação. Um shell não interativo usualmente está presente quando um script de shell está executando. Ele é não interativo, pois está processando um script e não aguardando por entradas geradas de usuário(a) entre os comandos. Para essas invocações de shell, somente o ambiente herdado a partir do shell ancestral é usado. O arquivo ~/.bash_logout não é usado para uma invocação do shell. Ele é lido e executado quando um(a) usuário(a) sai de um shell de login interativo. Muitas distribuições usam o /etc/bashrc para a inicialização abrangente ao sistema dos shells de não login. Esse arquivo usualmente é chamado a partir do arquivo ~/.bashrc do(a) usuário(a) e não é construído diretamente no próprio bash. Essa convenção é seguida nesta seção. Para mais informação, veja-se info bash -- Nós: Arquivos de Iniciação do Bash e Shells Interativos. Nota A maioria das instruções abaixo é usada para criar arquivos localizados na estrutura de diretório /etc, o que exige que você execute os comandos como o(a) usuário(a) root. Se você escolher criar os arquivos nos diretórios home dos(as) usuários(as) em vez disso, [então] você deveria executar os comandos como um(a) usuário(a) desprivilegiado(a). Observações de Editor(a): [1870]https://wiki.linuxfromscratch.org/blfs/wiki/bash-shell-startup-fi les /etc/profile Aqui está um /etc/profile base. Esse arquivo começa configurando algumas funções auxiliares e alguns parâmetros básicos. Ele especifica alguns parâmetros de histórico do bash e, para propósitos de segurança, desabilita a manutenção de um arquivo permanente de histórico para o(a) usuário(a) root. Em seguida, ele chama conjuntos de comandos sequenciais pequenos e de propósito único no diretório /etc/profile.d para fornecer a maior parte da inicialização. cat > /etc/profile << "EOF" # Begin /etc/profile # Written for Beyond Linux From Scratch # by James Robertson # modifications by Dagmar d'Surreal # System wide environment variables and startup programs. # System wide aliases and functions should go in /etc/bashrc. Personal # environment variables and startup programs should go into # ~/.bash_profile. Personal aliases and functions should go into # ~/.bashrc. # Functions to help us manage paths. Second argument is the name of the # path variable to be modified (default: PATH) pathremove () { local IFS=':' local NEWPATH local DIR local PATHVARIABLE=${2:-PATH} for DIR in ${!PATHVARIABLE} ; do if [ "$DIR" != "$1" ] ; then NEWPATH=${NEWPATH:+$NEWPATH:}$DIR fi done export $PATHVARIABLE="$NEWPATH" } pathprepend () { pathremove $1 $2 local PATHVARIABLE=${2:-PATH} export $PATHVARIABLE="$1${!PATHVARIABLE:+:${!PATHVARIABLE}}" } pathappend () { pathremove $1 $2 local PATHVARIABLE=${2:-PATH} export $PATHVARIABLE="${!PATHVARIABLE:+${!PATHVARIABLE}:}$1" } export -f pathremove pathprepend pathappend # Set the initial path export PATH=/usr/bin # Attempt to provide backward compatibility with LFS earlier than 11 if [ ! -L /bin ]; then pathappend /bin fi if [ $EUID -eq 0 ] ; then pathappend /usr/sbin if [ ! -L /sbin ]; then pathappend /sbin fi unset HISTFILE fi # Set up some environment variables. export HISTSIZE=1000 export HISTIGNORE="&:[bf]g:exit" # Set some defaults for graphical systems export XDG_DATA_DIRS=${XDG_DATA_DIRS:-/usr/share} export XDG_CONFIG_DIRS=${XDG_CONFIG_DIRS:-/etc/xdg} export XDG_RUNTIME_DIR=${XDG_RUNTIME_DIR:-/tmp/xdg-$USER} for script in /etc/profile.d/*.sh ; do if [ -r $script ] ; then . $script fi done unset script # End /etc/profile EOF O Diretório /etc/profile.d Agora crie o diretório /etc/profile.d, onde os scripts individuais da inicialização são colocados: install --directory --mode=0755 --owner=root --group=root /etc/profile.d /etc/profile.d/bash_completion.sh Nota Usar o script de completação do bash abaixo é controverso. Nem todos(as) os(as) usuários(as) gostam dele. Ele adiciona muitas (usualmente mais que mil (1.000)) linhas ao ambiente do bash e torna difícil usar o comando 'set' para examinar variáveis simples de ambiente. Omitir-se este script não interfere na habilidade do bash de usar a tecla tab para a completação de nome de arquivo. Este script importa scripts de completação do bash, instalados por muitos outros pacotes do BLFS, para permitir a completação de linha de comando TAB. cat > /etc/profile.d/bash_completion.sh << "EOF" # Início /etc/profile.d/bash_completion.sh # Importa scripts de completação do bash # Se o pacote "bash-completion" estiver instalado, use configuração dele ao inv és if [ -f /usr/share/bash-completion/bash_completion ]; then # Verificar Bash interativo e que já não fomos carregados. if [ -n "${BASH_VERSION-}" -a -n "${PS1-}" -a -z "${BASH_COMPLETION_VERSINFO-} " ]; then # Verificar versão do Bash suficientemente recente. if [ ${BASH_VERSINFO[0]} -gt 4 ] || \ [ ${BASH_VERSINFO[0]} -eq 4 -a ${BASH_VERSINFO[1]} -ge 1 ]; then [ -r "${XDG_CONFIG_HOME:-$HOME/.config}/bash_completion" ] && \ . "${XDG_CONFIG_HOME:-$HOME/.config}/bash_completion" if shopt -q progcomp && [ -r /usr/share/bash-completion/bash_completion ] ; then # Carregar código de completação. . /usr/share/bash-completion/bash_completion fi fi fi else # bash-completions não estão instaladas; use somente o diretório de completaç ão do Bash if shopt -q progcomp; then for script in /etc/bash_completion.d/* ; do if [ -r $script ] ; then . $script fi done fi fi # Fim /etc/profile.d/bash_completion.sh EOF Tenha certeza de que o diretório existe: install --directory --mode=0755 --owner=root --group=root /etc/bash_completion.d Para uma instalação mais completa, veja-se [1871]https://wiki.linuxfromscratch.org/blfs/wiki/bash-shell-startup-fi les#bash-completions. /etc/profile.d/dircolors.sh Este script usa os arquivos ~/.dircolors e /etc/dircolors para controlar as cores dos nomes de arquivos em uma listagem de diretório. Eles controlam a saída gerada colorida de coisas como ls --color. A explicação do como inicializar esses arquivos está ao final desta seção. cat > /etc/profile.d/dircolors.sh << "EOF" # Setup for /bin/ls and /bin/grep to support color, the alias is in /etc/bashrc. if [ -f "/etc/dircolors" ] ; then eval $(dircolors -b /etc/dircolors) fi if [ -f "$HOME/.dircolors" ] ; then eval $(dircolors -b $HOME/.dircolors) fi EOF /etc/profile.d/extrapaths.sh Este script adiciona alguns caminhos úteis à PATH e pode ser usado para personalizar outras variáveis de ambiente relacionadas a PATH (por exemplo, LD_LIBRARY_PATH, etc) que possivelmente sejam necessárias para todos(as) os(as) usuários(as). cat > /etc/profile.d/extrapaths.sh << "EOF" if [ -d /usr/local/lib/pkgconfig ] ; then pathappend /usr/local/lib/pkgconfig PKG_CONFIG_PATH fi if [ -d /usr/local/bin ]; then pathprepend /usr/local/bin fi if [ -d /usr/local/sbin -a $EUID -eq 0 ]; then pathprepend /usr/local/sbin fi if [ -d /usr/local/share ]; then pathprepend /usr/local/share XDG_DATA_DIRS fi # Set some defaults before other applications add to these paths. pathappend /usr/share/info INFOPATH EOF Nota O programa man deduz automaticamente o caminho de pesquisa para páginas de manual examinando o conteúdo da variável PATH; veja-se [1872]manpath(5) para detalhes. Configurar a variável MANPATH possivelmente substitua a dedução automática, de forma que os(as) editores(as) do BLFS não recomendam configurá-la. Se você precisar configurá-la por qualquer motivo, é melhor iniciar o valor dela com dois pontos (:), por exemplo MANPATH=:/opt/somepkg/share/man:/opt/otherpkg/share/man, de forma que os caminhos listados na variável MANPATH sejam pospostos ao valor deduzido automaticamente em vez de substituí-lo. /etc/profile.d/readline.sh Este script configura o arquivo padrão de configuração inputrc. Se o(a) usuário(a) não tiver configurações individuais, [então] usa o arquivo global. cat > /etc/profile.d/readline.sh << "EOF" # Configura a variável de ambiente "INPUTRC". if [ -z "$INPUTRC" -a ! -f "$HOME/.inputrc" ] ; then INPUTRC=/etc/inputrc fi export INPUTRC EOF /etc/profile.d/umask.sh Configurar-se o valor do umask é importante para a segurança. Aqui as permissões padrão de escrita do grupo são desligadas para os(as) usuários(as) de sistema e quando o nome do(a) usuário(a) e o nome do grupo não forem os mesmos. cat > /etc/profile.d/umask.sh << "EOF" # Por padrão, a máscara de usuário(a) deveria ser configurada. if [ "$(id -gn)" = "$(id -un)" -a $EUID -gt 99 ] ; then umask 002 else umask 022 fi EOF /etc/profile.d/i18n.sh Este script configura uma variável de ambiente necessária para o suporte ao idioma nativo. Uma discussão completa acerca de se determinar esta variável pode ser encontrada na página [1873]Configurando o Local do Sistema. cat > /etc/profile.d/i18n.sh << "EOF" # Configura variáveis de i18n for i in $(locale); do unset ${i%=*} done if [[ "$TERM" = linux ]]; then export LANG=C.UTF-8 else export LANG=_.<@modifiers> fi EOF Outros Valores da Inicialização Outra inicialização pode facilmente ser adicionada ao profile adicionando-se scripts adicionais ao diretório /etc/profile.d. /etc/bashrc Aqui está um /etc/bashrc de base. Os comentários no arquivo deveriam explicar tudo o que você precisa. cat > /etc/bashrc << "EOF" # Begin /etc/bashrc # Written for Beyond Linux From Scratch # by James Robertson # updated by Bruce Dubbs # System wide aliases and functions. # System wide environment variables and startup programs should go into # /etc/profile. Personal environment variables and startup programs # should go into ~/.bash_profile. Personal aliases and functions should # go into ~/.bashrc # Provides colored /bin/ls and /bin/grep commands. Used in conjunction # with code in /etc/profile. alias ls='ls --color=auto' alias grep='grep --color=auto' # Provides prompt for interactive shells, specifically shells started # in the X environment. [Review the LFS archive thread titled # PS1 Environment Variable for a great case study behind this script # addendum.] NORMAL="\[\e[0m\]" RED="\[\e[1;31m\]" GREEN="\[\e[1;32m\]" if [[ $EUID == 0 ]] ; then PS1="$RED\u [ $NORMAL\w$RED ]# $NORMAL" else PS1="$GREEN\u [ $NORMAL\w$GREEN ]\$ $NORMAL" fi unset RED GREEN NORMAL # GnuPG wants this or it'll fail with pinentry-curses under some # circumstances (for example signing a Git commit) tty -s && export GPG_TTY=$(tty) # End /etc/bashrc EOF Para mais informação acerca das sequências de escape que você pode usar para o seu prompt (isto é, a variável de ambiente PS1), veja-se info bash -- Nó: Imprimindo um Prompt. ~/.bash_profile Aqui está um ~/.bash_profile de base. Se você quiser que cada usuário(a) novo(a) tenha esse arquivo automaticamente, [então] apenas mude a saída gerada do comando para o /etc/skel/.bash_profile e verifique as permissões depois que o comando for executado. Você pode, então, copiar o /etc/skel/.bash_profile para os diretórios home dos(as) usuários(as) já existentes, incluindo o(a) root, e configurar o(a) proprietário(a) e o grupo apropriadamente. cat > ~/.bash_profile << "EOF" # Início ~/.bash_profile # Escrito para o Beyond Linux From Scratch # por James Robertson # atualizado por Bruce Dubbs # Variáveis de ambiente e aplicativos de inicialização pessoais. # Alias e funções pessoais deveriam ir em ~/.bashrc. Variáveis de # ambiente e aplicativos de inicialização abrangentes ao sistema estão # em /etc/profile. Alias e funções abrangentes ao sistema estão em /etc/bashrc. if [ -f "$HOME/.bashrc" ] ; then source $HOME/.bashrc fi if [ -d "$HOME/bin" ] ; then pathprepend $HOME/bin fi # Ter-se o "." no PATH é perigoso. #if [ $EUID -gt 99 ]; then # pathappend . #fi # Fim ~/.bash_profile EOF ~/.profile Aqui está um ~/.profile de base. Os comentários e as instruções para se usar o /etc/skel para o .bash_profile acima também se aplicam aqui. Somente os nomes dos arquivos alvo são diferentes. cat > ~/.profile << "EOF" # Início ~/.profile # Variáveis de ambiente e aplicativos de inicialização pessoais. if [ -d "$HOME/bin" ] ; then pathprepend $HOME/bin fi # Configura variáveis de internacionalização específicas de usuário(a). #export LANG=_.<@modifiers> # Fim ~/.profile EOF ~/.bashrc Aqui está um ~/.bashrc de base. cat > ~/.bashrc << "EOF" # Início ~/.bashrc # Escrito para o Beyond Linux From Scratch # por James Robertson # 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=_.<@modifiers> # Fim ~/.bashrc EOF ~/.bash_logout Este é um ~/.bash_logout vazio que pode ser usado como um modelo. Você perceberá que o ~/.bash_logout de base não inclui um comando clear. Isso é porque o clear é manuseado no arquivo /etc/issue. cat > ~/.bash_logout << "EOF" # Início ~/.bash_logout # Escrito para o Beyond Linux From Scratch # por James Robertson # Itens pessoais a realizar quando do logout. # Fim ~/.bash_logout EOF /etc/dircolors Se você quiser usar o recurso dircolors, então execute o seguinte comando. As etapas de configuração do /etc/skel mostradas acima também podem ser usadas aqui para fornecer um arquivo ~/.dircolors quando um(a) usuário(a) novo(a) for configurado(a). Como antes, apenas mude o nome de arquivo da saída gerada no seguinte comando e se assegure de que as permissões, proprietário(a) e grupo estejam corretas nos arquivos criados e (ou) copiados. dircolors -p > /etc/dircolors Se desejar personalizar as cores usadas para os diferentes tipos de arquivo, [então] você pode editar o arquivo /etc/dircolors. As instruções para configurar as cores estão embutidas no arquivo. Finalmente, Ian Macdonald escreveu uma excelente coleção de dicas e de truques para melhorar o teu ambiente de shell. Você consegue lê-la online em [1874]https://caliban.org/bash/index.shtml. Os Arquivos /etc/vimrc e ~/.vimrc O livro LFS instala o Vim como o editor de texto dele. Neste ponto, deveria ser observado que existe um monte de aplicativos de edição por aí, incluindo o Emacs; o nano; o Joe; e muitos mais. Qualquer um(a) que tenha estado na Internet (especialmente usenet) por um curto período de tempo certamente terá observado pelo menos uma guerra de chamas, geralmente envolvendo usuários(as) do Vim e do Emacs! O livro LFS cria um arquivo vimrc básico. Nesta seção, você encontrará uma tentativa de melhorar esse arquivo. Na iniciação, o vim lê o arquivo global de configuração (/etc/vimrc), bem como um arquivo específico do(a) usuário(a) (~/.vimrc). Qualquer um ou ambos podem ser adaptados para atender às necessidades de seu sistema específico. Aqui está um .vimrc ligeiramente expandido que você pode colocar no ~/.vimrc para fornecer efeitos específicos do(a) usuário(a). Certamente, se você colocá-lo no /etc/skel/.vimrc em vez disso, [então] ele será disponibilizado para os(as) usuários(as) que você adicionar ao sistema posteriormente. Você também pode copiar o arquivo a partir do /etc/skel/.vimrc para o diretório home dos(as) usuários(as) já no sistema, tais como o(a) root. Tenha certeza de configurar permissões, proprietário(a) e grupo se você efetivamente copiar alguma coisa diretamente a partir do /etc/skel. " Início .vimrc set columns=80 set wrapmargin=8 set ruler " Fim .vimrc Observe que as etiquetas de comentário são ", em vez da mais usual # ou //. Isso está correto; a sintaxe para o vimrc é ligeiramente incomum. Abaixo você encontrará uma explicação rápida do que cada uma das opções nesse arquivo de exemplo significa aqui: * set columns=80: Isso simplesmente configura o número de colunas usadas na tela. * set wrapmargin=8: Isso é o número de caracteres a partir da borda direita da janela onde a quebra inicia. * set ruler: Isso faz com que o vim mostre a linha e a coluna atuais no canto direito inferior da tela. Mais informação acerca das muitas opções do vim pode ser encontrada lendo-se a ajuda dentro do próprio vim. Faça isso digitando :help no vim para obter a ajuda geral; ou digitando :help usr_toc.txt para visualizar a Tabela de Conteúdo do Manual do(a) Usuário(a). Personalizando o seu Logon com o /etc/issue Quando você inicializar pela primeira vez o seu novo sistema LFS, a tela do logon será legal e plana (como deveria ser em um sistema esqueleto). Muitas pessoas, entretanto, desejarão que o sistema delas exiba alguma informação na mensagem do logon. Isso pode ser realizado usando o arquivo /etc/issue. O arquivo /etc/issue é um arquivo de texto plano que também aceitará certas sequências de escape (veja-se abaixo) para a finalidade de inserir informação acerca do sistema. Existe também o arquivo issue.net que pode ser usado quando se logar remotamente. O ssh, no entanto, somente o usará se você configurar a opção no arquivo de configuração e não interpretará as sequências de escape mostradas abaixo. Uma das coisas mais comuns que as pessoas querem fazer é limpar a tela a cada logon. A maneira mais fácil de fazer isso é a de colocar uma sequência de escape "clear" no /etc/issue. Uma maneira simples de fazer isso é a de emitir o comando clear > /etc/issue. Isso inserirá o código de escape relevante no início do arquivo /etc/issue. Observe que, se você fizer isso, quando editar o arquivo, você deveria deixar os caracteres (normalmente '^[[H^[[2J') sozinhos na primeira linha. Nota Sequências de escape do terminal são códigos especiais reconhecidos pelo terminal. O ^[ representa um caractere ASCII ESC. A sequência ESC [ H coloca o cursor no canto superior esquerdo da tela; e ESC 2 J apaga a tela. Para mais informação acerca das sequências de escape do terminal, veja-se [1875]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 " usuários" onde é 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, e tc. Geração de Número Aleatório O núcleo Linux fornece um gerador de número aleatório o qual é acessado por meio do /dev/random e do /dev/urandom. Os aplicativos que utilizam os dispositivos random e urandom, como o OpenSSH, se beneficiarão destas instruções. Quando um sistema Linux inicia sem muita interação do(a) operador(a), o pool de entropia (dados usados para computar um número aleatório) possivelmente esteja em um estado razoavelmente previsível. Isso cria a possibilidade real de que o número gerado na iniciação possivelmente seja sempre o mesmo. Para a finalidade de neutralizar esse efeito, você deveria transportar a informação do pool de entropia ao longo dos seus desligamentos e iniciações. Instale o script de iniciação /etc/rc.d/init.d/random incluso com o pacote [1876]blfs-bootscripts-20250225. make install-random Capítulo 4. Segurança Segurança toma muitas formas em um ambiente computacional. Depois de alguma discussão inicial, este capítulo dá exemplos de três tipos de segurança: acesso; prevenção; e detecção. O acesso para os(as) usuários(as) geralmente é manuseado pelo login ou um aplicativo projetado para lidar com a função de login. Neste capítulo, nós mostramos como melhorar o login configurando-se políticas com os módulos PAM. O acesso via redes de comunicação também pode ser assegurado por políticas configuradas pelo iptables, comumente referenciado como um firewall. As bibliotecas Network Security Services (NSS) e Netscape Portable Runtime (NSPR) podem ser instaladas e compartilhadas entre os muitos aplicativos exigindo elas. Para os aplicativos que não oferecem a melhor segurança, você pode usar o pacote Stunnel para amarrar um processo de segundo plano do aplicativo dentro de um túnel SSL. A prevenção a violações, como um trojan, é auxiliada por aplicativos como o GnuPG, especificamente a habilidade de confirmar pacotes assinados, o que reconhece modificações do tarball depois que o(a) empacotador(a) o criou. Finalmente, nós tocamos na detecção com um pacote que armazena "assinaturas" de arquivos críticos (definidos pelo(a) administrador(a)) e, então, regenera aquelas "assinaturas" e compara para arquivos que tenham sido mudados. Vulnerabilidades Acerca de vulnerabilidades Todo software tem defeitos. De vez em quando, um defeito cosegue ser explorado, por exemplo para permitir que os(as) usuários(as) ganhem privilégios melhorados (talvez ganhando um shell do(a) root; ou simplesmente acessando ou deletando os arquivos dos(as) outros(as) usuários(as)); ou para permitir que um sítio remoto quebre um aplicativo (negação de serviço); ou para roubo de dados. Esses defeitos são rotulados como vulnerabilidades. O lugar principal onde as vulnerabilidades são registradas é [1877]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 [1878]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 [1879]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 [1880]Segurança do Debian. Os links do Fedora acerca de segurança estão em [1881]o wiki do Fedora. Os detalhes dos anúncios de segurança do Linux do Gentoo são discutidos em [1882]Segurança do Gentoo. Finalmente, os arquivamentos do Slackware dos anúncios de segurança estão em [1883]Segurança do Slackware. A fonte mais genérica no idioma inglês é talvez [1884]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 [1885]heise.de (alemão); ou o [1886]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 [1887]lwn.net/Alerts é irrestrita). Para alguns pacotes, assinar as listas de 'anúncio' deles fornecerá notícias imediatas das versões mais recentes. make-ca-1.15 Introdução ao make-ca A Infraestrutura de Chave Pública (ICP) é um método para validar a autenticidade de uma entidade desconhecida ao longo de redes de comunicação não confiáveis. A ICP funciona estabelecendo uma cadeia de confiança, em vez de confiar explicitamente em cada dispositivo individual ou entidade. Para a finalidade de um certificado apresentado por uma entidade remota ser acreditado, esse certificado precisa apresentar uma cadeia completa de certificados que possa ser validada usando-se o certificado raiz de uma Autoridade Certificadora (AC) que é acreditada pela máquina local. Estabelecer confiança com uma AC envolve validar coisas como endereço da companhia, titularidade de propriedade, informação de contato, etc., e assegurar que a AC tenha seguido as melhores práticas, tais como se submeter a auditorias periódicas de segurança por investigadores(as) independentes e manter uma sempre disponível lista de revogação de certificado. Isso está bem fora do escopo do BLFS (como está para a maior parte das distribuições do Linux). A loja de certificado fornecida aqui é tomada a partir da Fundação Mozilla, que estabeleceu políticas de inclusão muito estritas descritas [1888]aqui. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [1889]https://github.com/lfs-book/make-ca/archive/v1.15/make-ca-1.1 5.tar.gz * Tamanho da transferência: 40 KB * Somas de verificação MD5 da transferência: 1af805d92b55091b5f11fd7db77c9b0e * Espaço em disco estimado exigido: 164 KB (com todas as dependências em tempo de execução) * Tempo de construção estimado: menos que 0,1 UPC (com todas as dependências em tempo de execução) Nota Esse pacote envia um certificado de AC para validar a identidade de [1890]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 [1891]página de lançamento se esse problema ocorrer. Dependências do make-ca Exigidas [1892]p11-kit-0.25.5 (tempo de execução, construído depois do [1893]libtasn1-4.20.0, exigido nas instruções a seguir para gerar armazenamentos de certificados a partir de âncoras de confiança, e a cada vez que make-ca for executado) Opcionais (tempo de execução) [1894]nss-3.108 (para gerar um NSSDB compartilhado) Instalação do make-ca e Geração dos Armazenamentos de Certificados de AC O script make-ca baixará e processará os certificados incluídos no arquivo certdata.txt para uso como âncoras de confiança para o módulo de confiança [1895]p11-kit-0.25.5. Adicionalmente, gerará lojas de certificado do sistema usadas pelos aplicativos do BLFS (se os aplicativos recomendados e os opcionais estiverem presentes no sistema). Quaisquer certificados locais armazenados em /etc/ssl/local serão importados para ambos: as âncoras de confiança; e as lojas de certificado geradas (substituindo a confiança do Mozilla). Adicionalmente, quaisquer valores de confiança modificados serão copiados a partir das âncoras de confiança para /etc/ssl/local antes de quaisquer atualizações, preservando os valores de confiança personalizados que divergirem do Mozilla quando se usar o utilitário trust oriundo do p11-kit para operar sobre a loja de confiança. Para instalar as várias lojas de certificados, primeiro instale o script make-ca no local correto. Como o(a) usuário(a) root: make install && install -vdm755 /etc/ssl/local Importante Tecnicamente, esse pacote já está instalado neste ponto. Mas, a maioria dos pacotes que listam make-ca como uma dependência na verdade exige a loja de certificados do sistema configurado por esse pacote, em vez do próprio programa make-ca. Portanto, as instruções para usar make-ca para configurar a loja de certificados do sistema estão incluídas nesta seção. Você deveria certificar-se de que a dependência de tempo de execução exigida para make-ca esteja satisfeita agora e continuar para seguir as instruções. Como o(a) usuário(a) root, baixe o fonte do certificado e apronte para uso do sistema com o seguinte comando: Nota Se executar-se o script uma segunda vez com a mesma versão do certdata.txt, por exemplo, para atualizar as lojas quando o make-ca for atualizado; ou para acrescentar lojas adicionais conforme o software solicitante for instalado, [então] substitua a chave -g pela chave -r na linha de comando. Se empacotando, [então] execute make-ca --help para ver todas as opções de linha de comando disponíveis. /usr/sbin/make-ca -g Você deveria atualizar periodicamente a loja com o comando acima, seja manualmente, ou via um trabalho do cron. Se você tiver instalado o [1896]Fcron-3.2.1 e completado a seção relativa a trabalhos periódicos, [então] execute os seguintes comandos, como o(a) usuário(a) root, para criar um trabalho semanal do cron: cat > /etc/cron.weekly/update-pki.sh << "EOF" && #!/bin/bash /usr/sbin/make-ca -g EOF chmod 754 /etc/cron.weekly/update-pki.sh Configurando make-ca Para a maioria dos(as) usuários(as), nenhuma configuração adicional é necessária; entretanto, o arquivo certdata.txt padrão fornecido pelo "make-ca" é obtido a partir da ramificação "mozilla-release" e é modificado para fornecer uma revisão "Mercurial". Essa será a versão correta para a maior parte dos sistemas. Existem muitas outras variantes do arquivo disponíveis para uso que poderiam ser preferidas por uma razão ou por outra, incluindo os arquivos enviados com os produtos da "Mozilla" neste livro. "RedHat" e "OpenSUSE", por exemplo, usam a versão inclusa no [1897]nss-3.108. Transferências adicionais do(a) desenvolvedor(a) estão disponíveis nos links inclusos em /etc/make-ca/make-ca.conf.dist. Simplesmente copie o arquivo para /etc/make-ca.conf e edite conforme apropriado. Acerca de Argumentos de Confiança Existem três tipos de confiança que são reconhecidos pelo script make-ca, SSL/TLS, S/Mime e assinatura de código. Para o OpenSSL, esses são serverAuth; emailProtection; e codeSigning, respectivamente. Se um dos três argumentos de confiança for omitido, [então] o certificado nem é acreditado, nem é rejeitado para aquela função. Os clientes que usarem o OpenSSL ou o NSS encontrando esse certificado apresentarão um aviso para o(a) usuário(a). Os clientes usando o GnuTLS sem o suporte ao p11-kit não estão cientes dos certificados confiáveis. Para incluir essa AC nos arquivos ca-bundle.crt, email-ca-bundle.crt ou objsign-ca-bundle.crt (os pacotes legados do GnuTLS), precisa ter os argumentos confiáveis adequados. Acrescentando Certificados Adicionais de AC O diretório /etc/ssl/local está disponível para acrescentar certificados adicionais de AC à loja de confiança do sistema. Esse diretório também é usado para armazenar certificados que foram acrescentados a ou modificados na loja de confiança do sistema pelo [1898]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 [1899]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 [1900]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 [1901]Wget-1.25.0 estiver instalado): wget http://www.cacert.org/certs/root.crt && wget http://www.cacert.org/certs/class3.crt && openssl x509 -in root.crt -text -fingerprint -setalias "CAcert Class 1 root" \ -addtrust serverAuth -addtrust emailProtection -addtrust codeSigning \ > /etc/ssl/local/CAcert_Class_1_root.pem && openssl x509 -in class3.crt -text -fingerprint -setalias "CAcert Class 3 root" \ -addtrust serverAuth -addtrust emailProtection -addtrust codeSigning \ > /etc/ssl/local/CAcert_Class_3_root.pem && /usr/sbin/make-ca -r Substituindo a Confiança do Mozilla Ocasionalmente, possivelmente existam instâncias onde você não concorda com a inclusão do Mozilla de uma autoridade de certificação específica. Se você gostaria de substituir a confiança padrão de uma AC específica, [então] simplesmente crie uma cópia do certificado existente em /etc/ssl/local com argumentos de confiança diferentes. Por exemplo, se você gostaria de desconfiar do arquivo "Makebelieve_CA_Root", [então] execute os seguintes comandos: openssl x509 -in /etc/ssl/certs/Makebelieve_CA_Root.pem \ -text \ -fingerprint \ -setalias "Disabled Makebelieve CA Root" \ -addreject serverAuth \ -addreject emailProtection \ -addreject codeSigning \ > /etc/ssl/local/Disabled_Makebelieve_CA_Root.pem && /usr/sbin/make-ca -r Conteúdo Aplicativos Instalados: make-ca Diretórios Instalados: /etc/ssl/{certs,local} e /etc/pki/{nssdb,anchors,tls/{certs,java}} Descrições Curtas make-ca é um script de shell que adapta uma versão atual do certdata.txt e o apronta para uso como a loja de confiança do sistema CrackLib-2.10.3 Introdução ao CrackLib O pacote CrackLib contém uma biblioteca usada para impor senhas fortes comparando senhas selecionadas pelo(a) usuário(a) a palavras em listas de palavras escolhidas. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [1902]https://github.com/cracklib/cracklib/releases/download/v2.10. 3/cracklib-2.10.3.tar.xz * Transferência (FTP): * 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 Transferências Adicionais Lista de palavras recomendadas para países de idioma inglês: * Transferência (HTTP): [1903]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 [1904]https://wiki.skullsecurity.org/index.php/Passwords. O CrackLib consegue utilizar o máximo ou o mínimo possível das listas de palavras que você escolher instalar. Importante Os(As) usuários(as) tendem a basear as senhas deles(as) em palavras comuns do idioma falado e os crackers sabem disso. CrackLib destina-se a filtrar essas senhas ruins na fonte usando um dicionário criado a partir de listas de palavras. Para conseguir isso, a(s) lista(s) de palavras para uso com CrackLib precisa ser uma lista exaustiva de palavras e combinações de teclas baseadas em palavras que provavelmente serão escolhidas pelos(as) usuários(as) do sistema como senhas (adivinháveis). A lista de palavras padrão recomendada acima para download atende principalmente a essa função em países de língua inglesa. Em outras situações, possivelmente seja necessário baixar (ou mesmo criar) listas adicionais de palavras. Observe que as listas de palavras adequadas para verificação ortográfica não podem ser usadas como listas de palavras do CrackLib em países com alfabetos não latinos, devido às “combinações de teclas baseadas em palavras” que tornam as senhas incorretas . Instalação do CrackLib Instale o CrackLib executando os seguintes comandos: CPPFLAGS+=' -I /usr/include/python3.13' \ ./configure --prefix=/usr \ --disable-static \ --with-default-dict=/usr/lib/cracklib/pw_dict && make Agora, como o(a) usuário(a) root: make install Emita os seguintes comandos como o(a) usuário(a) root para instalar a lista de palavras recomendadas e criar o dicionário CrackLib. Outras listas de palavras (baseadas em texto, uma palavra por linha) também podem ser usadas simplesmente instalando-as em /usr/share/dict e adicionando-as ao comando create-cracklib -dict. xzcat ../cracklib-words-2.10.3.xz \ > /usr/share/dict/cracklib-words && ln -v -sf cracklib-words /usr/share/dict/words && echo $(hostname) >> /usr/share/dict/cracklib-extra-words && install -v -m755 -d /usr/lib/cracklib && create-cracklib-dict /usr/share/dict/cracklib-words \ /usr/share/dict/cracklib-extra-words Se desejado, verifique a operação adequada da biblioteca como um(a) usuário(a) não privilegiado(a) emitindo o seguinte comando: make test Se desejado, teste o módulo Python com: python3 -c 'import cracklib; cracklib.test()' Importante Se você estiver instalando o CrackLib depois que seu sistema LFS tiver sido concluído e você tiver o pacote Shadow instalado, [então] você precisa reinstalar o [1905]Shadow-4.17.3 se desejar fornecer suporte de senha forte em seu sistema. Se for instalar agora o pacote [1906]Linux-PAM-1.7.0, você pode desconsiderar essa observação, pois o Shadow será reinstalado depois da instalação do Linux-PAM. Explicações do Comando CPPFLAGS+=' -I /usr/include/python3.13': Essa variável de ambiente é necessária para permitir que o pacote encontre os arquivos de inclusão do Python-3.13. --with-default-dict=/usr/lib/cracklib/pw_dict: Esse parâmetro força a instalação do dicionário CrackLib na hierarquia /lib. --disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas. sed ... ./python/test_cracklib.py: Esse comando atualiza o procedimento de construção para o módulo Python para Python-3.13 e posteriores. install -v -m644 -D ...: Esse comando cria o diretório /usr/share/dict (se já não existir) e instala a lista compactada de palavras lá. ln -v -s cracklib-words /usr/share/dict/words: A lista de palavras está vinculada a /usr/share/dict/words como historicamente; words é a lista principal de palavras no diretório /usr/share/dict. Omita esse comando se você já tiver um arquivo /usr/share/dict/words instalado em seu sistema. echo $(hostname) >>...: O valor de hostname é ecoado para um arquivo chamado cracklib-extra-words. Esse arquivo extra destina-se a ser uma lista específica do sítio que inclui senhas fáceis de adivinhar, como nomes de organizações empresariais ou departamentos, nomes de usuários(as), nomes de produtos, nomes de computadores, nomes de domínio, etc. create-cracklib-dict ...: Esse comando cria o dicionário CrackLib a partir das listas de palavras. Modifique o comando para adicionar quaisquer listas adicionais de palavras que você tiver instalado. Conteúdo Aplicativos Instalados: cracklib-check, cracklib-format, cracklib-packer, cracklib-unpacker, cracklib-update e create-cracklib-dict Bibliotecas Instaladas: libcrack.so e _cracklib.so (módulo Python) Diretórios Instalados: /usr/lib/cracklib, /usr/share/dict e /usr/share/cracklib Descrições Curtas cracklib-check é usado para determinar se uma senha é forte cracklib-format é usado para formatar arquivos de texto (minuscula todas as palavras, remove caracteres de controle e ordena as listas) cracklib-packer cria uma base de dados com palavras lidas a partir da entrada gerada padrão cracklib-unpacker exibe na saída gerada padrão a base de dados especificada create-cracklib-dict é usado para criar o dicionário CrackLib a partir da(s) lista(s) fornecida(s) de palavras libcrack.so fornece um método rápido de pesquisa de dicionário para imposição de senha forte cryptsetup-2.7.5 Introdução ao cryptsetup cryptsetup é usado para configurar a encriptação transparente de dispositivos de bloco usando a API criptográfica do núcleo. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [1907]https://www.kernel.org/pub/linux/utils/cryptsetup/v2.7/crypts etup-2.7.5.tar.xz * Transferência (FTP): * 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) Dependências do cryptsetup Exigidas [1908]JSON-C-0.18, [1909]LVM2-2.03.30 e [1910]popt-1.19 Opcionais [1911]asciidoctor-2.0.23, [1912]libpwquality-1.4.5, [1913]argon2, [1914]libssh e [1915]passwdqc Configuração do Núcleo Dispositivos de bloco encriptados exigem suporte de núcleo. Para usá-lo, os parâmetros apropriados de configuração do núcleo precisam estar configurados: Device Drivers ---> [*] Multiple devices driver support (RAID and LVM) ---> [MD] <*/M> Device mapper support [BLK_DEV_DM] <*/M> Crypt target support [DM_CRYPT] -*- Cryptographic API ---> [CRYPTO] Block ciphers ---> <*/M> AES (Advanced Encryption Standard) [CRYPTO_AES] # For tests: <*/M> Twofish [CRYPTO_TWOFISH] Length-preserving ciphers and modes ---> <*/M> XTS (XOR Encrypt XOR with ciphertext stealing) [CRYPTO_XTS] Hashes, digests, and MACs ---> <*/M> SHA-224 and SHA-256 [CRYPTO_SHA256] Userspace interface ---> <*/M> Symmetric key cipher algorithms [CRYPTO_USER_API_SKCIPHER] Instalação do cryptsetup Instale cryptsetup executando os seguintes comandos: ./configure --prefix=/usr \ --disable-ssh-token \ --disable-asciidoc && make Para testar o resultado, emita como o(a) usuário(a) root: make check. Alguns testes falharão se opções apropriadas de configuração do núcleo não estiverem configuradas. Algumas opções adicionais que possivelmente sejam necessárias para testes são: CONFIG_SCSI_LOWLEVEL, CONFIG_SCSI_DEBUG, CONFIG_BLK_DEV_DM_BUILTIN, CONFIG_CRYPTO_USER, CONFIG_CRYPTO_CRYPTD, CONFIG_CRYPTO_LRW, CONFIG_CRYPTO_XTS, CONFIG_CRYPTO_ESSIV, CONFIG_CRYPTO_CRCT10DIF, CONFIG_CRYPTO_AES_TI, CONFIG_CRYPTO_AES_NI_INTEL, CONFIG_CRYPTO_BLOWFISH, CONFIG_CRYPTO_CAST5, CONFIG_CRYPTO_SERPENT, CONFIG_CRYPTO_SERPENT_SSE2_X86_64, CONFIG_CRYPTO_SERPENT_AVX_X86_64, CONFIG_CRYPTO_SERPENT_AVX2_X86_64, and CONFIG_CRYPTO_TWOFISH_X86_64 Agora, como o(a) usuário(a) root: make install Explicações do Comando --disable-ssh-token: Essa chave é exigida se a dependência opcional libssh não estiver instalada. --disable-asciidoc: Essa chave desabilita regeneração das páginas de manual. Remova essa chave se você tiver [1916]asciidoctor-2.0.23 instalado e desejar regenerar as páginas de manual. Observe que mesmo se essa chave for usada, as páginas de manual pré geradas são enviadas no tarball e ainda serão instaladas. Configurando cryptsetup Devido ao número de configurações possíveis, a configuração de volumes encriptados está além do escopo do livro BLFS. Por favor, veja-se o guia de configuração nas [1917]Perguntas Frequentes do cryptsetup. Conteúdo Aplicativos Instalados: cryptsetup, cryptsetup-reencrypt, integritysetup e veritysetup Bibliotecas Instaladas: libcryptsetup.so Diretórios Instalados: Nenhum(a) Descrições Curtas cryptsetup é usado para configurar mapeamentos de mapeadores de dispositivos gerenciados pelo dm-crypt cryptsetup-reencrypt é uma ferramenta para re-encriptação offline de dispositivo LUKS integritysetup é uma ferramenta para gerenciar volumes dm-integrity (integridade em nível de bloco) veritysetup é usado para configurar mapeamentos de mapeadores de dispositivos gerenciados dm-verity. O alvo de veracidade do mapeador de dispositivos fornece verificação de integridade transparente somente leitura de dispositivos de bloco usando a API criptográfica do núcleo Cyrus SASL-2.1.28 Introdução ao Cyrus SASL O pacote Cyrus SASL contém uma implementação de Autenticação Simples e Camada de Segurança, um método para adicionar suporte de autenticação a protocolos baseados em conexão. Para usar o SASL, um protocolo inclui um comando para identificar e autenticar um(a) usuário(a) em um servidor e, opcionalmente, negociar a proteção de interações subsequentes de protocolo. Se o uso dele for negociado, [então] uma camada de segurança é inserida entre o protocolo e a conexão. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [1918]https://github.com/cyrusimap/cyrus-sasl/releases/download/cyr us-sasl-2.1.28/cyrus-sasl-2.1.28.tar.gz * Transferência (FTP): * 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 Dependências do Cyrus SASL Recomendadas [1919]lmdb-0.9.31 Opcionais [1920]Linux-PAM-1.7.0, [1921]MIT Kerberos V5-1.21.3, [1922]MariaDB-11.4.5 ou [1923]MySQL, [1924]OpenLDAP-2.6.9, [1925]PostgreSQL-17.4, [1926]sphinx-8.2.1, [1927]SQLite-3.49.1, [1928]Berkeley DB (obsoleto), [1929]krb4, [1930]Dmalloc e [1931]Pod::POM::View::Restructured Instalação do Cyrus SASL Nota Esse pacote não suporta construção paralela. Primeiro, corrija um problema revelado pelo gcc-14: sed '/saslint/a #include ' -i lib/saslutil.c && sed '/plugin_common/a #include ' -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 [1932]https://www.linuxfromscratch.org/hints/downloads/files/cyrus-sasl .txt. Agora, como o(a) usuário(a) root: make install && install -v -dm755 /usr/share/doc/cyrus-sasl-2.1.28/html && install -v -m644 saslauthd/LDAP_SASLAUTHD /usr/share/doc/cyrus-sasl-2.1.28 && install -v -m644 doc/legacy/*.html /usr/share/doc/cyrus-sasl-2.1.28/html && install -v -dm700 /var/lib/sasl Explicações do Comando --with-dbpath=/var/lib/sasl/sasldb2: Essa chave força a base de dados sasldb a ser criada em /var/ lib/sasl em vez de /etc. --with-saslauthd=/var/run/saslauthd: Essa chave força saslauthd a usar o diretório conforme com FHS /var/run/ saslauthd para dados variáveis de tempo de execução. --enable-auth-sasldb: Essa chave habilita a estrutura de retaguarda de autenticação SASLDB. --with-dblib=gdbm: Essa chave força GDBM a ser usado em vez de LMDB. --with-ldap: Essa chave habilita o suporte OpenLDAP. --enable-ldapdb: Essa chave habilita a estrutura de retaguarda de autenticação LDAPDB. --enable-login: Essa opção habilita a autenticação não suportada LOGIN. --enable-ntlm: Essa opção habilita a autenticação não suportada NTLM. install -v -m644 ...: Esses comandos instalam a documentação que não é instalada pelo comando make install. install -v -m700 -d /var/lib/sasl: Esse diretório precisa existir ao iniciar saslauthd ou usar o plug-in sasldb. Se não vai executar o processo de segundo plano ou usar os plugins, [então] você pode omitir a criação desse diretório. Configurando o Cyrus SASL Arquivos de Configuração /etc/saslauthd.conf (para configuração LDAP do saslauthd) e /etc/sasl2/Appname.conf (onde "Appname" é o nome definido do aplicativo do aplicativo) Informação de Configuração Veja-se [1933]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 [1934]file:///usr/share/doc/cyrus-sasl-2.1.28/LDAP_SASLAUTHD para configuração do saslauthd com o OpenLDAP. Veja-se [1935]https://www.cyrusimap.org/sasl/sasl/gssapi.html#gssapi para configurar o saslauthd com Kerberos. Script de Iniciação Se você precisar executar o processo de segundo plano saslauthd na inicialização do sistema, [então] instale o script de iniciação /etc/rc.d/init.d/saslauthd incluído no pacote [1936]blfs-bootscripts-20250225 usando o seguinte comando: make install-saslauthd Nota Você precisará modificar /etc/sysconfig/saslauthd e modificar o parâmetro AUTHMECH com o mecanismo de autenticação desejado. Conteúdo Aplicativos Instalados: pluginviewer, saslauthd, sasldblistusers2, saslpasswd2 e testsaslauthd Biblioteca Instalada: libsasl2.so Diretórios Instalados: /usr/include/sasl, /usr/lib/sasl2, /usr/share/doc/cyrus-sasl-2.1.28 e /var/lib/sasl Descrições Curtas pluginviewer é usado para listar plugins carregáveis SASL e as propriedades deles saslauthd é o servidor de autenticação SASL sasldblistusers2 é usado para listar os(as) usuários(as) na base de dados de senha SASL sasldb2 saslpasswd2 é usado para configurar e para deletar uma senha SASL, e os segredos específicos do mecanismo, do(a) usuário(a) na base de dados de senhas SASL sasldb2 testsaslauthd é um utilitário de teste para o servidor de autenticação SASL libsasl2.so é uma biblioteca de autenticação de uso geral para aplicativos servidor e cliente GnuPG-2.4.7 Introdução ao GnuPG O pacote GnuPG é a ferramenta do GNU para comunicação e armazenamento de dados segura. Ela pode ser usada para encriptar dados e para criar assinaturas digitais. Ela inclui uma facilidade avançada de gerenciamento de chave e é conforme com o padrão proposto da Internet OpenPGP conforme descrito na RFC2440 e com o padrão S/MIME conforme descrito por várias RFCs. O GnuPG 2 é a versão estável do suporte de integração GnuPG para o OpenPGP e o S/MIME. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [1937]https://www.gnupg.org/ftp/gcrypt/gnupg/gnupg-2.4.7.tar.bz2 * Transferência (FTP): * Soma de verificação MD5 da transferência: 59ec68633deefcd38a5012f39a9d9311 * Tamanho da transferência: 7,6 MB * Espaço em disco estimado exigido: 135 MB (com testes) * Tempo de construção estimado: 0,7 UPC (com testes; ambos usando paralelismo=4) Dependências do GnuPG 2 Exigidas [1938]libassuan-3.0.2, [1939]libgcrypt-1.11.0, [1940]libksba-1.6.7, [1941]npth-1.8 e [1942]OpenLDAP-2.6.9 Recomendadas [1943]GnuTLS-3.8.9 (exigido para se comunicar com servidores de chave usando o protocolo https ou o hkps); e [1944]pinentry-1.3.1 (Exigência em tempo de execução para a maioria das funcionalidades do pacote) Opcionais [1945]cURL-8.12.1, [1946]Fuse-3.16.2, [1947]ImageMagick-7.1.1-43 (para o utilitário convert, usado para gerar a documentação), [1948]libusb-1.0.27, um [1949]MTA, [1950]SQLite-3.49.1, [1951]texlive-20240312 (ou [1952]install-tl-unx), [1953]fig2dev (para gerar a documentação) e [1954]GNU adns Instalação do GnuPG Instale GnuPG executando os seguintes comandos: mkdir build && cd build && ../configure --prefix=/usr \ --localstatedir=/var \ --sysconfdir=/etc \ --docdir=/usr/share/doc/gnupg-2.4.7 && make && makeinfo --html --no-split -I doc -o doc/gnupg_nochunks.html ../doc/gnupg.texi & & makeinfo --plaintext -I doc -o doc/gnupg.txt ../doc/gnupg.texi & & make -C doc html Se tiver o [1955]texlive-20240312 instalado e você desejar criar documentação no formato PDF, emita o seguinte comando: make -C doc pdf Para testar os resultados, emita: make check. Agora, como o(a) usuário(a) root: make install && install -v -m755 -d /usr/share/doc/gnupg-2.4.7/html && install -v -m644 doc/gnupg_nochunks.html \ /usr/share/doc/gnupg-2.4.7/html/gnupg.html && install -v -m644 ../doc/*.texi doc/gnupg.txt \ /usr/share/doc/gnupg-2.4.7 && install -v -m644 doc/gnupg.html/* \ /usr/share/doc/gnupg-2.4.7/html Se você criou o formato PDF da documentação, instale-os usando o seguinte comando como o(a) usuário(a) root: install -v -m644 doc/gnupg.pdf \ /usr/share/doc/gnupg-2.4.7 Explicações do Comando mkdir build && cd build: os(as) desenvolvedores(as) do "GnuPG2" recomendam construir o pacote em um diretório dedicado. --docdir=/usr/share/doc/gnupg-2.4.7: Essa chave muda o diretório padrão da documentação para /usr/share/doc/gnupg-2.4.7. --enable-all-tests: Essa chave permite que mais testes sejam executados com make check. --enable-g13: Essa chave habilita a construção do aplicativo g13. Conteúdo Aplicativos Instalados: addgnupghome, applygnupgdefaults, dirmngr, dirmngr-client, g13 (opcional), gpg-agent, gpg-card, gpg-connect-agent, gpg, gpgconf, gpgparsemail, gpgscm, gpgsm, gpgsplit, gpgtar, gpgv, gpg-wks-client, gpg-wks-server, kbxutil e watchgnupg Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /usr/share/doc/gnupg-2.4.7 e /usr/share/gnupg Descrições Curtas addgnupghome é usado para criar e povoar os diretórios ~/.gnupg de um(a) usuário(a) applygnupgdefaults é um script amarrador usado para executar o gpgconf com o parâmetro --apply-defaults em todos os diretórios home GnuPG do(a) usuário(a) dirmngr é uma ferramenta que se encarrega de acessar os servidores de chave OpenPGP dirmngr-client é uma ferramenta para contactar um dirmngr em execução e testar quando um certificado tenha sido revogado g13 é uma ferramenta para criar, montar ou desmontar um contêiner de sistema de arquivos encriptado (opcional) gpg-agent é um processo de segundo plano usado para gerenciar chaves secretas (privadas) independentemente de qualquer protocolo. Ele é usado como uma estrutura de retaguarda para o gpg e o gpgsm, bem como para um par de outros utilitários gpg-card é uma ferramenta para gerenciar cartões inteligentes e "tokens" gpg-connect-agent é um utilitário usado para comunicar com um gpg-agent em execução gpg é a parte OpenPGP do GNU Privacy Guard (GnuPG). Ele é uma ferramenta usada para fornecer serviços digitais de encriptação e de assinatura usando o padrão OpenPGP gpgconf é um utilitário usado para consultar e para modificar arquivos de configuração automática e razoavelmente seguramente no diretório home ~/.gnupg. Ele é projetado não para ser invocado manualmente pelo(a) usuário(a), mas automaticamente por interfaces gráficas de usuário(a) gpgparsemail é um utilitário atualmente útil somente para depuração. Execute-o com --help para informação de uso gpgscm executa o aplicativo de esquema dado ou gera um shell interativo gpgsm é uma ferramenta semelhante ao gpg usada para fornecer serviços digitais de encriptação e de assinatura em certificados X.509 e o protocolo CMS. Ele é usado principalmente como uma estrutura de retaguarda para o processamento de mensagem S/MIME gpgsplit divide uma mensagem OpenPGP em pacotes gpgtar é uma ferramenta para encriptar ou para assinar arquivos dentro de um arquivamento gpgv é uma versão somente verificação do gpg gpg-wks-client é um cliente para o protocolo Web Key Service gpg-wks-server fornece um servidor para o protocolo Web Key Service kbxutil é usado para listar, exportar e importar dados Keybox watchgnupg é usado para ouvir um soquete Unix Domain criado por quaisquer das ferramentas GnuPG GnuTLS-3.8.9 Introdução ao GnuTLS O pacote GnuTLS contém bibliotecas e ferramentas do espaço de usuário(a) que fornecem uma camada segura sobre uma camada de transporte confiável. Atualmente, a biblioteca GnuTLS implementa os padrões propostos pelo grupo de trabalho TLS da IETF. Citando a [1956]especificação do protocolo TLS 1.3 : “O TLS permite que aplicativos cliente/servidor se comuniquem pela Internet de uma maneira projetada para evitar espionagem, adulteração e falsificação de mensagens.” O GnuTLS fornece suporte para os protocolos TLS 1.3, TLS 1.2, TLS 1.1, TLS 1.0 e (opcionalmente) SSL 3.0. Ele também suporta extensões TLS, incluindo nome do servidor e tamanho máximo do registro. Além disso, a biblioteca suporta autenticação usando o protocolo SRP, certificados X.509 e chaves OpenPGP, junto com suporte para a extensão TLS Pre-Shared-Keys (PSK), a extensão Inner Application (TLS/IA) e manuseio de certificados OpenPGP e X.509. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [1957]https://www.gnupg.org/ftp/gcrypt/gnutls/v3.8/gnutls-3.8.9.tar .xz * Transferência (FTP): * Soma de verificação MD5 da transferência: 33f4c800c20af2983c45223a803da865 * Tamanho da transferência: 6,5 MB * Espaço em disco estimado exigido: 178 MB (adicionar 111 MB para os testes) * Tempo de construção estimado: 0,6 UPC (adicionar 1,4 UPC para testes; ambos usando paralelismo=8) Dependências do GnuTLS Exigidas [1958]Nettle-3.10.1 Recomendadas [1959]make-ca-1.15, [1960]libunistring-1.3, [1961]libtasn1-4.20.0 e [1962]p11-kit-0.25.5 Opcionais [1963]Brotli-1.1.0, [1964]Doxygen-1.13.2, [1965]GTK-Doc-1.34.0, [1966]libidn-1.42 ou [1967]libidn2-2.3.7, [1968]libseccomp-2.6.0, [1969]Net-tools-2.10 (usado durante a suíte de teste), [1970]texlive-20240312 ou [1971]install-tl-unx, [1972]Unbound-1.22.0 (para construir a biblioteca DANE), [1973]Valgrind-3.24.0 (usado durante a suíte de teste), [1974]autogen, [1975]cmocka e [1976]datefudge (usado durante a suíte de teste se a biblioteca DANE for construída), [1977]leancrypto, [1978]liboqs e [1979]Trousers (suporte ao módulo Trusted Platform) Nota Observe que, se você não instalar o [1980]libtasn1-4.20.0, [então] uma versão enviada no tarball GnuTLS será usada em vez. Instalação do GnuTLS Instale GnuTLS executando os seguintes comandos: ./configure --prefix=/usr \ --docdir=/usr/share/doc/gnutls-3.8.9 \ --with-default-trust-store-pkcs11="pkcs11:" && make Para testar os resultados, agora emita: make check. Agora, instale o pacote como o(a) usuário(a) root: make install Explicações do Comando --with-default-trust-store-pkcs11="pkcs11:": Essa chave diz ao gnutls para usar o armazenamento de confiança PKCS #11 como a confiança padrão. Omita essa chave se [1981]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 [1982]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 [1983]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 [1984]libunistring-1.3. --disable-dsa: Essa chave desabilita completamente o suporte ao algoritmo DSA. Conteúdo Aplicativos Instalados: certtool, danetool, gnutls-cli, gnutls-cli-debug, gnutls-serv, ocsptool, p11tool, psktool e srptool Bibliotecas Instaladas: libgnutls.so, libgnutls-dane.so, libgnutlsxx.so e libgnutls-openssl.so (opcional) Diretórios Instalados: /usr/include/gnutls e /usr/share/doc/gnutls-3.8.9 Descrições Curtas certtool é usado para gerar certificados X.509, solicitações de certificados e chaves privadas danetool é uma ferramenta usada para gerar e verificar registros de recursos DNS para o protocolo DANE gnutls-cli é um aplicativo cliente simples para configurar uma conexão TLS com algum outro computador gnutls-cli-debug é um aplicativo cliente simples para configurar uma conexão TLS com algum outro computador e produz resultados de progresso muito detalhados gnutls-serv é um aplicativo servidor simples que escuta as conexões TLS entrantes ocsptool é um aplicativo que pode analisar e imprimir informação relativa a solicitações/respostas OCSP, gerar solicitações e verificar respostas p11tool é um aplicativo que permite manusear dados procedentes de cartões inteligentes PKCS #11 e de módulos de segurança psktool é um aplicativo simples que gera chaves aleatórias para uso com TLS-PSK srptool é um aplicativo simples que emula os aplicativos nas bibliotecas Stanford SRP (Secure Remote Password) usando o GnuTLS libgnutls.so contém as funções centrais da API e as funções da API de certificado X.509 GPGME-1.24.2 Introdução ao GPGME O pacote GPGME é uma biblioteca C que permite que suporte à criptografia seja adicionada a um aplicativo. Ele é projetado para tornar o acesso a mecanismos de criptografia de chave pública, como o GnuPG ou o GpgSM, mais fácil para os aplicativos. O GPGME fornece uma API criptográfica de alto nível para encriptação, desencriptação, assinatura, verificação de assinatura e gerenciamento de chaves. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [1985]https://www.gnupg.org/ftp/gcrypt/gpgme/gpgme-1.24.2.tar.bz2 * Transferência (FTP): * Soma de verificação MD5 da transferência: 2e0cc1df9f3da8c2a7d7c9dc33b7f0bf * Tamanho da transferência: 1,8 MB * Espaço em disco estimado exigido: 404 MB (com testes) * Tempo de construção estimado: 1,5 UPC (com todas as ligações e testes; com paralelismo=4) Dependências do GPGME Exigidas [1986]libassuan-3.0.2 Opcionais [1987]Doxygen-1.13.2 e [1988]Graphviz-12.2.1 (para documentação da API), [1989]GnuPG-2.4.7 (exigido se Qt ou SWIG estiverem instalados; usado durante a suíte de teste), [1990]Clisp-2.49 e [1991]SWIG-4.3.0 (para ligações de idioma) Instalação do GPGME Instale GPGME executando os seguintes comandos: mkdir build && cd build && ../configure --prefix=/usr --disable-gpg-test && make PYTHONS= Se [1992]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/pyt hon fi Para testar os resultados, você deveria ter [1993]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 [1994]SWIG-4.3.0 estiver instalado, ainda como o(a) usuário(a) root, instale a ligação do Python 3: if swig -version > /dev/null; then pip3 install --no-index --find-links dist --no-user gpg fi Explicações do Comando --disable-gpg-test: se esse parâmetro não for passado para configurar, [então] os aplicativos de teste são construídos durante o estágio make, que exige [1995]GnuPG-2.4.7. Esse parâmetro não é necessário se [1996]GnuPG-2.4.7 estiver instalado. PYTHONS=: Desabilite a construção de ligação Python usando o comando obsoleto python3 setup.py build. A instrução explícita para construir a ligação Python 3 com o comando pip3 wheel é fornecida. Conteúdo Aplicativo Instalado: gpgme-json e gpgme-tool Bibliotecas Instaladas: libgpgme.so, libgpgmepp.so e libqgpgme.so Diretório Instalado: /usr/include/{gpgme++,qgpgme,QGpgME}, /usr/lib/cmake/{Gpgmepp,QGpgme}. /usr/lib/python3.13/site-packages/gpg{,-1.24.2.dist-info} e /usr/share/common-lisp/source/gpgme Descrições Curtas gpgme-json gera comandos GPGME no formato JSON gpgme-tool é um servidor assuan que expõe operações GPGME, como impressão de impressões digitais e identificadores de chave com servidores de chaves libgpgme.so contém as funções da API GPGME libgpgmepp.so contém as funções da API C++ GPGME libqgpgme.so contém funções de API para lidar com operações GPG em aplicativos Qt iptables-1.8.11 Introdução ao iptables O iptables é um aplicativo de linha de comando do espaço do(a) usuário(a) usado para configurar o conjunto de regras de filtragem de pacote do núcleo Linux 2.4 e posteriores. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [1997]https://www.netfilter.org/projects/iptables/files/iptables-1. 8.11.tar.xz * Transferência (FTP): * 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 Dependências do iptables Opcionais [1998]libpcap-1.10.5 (exigido para suporte ao compilador BPF ou nfsynproxy), [1999]bpf-utils (exigido para suporte ao Berkeley Packet Filter), [2000]libnfnetlink (exigido para suporte ao connlabel), [2001]libnetfilter_conntrack (exigido para suporte ao connlabel) e [2002]nftables Configuração do Núcleo Um firewall no Linux é realizado por meio da interface netfilter. Para usar o iptables para configurar a netfilter, os seguintes parâmetros de configuração do núcleo são exigidos: [*] Networking support ---> [NET] Networking options ---> [*] Network packet filtering framework (Netfilter) ---> [NETFILTER] [*] Advanced netfilter configuration [NETFILTER_ADVANCED] Core Netfilter Configuration ---> <*/M> Netfilter connection tracking support [NF_CONNTRACK] <*/M> Netfilter Xtables support (required for ip_tables) ... [NETFILTER_XTABLES] <*/M> LOG target support [NETFILTER_XT_TARGET_LOG] IP: Netfilter Configuration ---> <*/M> IP tables support (required for filtering/masq/NAT) ... [IP_NF_IPTABLES] Inclua quaisquer protocolos de rastreamento de conexão que serão usados, bem como quaisquer protocolos que você desejar usar para corresponder ao suporte sob a seção "Configuração Central da Netfilter". As opções acima são suficientes para se executar o [2003]Criando um Firewall Pessoal Com o iptables abaixo. Instalação do iptables Nota A instalação abaixo não inclui a construção de algumas bibliotecas de extensão especializadas que exigem os cabeçalhos crus no código fonte do Linux. Se desejar construir as extensões adicionais (se não tiver certeza, então provavelmente não deseja), [então] você pode olhar no arquivo INSTALL para ver um exemplo do como mudar o parâmetro KERNEL_DIR= para apontar para o código fonte do Linux. Observe que, se atualizar a versão do núcleo, [então] possivelmente precisará também recompilar o iptables e isso a equipe do BLFS não testou usando os cabeçalhos crus do núcleo. Instale iptables executando os seguintes comandos: ./configure --prefix=/usr \ --disable-nftables \ --enable-libipq && make Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) root: make install Explicações do Comando --disable-nftables: Essa chave desabilita a construção da compatibilidade do nftables. --enable-libipq: Essa chave habilita a construção da libipq.so a qual pode ser usada por alguns pacotes fora do BLFS. --enable-nfsynproxy: Essa chave habilita a instalação da ferramenta de configuração do SYNPROXY nfsynproxy. Configurando iptables Nota Nas seguintes configurações de exemplo, LAN1 é usada para a interface interna da LAN e WAN1 é usada para a interface externa conectada com a Internet. Você precisará substituir esses valores por nomes apropriados de interface para o seu sistema. Firewall Pessoal Um Firewall Pessoal é projetado para permitir que você acesse todos os serviços oferecidos na Internet enquanto mantém o seu computador seguro e os seus dados privados. Abaixo está uma versão ligeiramente modificada da recomendação do Rusty Russell oriunda do [2004]Linux 2.4 Packet Filtering HOWTO. Ela ainda é aplicável aos núcleos Linux 6.x. cat > /etc/rc.d/rc.iptables << "EOF" #!/bin/sh # Início do rc.iptables # Insere módulos de rastreamento de conexão # (não necessário se construído internamente ao kernel) modprobe nf_conntrack modprobe xt_LOG # Habilita difusão echo Protection echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts # Desabilita Pacotes Fonte Roteados echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route echo 0 > /proc/sys/net/ipv4/conf/default/accept_source_route # Habilita a Proteção SYN Cookie do TCP echo 1 > /proc/sys/net/ipv4/tcp_syncookies # Desabilita a Aceitação de Redireção de ICMP echo 0 > /proc/sys/net/ipv4/conf/default/accept_redirects # Não envia Mensagens de Redireção echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects echo 0 > /proc/sys/net/ipv4/conf/default/send_redirects # Descarta Pacotes Falsificados entrantes em uma interface, onde as # respostas resultariam na resposta indo para uma interface diferente. echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter echo 1 > /proc/sys/net/ipv4/conf/default/rp_filter # Registra pacotes com endereços impossíveis. echo 1 > /proc/sys/net/ipv4/conf/all/log_martians echo 1 > /proc/sys/net/ipv4/conf/default/log_martians # Seja detalhado acerca de endereços de IP dinâmicos (não necessário no caso de IP estático) echo 2 > /proc/sys/net/ipv4/ip_dynaddr # Desabilita a Notificação Explícita de Congestão # roteadores demais ainda são ignorantes echo 0 > /proc/sys/net/ipv4/tcp_ecn # Configura um estado conhecido iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT DROP # Estas linhas estão aqui no caso das regras já estiverem no lugar e o conjunto de comandos sequenciais for até mesmo # reexecutado em tempo real. Nós queremos remover todas as regras e cadeias pree xistentes definidas por usuário(a) # antes de implementarmos novas regras. iptables -F iptables -X iptables -Z iptables -t nat -F # Permite conexões locais somente iptables -A INPUT -i lo -j ACCEPT # Libera a saída gerada em qualquer interface para qualquer IP para # qualquer serviço (igual a -P ACCEPT) iptables -A OUTPUT -j ACCEPT # Permite respostas em conexões já estabelecidas e permite novas # conexões relacionadas às estabelecidas (por exemplo, modo de porta # ftp) iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT # Descarte qualquer pacote MULTICAST ou BROADCAST entrante antes de registrar: # A caixa gera vários deles ao usar netbios ou mDNS e aqueles aparecem imediatam ente # como entrantes, o que sobrecarrega o log. iptables -A INPUT -m addrtype --dst-type BROADCAST,MULTICAST -j DROP # Registra tudo o mais. iptables -A INPUT -j LOG --log-prefix "FIREWALL:INPUT " # Fim do $rc_base/rc.iptables EOF chmod 700 /etc/rc.d/rc.iptables Esse script é bastante simples; ele descarta todo o tráfego entrante no seu computador que não foi iniciado a partir do seu computador; porém, considerando que você está simplesmente surfando na Internet, é improvável que exceda os limites dele. Se você encontrar frequentemente certos atrasos ao acessar servidores FTP, [então] dê uma olhada em [2005]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 [2006]Criando um BusyBox Com o iptables. Roteador de Mascaramento Um Firewall de Rede de Comunicação tem duas interfaces, uma conectada com uma intranet, neste exemplo LAN1 e uma conectada com a Internet, aqui WAN1. Para fornecer a máxima segurança para o próprio firewall, tenha certeza de que não existem servidores desnecessários executando nele, tais como o X11. Como um princípio geral, o próprio firewall não deveria acessar qualquer serviço não confiável (pense em um servidor remoto dando respostas que fazem com que um processo de segundo plano no seu sistema quebre; ou ainda pior, que implementa um verme via um estouro do buffer). cat > /etc/rc.d/rc.iptables << "EOF" #!/bin/sh # Início do rc.iptables echo echo "Você está usando a configuração de exemplo para uma configuração de um fir ewall" 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 kerne l). modprobe nf_conntrack modprobe nf_conntrack_ftp modprobe xt_conntrack modprobe xt_LOG modprobe xt_state # Habilita difusão echo Protection echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts # Desabilita Pacotes Fonte Roteados echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route # Habilita a Proteção SYN Cookie do TCP echo 1 > /proc/sys/net/ipv4/tcp_syncookies # Desabilita a Aceitação de Redireção de ICMP echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects # Não envia Mensagens de Redireção echo 0 > /proc/sys/net/ipv4/conf/default/send_redirects # Descarta Pacotes Falsificados entrantes em uma interface, onde as # respostas resultariam na resposta indo para uma interface diferente. echo 1 > /proc/sys/net/ipv4/conf/default/rp_filter # Registra pacotes com endereços impossíveis. echo 1 > /proc/sys/net/ipv4/conf/all/log_martians # Seja verboso a respeito de endereços dinâmicos de IP (não necessário no caso d e 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 fo r mesmo # reexecutado em tempo real. Nós queremos remover todas as regras e cadeias pre existentes # definidas por usuário(a) antes de implementarmos novas regras. iptables -F iptables -X iptables -Z iptables -t nat -F # Permite conexões locais iptables -A INPUT -i lo -j ACCEPT iptables -A OUTPUT -o lo -j ACCEPT # Permite o encaminhamento se a iniciada na intranet iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT iptables -A FORWARD ! -i WAN1 -m conntrack --ctstate NEW -j ACCEPT # Faz o mascaramento (não necessário se a intranet não estiver usando # endereços IP privados) iptables -t nat -A POSTROUTING -o WAN1 -j MASQUERADE # Registra tudo para depuração (última de todas as regras, porém antes # das regras de política) iptables -A INPUT -j LOG --log-prefix "FIREWALL:INPUT " iptables -A FORWARD -j LOG --log-prefix "FIREWALL:FORWARD " iptables -A OUTPUT -j LOG --log-prefix "FIREWALL:OUTPUT " # Habilita o Encaminhamento de IP echo 1 > /proc/sys/net/ipv4/ip_forward EOF chmod 700 /etc/rc.d/rc.iptables Com esse script sua intranet deveria estar razoavelmente segura contra ataques externos. Ninguém deveria estar apto(a) a configurar uma conexão nova para qualquer serviço interno e, se estiver mascarada, torna a sua intranet invisível para a Internet. Além disso, o seu firewall deveria estar relativamente a salvo, pois não existem serviços executando que um cracker pudesse atacar. BusyBox Este cenário não é muito diferente do [2007]Criando um Roteador de Mascaramento Com o iptables, porém, adicionalmente, oferece alguns serviços para a sua intranet. Exemplos disto podem ser quando você quer administrar o seu firewall a partir de outro dispositivo na sua intranet ou usá-lo como um proxy ou como um servidor de nome. Nota Delinear especificamente como proteger um servidor que oferece serviços na Internet vai bem além do escopo deste documento. Vejam-se as referências em [2008]“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 [2009]Criando um Roteador de Mascaramento Com o iptables para mais alguns detalhes. Se você quiser acrescentar serviços, tais como servidores internos Samba ou de nome, que não precisem acessar eles próprios a Internet, [então] as declarações adicionais são bastante simples e ainda deveriam ser aceitáveis a partir de um ponto de vista da segurança. Apenas acrescente as seguintes linhas no script antes das regras de registro. iptables -A INPUT -i ! WAN1 -j ACCEPT iptables -A OUTPUT -o ! WAN1 -j ACCEPT Se processos de segundo plano, tais como o squid, tiverem que acessar eles próprios a Internet, [então] você geralmente poderia abrir OUTPUT e restringir INPUT. iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT iptables -A OUTPUT -j ACCEPT Entretanto, geralmente não é aconselhável deixar OUTPUT irrestrito. Você perde algum controle sobre trojans que gostariam de "chamar home", e um monte de redundância no caso de você tiver (mal) configurado um serviço, de forma que difunda a existência dele para o mundo. Para realizar isso, você deveria restringir INPUT e OUTPUT em todas as portas, exceto naquelas que sejam absolutamente necessárias ter abertas. Quais portas você tem de abrir depende das suas necessidades: a maioria você as encontrará procurando por acessos falhos nos seus arquivos de registro. Dê Uma Olhada nos Seguintes Exemplos: * O Squid está armazenando a web em cache: iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT iptables -A INPUT -p tcp --sport 80 -m conntrack --ctstate ESTABLISHED \ -j ACCEPT * Seu servidor de nome de cache (por exemplo, named) faz as pesquisas dele via UDP: iptables -A OUTPUT -p udp --dport 53 -j ACCEPT * Você quer executar ping em seu computador para garantir que ele ainda esteja ativo: iptables -A INPUT -p icmp -m icmp --icmp-type echo-request -j ACCEPT iptables -A OUTPUT -p icmp -m icmp --icmp-type echo-reply -j ACCEPT * Se frequentemente estiver acessando servidores FTP ou curte chat, [então] você poderia notar atrasos, pois algumas implementações desses processos de segundo plano consultam um processo de segundo plano identd no seu sistema para obter nomes de usuário(a). Embora exista realmente pouco dano nisso, ter-se um identd executando não é recomendado, pois muitos especialistas em segurança entendem que o serviço dá muito mais informação adicional. Para evitar tais atrasos, você poderia rejeitar as solicitações com uma resposta 'tcp-reset': iptables -A INPUT -p tcp --dport 113 -j REJECT --reject-with tcp-reset * Para registrar e descartar pacotes inválidos (pacotes que vieram depois de um tempo esgotado do netfilter ou de alguns tipos de escaneamentos de rede de comunicação) insira estas regras no topo da cadeia: iptables -I INPUT 0 -p tcp -m conntrack --ctstate INVALID \ -j LOG --log-prefix "FIREWALL:INVALID " iptables -I INPUT 1 -p tcp -m conntrack --ctstate INVALID -j DROP * Qualquer coisa vinda a partir do lado de fora não deveria ter um endereço privado; isso é um ataque comum chamado de falsificação de IP: iptables -A INPUT -i WAN1 -s 10.0.0.0/8 -j DROP iptables -A INPUT -i WAN1 -s 172.16.0.0/12 -j DROP iptables -A INPUT -i WAN1 -s 192.168.0.0/16 -j DROP Existem outros endereços que você possivelmente também queira descartar: 0.0.0.0/8, 127.0.0.0/8, 224.0.0.0/3 (multicast e experimental), 169.254.0.0/16 (Redes de Comunicação Link Local) e 192.0.2.0/24 (rede de comunicação de teste definida pela IANA). * Se o seu firewall for um cliente DHCP, [então] você precisa permitir aqueles pacotes: iptables -A INPUT -i WAN1 -p udp -s 0.0.0.0 --sport 67 \ -d 255.255.255.255 --dport 68 -j ACCEPT * Para simplificar a depuração e ser justo(a) com qualquer um(a) que gostaria de acessar um serviço que você tenha desabilitado, propositalmente ou por erro, você poderia REJEITAR aqueles pacotes que são descartados. Obviamente, isso precisa ser feito diretamente depois do registro, como as ultimíssimas linhas antes dos pacotes serem descartados pela política: iptables -A INPUT -j REJECT Esses são somente exemplos para mostrar para você algumas das capacidades do código do firewall no Linux. Dê uma olhada na página de manual do iptables. Lá você encontrará muito mais informação. Os números de porta necessários para isso podem ser encontrados em /etc/services, caso você não os encontrou por tentativa e erro no seu arquivo de registro. Conjunto de Comandos Sequenciais de Inicialização Para configurar o firewall iptables na inicialização, instale o script de inicialização /etc/rc.d/init.d/iptables incluso no pacote [2010]blfs-bootscripts-20250225. make install-iptables Conteúdo Aplicativos Instalados: ip6tables, ip6tables-apply, ip6tables-legacy, ip6tables-legacy-restore, ip6tables-legacy-save, ip6tables-restore, ip6tables-save, iptables, iptables-apply, iptables-legacy, iptables-legacy-restore, iptables-legacy-apply, iptables-restore, iptables-save, iptables-xml, nfsynproxy (opcional) e xtables-multi Bibliotecas Instaladas: libip4tc.so, libip6tc.so, libipq.so, libiptc.so e libxtables.so Diretórios Instalados: /lib/xtables e /usr/include/libiptc Descrições Curtas iptables é usado para configurar, manter e inspecionar as tabelas de regras de filtro de pacote IP no núcleo Linux iptables-apply é uma maneira mais segura para atualizar o iptables remotamente iptables-legacy é usado para interagir com o iptables usando o conjunto legado de comandos iptables-legacy-restore é usado para restaurar um conjunto de regras legadas do iptables iptables-legacy-save é usado para salvar um conjunto de regras legadas do iptables iptables-restore é usado para restaurar as Tabelas de IP a partir de dados especificados na STDIN. Use o redirecionamento de Entrada/Saída fornecida pelo seu shell para ler a partir de um arquivo iptables-save é usado para despejar o conteúdo de uma Tabela de IP em formato facilmente analisável para a STDOUT. Use o redirecionamento de Entrada/Saída fornecido pelo seu shell para escrever em um arquivo iptables-xml é usado para converter a saída gerada do iptables-save para um formato XML. Usar a folha de estilo iptables.xslt converte o XML de volta para o formato do iptables-restore ip6tables* é um conjunto de comandos para IPv6 que paraleliza os comandos do iptables acima nfsynproxy ferramenta de configuração (opcional). O alvo SYNPROXY torna o manuseio de grandes inundações SYN possível sem as grandes penalidades de desempenho impostas pelo rastreio de conexão em tais casos xtables-multi é um binário que se comporta de acordo com o nome pelo qual ele for chamado Configurando um Firewall de Rede de Comunicação Introdução à Criação de Firewall O propósito de um firewall é o de proteger um computador ou uma rede de comunicação contra acesso malicioso. Em um mundo perfeito, cada processo de segundo plano ou serviço, em cada máquina, está perfeitamente configurado e imune a falhas de segurança e todos(as) os(as) usuários(as) são implicitamente confiáveis para usar o equipamento conforme pretendido. Entretanto, isso é raramente, se é que existe, o caso. Processos de segundo plano possivelmente estejam mal configurados ou atualizações possivelmente não tenham sido aplicadas para maus usos em benefício próprio conhecidos contra serviços essenciais. Adicionalmente, você possivelmente deseje escolher quais serviços são acessíveis por certas máquinas ou por usuários(as); ou você possivelmente deseje limitar para quais máquinas ou aplicativos são permitidas o acesso externo. Alternativamente, você possivelmente simplesmente não confie em alguns dos seus aplicativos ou usuários(as). Por essas razões, um firewall cuidadosamente projetado deveria ser uma parte essencial da segurança do sistema. Embora um firewall consiga limitar bastante o escopo dos problemas acima, não assuma que ter-se um firewall torna redundante a configuração cuidadosa ou que qualquer má configuração negligente seja inofensiva. Um firewall não evita o mau uso em benefício próprio de qualquer serviço que você ofereça do lado de fora dele. A despeito de ter um firewall, você precisa manter aplicativos e processos de segundo plano devidamente configurados e atualizados. Significado da Palavra "Firewall" A palavra firewall pode ter diferentes significados. Firewall Pessoal Esse é um dispositivo de hardware ou aplicativo de software destinado a proteger computador doméstico ou de área de trabalho conectado com a Internet. Esse tipo de firewall é altamente relevante para usuários(as) que não sabem como o computador deles(as) poderia ser acessado via Internet ou como desabilitar tal acesso, especialmente se eles(as) sempre estiverem online e conectados(as) via links de banda larga. Uma configuração de exemplo para um firewall pessoal é fornecida em [2011]Criando um Firewall Pessoal Com o iptables. Roteador de Mascaramento Isso é um sistema colocado entre a Internet e uma intranet. Para minimizar o risco de comprometimento do próprio firewall, geralmente deveria ter somente uma função—aquela de proteger a intranet. Embora não completamente livre de risco, as tarefas de fazer o roteamento e de mascaramento de IP (reescrever cabeçalhos de IP dos pacotes que ele roteia de clientes com endereços IP privados para a Internet, de forma que eles pareçam vir a partir do próprio firewall) comumente são consideradas relativamente seguras. Uma configuração de exemplo para um firewall de mascaramento é fornecida em [2012]Criando um Roteador de Mascaramento Com o iptables. BusyBox Isso frequentemente é um computador antigo que você possivelmente tenha aposentado e quase esquecido, realizando funções de mascaramento ou de roteamento, porém oferecendo serviços que não são de firewall, tais como um cache de web ou correio. Isso possivelmente seja usado para redes de comunicação domésticas, porém não é para ser considerado tão seguro quanto uma máquina somente de firewall, pois a combinação de servidor e roteador/firewall em uma máquina eleva a complexidade da configuração. Uma configuração de exemplo para uma BusyBox é fornecida em [2013]Criando um BusyBox Com o iptables. Firewall com uma Zona Desmilitarizada Esse tipo de firewall realiza mascaramento ou roteamento, porém concede acesso público a alguma ramificação da sua rede de comunicação que é separada fisicamente da sua intranet regular e essencialmente é uma rede de comunicação separada com acesso direto à Internet. Os servidores nessa rede de comunicação são aqueles que precisam estar facilmente acessíveis a partir tanto da Internet quanto da intranet. O firewall protege ambas as redes de comunicação. Esse tipo de firewall tem um mínimo de três interfaces de rede de comunicação. Filtro de Pacote Esse tipo de firewall faz roteamento ou mascaramento, porém não mantém uma tabela estável dos fluxos de comunicação transeuntes. É rápido, entretanto bastante limitado na habilidade de bloquear pacotes indesejados sem bloquear pacotes desejados. Conclusão Cuidado As configurações de exemplo fornecidas para o [2014]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 [2015]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. Informação Extra Leitura Adicional Acerca de Firewalls [2016]www.netfilter.org - Página inicial dos projetos netfilter/iptable s/nftables [2017]Perguntas Frequentes relacionadas ao Netfilter [2018]Tutoriais relacionados ao Netfilter [2019]Tutoriais do nftables [2020]tldp.org/LDP/nag2/x-087-2-firewall.html [2021]tldp.org/HOWTO/Security-HOWTO.html [2022]tldp.org/HOWTO/Firewall-HOWTO.html [2023]linuxsecurity.com/howtos [2024]www.circlemud.org/jelson/writings/security/index.htm [2025]insecure.org/reading.html libcap-2.73 com PAM Introdução ao libcap com PAM O pacote libcap foi instalado no LFS, porém se o suporte Linux-PAM for desejado, [então] o módulo PAM precisa ser construído (depois da instalação do Linux-PAM). Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2026]https://www.kernel.org/pub/linux/libs/security/linux-privs/li bcap2/libcap-2.73.tar.xz * Transferência (FTP): * 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 Dependências do libcap Exigidas [2027]Linux-PAM-1.7.0 Instalação do libcap Nota Se você estiver atualizando o libcap a partir de uma versão anterior, [então] use as instruções na [2028]página libcap do LFS para atualizar o libcap. Se [2029]Linux-PAM-1.7.0 tiver sido construído, o módulo PAM também será construído automaticamente. Instale libcap executando os seguintes comandos: make -C pam_cap Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) root: install -v -m755 pam_cap/pam_cap.so /usr/lib/security && install -v -m644 pam_cap/capability.conf /etc/security Configurando Libcap Para a finalidade de permitir que o Linux-PAM conceda privilégios baseados nos recursos POSIX, você precisa adicionar o módulo libcap ao início do arquivo /etc/pam.d/system-auth. Faça as edições necessárias com os seguintes comandos: mv -v /etc/pam.d/system-auth{,.bak} && cat > /etc/pam.d/system-auth << "EOF" && # Begin /etc/pam.d/system-auth auth optional pam_cap.so EOF tail -n +3 /etc/pam.d/system-auth.bak >> /etc/pam.d/system-auth Além disso, você precisará modificar o arquivo /etc/security/capability.conf para conceder os privilégios necessários para os(as) usuários(as) e utilizar o utilitário setcap para configurar recursos em utilitários específicos como necessário. Veja-se man 8 setcap e man 3 cap_from_text para informação adicional. Conteúdo Aplicativos Instalados: Nenhum(a) Biblioteca Instalada: pam_cap.so Diretórios Instalados: Nenhum(a) Linux-PAM-1.7.0 Introdução ao Linux PAM O pacote Linux PAM contém Módulos Plugáveis de Autenticação usados pelo(a) administrador(a) local do sistema para controlar como os aplicativos autenticam usuários(as). Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2030]https://github.com/linux-pam/linux-pam/releases/download/v1.7 .0/Linux-PAM-1.7.0.tar.xz * Transferência (FTP): * 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) Transferências Adicionais Documentação Opcional * Transferência (HTTP): [2031]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 Dependências do Linux PAM Opcionais [2032]libnsl-2.0.1, [2033]libtirpc-1.3.6, [2034]rpcsvc-proto-1.4.4, [2035]Berkeley DB (obsoleto), [2036]libaudit e [2037]libeconf Opcionais (Para construir a Documentação e Páginas de Manual) [2038]docbook-xml-5.0, [2039]docbook-xsl-ns-1.79.2, [2040]fop-2.10 (para o formato PDF), [2041]libxslt-1.1.42 e [2042]Lynx-2.9.2 (para o formato de texto simples) Nota [2043]Shadow-4.17.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 [2044]libpwquality-1.4.5 para impor senhas fortes. Configuração do Núcleo Para o módulo PAM pam_loginuid.so (referido pelo arquivo de configuração PAM system-session, se [2045]elogind-255.17 for construído posteriormente) funcionar, um parâmetro de configuração do núcleo precisa ser configurado ou o módulo simplesmente não fará nada: General setup ---> [*] Auditing support [AUDIT] Instalação do Linux PAM Se você tiver instalado [2046]docbook-xml-5.0, [2047]docbook-xsl-ns-1.79.2, [2048]libxslt-1.1.42 e [2049]Lynx-2.9.2 e desejar gerar o formato de texto simples das documentações, modifique meson.build para usar [2050]Lynx-2.9.2 em vez de W3m ou Elinks que o BLFS não fornece: sed -e "s/'elinks'/'lynx'/" \ -e "s/'-no-numbering', '-no-references'/ \ '-force-html', '-nonumbers', '-stdin'/" \ -i meson.build Compile e vincule o Linux PAM executando os seguintes comandos: mkdir build && cd build && meson setup .. \ --prefix=/usr \ --buildtype=release \ -D docdir=/usr/share/doc/Linux-PAM-1.7.0 && ninja Para testar os resultados, um arquivo de configuração adequado /etc/pam.d/other precisa existir. Reinstalação ou Atualização do Linux PAM Se você tiver um sistema com Linux PAM instalado e funcionando, seja cuidadoso(a) ao modificar os arquivos em /etc/pam.d, pois seu sistema possivelmente se torne totalmente inutilizável. Se você deseja executar os testes, [então] não precisa criar outro arquivo /etc/pam.d/other. O arquivo existente pode ser usado para os testes. Você também deveria estar ciente de que ninja install sobrescreve os arquivos de configuração em /etc/security, assim como em /etc/environment. Se você tiver modificado esses arquivos, certifique-se de produzir uma cópia de segurança deles. Para uma primeira instalação, crie um arquivo de configuração emitindo os seguintes comandos como o(a) usuário(a) root: install -v -m755 -d /etc/pam.d && cat > /etc/pam.d/other << "EOF" auth required pam_deny.so account required pam_deny.so password required pam_deny.so session required pam_deny.so EOF Agora execute os testes emitindo ninja test. Certifique-se de que os testes não produziram erros antes de continuar a instalação. Para uma primeira instalação, remova o arquivo de configuração criado anteriormente emitindo o seguinte comando como o(a) usuário(a) root: rm -fv /etc/pam.d/other Agora, como o(a) usuário(a) root: ninja install && chmod -v 4755 /usr/sbin/unix_chkpwd Agora remova um diretório desnecessário como root: rm -rf /usr/lib/systemd Se você não tiver as dependências opcionais instaladas para construir a documentação e baixou a documentação opcional pré construída, novamente como o(a) usuário(a) root: tar -C / -xvf ../../Linux-PAM-1.7.0-docs.tar.xz Configurando Linux-PAM Arquivos de Configuração /etc/security/* e /etc/pam.d/* Informação de Configuração A informação de configuração é colocada em /etc/pam.d/. Aqui está um arquivo de amostra: # Início /etc/pam.d/other auth required pam_unix.so nullok account required pam_unix.so session required pam_unix.so password required pam_unix.so nullok # Fim /etc/pam.d/other Agora, crie alguns arquivos genéricos de configuração. Como o(a) usuário(a) root: install -vdm755 /etc/pam.d && cat > /etc/pam.d/system-account << "EOF" && # Inicia /etc/pam.d/system-account account required pam_unix.so # Termina /etc/pam.d/system-account EOF cat > /etc/pam.d/system-auth << "EOF" && # Inicia /etc/pam.d/system-auth auth required pam_unix.so # Termina /etc/pam.d/system-auth EOF cat > /etc/pam.d/system-session << "EOF" && # Inicia /etc/pam.d/system-session session required pam_unix.so # Termina /etc/pam.d/system-session EOF cat > /etc/pam.d/system-password << "EOF" # Inicia /etc/pam.d/system-password # Use resumo 'yescrypt' para encriptação; use sombra e tente usar # qualquer token de autenticação previamente definido (senha escolhida) # configurado por qualquer módulo anterior. password required pam_unix.so yescrypt shadow try_first_pass # Termina /etc/pam.d/system-password EOF Se você deseja ativar o suporte a senhas fortes, [então] instale [2051]libpwquality-1.4.5 e siga as instruções naquela página para configurar o módulo PAM pam_pwquality com suporte a senhas fortes. Em seguida, adicione um arquivo de configuração /etc/pam.d/other restritivo. Com esse arquivo, os aplicativos que reconhecem o PAM não serão executados, a menos que exista um arquivo de configuração específico para esse aplicativo. cat > /etc/pam.d/other << "EOF" # Início /etc/pam.d/other auth required pam_warn.so auth required pam_deny.so account required pam_warn.so account required pam_deny.so password required pam_warn.so password required pam_deny.so session required pam_warn.so session required pam_deny.so # Fim /etc/pam.d/other EOF A página de manual do PAM (man pam) fornece um bom ponto de partida para aprender a respeito dos diversos campos e entradas permissíveis. O Guia Linux-PAM do(a) Administrador(a) do Sistema em /usr/share/doc/Linux-PAM-1.7.0/Linux-PAM_SAG.txt é recomendado para informações adicionais. Importante Você agora deveria reinstalar o pacote [2052]Shadow-4.17.3. Conteúdo Aplicativo Instalado: faillock, mkhomedir_helper, pam_namespace_helper, pam_timestamp_check, pwhistory_helper, unix_chkpwd e unix_update Bibliotecas Instaladas: libpam.so, libpamc.so e libpam_misc.so Diretórios Instalados: /etc/security, /usr/lib/security, /usr/include/security e /usr/share/doc/Linux-PAM-1.7.0 Descrições Curtas faillock exibe e modifica os arquivos de registro de falha de autenticação mkhomedir_helper é um binário auxiliar que cria diretórios home pam_namespace_helper é um aplicativo auxiliar usado para configurar um espaço de nome privado para uma sessão de usuário(a) pwhistory_helper é um aplicativo auxiliar que transfere hashes de senha de passwd ou shadow para opasswd pam_timestamp_check é usado para verificar se o carimbo padrão de tempo é válido unix_chkpwd é um binário auxiliar que verifica a senha do(a) usuário(a) atual unix_update é um binário auxiliar que atualiza a senha de um(a) determinado(a) usuário(a) libpam.so fornece as interfaces entre os aplicativos e os módulos PAM liboauth-1.0.3 Introdução ao liboauth liboauth é uma coleção de funções POSIX-C implementando o padrão OAuth Core RFC 5849. Liboauth fornece funções para escapar e codificar parâmetros de acordo com a especificação OAuth e oferece funcionalidade de alto nível para assinar solicitações ou verificar assinaturas OAuth, bem como realizar solicitações HTTP. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2053]https://downloads.sourceforge.net/liboauth/liboauth-1.0.3.tar .gz * Transferência (FTP): * 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 Transferências Adicionais * Remendo exigido para uso com o OpenSSL: [2054]https://www.linuxfromscratch.org/patches/blfs/12.3/liboauth-1 .0.3-openssl-1.1.0-3.patch Dependências do liboauth Exigidas [2055]cURL-8.12.1 Opcionais [2056]nss-3.108 e [2057]Doxygen-1.13.2 (para construir a documentação) Instalação do liboauth Aplique um remendo para a versão atual do OpenSSL: patch -Np1 -i ../liboauth-1.0.3-openssl-1.1.0-3.patch Instale liboauth executando os seguintes comandos: ./configure --prefix=/usr --disable-static && make Se você deseja construir a documentação (precisa do [2058]Doxygen-1.13.2), emita: make dox Para testar os resultados, emita: make check. Agora, como o(a) usuário(a) root: make install Se você previamente já tiver criado a documentação, [então] instale-a executando os seguintes comandos como o(a) usuário(a) root: install -v -dm755 /usr/share/doc/liboauth-1.0.3 && cp -rv doc/html/* /usr/share/doc/liboauth-1.0.3 Explicações do Comando --disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas. --enable-nss: Use essa chave se desejar usar Mozilla NSS em vez do OpenSSL. Conteúdo Aplicativos Instalados: Nenhum(a) Bibliotecas Instaladas: liboauth.so Diretórios Instalados: /usr/share/doc/liboauth-1.0.3 Descrições Curtas liboauth.so fornece funções para escapar e codificar sequências de caracteres de acordo com as especificações OAuth e oferece funcionalidade de alto nível integrada para assinar solicitações ou verificar assinaturas usando NSS ou OpenSSL para calcular o hash/assinaturas libpwquality-1.4.5 Introdução ao libpwquality O pacote libpwquality fornece funções comuns para verificação da qualidade da senha e também pontuação com base na aparente aleatoriedade dela. A biblioteca também fornece uma função para gerar senhas aleatórias com boa pronúncia. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2059]https://github.com/libpwquality/libpwquality/releases/downloa d/libpwquality-1.4.5/libpwquality-1.4.5.tar.bz2 * Transferência (FTP): * 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 Dependências do libpwquality Exigidas [2060]CrackLib-2.10.3 Recomendadas [2061]Linux-PAM-1.7.0 Instalação do libpwquality Instale libpwquality executando os seguintes comandos: ./configure --prefix=/usr \ --disable-static \ --with-securedir=/usr/lib/security \ --disable-python-bindings && make && pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD/python Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) root: make install && pip3 install --no-index --find-links dist --no-user pwquality Explicações do Comando --disable-python-bindings: Esse parâmetro desabilita construir ligações Python com o comando obsoleto python3 setup.py build. A instrução explícita para construir a ligação Python 3 com o comando pip3 wheel é fornecida. Configurando libpwquality libpwquality é destinado a ser um substituto funcional para o agora obsoleto módulo PAM pam_cracklib.so. Para configurar o sistema para usar o módulo pam_pwquality, execute os seguintes comandos como o(a) usuário(a) root: mv /etc/pam.d/system-password{,.orig} && cat > /etc/pam.d/system-password << "EOF" # Inicia /etc/pam.d/system-password # verifique a força das novas senhas (man pam_pwquality) password required pam_pwquality.so authtok_type=UNIX retry=1 difok=1 \ minlen=8 dcredit=0 ucredit=0 \ lcredit=0 ocredit=0 minclass=1 \ maxrepeat=0 maxsequence=0 \ maxclassrepeat=0 gecoscheck=0 \ dictcheck=1 usercheck=1 \ enforcing=1 badwords="" \ dictpath=/usr/lib/cracklib/pw_dict # use resumo yescrypt para encriptação; use sombra e tente usar algum # token de autenticação previamente definido (senha escolhida) configurado # por algum módulo anterior. password required pam_unix.so yescrypt shadow try_first_pass # Termina /etc/pam.d/system-password EOF Conteúdo Aplicativos Instalados: pwscore e pwmake Bibliotecas Instaladas: pam_pwquality.so e libpwquality.so Diretórios Instalados: /usr/lib/python3.11/site-packages/pwquality-1.4.5.dist-info Descrições Curtas pwmake é uma ferramenta configurável simples para gerar senhas aleatórias e relativamente fáceis de pronunciar pwscore é uma ferramenta simples para verificar a qualidade de uma senha libpwquality.so contém funções de API para verificar a qualidade da senha pam_pwquality.so é um módulo Linux PAM usado para realizar verificação da qualidade da senha MIT Kerberos V5-1.21.3 Introdução ao MIT Kerberos V5 MIT Kerberos V5 é uma implementação livre do Kerberos 5. Kerberos é um protocolo de autenticação de rede de comunicação. Ele centraliza a base de dados de autenticação e usa aplicativos kerberizados para trabalhar com servidores ou serviços que suportem Kerberos, permitindo logins únicos e comunicação criptografada em redes internas de comunicação ou na Internet. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2062]https://kerberos.org/dist/krb5/1.21/krb5-1.21.3.tar.gz * Transferência (FTP): * Soma de verificação MD5 da transferência: beb34d1dfc72ba0571ce72bed03e06eb * Tamanho da transferência: 8,7 MB * Espaço em disco estimado exigido: 95 MB (adicionar 14 MB para os testes) * Tempo de construção estimado: 0,3 UPC (Usando paralelismo=4; adicionar 1,1 UPC para testes) Dependências do MIT Kerberos V5 Opcionais [2063]Utilitários BIND-9.20.6, [2064]CrackLib-2.10.3 (/usr/share/dict/words referenciado por alguns testes), [2065]GnuPG-2.4.7 (para autenticar o pacote), [2066]keyutils-1.6.3, [2067]OpenLDAP-2.6.9, [2068]Valgrind-3.24.0 (usado durante a suíte de teste), [2069]yasm-1.3.0, [2070]libedit, [2071]cmocka, [2072]kdcproxy, [2073]pyrad e [2074]resolv_wrapper Nota Algum tipo de recurso de sincronização de tempo em seu sistema (como o [2075]ntp-4.2.8p18) é necessário, pois o Kerberos não autenticaria se houvesse uma diferença de horário entre um cliente kerberizado e o servidor KDC. Instalação do MIT Kerberos V5 Construa MIT Kerberos V5 executando os seguintes comandos: cd src && sed -i -e '/eq 0/{N;s/12 //}' plugins/kdb/db2/libdb2/test/run.test && ./configure --prefix=/usr \ --sysconfdir=/etc \ --localstatedir=/var/lib \ --runstatedir=/run \ --with-system-et \ --with-system-ss \ --with-system-verto=no \ --enable-dns-for-realm \ --disable-rpath && make Para testar a construção, emita: make -j1 -k check. Alguns testes possivelmente falhem com a versão mais recente de dejagnu e glibc. Alguns testes possivelmente travem por um tempo longo e falhem se o sistema não estiver conectado a uma rede de comunicação. Um teste, t_kadm5srv, é conhecido por falhar. Se [2076]keyutils-1.6.3 estiver instalado, mas [2077]Configuração de Núcleo do Keyutils não estiver satisfeita, alguns testes falharão, reclamando que keyctl falhou com o código 1. Agora, como o(a) usuário(a) root: make install && cp -vfr ../doc -T /usr/share/doc/krb5-1.21.3 Explicações do Comando O comando sed remove um teste que é conhecido por falhar. --localstatedir=/var/lib: Essa opção é usada de forma que os dados variáveis de tempo de execução do Kerberos estejam localizados em /var/lib em vez de /usr/var. --runstatedir=/run: Essa opção é usada de forma que a informação de estado em tempo de execução do Kerberos esteja localizada em /run em vez do obsoleto /var/run. --with-system-et: Essa chave faz com que a construção use as versões instaladas do sistema do software de suporte à tabela de erros. --with-system-ss: Essa chave faz com que a construção use as versões instaladas do sistema do software de interface de linha de comando do subsistema. --with-system-verto=no: Essa chave corrige um defeito no pacote: ele não reconhece a própria biblioteca verto dele instalada anteriormente. Isso não é um problema, se reinstalar-se a mesma versão; mas, se estiver atualizando, [então] a biblioteca antiga é usada como a do sistema, ao invés de instalar a nova versão. --enable-dns-for-realm: Essa chave permite que os domínios sejam resolvidos usando o servidor DNS. --disable-rpath: Essa chave evita codificar rigidamente caminhos de pesquisa de biblioteca (rpath) nos arquivos executáveis binários e bibliotecas compartilhadas. Esse pacote não precisa do rpath para uma instalação no local padrão, e o rpath às vezes pode causar efeitos indesejados ou até mesmo problemas de segurança. --with-ldap: Use essa chave se desejar compilar o módulo de estrutura de retaguarda da base de dados OpenLDAP. Configurando o MIT Kerberos V5 Arquivos de Configuração /etc/krb5.conf e /var/lib/krb5kdc/kdc.conf Informação de Configuração Configuração do Kerberos Dica Você deveria considerar instalar algum tipo de dicionário de verificação de senha, de forma que consiga configurar a instalação para aceitar somente senhas fortes. Um dicionário adequado para usar é mostrado nas instruções do [2078]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 = encrypt = true [realms] = { kdc = admin_server = dict_file = /usr/share/dict/words } [domain_realm] . = [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 e . 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 -s Agora você deveria povoar a base de dados com principais (usuários(as)). Por enquanto, apenas use seu nome normal de login ou root. kadmin.local kadmin.local: add_policy dict-only kadmin.local: addprinc -policy dict-only 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/ 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/ 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 Você será solicitado(a) a fornecer a senha que criou. Depois de obter seu tíquete, você consegue listá-lo com o seguinte comando: klist Informação a respeito do tíquete deveriam ser exibidas na tela. Para testar a funcionalidade do arquivo de tabela de chave, emita o seguinte comando como o(a) usuário(a) root: ktutil ktutil: rkt /etc/krb5.keytab ktutil: l Isso deveria despejar uma lista do principal do dispositivo, juntamente com os métodos de encriptação usados para acessar o principal. Crie um arquivo ACL vazio que possa ser modificado posteriormente: touch /var/lib/krb5kdc/kadm5.acl Neste ponto, se tudo deu certo até agora, [então] você pode se sentir bastante confiante na instalação e configuração do pacote. Informação Adicional Para informação adicional, consulte a [2079]documentação para krb5-1.21.3 na qual as instruções acima são baseadas. Script de Iniciação Se você deseja iniciar os serviços Kerberos na inicialização, [então] instale o script de iniciação /etc/rc.d/init.d/krb5 incluído no pacote [2080]blfs-bootscripts-20250225 usando o seguinte comando: make install-krb5 Conteúdo Aplicativos Instalados: gss-client, gss-server, k5srvutil, kadmin, kadmin.local, kadmind, kdb5_ldap_util (opcional), kdb5_util, kdestroy, kinit, klist, kpasswd, kprop, kpropd, kproplog, krb5-config, krb5-send-pr, krb5kdc, ksu, kswitch, ktutil, kvno, sclient, sim_client, sim_server, sserver, uuclient e uuserver Bibliotecas Instaladas: libgssapi_krb5.so, libgssrpc.so, libk5crypto.so, libkadm5clnt_mit.so, libkadm5clnt.so, libkadm5srv_mit.so, libkadm5srv.so, libkdb_ldap.so (opcional), libkdb5.so, libkrad.so, libkrb5.so, libkrb5support.so, libverto.so e alguns plugins sob a árvore /usr/lib/krb5 Diretórios Instalados: /usr/include/{gssapi,gssrpc,kadm5,krb5}, /usr/lib/krb5, /usr/share/{doc/krb5-1.21.3,examples/krb5}, /var/lib/krb5kdc e /run/krb5kdc Descrições Curtas gss-client é um cliente de teste da API GSS gss-server é um servidor de teste da API GSS k5srvutil é um utilitário de manipulação da tabela de chaves do dispositivo kadmin é um utilitário usado para fazer modificações na base de dados Kerberos kadmin.local é um utilitário semelhante ao kadmin, mas se a base de dados for db2, [então] o cliente local kadmin.local, destina-se a executar diretamente no KDC mestre sem autenticação Kerberos kadmind é um servidor para acesso administrativo a uma base de dados Kerberos kdb5_ldap_util (opcional) permite que um(a) administrador(a) gerencie reinos, serviços Kerberos e políticas de tíquete kdb5_util é o utilitário de base de dados KDC kdestroy remove o conjunto atual de tíquetes kinit é usado para se autenticar no servidor Kerberos como um(a) principal e adquirir um tíquete que concede tíquete que consegue posteriormente ser usado para obter tíquetes para outros serviços klist lê e exibe os tíquetes atuais no cache de credenciais kpasswd é um aplicativo para mudar as senhas do Kerberos 5 kprop pega uma base de dados principal em um formato especificado e a converte em um fluxo de registros de base de dados kpropd recebe uma base de dados enviada pelo kprop e a grava como uma base de dados local kproplog exibe o conteúdo do registro de atualização da base de dados KDC na saída gerada padrão krb5-config fornece informação a respeito do como vincular aplicativos a bibliotecas krb5kdc é o servidor Kerberos 5 krb5-send-pr envia um Informe de Problema (IP) para um sítio central de suporte ksu é o aplicativo de superusuário(a) que usa o protocolo Kerberos. Exige um /etc/shells configurado adequadamente e ~/.k5login contendo principais autorizados a se tornarem superusuários(as) kswitch torna o cache especificado de credenciais o cache primário para a coleção, se uma coleção de cache estiver disponível ktutil é um aplicativo para gerenciar tabelas de chave do Kerberos kvno imprime os números de versão de chave dos principais do Kerberos sclient é usado para contactar um servidor de amostra e autenticar-se nele usando tíquetes Kerberos 5 e, em seguida, exibir a resposta do servidor sim_client é um simples aplicativo cliente de amostra baseado em UDP, para demonstração sim_server é um simples aplicativo servidor baseado em UDP, para demonstração sserver é o servidor de amostra Kerberos 5 uuclient é outro cliente de amostra uuserver é outro servidor de amostra libgssapi_krb5.so contém as funções Generic Security Service Application Programming Interface (GSSAPI) que fornecem serviços de segurança para chamadores de forma genérica, compatíveis com uma variedade de mecanismos e tecnologias subjacentes e, portanto, permitindo a portabilidade de nível de fonte de aplicativos para diferentes ambientes libkadm5clnt.so contém as funções administrativas de autenticação e verificação de senha exigidas pelos aplicativos Kerberos 5 do lado do cliente libkadm5srv.so contém as funções administrativas de autenticação e verificação de senha exigidas pelos servidores Kerberos 5 libkdb5.so é uma biblioteca de acesso à base de dados de autenticação/autorização Kerberos 5 libkrad.so contém a biblioteca interna de suporte para a funcionalidade RADIUS libkrb5.so é uma biblioteca Kerberos 5 multifuncional Nettle-3.10.1 Introdução ao Nettle O pacote Nettle contém uma biblioteca criptográfica de baixo nível que é projetada para caber facilmente em muitos contextos. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2081]https://ftp.gnu.org/gnu/nettle/nettle-3.10.1.tar.gz * Transferência (FTP): * Soma de verificação MD5 da transferência: c3dc1729cfa65fcabe2023dfbff60beb * Tamanho da transferência: 2,5 MB * Espaço em disco estimado exigido: 100 MB (com testes) * Tempo de construção estimado: 0,2 UPC (com testes; ambos usando paralelismo=4) Dependências do Nettle Opcionais [2082]Valgrind-3.24.0 (opcional para os testes) Instalação do Nettle Instale Nettle executando os seguintes comandos: ./configure --prefix=/usr --disable-static && make Para testar os resultados, emita: make check. Agora, como o(a) usuário(a) root: make install && chmod -v 755 /usr/lib/lib{hogweed,nettle}.so && install -v -m755 -d /usr/share/doc/nettle-3.10.1 && install -v -m644 nettle.{html,pdf} /usr/share/doc/nettle-3.10.1 Explicações do Comando --disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas. Conteúdo Aplicativos Instalados: nettle-hash, nettle-lfib-stream, nettle-pbkdf2, pkcs1-conv e sexp-conv Bibliotecas Instaladas: libhogweed.so e libnettle.so Diretório Instalado: /usr/include/nettle e /usr/share/doc/nettle-3.10.1 Descrições Curtas nettle-hash calcula um valor de hash usando um algoritmo especificado nettle-lfib-stream gera uma sequência de bytes pseudo-aleatórios (não criptográficos), usando o gerador fibonacci defasado de Knuth. O fluxo é útil para testes, mas não deveria ser usado para gerar chaves criptográficas ou qualquer outra coisa que precise de aleatoriedade real nettle-pbkdf2 é uma função de derivação de chave baseada em senha que usa uma senha ou frase secreta como entrada e retorna uma senha reforçada, que é protegida contra ataques de pré-computação usando salting e outros cálculos dispendiosos. pkcs1-conv converte chaves RSA privadas e públicas do formato PKCS #1 para o formato sexp sexp-conv converte uma expressão s para uma codificação diferente NSS-3.108 Introdução ao NSS O pacote Network Security Services (NSS) é um conjunto de bibliotecas projetadas para suportar o desenvolvimento em plataforma cruzada de aplicativos cliente e servidor habilitados para segurança. Aplicativos construídos com NSS podem suportar SSL v2 e v3, TLS, PKCS #5, PKCS #7, PKCS #11, PKCS #12, S/MIME, certificados X.509 v3 e outros padrões de segurança. Isso é útil para implementar SSL e S/MIME ou outros padrões de segurança da Internet em um aplicativo. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2083]https://archive.mozilla.org/pub/security/nss/releases/NSS_3_1 08_RTM/src/nss-3.108.tar.gz * Transferência (FTP): * Soma de verificação MD5 da transferência: 9208c05e756a06be19ce0e683777466e * Tamanho da transferência: 73 MB * Espaço em disco estimado exigido: 315 MB (adicionar 449 MB para os testes) * Tempo de construção estimado: 0,9 UPC (com paralelismo=4; adicionar 16 UPC para testes em Ryzens da AMD ou ao menos 29 UPC em máquinas Intel) Transferências Adicionais * Remendo exigido: [2084]https://www.linuxfromscratch.org/patches/blfs/12.3/nss-standa lone-1.patch Dependências do NSS Exigidas [2085]NSPR-4.36 Recomendadas [2086]SQLite-3.49.1 e [2087]p11-kit-0.25.5 (tempo de execução) Observações de Editor(a): [2088]https://wiki.linuxfromscratch.org/blfs/wiki/nss Instalação do NSS Instale NSS executando os seguintes comandos: patch -Np1 -i ../nss-standalone-1.patch && cd nss && make BUILD_OPT=1 \ NSPR_INCLUDE_DIR=/usr/include/nspr \ USE_SYSTEM_ZLIB=1 \ ZLIB_LIBS=-lz \ NSS_ENABLE_WERROR=0 \ $([ $(uname -m) = x86_64 ] && echo USE_64=1) \ $([ -f /usr/include/sqlite3.h ] && echo NSS_USE_SYSTEM_SQLITE=1) Para executar os testes, execute os seguintes comandos: cd tests && HOST=localhost DOMSUF=localdomain ./all.sh cd ../ Nota Alguma informação relativa aos testes: * HOST=localhost e DOMSUF=localdomain são exigidas. Sem essas variáveis, um FQDN é exigido que seja especificado e essa forma genérica deveria funcionar para todos(as), desde que localhost.localdomain esteja definido em /etc/hosts, conforme feito [2089]no livro LFS. * Os testes tomam um tempo longo para executar. Se desejado, existe informação no conjunto de comandos sequenciais all.sh relativa a executar subconjuntos da suíte total de teste. * Ao interromper os testes, a suíte de teste falha ao desligar os servidores de teste que estão executando. Isso leva a um loop infinito nos testes em que a suíte de teste tenta matar um servidor que não mais existe porque extrai o PID errado. * Os resultados da suíte de teste (em formato HTML!) podem ser encontrados em ../../test_results/security/localhost.1/results.html * Uns poucos testes podem falhar em algumas máquinas Intel por razões desconhecidas. Agora, como o(a) usuário(a) root: cd ../dist && install -v -m755 Linux*/lib/*.so /usr/lib && install -v -m644 Linux*/lib/{*.chk,libcrmf.a} /usr/lib && install -v -m755 -d /usr/include/nss && cp -v -RL {public,private}/nss/* /usr/include/nss && install -v -m755 Linux*/bin/{certutil,nss-config,pk12util} /usr/bin && install -v -m644 Linux*/lib/pkgconfig/nss.pc /usr/lib/pkgconfig Explicações do Comando BUILD_OPT=1: Essa opção é passada para make de modo que a construção seja realizada sem símbolos de depuração embutidos nos binários e as otimizações padrão do compilador sejam usadas. NSPR_INCLUDE_DIR=/usr/include/nspr: Essa opção configura o local dos cabeçalhos nspr. USE_SYSTEM_ZLIB=1: Essa opção é passada para make para garantir que a biblioteca libssl3.so esteja vinculada ao zlib instalado do sistema em vez da versão em árvore. ZLIB_LIBS=-lz: Essa opção fornece os sinalizadores de vinculador necessários para vincular ao zlib do sistema. $([ $(uname -m) = x86_64 ] && echo USE_64=1): A opção USE_64=1 é exigida em x86_64, caso contrário, make tentará (e falhará) criar objetos de 32 bits. O teste [ $(uname -m) = x86_64 ] garante que não tenha efeito em um sistema de 32 bits. ([ -f /usr/include/sqlite3.h ] && echo NSS_USE_SYSTEM_SQLITE=1): Isso testa se o sqlite está instalado e, se estiver, echo a opção NSS_USE_SYSTEM_SQLITE=1 para make, de modo que libsoftokn3.so vinculará à versão do sistema do sqlite. NSS_DISABLE_GTESTS=1: Se você não precisa executar a suíte de teste NSS, anexe essa opção ao comando make, para evitar a compilação dos testes e economizar algum tempo de construção. Configurando NSS Se [2090]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 [2091]make-ca-1.15 pode gerar uma base de dados NSS abrangente ao sistema com a chave -n ou modificando o arquivo /etc/make-ca/make-ca. conf. Conteúdo Aplicativos Instalados: certutil, nss-config e pk12util Bibliotecas Instaladas: libcrmf.a, libfreebl3.so, libfreeblpriv3.so, libnss3.so, libnssckbi.so, libnssckbi-testlib.so, libnssdbm3.so, libnsssysinit.so, libnssutil3.so, libpkcs11testmodule.so, libsmime3.so, libsoftokn3.so e libssl3.so Diretórios Instalados: /usr/include/nss Descrições Curtas certutil é a ferramenta de base de dados de certificados da Mozilla. É um utilitário de linha de comando que consegue criar e modificar os arquivos de base de dados cert8.db e key3.db do Netscape Communicator. Ele também consegue listar, gerar, modificar ou deletar certificados dentro do arquivo cert8.db e criar ou mudar a senha, gerar novos pares de chaves públicas e privadas, exibir o conteúdo da base de dados de chaves ou deletar pares de chaves dentro do arquivo key3.db nss-config é usado para determinar as configurações da biblioteca NSS das bibliotecas instaladas NSS pk12util é uma ferramenta para importar certificados e chaves a partir de arquivos PKCS #12 para o NSS ou exportá-los. Ele também consegue listar certificados e chaves nesses arquivos OpenSSH-9.9p2 Introdução ao OpenSSH O pacote OpenSSH contém clientes ssh e o processo de segundo plano sshd. Isso é útil para encriptar a autenticação e o tráfego subsequente em uma rede de comunicação. Os comandos ssh e scp são implementações seguras do telnet e do rcp respectivamente. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2092]https://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh- 9.9p2.tar.gz * Transferência (FTP): * Soma de verificação MD5 da transferência: f617b95fe278bfea8d004589c7a68a85 * Tamanho da transferência: 1,9 MB * Espaço em disco estimado exigido: 46 MB (adicionar 22 MB para os testes) * Tempo de construção estimado: 0,3 UPC (Usando paralelismo=4; executar os testes leva cerca de 20 minutos, independentemente da velocidade do processador) Dependências do OpenSSH Opcionais [2093]GDB-16.2 (para testes), [2094]Linux-PAM-1.7.0 (arquivos de configuração de PAM oriundos de [2095]Shadow-4.17.3 são usados para criar arquivos do openssh), [2096]Aplicativos do Xorg (ou [2097]Ambiente de construção do "Xorg", veja-se Explicação dos Comandos), [2098]MIT Kerberos V5-1.21.3, [2099]Which-2.23 (para testes), [2100]libedit, [2101]LibreSSL Portable, [2102]OpenSC e [2103]libsectok Opcional em Tempo de Execução (usado somente para coletar entropia) [2104]Net-tools-2.10 e [2105]Sysstat-12.7.7 Instalação do OpenSSH O OpenSSH executa como dois processos ao se conectar a outros computadores. O primeiro processo é um processo privilegiado e controla a emissão de privilégios conforme necessário. O segundo processo se comunica com a rede de intercomunicação. Etapas adicionais de instalação são necessárias para configurar o ambiente adequado, que são realizadas emitindo os seguintes comandos como o(a) usuário(a) root: install -v -g sys -m700 -d /var/lib/sshd && groupadd -g 50 sshd && useradd -c 'sshd PrivSep' \ -d /var/lib/sshd \ -g sshd \ -s /bin/false \ -u 50 sshd Instale o OpenSSH executando os seguintes comandos: ./configure --prefix=/usr \ --sysconfdir=/etc/ssh \ --with-privsep-path=/var/lib/sshd \ --with-default-path=/usr/bin \ --with-superuser-path=/usr/sbin:/usr/bin \ --with-pid-dir=/run && make Para testar os resultados, emita: make -j1 tests. Agora, como o(a) usuário(a) root: make install && install -v -m755 contrib/ssh-copy-id /usr/bin && install -v -m644 contrib/ssh-copy-id.1 \ /usr/share/man/man1 && install -v -m755 -d /usr/share/doc/openssh-9.9p2 && install -v -m644 INSTALL LICENCE OVERVIEW README* \ /usr/share/doc/openssh-9.9p2 Explicações do Comando --sysconfdir=/etc/ssh: Isso evita que os arquivos de configuração sejam instalados em /usr/etc. --with-default-path=/usr/bin e --with-superuser-path=/usr/sbin:/usr/bin: Esses configuram PATH consistente com o pacote Shadow do LFS e do BLFS. --with-pid-dir=/run: Isso evita que OpenSSH se refira ao obsoleto /var/run. --with-pam: Esse parâmetro habilita o suporte Linux-PAM na construção. --with-xauth=$XORG_PREFIX/bin/xauth: Configure o local padrão para o binário xauth para autenticação do X. A variável de ambiente XORG_PREFIX deveria estar configurada seguindo [2106]Ambiente de construção do "Xorg". Isso também pode ser controlado a partir de sshd_config com a palavra-chave XAuthLocation. Você pode omitir essa chave se o Xorg já estiver instalado. --with-kerberos5=/usr: Essa opção é usada para incluir suporte a Kerberos 5 na construção. --with-libedit: Essa opção habilita a edição de linha e recursos de histórico para o sftp. Configurando o OpenSSH Arquivos de Configuração ~/.ssh/*, /etc/ssh/ssh_config e /etc/ssh/sshd_config Não existem mudanças exigidas para nenhum desses arquivos. No entanto, você possivelmente deseje visualizar os arquivos do /etc/ssh/ e fazer quaisquer mudanças apropriadas para a segurança do teu sistema. Uma mudança recomendada é a de desabilitar o login do(a) root via ssh. Execute o seguinte comando como o(a) usuário(a) root para desabilitar o login do(a) root via ssh: echo "PermitRootLogin no" >> /etc/ssh/sshd_config Se quiser estar apto(a) a se logar sem digitar tua senha, crie primeiro ~/.ssh/id_rsa e ~/.ssh/id_rsa.pub com o ssh-keygen e depois copie ~/.ssh /id_rsa.pub para ~/.ssh/authorized_keys no computador remoto no qual deseja se logar. Você precisará mudar NOME_USUARIO(A)_REMOTO e NOME_DISPOSITIVO_REMOTO para o nome de usuário(a) e nome do dispositivo do computador remoto e também precisará inserir tua senha para que o comando ssh-copy-id seja bem-sucedido: ssh-keygen && ssh-copy-id -i ~/.ssh/id_ed25519.pub NOME_USUÁRIO(A)_REMOTO@NOME_DISPOSITIVO_REM OTO Tão logo tenha obtido logins sem senha funcionando, atualmente é mais seguro que se logar com uma senha (já que a chave privada é muito mais longa que as senhas da maioria das pessoas). Se você gostaria de desabilitar logins de senha agora, como o(a) usuário(a) root: echo "PasswordAuthentication no" >> /etc/ssh/sshd_config && echo "KbdInteractiveAuthentication no" >> /etc/ssh/sshd_config Se você adicionou suporte Linux-PAM e deseja que o ssh o use, então precisará adicionar um arquivo de configuração para o sshd e habilitar o uso do Linux-PAM. Observe que o ssh somente usa PAM para verificar senhas; se tiver desabilitado os logins de senha, estes comandos não são necessários. Se você deseja usar o PAM, emita os seguintes comandos como o(a) usuário(a) root: sed 's@d/login@d/sshd@g' /etc/pam.d/login > /etc/pam.d/sshd && chmod 644 /etc/pam.d/sshd && echo "UsePAM yes" >> /etc/ssh/sshd_config Informação adicional de configuração pode ser encontrada nas páginas de manual para sshd, ssh e ssh-agent. Conjunto de Comandos Sequenciais de Inicialização Para iniciar o servidor SSH na inicialização do sistema, instale o conjunto de comandos sequenciais de iniciação /etc/rc.d/init.d/sshd incluído no pacote [2107]blfs-bootscripts-20250225. Nota Mudar a configuração de ListenAddress em /etc/sshd/sshd_config não é suportado com o conjunto de comandos sequenciais de inicialização do sshd do BLFS. make install-sshd Conteúdo Aplicativos Instalados: scp, sftp, ssh, ssh-add, ssh-agent, ssh-copy-id, ssh-keygen, ssh-keyscan e sshd Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /etc/ssh, /usr/share/doc/openssh-9.9p2 e /var/lib/sshd Descrições Curtas scp é um aplicativo de cópia de arquivo que age como rcp, exceto que usa um protocolo encriptado sftp é um aplicativo do tipo FTP que funciona ao longo dos protocolos SSH1 e SSH2 ssh é um aplicativo cliente do tipo rlogin/rsh, exceto que usa um protocolo encriptado sshd é um processo de segundo plano que escuta solicitações de login do ssh ssh-add é uma ferramenta que adiciona chaves ao ssh-agent ssh-agent é um agente de autenticação que consegue armazenar chaves privadas ssh-copy-id é um conjunto de comandos sequenciais que habilita logins em máquinas remotas usando chaves locais ssh-keygen é uma ferramenta de geração de chave ssh-keyscan é um utilitário para coletar chaves públicas de dispositivo a partir de vários dispositivos p11-kit-0.25.5 Introdução ao p11-kit O pacote p11-kit fornece uma maneira de carregar e de enumerar módulos PKCS #11 (um padrão de interface de token criptográfico). Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2108]https://github.com/p11-glue/p11-kit/releases/download/0.25.5/ p11-kit-0.25.5.tar.xz * Transferência (FTP): * 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) Dependências do p11-kit Recomendadas [2109]libtasn1-4.20.0 Recomendadas (tempo de execução) [2110]make-ca-1.15 Opcionais [2111]GTK-Doc-1.34.0, [2112]libxslt-1.1.42 e [2113]nss-3.108 (tempo de execução) Instalação do p11-kit Prepare o gancho de ancoragem específico para distribuição: sed '20,$ d' -i trust/trust-extract-compat && cat >> trust/trust-extract-compat << "EOF" # Copiar modificações existentes de âncora para /etc/ssl/local /usr/libexec/make-ca/copy-trust-modifications # Atualizar lojas de confiança /usr/sbin/make-ca -r EOF Instale p11-kit executando os seguintes comandos: mkdir p11-build && cd p11-build && meson setup .. \ --prefix=/usr \ --buildtype=release \ -D trust_paths=/etc/pki/anchors && ninja Para testar os resultados, emita: LC_ALL=C ninja test. Agora, como o(a) usuário(a) root: ninja install && ln -sfv /usr/libexec/p11-kit/trust-extract-compat \ /usr/bin/update-ca-certificates Explicações do Comando --buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados. -D trust_paths=/etc/pki/anchors: essa chave configura o local dos certificados confiáveis usados pela libp11-kit.so. -D hash_impl=freebl: Use essa chave se quiser usar a biblioteca Freebl proveniente da NSS para hash SHA1 e MD5. -D gtk_doc=true: Use essa chave se você tiver instalado [2114]GTK-Doc-1.34.0 e [2115]libxslt-1.1.42 e deseja reconstruir a documentação e gerar páginas de manual . Configurando p11-kit O módulo de confiança p11-kit (/usr/lib/pkcs11/p11-kit-trust.so) pode ser usado como um substituto imediato para /usr/lib/libnssckbi.so para transparentemente tornar as ACs do sistema disponíveis para aplicativos cientes da NSS, em vez da lista estática fornecida pela /usr/lib/libnssckbi.so. Como o(a) usuário(a) root, execute os seguintes comandos: ln -sfv ./pkcs11/p11-kit-trust.so /usr/lib/libnssckbi.so Conteúdo Aplicativos Instalados: p11-kit, trust e update-ca-certificates Bibliotecas Instaladas: libp11-kit.so e p11-kit-proxy.so Diretórios Instalados: /etc/pkcs11, /usr/include/p11-kit-1, /usr/lib/pkcs11, /usr/libexec/p11-kit, /usr/share/gtk-doc/html/p11-kit e /usr/share/p11-kit Descrições Curtas p11-kit é uma ferramenta de linha de comando que pode ser usada para realizar operações em módulos PKCS#11 configurados no sistema trust é uma ferramenta de linha de comando para examinar e modificar o armazenamento de política de confiança compartilhada update-ca-certificates é uma ferramenta de linha de comando para extrair certificados locais a partir de um armazenamento âncora atualizado e regenerar todas as âncoras e armazenamentos de certificados no sistema. Isso é feito incondicionalmente no BLFS usando os sinalizadores --force e --get para o make-ca e provavelmente não deveria ser usado para atualizações automáticas libp11-kit.so contém funções usadas para coordenar a inicialização e a finalização de qualquer módulo PKCS#11 p11-kit-proxy.so é o módulo proxy PKCS#11 Polkit-126 Introdução ao Polkit Polkit é um kit de ferramentas para definir e para manusear autorizações. Ele é usado para permitir que processos não privilegiados se comuniquem com processos privilegiados. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2116]https://github.com/polkit-org/polkit/archive/126/polkit-126.t ar.gz * Transferência (FTP): * Soma de verificação MD5 da transferência: db4ce0a42d5bf8002061f8e34ee9bdd0 * Tamanho da transferência: 448 KB * Espaço em disco estimado exigido: 7,4 MB (com testes) * Tempo de construção estimado: 0,2 UPC (com testes; usando paralelismo=4) Dependências do Polkit Exigidas [2117]duktape-2.7.0 e [2118]GLib-2.82.5 (GObject Introspection recomendado) Recomendadas [2119]libxslt-1.1.42, [2120]Linux-PAM-1.7.0 e [2121]elogind-255.17 Nota Como elogind usa PAM para registrar sessões de usuário(a), é uma boa ideia construir Polkit com suporte a PAM, de forma que elogind possa rastrear sessões Polkit. Opcionais [2122]GTK-Doc-1.34.0 e [2123]dbusmock-0.34.3 (exigido para testes) Dependências Opcionais em Tempo de Execução Um agente de autenticação polkit para usar polkit no ambiente gráfico: polkit-kde-agent em [2124]Plasma-6.3.2 para KDE, o agente construído em [2125]gnome-shell-47.4 para GNOME3, [2126]polkit-gnome-0.105 para XFCE e [2127]lxqt-policykit-2.1.0 para LXQt Nota Se [2128]libxslt-1.1.42 estiver instalado, então [2129]docbook-xml-4.5 e [2130]docbook-xsl-nons-1.79.2 serão exigidos. Se você tiver instalado [2131]libxslt-1.1.42, mas não deseja instalar nenhum dos pacotes DocBook mencionados, você precisará usar -D man=false nas instruções abaixo. Configuração do Núcleo Alguns testes precisam de suporte a espaços de nome de usuário(a). Se você for executar a suíte de teste, habilite o suporte e recompile o núcleo se necessário: General setup ---> -*- Namespaces support ---> [NAMESPACES] [*] User namespace [USER_NS] Instalação do Polkit Deveria existir um(a) usuário(a) e um grupo dedicado(a) para assumir o controle do processo de segundo plano polkitd depois que ele for iniciado. Emita os seguintes comandos como o(a) usuário(a) root: groupadd -fg 27 polkitd && useradd -c "Dono(a) do Processo de Segundo Plano do PolicyKit" -d /etc/polkit-1 -u 27 \ -g polkitd -s /bin/false polkitd Instale o Polkit executando os seguintes comandos: mkdir build && cd build && meson setup .. \ --prefix=/usr \ --buildtype=release \ -D man=true \ -D session_tracking=elogind \ -D systemdsystemunitdir=/tmp \ -D tests=true Construa o pacote: ninja Para testar os resultados, primeiro certifique-se de que o processo de segundo plano D-Bus do sistema esteja executando e que [2132]D-Bus Python-1.3.2 e [2133]dbusmock-0.34.3 estejam instalados. Em seguida, execute ninja test. Agora, como o(a) usuário(a) root: ninja install Remova alguns arquivos que não são úteis em um sistema SysV como o(a) usuário(a) root: rm -v /tmp/*.service && rm -rf /usr/lib/{sysusers,tmpfiles}.d Explicações do Comando --buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados. -D tests=true: Essa chave permite executar a suíte de teste deste pacote. Como Polkit é usado para autorizações, a integridade dele pode afetar a segurança do sistema. Portanto, é recomendado executar a suíte de teste construindo este pacote. -D os_type=lfs: Use essa chave se você não criou o arquivo /etc/lfs-release ou a detecção automática da distribuição falhará e você estará inapto(a) a usar o Polkit. -D authfw=shadow: Essa chave habilita o pacote a usar o Shadow em vez da estrutura de autenticação Linux PAM. Use-a se você não tiver instalado Linux PAM. -D introspection=false: Use essa opção se você tiver certeza de que não precisa de arquivos do gobject-introspection para polkit ou não tiver instalado [2134]GLib-2.82.5 com GObject Introspection. -D man=false: Use essa opção para desabilitar a geração e a instalação das páginas de manual. Isso é útil se libxslt não estiver instalado. -D examples=true: Use essa opção para construir os aplicativos de exemplo. -D gtk_doc=true: Use essa opção para habilitar a construção e a instalação da documentação da API. Conteúdo Aplicativos Instalados: pkaction, pkcheck, pkexec, pkttyagent e polkitd Bibliotecas Instaladas: libpolkit-agent-1.so e libpolkit-gobject-1.so Diretórios Instalados: /etc/polkit-1, /usr/include/polkit-1, /usr/lib/polkit-1, /usr/share/gtk-doc/html/polkit-1 e /usr/share/polkit-1 Descrições Curtas pkaction é usado para obter informação relativa às ações registradas do PolicyKit pkcheck é usado para verificar se um processo está autorizado para ação pkexec permite que um(a) usuário(a) autorizado(a) execute um comando como outro(a) usuário(a) pkttyagent é usado para iniciar um agente textual de autenticação para o assunto polkitd fornece o serviço D-Bus do org.freedesktop.PolicyKit1 no barramento de mensagem do sistema libpolkit-agent-1.so contém as funções de API do agente de autenticação Polkit libpolkit-gobject-1.so contém as funções da API de autorização Polkit polkit-gnome-0.105 Introdução ao Polkit GNOME O pacote Polkit GNOME fornece um Agente de Autenticação para Polkit que se integra bem com o ambiente de área de trabalho GNOME. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2135]https://download.gnome.org/sources/polkit-gnome/0.105/polkit- gnome-0.105.tar.xz * Transferência (FTP): * 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 Transferências Adicionais * Remendo exigido: [2136]https://www.linuxfromscratch.org/patches/blfs/12.3/polkit-gno me-0.105-consolidated_fixes-1.patch Dependências do Polkit GNOME Exigidas [2137]AccountsService-23.13.9, [2138]GTK-3.24.48 e [2139]Polkit-126 Instalação do Polkit GNOME Primeiro, aplique algumas correções que permitem que o ícone adequado de usuário(a) seja usado, bem como algumas correções de segurança: patch -Np1 -i ../polkit-gnome-0.105-consolidated_fixes-1.patch Instale o Polkit GNOME executando os seguintes comandos: ./configure --prefix=/usr && make Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) root: make install Configurando o Polkit GNOME Iniciação Automática Para que a estrutura de autenticação funcione, polkit-gnome-authentication-agent-1 precisa ser iniciado. No entanto, make install não instalou um arquivo de iniciação para o Polkit GNOME, de modo que você tem de criá-lo você mesmo(a). Emita os seguintes comandos como o(a) usuário(a) root para criar um arquivo de iniciação para Polkit GNOME: mkdir -p /etc/xdg/autostart && cat > /etc/xdg/autostart/polkit-gnome-authentication-agent-1.desktop << "EOF" [Desktop Entry] Name=PolicyKit Authentication Agent Comment=PolicyKit Authentication Agent Exec=/usr/libexec/polkit-gnome-authentication-agent-1 Terminal=false Type=Application Categories= NoDisplay=true OnlyShowIn=GNOME;XFCE;Unity; AutostartCondition=GNOME3 unless-session gnome EOF Conteúdo Aplicativo Instalado: polkit-gnome-authentication-agent-1 Bibliotecas Instaladas: Nenhum(a) Diretório Instalado: Nenhum(a) Descrições Curtas polkit-gnome-authentication-agent-1 é o agente de autenticação Polkit Shadow-4.17.3 Introdução ao Shadow Shadow foi realmente instalado no LFS e não existe razão para reinstalá-lo, a menos que você instalou Linux-PAM depois que teu sistema LFS foi concluído. Com Linux-PAM instalado, reinstalar Shadow permitirá que programas como login e su utilizem o PAM. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2140]https://github.com/shadow-maint/shadow/releases/download/4.17 .3/shadow-4.17.3.tar.xz * Transferência (FTP): * 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 Dependências do Shadow Exigidas [2141]Linux-PAM-1.7.0 Opcionais [2142]libbsd e [2143]tcb Instalação do Shadow Importante Os comandos de instalação mostrados abaixo são para instalações onde o Linux-PAM tenha sido instalado e o Shadow esteja sendo reinstalado para suportar a instalação do Linux-PAM. Reinstale Shadow executando os seguintes comandos: sed -i 's/groups$(EXEEXT) //' src/Makefile.in && find man -name Makefile.in -exec sed -i 's/groups\.1 / /' {} \; && find man -name Makefile.in -exec sed -i 's/getspnam\.3 / /' {} \; && find man -name Makefile.in -exec sed -i 's/passwd\.5 / /' {} \; && sed -e 's@#ENCRYPT_METHOD DES@ENCRYPT_METHOD YESCRYPT@' \ -e 's@/var/spool/mail@/var/mail@' \ -e '/PATH=/{s@/sbin:@@;s@/bin:@@}' \ -i etc/login.defs && ./configure --sysconfdir=/etc \ --disable-static \ --without-libbsd \ --with-{b,yes}crypt && make Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) root: make exec_prefix=/usr pamddir= install As páginas de manual foram instaladas no LFS, mas se a reinstalação for desejada, execute (como o(a) usuário(a) root): make -C man install-man Explicações do Comando sed -i 's/groups$(EXEEXT) //' src/Makefile.in: Esse sed é usado para suprimir a instalação do aplicativo groups, pois a versão originária do pacote Coreutils instalado durante o LFS é a preferida. find man -name Makefile.in -exec ... {} \;: O primeiro comando é usado para suprimir a instalação das páginas de manual do groups, de modo que as existentes instaladas a partir do pacote Coreutils não sejam substituídas. Os outros dois comandos impedem a instalação de páginas de manual que já estão instaladas pelo Man-pages no LFS. sed -e 's@#ENCRYPT_METHOD DES@ENCRYPT_METHOD YESCRYPT@' -e 's@/var/spool/mail@/var/mail@' -e '/PATH=/{s@/sbin:@@;s@/bin:@@}' -i etc/login.defs: Em vez de usar o método padrão 'DES ', esse comando modifica a instalação para usar o método muito mais seguro 'YESCRYPT' de resumo de senhas, que também permite senhas maiores que oito caracteres. O comando também muda o local obsoleto /var/spool/mail para caixas de correio de usuário(a) que Shadow usa por padrão para o local /var/mail. Ele também muda o caminho padrão para estar consistente com aquele configurado no LFS. --without-libbsd: Impede a procura pela função readpassphrase, que pode ser encontrada somente na libbsd, a qual nós não temos no BLFS. Uma implementação interna de readpassphrase é usada no lugar. pamddir=: Impede instalação dos arquivos enviados de configuração do PAM em /etc/pam.d. A configuração enviada não funciona com a configuração PAM do BLFS e nós criaremos esses arquivos de configuração explicitamente. Configurando Linux-PAM para Funcionar com Shadow Nota O restante desta página é dedicado para configurar o Shadow para funcionar corretamente com o Linux-PAM. Arquivos de Configuração /etc/pam.d/* ou, alternativamente, /etc/pam.conf, /etc/login.defs e /etc/security/* Informação de Configuração Configurar seu sistema para usar Linux-PAM pode ser uma tarefa complexa. A informação abaixo fornecerá uma configuração básica, de modo que a funcionalidade de login e senha do Shadow funcione efetivamente com o Linux-PAM. Revise a informação e os links na página [2144]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: * [2145]https://deer-run.com/users/hal/linux_passwords_pam.html Configurando /etc/login.defs O aplicativo login atualmente realiza muitas funções que os módulos Linux-PAM agora deveriam manusear. O seguinte comando sed comentará as linhas apropriadas em /etc/login.defs e impedirá login de realizar essas funções (um arquivo de cópia de segurança chamado /etc/login.defs.orig também é criado para preservar o conteúdo do arquivo original). Emita os seguintes comandos como o(a) usuário(a) root: install -v -m644 /etc/login.defs /etc/login.defs.orig && for FUNCTION in FAIL_DELAY \ FAILLOG_ENAB \ LASTLOG_ENAB \ MAIL_CHECK_ENAB \ OBSCURE_CHECKS_ENAB \ PORTTIME_CHECKS_ENAB \ QUOTAS_ENAB \ CONSOLE MOTD_FILE \ FTMP_FILE NOLOGINS_FILE \ ENV_HZ PASS_MIN_LEN \ SU_WHEEL_ONLY \ PASS_CHANGE_TRIES \ PASS_ALWAYS_WARN \ CHFN_AUTH ENCRYPT_METHOD \ ENVIRON_FILE do sed -i "s/^${FUNCTION}/# &/" /etc/login.defs done Configurando os Arquivos /etc/pam.d/ Conforme mencionado anteriormente nas instruções do Linux-PAM, o Linux-PAM tem dois métodos suportados para configuração. Os comandos abaixo assumem que você tenha escolhido usar uma configuração baseada em diretório, onde cada aplicativo tem o próprio arquivo de configuração dele. Você pode opcionalmente usar um arquivo de configuração /etc/pam.conf usando o texto oriundo dos arquivos abaixo e fornecendo o nome do aplicativo como um primeiro campo adicional para cada linha. Como o(a) usuário(a) root, crie os seguintes arquivos de configuração do Linux-PAM no diretório /etc/pam.d/ (ou adicione o conteúdo ao arquivo /etc/pam.conf) usando os seguintes comandos: 'login' cat > /etc/pam.d/login << "EOF" # Início /etc/pam.d/login # Configura atraso de falha antes do próximo prompt para 3 segundos auth optional pam_faildelay.so delay=3000000 # Verifica se o(a) usuário(a) tem permissão para se logar auth requisite pam_nologin.so # Verifica para assegurar que o(a) root tem permissão para se logar. # Desabilitado por padrão. Você precisará criar o arquivo /etc/securetty # para que este módulo funcione. Veja-se man 5 securetty. #auth required pam_securetty.so # Associações adicionais de grupo - desabilitadas por padrão #auth optional pam_group.so # Inclui configurações de autenticação do sistema auth include system-auth # Verifica acesso para o(a) usuário(a) account required pam_access.so # Inclui configurações de conta do sistema account include system-account # Configura variáveis padrão de ambiente para o(a) usuário(a) session required pam_env.so # Configura limites de recursos para o(a) usuário(a) session required pam_limits.so # Exibe a mensagem do dia - Desabilitado por padrão #session optional pam_motd.so # Verifica mensagens eletrônicas para o(a) usuário(a) - Desabilitado por padrão #session optional pam_mail.so standard quiet # inclui configurações da sessão e senha do sistema session include system-session password include system-password # Fim /etc/pam.d/login EOF 'passwd' cat > /etc/pam.d/passwd << "EOF" # Início /etc/pam.d/passwd password include system-password # Fim /etc/pam.d/passwd EOF 'su' cat > /etc/pam.d/su << "EOF" # Início /etc/pam.d/su # Sempre permitir root auth sufficient pam_rootok.so # Permite que usuários(as) do grupo wheel executem su sem uma senha # Desabilitado por padrão #auth sufficient pam_wheel.so trust use_uid # Inclui configurações de autenticação do sistema auth include system-auth # Limita su a usuários(as) no grupo wheel # Desabilitado por padrão #auth required pam_wheel.so use_uid # Inclui configurações de conta do sistema account include system-account # Configura variáveis padrão de ambiente para o(a) usuário(a) do serviço session required pam_env.so # Inclui configurações de sessão do sistema session include system-session # Fim /etc/pam.d/su EOF 'chpasswd' e 'newusers' cat > /etc/pam.d/chpasswd << "EOF" # Início /etc/pam.d/chpasswd # Sempre permitir root auth sufficient pam_rootok.so # Inclui configurações do sistema de autenticação e de conta auth include system-auth account include system-account password include system-password # Fim /etc/pam.d/chpasswd EOF sed -e s/chpasswd/newusers/ /etc/pam.d/chpasswd >/etc/pam.d/newusers 'chage' cat > /etc/pam.d/chage << "EOF" # Início /etc/pam.d/chage # Sempre permitir root auth sufficient pam_rootok.so # Inclui configurações do sistema de autenticação e de conta auth include system-auth account include system-account # Fim /etc/pam.d/chage EOF Outros utilitários de sombra for PROGRAM in chfn chgpasswd chsh groupadd groupdel \ groupmems groupmod useradd userdel usermod do install -v -m644 /etc/pam.d/chage /etc/pam.d/${PROGRAM} sed -i "s/chage/$PROGRAM/" /etc/pam.d/${PROGRAM} done Atenção Neste ponto, você deveria fazer um teste simples para ver se o Shadow está funcionando conforme o esperado. Abra outro terminal e se logue como root e, em seguida, execute login e se logue como outro(a) usuário(a). Se não vir nenhum erro, então está tudo bem e você deveria prosseguir com o restante da configuração. Se você recebeu erros, [então] pare agora e verifique duplamente os arquivos de configuração acima manualmente. Qualquer erro é o sinal de um erro no procedimento acima. Você também pode executar a suíte de teste proveniente do pacote Linux-PAM para ajudá-lo(a) a determinar o problema. Se não conseguir localizar e corrigir o erro, [então] você deveria recompilar o Shadow adicionando a chave --without-libpam ao comando configure nas instruções acima (também mova o arquivo de cópia de segurança /etc/login.defs.orig para /etc/login.defs). Se falhar em fazer isso e os erros persistirem, [então] você não conseguirá se logar no seu sistema. Configurando Acesso de Login Em vez de usar o arquivo /etc/login.access para controlar o acesso ao sistema, o Linux-PAM usa o módulo pam_access.so juntamente com o arquivo /etc/security/access.conf. Renomeie o arquivo /etc/login.access usando o seguinte comando: if [ -f /etc/login.access ]; then mv -v /etc/login.access{,.SEMUSO}; fi Configurando Limites de Recurso Em vez de usar o arquivo /etc/limits para limitar o uso dos recursos do sistema, o Linux-PAM usa o módulo pam_limits.so junto com o arquivo /etc/security/limits.conf. Renomeie o arquivo /etc/limits usando o seguinte comando: if [ -f /etc/limits ]; then mv -v /etc/limits{,.SEMUSO}; fi Cuidado Certifique-se de testar os recursos de login do sistema antes de se deslogar. Erros na configuração podem causar um bloqueio permanente exigindo uma inicialização a partir de uma fonte externa para corrigir o problema. Conteúdo Uma lista dos arquivos instalados, juntamente com as descrições curtas deles, pode ser encontrada em [2146]../../../../lfs/view/12.3/chapter08/shadow.html#contents-shadow. ssh-askpass-9.9p2 Introdução ao ssh-askpass O ssh-askpass é um nome executável genérico para muitos pacotes, com nomes semelhantes, que fornecem um serviço interativo do X para obter senha para pacotes que exigem privilégios administrativos para serem executados. Ele exibe para o(a) usuário(a) uma caixa de janela onde a senha necessária pode ser inserida. Aqui, escolhemos o pacote de Damien Miller distribuído no tarball do OpenSSH. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2147]https://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh- 9.9p2.tar.gz * Transferência (FTP): * Soma de verificação MD5 da transferência: f617b95fe278bfea8d004589c7a68a85 * Tamanho da transferência: 1,9 MB * Espaço em disco estimado exigido: 11 MB * Tempo de construção estimado: menos que 0,1 UPC Dependências do ssh-askpass Exigidas [2148]GTK-3.24.48, [2149]Sudo-1.9.16p2 (tempo de execução), [2150]Bibliotecas do Xorg e [2151]um ambiente gráfico (tempo de execução) Instalação do ssh-askpass Instale ssh-askpass executando os seguintes comandos: cd contrib && make gnome-ssh-askpass3 Agora, como o(a) usuário(a) root: install -v -d -m755 /usr/libexec/openssh/contrib && install -v -m755 gnome-ssh-askpass3 /usr/libexec/openssh/contrib && ln -sv -f contrib/gnome-ssh-askpass3 /usr/libexec/openssh/ssh-askpass O uso de /usr/libexec/openssh/contrib e um link simbólico é justificado pela eventual necessidade de um aplicativo diferente para esse serviço. Configurando ssh-askpass Informação de Configuração Como o(a) usuário(a) root, configure [2152]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 gráfico exigir privilégios administrativos, [então] use sudo -A a partir de um terminal do X, a partir de um menu do Gerenciador de janelas e(ou) substitua "Exec= ..." por "Exec=sudo -A ..." no arquivo .desktop. Conteúdo Aplicativos Instalados: gnome-ssh-askpass3, ssh-askpass (link simbólico para gnome-ssh-askpass3) Biblioteca Instalada: Nenhum(a) Diretório Instalado: /usr/libexec/openssh/contrib stunnel-5.74 Introdução ao stunnel O pacote stunnel contém um aplicativo que permite encriptar conexões arbitrárias TCP dentro de SSL (Secure Sockets Layer), de modo que você consiga se comunicar facilmente com clientes ao longo de canais seguros. stunnel também pode ser usado para encapsular PPP ao longo de soquetes de rede de comunicação sem mudanças no código-fonte do pacote do servidor. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2153]https://www.stunnel.org/downloads/archive/5.x/stunnel-5.74.ta r.gz * Transferência (FTP): * 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 Dependências do stunnel Opcionais [2154]libnsl-2.0.1, [2155]netcat (exigido para os testes), [2156]tcpwrappers e [2157]TOR Instalação do stunnel O processo de segundo plano stunnel será executado em uma jaula chroot por um(a) usuário(a) sem privilégios. Crie o(a) novo(a) usuário(a) e grupo usando os seguintes comandos como o(a) usuário(a) root: groupadd -g 51 stunnel && useradd -c "Processo de segundo plano stunnel" -d /var/lib/stunnel \ -g stunnel -s /bin/false -u 51 stunnel Nota Um certificado SSL assinado e uma chave privada é necessário(a) para executar o processo de segundo plano stunnel. Depois que o pacote estiver instalado, existem instruções para gerá-lo(a). No entanto, se você é dono(a) ou já criou um Certificado SSL assinado que deseja usar, [então] copie-o para /etc/stunnel/stunnel.pem antes de iniciar a construção (certifique-se de que somente o(a) root tenha acesso de leitura e gravação). O arquivo .pem precisa ser formatado conforme mostrado: -----BEGIN PRIVATE KEY----- -----END PRIVATE KEY----- -----BEGIN CERTIFICATE----- -----END CERTIFICATE----- -----BEGIN DH PARAMETERS----- -----END DH PARAMETERS----- Instale stunnel executando os seguintes comandos: ./configure --prefix=/usr \ --sysconfdir=/etc \ --localstatedir=/var \ --disable-systemd && make Se você tiver instalado o aplicativo opcional netcat, [então] os testes de regressão podem ser executados com make check. Agora, como o(a) usuário(a) root: make docdir=/usr/share/doc/stunnel-5.74 install Se você ainda não tiver um certificado SSL assinado e uma chave privada, [então] crie o arquivo stunnel.pem no diretório /etc/stunnel usando o comando abaixo. Você será solicitado(a) a inserir a informação necessária. Certifique-se de responder ao Common Name (FQDN of your server) [localhost]: prompt com o nome ou o endereço IP que você usará para acessar o(s) serviço(s). Para gerar um certificado, como o(a) usuário(a) root, emita: make cert Explicações do Comando --disable-systemd: Essa chave desabilita o suporte a ativação de soquete do systemd que não está disponível no BLFS. make docdir=... install: Esse comando instala o pacote e muda o diretório de instalação da documentação para convenções de nomenclatura padrão. Configurando stunnel Arquivos de Configuração /etc/stunnel/stunnel.conf Informação de Configuração Como o(a) usuário(a) root, crie o diretório usado para o arquivo .pid criado quando o processo de segundo plano stunnel inicia: install -v -m750 -o stunnel -g stunnel -d /var/lib/stunnel/run && chown stunnel:stunnel /var/lib/stunnel Em seguida, crie um arquivo básico de configuração /etc/stunnel/stunnel.conf usando os seguintes comandos como o(a) usuário(a) root: cat > /etc/stunnel/stunnel.conf << "EOF" ; File: /etc/stunnel/stunnel.conf ; Observação: os locais da saída gerada e do PID são relativos ao local do chroo t. 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: [] accept = connect = Para uma explicação completa dos comandos e da sintaxe usados no arquivo de configuração, emita man stunnel. Conjunto de Comandos Sequenciais de Inicialização Para iniciar automaticamente o processo de segundo plano stunnel quando o sistema for inicializado, instale o script de inicialização /etc/rc.d/init.d/stunnel a partir do pacote [2158]blfs-bootscripts-20250225. make install-stunnel Conteúdo Aplicativos Instalados: stunnel e stunnel3 Biblioteca Instalada: libstunnel.so Diretórios Instalados: /{etc,lib,var/lib}/stunnel e /usr/share/doc/stunnel-5.74 Descrições Curtas stunnel é um aplicativo projetado para funcionar como invólucro de encriptação SSL entre clientes remotos e servidores locais ou remotos stunnel3 é um script de invólucro Perl para usar a sintaxe 3.x do stunnel com o stunnel 4.05 ou posterior libstunnel.so contém as funções de API exigidas pelo stunnel Sudo-1.9.16p2 Introdução ao Sudo O pacote Sudo permite que um(a) administrador(a) do sistema dê a certos(as) usuários(as) (ou a grupos de usuários(as)) a capacidade de executar alguns (ou todos) comandos como root ou outro usuário(a) enquanto registra os comandos e argumentos. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2159]https://www.sudo.ws/dist/sudo-1.9.16p2.tar.gz * Transferência (FTP): * Soma de verificação MD5 da transferência: 52681ba928fb7aba46998f061d9ba85c * Tamanho da transferência: 5,1 MB * Espaço em disco estimado exigido: 53 MB (adicionar 10 MB para os testes) * Tempo de construção estimado: 0,2 UPC (com paralelismo=4; adicionar 0,1 UPC para testes) Dependências do Sudo Opcionais [2160]Linux-PAM-1.7.0, [2161]MIT Kerberos V5-1.21.3, [2162]OpenLDAP-2.6.9, [2163]MTA (isso fornece um comando sendmail), [2164]AFS, [2165]libaudit, [2166]Opie e [2167]Sssd Instalação do Sudo Instale Sudo executando os seguintes comandos: ./configure --prefix=/usr \ --libexecdir=/usr/lib \ --with-secure-path \ --with-env-editor \ --docdir=/usr/share/doc/sudo-1.9.16p2 \ --with-passprompt="[sudo] password for %p: " && make Para testar os resultados, emita: env LC_ALL=C make check |& tee make-check.log. Verifique os resultados com grep failed make-check.log. Agora, como o(a) usuário(a) root: make install Explicações do Comando --libexecdir=/usr/lib: Essa chave controla onde os aplicativos privados são instalados. Tudo nesse diretório é uma biblioteca, de forma que eles pertencem a /usr/lib em vez de /usr/libexec. --with-secure-path: Essa chave adiciona transparentemente os diretórios /sbin e /usr/sbin à variável de ambiente PATH. --with-env-editor: Essa chave habilita o uso da variável de ambiente EDITOR para o visudo. --with-passprompt: Essa chave configura o prompt de senha. O %p será expandido para o nome do(a) usuário(a) cuja senha está sendo solicitada. --without-pam: Essa chave evita a construção do suporte a Linux-PAM quando o Linux-PAM estiver instalado no sistema. --with-all-insults: Essa chave inclui todos os conjuntos de insultos do sudo. Os insultos serão impressos se o(a) usuário(a) digitar uma senha incorreta e se estiver habilitados em /etc/sudoers. Use --with-insults para tê-los habilitados por padrão. Vários conjuntos de insultos podem ser selecionados com algumas outras chaves. Nota Existem muitas opções para o comando configure do sudo. Verifique a saída gerada do configure --help para uma lista completa. Configurando Sudo Arquivo de Configuração /etc/sudoers Informação de Configuração O arquivo sudoers pode ser bastante complicado. Ele é composto por dois tipos de entradas: aliases (basicamente variáveis) e especificações de usuário(a) (que especificam quem pode executar o quê). A instalação instala uma configuração padrão que não tem privilégios instalados para nenhum(a) usuário(a). Algumas mudanças comuns de configuração são para configurar o caminho para o(a) superusuário(a) e para permitir que os(as) membros(as) do grupo wheel executem todos os comandos depois de fornecerem as próprias credenciais deles(as). Use os seguintes comandos para criar o arquivo de configuração /etc/sudoers.d/00-sudo como o(a) usuário(a) root: cat > /etc/sudoers.d/00-sudo << "EOF" Defaults secure_path="/usr/sbin:/usr/bin" %wheel ALL=(ALL) ALL EOF Nota Em instalações muito simples onde existe somente um(a) usuário(a), possivelmente seja mais fácil apenas editar o arquivo /etc/sudoers diretamente. Nesse caso, a entrada secure_path possivelmente não seja necessária e usar sudo -E ... pode importar o ambiente completo do(a) usuário(a) não privilegiado(a) para a sessão privilegiada. Os arquivos no diretório /etc/sudoers.d são analisados em ordem léxica classificada. Tenha cuidado para que as entradas em um arquivo adicionado não sobrescrevam as entradas anteriores. Para detalhes, veja-se man sudoers. Nota Os(As) desenvolvedores(as) do Sudo recomendam enfaticamente usar o aplicativo visudo para editar o arquivo sudoers. Isso fornecerá verificação básica de sanidade, como análise de sintaxe e permissão de arquivo, para evitar alguns possíveis erros que poderiam levar a uma configuração vulnerável. Se o PAM estiver instalado no sistema, [então] Sudo será construído com suporte a PAM. Nesse caso, emita o seguinte comando como o(a) usuário(a) root para criar o arquivo de configuração do PAM: cat > /etc/pam.d/sudo << "EOF" # Início /etc/pam.d/sudo # Inclui as configurações padrão de autenticação auth include system-auth # Inclui as configurações padrão de conta account include system-account # Configura variáveis padrão de ambiente para o(a) usuário(a) do serviço session required pam_env.so # Inclui padrões de sessão do sistema session include system-session # Fim /etc/pam.d/sudo EOF chmod 644 /etc/pam.d/sudo Conteúdo Aplicativos Instalados: cvtsudoers, sudo, sudo_logsrvd, sudo_sendlog, sudoedit (link simbólico), sudoreplay e visudo Bibliotecas Instaladas: audit_json.so, group_file.so, libsudo_util.so, sudoers.so, sudo_intercept.so, sudo_noexec.so e system_group.so Diretórios Instalados: /etc/sudoers.d, /usr/lib/sudo, /usr/share/doc/sudo-1.9.16p2 e /var/lib/sudo Descrições Curtas cvtsudoers converte entre formatos de arquivo sudoers sudo executa um comando como outro(a) usuário(a) conforme permitido pelo arquivo de configuração /etc/sudoers sudo_logsrvd é um servidor de registro de Entrada/Saída e de evento do sudo sudo_sendlog envia registros de Entrada/Saída do sudo para o servidor de registro sudoedit é um link simbólico para sudo que implica a opção -e para invocar um editor como outro(a) usuário(a) sudoreplay é usado para reproduzir ou para listar os registros de saída gerada criados pelo sudo visudo permite uma edição mais segura do arquivo sudoers Tripwire-2.4.3.7 Introdução ao Tripwire O pacote Tripwire contém aplicativos usados para verificar a integridade dos arquivos em um determinado sistema. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2168]https://github.com/Tripwire/tripwire-open-source/releases/dow nload/2.4.3.7/tripwire-open-source-2.4.3.7.tar.gz * Transferência (FTP): * 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) Dependências do Tripwire Opcionais Um [2169]MTA Instalação do Tripwire Compile Tripwire executando os seguintes comandos: sed -e '/^CLOBBER/s/false/true/' \ -e 's|TWDB="${prefix}|TWDB="/var|' \ -e '/TWMAN/ s|${prefix}|/usr/share|' \ -e '/TWDOCS/s|${prefix}/doc/tripwire|/usr/share/doc/tripwire-2.4.3.7|' \ -i installer/install.cfg && find . -name Makefile.am | xargs \ sed -i 's/^[[:alpha:]_]*_HEADERS.*=/noinst_HEADERS =/' && sed '/dist/d' -i man/man?/Makefile.am && autoreconf -fi && ./configure --prefix=/usr --sysconfdir=/etc/tripwire && make CPPFLAGS=-std=c++11 Nota A configuração padrão é a de usar um MTA local. Se você não teiver um MTA instalado e não desejar instalar um, [então] modifique install/install.cfg para usar um servidor SMTP. Caso contrário, a instalação falhará. Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) root: make install && cp -v policy/*.txt /usr/share/doc/tripwire-2.4.3.7 Nota Durante o make install, várias perguntas são feitas, incluindo senhas. Se você deseja criar um script, [então] tem de aplicar um sed antes de executar make install: sed -i -e 's@installer/install.sh@& -n -s -l @' Ma kefile Claro, você deveria fazer isso com senhas fictícias e mudá-las posteriormente. Outro problema ao criar scripts é o de que o instalador sai quando a entrada padrão não é um terminal. Você consegue desativar esse comportamento com o seguinte sed: sed '/-t 0/,+3d' -i installer/install.sh Explicações do Comando sed ... installer/install.cfg: Esse comando informa ao pacote para instalar a base de dados do aplicativo e informa em /var/lib/tripwire e configura o local adequado para páginas de manual e documentação. find ..., sed ... e autoreconf -fi: O sistema de construção é inutilizável como está e tem de ser modificado para que a construção tenha sucesso. CPPFLAGS=-std=c++11: Configurar os sinalizadores do pré processador C++ para a versão 11 é necessário para evitar um conflito com a versão padrão que é c++17 na versão recente do GCC. make install: Esse comando cria as chaves de segurança do Tripwire assim como instala os binários. Existem duas chaves: uma chave do sítio e uma chave local que são armazenadas em /etc/tripwire/. cp -v policy/*.txt /usr/doc/tripwire-2.4.3.7: Esse comando instala os arquivos de amostra da política do tripwire com a outra documentação do tripwire. Configurando Tripwire Arquivos de Configuração /etc/tripwire/* Informação de Configuração O Tripwire usa um arquivo de política para determinar quais arquivos são verificados quanto à integridade. O arquivo padrão da política (/etc/tripwire/twpol.txt) é para uma instalação padrão e precisará ser atualizado para seu sistema. Os arquivos da política deveriam ser adaptados para cada distribuição e(ou) instalação individual. Alguns arquivos de exemplo da política podem ser encontrados em /usr/share/doc/tripwire/. Se desejado, [então] copie o arquivo da política que gostaria de tentar para /etc/tripwire/ em vez de usar o arquivo padrão da política, twpol.txt. É, no entanto, recomendado que você edite seu arquivo da política. Obtenha ideias a partir dos exemplos acima e leia /usr/share/doc/tripwire/policyguide.txt para informação adicional. twpol.txt é um bom arquivo da política para aprender a respeito do Tripwire, pois ele observará quaisquer mudanças no sistema de arquivos e até mesmo pode ser usado como uma maneira irritante de manter rastreio das mudanças para desinstalação de software. Depois que seu arquivo da política tiver sido editado para sua satisfação, você poderá iniciar as etapas de configuração (realizar como o(a) usuário(a) root): twadmin --create-polfile --site-keyfile /etc/tripwire/site.key \ /etc/tripwire/twpol.txt && tripwire --init Dependendo do seu sistema e do conteúdo do arquivo da política, a fase de inicialização acima pode levar um tempo relativamente longo. Informação de Uso O Tripwire identificará as mudanças de arquivo nos arquivos críticos do sistema especificados no arquivo da política. Usar o Tripwire enquanto se faz mudanças frequentes nesses diretórios sinalizará todas essas mudanças. É mais útil depois que um sistema tenha atingido uma configuração que o(a) usuário(a) considere estável. Para usar o Tripwire depois de criar um arquivo da política para executar um informe, use o seguinte comando: tripwire --check > /etc/tripwire/report.txt Veja a saída gerada para verificar a integridade dos seus arquivos. Um informe automático de integridade pode ser produzido usando-se um recurso cron para agendar as execuções. Os informes são armazenados em binário e, se desejado, encriptados. Visualize os informes, como o(a) usuário(a) root, com: twprint --print-report -r /var/lib/tripwire/report/ 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/ Você será colocado(a) no Vim com uma cópia do informe à sua frente. Se todas as mudanças estiverem boas, então apenas digite :wq e depois de inserir sua chave local, a base de dados será atualizada. Se existirem arquivos a respeito dos quais você ainda desejar ser avisado(a), [então] remova o 'x' de antes do nome do arquivo no informe e digite :wq. Mudando o Arquivo da Política Se você estiver insatisfeito(a) com seu arquivo da política e gostaria de modificá-lo ou de usar um novo, [então] modifique o arquivo da política e então execute os seguintes comandos como o(a) usuário(a) root: twadmin --create-polfile /etc/tripwire/twpol.txt && tripwire --init Conteúdo Aplicativos Instalados: siggen, tripwire, twadmin e twprint Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /etc/tripwire, /var/lib/tripwire e /usr/share/doc/tripwire-2.4.3.7 Descrições Curtas siggen é um utilitário de coleta de assinatura que exibe os valores da função hash para os arquivos especificados tripwire é o principal aplicativo de verificação de integridade de arquivo twadmin ferramenta administrativa e utilitária usada para realizar certas funções administrativas relacionadas a arquivos e opções de configuração do Tripwire twprint imprime a base de dados e arquivos de informe do Tripwire em formato de texto simples Capítulo 5. Sistemas de Arquivos e Gerenciamento de Disco Os sistemas de arquivos com diário reduzem o tempo necessário para recuperar um sistema de arquivos que não foi desmontado adequadamente. Embora isso possa ser extremamente importante para reduzir o tempo de inatividade dos servidores, também se tornou popular em ambientes de área de trabalho. Este capítulo contém outros sistemas de arquivos com diário que você pode usar em vez do sistema de arquivos estendido padrão do LFS (ext2/3/4). Ele também fornece material introdutório a respeito de gerenciamento de matrizes de disco. A respeito do initramfs O único propósito de um initramfs é o do montar o sistema de arquivos raiz. O initramfs é um conjunto completo de diretórios que você encontraria em um sistema de arquivos raiz normal. Ele é agrupado em um arquivamento cpio e comprimido com um dos vários algoritmos de compressão. Ao tempo da inicialização, o carregador de inicialização carrega o núcleo e a imagem initramfs na memória e inicia o núcleo. O núcleo verifica a presença do initramfs e, se encontrado, o monta como / e executa /init. O aplicativo init é tipicamente um conjunto de comandos sequenciais de shell. Observe que o processo de inicialização leva mais tempo, possivelmente significativamente mais, se um initramfs for usado. Para a maioria das distribuições, os módulos do núcleo são a maior razão para ter um initramfs. Em uma distribuição geral, existem muitas incógnitas, como tipos de sistema de arquivos e esquemas de disco. De certa forma, isso é o oposto do LFS, onde os recursos e o esquema do sistema são conhecidos e um núcleo personalizado normalmente é construído. Nessa situação, um initramfs raramente é necessário. Existem somente quatro razões principais para se ter um initramfs no ambiente LFS: carregar o sistema de arquivos raiz a partir de uma rede; carregá-lo a partir de um volume lógico LVM; ter um sistema de arquivos raiz encriptado onde uma senha seja exigida; ou para a conveniência de se especificar o sistema de arquivos raiz como um RÓTULO ou como um UUID. Qualquer outra coisa geralmente significa que o núcleo não foi configurado adequadamente. Construindo um initramfs Se você decidir construir um initramfs, os conjuntos de comandos sequenciais a seguir fornecerão uma base para isso. Os conjuntos de comandos sequenciais permitirão especificar um sistema de arquivos raiz via partição UUID ou partição RÓTULO ou um sistema de arquivos raiz em um volume lógico LVM. Eles não suportam um sistema de arquivos raiz encriptado ou montar o sistema de arquivos raiz passando por uma placa de rede de comunicação. Para uma capacidade mais completa, vejam-se [2170]as Dicas do LFS ou [2171]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 /sbi n 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 >> $unsorte d 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óp ia, 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.bi n 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 co mando do núcleo.\n\n" printf "Talvez o dispositivo esteja formatado com um sistema de arquivos não suportado?\n\n" printf "Ou talvez a auto detecção do tipo do sistema de arquivos foi errada, caso no qual\n" printf "você deveria adicionar o parâmetro rootfstype=... à linha de comando do núcleo.\n\n" printf "Partições disponíveis:\n" } do_mount_root() { mkdir /.root [ -n "$rootflags" ] && rootflags="$rootflags," rootflags="$rootflags$ro" case "$root" in /dev/* ) device=$root ;; UUID=* ) eval $root; device="/dev/disk/by-uuid/$UUID" ;; PARTUUID=*) eval $root; device="/dev/disk/by-partuuid/$PARTUUID" ;; LABEL=* ) eval $root; device="/dev/disk/by-label/$LABEL" ;; "" ) echo "Nenhum dispositivo raiz especificado." ; problem ;; esac while [ ! -b "$device" ] ; do no_device $device problem done if ! mount -n -t "$rootfstype" -o "$rootflags" "$device" /.root ; then no_mount $device cat /proc/partitions while true ; do sleep 10000 ; done else echo "Dispositivo montado com sucesso $root" fi } do_try_resume() { case "$resume" in UUID=* ) eval $resume; resume="/dev/disk/by-uuid/$UUID" ;; LABEL=*) eval $resume; resume="/dev/disk/by-label/$LABEL" ;; esac if $noresume || ! [ -b "$resume" ]; then return; fi ls -lH "$resume" | ( read x x x x maj min x echo -n ${maj%,}:$min > /sys/power/resume ) } init=/sbin/init root= rootdelay= rootfstype=auto ro="ro" rootflags= device= resume= noresume=false mount -n -t devtmpfs devtmpfs /dev mount -n -t proc proc /proc mount -n -t sysfs sysfs /sys mount -n -t tmpfs tmpfs /run read -r cmdline < /proc/cmdline for param in $cmdline ; do case $param in init=* ) init=${param#init=} ;; root=* ) root=${param#root=} ;; rootdelay=* ) rootdelay=${param#rootdelay=} ;; rootfstype=*) rootfstype=${param#rootfstype=} ;; rootflags=* ) rootflags=${param#rootflags=} ;; resume=* ) resume=${param#resume=} ;; noresume ) noresume=true ;; ro ) ro="ro" ;; rw ) ro="rw" ;; esac done # Local do udevd depende da versão if [ -x /sbin/udevd ]; then UDEVD=/sbin/udevd elif [ -x /lib/udev/udevd ]; then UDEVD=/lib/udev/udevd elif [ -x /lib/systemd/systemd-udevd ]; then UDEVD=/lib/systemd/systemd-udevd else echo "Não consigo encontrar o udevd nem o systemd-udevd" problem fi ${UDEVD} --daemon --resolve-names=never udevadm trigger udevadm settle if [ -f /etc/mdadm.conf ] ; then mdadm -As ; fi if [ -x /sbin/vgchange ] ; then /sbin/vgchange -a y > /dev/null ; fi if [ -n "$rootdelay" ] ; then sleep "$rootdelay" ; fi do_try_resume # Esta função não retornará se retomar a partir do disco do_mount_root killall -w ${UDEVD##*/} exec switch_root /.root "$init" "$@" EOF Usando um initramfs Dependência Exigida em Tempo de Execução [2172]cpio-2.15 Outras Dependências em Tempo de Execução [2173]LVM2-2.03.30 e(ou) [2174]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 [2175]“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-4988408eb 0a8 ro initrd /initrd.img-no-kmods } # initramfs genérico e sistema de arquivos raiz na partição LVM menuentry "LFS Dev (LFS-7.0-Feb18) initrd lvm, Linux 3.0.4" { linux /vmlinuz-3.0.4-lfs-20120218 root=/dev/mapper/myroot ro initrd /initrd.img-no-kmods } # initramfs específico e sistema de arquivos raiz identificado por RÓTULO menuentry "LFS Dev (LFS-7.1-Feb20) initrd label, Linux 3.2.6" { linux /vmlinuz-3.2.6-lfs71-120220 root=LABEL=lfs71 ro initrd /initrd.img-3.2.6-lfs71-120220 } Finalmente, reinicialize o sistema e selecione o sistema desejado. btrfs-progs-6.13 Introdução ao btrfs-progs O pacote btrfs-progs contém ferramentas de administração e de depuração para o sistema de arquivos B-tree (btrfs). Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2176]https://www.kernel.org/pub/linux/kernel/people/kdave/btrfs-pr ogs/btrfs-progs-v6.13.tar.xz * Transferência (FTP): * Soma de verificação MD5 da transferência: 9dced32d9f63118d214c01fed08c1439 * Tamanho da transferência: 2,6 MB * Espaço em disco estimado exigido: 65 MB (arquivos temporários criados durante testes precisam de até 10 GB) * Tempo de construção estimado: 0,3 UPC (com paralelismo=4; adicionar 3,7 UPC para testes, até 14 UPC em discos lentos) Dependências do Btrfs-progs Exigidas [2177]LZO-2.10 Opcionais [2178]LVM2-2.03.30 (dmsetup é usado em testes), [2179]sphinx-8.2.1 e [2180]sphinx_rtd_theme-3.0.2 (exigido para construir documentação) e [2181]reiserfsprogs (para testes). Configuração do Núcleo Habilite a seguinte opção na configuração do núcleo e recompile o núcleo: File systems ---> <*/M> Btrfs filesystem support [BTRFS_FS] Além do acima e das opções exigidas para [2182]LVM2-2.03.30, as seguintes opções precisam estar configuradas para executar-se testes. As opções marcadas como vazias não deveriam estar selecionadas porque elas são para desenvolvedores(as) e fazem alguns testes falharem. File systems ---> <*/M> Btrfs filesystem support [BTRFS_FS] [*] Btrfs POSIX Access Control Lists [BTRFS_FS_POSIX_ACL] [ ] Btrfs will run sanity tests upon loading [BTRFS_FS_RUN_SANITY_TESTS] [ ] Btrfs debugging support [BTRFS_DEBUG] [ ] Btrfs assert support [BTRFS_ASSERT] [ ] Btrfs with the ref verify tool compiled in [BTRFS_FS_REF_VERIFY] Instalação do btrfs-progs Instale o btrfs-progs executando os seguintes comandos: ./configure --prefix=/usr \ --disable-static \ --disable-documentation && make Nota Alguns testes exigem grep construído com expressões regulares perl. Para obter isso, reconstrua o grep com as instruções do Capítulo 8 do LFS depois de instalar o [2183]pcre2-10.45. Antes de executar os testes, construa um aplicativo de suporte: make fssum Agora remova um teste conhecido por falhar. Como root: mv tests/mkfs-tests/013-reserved-1M-for-single/test.sh{,.broken} Para testar os resultados, emita (como o(a) usuário(a) root): pushd tests ./fsck-tests.sh ./mkfs-tests.sh ./cli-tests.sh ./convert-tests.sh ./misc-tests.sh ./fuzz-tests.sh popd Nota Se as opções de núcleo mencionadas acima não estiverem habilitadas, alguns testes falharão e impedirão que todos os testes restantes executem, porque a imagem do disco de teste não foi desmontada corretamente. Certifique-se também de que o módulo de núcleo do btrfs esteja carregado. Instale o pacote como o(a) usuário(a) root: make install Se você tiver passado --disable-documentation para configure e precisar das páginas de manual, instale-as executando, como o(a) usuário(a) root: for i in 5 8; do install Documentation/*.$i /usr/share/man/man$i done Explicações do Comando --disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas. --disable-documentation: Essa chave desabilita reconstruir as páginas de manual, porque isso exige [2184]sphinx-8.2.1. Conteúdo Aplicativos Instalados: btrfs, btrfs-convert, btrfs-find-root, btrfs-image, btrfs-map-logical, btrfs-select-super, btrfsck (link para btrfs), btrfstune, fsck.btrfs e mkfs.btrfs Bibliotecas Instaladas: libbtrfs.so e libbtrfsutil.so Diretórios Instalados: /usr/include/btrfs Descrições Curtas btrfs é a interface principal para as operações do sistema de arquivos btrfs btrfs-convert converte a partir de um sistema de arquivos ext2/3/4 ou reiserfs para btrfs btrfs-find-root é um filtro para encontrar a raiz do btrfs btrfs-map-logical mapeia a extensão lógica do btrfs para a extensão física btrfs-select-super sobrescreve o superbloco primário com uma cópia da cópia de segurança btrfstune ajusta vários parâmetros do sistema de arquivos fsck.btrfs não faz nada, mas está presente para consistência com fstab mkfs.btrfs cria um sistema de arquivos btrfs dosfstools-4.2 Introdução ao dosfstools O pacote dosfstools contém vários utilitários para uso com a família FAT de sistemas de arquivos. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2185]https://github.com/dosfstools/dosfstools/releases/download/v4 .2/dosfstools-4.2.tar.gz * Transferência (FTP): * 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 Configuração do Núcleo Habilite a seguinte opção na configuração do núcleo e recompile o núcleo se você precisar montar um sistema de arquivos da família FAT: File systems ---> DOS/FAT/EXFAT/NT Filesystems ---> < /*/M> MSDOS fs support [MSDOS_FS] <*/M> VFAT (Windows-95) fs support [VFAT_FS] Observe que CONFIG_MSDOS_FS deliberadamente não suporta nomes longos de arquivos. CONFIG_VFAT_FS deveria ser usada em vez disso, a menos que você realmente queira impor os nomes de arquivo “8.3” no estilo DOS. Você pode montar um sistema de arquivos da família FAT assim que o núcleo o suportar. Se não precisar criar, verificar ou rotular novamente um sistema da família FAT, você pode ignorar esse pacote. Instalação do dosfstools Instale dosfstools executando os seguintes comandos: ./configure --prefix=/usr \ --enable-compat-symlinks \ --mandir=/usr/share/man \ --docdir=/usr/share/doc/dosfstools-4.2 && make Para testar os resultados, emita: make check. Agora, como o(a) usuário(a) root: make install Explicações do Comando --enable-compat-symlinks: Essa chave cria os links simbólicos dosfsck, dosfslabel, fsck.msdos, fsck.vfat, mkdosfs, mkfs.msdos e mkfs.vfat exigidos por alguns aplicativos. Conteúdo Aplicativos Instalados: fatlabel, fsck.fat e mkfs.fat Descrições Curtas fatlabel configura ou obtém um rótulo do sistema de arquivos MS-DOS a partir de um dado dispositivo fsck.fat verifica e repara sistemas de arquivos MS-DOS mkfs.fat cria um sistema de arquivos MS-DOS sob o Linux Fuse-3.16.2 Introdução ao Fuse FUSE (Filesystem in Userspace) é uma interface simples para aplicativos do espaço de usuário(a) para exportar um sistema de arquivos virtual para o núcleo Linux. O Fuse também visa a fornecer um método seguro para usuários(as) não privilegiados(as) criarem e montarem as próprias implementações de sistema de arquivos deles(as). Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2186]https://github.com/libfuse/libfuse/releases/download/fuse-3.1 6.2/fuse-3.16.2.tar.gz * Transferência (FTP): * 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) Dependências do Fuse Opcionais [2187]Doxygen-1.13.2 (para reconstruir a documentação da API), [2188]pytest-8.3.4 (exigido para testes) e [2189]looseversion (para testes) Configuração do Núcleo Habilite as seguintes opções na configuração do núcleo e recompile o núcleo se necessário: File systems ---> <*/M> FUSE (Filesystem in Userspace) support [FUSE_FS] Os dispositivos de caracteres no espaço do usuário(a) também deveriam ser habilitados para executar os testes: File systems ---> <*/M> FUSE (Filesystem in Userspace) support [FUSE_FS] <*/M> Character device in Userspace support [CUSE] Instalação do Fuse Instale Fuse executando os seguintes comandos: sed -i '/^udev/,$ s/^/#/' util/meson.build && mkdir build && cd build && meson setup --prefix=/usr --buildtype=release .. && ninja A documentação da API está incluída no pacote, mas se você tiver o [2190]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 [2191]pytest-8.3.4 é exigido para os testes. Um teste chamado test_cuse falhará se o item de configuração CONFIG_CUSE não foi habilitado quando o núcleo foi construído. Um teste, test/util.py, gerará um aviso devido ao uso de uma marca desconhecida no pytest. Agora, como o(a) usuário(a) root: ninja install && chmod u+s /usr/bin/fusermount3 && cd .. && cp -Rv doc/html -T /usr/share/doc/fuse-3.16.2 && install -v -m644 doc/{README.NFS,kernel.txt} \ /usr/share/doc/fuse-3.16.2 Explicações do Comando sed ... util/meson.build: Esse comando desabilita a instalação de um script de inicialização e de uma regra udev que não são necessários(as). --buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados. Configurando fuse Arquivos de Configuração Algumas opções relacionadas à política de montagem podem ser configuradas no arquivo /etc/fuse.conf. Para instalar o arquivo, execute o seguinte comando como o(a) usuário(a) root: cat > /etc/fuse.conf << "EOF" # Configura o número máximo de montagens FUSE permitidas para usuários(as) não r oot. # O padrão é 1000. # #mount_max = 1000 # Permitir que usuários(as) não root especifiquem as # opções de montagem 'allow_other' ou 'allow_root'. # #user_allow_other EOF Informação adicional a respeito do significado das opções de configuração são encontradas na página de manual. Conteúdo Aplicativos Instalados: fusermount3 e mount.fuse3 Bibliotecas Instaladas: libfuse3.so Diretório Instalado: /usr/include/fuse3 e /usr/share/doc/fuse-3.16.2 Descrições Curtas fusermount3 é um aplicativo raiz suid para montar e desmontar sistemas de arquivos Fuse mount.fuse3 é o comando mount chamado para montar um sistema de arquivos Fuse libfuse3.so contém as funções da API do FUSE jfsutils-1.1.15 Introdução ao jfsutils O pacote jfsutils contém ferramentas de administração e de depuração para o sistema de arquivos jfs. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2192]https://jfs.sourceforge.net/project/pub/jfsutils-1.1.15.tar.g z * Transferência (FTP): * 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 Transferências Adicionais * Remendo necessário para corrigir problemas expostos pelo GCC 10 e posterior: [2193]https://www.linuxfromscratch.org/patches/blfs/12.3/jfsutils-1 .1.15-gcc10_fix-1.patch Configuração do Núcleo Habilite a seguinte opção na configuração do núcleo e recompile o núcleo: File systems ---> <*/M> JFS filesystem support [JFS_FS] Instalação do jfsutils Primeiro, corrija alguns problemas expostos pelo GCC 10 e posteriores: patch -Np1 -i ../jfsutils-1.1.15-gcc10_fix-1.patch Instale jfsutils executando os seguintes comandos: sed -i "/unistd.h/a#include " fscklog/extract.c && sed -i "/ioctl.h/a#include " libfs/devices.c && ./configure && make Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) root: make install Explicações do Comando sed ...: Corrige a construção com a glibc 2.28. Conteúdo Aplicativos Instalados: fsck.jfs, jfs_debugfs, jfs_fsck, jfs_fscklog, jfs_logdump, jfs_mkfs, jfs_tune e mkfs.jfs Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: Nenhum(a) Descrições Curtas fsck.jfs é usado para reproduzir o registro de transações do JFS, verificar um dispositivo formatado do JFS para erros e corrigir quaisquer erros encontrados jfs_fsck é um link rígido para fsck.jfs mkfs.jfs constrói um sistema de arquivos JFS jfs_mkfs é um link rígido para mkfs.jfs jfs_debugfs é um aplicativo que pode ser usado para realizar várias ações de baixo nível em um dispositivo formatado do JFS jfs_fscklog extrai um registro de serviço fsck do JFS em um arquivo e(ou) formata e exibe o arquivo extraído jfs_logdump despeja o conteúdo do registro do diário a partir do dispositivo formatado com JFS especificado no arquivo de saída gerada ./jfslog.dmp jfs_tune ajusta os parâmetros ajustáveis do sistema de arquivos em sistemas de arquivos JFS LVM2-2.03.30 Introdução ao LVM2 O pacote LVM2 é um conjunto de ferramentas que gerenciam partições lógicas. Ele permite a extensão completa de sistemas de arquivos transversalmente entre vários discos físicos e partições de disco e fornece crescimento dinâmico ou redução de partições lógicas, espelhamento e instantâneos de baixo consumo de armazenamento. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2194]https://sourceware.org/ftp/lvm2/LVM2.2.03.30.tgz * Transferência (FTP): * Soma de verificação MD5 da transferência: 048cd0e39cce7b15e48a8d3ba5c8d80c * Tamanho da transferência: 2,7 MB * Espaço em disco estimado exigido: 39 MB (adicionar 20 MB para testes; arquivos transitórios podem crescer até cerca de 300 MB no diretório /tmp durante testes) * Tempo de construção estimado: 0,4 UPC (adicionar 9 a 48 UPC para testes, dependendo da velocidade do disco e de se o dispositivo de bloco de RAM estiver habilitado no núcleo) Dependências do LVM2 Exigidas [2195]libaio-0.3.113 Opcionais [2196]mdadm-4.3, [2197]Valgrind-3.24.0, [2198]Which-2.23, [2199]xfsprogs-6.13.0 (todos quatro possivelmente sejam usados, mas não são exigidos, para testes), [2200]reiserfsprogs, [2201]thin-provisioning-tools e [2202]vdo Configuração do Núcleo Habilite as seguintes opções na configuração do núcleo e recompile o núcleo: Nota Existem várias outras opções do Device Mapper no núcleo além das listadas abaixo. Para obter resultados razoáveis ao executar os testes de regressão, todas precisam ser habilitadas, seja internamente ou como um módulo. Todos os testes expirarão se a chave Magic SysRq não estiver habilitada. Device Drivers ---> [*] Block devices ---> [BLK_DEV] <*/M> RAM block device support [BLK_DEV_RAM] [*] Multiple devices driver support (RAID and LVM) ---> [MD] <*/M> Device mapper support [BLK_DEV_DM] <*/M> Crypt target support [DM_CRYPT] <*/M> Snapshot target [DM_SNAPSHOT] <*/M> Thin provisioning target [DM_THIN_PROVISIONING] <*/M> Cache target (EXPERIMENTAL) [DM_CACHE] <*/M> Mirror target [DM_MIRROR] <*/M> Zero target [DM_ZERO] <*/M> I/O delaying target [DM_DELAY] Kernel hacking ---> Generic Kernel Debugging Instruments ---> [*] Magic SysRq key [MAGIC_SYSRQ] Instalação do LVM2 Instale LVM2 executando os seguintes comandos: PATH+=:/usr/sbin \ ./configure --prefix=/usr \ --enable-cmdlib \ --enable-pkgconfig \ --enable-udev_sync && make Os testes usam udev para sincronização de volume lógico, de forma que as regras LVM do udev e alguns utilitários precisam ser instalados antes de se executar os testes. Se você estiver instalando o LVM2 pela primeira vez e não quiser instalar o pacote completo antes de executar os testes, [então] o conjunto mínimo de utilitários pode ser instalado executando as seguintes instruções como o(a) usuário(a) root: make -C tools install_tools_dynamic && make -C udev install && make -C libdm install Para testar os resultados, emita, como o(a) usuário(a) root: LC_ALL=en_US.UTF-8 make check_local Alguns testes possivelmente travem. Nesse caso, eles podem ser pulados adicionando-se S= 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 [2203]thin-provisioning-tools não estiver instalado. Uma solução alternativa é a de adicionar os seguintes sinalizadores a configure: --with-thin-check= \ --with-thin-dump= \ --with-thin-repair= \ --with-thin-restore= \ --with-cache-check= \ --with-cache-dump= \ --with-cache-repair= \ --with-cache-restore= \ Alguns testes possivelmente travem. Eles podem ser removidos se necessário, por exemplo: rm test/shell/lvconvert-raid-reshape.sh. Os testes geram um monte de mensagens do núcleo, que possivelmente sobrecarreguem seu terminal. Você consegue desabilitá-los emitindo dmesg -D antes de executar os testes (não se esqueça de emitir dmesg -E quando os testes forem concluídos). Nota As verificações criam nós de dispositivo no diretório /tmp. Os testes falharão se /tmp for montado com a opção nodev. Agora, como o(a) usuário(a) root: make install rm -fv /usr/lib/udev/rules.d/69-dm-lvm.rules Explicações do Comando PATH+=:/usr/sbin: O caminho precisa conter /usr/sbin para detecção adequada da ferramenta do sistema pelo script configure. Essa instrução garante que PATH seja configurada adequadamente, mesmo se você construir como um(a) usuário(a) sem privilégios. --enable-cmdlib: Essa chave habilita a construção da biblioteca compartilhada de comandos. É exigida ao se construir o processo de segundo plano de evento. --enable-pkgconfig: Essa chave habilita a instalação de arquivos de suporte pkg-config. --enable-udev_sync: Essa chave habilita a sincronização com o processamento Udev. --enable-dmeventd: Essa chave habilita a construção do processo de segundo plano de evento Device Mapper. rm .../69-dm-lvm.rules: Sob certas circunstâncias, essa regra do udev chama systemd-run, que não está disponível no sysv. Ela realiza ações que, de qualquer maneira, são feitas por outro script de inicialização; portanto, não é necessária. Conteúdo Aplicativos Instalados: blkdeactivate, dmeventd (opcional), dmsetup, fsadm, lvm, lvmdump e lvm_import_vdo. Existem também numerosos links simbólicos para lvm que implementam funcionalidades específicas Bibliotecas Instaladas: libdevmapper.so e liblvm2cmd.so; opcional: libdevmapper-event.so, libdevmapper-event-lvm2.so, libdevmapper-event-lvm2mirror.so, libdevmapper-event-lvm2raid.so, libdevmapper-event-lvm2snapshot.so, libdevmapper-event-lvm2thin.so e libdevmapper-event-lvm2vdo.so Diretórios Instalados: /etc/lvm e /usr/lib/device-mapper (opcional) Descrições Curtas blkdeactivate é um utilitário para desativar dispositivos de bloco dmeventd (opcional) é o processo de segundo plano de evento do Device Mapper dmsetup é uma ferramenta de baixo nível de gerenciamento de volume lógico fsadm é um utilitário usado para redimensionar ou para verificar o sistema de arquivos em um dispositivo lvm fornece as ferramentas de linha de comando para LVM2. Os comandos são implementados por meio de links simbólicos para esse aplicativo para gerenciar dispositivos físicos (pv*), grupos de volumes (vg*) e volumes lógicos (lv*) lvmdump é uma ferramenta usada para despejar várias informações concernentes ao LVM2 vgimportclone é usado para importar um VG duplicado (por exemplo, instantâneo de hardware) libdevmapper.so contém as funções da API Device Mapper A respeito de Logical Volume Management (LVM) O LVM gerencia as unidades de disco. Ele permite que várias unidades e partições sejam combinadas em grupos de volumes maiores; ajuda na produção de cópias de segurança por meio de um instantâneo e permite o redimensionamento dinâmico do volume. Ele também pode fornecer espelhamento semelhante a uma matriz RAID 1. Uma discussão completa do LVM está além do escopo desta introdução, mas os conceitos básicos são apresentados abaixo. Para executar qualquer dos comandos apresentados aqui, o pacote [2204]LVM2-2.03.30 precisa estar instalado. Todos os comandos precisam ser executados como o(a) usuário(a) root. O gerenciamento de discos com LVM é realizado usando os seguintes conceitos: volumes físicos Esses são discos físicos ou partições, como /dev/sda3 ou /dev/sdb. grupos de volumes Esses são grupos nomeados de volumes físicos que podem ser manipulados pelo(a) administrador(a). O número de volumes físicos que compõem um grupo de volumes é arbitrário. Os volumes físicos podem ser adicionados ou removidos dinamicamente a partir de um grupo de volumes. volumes lógicos Os grupos de volumes podem ser subdivididos em volumes lógicos. Cada volume lógico pode então ser formatado individualmente como se fosse uma partição normal do Linux. Os volumes lógicos podem ser redimensionados dinamicamente pelo(a) administrador(a) de acordo com a necessidade. Para dar um exemplo concreto, suponha que você tenha dois discos de 2 TB. Suponha também que uma quantidade realmente grande de espaço seja exigida para uma base de dados muito grande, montada em /srv/mysql. É assim que o conjunto inicial de partições se pareceria: Partição Uso Tamanhp Tipo da Partição /dev/sda1 /boot 100MB 83 (Linux) /dev/sda2 / 10GB 83 (Linux) /dev/sda3 swap 2GB 82 (Swap) /dev/sda4 LVM remainder 8e (LVM) /dev/sdb1 swap 2GB 82 (Swap) /dev/sdb2 LVM remainder 8e (LVM) Primeiro, inicialize os volumes físicos: pvcreate /dev/sda4 /dev/sdb2 Nota Um disco inteiro pode ser usado como parte de um volume físico, mas esteja ciente de que o comando pvcreate destruirá qualquer informação de partição nesse disco. Em seguida, crie um grupo de volumes chamado lfs-lvm: vgcreate lfs-lvm /dev/sda4 /dev/sdb2 O situação do grupo de volumes pode ser verificada executando-se o comando vgscan. Agora crie os volumes lógicos. Como existe cerca de 3.900 GB disponíveis, deixe cerca de 900 GB livres para expansão. Observe que o volume lógico chamado mysql é maior que qualquer disco físico. lvcreate --name mysql --size 2500G lfs-lvm lvcreate --name home --size 500G lfs-lvm Finalmente, os volumes lógicos podem ser formatados e montados. Neste exemplo, o sistema de arquivos jfs ([2205]jfsutils-1.1.15) é usado para o propósito de demonstração. mkfs -t ext4 /dev/lfs-lvm/home mkfs -t jfs /dev/lfs-lvm/mysql mount /dev/lfs-lvm/home /home mkdir -p /srv/mysql mount /dev/lfs-lvm/mysql /srv/mysql Possivelmente seja necessário ativar esses volumes lógicos, para que apareçam em /dev. Todos eles podem ser ativados ao mesmo tempo emitindo-se, como o(a) usuário(a) root: vgchange -a y Os scripts de inicialização do LFS automaticamente tornam esses volumes lógicos disponíveis para o sistema no script udev. Edite o arquivo /etc/fstab conforme exigido para montá-los automaticamente. Um volume lógico LVM pode hospedar um sistema de arquivos raiz, mas exige o uso de um initramfs (sistema de arquivos RAM inicial). O initramfs proposto em [2206]“A respeito do initramfs” permite passar o volume LVM na chave root= da linha de comando do núcleo. Para mais informação a respeito do LVM, veja-se o [2207]LVM HOWTO e as páginas de manual do lvm. Um bom e detalhado [2208]guia está disponível a partir da RedHat^®, embora às vezes ele faça referência a ferramentas proprietárias. A respeito de RAID A tecnologia de armazenamento conhecida como RAID (Redundant Array of Independent Disks) combina vários discos físicos em uma unidade lógica. As unidades geralmente podem ser combinadas para fornecer redundância de dados ou para estender o tamanho das unidades lógicas além da capacidade dos discos físicos ou de ambos. A tecnologia também permite fornecer manutenção de hardware sem desligar o sistema. Os tipos de organização de RAID são descritos no [2209]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 [2210]rsync-3.4.1. Existem três tipos principais de implementação de RAID: RAID de hardware, RAID baseado em BIOS e RAID de software. RAID de Hardware O RAID baseado em hardware fornece capacidade por meio de esquemas de dados e hardware proprietários. O controle e a configuração geralmente são feitos via firmware em conjunto com aplicativos executáveis disponibilizados pelo fabricante do dispositivo. Os recursos geralmente são fornecidos por meio de uma placa PCI, embora existam algumas instâncias de componentes RAID integrados à placa-mãe. O RAID de hardware também possivelmente esteja disponível em um gabinete independente. Uma vantagem do RAID baseado em hardware é que as unidades são oferecidas ao sistema operacional como uma unidade lógica e nenhuma configuração dependente do sistema operacional é necessária. As desvantagens incluem dificuldades em transferir unidades de um sistema para outro, atualização de firmware ou substituição de hardware RAID com falha. RAID baseado em BIOS Alguns computadores oferecem uma implementação RAID semelhante a hardware no BIOS do sistema. Às vezes, isso é chamado de RAID 'falso', pois os recursos geralmente estão incorporados no firmware sem qualquer aceleração de hardware. As vantagens e desvantagens do RAID baseado em BIOS são geralmente as mesmas do RAID de hardware, com a desvantagem adicional de não existir aceleração de hardware. Em alguns casos, o firmware RAID baseado em BIOS é habilitado por padrão (por exemplo, alguns sistemas DELL). Se o RAID por software for desejado, [então] essa opção precisa ser explicitamente desabilitada no BIOS. RAID por Software O RAID baseado em software é a forma mais flexível de RAID. É fácil instalar e atualizar e fornece capacidade total em todas ou em parte de quaisquer unidades disponíveis para o sistema. No BLFS, o software RAID é encontrado em [2211]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 [2212]parted-3.6, para definir as partições necessárias para a matriz. Normalmente, existirá uma partição em cada unidade participante da matriz RAID, mas isso não é estritamente necessário. Para este exemplo, existirão quatro unidades de disco: /dev/sda, /dev/sdb, /dev/sdc e /dev/sdd. Eles serão particionados como segue: Tamanho da partição Tipo Uso sda1: 100 MB fd Linux raid auto /boot (RAID 1) /dev/md0 sda2: 10 GB fd Linux raid auto / (RAID 1) /dev/md1 sda3: 2 GB 83 Linux swap swap sda4 300 GB fd Linux raid auto /home (RAID 5) /dev/md2 sdb1: 100 MB fd Linux raid auto /boot (RAID 1) /dev/md0 sdb2: 10 GB fd Linux raid auto / (RAID 1) /dev/md1 sdb3: 2 GB 83 Linux swap swap sdb4 300 GB fd Linux raid auto /home (RAID 5) /dev/md2 sdc1: 12 GB fd Linux raid auto /usr/src (RAID 0) /dev/md3 sdc2: 300 GB fd Linux raid auto /home (RAID 5) /dev/md2 sdd1: 12 GB fd Linux raid auto /usr/src (RAID 0) /dev/md3 sdd2: 300 GB fd Linux raid auto /home (RAID 5) /dev/md2 Nesse arranjo, uma partição separada de inicialização é criada como a primeira matriz RAID pequena e um sistema de arquivos raiz como a segunda matriz RAID, ambas espelhadas. A terceira partição é uma matriz grande (cerca de 1 TB) para o diretório /home. Isso fornece uma capacidade de distribuir dados entre vários dispositivos, melhorando a velocidade de leitura e de gravação de arquivos grandes. Por fim, uma quarta matriz é criada que concatena duas partições em um dispositivo maior. Nota Todos os comandos mdadm precisam ser executados como o(a) usuário(a) root. Para criar essas matrizes RAID, os comandos são: /sbin/mdadm -Cv /dev/md0 --level=1 --raid-devices=2 /dev/sda1 /dev/sdb1 /sbin/mdadm -Cv /dev/md1 --level=1 --raid-devices=2 /dev/sda2 /dev/sdb2 /sbin/mdadm -Cv /dev/md3 --level=0 --raid-devices=2 /dev/sdc1 /dev/sdd1 /sbin/mdadm -Cv /dev/md2 --level=5 --raid-devices=4 \ /dev/sda4 /dev/sdb4 /dev/sdc2 /dev/sdd2 Os dispositivos criados podem ser examinados por dispositivo. Por exemplo, para ver os detalhes de /dev/md1, use /sbin/mdadm --detail /dev/md1: Version : 1.2 Creation Time : Tue Feb 7 17:08:45 2012 Raid Level : raid1 Array Size : 10484664 (10.00 GiB 10.74 GB) Used Dev Size : 10484664 (10.00 GiB 10.74 GB) Raid Devices : 2 Total Devices : 2 Persistence : Superblock is persistent Update Time : Tue Feb 7 23:11:53 2012 State : clean Active Devices : 2 Working Devices : 2 Failed Devices : 0 Spare Devices : 0 Name : core2-blfs:0 (local to host core2-blfs) UUID : fcb944a4:9054aeb2:d987d8fe:a89121f8 Events : 17 Number Major Minor RaidDevice State 0 8 1 0 active sync /dev/sda1 1 8 17 1 active sync /dev/sdb1 A partir deste ponto, as partições podem ser formatadas com o sistema de arquivos de escolha (por exemplo, ext3, ext4, [2213]xfsprogs-6.13.0, etc). As partições formatadas podem então serem montadas. O arquivo /etc/fstab pode usar os dispositivos criados para montagem em tempo de inicialização e a linha de comando linux em /boot/grub/grub.cfg pode especificar root=/dev/md1. Nota Os dispositivos de troca deveriam ser especificados no arquivo /etc/fstab normalmente. O núcleo normalmente distribui os dados de troca entre vários arquivos de troca e não deveria fazer parte de uma matriz RAID. Para mais opções e detalhes de gerenciamento de dispositivos RAID, consulte man mdadm. Detalhes adicionais para monitorar matrizes RAID e para lidar com problemas podem ser encontrados no [2214]Linux RAID Wiki. mdadm-4.3 Introdução ao mdadm O pacote mdadm contém ferramentas de administração para RAID de software. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2215]https://www.kernel.org/pub/linux/utils/raid/mdadm/mdadm-4.3.t ar.xz * Transferência (FTP): * 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 Dependências do mdadm Opcionais Um [2216]MTA Configuração do Núcleo Habilite as seguintes opções na configuração do núcleo e recompile o núcleo, se necessário. Somente os tipos de RAID desejados são exigidos. Device Drivers ---> [*] Multiple devices driver support (RAID and LVM) ---> [MD] <*/M> RAID support [BLK_DEV_MD] [*] Autodetect RAID arrays during kernel boot [MD_AUTODETECT] # Only the RAID types desired are required: < /*/M> RAID-0 (striping) mode [MD_RAID0] < /*/M> RAID-1 (mirroring) mode [MD_RAID1] < /*/M> RAID-10 (mirrored striping) mode [MD_RAID10] < /*/M> RAID-4/RAID-5/RAID-6 mode [MD_RAID456] Instalação do mdadm Construa o mdadm executando o seguinte comando: make Esse pacote não vem com uma suíte de teste funcional. Agora, como o(a) usuário(a) root: make BINDIR=/usr/sbin install Explicações do Comando make everything: Esse alvo opcional cria aplicativos extras, particularmente uma versão vinculada estaticamente do mdadm. Isso precisa ser instalado manualmente. Conteúdo Aplicativos Instalados: mdadm e mdmon Bibliotecas Instaladas: Nenhum(a) Diretório Instalado: Nenhum(a) Descrições Curtas mdadm gerencia dispositivos MD, também conhecidos como RAID de Software do Linux mdmon monitora matrizes de metadados externos MD ntfs-3g-2022.10.3 Introdução ao Ntfs-3g Nota Um novo controlador de leitura e gravação para NTFS, chamado NTFS3, foi adicionado ao núcleo Linux desde o lançamento 5.15. O desempenho do NTFS3 é muito melhor que o do NTFS-3G. Para habilitar o NTFS3, habilite as seguintes opções na configuração do núcleo e recompile o núcleo, se necessário: File systems ---> DOS/FAT/EXFAT/NT Filesystems ---> <*/M> NTFS Read-Write file system support [NTFS3_FS] Para garantir que o comando mount use NTFS3 para partições NTFS, crie um script vinculador: cat > /usr/sbin/mount.ntfs << "EOF" && #!/bin/sh exec mount -t ntfs3 "$@" EOF chmod -v 755 /usr/sbin/mount.ntfs Com o suporte do núcleo disponível, o ntfs-3g é necessário somente se você precisar dos utilitários oriundos dele (por exemplo, para criar sistemas de arquivos NTFS). O pacote Ntfs-3g contém um controlador estável, de leitura e gravação e de código aberto para partições NTFS. As partições NTFS são usadas pela maioria dos sistemas operacionais da Microsoft. O Ntfs-3g permite que você monte partições NTFS no modo de leitura e gravação a partir do seu sistema Linux. Ele usa o módulo do núcleo FUSE para poder implementar o suporte NTFS no espaço do(a) usuário(a). O pacote também contém vários utilitários úteis para manipular partições NTFS. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2217]https://tuxera.com/opensource/ntfs-3g_ntfsprogs-2022.10.3.tgz * Transferência (FTP): * 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 Dependências do Ntfs-3g Opcionais [2218]fuse 2.x (isso desabilita as montagens do(a) usuário(a)) Configuração do Núcleo Habilite as seguintes opções na configuração do núcleo e recompile o núcleo se necessário: File systems ---> <*/M> FUSE (Filesystem in Userspace) support [FUSE_FS] Observe que isso só é necessário para montar partições NTFS com ntfs-3g. Se, ao invés, você usará o controlador NTFS3 intra núcleo para montar partições NTFS (como os(as) editores(as) do BLFS recomendam), você pode ignorar esse item de configuração. Instalação do Ntfs-3g Instale Ntfs-3g executando os seguintes comandos: ./configure --prefix=/usr \ --disable-static \ --with-fuse=internal \ --docdir=/usr/share/doc/ntfs-3g-2022.10.3 && make Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) root: make install && É recomendável usar o controlador NTFS3 interno ao núcleo para montar sistemas de arquivos NTFS, em vez do ntfs-3g (veja-se a observação no início desta página). No entanto, se você quiser, de qualquer maneira, usar o ntfs-3g para montar os sistemas de arquivos NTFS, [então] crie um link simbólico para o comando mount: ln -sv ../bin/ntfs-3g /usr/sbin/mount.ntfs && ln -sv ntfs-3g.8 /usr/share/man/man8/mount.ntfs.8 Explicações do Comando --disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas. --with-fuse=internal: Essa chave força dinamicamente o ntfs-3g a usar uma cópia interna da biblioteca fuse-2.x. Isso é exigido se você deseja permitir que os(as) usuários(as) montem partições NTFS. --disable-ntfsprogs: Desabilita a instalação de vários utilitários usados para manipular partições NTFS. chmod -v 4755 /usr/bin/ntfs-3g: Tornar mount.ntfs setuid root permite que usuários(as) não root montem partições NTFS. Usando o Ntfs-3g Para montar uma partição do Windows em tempo de inicialização, coloque uma linha como esta em /etc/fstab: /dev/sda1 /mnt/windows auto defaults 0 0 Para permitir que os(as) usuários(as) montem um pendrive com um sistema de arquivos NTFS nele, coloque uma linha semelhante a esta (mude sdc1 para o que um pendrive seria em seu sistema) em /etc/fstab: /dev/sdc1 /mnt/usb auto user,noauto,umask=0,utf8 0 0 Para que um(a) usuário(a) possa montar o pendrive, ele(a) precisará ser capaz de escrever em /mnt/usb; portanto, como o(a) usuário(a) root: chmod -v 777 /mnt/usb Conteúdo Aplicativos Instalados: lowntfs-3g, mkfs.ntfs, mkntfs, mount.lowntfs-3g, mount.ntfs, mount.ntfs-3g, ntfs-3g, ntfs-3g.probe, ntfscat, ntfsclone, ntfscluster, ntfscmp, ntfscp, ntfsfix, ntfsinfo, ntfslabel, ntfsls, ntfsresize e ntfsundelete Biblioteca Instalada: libntfs-3g.so Diretórios Instalados: /usr/include/ntfs-3g e /usr/share/doc/ntfs-3g Descrições Curtas lowntfs-3g é semelhante ao ntfs-3g, mas usa a interface de baixo nível Fuse mkfs.ntfs é um link simbólico para mkntfs mkntfs cria um sistema de arquivos NTFS mount.lowntfs-3g é um link simbólico para lowntfs-3g mount.ntfs monta um sistema de arquivos NTFS mount.ntfs-3g é um link simbólico para ntfs-3g ntfs-3g é um controlador NTFS, que consegue criar, remover, renomear, mover arquivos, diretórios, links rígidos e fluxos. Ele também consegue ler e gravar arquivos, incluindo fluxos, arquivos esparsos e arquivos comprimidos de forma transparente. Ele também consegue lidar com arquivos especiais, como links simbólicos, dispositivos e FIFOs; além disso, fornece gerenciamento padrão de propriedade e de permissões de arquivos, incluindo ACLs POSIX ntfs-3g.probe testa se um volume NTFS é montável somente leitura ou leitura/gravação e sai com um valor de status correspondente. O volume pode ser um dispositivo de bloco ou arquivo de imagem ntfscluster identifica arquivos em uma região especificada de um volume NTFS ntfscp copia um arquivo para um volume NTFS ntfsfix corrige erros comuns e força o Windows a verificar uma partição NTFS ntfsls lista o conteúdo do diretório em um sistema de arquivos NTFS ntfscat imprime arquivos e fluxos NTFS na saída gerada padrão ntfsclone clona um sistema de arquivos NTFS ntfscmp compara dois sistemas de arquivos NTFS e mostra as diferenças ntfsinfo despeja os atributos de um arquivo ntfslabel exibe ou muda o rótulo em um sistema de arquivos NTFS ntfsresize redimensiona um sistema de arquivos NTFS sem perda de dados ntfsundelete recupera um arquivo deletado a partir de um volume NTFS libntfs-3g.so contém as funções da API do Ntfs-3g gptfdisk-1.0.10 Introdução ao gptfdisk O pacote gptfdisk é um conjunto de aplicativos para criação e manutenção de unidades de disco GUID Partition Table (GPT). Um disco particionado GPT é exigido para unidades maiores que 2 TB e é um substituto moderno para unidades de disco particionadas do BIOS legado do PC que usam um Master Boot Record (MBR). O aplicativo principal, gdisk, tem uma interface semelhante ao aplicativo clássico fdisk. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2219]https://downloads.sourceforge.net/gptfdisk/gptfdisk-1.0.10.ta r.gz * Transferência (FTP): * Soma de verificação MD5 da transferência: 1970269eb7a97560e238611524b7797a * Tamanho da transferência: 216 KB * Espaço em disco estimado exigido: 2,4 MB * Tempo de construção estimado: menos que 0,1 UPC (adicionar 0,2 UPC para testes) Transferências Adicionais * Remendo recomendado: [2220]https://www.linuxfromscratch.org/patches/blfs/12.3/gptfdisk-1 .0.10-convenience-1.patch Dependências do gptfdisk Exigidas [2221]popt-1.19 Opcionais [2222]ICU-76.1 Instalação do gptfdisk O pacote gptfdisk vem com um Makefile rudimentar. Primeiro, nós o atualizamos para fornecer uma interface simples de construção e instalação e corrigimos o local de um arquivo de cabeçalho e corrigimos alguns problemas menores de local. Instale o gptfdisk executando os seguintes comandos: patch -Np1 -i ../gptfdisk-1.0.10-convenience-1.patch && sed -i 's|ncursesw/||' gptcurses.cc && sed -i 's|sbin|usr/sbin|' Makefile && make Para testar os resultados, emita: make test. Agora, como o(a) usuário(a) root: make install Explicações do Comando patch -Np1 ...: Esse remendo modifica o arquivo Makefile, de forma que ele forneça um alvo “install”. Conteúdo Aplicativos Instalados: cgdisk, gdisk, fixparts e sgdisk Descrições Curtas cgdisk é uma ferramenta baseada em ncurses para manipular partições GPT gdisk é uma ferramenta interativa em modo texto para manipular partições GPT fixparts repara partições de disco baseadas em MBR mal formatadas sgdisk é um aplicativo de manipulação de partição para partições GPT semelhante ao sfdisk parted-3.6 Introdução ao parted O pacote Parted é uma ferramenta de particionamento de disco e de redimensionamento de partição. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2223]https://ftp.gnu.org/gnu/parted/parted-3.6.tar.xz * Transferência (FTP): * Soma de verificação MD5 da transferência: 93d2d8f22baebc5eb65b85da05a79e4e * Tamanho da transferência: 1,8 MB * Espaço em disco estimado exigido: 29 MB (adicionais 3 MB para os testes e adicionais 2 MB para a documentação opcional PDF e Postscript) * Tempo de construção estimado: 0,3 UPC (3,6 UPC adicionais para os testes) Dependências do Parted Recomendadas [2224]LVM2-2.03.30 (device-mapper, exigido se construir udisks) Opcionais [2225]dosfstools-4.2, [2226]texlive-20240312 (ou [2227]install-tl-unx) e [2228]Digest::CRC (para testes) Configuração Opcional do Núcleo para Testes Cerca de 20% mais testes são executados se o seguinte módulo do núcleo for construído: Device Drivers ---> SCSI device support ---> [*] SCSI low-level drivers ---> [SCSI_LOWLEVEL] SCSI debugging host and device simulator [SCSI_DEBUG] Instalação do parted Instale Parted executando os seguintes comandos: ./configure --prefix=/usr --disable-static && make && make -C doc html && makeinfo --html -o doc/html doc/parted.texi && makeinfo --plaintext -o doc/parted.txt doc/parted.texi Se você tiver [2229]texlive-20240312 instalado e desejar criar documentação em PDF e Postscript, [então] emita os seguintes comandos: cp build-aux/texinfo.tex doc && texi2pdf -o doc/parted.pdf doc/parted.texi && texi2dvi -o doc/parted.dvi doc/parted.texi && dvips -o doc/parted.ps doc/parted.dvi Para testar os resultados, emita, como o(a) usuário(a) root: make check Nota Muitos testes são pulados se não executados como o(a) usuário(a) root. Agora, como o(a) usuário(a) root: make install && install -v -m755 -d /usr/share/doc/parted-3.6/html && install -v -m644 doc/html/* \ /usr/share/doc/parted-3.6/html && install -v -m644 doc/{FAT,API,parted.{txt,html}} \ /usr/share/doc/parted-3.6 Instale a documentação opcional PDF e Postscript emitindo o seguinte comando como o(a) usuário(a) root: install -v -m644 doc/FAT doc/API doc/parted.{pdf,ps,dvi} \ /usr/share/doc/parted-3.6 Explicações do Comando --disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas. --disable-device-mapper: Essa opção desabilita o suporte a mapeador de dispositivos. Adicione esse parâmetro se você não tiver instalado o LVM2. Conteúdo Aplicativos Instalados: parted e partprobe Bibliotecas Instaladas: libparted.so e libparted-fs-resize.so Diretórios Instalados: /usr/include/parted e /usr/share/doc/parted-3.6 Descrições Curtas parted é um aplicativo de manipulação de partição partprobe informa o Sistema Operacional a respeito de mudanças da tabela de partição libparted.so contém as funções da API do Parted smartmontools-7.4 Introdução ao smartmontools O pacote smartmontools contém aplicativos utilitários (smartctl, smartd) para controlar/monitorar sistemas de armazenamento usando o Self-Monitoring, Analysis and Reporting Technology System (S.M.A.R.T.) embutido nos discos ATA e SCSI mais modernos. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2230]https://downloads.sourceforge.net/smartmontools/smartmontools -7.4.tar.gz * Transferência (FTP): * 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 Dependências do smartmontools Opcionais (tempo de execução) [2231]cURL-8.12.1 ou [2232]Lynx-2.9.2 ou [2233]Wget-1.25.0 (ferramentas de transferência) e [2234]GnuPG-2.4.7 (discos rígidos encriptados) Instalação do smartmontools Instale smartmontools executando os seguintes comandos: ./configure --prefix=/usr \ --sysconfdir=/etc \ --with-initscriptdir=no \ --with-libsystemd=no \ --docdir=/usr/share/doc/smartmontools-7.4 && make Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) root: make install Explicações do Comando --with-initscriptdir=no: Essa chave suprime o script padrão de inicialização. Veja-se abaixo para o script do BLFS. --with-libsystemd=no: Essa chave desabilita o suporte para o sistema de notificação sd-notify fornecido pelo systemd. Configurando smartmontools Arquivo de Configuração /etc/smartd.conf Informação de Configuração Consulte os comentários embutidos em /etc/smartd.conf para instruções detalhadas a respeito de personalizar o processo de segundo plano smartd. Conjunto de Comandos Sequenciais de Inicialização Se você desejar que o processo de segundo plano smartd inicie automaticamente quando o sistema for inicializado, [então] instale o script de iniciação /etc/rc.d/init.d/smartd incluído no pacote [2235]blfs-bootscripts-20250225. make install-smartd Conteúdo Aplicativos Instalados: smartctl, smartd e update-smart-drivedb Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /usr/share/smartmontools, /usr/share/doc/smartmontools-7.4 e /etc/smartd_warning.d Descrições Curtas smartctl é o utilitário de controle e de monitoramento para Discos SMART smartd é o processo de segundo plano de monitoramento de disco SMART update-smart-drivedb é a ferramenta de atualização para a base de dados de unidade smartmontools sshfs-3.7.3 Introdução ao Sshfs O pacote Sshfs contém um cliente de sistema de arquivos baseado no File Transfer Protocol do SSH. Isso é útil para montar um computador remoto ao qual você tenha acesso ssh como um sistema de arquivos local. Isso permite que você arraste e solte arquivos ou execute comandos de shell nos arquivos remotos como se estivessem em seu computador local. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2236]https://github.com/libfuse/sshfs/releases/download/sshfs-3.7. 3/sshfs-3.7.3.tar.xz * Transferência (FTP): * 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 Dependências do Sshfs Exigidas [2237]Fuse-3.16.2, [2238]GLib-2.82.5 e [2239]OpenSSH-9.9p2. Opcionais [2240]docutils-0.21.2 (exigido para construir a página de manual) Instalação do Sshfs Instale Sshfs executando os seguintes comandos: mkdir build && cd build && meson setup --prefix=/usr --buildtype=release .. && ninja Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) root: ninja install Usando o Sshfs Para montar um servidor SSH, você precisa estar apto(a) a se logar no servidor. Por exemplo, para montar sua pasta "home" remota no ~/caminho_de_exemplo local (o diretório precisa existir e você precisa ter permissões para gravar nele): sshfs exemplo.com:/home/userid ~/caminho_de_exemplo Quando tiver terminado o trabalho e quiser desmontá-lo novamente: fusermount3 -u ~/exemplo Você também consegue montar um sistema de arquivos sshfs na inicialização adicionando uma entrada semelhante à seguinte no arquivo /etc/fstab: id_de_usuario@exemplo.com:/caminho /media/caminho fuse.sshfs _netdev,IdentityFil e=/home/id_de_usuario/.ssh/id_rsa 0 0 Veja-se man 1 sshfs e man 8 mount.fuse3 para todas as opções disponíveis de montagem. Conteúdo Aplicativo Instalado: sshfs Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: Nenhum(a) Descrições Curtas sshfs monta um servidor ssh como um sistema de arquivos local xfsprogs-6.13.0 Introdução ao xfsprogs O pacote xfsprogs contém ferramentas de administração e de depuração para o sistema de arquivos XFS. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2241]https://www.kernel.org/pub/linux/utils/fs/xfs/xfsprogs/xfspro gs-6.13.0.tar.xz * Transferência (FTP): * 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) Dependências do xfsprogs Exigidas [2242]inih-58 e [2243]liburcu-0.15.1 Opcionais [2244]ICU-76.1 (para escaneamento de nome Unicode em xfs_scrub) Configuração do Núcleo Habilite as seguintes opções na configuração do núcleo e recompile o núcleo: File systems ---> <*/M> XFS filesystem support [XFS_FS] Instalação do xfsprogs Primeiro, adapte o conjunto de comandos sequenciais configure para ICU-76: sed -i 's/icu-i18n/icu-uc &/' configure Instale xfsprogs executando os seguintes comandos: case "$(uname -m)" in i?86) sed -e "s/static long filesize/static off_t filesize/" -i mkfs/proto.c ; ; esac && make DEBUG=-DNDEBUG \ INSTALL_USER=root \ INSTALL_GROUP=root \ LOCAL_CONFIGURE_OPTIONS="--localstatedir=/var" Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) root: make PKG_DOC_DIR=/usr/share/doc/xfsprogs-6.13.0 install && make PKG_DOC_DIR=/usr/share/doc/xfsprogs-6.13.0 install-dev && rm -rfv /usr/lib/libhandle.{a,la} Explicações do Comando sed ... static long filesize...: Esse sed corrige um problema que aparece ao se construir em sistemas de 32 bits, somente. Existe uma descorrespondência no protótipo e no cabeçalho da função, o que resulta em erro nessa arquitetura. DEBUG=-DNDEBUG: Desliga os símbolos de depuração. INSTALL_USER=root INSTALL_GROUP=root: Isso configura o(a) proprietário(a) e o grupo dos arquivos instalados. LOCAL_CONFIGURE_OPTIONS="--localstatedir=/var": Isso configura o diretório de estado como /var, impedindo que /usr/var seja criado. OPTIMIZER="...": Adicionar esse parâmetro ao final do comando make substitui as configurações padrão de otimização. Conteúdo Aplicativos Instalados: fsck.xfs, mkfs.xfs, xfs_admin, xfs_bmap, xfs_copy, xfs_db, xfs_estimate, xfs_freeze, xfs_fsr, xfs_growfs, xfs_info, xfs_io, xfs_logprint, xfs_mdrestore, xfs_metadump, xfs_mkfile, xfs_ncheck, xfs_property, xfs_protofile, xfs_quota, xfs_repair, xfs_rtcp, xfs_scrub, xfs_scrub_all e xfs_spaceman Bibliotecas Instaladas: libhandle.so Diretórios Instalados: /usr/include/xfs, /usr/lib/xfsprogs, /usr/share/xfsprogs e /usr/share/doc/xfsprogs-6.13.0 Descrições Curtas fsck.xfs simplesmente sai com um status zero, pois as partições XFS são verificadas ao tempo da montagem mkfs.xfs constrói um sistema de arquivos XFS xfs_admin muda os parâmetros de um sistema de arquivos XFS xfs_bmap imprime o mapeamento de bloco para um arquivo XFS xfs_copy copia o conteúdo de um sistema de arquivos XFS para um ou mais destinos em paralelo xfs_estimate para cada argumento de diretório, estima o espaço que o diretório ocuparia se fosse copiado para um sistema de arquivos XFS (não cruza os pontos de montagem) xfs_db é usado para depurar um sistema de arquivos XFS xfs_freeze suspende o acesso a um sistema de arquivos XFS xfs_fsr aplicável somente a sistemas de arquivos XFS, melhora a organização de sistemas de arquivos montados; o algoritmo de reorganização opera sobre um arquivo por vez, compactando ou, do contrário, melhorando o esquema das extensões de arquivo (blocos contíguos de dados de arquivo) xfs_growfs expande um sistema de arquivos XFS xfs_info é equivalente a invocar xfs_growfs, mas especificando que nenhuma mudança no sistema de arquivos é para ser feita xfs_io é uma ferramenta de depuração, como xfs_db, mas tem como objetivo examinar o caminho regular de Entrada/Saída de arquivo em vez do próprio volume cru XFS xfs_logprint imprime o registro de um sistema de arquivos XFS xfs_mdrestore restaura uma imagem do meta despejo XFS para uma imagem do sistema de arquivos xfs_metadump copia os metadados do sistema de arquivos XFS para um arquivo xfs_mkfile cria um arquivo XFS, preenchido com zeros por padrão xfs_ncheck gera nomes de caminhos a partir de números de "inode" para um sistema de arquivos XFS xfs_property examina e edita propriedades acerca de um sistema de arquivos XFS xfs_protofile cria um protótipo para uso com mkfs.xfs xfs_quota é um utilitário para informar e para editar vários aspectos das cotas do sistema de arquivos xfs_repair repara sistemas de arquivos XFS corrompidos ou danificados xfs_rtcp copia um arquivo para a partição em tempo real em um sistema de arquivos XFS xfs_scrub verifica e repara o conteúdo de um sistema de arquivos XFS montado xfs_scrub_all limpa todos os sistemas de arquivos XFS montados xfs_spaceman informa e controla o uso de espaço livre em um sistema de arquivos XFS libhandle.so contém funções específicas do XFS que fornecem uma maneira de realizar certas operações do sistema de arquivos sem usar um descritor de arquivo para acessar objetos do sistema de arquivos Pacotes para Inicialização UEFI efivar-39 Introdução ao efivar O pacote efivar fornece ferramentas e bibliotecas para manipular variáveis EFI. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2245]https://github.com/rhboot/efivar/archive/39/efivar-39.tar.gz * Transferência (FTP): * Soma de verificação MD5 da transferência: a8fc3e79336cd6e738ab44f9bc96a5aa * Tamanho da transferência: 456 KB * Espaço em disco estimado exigido: 21 MB * Tempo de construção estimado: menos que 0,1 UPC Dependências do efivar Opcionais [2246]mandoc (para a página de manual do efisecdb) Instalação do efivar Nota Esse pacote não pode funcionar corretamente em um sistema de 32 bits com uma implementação de UEFI de 64 bits. Não instale esse pacote (ou o efibootmgr) em um sistema de 32 bits, a menos que você esteja absolutamente seguro(a) de que tem uma implementação UEFI de 32 bits, o que é muito raro na prática. Construa o efivar com os seguintes comandos: make ENABLE_DOCS=0 A suíte de teste desse pacote é perigosa. Executá-la pode deflagrar erros de firmware e tornar seu sistema inutilizável sem usar algum hardware especial para reprogramar o firmware. Agora, como o(a) usuário(a) root: make install ENABLE_DOCS=0 LIBDIR=/usr/lib Para evitar uma dependência rígida em relação ao [2247]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 [2248]mandoc. Ainda como o(a) usuário(a) root, instale essas páginas de manual: install -vm644 docs/efivar.1 /usr/share/man/man1 && install -vm644 docs/*.3 /usr/share/man/man3 Explicações do Comando ENABLE_DOCS=0: Desabilite a geração de páginas de manual para a finalidade de permitir construir este pacote sem o [2249]mandoc instalado. LIBDIR=/usr/lib: Essa opção substitui o diretório padrão da biblioteca do pacote (/usr/lib64, que não é usado pelo LFS). Conteúdo Aplicativos Instalados: efisecdb e efivar Bibliotecas Instaladas: libefiboot.so, libefisec.so e libefivar.so Diretórios Instalados: /usr/include/efivar Descrições Curtas efisecdb é um utilitário para gerenciar listas de assinatura UEFI efivar é uma ferramenta para manipular variáveis UEFI libefiboot.so é uma biblioteca usada pelo efibootmgr libefisec.so é uma biblioteca para gerenciar listas de assinatura UEFI libefivar.so é uma biblioteca para a manipulação de variáveis EFI efibootmgr-18 Introdução ao efibootmgr O pacote efibootmgr fornece ferramentas e bibliotecas para manipular variáveis EFI. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2250]https://github.com/rhboot/efibootmgr/archive/18/efibootmgr-18 .tar.gz * Transferência (FTP): * 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 Dependências do efibootmgr Exigidas [2251]efivar-39 e [2252]popt-1.19 Instalação do efibootmgr Construa o efibootmgr com os seguintes comandos: make EFIDIR=LFS EFI_LOADER=grubx64.efi Esse pacote não tem uma suíte de teste. Agora, como o(a) usuário(a) root: make install EFIDIR=LFS Explicações do Comando EFIDIR=LFS: Essa opção especifica o nome do subdiretório da distribuição sob /boot/efi/EFI. O sistema de construção desse pacote precisa que essa seja configurada explicitamente. EFI_LOADER=grubx64.efi: Essa opção especifica o nome do carregador padrão de inicialização EFI. Ele está configurado para corresponder ao carregador de inicialização EFI fornecido pelo GRUB. Conteúdo Aplicativos Instalados: efibootdump e efibootmgr Descrições Curtas efibootdump é uma ferramenta para exibir opções individuais de inicialização UEFI, a partir de um arquivo ou de uma variável UEFI efibootmgr é uma ferramenta para manipular o Gerenciador de Inicialização UEFI GRUB-2.12 para EFI Introdução ao GRUB O pacote GRUB fornece o GRand Unified Bootloader. Nesta página, ele será construído com suporte UEFI, que não está habilitado para o GRUB construído no LFS. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2253]https://ftp.gnu.org/gnu/grub/grub-2.12.tar.xz * Transferência (FTP): * Soma de verificação MD5 da transferência: 60c564b1bdc39d8e43b3aab4bc0fb140 * Tamanho da transferência: 6,4 MB * Espaço em disco estimado exigido: 183 MB * Tempo de construção estimado: 0,4 UPC (no LFS de 64 bits, usando paralelismo=4) Transferências Adicionais Dados opcionais de fonte Unicode para o menu do GRUB * Transferência (HTTP): [2254]https://unifoundry.com/pub/unifont/unifont-16.0.01/font-build s/unifont-16.0.01.pcf.gz * Soma de verificação MD5 da transferência: 007ffa7aab47ed3f270caee84d12148b * Tamanho da transferência: 1,3 MB Dependências do GRUB Recomendadas [2255]efibootmgr-18 (tempo de execução) Opcionais [2256]FreeType-2.13.3, [2257]Fuse-3.16.2 e [2258]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 [2259]GCC-14.2.0 com a chave --enable-targets=all posposta ao comando ../configure. Instalação do GRUB Primeiro, instale os dados da fonte como o(a) usuário(a) root se você os tiver baixado e tiver instalado a dependência opcional [2260]FreeType-2.13.3: mkdir -pv /usr/share/fonts/unifont && gunzip -c ../unifont-16.0.01.pcf.gz > /usr/share/fonts/unifont/unifont.pcf Atenção Desconfigure quaisquer variáveis de ambiente que possivelmente afetem a construção: unset {C,CPP,CXX,LD}FLAGS Não tente “ajustar” esse pacote com sinalizadores personalizados de compilação: esse pacote é um carregador de inicialização, com operações de baixo nível no código-fonte, as quais provavelmente sejam quebradas por algumas otimizações agressivas. Adicionar um arquivo ausente proveniente do tarball de lançamento: echo depends bli part_gpt > grub-core/extra_deps.lst Construa o GRUB com os seguintes comandos: ./configure --prefix=/usr \ --sysconfdir=/etc \ --disable-efiemu \ --with-platform=efi \ --target=x86_64 \ --disable-werror && make Esse pacote não tem uma suíte de teste que forneça resultados significativos. Agora, se você tiver pulado o pacote GRUB do LFS, como o(a) usuário(a) root, instale o GRUB e pule as instruções restantes nesta seção: make install && mv -v /etc/bash_completion.d/grub /usr/share/bash-completion/completions Se você não tiver ignorado o pacote GRUB do LFS, como o(a) usuário(a) root, instale somente os componentes não instalados a partir do pacote GRUB do LFS: make -C grub-core install Se você tiver instalado os dados opcionais de fonte e [2261]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 [2262]Fuse-3.16.2 e [2263]LVM2-2.03.30 estiverem instalados, instale também o programa grub-mount: install -vm755 grub-mount /usr/bin/ Explicações do Comando --with-platform=efi: Garante a construção do GRUB com EFI habilitado. --target=x86_64: Garante a construção do GRUB para x86_64, mesmo se construir em um sistema LFS de 32 bits. A maioria do firmware EFI em x86_64 não suporta carregadores de inicialização de 32 bits. --target=i386: Algumas plataformas x86 de 32 bits tem suporte EFI. E algumas plataformas x86_64 tem uma implementação EFI de 32 bits, mas são muito antigas e raras. Use isso ao invés de --target=x86_64 se você estiver absolutamente seguro(a) de que o LFS está executando em tal sistema. Configurando o GRUB Usar o GRUB para tornar o sistema LFS inicializável na plataforma UEFI será discutido em [2264]Usando o GRUB para Configurar o Processo de Inicialização com UEFI. Conteúdo Uma lista dos arquivos instalados, juntamente com descrições curtas deles, pode ser encontrada em [2265]../../../../lfs/view/12.3/chapter08/grub.html#contents-gRUB. Listados abaixo estão os programas recém-instalados, juntamente com descrições curtas. Aplicativos Instalados: grub-mkfont e grub-mount (opcional) Diretórios Instalados: /usr/lib/grub/x86_64-efi Descrições Curtas grub-mkfont converte formatos de arquivo de fontes comuns em PF2 grub-mount é uma ferramenta de depuração para controlador de sistema de arquivos Usando o GRUB para Configurar o Processo de Inicialização com UEFI Desligar a Inicialização Segura O BLFS não tem os pacotes essenciais para suportar a Inicialização Segura. Para configurar o processo de inicialização com GRUB e UEFI no BLFS, a Inicialização Segura precisa ser desligada a partir interface de configuração do firmware. Leia a documentação fornecida pelo(a) fabricante do seu sistema para descobrir como. Configuração do Núcleo para Suporte a UEFI Habilite as seguintes opções na configuração do núcleo e recompile o núcleo se necessário: Processor type and features ---> [*] EFI runtime service support [EFI] [*] EFI stub support [EFI_STUB] -*- Enable the block layer ---> [BLOCK] Partition Types ---> [ /*] Advanced partition selection [PARTITION_ADVANCED] [*] EFI GUID Partition support [EFI_PARTITION] File systems ---> DOS/FAT/EXFAT/NT Filesystems ---> <*/M> VFAT (Windows-95) fs support [VFAT_FS] Pseudo filesystems ---> <*/M> EFI Variable filesystem [EFIVAR_FS] -*- Native language support ---> [NLS] <*/M> Codepage 437 (United States, Canada) [NLS_CODEPAGE_437] <*/M> NLS ISO 8859-1 (Latin 1; Western European Languages) [NLS_ISO8859_1] O significado das opções de configuração: CONFIG_PARTITION_ADVANCED Se não estiver habilitado, CONFIG_EFI_PARTITION será habilitado automaticamente. Mas quando estiver habilitado, você precisa configurar CONFIG_EFI_PARTITION como habilitado também. Criar um Disco de Inicialização de Emergência Garanta que um disco de inicialização de emergência esteja pronto para “resgatar” o sistema no caso do sistema se tornar não inicializável. Para produzir um disco de inicialização de emergência com o GRUB para um sistema baseado em EFI, encontre uma unidade flash USB sobressalente e crie um sistema de arquivos vfat nela. Instale o [2266]dosfstools-4.2 primeiro, então, como o(a) usuário(a) root: Atenção O comando a seguir apagará todos os diretórios e arquivos na partição. Certifique-se de que sua unidade flash USB não contém dados que serão necessários e mude sdx1 para o nó de dispositivo correspondente à primeira partição da unidade flash USB. Seja cuidado(a) para não sobrescrever sua unidade rígida com um erro de digitação! mkfs.vfat /dev/sdx1 Ainda como o(a) usuário(a) root, use o utilitário fdisk para configurar a primeira partição da unidade flash USB para ser uma partição do “sistema EFI” (mude sdx para o nó de dispositivo correspondente à sua unidade flash USB): fdisk /dev/sdx Welcome to fdisk (util-linux 2.39.1). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Command (m for help): t Partition number (1-9, default 9): 1 Partition type or alias (type L to list all): uefi Changed type of partition 'Linux filesystem' to 'EFI System'. Command (m for help): w The partition table has been altered. Syncing disks. Ainda como o(a) usuário(a) root, crie um ponto de montagem para a partição EFI na unidade flash USB e monte-o: mount --mkdir -v -t vfat /dev/sdx1 -o codepage=437,iocharset=iso8859-1 \ /mnt/rescue Instale o GRUB para EFI na partição: grub-install --target=x86_64-efi --removable \ --efi-directory=/mnt/rescue --boot-directory=/mnt/rescue Desmonte a partição: umount /mnt/rescue Agora a unidade flash USB pode ser usada como um disco de inicialização de emergência em qualquer plataforma UEFI x86-64. Para saber como selecionar essa unidade flash como o dispositivo de inicialização, leia o manual da tua placa-mãe ou laptop. Ele inicializará o sistema e mostrará o shell do GRUB. Em seguida, você pode digitar comandos para inicializar teu sistema operacional a partir da unidade rígida. Encontrar ou Criar a Partição do Sistema EFI Em sistemas baseados em EFI, os carregadores de inicialização são instalados em uma partição especial FAT32 chamada EFI System Partition (ESP). Se o seu sistema suportar EFI e uma versão recente de alguma distribuição Linux ou Windows estiver pré-instalada, [então] é provável que o ESP já tenha sido criada. Como o(a) usuário(a) root, liste todas as partições em sua unidade rígida (substitua sda pelo dispositivo correspondente à unidade rígida apropriada): fdisk -l /dev/sda A coluna “Type” da ESP deveria ser EFI System. Se o sistema ou a unidade rígida for novo(a) ou essa for a primeira instalação de um Sistema Operacional inicializado por UEFI no sistema, a ESP possivelmente não exista. Nesse caso, instale [2267]dosfstools-4.2 primeiro. Em seguida, crie uma nova partição, produza um sistema de arquivos vfat nela e configure o tipo de partição como “EFI system”. Vejam-se as instruções para o dispositivo de inicialização de emergência acima como uma referência. Atenção Algumas (antigas) implementações UEFI possivelmente exijam que a ESP seja a primeira partição no disco. Agora, como o(a) usuário(a) root, crie o ponto de montagem para a ESP e monte-a (substitua sda1 pelo nó de dispositivo correspondente à ESP): mount --mkdir -v -t vfat /dev/sda1 -o codepage=437,iocharset=iso8859-1 \ /boot/efi Se você quiser montar a ESP automaticamente durante a inicialização do sistema, como o(a) usuário(a) root, adicione uma entrada para a ESP em /etc/fstab: cat >> /etc/fstab << EOF /dev/sda1 /boot/efi vfat codepage=437,iocharset=iso8859-1 0 1 EOF Configuração Mínima de Inicialização com GRUB e EFI Em sistemas baseados em UEFI, o GRUB funciona instalando um aplicativo EFI (um tipo especial de executável) na ESP. O firmware EFI pesquisará carregadores de inicialização em aplicativos EFI a partir de entradas de inicialização registradas em variáveis EFI e, adicionalmente, um caminho rigidamente codificado, EFI/BOOT/BOOTX64.EFI. Normalmente, um carregador de inicialização deveria ser instalado em um caminho personalizado e o caminho deveria ser registrado nas variáveis EFI. O uso do caminho codificado rigidamente deveria ser evitado, se possível. No entanto, em alguns casos, temos que usar o caminho codificado rigidamente: * O sistema não foi inicializado com EFI ainda, tornando as variáveis EFI inacessíveis. * O firmware EFI é de 64 bits, mas o sistema LFS é de 32 bits, tornando as variáveis EFI inacessíveis porque o núcleo não consegue invocar serviços de tempo de execução EFI com um comprimento diferente de endereço virtual. * O LFS é construído para um Live USB, de forma que não podemos confiar nas variáveis EFI, as quais são armazenadas em NVRAM ou em EEPROM na máquina local. * Você não consegue ou não quer instalar o efibootmgr para manipular entradas de inicialização em variáveis EFI. Nesses casos, siga estas instruções para instalar o aplicativo EFI do GRUB no caminho codificado rigidamente e faça uma configuração mínima de inicialização. Caso contrário, é melhor pular à frente e definir a configuração de inicialização normalmente. Para instalar o GRUB com o aplicativo EFI no caminho rigidamente codificado EFI/BOOT/BOOTX64.EFI, primeiro certifique-se de que a partição de inicialização esteja montada em /boot e de que a ESP esteja montada em /boot/efi. Então, como o(a) usuário(a) root, execute o comando: Nota Este comando sobrescreverá /boot/efi/EFI/BOOT/BOOTX64.EFI. Ele possivelmente quebre um carregador de inicialização já instalado lá. Produza uma cópia de segurança dele se não tiver certeza. grub-install --target=x86_64-efi --removable Esse comando instalará o aplicativo EFI do GRUB no caminho rigidamente codificado /boot/efi/EFI/BOOT/BOOTX64.EFI, de forma que o firmware EFI consiga achá-lo e carregá-lo. Os arquivos restantes do GRUB são instalados no diretório /boot/grub e serão carregados pelo BOOTX64.EFI durante a inicialização do sistema. Nota O firmware EFI geralmente prefere os aplicativos EFI com um caminho armazenado em variáveis EFI ao aplicativo EFI no caminho codificado rigidamente. Portanto, você possivelmente precise invocar o menu de seleção de inicialização ou a interface de configuração de firmware para selecionar manualmente o GRUB recém-instalado na próxima inicialização. Leia-se o manual da sua placa-mãe ou laptop para aprender como. Se você tiver seguido as instruções nesta seção e configurou uma configuração mínima de inicialização, agora pule à frente para “Criando o Arquivo de Configuração do GRUB”. Montar o Sistema de Arquivos de Variáveis EFI A instalação do GRUB em uma plataforma UEFI exige que o sistema de arquivos de Variáveis EFI, efivarfs, esteja montado. Como o(a) usuário(a) root, monte-o se já não estiver montado: mountpoint /sys/firmware/efi/efivars || mount -v -t efivarfs efivarfs /sys/firmw are/efi/efivars Agora adicione uma entrada para o efivarfs em /etc/fstab, de forma que seja montado automaticamente durante a inicialização do sistema: cat >> /etc/fstab << EOF efivarfs /sys/firmware/efi/efivars efivarfs defaults 0 0 EOF Atenção Se o sistema não for inicializado com UEFI, [então] o diretório /sys/firmware/efi estará ausente. Nesse caso, você deveria inicializar o sistema no modo UEFI com o disco de inicialização de emergência ou usando uma configuração mínima de inicialização criada como acima, então montar o efivarfs e continuar. Finalizando a Configuração Em sistemas baseados em UEFI, o GRUB funciona instalando um aplicativo EFI (um tipo especial de executável) em /boot/efi/EFI/[id]/grubx64.efi, onde /boot/efi é o ponto de montagem da ESP e [id] é substituído por um identificador especificado na linha de comando do grub-install. O GRUB criará uma entrada nas variáveis EFI contendo o caminho EFI/[id]/grubx64.efi, de forma que o firmware EFI consiga encontrar o grubx64.efi e carregá-lo. O grubx64.efi é muito leve (136 KB com o GRUB-2.06), de forma que não usará muito espaço na ESP. Um tamanho típico da ESP é de 100 MB (para o gerenciador de inicialização do Windows, que usa cerca de 50 MB na ESP). Assim que o grubx64.efi tenha sido carregado pelo firmware, ele carregará os módulos do GRUB a partir da partição de inicialização. O local padrão é /boot/grub. Como o(a) usuário(a) root, instale os arquivos do GRUB em /boot/efi/EFI/LFS/grubx64.efi e em /boot/grub. Em seguida, configure a entrada de inicialização nas variáveis EFI: grub-install --bootloader-id=LFS --recheck Se a instalação for bem-sucedida, [então a saída gerada deveria ser: Installing for x86_64-efi platform. Installation finished. No error reported. Emita o comando efibootmgr | cut -f 1 para verificar novamente a configuração de inicialização EFI. Um exemplo da saída gerada é: BootCurrent: 0000 Timeout: 1 seconds BootOrder: 0005,0000,0002,0001,0003,0004 Boot0000* ARCH Boot0001* UEFI:CD/DVD Drive Boot0002* Windows Boot Manager Boot0003* UEFI:Removable Device Boot0004* UEFI:Network Device Boot0005* LFS Observe que 0005 é o primeiro no BootOrder e Boot0005 é LFS. Isso significa que, na próxima inicialização, a versão do GRUB instalada pelo LFS será usada para inicializar o sistema. Criando o Arquivo de Configuração do GRUB Gere o /boot/grub/grub.cfg para configurar o menu de inicialização do GRUB: cat > /boot/grub/grub.cfg << EOF # Begin /boot/grub/grub.cfg set default=0 set timeout=5 insmod part_gpt insmod ext2 set root=(hd0,2) insmod efi_gop insmod efi_uga if loadfont /boot/grub/fonts/unicode.pf2; then terminal_output gfxterm fi menuentry "GNU/Linux, Linux 6.13.2-lfs-12.3" { linux /boot/vmlinuz-6.13.2-lfs-12.3 root=/dev/sda2 ro } menuentry "Firmware Setup" { fwsetup } EOF Consulte-se [2268]o livro LFS para o conhecimento básico acerca do arquivo grub.cfg. (hd0,2), sda2 e 6.13.2-lfs-12.3 precisam corresponderem à tua configuração. As diretivas insmod efi_gop e insmod efi_uga carregam dois módulos para suporte de vídeo baseado em EFI. Na maioria dos sistemas, o módulo efi_gop é suficiente. O módulo efi_uga é útil somente para sistemas legados, mas é inofensivo carregá-lo de qualquer maneira. O suporte de vídeo é necessário para a diretiva terminal_output gfxterm realmente funcionar. A diretiva terminal_output gfxterm muda a resolução da tela do menu do GRUB para corresponder ao teu dispositivo de exibição. Isso quebrará a renderização se o arquivo de dados da fonte unicode.pf2 não estiver carregado, de forma que ele é protegido por uma diretiva if. Nota Da perspectiva do GRUB, os arquivos são relativos às partições usadas. Se você usou uma partição /boot separada, [então] remova /boot dos caminhos acima (para o núcleo e para unicode.pf2). Você também precisará mudar a linha "set root" para apontar para a partição de inicialização. A entrada Firmware Setup pode ser usada para entrar na interface de configuração fornecida pelo firmware (às vezes chamada de “Configuração do BIOS”). Inicialização Dupla com o Windows Adicione uma entrada de menu para o Windows no grub.cfg: cat >> /boot/grub/grub.cfg << EOF # Início da adição do Windows menuentry "Windows 11" { insmod fat insmod chain set root=(hd0,1) chainloader /EFI/Microsoft/Boot/bootmgfw.efi } EOF (hd0,1) deveria ser substituído pelo nome designado pelo GRUB para a ESP. A diretiva chainloader pode ser usada para dizer ao GRUB para executar outro executável EFI, nesse caso o Windows Boot Manager. Você pode colocar mais ferramentas utilizáveis no formato de executável EFI (por exemplo, um shell EFI) na ESP e, também, criar entradas do GRUB para elas. Capítulo 6. Editores de Texto Este capítulo é referenciado no livro LFS para aqueles(as) que desejam usar outros editores no sistema LFS deles(as). Você também verá como alguns aplicativos instalados do LFS se beneficiam de serem recompilados depois que bibliotecas GUI tenham sido instaladas. Bluefish-2.2.16 Introdução ao Bluefish O Bluefish é um editor de texto GTK+ voltado para programadores(as) e projetistas web, com muitas opções para escrever sítios web, scripts e códigos de programação. O Bluefish suporta muitas linguagens de programação e de marcação e se concentra na edição de sítios da web dinâmicos e interativos. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2269]https://www.bennewitz.com/bluefish/stable/source/bluefish-2.2 .16.tar.bz2 * Transferência (FTP): * 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) Dependências do Bluefish Exigidas [2270]GTK-3.24.48 Recomendadas [2271]desktop-file-utils-0.28 (para atualizar a base de dados da área de trabalho) Opcionais [2272]enchant-2.8.2 (para verificação ortográfica), [2273]Gucharmap-16.0.2 e [2274]Jing Instalação do Bluefish Primeiro, desabilite um plugin que requer funções removidas na libxml-2.13.0 ou posterior: sed '/infbrowser/d' -i src/Makefile.am && autoreconf Instale Bluefish executando os seguintes comandos: ./configure --prefix=/usr --docdir=/usr/share/doc/bluefish-2.2.16 && make Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) root: make install Nota Esse pacote instala arquivos de ícone na hierarquia /usr/share/icons/hicolor e arquivos de área de trabalho na hierarquia /usr/share/applications. Você pode melhorar o desempenho do sistema e o uso da memória atualizando /usr/share/icons/hicolor/icon-theme.cache e /usr/share/applications/mimeinfo.cache. Para realizar a atualização, você precisa ter [2275]desktop-file-utils-0.28 (para o cache da área de trabalho) e emitir os seguintes comandos como o(a) usuário(a) root: gtk-update-icon-cache -t -f --include-image-data /usr/share/icons/hicolor && update-desktop-database Conteúdo Aplicativo Instalado: bluefish Bibliotecas Instaladas: várias, sob /usr/lib/bluefish/ Diretórios Instalados: /usr/lib/bluefish, /usr/share/bluefish, /usr/share/doc/bluefish-2.2.16 e /usr/share/xml/bluefish Descrições Curtas bluefish é um editor de texto GTK+ para marcação e programação Ed-1.21 Introdução ao Ed Ed é um editor de texto orientado a linhas. Ele é usado para criar, exibir, modificar e manipular arquivos de texto, tanto interativamente quanto por meio de scripts de shell. Ed não é algo que muitas pessoas usam. Ele é descrito aqui porque pode ser usado pelo aplicativo "patch" se você encontrar um arquivo de remendo baseado em ed. Isso acontece raramente porque os remendos baseados em diferenças são os preferidos atualmente. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2276]https://ftp.gnu.org/gnu/ed/ed-1.21.tar.lz * Transferência (FTP): * Soma de verificação MD5 da transferência: a68c643733b7123ddad15f7395cb8c61 * Tamanho da transferência: 68 KB * Espaço em disco estimado exigido: 1,0 MB * Tempo de construção estimado: menos que 0,1 UPC Dependências do Ed Exigido para descomprimir o tarball [2277]libarchive-3.7.7 (para bsdtar) Instalação do Ed Instale Ed executando os seguintes comandos: ./configure --prefix=/usr && make Para testar os resultados, emita: make check. Agora, como o(a) usuário(a) root: make install Conteúdo Aplicativos Instalados: ed e red Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: Nenhum(a) Descrições Curtas ed é um editor de texto orientado a linhas red é um ed restrito—somente pode editar arquivos no diretório atual e não consegue executar comandos do shell Emacs-30.1 Introdução ao Emacs O pacote Emacs contém um editor extensível, personalizável, auto documentado e de exibição em tempo real. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2278]https://ftp.gnu.org/gnu/emacs/emacs-30.1.tar.xz * Transferência (FTP): * Soma de verificação MD5 da transferência: 88d665794fdecba7769c11ab1ccea6e4 * Tamanho da transferência: 52 MB * Espaço em disco estimado exigido: 558 MB * Tempo de construção estimado: 0,6 UPC (Usando paralelismo=4) Dependências do Emacs Recomendadas [2279]harfBuzz-10.4.0, [2280]giflib-5.2.2, [2281]GnuTLS-3.8.9, [2282]jansson-2.14 e [2283]libtiff-4.7.0 Opcionais [2284]um ambiente gráfico, [2285]alsa-lib-1.2.13, [2286]Cairo-1.18.2, [2287]dbus-1.16.0, [2288]GLib-2.82.5 (com GObject Introspection), [2289]gsettings-desktop-schemas-47.1, [2290]GPM-1.20.7, [2291]GTK-3.24.48, [2292]ImageMagick-7.1.1-43, [2293]Little CMS-2.17, [2294]libjpeg-turbo-3.0.1, [2295]libpng-1.6.46, [2296]librsvg-2.59.2, [2297]libseccomp-2.6.0, [2298]libwebp-1.5.0, [2299]libxml2-2.13.6, [2300]MIT Kerberos V5-1.21.3, [2301]SQLite-3.49.1, [2302]Valgrind-3.24.0, [2303]intlfonts, [2304]libungif, [2305]libotf e [2306]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), [2307]mailutils e [2308]libXaw3d Instalação do Emacs Instale Emacs executando os seguintes comandos: ./configure --prefix=/usr && make Esse pacote não vem com uma suíte de teste. Se o "make" for bem-sucedido, [então] você consegue testar o resultado executando src/emacs -Q, que é o aplicativo que será instalado, com os arquivos auxiliares dele. Isso deveria iniciar e exibir a tela de abertura do aplicativo. Agora, como o(a) usuário(a) root: make install && chown -v -R root:root /usr/share/emacs/30.1 && rm -vf /usr/lib/systemd/user/emacs.service Nota Esse pacote instala arquivos de ícone na hierarquia /usr/share/icons/hicolor e você pode melhorar o desempenho do sistema e o uso de memória atualizando /usr/share/icons/hicolor/index.theme. Para realizar a atualização, você precisa ter o [2309]GTK-3.24.48 instalado e emitir o seguinte comando como o(a) usuário(a) root: gtk-update-icon-cache -qtf /usr/share/icons/hicolor Explicações do Comando --with-imagemagick: Use isso se você tiver instalado o [2310]ImageMagick-7.1.1-43 e desejar vincular a ele. --with-gif=no: Use isso se você não tiver instalado [2311]giflib-5.2.2 ou [2312]libungif. --with-tiff=no: Use isso se você não tiver instalado [2313]libtiff-4.7.0. --with-gnutls=no: Use isso se você não tiver instalado [2314]GnuTLS-3.8.9. --without-harfbuzz: Use isso se você não tiver instalado o [2315]harfBuzz-10.4.0. --with-json=no: Use isso se você não tiver instalado [2316]jansson-2.14. Conteúdo Aplicativos Instalados: ctags, ebrowse, emacs (link simbólico), emacs-30.1, emacsclient e etags Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /usr/libexec/emacs e /usr/share/emacs Descrições Curtas ctags cria arquivos de base de dados arquivo de marca de referência cruzada para código-fonte ebrowse permite navegar pelas hierarquias de classe C++ a partir de dentro do emacs emacs é um editor emacsclient anexa uma sessão do emacs a uma instância do emacsserver já em execução etags é outro aplicativo para gerar arquivos de marca de referência cruzada de código-fonte Gedit-48.1 Introdução ao Gedit O pacote Gedit contém um editor UTF-8 leve de texto para a área de trabalho GNOME. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2317]https://download.gnome.org/sources/gedit/48/gedit-48.1.tar.xz * Transferência (FTP): * Soma de verificação MD5 da transferência: 1aa72a59d51be4597490220af3ad0421 * Tamanho da transferência: 2,8 MB * Espaço em disco estimado exigido: 48 MB (com testes) * Tempo de construção estimado: 0,2 UPC (usando paralelismo = 4; com testes) Transferências Adicionais * Transferência (HTTP): [2318]https://gitlab.gnome.org/World/gedit/libgedit-tepl/-/archive/ 6.12.0/libgedit-tepl-6.12.0.tar.bz2 * Transferência (FTP): * 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): [2319]https://gitlab.gnome.org/World/gedit/libgedit-gfls/-/archive/ 0.2.1/libgedit-gfls-0.2.1.tar.bz2 * Transferência (FTP): * 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) Dependências do Gedit Exigidas [2320]gsettings-desktop-schemas-47.1, [2321]itstool-2.0.7, [2322]libgedit-amtk-5.9.0, [2323]libgeditsourceview-299.4.0, [2324]libhandy-1.8.3 e [2325]libpeas-1.36.0 Recomendadas [2326]gspell-1.14.0, [2327]Gvfs-1.56.1 (tempo de execução), [2328]ISO Codes-4.17.0 e [2329]PyGObject-3.50.0 (módulo Python3) Opcionais [2330]GTK-Doc-1.34.0, [2331]Vala-0.56.17 e [2332]zeitgeist Instalação do Gedit Primeiro, construa a biblioteca gfls: tar -xf ../libgedit-gfls-0.2.1.tar.bz2 && pushd libgedit-gfls-0.2.1 && mkdir gfls-build && cd gfls-build && meson setup --prefix=/usr \ --buildtype=release \ -D gtk_doc=false \ .. && ninja Para testar os resultados, execute: ninja test. Agora, como o(a) usuário(a) root: ninja install Mude de volta para o diretório superior de construção: popd Segundo, construa a biblioteca tepl: tar -xf ../libgedit-tepl-6.12.0.tar.bz2 && pushd libgedit-tepl-6.12.0 && mkdir tepl-build && cd tepl-build && meson setup --prefix=/usr \ --buildtype=release \ -D gtk_doc=false \ .. && ninja Para testar os resultados, execute: ninja test. Agora, como o(a) usuário(a) root: ninja install Novamente, mude de volta para o diretório superior de construção: popd Finalmente, instale Gedit executando os seguintes comandos: mkdir gedit-build && cd gedit-build && meson setup --prefix=/usr \ --buildtype=release \ -D gtk_doc=false \ .. && ninja Para testar os resultados, emita: ninja test. Agora, como o(a) usuário(a) root: ninja install Nota Se você instalou o pacote em teu sistema usando um método “DESTDIR”, /usr/share/glib-2.0/schemas/gschemas.compiled não foi atualizado/criado. Crie (ou atualize) o arquivo usando o seguinte comando como o(a) usuário(a) root: glib-compile-schemas /usr/share/glib-2.0/schemas Explicações do Comando -D gtk_doc=false: Essa chave desabilita a geração da documentação da API. Omita essa chave se você tiver [2333]GTK-Doc-1.34.0 instalado e desejar gerar a documentação da API. Conteúdo Aplicativo Instalado: gedit Bibliotecas Instaladas: libgedit-gfls-1.so, libgedit-tepl-6.so e libgedit-48.so Diretórios Instalados: /usr/include/libgedit-gfls-1, /usr/include/libgedit-tepl-6, /usr/include/gedit-48 e /usr/{lib,share,share/help/*}/gedit Descrições Curtas gedit é um editor de texto leve integrado com a área de trabalho GNOME JOE-4.6 Introdução ao "JOE" JOE (Joe's Own Editor) é um pequeno editor de texto capaz de emular WordStar, Pico e Emacs. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2334]https://downloads.sourceforge.net/joe-editor/joe-4.6.tar.gz * Transferência (FTP): * 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 Instalação do "JOE" Instale JOE executando os seguintes comandos: ./configure --prefix=/usr \ --sysconfdir=/etc \ --docdir=/usr/share/doc/joe-4.6 && make Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) root: make install && install -vm 755 joe/util/{stringify,termidx,uniproc} /usr/bin Configurando o "JOE" Arquivos de Configuração /etc/joe/jmacsrc, /etc/joe/joerc, /etc/joe/jpicorc, /etc/joe/jstarrc, /etc/joe/rjoerc e ~/.joerc Conteúdo Aplicativos Instalados: jmacs, joe, jpico, jstar, rjoe, stringify, termidx e uniproc Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /etc/joe, /usr/share/joe e /usr/share/doc/joe-4.6 Descrições Curtas jmacs é um link simbólico para joe usado para iniciar o modo de emulação Emacs joe é um pequeno editor de texto capaz de emular WordStar, Pico e Emacs jpico é um link simbólico para joe usado para iniciar o modo de emulação Pico jstar é um link simbólico para joe usado para iniciar o modo de emulação do WordStar rjoe é um link simbólico para joe que restringe o JOE a editar somente os arquivos que estejam especificados na linha de comando stringify é um aplicativo usado pelo joe para converter arquivos rc e .jsf em um arquivo C (veja-se /usr/share/doc/joe-4.6/util/README) termidx é um aplicativo usado pelo joe para gerar o arquivo de índice termcap (veja-se /usr/share/doc/joe-4.6/util/README) uniproc é um aplicativo usado pelo joe para gerar o arquivo de base de dados Unicode de joe "unicat.c" a partir de Blocks.txt, CaseFolding.txt, EastAsianWidth.txt e UnicodeData.txt (encontre-os em /usr/share/doc/joe-4.6/util; veja-se usr/share/doc/joe-4.6/util/README) kate-24.12.2 Introdução ao Kate O pacote Kate contém um editor gráfico avançado de texto baseado em KF6. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2335]https://download.kde.org/stable/release-service/24.12.2/src/k ate-24.12.2.tar.xz * Transferência (FTP): * 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) Dependências do Kate Exigidas [2336]KDE Frameworks-6.11.0 Instalação do Kate Instale Kate executando os seguintes comandos: mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=$KF6_PREFIX \ -D CMAKE_BUILD_TYPE=Release \ -D BUILD_TESTING=OFF \ -W no-dev .. && make Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) root: make install Conteúdo Aplicativos Instalados: kate e kwrite Bibliotecas Instaladas: Diversos plugins sob $KF6_PREFIX/lib/plugins Diretórios Instalados: $KF6_PREFIX/lib/plugins/ktexteditor, $KF6_PREFIX/lib/plugins/plasma/dataengine, $KF6_PREFIX/share/doc/HTML/*/{kate,katepart,kwrite}, $KF6_PREFIX/share/{kateproject,katexmltools} e $KF6_PREFIX/share/plasma/plasmoids/org.kde.plasma.katesessions Descrições Curtas kate é um editor avançado de texto para o KDE kwrite é um editor de texto para o KDE, que é uma versão leve do kate Mousepad-0.6.3 Introdução ao Mousepad Mousepad é um editor simples de texto GTK+ 3 para o ambiente de área de trabalho Xfce. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2337]https://archive.xfce.org/src/apps/mousepad/0.6/mousepad-0.6.3 .tar.bz2 * Transferência (FTP): * 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 Dependências do Mousepad Exigidas [2338]gtksourceview4-4.8.4 e [2339]libxfce4ui-4.20.0 Recomendadas [2340]gspell-1.14.0 Opcionais [2341]DConf-0.40.0 (tempo de execução) e [2342]dbus-glib-0.112 Instalação do Mousepad Instale Mousepad executando os seguintes comandos: ./configure --prefix=/usr \ --enable-gtksourceview4 \ --enable-keyfile-settings && make Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) root: make install Explicações do Comando --enable-keyfile-settings: Use a estrutura de retaguarda do arquivo de chaves GSettings em vez do padrão [2343]DConf-0.40.0. --disable-plugin-gspell: Use essa opção para desabilitar construir o plugin [2344]gspell-1.14.0 se você não tiver instalado o gspell. Conteúdo Aplicativo Instalado: mousepad Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: Nenhum(a) Descrições Curtas mousepad é um editor simples GTK+ 3 de texto Nano-8.3 Introdução ao Nano O pacote Nano contém um pequeno e simples editor de texto que pretende substituir o Pico, o editor padrão no pacote Pine. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2345]https://www.nano-editor.org/dist/v8/nano-8.3.tar.xz * Transferência (FTP): * Soma de verificação MD5 da transferência: e64276780e23efb273480c4279050f74 * Tamanho da transferência: 1,6 MB * Espaço em disco estimado exigido: 24 MB * Tempo de construção estimado: 0,2 UPC Instalação do Nano Instale Nano executando os seguintes comandos: ./configure --prefix=/usr \ --sysconfdir=/etc \ --enable-utf8 \ --docdir=/usr/share/doc/nano-8.3 && make Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) root: make install && install -v -m644 doc/{nano.html,sample.nanorc} /usr/share/doc/nano-8.3 Explicações do Comando --enable-utf8: Essa chave habilita o suporte Unicode no Nano. Configurando nano Arquivos de Configuração /etc/nanorc e ~/.nanorc Informação de Configuração Configuração de exemplo (crie como um arquivo /etc/nanorc de todo o sistema ou como um arquivo pessoal ~/.nanorc) set autoindent set constantshow set fill 72 set historylog set multibuffer set nohelp set positionlog set quickblank set regexp Verifique o arquivo sample.nanorc no diretório instalado da documentação. Inclui configurações de cores e tem alguma documentação incluída nos comentários. O realce de sintaxe é fornecido para vários tipos de arquivo, no diretório /usr/share/nano/. Por exemplo, para scripts do shell, você pode inserir include /usr/share/nano/sh.nanorc no arquivo de configuração pessoal ou no global. Se você deseja realçar todos os arquivos suportados, [então] use include /usr/share/nano/*.nanorc. Essa inclusão não desce para o diretório extra. Mova os arquivos exigidos um nível acima. Conteúdo Aplicativos Instalados: nano e rnano (link simbólico) Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /usr/share/nano e /usr/share/doc/nano-8.3 Descrições Curtas nano é um pequeno e simples editor de texto que pretende substituir o Pico, o editor padrão no pacote Pine rnano é um modo restrito para o nano Vim-9.1.1166 Introdução ao Vim O pacote Vim, que é uma abreviação de VI IMproved, contém um clone do vi com recursos extras em comparação com o vi original. As instruções padrão do LFS instalam o vim como parte do sistema básico. Se você preferisse vincular o vim ao X, [então] deveria recompilar o vim para habilitar o modo GUI. Não existe necessidade de instruções especiais, pois o suporte X é detectado automaticamente. Nota A versão do vim muda diariamente. Para obter a versão mais recente, acesse [2346]https://github.com/vim/vim/releases. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2347]https://github.com/vim/vim/archive/v9.1.1166/vim-9.1.1166.tar .gz * Transferência (FTP): * Soma de verificação MD5 da transferência: 718d43ce957ab7c81071793de176c2eb * Tamanho da transferência: 18 MB * Espaço em disco estimado exigido: 139 MB (adicionar 75 MB para os testes) * Tempo de construção estimado: 0,4 UPC (com paralelismo=4; adicionar 14 UPC para testes) Dependências do Vim Recomendadas [2348]um ambiente gráfico e [2349]GTK-3.24.48 Opcionais [2350]cURL-8.12.1 (ou [2351]Wget-1.25.0, exigido por alguns testes), [2352]GPM-1.20.7, [2353]Lua-5.4.7, [2354]Ruby-3.4.2 e [2355]rsync-3.4.1 Instalação do Vim Nota Se recompilar o Vim para se vincular ao X e suas bibliotecas X não estiverem na partição raiz, [então] você não mais terá um editor para uso em emergências. Você pode optar por instalar um editor adicional; não vincular o Vim ao X; ou mover o atual executável vim para o diretório /bin sob um nome diferente, tal como vi. Instale Vim executando os seguintes comandos: Nota Se você pretende executar os testes e não instalou o Xorg em /usr, [então] anexe LDFLAGS='-L$XORG_PREFIX/lib' à linha de configuração abaixo. echo '#define SYS_VIMRC_FILE "/etc/vimrc"' >> src/feature.h && echo '#define SYS_GVIMRC_FILE "/etc/gvimrc"' >> src/feature.h && ./configure --prefix=/usr \ --with-features=huge \ --enable-gui=gtk3 \ --with-tlib=ncursesw && make Nota Se o arquivo global de configuração /etc/vimrc referenciar a variável de ambiente VIMRUNTIME, alguns testes possivelmente reclamem a respeito de estarem inaptos para encontrarem o diretório correspondente e aguardem por entrada gerada do(a) usuário(a). Se esse for o caso, esse arquivo deveria ser salvo e removido antes de executar os testes. Ou se [2356]bubblewrap-0.11.0 estiver instalado, também é possível criar um ambiente leve de contêiner onde esse arquivo fique oculto e executar os testes no contêiner. Para testar os resultados, emita: make -j1 test. Falhas de teste, se existirem, produzirão o arquivo test.log em src/testdir. Os testes restantes ainda serão executados. Se tudo correr bem, o registro informará ALL DONE. Alguns testes rotulados como “escamosos” possivelmente falhem ocasionalmente e podem ser ignorados. Os testes são conhecidos por falharem se a saída gerada for redirecionada para um arquivo e também se forem executados em uma sessão do 'screen'. Nota Se executar os testes com [2357]bubblewrap-0.11.0 e /etc/vimrc ocultos, use bwrap --dev-bind / / --dev-bind /dev/null /etc/vimrc make -j1 test. Nota Alguns testes de cores esperam ser executados sob o emulador de terminal xterm. Agora, como o(a) usuário(a) root: make install Por padrão, a documentação do Vim é instalada em /usr/share/vim. O link simbólico a seguir permite que a documentação seja acessada via /usr/share/doc/vim-9.1.1166, tornando-o consistente com o local da documentação para outros pacotes: ln -snfv ../vim/vim91/doc /usr/share/doc/vim-9.1.1166 Se você desejar atualizar os arquivos de tempo de execução, emita o seguinte comando (exige [2358]rsync-3.4.1) para baixá-los: rsync -avzcP --exclude="/dos/" --exclude="/spell/" \ ftp.nluug.nl::Vim/runtime/ ./runtime/ E, então, instalar os arquivos atualizados de tempo de execução e gerar novamente o arquivo tags, como o(a) usuário(a) root, emita: make -C src installruntime && vim -c ":helptags /usr/share/doc/vim-9.1.1166" -c ":q" Explicações do Comando --with-features=huge: Essa chave habilita todos os recursos adicionais disponíveis no Vim, incluindo suporte para caracteres múltiplos bytes. --with-tlib=ncursesw: Essa chave força o Vim a vincular-se à biblioteca libncursesw. --enable-gui=no: Isso impedirá a compilação da GUI. O Vim ainda se vinculará ao X, de modo que alguns recursos, tais como o modelo cliente-servidor ou a seleção x11 (área de transferência), ainda estejam disponíveis. --without-x: Se você preferir não vincular o Vim ao X, [então] use essa chave. --enable-luainterp, --enable-perlinterp, --enable-python3interp=dynamic, --enable-tclinterp --with-tclsh=tclsh, --enable-rubyinterp: Essas opções incluem os interpretadores Lua, Perl, Python3, Tcl ou Ruby que permitem usar código de outro aplicativo em conjuntos de comandos sequenciais do vim. Todas as opções --enable-* conseguem aceitar =dynamic para carregar dinamicamente o interpretador quando necessário. Isso é exigido para Python 3 para evitar falhas de segmentação. Para tcl, é necessário indicar o nome do executável tclsh, pois configure somente pesquisa nomes versionados com versões antigas. Configurando Vim Arquivos de Configuração /etc/vimrc e ~/.vimrc Informação de Configuração O Vim tem um verificador ortográfico integrado que você consegue habilitar emitindo o seguinte em uma janela do vim: :setlocal spell spelllang=ru Essa configuração habilitará a verificação ortográfica para o idioma russo para a sessão atual. Por padrão, o Vim somente instala arquivos ortográficos para o idioma inglês. Se um arquivo ortográfico não estiver disponível para um idioma, [então] o Vim chamará o plug-in $VIMRUNTIME/plugin/spellfile.vim e tentará obter o *.spl e opcionalmente *.sug a partir do servidor FTP do vim, usando o plug-in $VIMRUNTIME/plugin/netrwPlugin.vim. Alternativamente, você consegue baixar manualmente os arquivos *.spl e *.sug a partir de: [2359]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 [2360]Os Arquivos vimrc e [2361]https://vim.fandom.com/wiki/Example_vimrc. Conteúdo Uma lista dos arquivos reinstalados, juntamente com as descrições curtas deles, pode ser encontrada nas [2362]Instruções de Instalação do Vim do LFS. Aplicativos Instalados: gview, gvim, gvimdiff, gvimtutor, rgview e rgvim Bibliotecas Instaladas: Nenhum(a) Diretório Instalado: /usr/share/vim Descrições Curtas gview inicia o gvim no modo somente leitura gvim é o editor que executa sob o X e inclui uma GUI gvimdiff edita duas ou três versões de um arquivo com gvim e mostra as diferenças gvimtutor ensina as teclas e comandos básicas do gvim rgview é uma versão restrita do gview rgvim é uma versão restrita do gvim Capítulo 7. Shells Estamos todos familiarizados com o Bourne Again SHell, mas existem duas outras interfaces de usuário(a) que são consideradas shells modernos úteis – o shell Berkeley Unix C e o shell Korn. Este capítulo instala pacotes compatíveis com esses tipos adicionais de shell. Dash-0.5.12 Introdução ao Dash Dash é um shell compatível com POSIX. Ele pode ser instalado como /bin/sh ou como o shell padrão para root ou um(a) segundo(a) usuário(a) com um ID de usuário(a) zero (0). Depende de menos bibliotecas que o shell Bash e, portanto, é menos provável que seja afetado por um problema de atualização ou falha de disco. Dash também é útil para verificar se um script é totalmente compatível com a sintaxe POSIX. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2363]http://gondor.apana.org.au/~herbert/dash/files/dash-0.5.12.ta r.gz * Transferência (FTP): * 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 Dependências do Dash Opcionais [2364]libedit (biblioteca do editor de linha de comando) Instalação do Dash Instale Dash executando os seguintes comandos: ./configure --bindir=/bin --mandir=/usr/share/man && make Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) root: make install Se você gostaria de tornar dash o sh padrão, [então] recrie o link simbólico /bin/sh como o(a) usuário(a) root: Nota Se criar o link simbólico do dash para sh, [então] você precisará reconfigurar o link para bash para construir o LFS. ln -svf dash /bin/sh Explicações do Comando --bindir=/bin: Esse parâmetro coloca o binário dash no sistema de arquivos raiz. --with-libedit: Para compilar Dash com suporte a libedit. Configurando Dash Arquivos de Configuração Dash carrega /etc/profile e ~/.profile Informação de Configuração Atualize /etc/shells para incluir o shell Dash emitindo o seguinte comando como o(a) usuário(a) root: cat >> /etc/shells << "EOF" /bin/dash EOF Conteúdo Aplicativo Instalado: dash Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: Nenhum(a) Descrições Curtas dash é um shell compatível com POSIX Tcsh-6.24.15 Introdução ao Tcsh O pacote Tcsh contém “uma versão aprimorada, mas completamente compatível, do shell C do Unix da Berkeley (csh)”. Isso é útil como um shell alternativo para aqueles que preferem a sintaxe C a aquela do shell bash e também porque alguns aplicativos exigem o shell C para a finalidade de realizar tarefas de instalação. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2365]https://astron.com/pub/tcsh/tcsh-6.24.15.tar.gz * Transferência (FTP): * Soma de verificação MD5 da transferência: 7a6c216fca177279ee2fb93fd3f9ccd4 * Tamanho da transferência: 940 KB * Espaço em disco estimado exigido: 11 MB (com testes) * Tempo de construção estimado: 0,2 UPC (com testes) Instalação do Tcsh Instale Tcsh executando os seguintes comandos: ./configure --prefix=/usr && make Para testar os resultados, emita: make check. Agora, como o(a) usuário(a) root: make install install.man && ln -v -sf tcsh /bin/csh && ln -v -sf tcsh.1 /usr/share/man/man1/csh.1 Explicações do Comando ln -v -sf tcsh /bin/csh: O FHS afirma que, se existir um shell C instalado, [então] deveria existir um link simbólico a partir de /bin/csh para ele. Isso cria esse link simbólico. Configurando Tcsh Arquivos de Configuração Existem numerosos arquivos de configuração para o shell C. Exemplos desses são /etc/csh.cshrc, /etc/csh.login, /etc/csh.logout, ~/.tcshrc, ~/.cshrc, ~/.history, ~/.cshdirs, ~/.login e ~/.logout. Mais informação a respeito desses arquivos pode ser encontrada na página de manual [2366]tcsh(1). Informação de Configuração Atualize /etc/shells para incluir os nomes do aplicativo shell C (como o(a) usuário(a) root): cat >> /etc/shells << "EOF" /bin/tcsh /bin/csh EOF O seguinte ~/.cshrc fornece dois prompts de cores alternativas e saída gerada ls colorida. Se você preferir uma modificação global, [então] emita o comando como o(a) usuário(a) root, substituindo ~/.cshrc por /etc/csh.cshrc. cat > ~/.cshrc << "EOF" # Original em: # https://www.cs.umd.edu/~srhuang/teaching/code_snippets/prompt_color.tcsh.html # Modificado pela Equipe de Desenvolvimento do BLFS. # Adicione estas linhas ao seu ~/.cshrc (ou ao /etc/csh.cshrc). # Cores! set red="%{\033[1;31m%}" set green="%{\033[0;32m%}" set yellow="%{\033[1;33m%}" set blue="%{\033[1;34m%}" set magenta="%{\033[1;35m%}" set cyan="%{\033[1;36m%}" set white="%{\033[0;37m%}" set end="%{\033[0m%}" # Isso é necessário no final ... # Configurando prompt atual. Duas versões para você tentar; escolha # qual você gosta mais e mude as cores que quiser. # Apenas não mexa com o cara ${end} em qualquer linha ... Comente ou # delete o prompt que não usar. set prompt="${green}%n${blue}@%m ${white}%~ ${green}%%${end} " set prompt="[${green}%n${blue}@%m ${white}%~ ]${end} " # Isto não estava na URL original acima # Fornece ls colorido alias ls ls --color=always # Limpar depois de nós mesmos ... unset red green yellow blue magenta cyan yellow white end EOF Conteúdo Aplicativo Instalado: tcsh Bibliotecas Instaladas: Nenhum(a) Diretório Instalado: Nenhum(a) Descrições Curtas tcsh é uma versão aprimorada, mas completamente compatível, do shell C do Unix da Berkeley, csh. É utilizável como um shell interativo e como um processador de script zsh-5.9 Introdução ao zsh O pacote zsh contém um interpretador de comandos (shell) utilizável como um shell de login interativo e como um processador de comando de script de shell. Dos shells padrão, o zsh é o que mais se assemelha ao ksh, mas inclui muitos aprimoramentos. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2367]https://www.zsh.org/pub/zsh-5.9.tar.xz * Transferência (FTP): * Soma de verificação MD5 da transferência: 182e37ca3fe3fa6a44f69ad462c5c30e * Tamanho da transferência: 3,2 MB * Espaço em disco estimado exigido: 48 MB (inclui documentação e testes) * Tempo de construção estimado: 1,6 UPC (Usando paralelismo=4; inclui documentação e testes) Nota Quando existe um lançamento novo do zsh, os arquivos antigos mostrados acima são movidos para um novo diretório do servidor: [2368]https://www.zsh.org/pub/old/ . Dependências do zsh Opcionais [2369]Valgrind-3.24.0 e [2370]yodl Instalação do zsh Adapte o sistema de construção de documentação para texinfo-7.0 ou posterior: sed -e 's/set_from_init_file/texinfo_&/' \ -i Doc/Makefile.in Alguns programas fornecidos no sistema de construção para detectar recursos do sistema usam sintaxe pré-C99 rejeitada pelo GCC-14.1 ou posterior. Corrija-os porque o Zsh será configurado incorretamente e falhará caso contrário: sed -e 's/^main/int &/' \ -e 's/exit(/return(/' \ -i aczsh.m4 configure.ac && sed -e 's/test = /&(char**)/' \ -i configure.ac && autoconf Os arquivos de documentação contém referências aos arquivos de configuração do zsh em /etc, mas nós usaremos /etc/zsh para armazenar esses arquivos de configuração em vez disso. O sistema de construção atualizará essas referências se o pacote yodl estiver disponível, mas ele está fora do escopo do BLFS. Como resultado, nós precisamos corrigir as referências manualmente: sed -e 's|/etc/z|/etc/zsh/z|g' \ -i Doc/*.* Instale zsh executando os seguintes comandos: ./configure --prefix=/usr \ --sysconfdir=/etc/zsh \ --enable-etcdir=/etc/zsh \ --enable-cap \ --enable-gdbm && make && makeinfo Doc/zsh.texi --html -o Doc/html && makeinfo Doc/zsh.texi --plaintext -o zsh.txt && makeinfo Doc/zsh.texi --html --no-split --no-headers -o zsh.html Se você tiver [2371]texlive-20240312 instalado, poderá construir a documentação no formato PDF emitindo o seguinte comando: texi2pdf Doc/zsh.texi -o Doc/zsh.pdf Para testar os resultados, emita: make check. Agora, como o(a) usuário(a) root: make install && make infodir=/usr/share/info install.info && make htmldir=/usr/share/doc/zsh-5.9/html install.html && install -v -m644 zsh.{html,txt} Etc/FAQ /usr/share/doc/zsh-5.9 Se você construiu o formato PDF da documentação, [então] instale-o emitindo o seguinte comando como o(a) usuário(a) root: install -v -m644 Doc/zsh.pdf /usr/share/doc/zsh-5.9 Explicações do Comando --sysconfdir=/etc/zsh e --enable-etcdir=/etc/zsh: Esses parâmetros são usados para que todos os arquivos de configuração do zsh sejam consolidados no diretório /etc/zsh. Omita esses parâmetros se você desejar manter a compatibilidade histórica tendo todos os arquivos localizados no diretório /etc. --enable-cap: Essa opção habilita os recursos POSIX. --enable-gdbm: Essa opção habilita o uso da biblioteca GDBM. Configurando o zsh Arquivos de Configuração Existe toda uma série de arquivos de configuração para o zsh, incluindo /etc/zsh/zshenv, /etc/zsh/zprofile, /etc/zsh/zshrc, /etc/zsh/zlogin e /etc/zsh/zlogout. Você consegue encontrar mais informação a respeito deles na [2372]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 . Exiba todos os prompts disponíveis com prompt -p. Exceto os comandos list e display acima, você consegue inserir os outros em ~/.zshrc para serem executados automaticamente quando o shell iniciar, com o prompt que escolher. Informação de Configuração Atualize /etc/shells para incluir os nomes do aplicativo de shell zsh (como o(a) usuário(a) root): cat >> /etc/shells << "EOF" /bin/zsh EOF Conteúdo Aplicativos Instalados: zsh e zsh-5.9 (rigidamente vinculados entre eles) Bibliotecas Instaladas: Numerosos módulos auxiliares de plugin sob /usr/lib/zsh/5.9/ Diretórios Instalados: /usr/{lib,share}/zsh e /usr/share/doc/zsh-5.9 Descrições Curtas zsh é um shell que tem edição de linha de comando, correção ortográfica integrada, completamento programável de comando, funções de shell (com carregamento automático), um mecanismo de histórico e uma série de outros recursos Capítulo 8. Virtualização A virtualização permite executar um sistema operacional completo, ou máquina virtual ("VM"), dentro de outro ambiente operacional, como uma tarefa. Existem vários ambientes comerciais e de código aberto que, ou emulam outro processador, ou utilizam os recursos de virtualização de hardware do processador anfitrião. qemu-9.2.2 Introdução ao qemu qemu é uma solução completa de virtualização para Linux em hardware x86 contendo extensões de virtualização (Intel VT ou AMD-V). Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2373]https://download.qemu.org/qemu-9.2.2.tar.xz * Transferência (FTP): * Soma de verificação MD5 da transferência: 417dc130a89238ba5347ced224497ee1 * Tamanho da transferência: 129 MB * Espaço em disco estimado exigido: 2,3 GB (475 MB instalado) * Tempo de construção estimado: 1,1 UPC (adicionar 0,5 UPC para testes, ambos usando paralelismo=4) Dependências do Qemu Exigidas [2374]GLib-2.82.5 e [2375]Pixman-0.44.2 Recomendadas [2376]alsa-lib-1.2.13, [2377]dtc-1.7.2, [2378]libslirp-4.9.0 e [2379]SDL2-2.30.11 Nota Se [2380]dtc-1.7.2 não estiver instalado, o sistema de construção tentará baixar uma cópia do código-fonte do dtc a partir da Internet. Opcionais [2381]pipewire-1.2.7 ou [2382]PulseAudio-17.0 (pode ser usado em vez de alsa-lib), [2383]BlueZ-5.79, [2384]cURL-8.12.1, [2385]Cyrus SASL-2.1.28, [2386]Fuse-3.16.2, [2387]GnuTLS-3.8.9, [2388]GTK-3.24.48, [2389]keyutils-1.6.3, [2390]libaio-0.3.113, [2391]libusb-1.0.27, [2392]libgcrypt-1.11.0, [2393]libjpeg-turbo-3.0.1, [2394]libseccomp-2.6.0, [2395]libssh2-1.11.1, [2396]libpng-1.6.46, [2397]libtasn1-4.20.0, [2398]Linux-PAM-1.7.0, [2399]LZO-2.10, [2400]Nettle-3.10.1, [2401]Mesa-24.3.4, [2402]VTE-0.78.4, [2403]capstone, [2404]ceph, [2405]daxctl, [2406]JACK, [2407]glusterfs, [2408]libbpf, [2409]libcacard, [2410]libcap-ng, [2411]libdw, [2412]libiscsi, [2413]libnfs, [2414]libpmem, [2415]libssh, [2416]libu2f-emu, [2417]lzfse, [2418]netmap, [2419]numactl, [2420]rdma-core, [2421]SELinux, [2422]snappy, [2423]spice, [2424]usbredir e [2425]VDE Opcionais (Tempo de execução) [2426]elogind-255.17 Opcional (para construir a documentação) [2427]sphinx_rtd_theme-3.0.2 Nota Esta lista de dependências opcionais não está completa. Veja-se a saída gerada de ./configure --help para uma lista mais completa. Observações de Editor(a): [2428]https://wiki.linuxfromscratch.org/blfs/wiki/qemu Prerrequisitos KVM Antes de construir o qemu, verifique para ver se o seu processador suporta a tecnologia de virtualização ("VT"): grep -E '^flags.*(vmx|svm)' /proc/cpuinfo Se obtiver alguma saída gerada, [então] você tem a tecnologia "VT" ("vmx" para processadores Intel e "svm" para processadores AMD). Você, então, precisa entrar no BIOS do seu sistema e garantir que ela esteja habilitada. Depois de habilitar, reinicialize de volta para sua instância LFS. Configuração do Núcleo Habilite as seguintes opções na configuração do núcleo e recompile o núcleo se necessário: [*] Virtualization ---> [VIRTUALIZATION] <*/M> Kernel-based Virtual Machine (KVM) support [KVM] # Enable the option for your CPU: < /*/M> KVM for Intel (and compatible) processors support [KVM_INTEL] < /*/M> KVM for AMD processors support [KVM_AMD] As configurações Intel ou AMD não são ambas exigidas, mas a que corresponder ao processador do seu sistema é exigida. Para usar o dispositivo de rede de comunicação “bridge”, conforme explicado abaixo, verifique se [2429]bridge-utils-1.7.1 está instalado e se as seguintes opções na configuração do núcleo estão habilitadas: [*] Networking support ---> [NET] Networking options ---> <*/M> 802.1d Ethernet Bridging [BRIDGE] Device Drivers ---> [*] Network device support ---> [NETDEVICES] [*] Network core driver support [NET_CORE] <*/M> Universal TUN/TAP device driver support [TUN] Instalação do qemu A regra de udev do LFS permite somente que o(a) usuário(a) root, os(as) usuários(as) proprietários(as) de uma sessão local de login suportada pela dependência opcional de tempo de execução [2430]elogind-255.17 ou os(as) usuários(as) no grupo kvm usem o dispositivo KVM. Como o(a) usuário(a) root, adicione quaisquer usuários(as) não root que poderiam usar o dispositivo KVM, mesmo sem o [2431]elogind-255.17 instalado ou remotamente (por meio de uma conexão SSH), ao grupo kvm: usermod -a -G kvm Instale o qemu executando os seguintes comandos: Nota O qemu é capaz de executar muitos alvos. O processo de construção também é capaz de construir vários alvos de uma vez em uma lista delimitada por vírgulas atribuída a --target-list. Execute ./configure --help para obter uma lista completa dos alvos disponíveis. if [ $(uname -m) = i686 ]; then QEMU_ARCH=i386-softmmu else QEMU_ARCH=x86_64-softmmu fi mkdir -vp build && cd build && ../configure --prefix=/usr \ --sysconfdir=/etc \ --localstatedir=/var \ --target-list=$QEMU_ARCH \ --audio-drv-list=alsa \ --disable-pa \ --enable-slirp \ --docdir=/usr/share/doc/qemu-9.2.2 && unset QEMU_ARCH && make qemu usa ninja como um subprocesso ao construir. Para executar os testes, emita: ninja test. Um teste, qtest-x86_64/bios-tables-test, é conhecido por falhar em alguns sistemas. Agora, como o(a) usuário(a) root: make install Mude as permissões e a propriedade de um script auxiliar, que é necessário ao usar o dispositivo de rede de comunicação “bridge” (veja-se abaixo). Novamente, como o(a) usuário(a) root, emita: Nota Você precisa adicionar quaisquer usuários(as) que possam usar o dispositivo de rede de intercomunicação “bridge” ao grupo kvm, mesmo se o [2432]elogind-255.17 estiver instalado. chgrp kvm /usr/libexec/qemu-bridge-helper && chmod 4750 /usr/libexec/qemu-bridge-helper Nota Por conveniência, você possivelmente deseje criar um link simbólico para executar o aplicativo instalado. Por exemplo (como o(a) usuário(a) root): ln -sv qemu-system-`uname -m` /usr/bin/qemu Explicações do Comando --audio-drv-list=alsa: Essa chave configura o controlador de áudio para o ALSA. Veja-se abaixo para habilitar outros controladores de áudio. --disable-pa: mesmo se pa não estiver na lista --audio-drv-list, o controlador pulseaudio é construído, a menos que desabilitado por esse parâmetro. --enable-slurp: Essa chave força o sistema de construção a verificar [2433]libslirp-4.9.0. Remova-a se você não precisar do suporte -netdev user. --audio-drv-list=pa --disable-alsa: Essa chave configura o controlador de áudio para o pulseaudio. Para outros controladores, vejam-se as opções da --audio-drv-list na saída gerada de ./configure --help. O controlador padrão de áudio é o OSS. Para habilitar o suporte para ambos, ALSA e pulseaudio, use --audio-drv-list=alsa,pa. Usando o Qemu Como usar o qemu significa usar um computador virtual, as etapas para configurar a máquina virtual estão em estreita analogia com aquelas para configurar um computador real. Você precisará tomar decisões a respeito de CPU, memória, disco, dispositivos USB, placa(s) de rede de intercomunicação, tamanho da tela, etc. Assim que o “hardware” estiver decidido, você terá, por exemplo, de escolher como conectar a máquina à internet e(ou) instalar um sistema operacional. Na seção seguinte, nós mostramos maneiras básicas de realizar essas etapas. Porém, o qemu é muito mais poderoso que isso, e é fortemente aconselhado ler-se a documentação do qemu em /usr/share/doc/qemu-9.2.2/qemu-doc.html. Nota É uma prática padrão nomear o computador executando qemu como “anfitrião” e a máquina emulada executando sob qemu como “convidada”. Nós usaremos essas notações no texto seguinte. Nota As instruções seguintes assumem que o link simbólico opcional, qemu, tenha sido criado. Além disso, o qemu deveria ser executado em um ambiente gráfico. Também é possível usar-se o qemu “sem uma parte superior” ou via SSH. Veja-se a documentação para as várias possibilidades. Disco Um disco virtual pode ser configurado da seguinte maneira: VDISK_SIZE=50G VDISK_FILENAME=vdisk.img qemu-img create -f qcow2 $VDISK_FILENAME $VDISK_SIZE O tamanho do disco virtual e o nome do arquivo deveriam ser ajustados conforme desejado. O tamanho atual do arquivo estará menor que o especificado, mas será expandido conforme necessário, de forma que é seguro colocar um valor alto. Operating System Para instalar um sistema operacional, baixe uma imagem ISO a partir da sua distribuição preferida Linux. Para os propósitos deste exemplo, usaremos Fedora-16-x86_64-Live-LXDE.iso no diretório atual. Execute o seguinte: qemu -enable-kvm \ -drive file=$VDISK_FILENAME \ -cdrom Fedora-16-x86_64-Live-LXDE.iso \ -boot d \ -m 1G Siga os procedimentos normais de instalação para a distribuição escolhida. A opção -boot especifica a ordem de inicialização das unidades como uma sequência de caracteres de letras de unidades. As letras de unidade válidas são: a, b (disquete 1 e 2), c (primeiro disco rígido), e d (primeiro CD-ROM). A opção -m é a quantidade de memória a usar-se para a máquina virtual. A escolha depende da carga do anfitrião. As distribuições modernas deveriam estar confortáveis com 4 GB. A opção -enable-kvm permite a aceleração de hardware. Sem essa chave, a emulação é muito mais lenta. Definindo o hardware virtual O hardware da máquina virtual é definido pela linha de comando do qemu. Um exemplo de comando é dado abaixo: qemu -enable-kvm \ -smp 4 \ -cpu host \ -m 1G \ -drive file=$VDISK_FILENAME \ -cdrom grub-img.iso \ -boot order=c,once=d,menu=on \ -net nic,netdev=net0 \ -netdev user,id=net0 \ -device ac97 \ -vga std \ -serial mon:stdio \ -name "fedora-16" Significado das opções da linha de comando -enable-kvm: habilita o suporte completo à virtualização KVM. Em alguns hardwares, possivelmente seja necessário adicionar a opção não documentada -machine smm=off para a finalidade de habilitar o KVM. -smp : habilita o multiprocessamento simétrico com CPUs. -cpu : simula a CPU . A lista dos modelos suportados pode ser obtida com -cpu help. -drive file=: define um disco virtual cuja imagem está armazenada em . -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=: define uma placa de rede de comunicação conectada ao dispositivo de rede de comunicação com id . -netdev user,id=: 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 : define o modelo da placa de som. A lista pode ser obtida com -soundhw help. -vga : 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 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 : 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=,if=virtio: fornece uma interface Virtio para o núcleo do convidado para acessar a imagem do disco, em vez de simular um hardware real de disco. Isso pode melhorar o desempenho de Entrada/Saída do disco, mas exige um controlador Virtio no núcleo do convidado. Use-o em vez de um -drive simples se o núcleo do convidado suportar Virtio. Para construir um núcleo Linux com suporte Virtio para o convidado, use make defconfig && make kvm_guest.config para criar uma configuração inicial do núcleo com as unidades Virtio habilitadas, então faça tua personalização. E, se o núcleo do convidado for Linux, os discos virtuais usando a interface Virtio serão nomeados vdx no devtmpfs, em vez de sdx. -net nic,netdev=net0,model=virtio-net-pci: fornece uma interface Virtio para o núcleo do convidado para acessar a interface de rede de intercomunicação, em vez de simular uma placa real de interface de rede de intercomunicação. Isso pode melhorar o desempenho de Entrada/Saída da rede de intercomunicação, mas exige um controlador Virtio no núcleo do convidado. Use-o em vez de um -net simples se o núcleo do convidado suportar Virtio. Controlando a Tela Emulada Para configurar a resolução da tela emulada para um servidor Xorg executando no sistema Linux convidado, leia-se [2434]“Configurações de Ajuste Fino de Exibição”. Rede de comunicação A solução acima para rede de intercomunicação permite que o convidado acesse a rede local de intercomunicação por meio do anfitrião (e possivelmente acesse a Internet por meio de roteadores locais), mas o inverso não é verdadeiro. Nem mesmo o anfitrião consegue acessar o convidado, a menos que o encaminhamento de porta esteja habilitado. E, no caso de vários convidados estarem executando, eles não conseguirão se comunicarem uns com os outros. Outros dispositivos de rede de intercomunicação podem ser usados para esse propósito. Por exemplo, existe o dispositivo “socket”, que permite que vários convidados compartilhem uma rede virtual de intercomunicação comum. Na seção seguinte, nós descrevemos em mais detalhes como configurar o dispositivo “bridge”, que permite que os convidados apareçam como se estivessem conectados à rede local de intercomunicação. Todos os comandos abaixo deveriam ser executados como o(a) usuário(a) root. Configure a ponte com o [2435]bridge-utils-1.7.1. Somente a(s) interface(s) física(s) deveria(m) ser configurada(s) na inicialização. A(s) interface(s) virtual(is) será(ão) adicionada(s) conforme necessária(s) quando o qemu for iniciado. Apronte um arquivo exigido de configuração: install -vdm 755 /etc/qemu && echo allow br0 > /etc/qemu/bridge.conf Na linha de comando do qemu acima, substitua a chave -netdev user,... por -netdev bridge,.... Conteúdo Aplicativos Instalados: elf2dmp, qemu (link simbólico), qemu-edid, qemu-ga, qemu-img, qemu-io, qemu-keymap, qemu-nbd, qemu-pr-helper, qemu-storage-daemon, qemu-system- e qemu-vmsr-helper Biblioteca Instalada: Nenhum(a) Diretórios Instalados: /usr/share/qemu e /usr/share/doc/qemu-9.2.2 (opcional) Descrições Curtas elf2dmp converte arquivos do formato elf para dmp qemu-edid é uma ferramenta de teste para o gerador EDID do qemu qemu-ga implementa suporte para comandos e eventos QMP (QEMU Monitor Protocol) que terminam e se originam, respectivamente, dentro do convidado usando um agente construído como parte do QEMU qemu-img fornece comandos para gerenciar imagens de disco do QEMU qemu-io é um aplicativo de diagnóstico e de manipulação para mídia (virtual) de memória. Ainda está em um estágio inicial de desenvolvimento qemu-keymap gera mapas de teclado reverso do qemu a partir de mapas de teclado do xkb, que podem ser usados com a chave de linha de comando "-k" do qemu qemu-nbd exporta imagens de disco do Qemu usando o protocolo QEMU Disk Network Block Device (NBD) qemu-pr-helper implementa o auxiliar persistente de reserva para QEMU qemu-storage-daemon permite que um(a) usuário(a) modifique imagens de disco usando o QEMU Monitor Protocol (QMP) sem executar uma MV qemu-system-x86_64 é o emulador PC System do QEMU qemu-vmsr-helper é um auxiliar virtual RAPL MSR para qemu Parte III. Bibliotecas e Utilitários Gerais Capítulo 9. Bibliotecas Gerais As bibliotecas contém código que geralmente é exigido por mais que um aplicativo. Isso tem a vantagem de que cada aplicativo não precisa duplicar código (e arriscar-se a introduzir defeitos); apenas tem de chamar funções a partir das bibliotecas instaladas no sistema. O exemplo mais óbvio de um conjunto de bibliotecas é a Glibc que é instalado durante o livro LFS. Essa contém todas as funções da biblioteca C que os aplicativos usam. Existem dois tipos de bibliotecas: estáticas e compartilhadas. As bibliotecas compartilhadas (geralmente libXXX.so) são carregadas na memória a partir da cópia compartilhada em tempo de execução (daí o nome). As bibliotecas estáticas (libXXX.a) são na verdade vinculadas ao próprio arquivo executável do aplicativo, dessa forma tornando o arquivo do aplicativo maior. Muitas vezes, você encontrará cópias estáticas e compartilhadas da mesma biblioteca em seu sistema. Geralmente, você somente precisa instalar as bibliotecas quando estiver instalando o software que precisa da funcionalidade que elas fornecem. No livro BLFS, cada pacote é apresentado com uma lista de dependências (conhecidas). Assim, você consegue descobrir quais bibliotecas precisa ter antes de instalar esse aplicativo. Se você estiver instalando algo sem usar as instruções do BLFS, geralmente o arquivo README ou o INSTALL conterá detalhes dos requisitos do aplicativo. Existem certas bibliotecas que quase todos(as) precisarão em algum ponto. Neste capítulo, essas e algumas outras estão listadas e é explicado por que você possivelmente queira instalá-las. Abseil-cpp-20250127.0 Introdução ao Abseil-cpp O pacote Abseil-cpp contém uma série de bibliotecas projetadas para aumentar a biblioteca padrão C++. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2436]https://github.com/abseil/abseil-cpp/releases/download/202501 27.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) Dependências de Abseil-cpp Exigidas [2437]CMake-3.31.5 Instalação do Abseil-cpp Instale Abseil-cpp executando os seguintes comandos: mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ -D ABSL_PROPAGATE_CXX_STD=ON \ -D BUILD_SHARED_LIBS=ON \ -G Ninja .. && ninja Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) root: ninja install Explicações do Comando -D ABSL_PROPAGATE_CXX_STD=ON: Esse parâmetro habilita propagar recursos C++ para alvos que linquem para as bibliotecas desse pacote. -D BUILD_SHARED_LIBS=ON: Esse parâmetro constrói versões compartilhadas das bibliotecas fornecidas por esse pacote em vez de bibliotecas estáticas. Conteúdo Aplicativos Instalados: Nenhum(a) Bibliotecas Instaladas: libabsl_bad_any_cast_impl.so, libabsl_bad_optional_access.so, libabsl_bad_variant_access.so, libabsl_base.so, libabsl_city.so, libabsl_civil_time.so, libabsl_cord_internal.so, libabsl_cord.so, libabsl_cordz_functions.so, libabsl_cordz_handle.so, libabsl_cordz_info.so, libabsl_cordz_sample_token.so, libabsl_crc32c.so, libabsl_crc_cord_state.so, libabsl_crc_cpu_detect.so, libabsl_crc_internal.so, libabsl_debugging_internal.so, libabsl_decode_rust_punycode.so, libabsl_demangle_internal.so, libabsl_demangle_rust.so, libabsl_die_if_null.so, libabsl_examine_stack.so, libabsl_exponential_biased.so, libabsl_failure_signal_handler.so, libabsl_flags_commandlineflag_internal.so, libabsl_flags_commandlineflag.so, libabsl_flags_config.so, libabsl_flags_internal.so, libabsl_flags_marshalling.so, libabsl_flags_parse.so, libabsl_flags_private_handle_accessor.so, libabsl_flags_program_name.so, libabsl_flags_reflection.so, libabsl_flags_usage_internal.so, libabsl_flags_usage.so, libabsl_graphcycles_internal.so, libabsl_hash.so, libabsl_hashtablez_sampler.so, libabsl_int128.so, libabsl_kernel_timeout_internal.so, libabsl_leak_check.so, libabsl_log_entry.so, libabsl_log_flags.so, libabsl_log_globals.so, libabsl_log_initalize.so, libabsl_log_internal_check_op.so, libabsl_log_internal_conditions.so, libabsl_log_internal_fnmatch.so, libabsl_log_internal_format.so, libabsl_log_internal_globals.so, libabsl_log_internal_log_sink_set.so, libabsl_log_internal_message.so, libabsl_log_internal_nullguard.so, libabsl_log_internal_proto.so, libabsl_log_severity.so, libabsl_log_sink.so, libabsl_low_level_hash.so, libabsl_malloc_internal.so, libabsl_periodic_sampler.so, libabsl_poison.so, libabsl_random_distributions.so, libabsl_random_internal_distribution_test_util.so, libabsl_random_internal_platform.so, libabsl_random_internal_pool_urbg.so, libabsl_random_internal_randen_hwaes_impl.so, libabsl_random_internal_randen_hwaes.so, libabsl_random_internal_randen_slow.so, libabsl_random_internal_randen.so, libabsl_random_internal_seed_material.so, libabsl_random_seed_gen_exception.so, libabsl_random_seed_sequences.so, libabsl_raw_hash_set.so, libabsl_raw_logging_internal.so, libabsl_scoped_set_env.so, libabsl_spinlock_wait.so, libabsl_stacktrace.so, libabsl_statusor.so, libabsl_status.so, libabsl_strerror.so, libabsl_str_format_internal.so, libabsl_strings_internal.so, libabsl_strings.so, libabsl_string_view.so, libabsl_symbolize.so, libabsl_synchronization.so, libabsl_throw_delegate.so, libabsl_time.so, libabsl_time_zone.so, libabsl_utf8_for_code_point.so e libabsl_vlog_config_internal.so Diretórios Instalados: /usr/include/absl, /usr/lib/cmake/absl AppStream-1.0.4 Introdução ao AppStream O pacote AppStream contém uma biblioteca e uma ferramenta que é útil para recuperar metadados de software e torná-los facilmente acessíveis para programas que precisam deles. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2438]https://www.freedesktop.org/software/appstream/releases/AppSt ream-1.0.4.tar.xz * Transferência (FTP): * 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) Dependências do AppStream Exigidas [2439]cURL-8.12.1, [2440]elogind-255.17, [2441]itstool-2.0.7, [2442]libxml2-2.13.6, [2443]libxmlb-0.3.21 e [2444]libyaml-0.2.5 Opcionais [2445]Gi-DocGen-2025.3, [2446]Qt-6.8.2, [2447]DAPS e [2448]libstemmer Instalação do AppStream Instale AppStream executando os seguintes comandos: mkdir build && cd build && meson setup --prefix=/usr \ --buildtype=release \ -D apidocs=false \ -D stemming=false .. && ninja Para testar os resultados, emita: ninja test. Agora, como o(a) usuário(a) root: ninja install && mv -v /usr/share/doc/appstream{,-1.0.4} Explicações do Comando --buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados. -D apidocs=false: Essa chave desabilita construir a documentação da API. Remova-a se você tiver [2449]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 [2450]libstemmer instalado e quiser pesquisas mais rápidas. -D qt=true: Use essa opção se você tiver [2451]Qt-6.8.2 instalado e quiser construir suporte para aplicativos Qt6 nesse pacote. Configurando AppStream Arquivos de Configuração /usr/share/metainfo/org.linuxfromscratch.lfs.xml Informação de Configuração AppStream espera um arquivo de meta informações do sistema operacional que descreva a distribuição GNU/Linux. Como o(a) usuário(a) root, crie o arquivo descrevendo o LFS: install -vdm755 /usr/share/metainfo && cat > /usr/share/metainfo/org.linuxfromscratch.lfs.xml << EOF org.linuxfromscratch.lfs Linux From Scratch A customized Linux system built entirely from source

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.

https://www.linuxfromscratch.org/lfs/ MIT The Linux From Scratch Editors

The development snapshot of the next LFS version.

Now contains Binutils 2.43.1, GCC-14.2.0, Glibc-2.40, and Linux kernel 6.10.

EOF Conteúdo Aplicativos Instalados: appstreamcli Bibliotecas Instaladas: libappstream.so Diretórios Instalados: /usr/include/appstream, /usr/share/doc/appstream-1.0.4 e /usr/share/installed-tests/appstream Descrições Curtas appstreamcli consulta informações a partir dos metadados do AppStream e a partir do índice de componente do AppStream libappstream.so contém funções que lidam com consultas de metadados do AppStream e solicitam informações a partir do índice de componente do AppStream appstream-glib-0.8.3 Introdução ao appstream-glib O appstream-glib fornece GObjects e métodos auxiliares para facilitar a leitura e a escrita de metadados do AppStream. Ele também fornece uma implementação DOM (Document Object Model) simples que facilita a edição de nós e a conversão de e para a representação XML padronizada. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2452]http://people.freedesktop.org/~hughsient/appstream-glib/relea ses/appstream-glib-0.8.3.tar.xz * Transferência (FTP): * 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) Dependências do appstream-glib Exigidas [2453]cURL-8.12.1, [2454]gdk-pixbuf-2.42.12, [2455]GTK-3.24.48 e [2456]libarchive-3.7.7 Opcionais [2457]docbook-xml-4.5, [2458]docbook-xsl-nons-1.79.2, [2459]GTK-Doc-1.34.0, [2460]libxslt-1.1.42 e [2461]libyaml-0.2.5 Instalação do appstream-glib Instale appstream-glib executando os seguintes comandos: mkdir build && cd build && meson setup .. \ --prefix=/usr \ --buildtype=release \ -D rpm=false && ninja Para testar os resultados, emita: ninja test. Agora, como o(a) usuário(a) root: ninja install Conteúdo Aplicativos Instalados: appstream-builder, appstream-compose e appstream-util Bibliotecas Instaladas: libappstream-glib.so Diretórios Instalados: /usr/include/libappstream-glib, /usr/lib/asb-plugins-5 e /usr/share/installed-tests/appstream-glib Descrições Curtas appstream-builder constrói metadados do AppStream appdata-compose gera metadados do AppStream appstream-util É uma ferramenta de gerenciamento para appstream-builder libappstream-glib.so contém as funções da API Apr-1.7.5 Introdução à Apr O Apache Portable Runtime (APR) é uma biblioteca de suporte para o servidor web Apache. Ela fornece um conjunto de interfaces de programação de aplicativos (APIs) que mapeiam para o sistema operacional (SO) subjacente. Onde o sistema operacional não suportar uma função específica, o APR fornecerá uma emulação. Assim, os(as) programadores(as) conseguem usar a APR para tornar um aplicativo portátil em diferentes plataformas. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2462]https://archive.apache.org/dist/apr/apr-1.7.5.tar.bz2 * Transferência (FTP): * Soma de verificação MD5 da transferência: 8b156d4d0e804cb1f172312ffe087c25 * Tamanho da transferência: 880 KB * Espaço em disco estimado exigido: 11 MB (adicionais 4 MB para os testes) * Tempo de construção estimado: 0,2 UPC (adicionar 1,7 UPC para testes) Instalação da APR Instale Apr executando os seguintes comandos: ./configure --prefix=/usr \ --disable-static \ --with-installbuilddir=/usr/share/apr-1/build && make Para testar os resultados, emita: make test. Agora, como o(a) usuário(a) root: make install Explicações do Comando --disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas. Conteúdo Aplicativo Instalado: apr-1-config Biblioteca Instalada: libapr-1.so Diretórios Instalados: /usr/include/apr-1 e /usr/share/apr-1 Descrições Curtas apr-1-config é um script de shell usado para recuperar informação a respeito da biblioteca APR no sistema. É normalmente usado para compilar e vincular à biblioteca libapr-1.so é a biblioteca Apache Portable Runtime Apr-Util-1.6.3 Introdução à Apr Util A Apache Portable Runtime Utility Library fornece uma interface previsível e consistente para as interfaces subjacentes da biblioteca do cliente. Essa interface de programação de aplicativo garante comportamento previsível, se não idêntico, independentemente de quais bibliotecas estão disponíveis em uma determinada plataforma. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2463]https://archive.apache.org/dist/apr/apr-util-1.6.3.tar.bz2 * Transferência (FTP): * Soma de verificação MD5 da transferência: b6e8c9b31d938fe5797ceb0d1ff2eb69 * Tamanho da transferência: 423 KB * Espaço em disco estimado exigido: 7,6 MB (adicionar 1,4 MB para os testes) * Tempo de construção estimado: menos que 0,1 UPC (adicionar 0,3 UPC para testes) Dependências da Apr Util Exigidas [2464]Apr-1.7.5 Opcionais [2465]FreeTDS, [2466]MariaDB-11.4.5 ou [2467]MySQL, [2468]OpenLDAP-2.6.9, [2469]PostgreSQL-17.4, [2470]SQLite-3.49.1, [2471]unixODBC-2.3.12 e [2472]Berkeley DB (obsoleto) Instalação da Apr Util Instale a Apr Util executando os seguintes comandos: ./configure --prefix=/usr \ --with-apr=/usr \ --with-gdbm=/usr \ --with-openssl=/usr \ --with-crypto && make Para testar os resultados, emita: make -j1 test. Um teste, "testdbm", é conhecido por falhar. Agora, como o(a) usuário(a) root: make install Explicações do Comando --with-gdbm=/usr: Essa chave habilita o plugin apr_dbm_gdbm-1.so. --with-openssl=/usr --with-crypto: Essas chaves habilitam o plugin apr_crypto_openssl-1.so. --with-berkeley-db=/usr: Se você tiver instalado [2473]Berkeley DB (obsoleto), use essa chave para compilar o plugin apr_dbm_db-1.so. --with-ldap: se você tiver instalado [2474]OpenLDAP-2.6.9, [então] use essa chave para compilar o plugin apr_ldap.so. Conteúdo Aplicativo Instalado: apu-1-config Biblioteca Instalada: libaprutil-1.so Diretório Instalado: /usr/lib/apr-util-1 Descrições Curtas apu-1-config é um script APR-util projetado para permitir acesso fácil, via linha de comando, aos parâmetros de configuração do APR-util libaprutil-1.so contém funções que fornecem uma interface previsível e consistente para as interfaces subjacentes da biblioteca do cliente Aspell-0.60.8.1 Introdução ao Aspell O pacote Aspell contém um aplicativo interativo de verificação ortográfica e as bibliotecas Aspell. Aspell pode, ou ser usado como uma biblioteca, ou como um verificador ortográfico independente. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2475]https://ftp.gnu.org/gnu/aspell/aspell-0.60.8.1.tar.gz * Transferência (FTP): * Soma de verificação MD5 da transferência: 187bd142f522ada555c7aa6b9cbf56e6 * Tamanho da transferência: 3,4 MB * Espaço em disco estimado exigido: 41 MB (8 MB adicionais para dicionário inglês) * Tempo de construção estimado: 0,4 UPC Transferências Adicionais Você precisará baixar pelo menos um dicionário. O dicionário do inglês é fornecido como um exemplo abaixo. Dicionários em muitos outros idiomas podem ser encontrados em [2476]https://ftp.gnu.org/gnu/aspell/dict. * Dicionário inglês do Aspell: [2477]https://ftp.gnu.org/gnu/aspell/dict/en/aspell6-en-2020.12.07- 0.tar.bz2 Dependências de Aspell Exigidas [2478]Which-2.23 (para os dicionários) Instalação do Aspell Instale Aspell executando os seguintes comandos: ./configure --prefix=/usr && make Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) root: make install && ln -svfn aspell-0.60 /usr/lib/aspell && install -v -m755 -d /usr/share/doc/aspell-0.60.8.1/aspell{,-dev}.html && install -v -m644 manual/aspell.html/* \ /usr/share/doc/aspell-0.60.8.1/aspell.html && install -v -m644 manual/aspell-dev.html/* \ /usr/share/doc/aspell-0.60.8.1/aspell-dev.html Se você não planeja instalar Ispell, então copie o script amarrador ispell: install -v -m 755 scripts/ispell /usr/bin/ Se você não planeja instalar Spell, então copie o script amarrador spell: install -v -m 755 scripts/spell /usr/bin/ Explicações do Comando ln -svfn aspell-0.60 /usr/lib/aspell: Esse comando é útil para configuração de outros aplicativos, como [2479]enchant-2.8.2. Configurando Aspell Informação de Configuração Depois que Aspell estiver instalado, você precisa configurar pelo menos um dicionário. Instale o dicionário do inglês executando os seguintes comandos: tar xf ../aspell6-en-2020.12.07-0.tar.bz2 && cd aspell6-en-2020.12.07-0 && ./configure && make Agora, como o(a) usuário(a) root: make install Outros dicionários podem ser instalados com as mesmas instruções. Conteúdo Aplicativos Instalados: aspell, aspell-import, precat, preunzip, prezip, prezip-bin, pspell-config, run-with-aspell, word-list-compress e, opcionalmente, ispell e spell. Bibliotecas Instaladas: libaspell.so e libpspell.so Diretórios Instalados: /usr/include/pspell e /usr/lib/aspell-0.60 Descrições Curtas aspell é um utilitário que consegue funcionar como substituto do ispell -a, como um verificador ortográfico independente, como um utilitário de teste para testar os recursos do Aspell e como um utilitário para gerenciar dicionários ispell é um amarrador em torno de aspell para invocá-lo no modo compatível com ispell spell é um amarrador em torno de aspell para invocá-lo no modo compatível com spell aspell-import importa dicionários pessoais antigos para Aspell precat descomprime um arquivo prezip para a saída gerada padrão preunzip descomprime um arquivo prezip prezip é um compressor de prefixo delta, usado para comprimir listas de palavras classificadas ou outros arquivos de texto semelhantes prezip-bin é chamado pelos vários scripts amarradores para realizar a atual compressão e descompressão pspell-config exibe informação a respeito da instalação do libpspell, principalmente para uso em scripts de construção run-with-aspell é um script para ajudar a usar Aspell como substituto de ispell word-list-compress comprime ou descomprime listas de palavras classificadas para uso com o verificador ortográfico Aspell libaspell.so contém funções da API de verificação ortográfica libpspell.so é uma interface para a biblioteca libaspell. Toda a funcionalidade de verificação ortográfica agora está em libaspell, mas essa biblioteca está incluída para compatibilidade com versões anteriores boost-1.87.0 Introdução ao Boost O Boost fornece um conjunto de bibliotecas gratuitas de fonte C++ portáteis revisadas por pares. Inclui bibliotecas para álgebra linear, geração de números pseudo-aleatórios, multi encadeamento, processamento de imagens, expressões regulares e testes de unidade. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Nota Esse pacote extrairá para o diretório boost-1.87.0/. Informação do Pacote * Transferência (HTTP): [2480]https://github.com/boostorg/boost/releases/download/boost-1.8 7.0/boost-1.87.0-b2-nodocs.tar.xz * Transferência (FTP): * 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) Dependências de Boost Recomendadas [2481]Which-2.23 Opcionais [2482]ICU-76.1, [2483]NumPy-2.2.3 e [2484]Open MPI Observações de Editor(a): [2485]https://wiki.linuxfromscratch.org/blfs/wiki/boost Instalação do Boost Primeiro, corrija um problema de construção que ocorre na biblioteca stacktrace. Esse problema é específico para sistemas i686. case $(uname -m) in i?86) sed -e "s/defined(__MINGW32__)/& || defined(__i386__)/" \ -i ./libs/stacktrace/src/exception_headers.h ;; esac Esse pacote pode ser construído com várias tarefas executando em paralelo. Nas instruções abaixo, todos os núcleos lógicos disponíveis são usados. Substitua $(nproc) pelo número de núcleos lógicos que você deseja usar se não quiser usar todos. Instale Boost executando os seguintes comandos: ./bootstrap.sh --prefix=/usr --with-python=python3 && ./b2 stage -j$(nproc) threading=multi link=shared Para executar os testes de regressão do Boost.Build, emita pushd tools/build/test; python3 test_all.py; popd. Para executar os testes de regressão de cada biblioteca, emita pushd status; ../b2 -j$(nproc); popd. Alguns testes possivelmente falhem. Eles levam um tempo muito longo (mais de 119 UPC em -j4) e usam uma quantidade muito grande de espaço em disco (46 GB). Nota O Boost instala muitos diretórios versionados em /usr/lib/cmake. Se uma nova versão do Boost for instalada sobre uma versão anterior, [então] os diretórios do cmake mais antigos precisam ser explicitamente removidos. Para fazer isso, execute como o(a) usuário(a) root: rm -rf /usr/lib/cmake/[Bb]oost* antes de instalar a nova versão. Agora, como o(a) usuário(a) root: ./b2 install threading=multi link=shared Explicações do Comando threading=multi: Esse parâmetro garante que Boost seja construído com suporte a multi encadeamento. link=shared: Esse parâmetro garante que somente bibliotecas compartilhadas sejam criadas, exceto "libboost_exception" e "libboost_test_exec_monitor" que são criadas como estáticas. A maioria das pessoas não precisará das bibliotecas estáticas, e a maioria dos aplicativos que usam o Boost usa somente os cabeçalhos. Omita esse parâmetro se precisar das bibliotecas estáticas. --with-python=python3: Essa chave garante que o "Python3" seja usado se o "Python2" estiver instalado. Conteúdo Aplicativos Instalados: Nenhum(a) Bibliotecas Instaladas: libboost_atomic.so, libboost_charconv.so, libboost_chrono.so, libboost_container.so, libboost_context.so, libboost_contract.so, libboost_coroutine.so, libboost_date_time.so, libboost_exception.a, libboost_fiber.so, libboost_filesystem.so, libboost_graph.so, libboost_iostreams.so, libboost_json.so, libboost_locale.so, libboost_log_setup.so, libboost_log.so, libboost_math_c99.so, libboost_math_c99f.so, libboost_math_c99l.so, libboost_math_tr1.so, libboost_math_tr1f.so, libboost_math_tr1l.so, libboost_nowide.so, libboost_numpy313.so, libboost_prg_exec_monitor.so, libboost_program_options.so, libboost_python313.so, libboost_random.so, libboost_regex.so, libboost_serialization.so, libboost_stacktrace_addr2line.so, libboost_stacktrace_basic.so, libboost_stacktrace_noop.so, libboost_system.so, libboost_test_exec_monitor.a, libboost_thread.so, libboost_timer.so, libboost_type_erasure.so, libboost_unit_test_framework.so, libboost_url.so, libboost_wave.so e libboost_wserialization.so Diretório Instalado: /usr/include/boost Descrições Curtas libboost_*.so contém bibliotecas que fornecem uma variedade de funções, incluindo envolucradores para NumPy, álgebra linear, geração de números pseudoaleatórios, multi camadeamento, processamento de imagens, expressões regulares, testes de unidade, localidades, JSON, registro, gráficos e depuração brotli-1.1.0 Introdução ao Brotli Brotli fornece um algoritmo de compressão sem perdas de propósito geral que comprime dados usando uma combinação de uma variante moderna do algoritmo LZ77, codificação Huffman e modelagem de contexto de segunda ordem. As bibliotecas dele são usadas principalmente para fontes WOFF2 em páginas da web. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2486]https://github.com/google/brotli/archive/v1.1.0/brotli-1.1.0. tar.gz * Transferência (FTP): * Soma de verificação MD5 da transferência: 3a6a3dba82a3604792d3cb0bd41bca60 * Tamanho da transferência: 500 KB * Espaço em disco estimado exigido: 33 MB (com ligações python3) * Tempo de construção estimado: 0,3 UPC (com ligações python3; paralelismo=4) Dependências do Brotli Exigidas [2487]CMake-3.31.5 Opcionais [2488]pytest-8.3.4 (para testagem de ligações Python3) Instalação do Brotli Instale o brotli executando os seguintes comandos: mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ .. && make Para testar os resultados, emita: make test. Agora, como o(a) usuário(a) root: make install Se desejado, construa as ligações Python3: cd .. && sed "/c\/.*\.[ch]'/d;\ /include_dirs=\[/\ i libraries=['brotlicommon','brotlidec','brotlienc']," \ -i setup.py && pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD Instale as ligações Python3 como o(a) usuário(a) root: pip3 install --no-index --find-links dist --no-user Brotli Para testar a ligação Python3, emita: pytest. Explicações do Comando sed ... -i setup.py: Impede que setup.py reconstrua o pacote inteiro novamente; use as bibliotecas já instaladas para a ligação Python3 em vez disso. Conteúdo Aplicativos Instalados: brotli Bibliotecas Instaladas: libbrotlicommon.so, libbrotlidec.so e libbrotlienc.so Diretórios Instalados: /usr/include/brotli e /usr/lib/python3.13/site-packages/Brotli-1.1.0.dist-info (se você construiu e instalou as ligações Python3) Descrições Curtas brotli consegue comprimir ou descomprimir arquivos ou testar a integridade de arquivos comprimidos libbrotlicommon{-static.a,.so} é a biblioteca de dicionário comum Brotli libbrotlidec{-static.a,.so} é a biblioteca do decodificador Brotli libbrotlienc{-static.a,.so} é a biblioteca do codificador comum Brotli CLucene-2.3.3.4 Introdução ao CLucene CLucene é uma versão C++ do Lucene, um mecanismo de pesquisa de texto de alto desempenho. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2489]https://downloads.sourceforge.net/clucene/clucene-core-2.3.3. 4.tar.gz * Transferência (FTP): * 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 Transferências Adicionais * Remendo exigido: [2490]https://www.linuxfromscratch.org/patches/blfs/12.3/clucene-2. 3.3.4-contribs_lib-1.patch Dependências de CLucene Exigidas [2491]CMake-3.31.5 Recomendadas [2492]Boost-1.87.0 Instalação do CLucene Instale CLucene executando os seguintes comandos: patch -Np1 -i ../clucene-2.3.3.4-contribs_lib-1.patch && sed -i '/Misc.h/a #include ' src/core/CLucene/document/DateTools.cpp && mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D BUILD_CONTRIBS_LIB=ON .. && make Agora, como o(a) usuário(a) root: make install Explicações do Comando -D BUILD_CONTRIBS_LIB=ON: Essa variável cmake habilita construir a biblioteca contribs do CLucene necessária para executar aplicativos que usam analisadores específicos de texto de idioma como o LibreOffice, por exemplo. Conteúdo Aplicativos Instalados: Nenhum(a) Bibliotecas Instaladas: libclucene-contribs-lib.so, libclucene-core.so e libclucene-shared.so Diretórios Instalados: /usr/include/CLucene e /usr/lib/CLuceneConfig.cmake dbus-glib-0.112 Introdução à GLib do D-Bus O pacote D-Bus GLib contém interfaces GLib para a API D-Bus. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2493]https://dbus.freedesktop.org/releases/dbus-glib/dbus-glib-0.1 12.tar.gz * Transferência (FTP): * 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) Dependências da GLib do D-Bus Exigidas [2494]dbus-1.16.0 e [2495]GLib-2.82.5 Opcionais [2496]GTK-Doc-1.34.0 Instalação da GLib do D-Bus Instale D-Bus GLib executando os seguintes comandos: ./configure --prefix=/usr \ --sysconfdir=/etc \ --disable-static && make Para testar os resultados, emita: make check. Observe que testes mais abrangentes podem ser executados seguindo o mesmo método usado nas instruções do D-Bus, o que exige construir o pacote duas vezes. Agora, como o(a) usuário(a) root: make install Explicações do Comando --disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas. --enable-gtk-doc: Use esse parâmetro se GTK-Doc estiver instalado e você desejar reconstruir e instalar a documentação da API. Conteúdo Aplicativo Instalado: dbus-binding-tool Biblioteca Instalada: libdbus-glib-1.so Diretórios Instalados: /usr/share/gtk-doc/html/dbus-glib Descrições Curtas dbus-binding-tool é uma ferramenta usada para interagir com a API do D-Bus libdbus-glib-1.so contém funções de interface GLib para a API do D-Bus Double-conversion-3.3.1 Introdução ao Double-conversion O pacote Double-conversion contém uma biblioteca que facilita as rotinas binário-para-decimal e decimal-para-binário para duplos IEEE. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2497]https://github.com/google/double-conversion/archive/v3.3.1/do uble-conversion-3.3.1.tar.gz * Transferência (FTP): * 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) Dependências de Double-conversion Exigidas [2498]CMake-3.31.5 Instalação do Double-conversion Instale Double-conversion executando os seguintes comandos: mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D BUILD_SHARED_LIBS=ON \ -D BUILD_TESTING=ON \ .. && make Para testar os resultados, emita: make test. Agora, como o(a) usuário(a) root: make install Explicações do Comando -D BUILD_SHARED_LIBS=ON: Essa chave força o cmake a construir uma versão compartilhada da biblioteca em vez da versão estática. -D BUILD_TESTING=ON: Essa chave constrói os aplicativos de teste. Conteúdo Aplicativos Instalados: Nenhum(a) Bibliotecas Instaladas: libdouble-conversion.so Diretórios Instalados: /usr/include/double-conversion Descrições Curtas libdouble-conversion.so fornece rotinas binário-para-decimal e decimal-para-binário para duplos IEEE duktape-2.7.0 Introdução ao duktape duktape é um mecanismo embutível Javascript, com foco em portabilidade e pegada compacta. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2499]https://duktape.org/duktape-2.7.0.tar.xz * Transferência (FTP): * Soma de verificação MD5 da transferência: b3200b02ab80125b694bae887d7c1ca6 * Tamanho da transferência: 1003 KB * Espaço em disco estimado exigido: 25 MB * Tempo de construção estimado: 0,3 UPC Instalação do duktape Instale duktape executando os seguintes comandos: sed -i 's/-Os/-O2/' Makefile.sharedlibrary make -f Makefile.sharedlibrary INSTALL_PREFIX=/usr Agora, como o(a) usuário(a) root: make -f Makefile.sharedlibrary INSTALL_PREFIX=/usr install Conteúdo Aplicativos Instalados: Nenhum(a) Bibliotecas Instaladas: libduktape.so e libduktaped.so Diretórios Instalados: Nenhum(a) Descrições Curtas libduktape.so é um mecanismo embutível Javascript libduktaped.so é uma versão de depuração de libduktape.so enchant-2.8.2 Introdução ao enchant O pacote enchant fornece uma interface genérica para várias bibliotecas existentes de verificação ortográfica. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2500]https://github.com/rrthomas/enchant/releases/download/v2.8.2/ enchant-2.8.2.tar.gz * Transferência (FTP): * 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) Dependências de enchant Exigidas [2501]GLib-2.82.5 Recomendadas [2502]Aspell-0.60.8.1 Opcionais [2503]dbus-glib-0.112, [2504]Doxygen-1.13.2, [2505]Hspell, [2506]Hunspell, [2507]Nuspell, [2508]Voikko e [2509]unittest-cpp (exigido para os testes) Instalação do enchant Instale enchant executando os seguintes comandos: ./configure --prefix=/usr \ --disable-static \ --docdir=/usr/share/doc/enchant-2.8.2 && make Para executar os testes, unittest-cpp precisa ser instalado e a opção --enable-relocatable passada para o "configure" acima. Se essas condições estiverem presentes, [então] os testes podem ser executados com make check. Agora, como o(a) usuário(a) root: make install Explicações do Comando --disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas. Configurando enchant Arquivos de Configuração ~/.enchant e /usr/share/enchant/enchant.ordering Informação de Configuração Você consegue testar sua instalação e configuração criando um arquivo de teste e executando os seguintes comandos (você pode substituir o dicionário en_GB por qualquer outro baixado ao instalar [2510]Aspell-0.60.8.1): cat > /tmp/test-enchant.txt << "EOF" Tel me more abot linux Ther ar so many commads EOF enchant-2 -d en_GB -l /tmp/test-enchant.txt && enchant-2 -d en_GB -a /tmp/test-enchant.txt Você verá uma lista de palavras com erros ortográficos seguida por uma lista de alternativas para elas. Veja mais detalhes na página de manual do "enchant". Conteúdo Aplicativos Instalados: enchant-2 e enchant-lsmod-2 Bibliotecas Instaladas: libenchant-2.so Diretórios Instalados: /usr/include/enchant-2, /usr/lib/enchant-2, /usr/share/enchant e /usr/share/doc/enchant-2.8.2 Descrições Curtas enchant-2 é um verificador ortográfico enchant-lsmod-2 lista estruturas de retaguarda, idiomas e dicionários disponíveis libenchant-2.so contém funções da API da interface de verificação ortográfica Exempi-2.6.5 Introdução ao Exempi Exempi é uma implementação do XMP (Extensible Metadata Platform da Adobe). Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2511]https://libopenraw.freedesktop.org/download/exempi-2.6.5.tar. xz * Transferência (FTP): * Soma de verificação MD5 da transferência: 51fe14c2a5fa44816ba8187c6ad87d78 * Tamanho da transferência: 2,7 MB * Espaço em disco estimado exigido: 289 MB (adicionar 236 MB para testes) * Tempo de construção estimado: 0,4 UPC (adicionar 0,6 UPC para testes; ambos usando paralelismo=4) Dependências de Exempi Exigidas [2512]Boost-1.87.0 Opcionais [2513]Valgrind-3.24.0 Instalação do Exempi Se você pretende executar os testes de regressão, primeiro remova um teste que depende de um SDK proprietário da Adobe: sed -i -r '/^\s?testadobesdk/d' exempi/Makefile.am && autoreconf -fiv Instale Exempi executando os seguintes comandos: ./configure --prefix=/usr --disable-static && make Para testar os resultados, emita: make check. Agora, como o(a) usuário(a) root: make install Explicações do Comando --disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas. Conteúdo Aplicativo Instalado: exempi Biblioteca Instalada: libexempi.so Diretório Instalado: /usr/include/exempi-2.0 Descrições Curtas exempi é uma ferramenta de linha de comando para manipular metadados XMP libexempi.so é uma biblioteca usada para analisar os metadados XMP fftw-3.3.10 Introdução ao fftw FFTW é uma biblioteca de sub-rotina C para calcular a transformada discreta de Fourier (DFT) em uma ou mais dimensões, de tamanho arbitrário de entrada gerada e de dados reais e complexos (bem como de dados pares/ímpares, ou seja, as transformações discretas de cosseno/seno ou DCT/DST). Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2514]https://www.fftw.org/fftw-3.3.10.tar.gz * Transferência (FTP): * Soma de verificação MD5 da transferência: 8ccbf6a5ea78a16dbc3e1306e234cc5c * Tamanho da transferência: 4,0 MB * Espaço em disco estimado exigido: 59 MB * Tempo de construção estimado: 1,6 UPC (adicionar 3,4 UPC para testes, ambos usando paralelismo=4) Instalação da fftw Nota Construímos a fftw três vezes para diferentes bibliotecas em diferentes precisões numéricas: o ponto flutuante de precisão dupla padrão, a versão mais antiga de 32 bits (precisão única) chamada "float", que sacrifica a precisão pela velocidade, e o duplo longo, que oferece maior precisão ao custo de execução mais lenta. A primeira construção é para aritmética de precisão dupla. Instale a fftw executando os seguintes comandos: ./configure --prefix=/usr \ --enable-shared \ --disable-static \ --enable-threads \ --enable-sse2 \ --enable-avx \ --enable-avx2 && make Para testar os resultados, emita: make check. Em sistemas de 32 bits, os testes podem tomar substancialmente mais tempo que tomaria em máquinas de 64 bits. Agora, como o(a) usuário(a) root: make install Agora construa precisão única: make clean && ./configure --prefix=/usr \ --enable-shared \ --disable-static \ --enable-threads \ --enable-sse2 \ --enable-avx \ --enable-avx2 \ --enable-float && make Como o(a) usuário(a) root: make install Finalmente, construa precisão dupla longa: make clean && ./configure --prefix=/usr \ --enable-shared \ --disable-static \ --enable-threads \ --enable-long-double && make Como o(a) usuário(a) root: make install Explicações do Comando --enable-shared --disable-static: Use bibliotecas compartilhadas em vez de bibliotecas estáticas. --enable-threads: Isso habilita libfftw3_threads.so para ser compilada. Ela é usada, por exemplo, pelo plugin gimp proveniente de [2515]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 [2516]PulseAudio-17.0. --enable-long-double: Isso habilita construir a biblioteca que usa aritmética de ponto flutuante longa-dupla de maior precisão. A biblioteca será chamada libfftw3l.so. --enable-avx512: Isso habilita construir as rotinas otimizadas usando instruções AVX512F. O FFTW verificará se essas rotinas podem realmente ser usadas na CPU atual quando a biblioteca FFTW for carregada, de forma que uma construção da FFTW com essas rotinas habilitadas ainda possa executar em uma CPU sem o AVX512F. Use essa opção se a construção da FFTW será usada em uma CPU com AVX512F. Essa opção não é compatível com --enable-long-double. Conteúdo Aplicativos Instalados: fftw-wisdom e fftw-wisdom-to-conf Bibliotecas Instaladas: libfftw3.so, libfftw3_threads.so, libfftw3f.so, libfftw3f_threads.so, libfftw3l.so e libfftw3l_threads.so Diretórios Instalados: Nenhum(a) Descrições Curtas fftw-wisdom é um utilitário para gerar arquivos de sabedoria FFTW, que contém informação salva a respeito do como otimizadamente calcular transformações (Fourier) de vários tamanhos fftw-wisdom-to-conf é um utilitário para gerar rotinas de configuração C a partir de arquivos de sabedoria FFTW, onde os últimos contém informação salva a respeito do como otimizadamente calcular transformações (Fourier) de vários tamanhos libfftw3.so é a biblioteca Fast Fourier Transform libfftw3_threads.so é a biblioteca encadeada Fast Fourier Transform libfftw3f.so é a biblioteca Fast Fourier Transform de precisão simples, descrita como “float” por razões históricas libfftw3f_threads.so é a biblioteca encadeada de precisão simples Fast Fourier Transform libfftw3l.so é a biblioteca longa dupla Fast Fourier Transform libfftw3l_threads.so é a biblioteca encadeada longa dupla Fast Fourier Transform fmt-11.1.4 Introdução ao fmt O pacote fmt é uma biblioteca de formatação de fonte aberto que fornece uma alternativa rápida e segura ao stdio do C e ao iostreams do C++. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2517]https://github.com/fmtlib/fmt/archive/11.1.4/fmt-11.1.4.tar.g z * Transferência (FTP): * Soma de verificação MD5 da transferência: 10c2ae163accd3b82e6b8b4dff877645 * Tamanho da transferência: 688 KB * Espaço em disco estimado exigido: 44 MB (com testes) * Tempo de construção estimado: 0,4 UPC (usando paralelismo = 4; com os testes) Instalação do fmt Instale fmt executando os seguintes comandos: mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_INSTALL_LIBDIR=/usr/lib \ -D BUILD_SHARED_LIBS=ON \ -D FMT_TEST=OFF \ -G Ninja .. && ninja Se você tiver habilitado testes, emita: ninja test. Agora, como o(a) usuário(a) root: ninja install Explicações do Comando -D FMT_TEST=OFF: Essa chave inicializa os testes do pacote. Configure para ON se você desejar executar testes. Conteúdo Aplicativos Instalados: Nenhum(a) Bibliotecas Instaladas: libfmt.so Diretórios Instalados: /usr/include/fmt e /usr/lib/cmake/fmt GLib-2.82.5 Introdução ao GLib O pacote GLib contém bibliotecas de baixo nível úteis para fornecer manipulação de estrutura de dados para C, amarradores de portabilidade e interfaces para funcionalidades em tempo de execução, como um loop de eventos, camadas, carregamento dinâmico e um sistema de objetos. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2518]https://download.gnome.org/sources/glib/2.82/glib-2.82.5.tar. xz * Transferência (FTP): * Soma de verificação MD5 da transferência: 87c7641e80b23a05b8ab506d52c970e3 * Tamanho da transferência: 5,3 MB * Espaço em disco estimado exigido: 229 MB (adicionar 22 MB para os testes) * Tempo de construção estimado: 0,7 UPC (adicionar 0,4 UPC para testes; ambos usando paralelismo=4) Transferências Adicionais GObject Introspection (Recomendado) * Transferência: [2519]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) * Remendo opcional: [2520]https://www.linuxfromscratch.org/patches/blfs/12.3/glib-skip_ warnings-1.patch Dependências de GLib Recomendadas [2521]docutils-0.21.2, [2522]libxslt-1.1.42 e [2523]pcre2-10.45 Opcionais [2524]Cairo-1.18.2 (para alguns testes do GObject Introspection), [2525]dbus-1.16.0 (para alguns testes), [2526]Fuse-3.16.2 e [2527]bindfs (ambos necessários para um teste), [2528]GDB-16.2 (para ligações), [2529]Gjs-1.82.1 (para alguns testes do GObject Introspection), [2530]GTK-Doc-1.34.0 (para documentação do GObject Introspection), [2531]docbook-xml-4.5, [2532]docbook-xsl-nons-1.79.2, [2533]Gi-DocGen-2025.3 (para construir documentação de API), [2534]glib-networking-2.80.1 (para alguns testes, mas isso é uma dependência circular), [2535]Mako-1.3.9 e [2536]Markdown-3.7 (ambos para g-ir-doc-tool) e [2537]sysprof Dependências Adicionais de Tempo de Execução 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 [2538]shared-mime-info-2.4 e [2539]desktop-file-utils-0.28, respectivamente. Esses dois utilitários também são necessários para alguns testes. Instalação do GLib Se desejado, aplique o remendo opcional. Em muitos casos, os aplicativos que usam essa biblioteca, direta ou indiretamente, por meio de outras bibliotecas, tais como [2540]GTK-3.24.48, emitem numerosos avisos quando executados a partir da linha de comando. Esse remendo habilita o uso de uma variável de ambiente, GLIB_LOG_LEVEL, que suprime mensagens indesejadas. O valor da variável é um dígito que corresponde a: 1 Alerta 2 Crítico 3 Erro 4 Aviso 5 Informe Por exemplo, export GLIB_LOG_LEVEL=4 pulará a saída gerada de mensagens Warning e Notice (e mensagens de Informação/Depuração se estiverem ativadas). Se GLIB_LOG_LEVEL não estiver definida, a saída gerada normal de mensagem não será afetada. patch -Np1 -i ../glib-skip_warnings-1.patch Atenção Se uma versão anterior da glib estiver instalada, [então] mova os cabeçalhos para fora do caminho, de modo que os pacotes posteriores não encontrem conflitos: if [ -e /usr/include/glib-2.0 ]; then rm -rf /usr/include/glib-2.0.old && mv -vf /usr/include/glib-2.0{,.old} fi Instale GLib executando os seguintes comandos: mkdir build && cd build && meson setup .. \ --prefix=/usr \ --buildtype=release \ -D introspection=disabled \ -D glib_debug=disabled \ -D man-pages=enabled \ -D sysprof=disabled && ninja A suíte de teste da GLib exige desktop-file-utils para alguns testes. No entanto, desktop-file-utils exige a GLib para a finalidade de compilar; portanto, você precisa primeiro instalar a GLib e então executar a suíte de teste. Como o(a) usuário(a) root, instale esse pacote pela primeira vez para permitir construir o GObject Introspection: ninja install Construa GObject Introspection: tar xf ../../gobject-introspection-1.82.0.tar.xz && meson setup gobject-introspection-1.82.0 gi-build \ --prefix=/usr --buildtype=release && ninja -C gi-build Para testar os resultados do GObject Introspection, emita: ninja -C gi-build test. Como o(a) usuário(a) root, instale o GObject Introspection para gerar os dados de introspecção das bibliotecas GLib (requeridos por vários pacotes usantes do Glib, especialmente alguns pacotes do GNOME): ninja -C gi-build install Agora gere os dados de introspecção: meson configure -D introspection=enabled && ninja Se você tiver [2541]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 [2542]desktop-file-utils-0.28 e [2543]shared-mime-info-2.4 e proceder à execução da suíte de teste. Atenção Não execute a suíte de teste como root ou alguns testes falharão inesperadamente e deixarão alguns diretórios não compatíveis com FHS na hierarquia /usr. Para testar os resultados, depois de ter instalado os pacotes, emita: LC_ALL=C ninja test como um(a) usuário(a) não-root. Explicações do Comando --buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados. -D man-pages=enabled: Essa chave faz com que a construção crie e instale as páginas de manual do pacote. -D glib_debug=disabled: Essa chave faz com que a construção não inclua algumas verificações caras para depuração nos programas e bibliotecas construídos. -D sysprof=disabled: Essa chave desabilita o suporte de rastreamento para sysprof. Remova essa opção se você quiser o suporte de rastreamento. Observe que se o sysprof não estiver instalado, remover essa opção fará com que o sistema de construção baixe uma cópia do sysprof a partir da Internet. Conteúdo Conteúdo do GLib Aplicativos Instalados: gapplication, gdbus, gdbus-codegen, gi-compile-repository, gi-decompile-typelib, gi-inspect-typelib gio, gio-querymodules, glib-compile-resources, glib-compile-schemas, glib-genmarshal, glib-gettextize, glib-mkenums, gobject-query, gresource, gsettings, gtester e gtester-report Bibliotecas Instaladas: libgio-2.0.so, libgirepository-2.0.so, libglib-2.0.so, libgmodule-2.0.so, libgobject-2.0.so e libgthread-2.0.so Diretórios Instalados: /usr/include/gio-unix-2.0, /usr/include/glib-2.0, /usr/lib/gio, /usr/lib/glib-2.0, /usr/share/glib-2.0 e /usr/share/doc/glib-2.82.5 (opcional) Conteúdo do GObject Introspection Aplicativo Instalado: g-ir-annotation-tool, g-ir-compiler, g-ir-doc-tool (opcional), g-ir-generate, g-ir-inspect e g-ir-scanner Bibliotecas Instaladas: libgirepository-1.0.so e _giscanner.cpython-313--linux-gnu.so Diretórios Instalados: /usr/include/gobject-introspection-1.0, /usr/lib/girepository-1.0, /usr/lib/gobject-introspection, /usr/share/gir-1.0 e /usr/share/gobject-introspection-1.0 Descrições Curtas gapplication pode ser usado para iniciar aplicativos e para enviar mensagens para instâncias já em execução de outros aplicativos gdbus é uma ferramenta simples usada para trabalhar com objetos D-Bus gdbus-codegen é usado para gerar código e (ou) documentação para uma ou mais interfaces D-Bus gi-compile-repository converte um ou mais arquivos GIR em um ou mais arquivos typelib gi-decompile-typelib é um descompilador GIR que usa a API do repositório gi-inspect-typelib é um utilitário que fornece informações acerca de um typelib do GI gio é um utilitário que torna muitos recursos do GIO disponíveis a partir da linha de comando gio-querymodules é usado para criar um arquivo giomodule.cache nos diretórios listados. Esse arquivo lista os pontos implementados de extensão para cada módulo que tenha sido encontrado glib-compile-resources é usado para ler a descrição do recurso a partir de um arquivo e os arquivos aos quais ele referencia para criar um pacote binário de recurso que seja adequado para uso com a API GResource glib-compile-schemas é usado para compilar todos os arquivos de esquema XML do GSettings em um diretório para um arquivo binário com o nome gschemas.compiled que pode ser usado pelo GSettings glib-genmarshal é um utilitário de geração de código marechal C para encerramentos GLib glib-gettextize é uma variante do utilitário de internacionalização gettext glib-mkenums é um utilitário de geração de descrição de enumeração em linguagem C gobject-query é um pequeno utilitário que desenha uma árvore de tipos gresource oferece uma interface simples de linha de comando para GResource gsettings oferece uma interface simples de linha de comando para GSettings gtester é um utilitário de execução de teste gtester-report é um utilitário de formatação de informe de teste libgio-2.0.so é uma biblioteca que fornece classes úteis para E/S de uso geral, rede de intercomunicação, IPC, configurações e outras funcionalidades de aplicativos de alto nível libgirepository-2.0.so é uma biblioteca que fornece acesso a typelibs e dados de introspecção que descrevem APIs da C libglib-2.0.so é uma biblioteca de utilitários portável de uso geral, que fornece muitos tipos úteis de dados, macros, conversões de tipo, utilitários de sequências de caracteres, utilitários de arquivo, uma abstração de mainloop e assim por diante libgmodule-2.0.so fornece API portável para carregar dinamicamente módulos libgobject-2.0.so fornece o sistema de tipo base do GLib e a classe de objeto libgthread-2.0.so é uma biblioteca básica para retro compatibilidade; costumava ser a biblioteca de camadas do GLib, mas as funcionalidades foram mescladas na libglib-2.0 g-ir-annotation-tool cria ou extrai dados de anotação a partir de typelibs do GI g-ir-compiler é uma contraparte de gi-compile-repository para a antiga API libgirepository-1.0 g-ir-doc-tool gera arquivos Mallard que podem ser visualizados com yelp ou renderizados para HTML com yelp-build originários das [2544]ferramentas yelp g-ir-inspect é uma contraparte de gi-inspect-typelib para a antiga API libgirepository-1.0 g-ir-generate é uma contraparte de gi-decompile-typelib para a antiga API libgirepository-1.0 g-ir-scanner é uma ferramenta que gera arquivos XML GIR analisando cabeçalhos e introspectando bibliotecas baseadas em GObject libgirepository-1.0.so é uma contraparte de libgirepository-2.0 com a antiga API 1.0 GLibmm-2.66.7 Introdução ao GLibmm O pacote GLibmm é um conjunto de ligações C++ para a GLib. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2545]https://download.gnome.org/sources/glibmm/2.66/glibmm-2.66.7. tar.xz * Transferência (FTP): * Soma de verificação MD5 da transferência: c6edf4cc986adec2a6d21e7423bad7d1 * Tamanho da transferência: 8,4 MB * Espaço em disco estimado exigido: 83 MB (com testes) * Tempo de construção estimado: 0,5 UPC (Usando paralelismo=4; com testes) Dependências do GLibmm Exigidas [2546]GLib-2.82.5 e [2547]libsigc++-2.12.1 Opcionais [2548]Doxygen-1.13.2, [2549]glib-networking-2.80.1 (para testes), [2550]GnuTLS-3.8.9 (para testes), [2551]libxslt-1.1.42 e [2552]mm-common Instalação do GLibmm Instale GLibmm executando os seguintes comandos: mkdir bld && cd bld && meson setup --prefix=/usr --buildtype=release .. && ninja Para testar os resultados, emita: ninja test. Agora, como o(a) usuário(a) root: ninja install Conteúdo Aplicativos Instalados: Nenhum(a) Bibliotecas Instaladas: libgiomm-2.4.so, libglibmm-2.4.so e libglibmm_generate_extra_defs-2.4.so Diretórios Instalados: /usr/lib/g{io,lib}mm-2.4 e /usr/include/g{io,lib}mm-2.4 Descrições Curtas libgiomm-2.4.so contém as classes da API do GIO libglibmm-2.4.so contém as classes da API do GLib GLibmm-2.82.0 Introdução ao GLibmm O pacote GLibmm é um conjunto de ligações C++ para GLib. Essa versão é parte de uma nova API para suporte ao gtkmm-4. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2553]https://download.gnome.org/sources/glibmm/2.82/glibmm-2.82.0. tar.xz * Transferência (FTP): * Soma de verificação MD5 da transferência: b24b3ee3e7943c779f1193cce6dda34e * Tamanho da transferência: 9,1 MB * Espaço em disco estimado exigido: 95 MB (com testes) * Tempo de construção estimado: 0,4 UPC (Usando paralelismo=4; com testes) Dependências de GLibmm Exigidas [2554]GLib-2.82.5 e [2555]libsigc++-3.6.0 Opcionais [2556]Doxygen-1.13.2, [2557]glib-networking-2.80.1 (para testes), [2558]GnuTLS-3.8.9 (para testes), [2559]libxslt-1.1.42 e [2560]mm-common Instalação do GLibmm Instale GLibmm executando os seguintes comandos: mkdir bld && cd bld && meson setup --prefix=/usr --buildtype=release .. && ninja Para testar os resultados, emita: ninja test. Agora, como o(a) usuário(a) root: ninja install Conteúdo Aplicativos Instalados: Nenhum(a) Bibliotecas Instaladas: libgiomm-2.68.so, libglibmm-2.68.so e libglibmm_generate_extra_defs-2.68.so Diretórios Instalados: /usr/lib/g{io,lib}mm-2.68 e /usr/include/g{io,lib}mm-2.68 Descrições Curtas libgiomm-2.68.so contém as classes da API do GIO libglibmm-2.68.so contém as classes da API do GLib GMime-3.2.7 Introdução ao GMime O pacote GMime contém um conjunto de utilitários para analisar e criar mensagens usando o Multipurpose Internet Mail Extension (MIME), conforme definido pelos RFCs aplicáveis. Veja-se o [2561]website do GMime para os RFCs fornecidos. Isso é útil, pois fornece uma API que adere à especificação MIME o mais próximo possível, além de fornecer a programadores(as) uma interface extremamente fácil de usar para as funções da API. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2562]https://download.gnome.org/sources/gmime/3.2/gmime-3.2.7.tar. xz * Transferência (FTP): * Soma de verificação MD5 da transferência: 7ecd9aa75e0cd2e8668206b1d53df874 * Tamanho da transferência: 2,1 MB * Espaço em disco estimado exigido: 25 MB (com testes) * Tempo de construção estimado: 0,3 UPC (com testes) Dependências de GMime Exigidas [2563]GLib-2.82.5 (GObject Introspection recomendado) e [2564]libgpg-error-1.51 Opcionais [2565]DocBook-utils-0.6.14, [2566]GPGME-1.24.2, [2567]GTK-Doc-1.34.0, [2568]libnsl-2.0.1, [2569]Vala-0.56.17 e [2570]Gtk# (exige [2571]Mono) Instalação do GMime Instale GMime executando os seguintes comandos: ./configure --prefix=/usr --disable-static && make Para testar os resultados, emita: make check. Agora, como o(a) usuário(a) root: make install Explicações do Comando --disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas. --enable-gtk-doc: Use esse parâmetro se GTK-Doc estiver instalado e você desejar reconstruir e instalar a documentação da API. Conteúdo Aplicativos Instalados: Nenhum(a) Biblioteca Instalada: libgmime-3.0.so Diretórios Instalados: /usr/include/gmime-3.0 e /usr/share/gtk-doc/html/gmime-3.0 Descrições Curtas libgmime-3.0.so contém funções de API usadas por aplicativos que precisam obedecer aos padrões MIME gmmlib-22.5.5 Introdução ao gmmlib O pacote gmmlib contém a biblioteca Graphics Memory Management da Intel, que fornece memória específica do dispositivo e funções de gerenciamento de buffer para o Intel Media Driver para VAAPI e para o Intel Graphics Computer Runtime para OpenCL (TM). Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2572]https://github.com/lfs-book/gmmlib/archive/v22.5.5/gmmlib-22. 5.5.tar.gz * Transferência (FTP): * 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 Nota No GitHub, nós bifurcamos o repositório do fluxo de desenvolvimento para nosso próprio espaçode nomes lfs-book e recriamos uma etiqueta para o lançamento. Isso é feito para garantir que o nome do arquivo tarball baixado esteja correto e consistente (ou seja, ele não deveria mudar ao se usar o navegador em vez de uma ferramenta como wget). Nossa etiqueta e a etiqueta do lançamento do fluxo de desenvolvimento estão no mesmo commit, de forma que nós não introduzimos nenhuma mudança no conteúdo do tarball, exceto o nome do diretório de nível superior dele (que o Git não rastreia). Dependências do gmmlib Exigidas [2573]CMake-3.31.5 Instalação do gmmlib Instale gmmlib executando os seguintes comandos: mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D BUILD_TYPE=Release \ -G Ninja \ -W no-dev .. && ninja A suíte de teste normalmente é executada por ninja, a menos que -D RUN_TEST_SUITE=NO seja passado para cmake. Agora, como o(a) usuário(a) root: ninja install Conteúdo Aplicativos Instalados: Nenhum(a) Bibliotecas Instaladas: libigdgmm.so Diretórios Instalados: /usr/include/igdgmm Descrições Curtas libigdgmm.so contém funções que fornecem funções de gerenciamento de memória para controladores Intel de gráficos gsl-2.8 Introdução ao Gsl A GNU Scientific Library (GSL) é uma biblioteca numérica para programadores(as) C e C++. Ela fornece uma ampla gama de rotinas matemáticas, tais como geradores de números aleatórios, funções especiais e ajuste de mínimos quadrados. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2574]https://ftp.gnu.org/gnu/gsl/gsl-2.8.tar.gz * Transferência (FTP): * Soma de verificação MD5 da transferência: 182ec03204f164e67238c9116591a37d * Tamanho da transferência: 8,6 MB * Espaço em disco estimado exigido: 223 MB (com testes, sem documentos) * Tempo de construção estimado: 1,0 UPC (Usando paralelismo=4; com testes, sem documentos) Dependências do Gsl Opcionais [2575]sphinx_rtd_theme-3.0.2 Instalação do Gsl Instale Gsl executando os seguintes comandos: ./configure --prefix=/usr --disable-static && make Se você tiver [2576]sphinx_rtd_theme-3.0.2 instalado, [então] construa a documentação com: make html Para testar os resultados, emita: make check. Agora, como o(a) usuário(a) root: make install Se você construiu a documentação, [então] instale-a (como root) com: mkdir /usr/share/doc/gsl-2.8 && cp -R doc/_build/html/* /usr/share/doc/gsl-2.8 Explicações do Comando --disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas. Conteúdo Aplicativos Instalados: gsl-config, gsl-histogram e gsl-randist Bibliotecas Instaladas: libgslcblas.so e libgsl.so Diretório Instalado: /usr/include/gsl e /usr/share/doc/gsl-2.8 Descrições Curtas gsl-config é um script de shell para obter o número da versão e sinalizadores do compilador da biblioteca Gsl instalada gsl-histogram é um aplicativo de demonstração para a GNU Scientific Library que calcula um histograma a partir de dados obtidos a partir do stdin gsl-randist é um aplicativo de demonstração para a GNU Scientific Library que gera amostras aleatórias a partir de várias distribuições libgslcblas.so contém funções que implementam uma interface C para subaplicativos básicos de álgebra linear libgsl.so contém funções que fornecem uma coleção de rotinas numéricas para computação científica gspell-1.14.0 Introdução ao gspell O pacote gspell fornece uma API flexível para adicionar verificação ortográfica a um aplicativo GTK+. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2577]https://download.gnome.org/sources/gspell/1.14/gspell-1.14.0. tar.xz * Transferência (FTP): * 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) Dependências do gspell Exigidas [2578]enchant-2.8.2, [2579]ICU-76.1 e [2580]GTK-3.24.48 Opcionais [2581]GLib-2.82.5 (com GObject Introspection), [2582]GTK-Doc-1.34.0, [2583]Vala-0.56.17, [2584]Valgrind-3.24.0 e [2585]Hunspell (para testes) Instalação do gspell Instale gspell executando os seguintes comandos: mkdir gspell-build && cd gspell-build && meson setup --prefix=/usr --buildtype=release -D gtk_doc=false .. && ninja Para testar os resultados, emita: ninja test. Os testes precisam ser executados em uma sessão do X. Um teste, test-checker, é conhecido por falhar se o pacote externo [2586]Hunspell não estiver instalado. Agora, como o(a) usuário(a) root: ninja install Explicações do Comando -D gtk_doc=false: Impede construir a documentação. Remova isso se você tiver GTK-Doc instalado e desejar construir a documentação. Conteúdo Aplicativos Instalados: gspell-app1 Bibliotecas Instaladas: libgspell-1.so Diretórios Instalados: /usr/include/gspell-1 e /usr/share/gtk-doc/html/gspell-1.0 Descrições Curtas gspell-app1 verifica a ortografia de um texto inserido em uma janela libgspell-1.so é a biblioteca da API do gspell highway-1.2.0 Introdução ao highway O pacote highway contém uma biblioteca C++ que fornece intrínsecos SIMD/vetoriais portáveis. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2587]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) Dependências do highway Exigidas [2588]CMake-3.31.5 Instalação do highway Instale highway executando os seguintes comandos: mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ -D BUILD_TESTING=OFF \ -D BUILD_SHARED_LIBS=ON \ -G Ninja .. && ninja Esse pacote vem com uma suíte de teste, porém ela exige [2589]gtest, que não está no BLFS. Agora, como o(a) usuário(a) root: ninja install Explicações do Comando -D BUILD_TESTING=OFF: Esse parâmetro desabilita a suíte de teste de ser construída porque [2590]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 [2591]gtest e, então,remova esse parâmetro. -D BUILD_SHARED_LIBS=ON: Esse parâmetro habilita construir versões compartilhadas das bibliotecas em vez das versões estáticas. Conteúdo Aplicativos Instalados: Nenhum(a) Bibliotecas Instaladas: libhwy.so, libhwy_contrib.so e libhwy_test.so Diretórios Instalados: /usr/include/hwy e /usr/lib/cmake/hwy Descrições Curtas libhwy.so contém funções que fornecem intrínsecos SIMD/vetoriais portáveis libhwy_contrib.so contém várias adições ao Highway, incluindo uma série de rotinas de produto escalar, imagem, matemática e ordenação libhwy_test.so contém auxiliares de teste para Highway icu-76.1 Introdução ao ICU O pacote International Components for Unicode (ICU) é um conjunto maduro e amplamente usado de bibliotecas C/C++ que fornece suporte Unicode e Globalização para aplicativos de software. ICU é amplamente portável e dá aos aplicativos os mesmos resultados em todas as plataformas. Atenção Atualizar esse pacote para uma nova versão principal (por exemplo, da 72.1 para a 76.1) exigirá a reconstrução de muitos outros pacotes. Se alguns pacotes que usam as bibliotecas construídas por icu4c-76 forem reconstruídos, eles usarão as novas bibliotecas enquanto os pacotes atuais usarão as bibliotecas anteriores. Se o carregador de aplicativos do Linux (/usr/lib/ld-linux-x86-64.so.2) determinar que as bibliotecas antiga e nova são necessárias, e um símbolo (nome do dado ou função) existir em ambas as versões da biblioteca, todas as referências ao símbolo serão resolvidas para a versão que aparece anteriormente na sequência em largura do gráfico de dependência. Isso pode resultar na falha do aplicativo se a definição dos dados ou o comportamento da função referida pelo símbolo diferir entre duas versões. Para evitar o problema, os(as) usuários(as) precisarão reconstruir todos os pacotes vinculados a uma biblioteca do ICU o mais rápido possível, assim que o ICU for atualizado para uma nova versão principal. Para determinar quais bibliotecas externas são necessárias (direta ou indiretamente) por um aplicativo ou biblioteca, execute: ldd ou para ver somente programas e bibliotecas que diretamente usem uma biblioteca: readelf -d | grep NEEDED Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2592]https://github.com/unicode-org/icu/releases/download/release- 76-1/icu4c-76_1-src.tgz * Transferência (FTP): * 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) Dependências do ICU Opcionais [2593]Doxygen-1.13.2 (para documentação) Instalação do ICU Nota Esse pacote se expande para o diretório icu. Instale ICU executando os seguintes comandos: cd source && ./configure --prefix=/usr && make Para testar os resultados, emita: make check. Agora, como o(a) usuário(a) root: make install Conteúdo Aplicativos Instalados: derb, escapesrc, genbrk, genccode, gencfu, gencmn, gencnval, gendict, gennorm2, genrb, gensprep, icu-config, icuexportdata, icuinfo, icupkg, makeconv, pkgdata e uconv Bibliotecas Instaladas: libicudata.so, libicui18n.so, libicuio.so, libicutest.so, libicutu.so e libicuuc.so Diretórios Instalados: /usr/include/unicode, /usr/lib/icu e /usr/share/icu Descrições Curtas derb desmonta um pacote de recursos escapesrc converte caracteres escapados “\u” em caracteres Unicode genbrk compila arquivos-fonte do ICU de regras de iteração de quebra em arquivos de dados binários genccode gera C ou código de montagem específico da plataforma a partir de um arquivo de dados do ICU gencfu lê em Unicode definições confundíveis de caracteres e escreve os dados binários gencmn gera um arquivo de dados do ICU mapeável em memória gencnval compila o arquivo de apelidos do conversor gendict compila listas de palavras em dicionários de tentativas de sequências de caracteres do ICU gennorm2 constrói arquivos de dados binários com dados de normalização Unicode genrb compila um pacote de recursos gensprep compila dados StringPrep a partir de arquivos filtrados RFC 3454 icu-config gera saída das opções de construção do ICU icuinfo gera saída da informação de configuração relativa ao ICU atual icupkg extrai ou modifica um arquivamento ".dat" do ICU makeconv compila uma tabela de conversor pkgdata empacota dados para uso pelo ICU uconv converte dados a partir de um codificador para outro libicudata.so é a biblioteca de dados libicui18n.so é a biblioteca de internacionalização ("i18n") libicuio.so é a biblioteca de Entrada/Saída do ICU ("stdio" Unicode) libicutest.so é a biblioteca de teste libicutu.so é a biblioteca do utilitário da ferramenta libicuuc.so é a biblioteca comum inih-58 Introdução ao inih Esse pacote é um analisador simples de arquivo ".INI" escrito em C. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2594]https://github.com/benhoyt/inih/archive/r58/inih-r58.tar.gz * Transferência (FTP): * Soma de verificação MD5 da transferência: 5c9725320ad2c79e0b1f76568bd0ff24 * Tamanho da transferência: 20 KB * Espaço em disco estimado exigido: 724 KB * Tempo de construção estimado: menos que 0,1 UPC Instalação do inih Instale o inih executando os seguintes comandos: mkdir build && cd build && meson setup --prefix=/usr --buildtype=release .. && ninja Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) root: ninja install Conteúdo Aplicativo Instalado: Nenhum(a) Bibliotecas Instaladas: libinih.so e libINIReader.so Diretórios Instalados: Nenhum(a) Descrições Curtas libinih.so é a biblioteca principal do inih libINIReader.so é a biblioteca do analisador inih Jansson-2.14 Introdução ao Jansson O pacote Jansson contém uma biblioteca usada para codificar, decodificar e manipular dados JSON. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2595]https://github.com/akheron/jansson/releases/download/v2.14/ja nsson-2.14.tar.bz2 * Transferência (FTP): * 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) Instalação do Jansson Primeiro corrija um dos testes: sed -e "/DT/s;| sort;| sed 's/@@libjansson.*//' &;" \ -i test/suites/api/check-exports Instale jansson executando os seguintes comandos: ./configure --prefix=/usr --disable-static && make Para testar os resultados, emita: make check. Agora, como o(a) usuário(a) root: make install Conteúdo Aplicativos Instalados: Nenhum(a) Biblioteca Instalada: libjansson.so Diretórios Instalados: Nenhum(a) Descrições Curtas libjansson.so contém uma API para codificação, decodificação e manipulação de dados JSON JSON-C-0.18 Introdução ao JSON-C O JSON-C implementa um modelo de objeto de contagem de referência que permite construir facilmente objetos JSON em C, produzi-los como sequências de caracteres formatadas JSON e analisar sequências de caracteres formatadas JSON de volta na representação C de objetos JSON. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2596]https://s3.amazonaws.com/json-c_releases/releases/json-c-0.18 .tar.gz * Transferência (FTP): * 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) Dependências do JSON-C Exigidas [2597]CMake-3.31.5 Opcionais (para documentação) [2598]Doxygen-1.13.2 e [2599]Graphviz-12.2.1 (para ferramenta dot) Instalação do JSON-C Instale JSON-C executando os seguintes comandos: mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ -D BUILD_STATIC_LIBS=OFF \ .. && make Se tiver instalado [2600]Doxygen-1.13.2 e [2601]Graphviz-12.2.1, você consegue construir a documentação executando o seguinte comando: doxygen doc/Doxyfile Para testar os resultados, emita: make test. Agora, como o(a) usuário(a) root: make install Se você construiu a documentação, instale-a executando os seguintes comandos como o(a) usuário(a) root: install -d -vm755 /usr/share/doc/json-c-0.18 && install -v -m644 doc/html/* /usr/share/doc/json-c-0.18 Explicações do Comando -D CMAKE_BUILD_TYPE=Release: Essa chave é usada para aplicar um nível mais alto de otimização à compilação. Conteúdo Aplicativos Instalados: Nenhum(a) Bibliotecas Instaladas: libjson-c.so Diretórios Instalados: /usr/include/json-c Descrições Curtas libjson-c.so contém as funções da API JSON-C JSON-GLib-1.10.6 Introdução ao JSON GLib O pacote JSON GLib é uma biblioteca que oferece suporte à serialização e desserialização para o formato JavaScript Object Notation (JSON) descrito pela RFC 4627. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2602]https://download.gnome.org/sources/json-glib/1.10/json-glib-1 .10.6.tar.xz * Transferência (FTP): * 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) Dependências do JSON-GLib Exigidas [2603]GLib-2.82.5 (GObject Introspection exigido se construir GNOME) Opcionais [2604]GTK-Doc-1.34.0 Instalação do JSON GLib Instale o JSON GLib executando os seguintes comandos: mkdir build && cd build && meson setup --prefix=/usr --buildtype=release .. && ninja Para testar os resultados, emita: ninja test. Um teste, node, é conhecido por falhar. Agora, como o(a) usuário(a) root: ninja install Explicações do Comando --buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados. -D gtk_doc=disabled: Adicione essa opção se você tiver [2605]GTK-Doc-1.34.0 instalado e não desejar gerar a documentação da API. Conteúdo Aplicativos Instalados: json-glib-format e json-glib-validate Biblioteca Instalada: libjson-glib-1.0.so Diretórios Instalados: /usr/{include,libexec,share{,/installed-tests}/json-glib-1.0} e /usr/share/gtk-doc/html/json-glib Descrições Curtas json-glib-format é uma interface de linha de comando simples para formatar dados JSON json-glib-validate é uma interface de linha de comando simples para validar dados JSON libjson-glib-1.0.so contém as funções da API da JSON GLib keyutils-1.6.3 Introdução ao keyutils Keyutils é um conjunto de utilitários para gerenciar o recurso de retenção de chave no núcleo, que pode ser usado por sistemas de arquivos, dispositivos de bloco e muito mais para obter e reter as chaves de autorização e de encriptação exigidas para realizar operações seguras. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2606]https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/keyu tils.git/snapshot/keyutils-1.6.3.tar.gz * Transferência (FTP): * 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) Dependências do Keyutils Opcionais [2607]lsb-tools-0.12 (referido pela suíte de teste) Configuração do Núcleo Se executar a suíte de teste, alguns testes precisarão dos seguintes recursos do núcleo habilitados: Security options ---> [*] Enable access key retention support [KEYS] [*] Large payload keys [BIG_KEYS] [*] Diffie-Hellman operations on retained keys [KEY_DH_OPERATIONS] -*- Cryptographic API ---> [CRYPTO] Public-key cryptography ---> <*/M> RSA (Rivest-Shamir-Adleman) [CRYPTO_RSA] Hashes, digests, and MACs ---> <*/M> SHA-1 [CRYPTO_SHA1] [*] Asymmetric (public-key cryptographic) key type ---> [ASYMMETRIC_KEY_TYPE] <*> Asymmetric public-key crypto algorithm subtype ... [ASYMMETRIC_PUBLIC_KEY_SUBTYPE] # If not built into the kernel, [SYSTEM_TRUSTED_KEYRING] won't show up; # building as a module won't work: <*> X.509 certificate parser [X509_CERTIFICATE_PARSER] Certificates for signature checking ---> [*] Provide system-wide ring of trusted keys [SYSTEM_TRUSTED_KEYRING] [*] Provide a keyring to which extra trustable keys may be added ... [SECONDARY_TRUSTED_KEYRING] [*] Provide system-wide ring of blacklisted keys [SYSTEM_BLACKLIST_KEYRING] Library routines ---> Crypto library routines ---> # If not built into the kernel, [BIG_KEYS] won't show up; # building as a module won't work: <*> ChaCha20-Poly1305 AEAD support (8-byte nonce library version) ... [CRYPTO_LIB_CHACHA20POLY1305] Instalação do keyutils Instale keyutils executando os seguintes comandos: make Agora, como o(a) usuário(a) root: make NO_ARLIB=1 LIBDIR=/usr/lib BINDIR=/usr/bin SBINDIR=/usr/sbin install A suíte de teste só pode executar depois de instalar-se esse pacote. Para testar os resultados, emita, como o(a) usuário(a) root: make -k test Se [2608]lsb-tools-0.12 não estiver instalado, a suíte de teste produzirá algumas linhas reclamando que o comando lsb_release não está disponível, mas não afetará o resultado do teste. Explicações do Comando NO_ARLIB=1: Esse sinalizador do "make" desabilita a instalação da biblioteca estática. Configurando keyutils Arquivos de Configuração /etc/request-key.conf e /etc/request-key.d/* Conteúdo Aplicativos Instalados: keyctl, key.dns_resolver e request-key Biblioteca Instalada: libkeyutils.so Diretório Instalado: /etc/keyutils, /etc/request-key.d e /usr/share/keyutils Descrições Curtas keyctl controla o recurso de gerenciamento de chave com uma variedade de subcomandos key.dns_resolver é invocado por request-key em nome do núcleo quando os serviços do núcleo (como NFS, CIFS e AFS) precisam realizar uma pesquisa de nome de dispositivo e o núcleo não tem a chave armazenada em cache. Não é destinado, ordinariamente, a ser chamado diretamente request-key é invocado pelo núcleo quando o núcleo é solicitado por uma chave que não tem imediatamente disponível. O núcleo cria uma chave temporária e, em seguida, chama esse aplicativo para instanciá-lo. Não é destinado a ser chamado diretamente libkeyutils.so contém a instanciação da API da biblioteca "keyutils" libaio-0.3.113 Introdução ao libaio O pacote libaio é um recurso assíncrono de Entrada/Saída ("Entrada/Saída assíncrona" ou "aio") que possui uma API e um conjunto de recursos mais ricos que o recurso simples de Entrada/Saída assíncrona POSIX. Essa biblioteca, "libaio", fornece a API nativa do Linux para Entrada/Saída assíncrona. O recurso de Entrada/Saída assíncrona POSIX exige essa biblioteca para a finalidade de fornecer recursos de Entrada/Saída assíncronas acelerados pelo núcleo, assim como os aplicativos que exigem a API de Entrada/Saída assíncrona nativa do Linux. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2609]https://pagure.io/libaio/archive/libaio-0.3.113/libaio-0.3.11 3.tar.gz * Transferência (FTP): * 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 Instalação do libaio Primeiro, desabilite a instalação da biblioteca estática: sed -i '/install.*libaio.a/s/^/#/' src/Makefile Construa a libaio executando o seguinte comando: make Para testar os resultados, emita: make partcheck. Agora, instale o pacote como o(a) usuário(a) root: make install Conteúdo Aplicativos Instalados: Nenhum(a) Biblioteca Instalada: libaio.so Diretórios Instalados: Nenhum(a) Descrições Curtas libaio.so é a biblioteca "libaio" libarchive-3.7.7 Introdução ao libarchive A biblioteca libarchive fornece interface única para leitura/gravação de vários formatos de compressão. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2610]https://github.com/libarchive/libarchive/releases/download/v3 .7.7/libarchive-3.7.7.tar.xz * Transferência (FTP): * 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) Dependências do libarchive Opcionais [2611]libxml2-2.13.6, [2612]LZO-2.10, [2613]Nettle-3.10.1 e [2614]pcre2-10.45 Instalação do libarchive Instale o libarchive executando os seguintes comandos: ./configure --prefix=/usr --disable-static && make Para testar os resultados, emita: make check. Agora, como o(a) usuário(a) root: make install Ainda como o(a) usuário(a) root, crie um link simbólico de forma que nós consigamos usar bsdunzip como unzip, em vez de depender do pacote Unzip não mantido: ln -sfv bsdunzip /usr/bin/unzip Nota Conforme discutido em [2615]Codificação Errada do Nome do Arquivo, se o arquivamento Zip a ser extraído contiver qualquer arquivo com um nome contendo caracteres não latinos, você precisará especificar manualmente a codificação desses caracteres ou eles serão transformados em sequências ilegíveis no nome do arquivo extraído. Por exemplo, se um arquivamento Zip criado com o WinZip, archive.zip, contiver um arquivo nomeado com caracteres chineses simplificados, a codificação deverá ser CP936 e a opção -I cp936 deverá ser usada. Ou seja, o comando para se extrair o arquivamento deverá ser unzip -I cp936 archive.zip. Explicações do Comando --disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas. --without-xml2: Essa chave configura "expat" para suporte ao formato de arquivamento "xar" em vez do preferido "libxml2" se ambos os pacotes estiverem instalados. --with-nettle: Essa chave configura Nettle para suporte a criptografia em vez do OpenSSL. Conteúdo Aplicativos Instalados: bsdcat, bsdcpio, bsdtar e bsdunzip Bibliotecas Instaladas: libarchive.so Diretórios Instalados: Nenhum(a) Descrições Curtas bsdcat expande arquivos para a saída gerada padrão bsdcpio é uma ferramenta similar a cpio bsdtar é uma ferramenta similar à GNU tar bsdunzip é uma ferramenta similar a unzip do Info-ZIP libarchive.so é uma biblioteca que consegue criar e ler vários formatos de arquivamento de fluxo libassuan-3.0.2 Introdução ao libassuan O pacote libassuan contém uma biblioteca de comunicação entre processos usada por alguns dos outros pacotes relacionados ao GnuPG. O principal uso da libassuan é o de permitir que um cliente interaja com um servidor não persistente. A libassuan não é, entretanto, limitada ao uso com servidores e clientes do GnuPG. Ela foi projetado para ser flexível o suficiente para atender às demandas de muitos ambientes baseados em transações com servidores não persistentes. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2616]https://www.gnupg.org/ftp/gcrypt/libassuan/libassuan-3.0.2.ta r.bz2 * Transferência (FTP): * Soma de verificação MD5 da transferência: c6f1bf4bd2aaa79cd1635dcc070ba51a * Tamanho da transferência: 580 KB * Espaço em disco estimado exigido: 6,5 MB (com testes; adicionar 3,4 MB para documentação PDF) * Tempo de construção estimado: 0,1 UPC (com testes e documentação HTML) Dependências do libassuan Exigidas [2617]libgpg-error-1.51 Opcionais [2618]texlive-20240312 (ou [2619]install-tl-unx) Instalação do libassuan Instale libassuan executando os seguintes comandos: ./configure --prefix=/usr && make && make -C doc html && makeinfo --html --no-split -o doc/assuan_nochunks.html doc/assuan.texi && makeinfo --plaintext -o doc/assuan.txt doc/assuan.texi Os comandos acima constroem a documentação nos formatos html e texto simples. Se você deseja construir formatos alternativos da documentação, [então] você precisa ter [2620]texlive-20240312 instalado e emitir os seguintes comandos: make -C doc pdf ps Para testar os resultados, emita: make check. Agora, como o(a) usuário(a) root: make install && install -v -dm755 /usr/share/doc/libassuan-3.0.2/html && install -v -m644 doc/assuan.html/* \ /usr/share/doc/libassuan-3.0.2/html && install -v -m644 doc/assuan_nochunks.html \ /usr/share/doc/libassuan-3.0.2 && install -v -m644 doc/assuan.{txt,texi} \ /usr/share/doc/libassuan-3.0.2 Se você construiu formatos alternativos da documentação, [então] instale-os executando os seguintes comandos como o(a) usuário(a) root: install -v -m644 doc/assuan.{pdf,ps,dvi} \ /usr/share/doc/libassuan-3.0.2 Conteúdo Aplicativo Instalado: Nenhum(a) Biblioteca Instalada: libassuan.so Diretório Instalado: /usr/share/doc/libassuan-3.0.2 Descrições Curtas libassuan.so é uma biblioteca de comunicação entre processos que implementa o protocolo "Assuan" libatasmart-0.19 Introdução ao libatasmart O pacote libatasmart é uma biblioteca de informe de disco. Ela suporta somente um subconjunto da funcionalidade S.M.A.R.T. do ATA. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2621]https://0pointer.de/public/libatasmart-0.19.tar.xz * Transferência (FTP): * Soma de verificação MD5 da transferência: 53afe2b155c36f658e121fe6def33e77 * Tamanho da transferência: 248 KB * Espaço em disco estimado exigido: 3 MB * Tempo de construção estimado: menos que 0,1 UPC Observações de Editor(a): [2622]https://wiki.linuxfromscratch.org/blfs/wiki/libatasmart Instalação do libatasmart Instale libatasmart executando os seguintes comandos: ./configure --prefix=/usr --disable-static && make Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) root: make docdir=/usr/share/doc/libatasmart-0.19 install Explicações do Comando --disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas. Conteúdo Aplicativos Instalados: skdump e sktest Biblioteca Instalada: libatasmart.so Diretório Instalado: /usr/share/doc/libatasmart-0.19 Descrições Curtas skdump é um utilitário que informa a situação do disco sktest é um utilitário para emitir testes de disco libatasmart.so contém as funções da API S.M.A.R.T do ATA libatomic_ops-7.8.2 Introdução ao libatomic_ops libatomic_ops fornece implementações para operações atômicas de atualização de memória em várias arquiteturas. Isso permite o uso direto delas em código razoavelmente portátil. Ao contrário de pacotes semelhantes anteriores, esse considera explicitamente a semântica de barreira de memória e permite a construção de código que envolve sobrecarga mínima ao longo de uma variedade de arquiteturas. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2623]https://github.com/ivmai/libatomic_ops/releases/download/v7.8 .2/libatomic_ops-7.8.2.tar.gz * Transferência (FTP): * 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) Instalação do libatomic_ops Instale libatomic_ops executando os seguintes comandos: ./configure --prefix=/usr \ --enable-shared \ --disable-static \ --docdir=/usr/share/doc/libatomic_ops-7.8.2 && make Para verificar os resultados, emita make check. Agora, como o(a) usuário(a) root: make install Explicações do Comando --enable-shared: Essa chave habilita construir as bibliotecas compartilhadas libatomic_ops. --disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas. Conteúdo Aplicativos Instalados: Nenhum(a) Bibliotecas Instaladas: libatomic_ops.so e libatomic_ops_gpl.so Diretório Instalado: /usr/include/libatomic_ops e /usr/share/doc/libatomic_ops-7.8.2 Descrições Curtas libatomic_ops.so contém funções para operações atômicas de memória libblockdev-3.3.0 Introdução ao libblockdev libblockdev é uma biblioteca C que suporta GObject Introspection para manipulação de dispositivos de bloco. Ela tem uma arquitetura baseada em plug-in onde cada tecnologia (como LVM, Btrfs, MD RAID, Swap,...) é implementada em um plug-in separado, possivelmente com várias implementações (por exemplo, usando CLI do LVM ou a nova API DBus do LVM). Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2624]https://github.com/storaged-project/libblockdev/releases/down load/3.3.0/libblockdev-3.3.0.tar.gz * Transferência (FTP): * 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 Dependências do libblockdev Exigidas [2625]GLib-2.82.5 (GObject Introspection exigido para GNOME) Recomendadas [2626]cryptsetup-2.7.5, [2627]keyutils-1.6.3, [2628]libatasmart-0.19, [2629]libbytesize-2.11, [2630]libnvme-1.11.1 e [2631]LVM2-2.03.30 Opcionais [2632]btrfs-progs-6.13, [2633]GTK-Doc-1.34.0, [2634]JSON-GLib-1.10.6, [2635]mdadm-4.3, [2636]parted-3.6, [2637]smartmontools-7.4, [2638]volume_key, [2639]ndctl e [2640]targetcli (para testes) Instalação do libblockdev Instale o libblockdev executando os seguintes comandos: ./configure --prefix=/usr \ --sysconfdir=/etc \ --with-python3 \ --without-escrow \ --without-gtk-doc \ --without-lvm \ --without-lvm_dbus \ --without-nvdimm \ --without-tools && make A suíte de teste exige targetcli, que não é parte do BLFS. Agora, como o(a) usuário(a) root: make install Explicações do Comando --without-escrow: Essa chave permite construir libblockdev sem volume_key instalado. --without-lvm --without-lvm_dbus --without-tools: A combinação dessas chaves permite construir libblockdev sem [2641]parted-3.6 instalado. Remova-as se você tiver instalado [2642]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 [2643]libbytesize-2.11 instalado. A opção --without-mdraid quebrará [2644]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 [2645]cryptsetup-2.7.5 ou [2646]keyutils-1.6.3 instalado. Essa chave quebrará [2647]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 [2648]LVM2-2.03.30 instalado. As opções --without-dm e --without-mpath não estão nas instruções fornecidas pelo livro, porque [2649]LVM2-2.03.30 é exigido para [2650]cryptsetup-2.7.5 e [2651]cryptsetup-2.7.5 é uma dependência recomendada de libblockdev de qualquer maneira. --without-nvme: Essa chave permite construir libblockdev sem [2652]libnvme-1.11.1 instalado. Essa chave quebrará [2653]UDisks-2.10.1, de forma que não a use, a menos que você realmente saiba o que está fazendo. Conteúdo Aplicativos Instalados: lvm-cache-stats e vfat-resize (ambos opcionais) Bibliotecas Instaladas: libbd_btrfs.so, libbd_crypto.so, libbd_dm.so, libbd_fs.so, libbd_loop.so, libbd_lvm.so (opcional), libbd_lvm-dbus.so (opcional), libbd_mdraid.so, libbd_mpath.so, libbd_nvme.so, libbd_part.so, libbd_swap.so, libbd_utils.so e libblockdev.so Diretórios Instalados: /etc/libblockdev, /usr/include/blockdev e /usr/share/gtk-doc/html/libblockdev (opcional) Descrições Curtas lvm-cache-stats imprime estatísticas relativas a caches relativos a Volumes Lógicos do LVM vfat-resize redimensiona sistemas de arquivos vfat libbytesize-2.11 Introdução ao libbytesize O pacote libbytesize é uma biblioteca que facilita as operações comuns com tamanhos em bytes. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2654]https://github.com/storaged-project/libbytesize/releases/down load/2.11/libbytesize-2.11.tar.gz * Transferência (FTP): * 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) Dependências do libbytesize Exigidas [2655]pcre2-10.45 e [2656]Pygments-2.19.1 Opcionais [2657]GTK-Doc-1.34.0, [2658]pocketlint (módulo Python para um teste) e [2659]polib (módulo Python para um teste) Instalação do libbytesize Instale libbytesize executando os seguintes comandos: ./configure --prefix=/usr && make Se você tiver os módulos opcionais Python instalados, [então] os testes de regressão podem ser executados com: make check. Agora, como o(a) usuário(a) root: make install Conteúdo Aplicativos Instalados: bscalc Biblioteca Instalada: libbytesize.so Diretórios Instalados: /usr/include/bytesize e /usr/lib/python3.13/site-packages/bytesize Descrições Curtas bscalc converte de uma unidade maior, como MB ou TB, de volta para um valor em bytes libbytesize.so contém funções usadas para lidar com operações comuns de leitura/gravação com tamanhos em bytes libclc-19.1.7 Introdução ao libclc O pacote libclc contém uma implementação dos requisitos da biblioteca da linguagem de programação C do OpenCL, conforme especificado pela Especificação OpenCL 1.1. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2660]https://github.com/llvm/llvm-project/releases/download/llvmor g-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) Dependências de libclc Exigidas [2661]SPIRV-LLVM-Translator-19.1.4 Instalação do libclc Instale libclc executando os seguintes comandos: mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ -G Ninja .. && ninja Para testar os resultados, emita: ninja test. Dois testes, external-calls-clspv--.bc e external-calls-clspv64--.bc, são conhecidos por falharem devido à sintaxe inválida. Agora, como o(a) usuário(a) root: ninja install Conteúdo Aplicativos Instalados: Nenhum(a) Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /usr/include/clc e /usr/share/clc libcloudproviders-0.3.6 Introdução ao libcloudproviders O pacote libcloudproviders contém uma biblioteca que fornece uma API DBus que permite que clientes de sincronização de armazenamento em nuvem exponham os serviços deles. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2662]https://download.gnome.org/sources/libcloudproviders/0.3/libc loudproviders-0.3.6.tar.xz * Transferência (FTP): * 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 Dependências do libcloudproviders Exigidas [2663]GLib-2.82.5 (com GObject Introspection) e [2664]Vala-0.56.17 Opcionais [2665]GTK-Doc-1.34.0 Instalação do libcloudproviders Instale libcloudproviders executando os seguintes comandos: mkdir build && cd build && meson setup --prefix=/usr --buildtype=release .. && ninja Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) root: ninja install Explicações do Comando --buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados. -D enable-gtk-doc: Use essa chave se você tiver [2666]GTK-Doc-1.34.0 instalado e desejar gerar a documentação da API. Conteúdo Aplicativos Instalados: Nenhum(a) Bibliotecas Instaladas: libcloudproviders.so Diretórios Instalados: /usr/include/cloudproviders Descrições Curtas libcloudproviders.so contém funções que fornecem uma API DBus para permitir que clientes de sincronização de armazenamento em nuvem exponham os serviços deles libdaemon-0.14 Introdução ao libdaemon O pacote libdaemon é uma biblioteca C leve que facilita a escrita de processos de segundo plano UNIX. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2667]https://0pointer.de/lennart/projects/libdaemon/libdaemon-0.14 .tar.gz * Transferência (FTP): * 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 Dependências do libdaemon Opcionais [2668]Doxygen-1.13.2 e [2669]Lynx-2.9.2 Instalação do libdaemon Instale libdaemon executando os seguintes comandos: ./configure --prefix=/usr --disable-static && make Se você tiver Doxygen instalado e desejar construir a documentação da API, [então] emita o seguinte comando: make -C doc doxygen Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) root: make docdir=/usr/share/doc/libdaemon-0.14 install Se você construiu a documentação da API, [então] instale-a usando os seguintes comandos como o(a) usuário(a) root: install -v -m755 -d /usr/share/doc/libdaemon-0.14/reference/html && install -v -m644 doc/reference/html/* /usr/share/doc/libdaemon-0.14/reference/ht ml && install -v -m644 doc/reference/man/man3/* /usr/share/man/man3 Explicações do Comando --disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas. Conteúdo Aplicativos Instalados: Nenhum(a) Biblioteca Instalada: libdaemon.so Diretórios Instalados: /usr/include/libdaemon e /usr/share/doc/libdaemon-0.14 Descrições Curtas libdaemon.so contém as funções da API libdaemon libdisplay-info-0.2.0 Introdução ao libdisplay-info O pacote libdisplay-info fornece um conjunto de funções de alto e baixo nível para acessar informações detalhadas de Extended Display Identification Data (EDID). Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2670]https://gitlab.freedesktop.org/emersion/libdisplay-info/-/rel eases/0.2.0/downloads/libdisplay-info-0.2.0.tar.xz * Transferência (FTP): * 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 Dependências de libdisplay-info Exigidas [2671]hwdata-0.392 Instalação do libdisplay-info Instale libdisplay-info executando os seguintes comandos: mkdir build && cd build && meson setup --prefix=/usr --buildtype=release .. && ninja Para testar os resultados, execute ninja test. Agora, como o(a) usuário(a) root: ninja install Explicações do Comando --buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados. Conteúdo Aplicativos Instalados: Nenhum(a) Biblioteca Instalada: libdisplay-info.so Diretórios Instalados: /usr/include/libdisplay-info libgcrypt-1.11.0 Introdução ao libgcrypt O pacote libgcrypt contém uma biblioteca criptográfica de uso geral baseada no código usado no GnuPG. A biblioteca fornece uma interface de alto nível para blocos de construção criptográficos usando uma API extensível e flexível. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2672]https://www.gnupg.org/ftp/gcrypt/libgcrypt/libgcrypt-1.11.0.t ar.bz2 * Transferência (FTP): * Soma de verificação MD5 da transferência: 321c4975cfd6a496f0530b65a673f9a4 * Tamanho da transferência: 4,0 MB * Espaço em disco estimado exigido: 146 MB (com testes) * Tempo de construção estimado: 0,6 UPC (com documentação; adicionar 0,4 UPC para testes) Dependências do libgcrypt Exigidas [2673]libgpg-error-1.51 Opcionais [2674]texlive-20240312 (ou [2675]install-tl-unx) Instalação do libgcrypt Instale libgcrypt executando os seguintes comandos: ./configure --prefix=/usr && make && make -C doc html && makeinfo --html --no-split -o doc/gcrypt_nochunks.html doc/gcrypt.texi && makeinfo --plaintext -o doc/gcrypt.txt doc/gcrypt.texi Para testar os resultados, emita: make check. Agora, como o(a) usuário(a) root: make install && install -v -dm755 /usr/share/doc/libgcrypt-1.11.0 && install -v -m644 README doc/{README.apichanges,fips*,libgcrypt*} \ /usr/share/doc/libgcrypt-1.11.0 && install -v -dm755 /usr/share/doc/libgcrypt-1.11.0/html && install -v -m644 doc/gcrypt.html/* \ /usr/share/doc/libgcrypt-1.11.0/html && install -v -m644 doc/gcrypt_nochunks.html \ /usr/share/doc/libgcrypt-1.11.0 && install -v -m644 doc/gcrypt.{txt,texi} \ /usr/share/doc/libgcrypt-1.11.0 Explicações do Comando --with-capabilities: Essa opção habilita o suporte a "libcap2". Observe que isso quebra o [2676]cryptsetup-2.7.5 Conteúdo Aplicativos Instalados: dumpsexp, hmac256 e mpicalc Biblioteca Instalada: libgcrypt.so Diretório Instalado: /usr/share/doc/libgcrypt-1.11.0 Descrições Curtas dumpsexp é uma ferramenta de depuração para expressões "S" hmac256 é uma implementação autônoma HMAC-SHA-256 usada para calcular um código de autenticação HMAC-SHA-256 mpicalc é uma calculadora RPN (Reverse Polish Notation) libgcrypt.so contém as funções criptográficas da API libgpg-error-1.51 Introdução ao libgpg-error O pacote libgpg-error contém uma biblioteca que define valores comuns de erro para todos os componentes do GnuPG. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2677]https://www.gnupg.org/ftp/gcrypt/libgpg-error/libgpg-error-1. 51.tar.bz2 * Transferência (FTP): * 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) Instalação do libgpg-error Instale libgpg-error executando os seguintes comandos: ./configure --prefix=/usr && make Para testar os resultados, emita: make check. Agora, como o(a) usuário(a) root: make install && install -v -m644 -D README /usr/share/doc/libgpg-error-1.51/README Conteúdo Aplicativos Instalados: gpg-error, gpgrt-config e yat2m Biblioteca Instalada: libgpg-error.so Diretórios Instalados: /usr/share/common-lisp/source/gpg-error, /usr/share/libgpg-error e /usr/share/doc/libgpg-error-1.51 Descrições Curtas gpg-error é usado para determinar códigos de erro da libgpg-error gpgrt-config é uma ferramenta ao estilo pkg-config para consultar as informações relacionadas à versão instalada da libgpg-error yat2m extrai páginas de manual a partir de um fonte Texinfo libgpg-error.so contém as funções da API da libgpg-error libgsf-1.14.53 Introdução ao libgsf O pacote libgsf contém uma biblioteca usada para fornecer uma camada extensível de abstração de entrada/saída para formatos estruturados de arquivo. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2678]https://download.gnome.org/sources/libgsf/1.14/libgsf-1.14.53 .tar.xz * Transferência (FTP): * 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) Dependências do libgsf Exigidas [2679]GLib-2.82.5 e [2680]libxml2-2.13.6 Recomendadas [2681]gdk-pixbuf-2.42.12 (Para construir gsf-office-thumbnailer) Opcionais [2682]7zip-24.09 (para testes), [2683]GTK-Doc-1.34.0, [2684]Valgrind-3.24.0 (para testes) e [2685]unzip (para testes) Instalação do libgsf Instale libgsf executando os seguintes comandos: ./configure --prefix=/usr --disable-static && make Para testar os resultados, emita: make check. Dois testes relacionados ao [2686]Valgrind-3.24.0 são conhecidos por falharem. Agora, como o(a) usuário(a) root: make install Explicações do Comando --disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas. --enable-gtk-doc: Use esse parâmetro se GTK-Doc estiver instalado e você desejar reconstruir e instalar a documentação da API. Conteúdo Aplicativos Instalados: gsf, gsf-office-thumbnailer e gsf-vba-dump Biblioteca Instalada: libgsf-1.so Diretórios Instalados: /usr/include/libgsf-1, /usr/share/gtk-doc/html/gsf e /usr/share/thumbnailers Descrições Curtas gsf é um utilitário simples de arquivamento, um pouco semelhante ao [2687]tar(1) gsf-office-thumbnailer é usado internamente por aplicativos GNOME, como Nautilus, para gerar miniaturas de vários tipos de arquivos de aplicativos de escritório gsf-vba-dump é usado para extrair macros do Visual Basic for Applications a partir de arquivos libgsf-1.so contém as funções da API libgsf libgudev-238 Introdução ao libgudev O pacote libgudev contém ligações GObject para a libudev. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2688]https://download.gnome.org/sources/libgudev/238/libgudev-238. tar.xz * Transferência (FTP): * 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 Exigidas [2689]GLib-2.82.5 (GObject Introspection exigido para GNOME) Opcionais [2690]GTK-Doc-1.34.0 e [2691]umockdev-0.19.1 (para testagem) Instalação do libgudev Instale libgudev executando os seguintes comandos: mkdir build && cd build && meson setup --prefix=/usr --buildtype=release .. && ninja Para testar os resultados, emita: ninja test. Agora, como o(a) usuário(a) root: ninja install Explicações do Comando --buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados. -D gtk_doc=true: Use essa opção se o GTK-Doc estiver instalado e você desejar construir e instalar a documentação da API. Conteúdo Aplicativo Instalado: Nenhum(a) Bibliotecas Instaladas: libgudev-1.0.so Diretórios Instalados: /usr/include/gudev-1.0 e /usr/share/gtk-doc/html/gudev Descrições Curtas libgudev-1.0.so é uma biblioteca amarradora baseada em GObject para a libudev libgusb-0.4.9 Introdução ao libgusb O pacote libgusb contém os amarradores GObject para a libusb-1.0 que tornam fácil fazer controle assíncrono, transferências em massa e de interrupções com cancelamento adequado e integração em um loop principal. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2692]https://github.com/hughsie/libgusb/releases/download/0.4.9/li bgusb-0.4.9.tar.xz * Transferência (FTP): * 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) Dependências do libgusb Exigidas [2693]JSON-GLib-1.10.6 e [2694]libusb-1.0.27 Recomendadas [2695]GLib-2.82.5 (com GObject Introspection), [2696]hwdata-0.392 (para arquivo de dados usb.ids, que também é exigido para os testes) e [2697]Vala-0.56.17 Opcionais [2698]Gi-DocGen-2025.3 e [2699]umockdev-0.19.1 (para cobertura completa de teste) Instalação do libgusb Instale libgusb executando os seguintes comandos: mkdir build && cd build && meson setup .. \ --prefix=/usr \ --buildtype=release \ -D docs=false && ninja Se você tiver [2700]Gi-DocGen-2025.3 instalado e desejar construir a documentação da API para esse pacote, emita: sed -E "/output|install_dir/s/('libgusb)'/\1-0.4.9'/" \ -i ../docs/meson.build && meson configure -D docs=true && ninja Para testar os resultados, emita: ninja test. Agora, como o(a) usuário(a) root: ninja install Explicações do Comando --buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados. -D docs=false: Permite construir esse pacote sem [2701]Gi-DocGen-2025.3 instalado. Se você tiver [2702]Gi-DocGen-2025.3 instalado e desejar reconstruir e instalar a documentação da API, um comando meson configure reconfigurará essa opção. Conteúdo Aplicativos Instalados: gusbcmd Biblioteca Instalada: libgusb.so Diretórios Instalados: /usr/include/gusb-1 e /usr/share/doc/libgusb-0.4.9 (se "gi-docgen" for usado) Descrições Curtas gusbcmd é uma ferramenta de depuração para a biblioteca "libgusb" libgusb.so contém as funções da API da libgusb libical-3.0.19 Introdução ao libical O pacote libical contém uma implementação dos protocolos e formatos de dados "iCalendar". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2703]https://github.com/libical/libical/releases/download/v3.0.19/ libical-3.0.19.tar.gz * Transferência (FTP): * 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) Dependências do libical Exigidas [2704]CMake-3.31.5 Recomendadas [2705]GLib-2.82.5 (com GObject Introspection) e [2706]Vala-0.56.17 (ambos exigidos para GNOME) Opcionais [2707]Doxygen-1.13.2 (para a documentação da API), [2708]Graphviz-12.2.1 (para a documentação da API), [2709]GTK-Doc-1.34.0 (para a documentação da API), [2710]ICU-76.1, [2711]PyGObject-3.50.0 (para alguns testes) e [2712]Berkeley DB (obsoleto) Instalação do libical Instale libical executando os seguintes comandos: mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ -D SHARED_ONLY=yes \ -D ICAL_BUILD_DOCS=false \ -D ICAL_BUILD_EXAMPLES=false \ -D GOBJECT_INTROSPECTION=true \ -D ICAL_GLIB_VAPI=true \ .. && make Se tiver [2713]Doxygen-1.13.2, [2714]Graphviz-12.2.1 e [2715]GTK-Doc-1.34.0 instalados e desejar construir a documentação da API, você deveria remover a chave -D ICAL_BUILD_DOCS=false e emitir: make docs Para testar os resultados, emita: make test. Agora, como o(a) usuário(a) root: make install Se você tiver construído a documentação da API, [então] instale emitindo, como usuário(a) root: install -vdm755 /usr/share/doc/libical-3.0.19/html && cp -vr apidocs/html/* /usr/share/doc/libical-3.0.19/html Explicações do Comando -D CMAKE_BUILD_TYPE=Release: Essa chave é usada para aplicar um nível mais alto de otimização à compilação. -D SHARED_ONLY=yes: Essa chave é usada para a finalidade de construir somente as bibliotecas compartilhadas. -D ICAL_BUILD_DOCS=false: Essa chave evita construir a documentação do GTK. Remova se você desejar construir a documentação. -D ICAL_BUILD_EXAMPLES=false: Essa chave impede construir exemplos. Remova se você quiser construí-los. -D GOBJECT_INTROSPECTION=true: Essa chave é usada para gerar ligações de meta dados do GObject. -D ICAL_GLIB_VAPI=true: Essa chave é usada para a finalidade de construir ligações para [2716]Vala-0.56.17. -D USE_BUILTIN_TZDATA=yes: Essa chave é usada para a finalidade de construir usando teus próprios dados de fuso horário. Conteúdo Aplicativos Instalados: Nenhum(a) Bibliotecas Instaladas: libical_cxx.so, libical.so, libical-glib.so, libicalss_cxx.so, libicalss.so e libicalvcal.so Diretório Instalado: /usr/include/libical, /usr/include/libical-glib, /usr/lib/cmake/LibIcal, /usr/libexec/libical, /usr/share/gtk-doc/html/libical-glib (opcional) e /usr/share/doc/libical-3.0.19/html Descrições Curtas libical.so contém as funções da API da libical libical_cxx.so contém as ligações C++ da libical libical-glib.so contém as ligações "glib" da libical libicalss.so é uma biblioteca que te permite armazenar os dados do componente "iCal" no disco em uma variedade de maneiras libicalss_cxx.so contém as ligações C++ da libicalss libicalvcal.so é uma interface C de "vCard"/"vCalendar" libidn-1.42 Introdução ao libidn libidn é um pacote projetado para manuseio de sequência internacionalizada de caracteres baseado nas especificações [2717]Stringprep, [2718]Punycode e [2719]IDNA definidas pelo grupo de trabalho "Internationalized Domain Names" (IDN) da Internet Engineering Task Force (IETF), usado para nomes de domínio internacionalizados. Isso é útil para converter dados originários da representação nativa do sistema em UTF-8; para transformar sequências de caracteres Unicode em sequências de caracteres ASCII; para permitir que os aplicativos usem certos rótulos de nome ASCII (começando com um prefixo especial) para representar rótulos de nome não ASCII; e para converter nomes inteiros de domínio para e de formulário "ASCII Compatible Encoding" (ACE). Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2720]https://ftp.gnu.org/gnu/libidn/libidn-1.42.tar.gz * Transferência (FTP): * Soma de verificação MD5 da transferência: fe061a95ae23979150a692d102dce4ad * Tamanho da transferência: 2,5 MB * Espaço em disco estimado exigido: 19 MB (com testes) * Tempo de construção estimado: 0,2 UPC (com testes) Dependências do libidn Opcionais [2721]Emacs-30.1, [2722]GTK-Doc-1.34.0, [2723]OpenJDK-23.0.2, [2724]Valgrind-3.24.0 e [2725]Mono Instalação do libidn Instale libidn executando os seguintes comandos: ./configure --prefix=/usr --disable-static && make Para testar os resultados, execute: pushd tests && make check && popd Agora, como o(a) usuário(a) root: make install && find doc -name "Makefile*" -delete && rm -rf -v doc/{gdoc,idn.1,stamp-vti,man,texi} && mkdir -v /usr/share/doc/libidn-1.42 && cp -r -v doc/* /usr/share/doc/libidn-1.42 Explicações do Comando --disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas. --enable-gtk-doc: Use esse parâmetro se GTK-Doc estiver instalado e você desejar reconstruir e instalar a documentação da API. --enable-java: Use essa chave para habilitar a construção da implementação Java da libidn. Observe que o [2726]OpenJDK-23.0.2 precisa estar instalado para usar essa opção. Conteúdo Aplicativo Instalado: idn Biblioteca Instalada: libidn.so Diretórios Instalados: /usr/share/doc/libidn-1.42 e /usr/share/gtk-doc/html/libidn Descrições Curtas idn é uma interface de linha de comando para a biblioteca de nomes internacionalizados de domínio libidn.so contém uma implementação genérica "Stringprep" que faz normalização Unicode 3.2 NFKC, mapeamento e proibição de caracteres e manuseio bidirecional de caracteres. Perfis para "Nameprep", "iSCSI", "SASL" e "XMPP" estão incluídos, bem como suporte para "Punycode" e "ASCII Compatible Encoding" (ACE) via IDNA. Um mecanismo para definir tabelas de validação específicas de "Top-Level Domain" (TLD) e para comparar sequências de caracteres com essas tabelas; bem como tabelas padrão para alguns TLDs estão inclusas libidn2-2.3.7 Introdução ao libidn2 libidn2 é um pacote projetado para manuseio de sequências internacionalizadas de caracteres baseado em padrões originários do grupo de trabalho "IDN" da Internet Engineering Task Force (IETF), projetado para nomes internacionalizados de domínio. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2727]https://ftp.gnu.org/gnu/libidn/libidn2-2.3.7.tar.gz * Transferência (FTP): * Soma de verificação MD5 da transferência: de2818c7dea718a4f264f463f595596b * Tamanho da transferência: 2,1 MB * Espaço em disco estimado exigido: 21 MB (adicionar 3 MB para testes) * Tempo de construção estimado: 0,1 UPC (adicionar 0,6 UPC para testes) Dependências do libidn2 Recomendadas [2728]libunistring-1.3 Opcionais [2729]git-2.48.1 e [2730]GTK-Doc-1.34.0 Instalação do libidn2 Instale libidn2 executando os seguintes comandos: ./configure --prefix=/usr --disable-static && make Para testar os resultados, emita: make check. Agora, como o(a) usuário(a) root: make install Explicações do Comando --disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas. --enable-gtk-doc: Use esse parâmetro se GTK-Doc estiver instalado e você desejar reconstruir e instalar a documentação da API. Conteúdo Aplicativo Instalado: idn2 Biblioteca Instalada: libidn2.so Diretório Instalado: /usr/share/gtk-doc/html/libidn2 Descrições Curtas idn2 é uma interface de linha de comando para a biblioteca internacionalizada de domínio libidn2.so contém uma implementação genérica "Stringprep" usada para manuseio de sequência internacionalizada de caracteres libksba-1.6.7 Introdução ao Libksba O pacote Libksba contém uma biblioteca usada para criar certificados "X.509", bem como tornar a Cryptographic Message Syntax (CMS) facilmente acessível por outros aplicativos. Ambas as especificações são blocos de construção de "S/MIME" e "TLS". A biblioteca não depende de outra biblioteca criptográfica, mas fornece ganchos para fácil integração com a Libgcrypt. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2731]https://www.gnupg.org/ftp/gcrypt/libksba/libksba-1.6.7.tar.bz 2 * Transferência (FTP): * Soma de verificação MD5 da transferência: 7e736de467b67c7ea88de746c31ea12f * Tamanho da transferência: 692 KB * Espaço em disco estimado exigido: 9,4 MB (com testes) * Tempo de construção estimado: 0,1 UPC (com testes) Dependências do Libksba Exigidas [2732]libgpg-error-1.51 Opcionais [2733]Valgrind-3.24.0 Instalação do Libksba Instale Libksba executando os seguintes comandos: ./configure --prefix=/usr && make Para testar os resultados, emita: make check. Agora, como o(a) usuário(a) root: make install Conteúdo Aplicativo Instalado: Nenhum(a) Biblioteca Instalada: libksba.so Diretório Instalado: Nenhum(a) Descrições Curtas libksba.so contém as funções criptográficas da API liblinear-248 Introdução ao liblinear Esse pacote fornece uma biblioteca para aprender classificadores lineares para aplicações de larga escala. Ele suporta "Support Vector Machines" (SVM) com perda L2 e L1, regressão logística, classificação multi classe e também "Máquinas Lineares de Programação" (SVMs de L1 regularizada). A complexidade computacional dele aumenta linearmente com o número de exemplos de treinamento, tornando-o um dos solucionadores SVM mais rápidos do mercado. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Nota Depois de atualizar esse pacote a partir de liblinear-247 ou anterior, você precisa reinstalar o [2734]Nmap-7.95, para a finalidade de vincular à nova biblioteca. Informação do Pacote * Transferência (HTTP): [2735]https://github.com/cjlin1/liblinear/archive/v248/liblinear-24 8.tar.gz * Transferência (FTP): * 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 Instalação do liblinear Instale liblinear executando os seguintes comandos: make lib Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) root: install -vm644 linear.h /usr/include && install -vm755 liblinear.so.6 /usr/lib && ln -sfv liblinear.so.6 /usr/lib/liblinear.so Conteúdo Aplicativos Instalados: Nenhum(a) Biblioteca Instalada: liblinear.so Diretórios Instalados: Nenhum(a) Descrições Curtas liblinear.so é uma grande biblioteca de classificação linear libmbim-1.26.4 Introdução ao libmbim O pacote libmbim contém uma biblioteca baseada em "GLib" para comunicação com modems "WWAN" e dispositivos que falam o protocolo "Mobile Interface Broadband Model" (MBIM). Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2736]https://www.freedesktop.org/software/libmbim/libmbim-1.26.4.t ar.xz * Transferência (FTP): * Soma de verificação MD5 da transferência: 58dea20cad346f31d2873b68385a9973 * Tamanho da transferência: 553 KB * Espaço em disco estimado exigido: 33 MB (com testes) * Tempo de construção estimado: 0,2 UPC (com testes) Dependências do libmbim Recomendadas [2737]GLib-2.82.5 (com GObject Introspection) Opcionais [2738]GTK-Doc-1.34.0 e [2739]help2man Instalação do libmbim Instale libmbim executando os seguintes comandos: ./configure --prefix=/usr --disable-static && make Para testar os resultados, emita: make check. Agora, como o(a) usuário(a) root: make install Explicações do Comando --disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas. --enable-gtk-doc: Use esse parâmetro se GTK-Doc estiver instalado e você desejar reconstruir e instalar a documentação da API. Conteúdo Aplicativos Instalados: mbimcli e mbim-network Bibliotecas Instaladas: libmbim-glib.so Diretórios Instalados: /usr/include/libmbim-glib e /usr/share/gtk-doc/html/libmbim-glib Descrições Curtas mbimcli é um utilitário usado para controlar dispositivos "MBIM" mbim-network é um utilitário usado para gerenciamento simples de rede dos dispositivos "MBIM" libmbim-glib.so contém funções API para comunicação com modems "WWAN" e dispositivos que falam o protocolo "Mobile Interface Broadband Model" (MBIM) libnvme-1.11.1 Introdução ao libnvme O pacote libnvme é uma biblioteca que fornece definições de tipo para estruturas de especificação NVMe, enumerações e campos de bits, funções auxiliares para construir, despachar e decodificar comandos e cargas úteis e utilitários para conectar, escanear e gerenciar dispositivos NVMe em um sistema Linux. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2740]https://github.com/linux-nvme/libnvme/archive/v1.11.1/libnvme -1.11.1.tar.gz * Transferência (FTP): * 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) Dependências do libnvme Opcionais [2741]dbus-1.16.0, [2742]JSON-C-0.18, [2743]keyutils-1.6.3 e [2744]SWIG-4.3.0 Instalação do libnvme Instale o libnvme executando os seguintes comandos: mkdir build && cd build && meson setup --prefix=/usr --buildtype=release -D libdbus=auto .. && ninja Para executar os testes, emita: ninja test. Agora, como o(a) usuário(a) root: ninja install Conteúdo Aplicativos Instalados: Nenhum(a) Biblioteca Instalada: libnvme.so e libnvme-mi.so Diretórios Instalados: /usr/include/nvme Descrições Curtas libnvme.so contém funções usadas para lidar com operações relacionadas a dispositivos NVMe. libpaper-2.2.6 Introdução ao libpaper Esse pacote destina-se a fornecer uma maneira simples para os aplicativos executarem ações baseadas em um sistema ou tamanho de papel especificado pelo(a) usuário(a). Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2745]https://github.com/rrthomas/libpaper/releases/download/v2.2.6 /libpaper-2.2.6.tar.gz * Transferência (FTP): * 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) Instalação do libpaper Instale o libpaper executando os seguintes comandos: ./configure --prefix=/usr \ --sysconfdir=/etc \ --disable-static \ --docdir=/usr/share/doc/libpaper-2.2.6 && make A suíte de teste desse pacote não funciona com uma configuração usando o local padrão de instalação. Agora, como o(a) usuário(a) root: make install Explicações do Comando --disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas. Configurando o libpaper Informação de Configuração O tamanho do papel é determinado automaticamente a partir da localidade do sistema; veja-se LC_PAPER em [2746]locale(7). Se você quiser substituí-lo, crie um arquivo papersize no diretório de configuração do(a) usuário(a). Por exemplo: mkdir -pv ~/.config && echo "a4" > ~/.config/papersize Se você quiser substituir o tamanho do papel globalmente (para todos(as) os(as) usuários(as)), configure a variável de ambiente PAPERSIZE. Por exemplo: echo "PAPERSIZE=a4" > /etc/profile.d/libpaper.sh Você pode usar um tamanho diferente de papel, como letter. Conteúdo Aplicativos Instalados: paper e paperconf Biblioteca Instalada: libpaper.so Diretórios Instalados: /usr/share/doc/libpaper-2.2.6 Descrições Curtas paper imprime informação de configuração de papel paperconf imprime informação de configuração de papel em um modo de compatibilidade libpaper.so contém funções para interrogar a biblioteca de papéis libportal-0.9.1 Introdução ao libportal O pacote libportal fornece uma biblioteca que contém APIs assíncronas estilo GIO para a maioria dos portais Flatpak. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2747]https://github.com/flatpak/libportal/releases/download/0.9.1/ libportal-0.9.1.tar.xz * Transferência (FTP): * 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) Dependências do libportal Exigidas [2748]GLib-2.82.5 (com GObject Introspection) Recomendadas [2749]GTK-3.24.48 e [2750]GTK-4.16.12 Recomendadas (tempo de execução) Para tornar esse pacote realmente útil, instale [2751]xdg-desktop-portal-1.20.0, [2752]xdg-desktop-portal-gtk-1.15.2, [2753]xdg-desktop-portal-gnome-47.3 (se executar um ambiente de área de trabalho GNOME) e [2754]xdg-desktop-portal-lxqt-1.1.0 (se executar um ambiente de área de trabalho LXQt). Eles não são necessários se usar esse pacote somente para satisfazer uma dependência de construção. Opcionais [2755]Gi-DocGen-2025.3 (para documentação), [2756]dbusmock-0.34.3 e [2757]pytest-8.3.4 (para testagem), [2758]Qt-6.8.2 e [2759]Vala-0.56.17 Instalação do libportal Atenção Se uma versão anterior do "libportal" estiver instalada, [então] mova os cabeçalhos para fora do caminho, de forma que os pacotes posteriores não encontrem conflitos (como o(a) usuário(a) root): if [ -e /usr/include/libportal ]; then rm -rf /usr/include/libportal.old && mv -vf /usr/include/libportal{,.old} fi Instale libportal executando os seguintes comandos: mkdir build && cd build && meson setup --prefix=/usr --buildtype=release -D docs=false .. && ninja Se você tiver [2760]Gi-DocGen-2025.3 instalado e desejar construir a documentação da API para esse pacote, emita: sed -i "/output/s/-1/-0.9.1/" ../doc/meson.build && meson configure -D docs=true && ninja Para testar os resultados, emita: ninja test. Observe que processos adicionais dbus-daemon possivelmente precisem ser eliminados depois que os testes forem executados. Agora, como o(a) usuário(a) root: ninja install Explicações do Comando --buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados. -D docs=false: Permite construir esse pacote sem [2761]Gi-DocGen-2025.3 instalado. Se você tiver [2762]Gi-DocGen-2025.3 instalado e desejar reconstruir e instalar a documentação da API, um comando meson configure reconfigurará essa opção. Conteúdo Aplicativos Instalados: Nenhum(a) Bibliotecas Instaladas: libportal.so, libportal-gtk3.so, libportal-gtk4.so e libportal-qt6.so Diretórios Instalados: /usr/include/libportal e /usr/share/gtk-doc/html/libportal Descrições Curtas libportal.so fornece APIs assíncronas no estilo GIO para a maioria dos portais Flatpak libportal-gtk3.so fornece funções específicas do GTK+-3 para interagir com portais Flatpak libportal-gtk4.so fornece funções específicas do GTK-4 para interagir com portais Flatpak libportal-qt6.so fornece funções específicas do Qt6 para interagir com portais Flatpak libptytty-2.0 Introdução ao libptytty O pacote libptytty fornece uma biblioteca que permite o manuseio seguro e independente do Sistema Operacional de pty/tty e de utmp/wtmp/lastlog. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2763]http://dist.schmorp.de/libptytty/libptytty-2.0.tar.gz * Transferência (FTP): * Soma de verificação MD5 da transferência: 2a7f3f3c0d3ef71902da745dc7959529 * Tamanho da transferência: 48 KB * Espaço em disco estimado exigido: 1,4 MB * Tempo de construção estimado: menos que 0,1 UPC Dependências do libptytty Exigidas [2764]CMake-3.31.5 Instalação do libptytty Instale libptytty executando os seguintes comandos: mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ -D PT_UTMP_FILE:STRING=/run/utmp \ .. && make Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) root: make install Conteúdo Aplicativos Instalados: Nenhum(a) Bibliotecas Instaladas: libptytty.so Diretórios Instalados: Nenhum(a) Descrições Curtas libptytty.so fornece manuseio seguro e independente do Sistema Operacional de pty/tty e de utmp/wtmp/lastlog libqalculate-5.5.1 Introdução ao libqalculate O pacote libqalculate contém uma biblioteca que fornece funções para uma calculadora multi propósito. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2765]https://github.com/Qalculate/libqalculate/releases/download/v 5.5.1/libqalculate-5.5.1.tar.gz * Transferência (FTP): * 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) Dependências do libqalculate Exigidas [2766]cURL-8.12.1, [2767]ICU-76.1 e [2768]libxml2-2.13.6 Opcionais [2769]Doxygen-1.13.2 e [2770]gnuplot Instalação do libqalculate Instale libqalculate executando os seguintes comandos: ./configure --prefix=/usr \ --disable-static \ --docdir=/usr/share/doc/libqalculate-5.5.1 && make Para testar os resultados, emita: make check. Agora, como o(a) usuário(a) root: make install O arquivo de arquivamento da libtool oriundo desse pacote está se referindo às bibliotecas provenientes do [2771]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 [2772]Arquivos de arquivamento do Libtool (.la), esses arquivos de arquivamento da libtool são desnecessários de qualquer maneira. Portanto, como o(a) usuário(a) root, remova o arquivo de arquivamento da libtool agora: rm -v /usr/lib/libqalculate.la Explicações do Comando --disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas. Conteúdo Aplicativos Instalados: qalc Biblioteca Instalada: libqalculate.so Diretórios Instalados: /usr/include/libqalculate, /usr/share/doc/libqalculate-5.5.1 e /usr/share/qalculate Descrições Curtas qalc é uma calculadora de linha de comando poderosa e fácil de usar libqalculate.so contém as funções da API da libqalculate libqmi-1.30.8 Introdução ao libqmi O pacote libqmi contém uma biblioteca baseada em GLib para comunicação com modems WWAN e dispositivos que falam o protocolo Qualcomm MSM Interface (QMI). Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2773]https://www.freedesktop.org/software/libqmi/libqmi-1.30.8.tar .xz * Transferência (FTP): * Soma de verificação MD5 da transferência: 5ec8838914f80e1dfa4d2fa8cc2f186d * Tamanho da transferência: 1,2 MB * Espaço em disco estimado exigido: 151 MB (com testes) * Tempo de construção estimado: 0,3 UPC (Usando paralelismo=4; com testes) Dependências do libqmi Exigidas [2774]GLib-2.82.5 (GObject Introspection recomendado) e [2775]libgudev-238 Recomendadas [2776]libmbim-1.26.4 Opcionais [2777]GTK-Doc-1.34.0, [2778]help2man e [2779]libqrtr-glib Instalação do libqmi Instale libqmi executando os seguintes comandos: PYTHON=python3 ./configure --prefix=/usr --disable-static && make Para testar os resultados, emita: make check. Agora, como o(a) usuário(a) root: make install Explicações do Comando --disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas. --enable-gtk-doc: Use esse parâmetro se GTK-Doc estiver instalado e você desejar reconstruir e instalar a documentação da API. --disable-mbim-qmux: Essa chave desabilita o suporte para usar um dispositivo de controle MBIM para mensagens QMI. Use essa chave se você não instalou o libmbim. Conteúdo Aplicativos Instalados: qmicli, qmi-firmware-update e qmi-network Bibliotecas Instaladas: libqmi-glib.so Diretórios Instalados: /usr/include/libqmi-glib e /usr/share/gtk-doc/html/libqmi-glib Descrições Curtas qmicli é um utilitário usado para controlar dispositivos QMI qmi-firmware-update é um utilitário usado para realizar atualizações de firmware em dispositivos QMI qmi-network é um utilitário usado para gerenciamento simples de rede de comunicação de dispositivos QMI libqmi-glib.so contém funções de API para comunicação com modems WWAN e dispositivos que falam o protocolo Qualcomm MSM Interface (QMI) libseccomp-2.6.0 Introdução ao libseccomp O pacote libseccomp fornece uma interface fácil de usar e independente de plataforma para o mecanismo de filtragem "syscall" do núcleo Linux. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2780]https://github.com/seccomp/libseccomp/releases/download/v2.6. 0/libseccomp-2.6.0.tar.gz * Transferência (FTP): * 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) Dependências do libseccomp Opcionais [2781]Which-2.23 (necessário para testes), [2782]Valgrind-3.24.0, [2783]cython-3.0.12 (para ligações python) e [2784]LCOV Instalação do libseccomp Instale libseccomp executando os seguintes comandos: ./configure --prefix=/usr --disable-static && make Para testar os resultados, emita: make check. Agora, como o(a) usuário(a) root: make install Explicações do Comando --disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas. --enable-python: essa chave é necessária para construir ligações python se [2785]cython-3.0.12 estiver instalado. A opção --disable-static não deve ser fornecida se essa opção for usada. Conteúdo Aplicativo Instalado: scmp_sys_resolver Biblioteca Instalada: libseccomp.so Diretórios Instalados: Nenhum(a) Descrições Curtas scmp_sys_resolver é usado para resolver chamadas de sistema para aplicativos libseccomp.so contém funções de API para traduzir chamadas de sistema libsigc++-2.12.1 Introdução ao libsigc++ O pacote libsigc++ implementa um sistema de retorno de chamada seguro para C++ padrão. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2786]https://download.gnome.org/sources/libsigc++/2.12/libsigc++-2 .12.1.tar.xz * Transferência (FTP): * 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) Dependências do libsigc++ Recomendadas [2787]Boost-1.87.0 e [2788]libxslt-1.1.42 Opcionais [2789]DocBook-utils-0.6.14, [2790]docbook-xml-5.0, [2791]Doxygen-1.13.2, [2792]fop-2.10 e [2793]mm-common Instalação do libsigc++ Instale libsigc++ executando os seguintes comandos: mkdir bld && cd bld && meson setup --prefix=/usr --buildtype=release .. && ninja Para testar os resultados, emita: ninja test. Agora, como o(a) usuário(a) root: ninja install Explicações do Comando --buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados. -D build-documentation=true: Use essa chave se [2794]Doxygen-1.13.2 estiver instalado e você desejar construir e instalar a documentação da API. Conteúdo Aplicativos Instalados: Nenhum(a) Biblioteca Instalada: libsigc-2.0.so Diretórios Instalados: /usr/{include,lib}/sigc++-2.0 e /usr/share/{devhelp/books,doc}/libsigc++-2.0 (se a documentação estiver habilitada) Descrições Curtas libsigc-2.0.so fornece um sistema de retorno de chamada seguro para C++ padrão libsigc++-3.6.0 Introdução ao libsigc++ O pacote libsigc++ implementa um sistema de retorno de chamada seguro para C++ padrão. Essa versão é parte de uma nova API para suporte ao gtkmm-4. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2795]https://download.gnome.org/sources/libsigc++/3.6/libsigc++-3. 6.0.tar.xz * Transferência (FTP): * 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) Dependências de libsigc++ Recomendadas [2796]Boost-1.87.0 e [2797]libxslt-1.1.42 Opcionais [2798]DocBook-utils-0.6.14, [2799]docbook-xml-5.0, [2800]Doxygen-1.13.2, [2801]fop-2.10 e [2802]mm-common Instalação do libsigc++ Instale libsigc++ executando os seguintes comandos: mkdir bld && cd bld && meson setup --prefix=/usr --buildtype=release .. && ninja Para testar os resultados, emita: ninja test. Agora, como o(a) usuário(a) root: ninja install Explicações do Comando --buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados. -D build-documentation=true: Use essa chave se [2803]Doxygen-1.13.2 estiver instalado e você desejar construir e instalar a documentação da API. Conteúdo Aplicativos Instalados: Nenhum(a) Biblioteca Instalada: libsigc-3.0.so Diretórios Instalados: /usr/{include,lib}/sigc++-3.0 e /usr/share/{devhelp/books,doc}/libsigc++-3.0 (se a documentação estiver habilitada) Descrições Curtas libsigc-3.0.so fornece um sistema de retorno de chamada seguro para C++ padrão libsigsegv-2.14 Introdução ao libsigsegv "libsigsegv" é uma biblioteca para lidar com falhas de página no modo de usuário(a). Uma falha de página ocorre quando um aplicativo tenta acessar uma região da memória que não está disponível atualmente. Capturar e manusear uma falha de página é uma técnica útil para implementar memória virtual paginável, acesso mapeado em memória a bases de dados persistentes, coletores geracionais de lixo, manuseadores de estouro de pilha e memória compartilhada distribuída. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2804]https://ftp.gnu.org/gnu/libsigsegv/libsigsegv-2.14.tar.gz * Transferência (FTP): * Soma de verificação MD5 da transferência: 63a2b35f11b2fbccc3d82f9e6c6afd58 * Tamanho da transferência: 456 KB * Espaço em disco estimado exigido: 3,6 MB (com testes) * Tempo de construção estimado: menos que 0,1 UPC (com testes) Instalação do libsigsegv Instale libsigsegv executando os seguintes comandos: ./configure --prefix=/usr \ --enable-shared \ --disable-static && make Para testar os resultados, emita: make check. Agora, como o(a) usuário(a) root: make install Explicações do Comando --enable-shared: Essa chave garante que as bibliotecas compartilhadas sejam compiladas. --disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas. Conteúdo Aplicativos Instalados: Nenhum(a) Biblioteca Instalada: libsigsegv.so Diretórios Instalados: Nenhum(a) Descrições Curtas libsigsegv.so é uma biblioteca para lidar com falhas de página no modo de usuário(a) libssh2-1.11.1 Introdução ao libssh2 O pacote Libssh2 é uma biblioteca C do lado do cliente que implementa o protocolo "SSH2". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2805]https://www.libssh2.org/download/libssh2-1.11.1.tar.gz * Transferência (FTP): * Soma de verificação MD5 da transferência: 38857d10b5c5deb198d6989dacace2e6 * Tamanho da transferência: 1,0 MB * Espaço em disco estimado exigido: 15 MB (com testes) * Tempo de construção estimado: 0,2 UPC (com testes) Dependências do libssh2 Opcionais [2806]CMake-3.31.5 (pode ser usado em vez do conjunto de comandos sequenciais configure), [2807]libgcrypt-1.11.0 (pode ser usado em vez do OpenSSL), [2808]OpenSSH-9.9p2 (para alguns testes) e [2809]Docker (para alguns testes) Instalação do libssh2 Instale libssh2 executando os seguintes comandos: ./configure --prefix=/usr \ --disable-docker-tests \ --disable-static && make Para testar os resultados, emita: make check. Agora, como o(a) usuário(a) root: make install Explicações do Comando --disable-docker-tests: Desabilita os testes que exigem Docker, o qual está além do escopo do BLFS. Remova essa chave se você tiver instalado o Docker e desejar executar a suíte de teste. --disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas. Conteúdo Aplicativos Instalados: Nenhum(a) Biblioteca Instalada: libssh2.so Diretórios Instalados: Nenhum(a) Descrições Curtas libssh2.so contém funções para usar o protocolo "SSH2" libstatgrab-0.92.1 Introdução ao libstatgrab Essa é uma biblioteca que fornece acesso multiplataforma a estatísticas relativas ao sistema no qual é executada. Ela está escrita em C e apresenta uma seleção de interfaces úteis que podem ser usadas para acessar estatísticas chave do sistema. A lista atual de estatísticas inclui uso de CPU, utilização de memória, uso de disco, contagem de processos, tráfego de rede de comunicação, Entrada/Saída de disco e mais. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2810]https://www.mirrorservice.org/sites/ftp.i-scream.org/pub/i-sc ream/libstatgrab/libstatgrab-0.92.1.tar.gz * Transferência (FTP): * 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) Dependências da libstatgrab Opcionais [2811]log4cplus-2.1.2 Instalação do libstatgrab Instale libstatgrab executando os seguintes comandos: ./configure --prefix=/usr \ --disable-static \ --docdir=/usr/share/doc/libstatgrab-0.92.1 && make Para testar os resultados, emita: make check. Agora, como o(a) usuário(a) root: make install Explicações do Comando --disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas. Conteúdo Aplicativos Instalados: saidar, statgrab, statgrab-make-mrtg-config e statgrab-make-mrtg-index Biblioteca Instalada: libstatgrab.so Diretórios Instalados: /usr/share/doc/libstatgrab-0.92.1 Descrições Curtas saidar é uma ferramenta baseada em "curses" para visualizar estatísticas do sistema statgrab é uma interface estilo "sysctl" para estatísticas do sistema statgrab-make-mrtg-config gera configuração MRTG statgrab-make-mrtg-index gera uma página de índice XHTML a partir de arquivos de configuração MRTG ou da entrada gerada padrão libstatgrab.so contém as funções da API da libstatgrab libtasn1-4.20.0 Introdução ao libtasn1 libtasn1 é uma biblioteca C altamente portável que codifica e decodifica dados DER/BER seguindo um esquema ASN.1. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2812]https://ftp.gnu.org/gnu/libtasn1/libtasn1-4.20.0.tar.gz * Transferência (FTP): * Soma de verificação MD5 da transferência: 930f71d788cf37505a0327c1b84741be * Tamanho da transferência: 1,7 MB * Espaço em disco estimado exigido: 16 MB (com testes) * Tempo de construção estimado: 0,3 UPC (com testes) Dependências do libtasn1 Opcionais [2813]GTK-Doc-1.34.0 e [2814]Valgrind-3.24.0 Instalação do libtasn1 Instale libtasn1 executando os seguintes comandos: ./configure --prefix=/usr --disable-static && make Para testar os resultados, emita: make check. Agora, como o(a) usuário(a) root: make install Se não passou o parâmetro --enable-gtk-doc para o script configure, [então] você consegue instalar a documentação da API usando o seguinte comando como o(a) usuário(a) root: make -C doc/reference install-data-local Explicações do Comando --disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas. --enable-gtk-doc: Esse parâmetro normalmente é usado se o GTK-Doc estiver instalado e você desejar reconstruir e instalar a documentação da API. Ele está quebrado para esse pacote devido ao uso de um aplicativo gtk-doc há muito obsoleto que não mais está disponível. Conteúdo Aplicativos Instalados: asn1Coding, asn1Decoding e asn1Parser Biblioteca Instalada: libtasn1.so Diretório Instalado: /usr/share/gtk-doc/html/libtasn1 Descrições Curtas asn1Coding é um codificador de DER ASN.1 asn1Decoding é um decodificador de DER ASN.1 asn1Parser é um gerador de árvore de sintaxe ASN.1 para a libtasn1 libtasn1.so é uma biblioteca para manipulação de Abstract Syntax Notation One (ASN.1) e de Distinguish Encoding Rules (DER) libunistring-1.3 Introdução ao libunistring libunistring é uma biblioteca que fornece funções para manipular sequências de caracteres Unicode e para manipular sequências de caracteres C de acordo com o padrão Unicode. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2815]https://ftp.gnu.org/gnu/libunistring/libunistring-1.3.tar.xz * Transferência (FTP): * Soma de verificação MD5 da transferência: 57dfd9e4eba93913a564aa14eab8052e * Tamanho da transferência: 2,6 MB * Espaço em disco estimado exigido: 58 MB (adicionar 46 MB para os testes) * Tempo de construção estimado: 0,6 UPC (adicionar 0,3 UPC para testes; ambos usando paralelismo=4) Dependências do libunistring Opcionais [2816]texlive-20240312 (ou [2817]install-tl-unx) (para reconstruir a documentação) Instalação do libunistring Instale libunistring executando os seguintes comandos: ./configure --prefix=/usr \ --disable-static \ --docdir=/usr/share/doc/libunistring-1.3 && make Para testar os resultados, emita: make check. Agora, como o(a) usuário(a) root: make install Explicações do Comando --disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas. Conteúdo Aplicativos Instalados: Nenhum(a) Bibliotecas Instaladas: libunistring.so Diretório Instalado: /usr/include/unistring e /usr/share/doc/libunistring-1.3 Descrições Curtas libunistring.so fornece a API da biblioteca de sequências de caracteres Unicode libunwind-1.8.1 Introdução ao libunwind O pacote libunwind contém uma interface de programação C portável e eficiente (API) para determinar a cadeia de chamadas de um aplicativo. A API fornece adicionalmente os meios para manipular o estado preservado (salvo pelo chamado) de cada quadro de chamada e para retomar a execução em qualquer ponto da cadeia de chamadas ("goto" não local). A API suporta operação local (mesmo processo) e remota (entre processos). Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2818]https://github.com/libunwind/libunwind/releases/download/v1.8 .1/libunwind-1.8.1.tar.gz * Transferência (FTP): * 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) Dependências do libunwind Opcionais [2819]texlive-20240312 (para "latex2man") Instalação do libunwind Instale libunwind executando os seguintes comandos: ./configure --prefix=/usr --disable-static && make Para testar os resultados, emita: make check. Agora, como o(a) usuário(a) root: make install Explicações do Comando --disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas. Conteúdo Aplicativos Instalados: Nenhum(a) Bibliotecas Instaladas: libunwind.so, libunwind-coredump.so, libunwind-generic.so (link simbólico para libunwind-x86_64.so), libunwind-ptrace.so, libunwind-setjmp.so e libunwind-x86_64.so (libunwind-x86.so em i686) Diretórios Instalados: /usr/libexec/libunwind liburcu-0.15.1 Introdução ao liburcu O pacote userspace-rcu fornece um conjunto de bibliotecas RCU (read-copy-update) do espaço de usuário(a). Essas bibliotecas de sincronização de dados fornecem acesso de leitura que escala linearmente com o número de núcleos. Ela faz isso permitindo que várias cópias de uma dada estrutura de dados vivam ao mesmo tempo e monitorando os acessos à estrutura de dados para detectar períodos de carência depois dos quais a recuperação de memória é possível. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2820]https://lttng.org/files/urcu/userspace-rcu-0.15.1.tar.bz2 * Transferência (FTP): * Soma de verificação MD5 da transferência: 5a6a892f0eea86728b4eb6dea07ed190 * Tamanho da transferência: 668 KB * Espaço em disco estimado exigido: 26 MB (com testes) * Tempo de construção estimado: 0,2 UPC (com testes) Instalação do liburcu Instale liburcu executando os seguintes comandos: ./configure --prefix=/usr \ --disable-static \ --docdir=/usr/share/doc/liburcu-0.15.1 && make Para testar os resultados, emita: make check. Agora, como o(a) usuário(a) root: make install Conteúdo Aplicativos Instalados: Nenhum(a) Bibliotecas Instaladas: liburcu.so, liburcu-bp.so, liburcu-cds.so, liburcu-common.so, liburcu-mb.so, liburcu-memb.so, liburcu-qsbr.so e liburcu-signal.so Diretórios Instalados: /usr/include/urcu e /usr/share/doc/liburcu-0.15.1 libusb-1.0.27 Introdução ao libusb O pacote libusb contém uma biblioteca usada por alguns aplicativos para acesso a dispositivos USB. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2821]https://github.com/libusb/libusb/releases/download/v1.0.27/li busb-1.0.27.tar.bz2 * Transferência (FTP): * 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 Dependências do libusb Opcionais [2822]Doxygen-1.13.2 Configurando Libusb Para acessar dispositivos brutos USB (aqueles não tratados como um disco pelo controlador de armazenamento em massa), o suporte apropriado precisa estar disponível no núcleo. Verifique a configuração do seu núcleo: Device Drivers ---> [*] USB support ---> [USB_SUPPORT] <*/M> Support for Host-side USB [USB] [*] PCI based USB host interface [USB_PCI] # These are most common USB controller drivers for PC-like systems. # For modern systems often [USB_XHCI_HCD] is the only one needed # even if the system has USB 2.0 ports: < /*/M> xHCI HCD (USB 3.0) support [USB_XHCI_HCD] < /*/M> EHCI HCD (USB 2.0) support [USB_EHCI_HCD] < /*/M> OHCI HCD (USB 1.1) support [USB_OHCI_HCD] Para mais detalhes a respeito do como configurar dispositivos USB, veja-se [2823]“Consequências do Dispositivo USB”. Instalação do libusb Instale libusb executando os seguintes comandos: ./configure --prefix=/usr --disable-static && make Se o Doxygen estiver instalado e você desejar construir a documentação da API, [então] emita os seguintes comandos: pushd doc && doxygen -u doxygen.cfg && make docs && popd Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) root: make install Se você construiu a documentação da API, [então] instale-a usando os seguintes comandos como o(a) usuário(a) root: install -v -d -m755 /usr/share/doc/libusb-1.0.27/apidocs && install -v -m644 doc/api-1.0/* \ /usr/share/doc/libusb-1.0.27/apidocs Conteúdo Aplicativos Instalados: Nenhum(a) Biblioteca Instalada: libusb-1.0.so Diretórios Instalados: /usr/include/libusb-1.0 e /usr/share/doc/libusb-1.0.27 Descrições Curtas libusb-1.0.so contém funções de API usadas para acessar hardware USB libuv-1.50.0 Introdução ao libuv O pacote libuv é uma biblioteca de suporte multiplataforma com foco em Entrada/Saída assíncrona. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2824]https://dist.libuv.org/dist/v1.50.0/libuv-v1.50.0.tar.gz * Transferência (FTP): * Soma de verificação MD5 da transferência: d346e03fe1ca89d877f9d1431ef97cec * Tamanho da transferência: 1,3 MB * Espaço em disco estimado exigido: 31 MB (com testes e página de manual) * Tempo de construção estimado: 0,5 UPC (com testes e página de manual) Dependências do libuv Opcionais [2825]sphinx-8.2.1 Instalação do libuv Instale libuv executando os seguintes comandos: Cuidado O comando sh autogen.sh abaixo falha se a variável de ambiente "ACLOCAL" estiver configurada conforme especificado em [2826]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 [2827]sphinx-8.2.1 do Python, crie a página de manual: make man -C docs Se você deseja executar os testes, [então] execute: make check como um(a) usuário(a) não root. Agora, como o(a) usuário(a) root: make install Se você construiu a página de manual, instale-a como o(a) usuário(a) root: install -Dm644 docs/build/man/libuv.1 /usr/share/man/man1 Conteúdo Aplicativos Instalados: Nenhum(a) Biblioteca Instalada: libuv.so Diretório Instalado: /usr/include/uv Descrições Curtas libuv.so contém funções de API para operações assíncronas de Entrada/Saída libxkbcommon-1.8.0 Introdução ao libxkbcommon libxkbcommon é um compilador de mapa de teclas e biblioteca de suporte que processa um subconjunto reduzido de mapas de teclas conforme definido pela especificação XKB. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2828]https://github.com/lfs-book/libxkbcommon/archive/v1.8.0/libxk bcommon-1.8.0.tar.gz * Transferência (FTP): * 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) Nota No GitHub, nós bifurcamos o repositório do fluxo de desenvolvimento para nosso próprio espaçode nomes lfs-book e recriamos uma etiqueta para o lançamento. Isso é feito para garantir que o nome do arquivo tarball baixado esteja correto e consistente (ou seja, ele não deveria mudar ao se usar o navegador em vez de uma ferramenta como wget). Nossa etiqueta e a etiqueta do lançamento do fluxo de desenvolvimento estão no mesmo commit, de forma que nós não introduzimos nenhuma mudança no conteúdo do tarball, exceto o nome do diretório de nível superior dele (que o Git não rastreia). Dependências do libxkbcommon Exigidas [2829]xkeyboard-config-2.44 (tempo de execução) Recomendadas [2830]libxcb-1.17.0, [2831]Wayland-1.23.0 e [2832]wayland-protocols-1.40 Opcionais [2833]Doxygen-1.13.2 (para gerar a documentação) e Xvfb (oriundo do [2834]Xorg-Server-21.1.16 ou [2835]Xwayland-24.1.6) Instalação do libxkbcommon Instale libxkbcommon executando os seguintes comandos: mkdir build && cd build && meson setup .. \ --prefix=/usr \ --buildtype=release \ -D enable-docs=false && ninja Para testar os resultados, garanta que Xvfb e [2836]xkeyboard-config-2.44 estão disponíveis, então emita: ninja test. Agora, como o(a) usuário(a) root: ninja install Explicações do Comando --buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados. -D enable-docs=true: Essa chave habilita a geração de documentação. O [2837]Doxygen-1.13.2 é exigido. mv -v /usr/share/doc/libxkbcommon{,-1.8.0}: se você construiu a documentação, use esse comando para instalá-la em um diretório versionado. Conteúdo Aplicativos Instalados: xkbcli Bibliotecas Instaladas: libxkbcommon.so, libxkbcommon-x11.so e libxkbregistry.so Diretórios Instalados: /usr/include/xkbcommon, /usr/libexec/xkbcommon e /usr/share/doc/libxkbcommon-1.8.0 Descrições Curtas xkbcli fornece um depurador e compilador para mapas de teclas "XKB" libxkbcommon.so contém as funções da API da libxkbcommon libxkbcommon-x11.so contém as funções específicas X11 da API da libxkbcommon libxkbregistry.so contém uma lista de modelos disponíveis, esquemas e variantes "XKB" para um dado conjunto de regras libxml2-2.13.6 Introdução ao libxml2 O pacote libxml2 contém bibliotecas e utilitários usados para analisar arquivos "XML". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2838]https://download.gnome.org/sources/libxml2/2.13/libxml2-2.13. 6.tar.xz * Transferência (FTP): * Soma de verificação MD5 da transferência: 85dffa2387ff756bdf8b3b247594914a * Tamanho da transferência: 2,3 MB * Espaço em disco estimado exigido: 113 MB (com testes) * Tempo de construção estimado: 0,4 UPC (Usando paralelismo=4; com testes) Transferências Adicionais * Suíte de Teste Opcional: [2839]https://www.w3.org/XML/Test/xmlts20130923.tar.gz - Isso habilita make check para se fazer uma testagem completa. Dependências do libxml2 Recomendadas [2840]ICU-76.1 Opcionais [2841]Valgrind-3.24.0 (possivelmente seja usado nos testes) Instalação do libxml2 Instale libxml2 executando os seguintes comandos: ./configure --prefix=/usr \ --sysconfdir=/etc \ --disable-static \ --with-history \ --with-icu \ PYTHON=/usr/bin/python3 \ --docdir=/usr/share/doc/libxml2-2.13.6 && make Se você baixou a suíte de teste, [então] emita o seguinte comando: tar xf ../xmlts20130923.tar.gz Para testar os resultados, emita: make check > check.log. Esse comando imprimirá várias linhas de mensagens de erro como “Failed to parse xstc/...” porque alguns arquivos de teste estão ausentes e essas mensagens podem ser seguramente ignoradas. Um sumário dos resultados pode ser obtido com grep -E '^Total|expected|Ran' check.log. Se [2842]Valgrind-3.24.0 estiver instalado e você desejar verificar vazamentos de memória, substitua check por check-valgrind. Nota Os testes usam [2843]http://localhost/ para testar a análise de entidades externas. Se a máquina onde você executar os testes servir como um sítio da Web, [então] os testes possivelmente travem, dependendo do conteúdo do arquivo servido. Portanto, é recomendado desligar o servidor durante os testes; como o(a) usuário(a) root: /etc/init.d/httpd stop Agora, como o(a) usuário(a) root: make install Finalmente, evite que alguns pacotes desnecessariamente se vinculem ao ICU usando os seguintes comandos como o(a) usuário(a) root: rm -vf /usr/lib/libxml2.la && sed '/libs=/s/xml2.*/xml2"/' -i /usr/bin/xml2-config Explicações do Comando --disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas. --with-history: Essa chave habilita o suporte Readline ao executar xmlcatalog ou xmllint no modo shell. --with-icu: Essa chave habilita suporte para ICU, o qual fornece suporte adicional Unicode. Isso é necessário para alguns pacotes no BLFS, como para QtWebEngine. PYTHON=/usr/bin/python3: Permite construir o módulo "libxml2" com "Python3" em vez de "Python2". Conteúdo Aplicativos Instalados: xml2-config, xmlcatalog e xmllint Bibliotecas Instaladas: libxml2.so Diretórios Instalados: /usr/include/libxml2, /usr/lib/cmake/libxml2, /usr/share/doc/libxml2-2.13.6 e /usr/share/gtk-doc/html/libxml2 Descrições Curtas xml2-config determina os sinalizadores de compilação e vinculador que deveriam ser usados para compilar e vincular aplicativos que usam a libxml2 xmlcatalog é usado para monitorar e manipular catálogos "XML" e "SGML" xmllint analisa arquivos "XML" e gera informes (baseados nas opções) para detectar erros na codificação "XML" libxml2.so fornece funções para aplicativos para analisar arquivos que usam o formato "XML" libxmlb-0.3.21 Introdução ao libxmlb O pacote libxmlb contém uma biblioteca e uma ferramenta que ajuda a criar e consultar blobs XML binários. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2844]https://github.com/hughsie/libxmlb/releases/download/0.3.21/l ibxmlb-0.3.21.tar.xz * Transferência (FTP): * 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) Dependências do libxmlb Exigidas [2845]GLib-2.82.5 (GObject Introspection recomendado) Opcionais [2846]GTK-Doc-1.34.0 e [2847]libstemmer Instalação do libxmlb Instale libxmlb executando os seguintes comandos: mkdir build && cd build && meson setup --prefix=/usr --buildtype=release -D gtkdoc=false .. && ninja Para testar os resultados, emita: ninja test. Agora, como o(a) usuário(a) root: ninja install Explicações do Comando --buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados. -D gtkdoc=false: Essa chave desabilita construir a documentação da API. Remova-a se você tiver [2848]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 [2849]GLib-2.82.5 com GObject Introspection. -D stemmer=true: Use essa chave se você tiver [2850]libstemmer instalado e desejar construir suporte para lematizador. Conteúdo Aplicativos Instalados: xb-tool Bibliotecas Instaladas: libxmlb.so Diretórios Instalados: /usr/include/libxmlb-2, /usr/libexec/installed-tests/libxmlb e /usr/share/gtk-doc/html/libxmlb (se gtk-doc foi habilitado) Descrições Curtas xb-tool é uma ferramenta usada para criar, despejar ou consultar um blob XML binário libxmlb.so contém funções que permitem criar e consultar blobs XML binários libxslt-1.1.42 Introdução ao libxslt O pacote libxslt contém bibliotecas "XSLT" usadas para estender as bibliotecas libxml2 para suportar arquivos "XSLT". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2851]https://download.gnome.org/sources/libxslt/1.1/libxslt-1.1.42 .tar.xz * Transferência (FTP): * 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) Dependências do libxslt Exigidas [2852]libxml2-2.13.6 Recomendadas (em tempo de execução) [2853]docbook-xml-4.5 e [2854]docbook-xsl-nons-1.79.2 Nota Embora não seja uma dependência direta, muitos aplicativos que usam a libxslt esperam que [2855]docbook-xml-4.5 e [2856]docbook-xsl-nons-1.79.2 estejam presentes. Opcionais [2857]libgcrypt-1.11.0 Instalação do libxslt Instale libxslt executando os seguintes comandos: ./configure --prefix=/usr \ --disable-static \ --docdir=/usr/share/doc/libxslt-1.1.42 && make Para testar os resultados, emita: make check. Agora, como o(a) usuário(a) root: make install Explicações do Comando --disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas. Conteúdo Aplicativos Instalados: xslt-config e xsltproc Bibliotecas Instaladas: libexslt.so, libxslt.so e opcionalmente, o módulo Python libxsltmod.so Diretórios Instalados: /usr/include/libexslt, /usr/include/libxslt, /usr/lib/cmake/libxslt, /usr/lib/libxslt-plugins, /usr/share/gtk-doc/lib{xslt,exslt}, /usr/share/doc/libxslt-1.1.42 e /usr/share/doc/libxslt-python-1.1.42 Descrições Curtas xslt-config é usado para descobrir o pré-processador, ligando e compilando sinalizadores necessários para usar as bibliotecas libxslt em aplicativos de terceiros xsltproc é usado para aplicar folhas de estilo "XSLT" a documentos "XML" libexslt.so é usado para fornecer extensões para funções "XSLT" libxslt.so fornece extensões para as bibliotecas libxml2 para analisar arquivos que usam o formato "XSLT" libwacom-2.14.0 Introdução ao libwacom O pacote libwacom contém uma biblioteca usada para identificar tablets gráficos oriundos da Wacom ou de vários outros fornecedores e os recursos deles específicos do modelo. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2858]https://github.com/linuxwacom/libwacom/releases/download/libw acom-2.14.0/libwacom-2.14.0.tar.xz * Transferência (FTP): * 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) Dependências do libwacom Exigidas [2859]libevdev-1.13.3 e [2860]libgudev-238 Recomendadas [2861]libxml2-2.13.6 Opcionais [2862]Doxygen-1.13.2, [2863]git-2.48.1, [2864]librsvg-2.59.2, [2865]Valgrind-3.24.0 (opcional para alguns testes), [2866]pytest-8.3.4 com [2867]python-libevdev e [2868]pyudev Instalação do libwacom Instale libwacom executando os seguintes comandos: mkdir build && cd build && meson setup .. \ --prefix=/usr \ --buildtype=release \ -D tests=disabled && ninja Para testar os resultados, emita: ninja test. Para executar testes adicionais, instale [2869]pytest-8.3.4, python-libevdev e pyudev e, então, remova a opção "-D tests=disabled" da linha meson acima. Se atualizar a partir de uma versão anterior da libwacom, remova a instalação antiga da base de dados de dispositivos para evitar uma possível correspondência duplicada de dispositivos caso alguns arquivos antigos da base de dados não forem sobrescritos: rm -rf /usr/share/libwacom Agora, como o(a) usuário(a) root: ninja install Explicações do Comando --buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados. -D tests=disabled: Esse parâmetro desabilita alguns dos testes mais avançados porque eles exigem [2870]pytest-8.3.4 e outros dois módulos Python além do escopo do BLFS para funcionar adequadamente. Conteúdo Aplicativos Instalados: libwacom-list-devices, libwacom-list-local-devices, libwacom-show-stylus e libwacom-update-db Bibliotecas Instaladas: libwacom.so Diretórios Instalados: /usr/include/libwacom-1.0 e /usr/share/libwacom Descrições Curtas libwacom-list-devices lista todos os dispositivos tablet que sejam suportados pela "libwacom" libwacom-list-local-devices lista dispositivos tablet que estejam conectados ao sistema libwacom-show-stylus lista os IDs da caneta do tablet libwacom-update-db atualiza o sistema de acordo com o conjunto atual de arquivos de dados do tablet libwacom.so contém funções usadas para acessar informações da "Wacom" libyaml-0.2.5 Introdução ao libyaml O pacote yaml contém uma biblioteca C para analisar e emitir "YAML" ("YAML Ain't Markup Language"). Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2871]https://github.com/yaml/libyaml/releases/download/0.2.5/yaml- 0.2.5.tar.gz * Transferência (FTP): * 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) Dependências do libyaml Opcionais [2872]Doxygen-1.13.2 Instalação do libyaml Instale libyaml executando os seguintes comandos: ./configure --prefix=/usr --disable-static && make Para testar os resultados, emita: make check. Agora, como o(a) usuário(a) root: make install Explicações do Comando --disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas. Conteúdo Aplicativos Instalados: Nenhum(a) Bibliotecas Instaladas: libyaml.so Diretórios Instalados: Nenhum(a) Descrições Curtas libyaml.so contém funções de API para analisar e emitir código "YAML" log4cplus-2.1.2 Introdução ao log4cplus log4cplus é uma API de registro C++20 fácil de usar, que fornece controle de camada segura, flexível e arbitrariamente granular sobre gerenciamento e configuração de registro. Ela é modelada depois da API log4j do Java. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2873]https://github.com/log4cplus/log4cplus/releases/download/REL_ 2_1_2/log4cplus-2.1.2.tar.xz * Transferência (FTP): * 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) Instalação do log4cplus Construa o log4cplus executando o seguinte comando: ./configure --prefix=/usr && make Para testar os resultados, emita: make check. Agora, instale o pacote como o(a) usuário(a) root: make install Conteúdo Aplicativos Instalados: Nenhum(a) Biblioteca Instalada: log4cplus.so Diretórios Instalados: Nenhum(a) Descrições Curtas log4cplus.so é a biblioteca log4cplus LZO-2.10 Introdução ao LZO LZO é uma biblioteca de compressão de dados adequada para descompressão e compressão de dados em tempo real. Isso significa que ela favorece a velocidade sobre a taxa de compressão. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2874]https://www.oberhumer.com/opensource/lzo/download/lzo-2.10.ta r.gz * Transferência (FTP): * 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) Instalação do LZO Instale LZO executando os seguintes comandos: ./configure --prefix=/usr \ --enable-shared \ --disable-static \ --docdir=/usr/share/doc/lzo-2.10 && make Para testar os resultados, emita: make check. Todas as verificações deveriam passar. Agora emita make test para executar a suíte completa de testes. Agora, como o(a) usuário(a) root: make install Explicações do Comando --disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas. Conteúdo Aplicativos Instalados: Nenhum(a) Bibliotecas Instaladas: liblzo2.so Diretórios Instalados: /usr/include/lzo e /usr/share/doc/lzo Descrições Curtas liblzo2.so é uma biblioteca de compressão e descompressão de dados mtdev-1.1.7 Introdução ao mtdev O pacote mtdev contém a biblioteca de tradução do protocolo multitoque que é usada para transformar todas as variantes de eventos "MT" (multitoque) do núcleo para o protocolo fendido tipo B. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2875]https://bitmath.org/code/mtdev/mtdev-1.1.7.tar.bz2 * Transferência (FTP): * Soma de verificação MD5 da transferência: 483ed7fdf7c1e7b7375c05a62848cce7 * Tamanho da transferência: 296 KB * Espaço em disco estimado exigido: 2,5 MB * Tempo de construção estimado: menos que 0,1 UPC Instalação do mtdev Instale mtdev executando os seguintes comandos: ./configure --prefix=/usr --disable-static && make Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) root: make install Explicações do Comando --disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas. Conteúdo Aplicativo Instalado: mtdev-test Biblioteca Instalada: libmtdev.so Diretórios Instalados: Nenhum(a) Descrições Curtas mtdev-test é uma ferramenta para testar a libmtdev libmtdev.so contém funções da API de tradução do protocolo multitoque Node.js-22.14.0 Introdução ao Node.js Node.js é um tempo de execução JavaScript construído sobre o mecanismo "JavaScript V8" do Chrome. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2876]https://nodejs.org/dist/v22.14.0/node-v22.14.0.tar.xz * Transferência (FTP): * Soma de verificação MD5 da transferência: 46fbebddd5da0ded77ec54ebb5134b3e * Tamanho da transferência: 46 MB * Espaço em disco estimado exigido: 1,3 GB (adicionar 45 MB para os testes) * Tempo de construção estimado: 17 UPC (adicionar 2,8 UPC para testes: ambos usando paralelismo=8 e 8 CPUs online; partes dos testes usarão todas as CPUs online) Dependências do Node.js Exigidas [2877]Which-2.23 Recomendadas [2878]Brotli-1.1.0, [2879]c-ares-1.34.4, [2880]ICU-76.1, [2881]libuv-1.50.0 e [2882]nghttp2-1.64.0 Opcionais [2883]http-parser e [2884]npm (uma cópia interna do npm será instalada se não presente) Nota Uma conexão com a Internet é necessária para alguns testes desse pacote. A loja de certificados do sistema possivelmente precise ser configurada com [2885]make-ca-1.15 antes de se testar esse pacote Instalação do Node.js Construa Node.js executando os seguintes comandos: ./configure --prefix=/usr \ --shared-brotli \ --shared-cares \ --shared-libuv \ --shared-openssl \ --shared-nghttp2 \ --shared-zlib \ --with-intl=system-icu && make Para testar os resultados, emita: make test-only. Dos 4.200 testes, 5 na suíte 'paralela' de teste são conhecidos por falharem. Agora, como o(a) usuário(a) root: make install && ln -sf node /usr/share/doc/node-22.14.0 Explicações do Comando --with-intl=system-icu: use a versão do sistema do icu. Outros valores são full-icu (para construir uma biblioteca completa local icu) e small-icu (para construir uma biblioteca mínima local icu). --shared-{brotli,cares,libuv,nghttp2,openssl,zlib}: use as bibliotecas instadas do sistema em vez das cópias locais. --without-npm: não construa npm (use se você gostaria de construir um npm separado posteriormente). --shared-http-parser: use a biblioteca instalada do sistema em vez de uma cópia local. Conteúdo Aplicativos Instalados: corepack, node, npm e npx Biblioteca Instalada: Nenhum(a) Diretórios Instalados: /usr/include/node, /usr/lib/node_modules/{corepack,npm}, /usr/share/doc/{node,node-22.14.0} e /usr/share/systemtap/tapset Descrições Curtas corepack é uma ferramenta experimental para ajudar com o gerenciamento de versões de gerenciadores de pacotes. node é o tempo de execução do JavaScript do lado do servidor npm é o gerenciador de pacotes Node.js /usr/lib/node_modules/npm/ é a raiz de instalação para executáveis e bibliotecas "Node.js" npth-1.8 Introdução ao NPth O pacote NPth contém uma biblioteca muito portável baseada em POSIX/ANSI-C para plataformas Unix que fornece agendamento não preemptivo baseado em prioridade para múltiplas camadas de execução ("multithreading") dentro de aplicativos orientados a eventos. Todas as camadas executam no mesmo espaço de endereço do aplicativo servidor, porém cada camada tem o próprio contador individual dela de aplicativo, pilha de tempo de execução, máscara de sinal e variável "errno". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2886]https://www.gnupg.org/ftp/gcrypt/npth/npth-1.8.tar.bz2 * Transferência (FTP): * Soma de verificação MD5 da transferência: cb4fc0402be5ba67544e499cb2c1a74d * Tamanho da transferência: 312 KB * Espaço em disco estimado exigido: 2,9 MB (com verificações) * Tempo de construção estimado: menos que 0,1 UPC (com as verificações) Instalação do NPth Instale NPth executando os seguintes comandos: ./configure --prefix=/usr && make Para testar os resultados, emita: make check. Agora, como o(a) usuário(a) root: make install Conteúdo Aplicativo Instalado: npth-config Biblioteca Instalada: libnpth.so Diretório Instalado: Nenhum(a) Descrições Curtas npth-config é um utilitário usado para configurar e construir aplicativos baseados na biblioteca "npth". Ele pode ser usado para consultar os sinalizadores do compilador C e do vinculador que sejam exigidos para compilar e vincular corretamente o aplicativo à biblioteca "npth" libnpth.so contém as funções de API usadas pela biblioteca "New Portable Threads" NSPR-4.36 Introdução ao NSPR O Netscape Portable Runtime (NSPR) fornece uma API neutra de plataforma para funções semelhantes às de nível de sistema e "libc". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2887]https://archive.mozilla.org/pub/nspr/releases/v4.36/src/nspr- 4.36.tar.gz * Transferência (FTP): * 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 Instalação do NSPR Instale NSPR executando os seguintes comandos: cd nspr && sed -i '/^RELEASE/s|^|#|' pr/src/misc/Makefile.in && sed -i 's|$(LIBRARY) ||' config/rules.mk && ./configure --prefix=/usr \ --with-mozilla \ --with-pthreads \ $([ $(uname -m) = x86_64 ] && echo --enable-64bit) && make A suíte de teste está projetada para testar mudanças no nss ou nspr e não é particularmente útil para verificar uma versão lançada (por exemplo, ela precisa ser executada sobre uma construção não otimizada com ambos os diretórios nss e nspr existentes lado a lado). Para maiores detalhes, vejam-se as Notas de Editor(a) para nss em [2888]https://wiki.linuxfromscratch.org/blfs/wiki/nss Agora, como o(a) usuário(a) root: make install Explicações do Comando sed -ri '/^RELEASE/s/^/#/' pr/src/misc/Makefile.in: Esse "sed" desabilita a instalação de dois scripts desnecessários. sed -i 's#$(LIBRARY) ##' config/rules.mk: Esse "sed" desabilita a instalação das bibliotecas estáticas. --with-mozilla: Esse parâmetro adiciona suporte Mozilla às bibliotecas (exigido se você quiser construir quaisquer outros produtos Mozilla e vinculá-los a essas bibliotecas). --with-pthreads: Esse parâmetro força o uso da biblioteca "pthread" do sistema. --enable-64bit: O parâmetro --enable-64bit é exigido em um sistema x86_64 para evitar falha do configure com uma alegação de que esse é um sistema sem suporte a pthread. O teste [ $(uname -m) = x86_64 ] assegura que ele não tenha efeito em um sistema de 32 de bits. Conteúdo Aplicativos Instalados: nspr-config Bibliotecas Instaladas: libnspr4.so, libplc4.so e libplds4.so Diretórios Instalados: /usr/include/nspr Descrições Curtas nspr-config fornece opções de compilador e vinculador para outros pacotes que usem a NSPR libnspr4.so contém funções que fornecem independência de plataforma para recursos do sistema operacional não "GUI", como encadeamentos, sincronização de encadeamento, Entrada/Saída normal de arquivo e rede de comunicação, tempo de intervalo e data de calendário, gerenciamento básico de memória e vinculação de biblioteca compartilhada libplc4.so contém funções que implementam muitos dos recursos oferecidos pela "libnspr4" libplds4.so contém funções que fornecem estruturas de dados PCRE2-10.45 Introdução ao PCRE2 O pacote PCRE2 contém uma nova geração das bibliotecas Perl Compatible Regular Expression. Elas são úteis para implementar correspondência de padrão de expressão regular usando a mesma sintaxe e semântica da Perl. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2889]https://github.com/PCRE2Project/pcre2/releases/download/pcre2 -10.45/pcre2-10.45.tar.bz2 * Transferência (FTP): * 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) Dependências do PCRE2 Opcionais [2890]Valgrind-3.24.0 e [2891]libedit Instalação do PCRE2 Instale PCRE2 executando os seguintes comandos: ./configure --prefix=/usr \ --docdir=/usr/share/doc/pcre2-10.45 \ --enable-unicode \ --enable-jit \ --enable-pcre2-16 \ --enable-pcre2-32 \ --enable-pcre2grep-libz \ --enable-pcre2grep-libbz2 \ --enable-pcre2test-libreadline \ --disable-static && make Para testar os resultados, emita: make check. Agora, como o(a) usuário(a) root: make install Explicações do Comando --enable-unicode: Essa chave habilita o suporte a Unicode e inclui as funções para lidar com cadeias de caracteres UTF-8/16/32 na biblioteca. --enable-pcre2-16: Essa chave habilita o suporte a caracteres de 16 bits. --enable-pcre2-32: Essa chave habilita o suporte a caracteres de 32 bits. --enable-pcre2grep-libz: Essa chave adiciona suporte para leitura de arquivos comprimidos .gz para o pcre2grep. --enable-pcre2grep-libbz2: Essa chave adiciona suporte para leitura de arquivos comprimidos .bz2 para o pcre2grep. --enable-pcre2test-libreadline: Essa chave adiciona edição de linha e recursos de histórico ao aplicativo pcre2test. --disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas. --enable-jit: essa opção habilita a compilação "bem na hora", que consegue acelerar bastante a correspondência de padrões. Conteúdo Aplicativos Instalados: pcre2-config, pcre2grep e pcre2test. Bibliotecas Instaladas: libpcre2-8.so, libpcre2-16.so, libpcre2-32.so e libpcre2-posix.so Diretório Instalado: /usr/share/doc/pcre2-10.45 Descrições Curtas pcre2grep é uma versão do grep que compreende expressões regulares compatíveis com Perl. pcre2test consegue testar uma expressão regular compatível com Perl. pcre2-config gera informações de compilação para programas vinculados às bibliotecas PCRE2 Popt-1.19 Introdução ao Popt O pacote popt contém as bibliotecas popt que são usadas por alguns aplicativos para analisar opções de linha de comando. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2892]https://ftp.osuosl.org/pub/rpm/popt/releases/popt-1.x/popt-1. 19.tar.gz * Transferência (FTP): * Soma de verificação MD5 da transferência: eaa2135fddb6eb03f2c87ee1823e5a78 * Tamanho da transferência: 584 KB * Espaço em disco estimado exigido: 6,9 MB (inclui instalar documentação e os testes) * Tempo de construção estimado: menos que 0,1 UPC (com testes) Dependências do popt Opcionais [2893]Doxygen-1.13.2 (para gerar documentação) Instalação do Popt Instale popt executando os seguintes comandos: ./configure --prefix=/usr --disable-static && make Se você tiver [2894]Doxygen-1.13.2 instalado e desejar construir a documentação da API, [então] emita: sed -i 's@\./@src/@' Doxyfile && doxygen Para testar os resultados, emita: make check. Agora, como o(a) usuário(a) root: make install Se você construiu a documentação da API, [então] instale-a usando os seguintes comandos emitidos pelo(a) usuário(a) root: install -v -m755 -d /usr/share/doc/popt-1.19 && install -v -m644 doxygen/html/* /usr/share/doc/popt-1.19 Explicações do Comando --disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas. Conteúdo Aplicativos Instalados: Nenhum(a) Biblioteca Instalada: libpopt.so Diretórios Instalados: /usr/share/doc/popt-1.19 Descrições Curtas libpopt.so é usado para analisar opções de linha de comando Protobuf-29.3 Introdução ao Protobuf O pacote Protobuf contém utilitários e bibliotecas para usar dados no formato de intercâmbio de dados do Google. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2895]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) Dependências de Protobuf Exigidas [2896]Abseil-cpp-20250127.0 e [2897]CMake-3.31.5 Opcionais [2898]gtest (para testes) Instalação do Protobuf Instale Protobuf executando os seguintes comandos: mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ -D CMAKE_SKIP_INSTALL_RPATH=ON \ -D protobuf_BUILD_TESTS=OFF \ -D protobuf_ABSL_PROVIDER=package \ -D protobuf_BUILD_LIBUPB=OFF \ -D protobuf_BUILD_SHARED_LIBS=ON \ -G Ninja .. && ninja Esse pacote vem com uma suíte de teste, mas ela exige [2899]gtest, que não é parte do BLFS. Agora, como o(a) usuário(a) root: ninja install Explicações do Comando -D CMAKE_SKIP_INSTALL_RPATH=ON: Essa chave faz com que cmake remova caminhos de pesquisa de biblioteca rigidamente codificados (rpath) ao instalar um arquivo binário executável ou uma biblioteca compartilhada. Esse pacote não precisa do rpath depois de instalado no local padrão, e o rpath ocasionalmente pode causar efeitos indesejados ou até mesmo problemas de segurança. -D protobuf_BUILD_TESTS=OFF: Esse parâmetro impede os testes de serem construídos porque [2900]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 [2901]Abseil-cpp-20250127.0. -D protobuf_BUILD_SHARED_LIBS=ON: Esse parâmetro habilita construir versões compartilhadas das bibliotecas fornecidas por esse pacote em vez das versões estáticas. Conteúdo Aplicativos Instalados: protoc-29.3.0 e protoc (um link simbólico para protoc-29.3.0) Bibliotecas Instaladas: libprotobuf.so, libprotobuf-lite.so, libprotoc.so, libutf8_range.so e libutf8_validity.so Diretórios Instalados: /usr/include/google, /usr/include/java, /usr/include/upb_generator, /usr/lib/cmake/protobuf e /usr/lib/cmake/utf8_range Descrições Curtas protoc analisa arquivos de buffer de protocolo e gera saída para diversas linguagens de programação e formatos libprotobuf.so contém funções para utilizar dados no formato de intercâmbio de dados do Google libprotobuf-lite.so contém uma versão mais simples das funções para utilizar dados no formato de intercâmbio de dados do Google libprotoc.so contém funções usadas pelo protoc em tempo de execução para saída de dados para diversas linguagens de programação e formatos libutf8_range.so contém funções que permitem que um programa determine se uma sequência de caracteres é uma sequência válida UTF-8 libutf8_validity.so contém funções que permitem que um programa determine se uma sequência de bytes é uma sequência UTF-8 válida e descubra qual é o maior prefixo válido da sequência Protobuf-c-1.5.1 Introdução ao Protobuf-c O pacote Protobuf-c contém uma implementação do formato de serialização de dados Google Protocol Buffers em C. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2902]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 Dependências de Protobuf-c Exigidas [2903]Protobuf-29.3 Opcionais [2904]Doxygen-1.13.2 Instalação do Protobuf-c Instale Protobuf-c executando os seguintes comandos: ./configure --prefix=/usr --disable-static && make Para testar os resultados, emita: make check. Agora, como o(a) usuário(a) root: make install Explicações do Comando --disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas. Conteúdo Aplicativos Instalados: protoc-gen-c e protoc-c (lincado simbolicamente a protoc-gen-c) Bibliotecas Instaladas: libprotobuf-c.so Diretórios Instalados: /usr/include/google e /usr/include/protobuf-c Descrições Curtas protoc-c gera código descritor C a partir de um arquivo .proto libprotobuf-c.so contém uma implementação C do formato de serialização de dados do Google Protocol Buffers Qca-2.3.9 Introdução ao Qca O Qca visa a fornecer uma API criptográfica direta e multiplataforma, usando tipos de dados e convenções Qt. Qca separa a API da implementação, usando "plugins" conhecidos como "Providers". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2905]https://download.kde.org/stable/qca/2.3.9/qca-2.3.9.tar.xz * Transferência (FTP): * Soma de verificação MD5 da transferência: d8aaa46356a322464f65b04d00d2bac6 * Tamanho da transferência: 748 KB * Espaço em disco estimado exigido: 57 MB (com testes) * Tempo de construção estimado: 1,0UPC (usando paralelismo = 4; com os testes) Dependências do Qca Exigidas [2906]make-ca-1.15, [2907]CMake-3.31.5, [2908]Qt-6.8.2 e [2909]Which-2.23 Opcionais [2910]Cyrus SASL-2.1.28, [2911]GnuPG-2.4.7, [2912]libgcrypt-1.11.0, [2913]libgpg-error-1.51, [2914]nss-3.108, [2915]NSPR-4.36, [2916]p11-kit-0.25.5, [2917]Doxygen-1.13.2 e [2918]Botan Instalação do Qca Corrija o local dos certificados de AC: sed -i 's@cert.pem@certs/ca-bundle.crt@' CMakeLists.txt Instale Qca executando os seguintes comandos: mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=$QT6DIR \ -D CMAKE_BUILD_TYPE=Release \ -D QT6=ON \ -D QCA_INSTALL_IN_QT_PREFIX=ON \ -D QCA_MAN_INSTALL_DIR:PATH=/usr/share/man \ .. && make Para testar os resultados, emita: make test. Agora, como o(a) usuário(a) root: make install Explicações do Comando -D CMAKE_BUILD_TYPE=Release: Essa chave é usada para aplicar um nível mais alto de otimização à compilação. -D QT6=ON: Assegura que os pacotes sejam construídos com [2919]Qt-6.8.2. -D QCA_MAN_INSTALL_DIR:PATH=/usr/share/man: Instala a página de manual do qca no local normal. Conteúdo Aplicativos Instalados: mozcerts-qt6 e qcatool-qt6 Bibliotecas Instaladas: libqca-qt6.so, libqca-cyrus-sasl.so, libqca-gcrypt.so, libqca-gnupg.so, libqca-logger.so, libqca-nss.so, libqca-ossl.so e libqca-softstore.so Diretórios Instalados: $QT6DIR/include/Qca-qt6, $QT6DIR/lib/cmake/Qca-qt6 e $QT6DIR/lib/qca-qt6 Descrições Curtas mozcerts-qt6 é uma ferramenta de linha de comando para converter "certdata.txt" em arquivos "arquivo_saida_gerada.pem" qcatool-qt6 é uma ferramenta de linha de comando para realizar várias operações criptográficas com o "Qca" libqca-qt6.so é a biblioteca "Qt Cryptography Architecture" (Qca) qcoro-0.11.0 Introdução ao qcoro Esse pacote fornece um conjunto de ferramentas para fazer uso de corrotinas C++20 com Qt. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2920]https://github.com/danvratil/qcoro/archive/v0.11.0/qcoro-0.11 .0.tar.gz * Transferência (FTP): * Soma de verificação MD5 da transferência: 085318ce2efd7fc2b4df2b5d9603b763 * Tamanho da transferência: 156 KB * Espaço em disco estimado exigido: 9,0 MB (Adicionar 19 MB para testes) * Tempo de construção estimado: 0,3 UPC (Usando paralelismo=4; adicionar 0,6 UPC para testes) Dependências de qcoro Exigidas [2921]Qt-6.8.2 Instalação do qcoro Instale qcoro executando os seguintes comandos: mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=$QT6DIR \ -D CMAKE_BUILD_TYPE=Release \ -D BUILD_TESTING=OFF \ -D QCORO_BUILD_EXAMPLES=OFF \ -D BUILD_SHARED_LIBS=ON \ .. && make Para testar esse pacote, remova o parâmetro 'BUILD_TESTING=OFF' acima e execute: make test Agora, como o(a) usuário(a) root: make install Explicações do Comando -D CMAKE_BUILD_TYPE=Release: Essa chave é usada para aplicar um nível mais alto de otimização à compilação. Conteúdo Aplicativos Instalados: Nenhum(a) Bibliotecas Instaladas: libQCoro6Core.so, libQCoro6DBus.so, libQCoro6Network.so, libQCoro6Qml.so, libQCoro6Quick.so e libQCoro6WebSockets.so Diretórios Instalados: Nove diretórios em $QT6DIR/lib/cmake/ e $QT6DIR/include/qcoro6 SpiderMonkey oriundo de firefox-128.7.0 Introdução ao SpiderMonkey SpiderMonkey é o mecanismo JavaScript e WebAssembly da Mozilla, escrito em C++ e Rust. No BLFS, o código-fonte do SpiderMonkey é retirado do Firefox. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2922]https://archive.mozilla.org/pub/firefox/releases/128.7.0esr/s ource/firefox-128.7.0esr.source.tar.xz * Transferência (FTP): * Soma de verificação MD5 da transferência: aab1f335242b809813d1d4b754d10c0b * Tamanho da transferência: 543 MB * Espaço em disco estimado exigido: 3,6 GB (40 MB instalado depois de remover 36 MB de bibliotecas estáticas; adicionar 34 MB para os testes principais e 37 MB para os testes jit) * Tempo de construção estimado: 1,9 UPC (com paralelismo=4; adicionar 1,1 UPC para testes principais e 3,7 UPC para os testes jit) Dependências do SpiderMonkey Exigidas [2923]Cbindgen-0.28.0, [2924]ICU-76.1, [2925]Which-2.23 Recomendadas [2926]LLVM-19.1.7 (com Clang, exigido para sistemas de 32 bits sem recursos de SSE2) Importante Se você estiver construindo esse pacote em um sistema de 32 bits e o Clang não estiver instalado ou você estiver substituindo a opção padrão do compilador com a variável de ambiente CXX, por favor, leia primeiro a seção Explicações do Comando. Instalação do SpiderMonkey Nota Ao contrário da maioria dos outros pacotes no BLFS, as instruções abaixo exigem que você desempacote firefox-128.7.0esr.tar.xz e mude para o diretório firefox-128.7.0. Extrair o tarball reconfigurará as permissões do diretório atual para 0755, se você tiver permissão para fazer isso. Se você fizer isso em um diretório onde o bit sticky estiver configurado, como /tmp, ela terminará com mensagens de erro: tar: .: Cannot utime: Operation not permitted tar: .: Cannot change mode to rwxr-xr-t: Operation not permitted tar: Exiting with failure status due to previous errors Isso finaliza com situação diferente de zero, mas NÃO significa que existe um problema real. Não desempacote como o(a) usuário(a) root em um diretório onde o bit sticky estiver configurado - isso irá desconfigurá-lo. Se você estiver usando ICU-76.1 ou posterior, adapte o sistema de construção para usar a biblioteca correta: sed -i 's/icu-i18n/icu-uc &/' js/moz.configure Instale SpiderMonkey executando os seguintes comandos: Nota Se você estiver compilando esse pacote em chroot, você precisa assegurar que /dev/shm esteja montado. Se você não fizer isso, a configuração do Python falhará com um informe de rastreamento reverso referenciando /usr/lib/pythonN.N/multiprocessing/synchronize.py. Como o(a) usuário(a) root, execute: mountpoint -q /dev/shm || mount -t tmpfs devshm /dev/shm Compilar o código C++ respeita $MAKEFLAGS e o padrão é 'j1'; o código do rust usará todos os processadores. mkdir obj && cd obj && ../js/src/configure --prefix=/usr \ --disable-debug-symbols \ --disable-jemalloc \ --enable-readline \ --enable-rust-simd \ --with-intl-api \ --with-system-icu \ --with-system-zlib && make Se você desejar executar a suíte de teste, adapte-a para ser compatível com Python 3.13.0 ou mais recente: sed 's/pipes/shlex/' -i ../js/src/tests/lib/results.py Para executar a suíte de teste SpiderMonkey, emita: make -C js/src check-jstests \ JSTESTS_EXTRA_ARGS="--timeout 300 --wpt=disabled" | tee jstest.log Como nós estamos construindo com o ICU do sistema, 155 testes (de um total de mais de 50.000) são conhecidos por falharem. A lista de testes falhos pode ser extraída via grep 'UNEXPECTED-FAIL' jstest.log. Passe a opção -c para grep se você quiser somente o número total de testes falhos. A suíte de teste é executada com todos os núcleos de CPU disponíveis: mesmo em um cgroup com menos núcleos atribuídos, ela ainda tenta gerar tantas tarefas de teste quanto o número de todos os núcleos no sistema; felizmente, o núcleo ainda não executará essas tarefas em núcleos não atribuídos ao cgroup, de forma que o uso da CPU ainda é controlado. Para executar a suíte de teste JIT, emita o comando a seguir. Observe que 6 testes na suíte 'timezone.js' são conhecidos por falharem devido ao ICU-76. make -C js/src check-jit-test Assim como a suíte de teste do SpiderMonkey, o número de tarefas de teste é o mesmo que o número de todos os núcleos de CPU no sistema, mesmo se um cgroup for usado. Para piorar as coisas, alguns casos de teste podem usar até 4 GB de memória do sistema, de forma que o pico de uso de memória possivelmente seja muito grande se tua CPU tiver vários núcleos. Executar a suíte de teste JIT sem memória suficiente possivelmente invoque o OOM killer do núcleo e cause problemas de estabilidade. Se você não tiver memória de sistema suficiente disponível, posponha JITTEST_EXTRA_ARGS=-jN ao comando e substitua N pelo número de tarefas de teste que tua memória de sistema disponível consiga conter. Por exemplo, se você tiver 15 GB de memória de sistema disponível e 4 núcleos de CPU, posponha JITTEST_EXTRA_ARGS=-j3 para executar a suíte de teste com 3 tarefas paralelas de forma que o uso de memória não exceda 12 GB. Cuidado Um problema no processo de instalação faz com que qualquer programa em execução que se vincule à biblioteca compartilhada do SpiderMonkey (por exemplo, GNOME Shell) trave se o SpiderMonkey for reinstalado, atualizado ou rebaixado sem uma mudança do número da versão principal (128 em 128.7.0). Para contornar esse problema, remova a versão antiga da biblioteca compartilhada do SpiderMonkey antes da instalação: rm -fv /usr/lib/libmozjs-128.so Agora, como o(a) usuário(a) root: make install && rm -v /usr/lib/libjs_static.ajs && sed -i '/@NSPR_CFLAGS@/d' /usr/bin/js128-config Explicações do Comando --disable-debug-symbols: Não gere símbolos de depuração, pois eles são muito grandes e a maioria dos(as) usuários(as) não precisará deles. Remova-o se você quiser depurar o SpiderMonkey. --disable-jemalloc: Essa chave desabilita o alocador de memória interna usado no SpiderMonkey. jemalloc destina-se somente para o ambiente do navegador Firefox. Para outros aplicativos que usam o SpiderMonkey, o aplicativo pode travar à medida que os itens alocados no alocador jemalloc forem liberados no alocador do sistema (glibc). --enable-readline: Essa chave habilita suporte Readline na interface de linha de comando do SpiderMonkey. --enable-rust-simd: Essa chave habilita otimização do SIMD na caixa encoding_rs enviada. --with-intl-api: Isso habilita as funções de internacionalização exigidas pelo Gjs. --with-system-*: Esses parâmetros permitem que o sistema de construção use versões de sistema das bibliotecas acima. Eles são necessários para estabilidade. rm -v /usr/lib/libjs_static.ajs: Remove uma grande biblioteca estática que não é usada por nenhum pacote do BLFS. sed -i '/@NSPR_CFLAGS@/d' /usr/bin/js128-config: Impede que js128-config use CFLAGS defeituosas. CC=gcc CXX=g++: O BLFS costumava preferir usar gcc e g++ em vez dos padrões do fluxo de desenvolvimento dos programas clang. Com o lançamento do gcc-12 a construção demora mais tempo com gcc e g++, principalmente por causa de avisos extras, e é maior. Passe essas variáveis de ambiente para o conjunto de comandos sequenciais de configuração se você desejar continuar a usar gcc, g++ (exportando-as e desconfigurando-as depois da instalação ou simplesmente acrescentando-as antes do comando ../js/src/configure). Se você estiver construindo em um sistema de 32 bits, veja também abaixo. CXXFLAGS="-msse2 -mfpmath=sse": Use SSE2 em vez de 387 para operações de ponto flutuante de precisão dupla. É necessário ao GCC para satisfazer as expectativas dos(as) desenvolvedores(as) do fluxo de desenvolvimento (Mozilla) com aritmética de ponto flutuante. Use-o se você estiver construindo esse pacote em um sistema de 32 bits com GCC (se o Clang não estiver instalado ou o GCC for especificado explicitamente). Observe que isso fará com que o SpiderMonkey trave em um processador sem capacidade SSE2. Se você estiver executando o sistema em um processador tão antigo, o Clang será estritamente necessário. Essa configuração não é necessária em sistemas de 64 bits porque todos os processadores x86 de 64 bits suportam SSE2 e os compiladores de 64 bits (ambos, Clang e GCC) usam SSE2 por padrão. Conteúdo Aplicativos Instalados: js128 e js128-config Bibliotecas Instaladas: libmozjs-128.so Diretórios Instalados: /usr/include/mozjs-128 Descrições Curtas js128 fornece uma interface de linha de comando para o mecanismo do JavaScript js128-config é usado para encontrar o compilador SpiderMonkey e os sinalizadores do vinculador libmozjs-128.so contém as funções da API de JavaScript da Mozilla SPIRV-Headers-1.4.304.1 Introdução ao SPIRV-Headers O pacote SPIRV-Headers contém cabeçalhos que permitem que aplicações usem a linguagem e conjunto de instruções SPIR-V com Vulkan. SPIR-V é uma linguagem intermediária binária para representar estágios gráficos de sombreadores e núcleos de computação para várias APIs Khronos, incluindo OpenGL e Vulkan. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2927]https://github.com/KhronosGroup/SPIRV-Headers/archive/vulkan- sdk-1.4.304.1/SPIRV-Headers-vulkan-sdk-1.4.304.1.tar.gz * Transferência (FTP): * 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 Dependências do SPIRV-Headers Exigidas [2928]CMake-3.31.5 Instalação do SPIRV-Headers Instale SPIRV-Headers executando os seguintes comandos: mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr -G Ninja .. && ninja Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) root: ninja install Conteúdo Aplicativos Instalados: Nenhum(a) Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /usr/include/spirv e /usr/share/cmake/SPIRV-Headers SPIRV-Tools-1.4.304.1 Introdução ao SPIRV-Tools O pacote SPIRV-Tools contém bibliotecas e utilitários para processar módulos SPIR-V. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2929]https://github.com/KhronosGroup/SPIRV-Tools/archive/vulkan-sd k-1.4.304.1/SPIRV-Tools-vulkan-sdk-1.4.304.1.tar.gz * Transferência (FTP): * 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) Dependências do SPIRV-Tools Exigidas [2930]CMake-3.31.5 e [2931]SPIRV-Headers-1.4.304.1 Instalação do SPIRV-Tools Instale SPIRV-Tools executando os seguintes comandos: mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ -D SPIRV_WERROR=OFF \ -D BUILD_SHARED_LIBS=ON \ -D SPIRV_TOOLS_BUILD_STATIC=OFF \ -D SPIRV-Headers_SOURCE_DIR=/usr \ -G Ninja .. && ninja Para testar os resultados, emita: ninja test. Agora, como o(a) usuário(a) root: ninja install Explicações do Comando -D SPIRV_WERROR=OFF: Essa chave impede que o sistema de construção trate avisos como erros. -D BUILD_SHARED_LIBS=ON: Essa chave força o sistema de construção a instalar bibliotecas compartilhadas em vez de bibliotecas estáticas. -D SPIRV_TOOLS_BUILD_STATIC=OFF: Essa chave desabilita construir versões estáticas das bibliotecas. -D SPIRV-Headers_SOURCE_DIR: Essa chave informa ao sistema de construção que [2932]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 [2933]SPIRV-Headers-1.4.304.1 para lá se quiser construir com a cópia). Conteúdo Aplicativos Instalados: spirv-as, spirv-cfg, spirv-dis, spirv-lesspipe.sh, spirv-link, spirv-lint, spirv-objdump, spirv-opt, spirv-reduce e spirv-val Bibliotecas Instaladas: libSPIRV-Tools-diff.so, libSPIRV-Tools-link.so, libSPIRV-Tools-lint.so, libSPIRV-Tools-opt.so, libSPIRV-Tools-reduce.so, libSPIRV-Tools-shared.so e libSPIRV-Tools.so Diretórios Instalados: /usr/include/spirv-tools e /usr/lib/cmake/SPIRV-Tools Descrições Curtas spirv-as cria um módulo binário SPIR-V a partir de texto de montagem do SPIR-V spirv-cfg mostra o gráfico do fluxo de controle no formato "dot" spirv-dis desmonta um módulo binário SPIR-V spirv-lesspipe.sh desmonta automaticamente um arquivo .SPV para 'less' spirv-link vincula arquivos binários SPIR-V spirv-lint verifica um módulo binário SPIR-V para erros spirv-objdump despeja informações a partir de um binário SPIR-V spirv-opt realiza otimizações em arquivos binários SPIR-V spirv-reduce reduz um arquivo binário SPIR-V spirv-val valida um arquivo binário SPIR-V libSPIRV-Tools.so contém funções para processamento de módulos SPIR-V SPIRV-LLVM-Translator-19.1.4 Introdução ao SPIRV-LLVM-Translator O pacote SPIRV-LLVM-Translator contém uma biblioteca e um utilitário para conversão entre código IR e SPIR-V do LLVM. Esse pacote, atualmente, suporta somente a versão OpenCL/Compute do SPIR-V. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2934]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) Dependências de SPIRV-LLVM-Translator Exigidas [2935]libxml2-2.13.6, [2936]LLVM-19.1.7 e [2937]SPIRV-Tools-1.4.304.1 Instalação do SPIRV-LLVM-Translator Instale SPIRV-LLVM-Translator executando os seguintes comandos: mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ -D BUILD_SHARED_LIBS=ON \ -D CMAKE_SKIP_INSTALL_RPATH=ON \ -D LLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR=/usr \ -G Ninja .. && ninja Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) root: ninja install Explicações do Comando -D BUILD_SHARED_LIBS=ON: Esse parâmetro força construir versões compartilhadas das bibliotecas. -D CMAKE_SKIP_INSTALL_RPATH=ON: Essa chave faz com que cmake remova caminhos de pesquisa de biblioteca rigidamente codificados (rpath) ao instalar um arquivo binário executável ou uma biblioteca compartilhada. Esse pacote não precisa do rpath depois de instalado no local padrão, e o rpath ocasionalmente pode causar efeitos indesejados ou até mesmo problemas de segurança. -D LLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR=/usr: Esse parâmetro permite que o sistema de construção use a versão do SPIRV-Headers que deveria ter sido instalada como uma dependência do SPIRV-Tools, em vez de baixar novamente uma cópia desnecessária dos cabeçalhos. Conteúdo Aplicativos Instalados: llvm-spirv Bibliotecas Instaladas: libLLVMSPIRVLib.so Diretórios Instalados: /usr/include/LLVMSPIRVLib Descrições Curtas llvm-spirv converte entre código IR e SPIR-V do LLVM libLLVMSPIRVLib.so contém funções que convertem entre código IR e SPIR-V do LLVM Talloc-2.4.3 Introdução ao Talloc Talloc fornece um sistema hierárquico de agrupamento de memória contada por referência com destruidores. É o alocador de memória usado no Samba. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2938]https://www.samba.org/ftp/talloc/talloc-2.4.3.tar.gz * Transferência (FTP): * Soma de verificação MD5 da transferência: a51e4220fda52f4ae39413ed7e281f38 * Tamanho da transferência: 672 KB * Espaço em disco estimado exigido: 10 MB (com testes) * Tempo de construção estimado: 0,4 UPC (com testes) Dependências do Talloc Opcionais [2939]docbook-xml-4.5, [2940]docbook-xsl-nons-1.79.2 e [2941]libxslt-1.1.42 (para gerar páginas de manual), [2942]GDB-16.2, [2943]git-2.48.1, [2944]libnsl-2.0.1, [2945]libtirpc-1.3.6, [2946]Valgrind-3.24.0 e [2947]xfsprogs-6.13.0 Instalação do Talloc Instale Talloc executando os seguintes comandos: ./configure --prefix=/usr && make Para verificar os resultados, emita make check. Agora, como o(a) usuário(a) root: make install Conteúdo Aplicativos Instalados: Nenhum(a) Bibliotecas Instaladas: libpytalloc-util.cpython-313--linux-gnu.so, libtalloc.so e talloc.cpython-313--linux-gnu.so (Módulo Python 3) Diretórios Instalados: Nenhum(a) Descrições Curtas libtalloc.so contém um substituto para a função "malloc" da Glibc Uchardet-0.0.8 Introdução ao Uchardet O pacote Uchardet contém uma biblioteca de detecção de codificação que recebe uma sequência de bytes em uma codificação de caracteres desconhecida e tenta determinar a codificação do texto. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2948]https://www.freedesktop.org/software/uchardet/releases/uchard et-0.0.8.tar.xz * Transferência (FTP): * 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) Dependências do Uchardet Exigidas [2949]CMake-3.31.5 Instalação do Uchardet Instale Uchardet executando os seguintes comandos: mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D BUILD_STATIC=OFF \ -W no-dev .. && make Para testar os resultados, emita: make test. Agora, como o(a) usuário(a) root: make install Explicações do Comando -D BUILD_STATIC=OFF: Essa chave desabilita a construção da versão estática da biblioteca. Conteúdo Aplicativos Instalados: uchardet Bibliotecas Instaladas: libuchardet.so Diretórios Instalados: /usr/include/uchardet Descrições Curtas uchardet detecta qual conjunto de caracteres é usado dentro de um arquivo libuchardet.so fornece uma API para detectar a codificação de texto em um arquivo Umockdev-0.19.1 Introdução ao Umockdev O pacote Umockdev contém uma estrutura que permite que um(a) desenvolvedor(a) simule dispositivos para uso em testes de unidade. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2950]https://github.com/martinpitt/umockdev/releases/download/0.19 .1/umockdev-0.19.1.tar.xz * Transferência (FTP): * 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) Dependências do Umockdev Exigidas [2951]libgudev-238, [2952]libpcap-1.10.5 e [2953]Vala-0.56.17 Opcionais [2954]GTK-Doc-1.34.0, [2955]Valgrind-3.24.0 (para testes) e [2956]libgphoto2 (para testes) Instalação do Umockdev Instale Umockdev executando os seguintes comandos: mkdir build && cd build && meson setup --prefix=/usr --buildtype=release .. && ninja Para testar os resultados, emita como o(a) usuário(a) root: ninja test. Um teste precisa ser executado em uma sessão do X. Agora, como o(a) usuário(a) root: ninja install Explicações do Comando -D gtk_doc=true: Use essa chave se você tiver [2957]GTK-Doc-1.34.0 instalado e desejar reconstruir e instalar a documentação da API. Conteúdo Aplicativos Instalados: umockdev-record, umockdev-run e umockdev-wrapper Bibliotecas Instaladas: libumockdev-preload.so e libumockdev.so Diretórios Instalados: /usr/include/umockdev-1.0 Descrições Curtas umockdev-record registra dispositivos Linux e os ancestrais deles a partir de sysfs/udev ou registra ioctls para um dispositivo umockdev-run executa um aplicativo sob um equipamento do umockdev usado para testar novas máquinas umockdev-wrapper agrupa um aplicativo em torno de libumockdev-preload.so.0 por meio de LD_PRELOAD libumockdev.so fornece funções de API que permitem simular dispositivos de hardware para teste de unidade utfcpp-4.0.6 Introdução ao utfcpp O pacote utfcpp contém um conjunto de arquivos de inclusão para fornecer UTF-8 com C++ de maneira portável. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2958]https://github.com/nemtrif/utfcpp/archive/v4.0.6/utfcpp-4.0.6 .tar.gz * Transferência (FTP): * 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 Dependências do utfcpp Exigidas [2959]CMake-3.31.5 Instalação do utfcpp Instale utfcpp executando os seguintes comandos: mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr .. Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) root: make install Conteúdo Aplicativos Instalados: Nenhum(a) Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /usr/include/utfcpp e /usr/share/utfcpp Wayland-1.23.0 Introdução ao Wayland Wayland é um projeto para definir um protocolo para um compositor falar com os clientes dele, bem como uma biblioteca de implementação do protocolo. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2960]https://gitlab.freedesktop.org/wayland/wayland/-/releases/1.2 3.0/downloads/wayland-1.23.0.tar.xz * Transferência (FTP): * 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) Dependências de Wayland Exigidas [2961]libxml2-2.13.6 Opcionais [2962]Doxygen-1.13.2, [2963]Graphviz-12.2.1 e [2964]xmlto-0.0.29 (para construir a documentação da API) e [2965]docbook-xml-4.5, [2966]docbook-xsl-nons-1.79.2 e [2967]libxslt-1.1.42 (para construir as páginas de manual) Instalação do Wayland Instale Wayland executando os seguintes comandos: mkdir build && cd build && meson setup .. \ --prefix=/usr \ --buildtype=release \ -D documentation=false && ninja Para testar os resultados, emita: env -u XDG_RUNTIME_DIR ninja test. Agora, como o(a) usuário(a) root: ninja install Explicações do Comando -D documentation=false: Essa chave é usada para desabilitar a construção da documentação da API. Remova-a se tiver instalado as dependências opcionais. Conteúdo Aplicativos Instalados: wayland-scanner Bibliotecas Instaladas: libwayland-client.so, libwayland-cursor.so, libwayland-egl.so e libwayland-server.so Diretórios Instalados: /usr/share/wayland Descrições Curtas wayland-scanner é uma ferramenta para gerar métodos de proxy em wayland-client-protocol.h e wayland-server-protocol.h libwayland-client.so contém funções de API para escrever aplicativos Wayland libwayland-cursor.so contém funções de API para gerenciar cursores em aplicativos Wayland libwayland-egl.so contém funções de API para lidar com chamadas OpenGL em aplicativos Wayland libwayland-server.so contém funções de API para escrever compositores Wayland Wayland-Protocols-1.40 Introdução ao Wayland-Protocols O pacote Wayland-Protocols contém protocolos adicionais do Wayland que adicionam funcionalidade fora dos protocolos já no núcleo do Wayland. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2968]https://gitlab.freedesktop.org/wayland/wayland-protocols/-/re leases/1.40/downloads/wayland-protocols-1.40.tar.xz * Transferência (FTP): * 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) Dependências de Wayland-protocols Exigidas [2969]Wayland-1.23.0 Instalação do Wayland-protocols Instale Wayland-protocols executando os seguintes comandos: mkdir build && cd build && meson setup --prefix=/usr --buildtype=release && ninja Para testar os resultados, emita: ninja test. Agora, como o(a) usuário(a) root: ninja install Conteúdo Aplicativos Instalados: Nenhum(a) Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /usr/share/wayland-protocols wv-1.2.9 Introdução ao wv O pacote wv contém ferramentas para ler informação a partir de um documento do MS Word. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2970]https://anduin.linuxfromscratch.org/BLFS/wv/wv-1.2.9.tar.gz * Transferência (FTP): * 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 Dependências de wv Exigidas [2971]libgsf-1.14.53 e [2972]libpng-1.6.46 Opcionais [2973]libwmf Instalação do wv Instale wv executando os seguintes comandos: ./configure --prefix=/usr --disable-static && make Esse pacote não tem uma suíte de teste. Agora, como o(a) usuário(a) root: make install Explicações do Comando --disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas. Conteúdo Aplicativos Instalados: wvSummary e vários outros aplicativos wv* que foram substituídos pelo abiword: veja-se [2974]https://wvware.sourceforge.net/ Biblioteca Instalada: libwv-1.2.so Diretório Instalado: /usr/share/wv Descrições Curtas wvSummary exibe a informação resumida a partir de um documento do MS Word libwv-1.2.so fornece funções para acessar documentos do MS Word Xapian-1.4.27 Introdução ao xapian Xapian é uma biblioteca de mecanismo de pesquisa de fonte aberto. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2975]https://oligarchy.co.uk/xapian/1.4.27/xapian-core-1.4.27.tar. xz * Transferência (FTP): * Soma de verificação MD5 da transferência: 1b72c939a283c1e61ff6743e7d859041 * Tamanho da transferência: 3,1 MB * Espaço em disco estimado exigido: 146 MB (adicionar 168 MB para os testes) * Tempo de construção estimado: 0,4 UPC (adicionar 9,1 UPC para testes; ambos usando paralelismo=4) Dependências de Xapian Opcionais [2976]Valgrind-3.24.0 (para os testes) Instalação do Xapian Instale Xapian executando os seguintes comandos: ./configure --prefix=/usr \ --disable-static \ --docdir=/usr/share/doc/xapian-core-1.4.27 && make Para executar a suíte de teste, emita: make check. Agora, como o(a) usuário(a) root: make install Conteúdo Aplicativos Instalados: copydatabase, quest, simpleexpand, simpleindex, simplesearch, xapian-check, xapian-compact, xapian-config, xapian-delve, xapian-metadata, xapian-pos, xapian-progsrv, xapian-replicate, xapian-replicate-server e xapian-tcpsrv Bibliotecas Instaladas: libxapian.so Diretórios Instalados: /usr/include/xapian, /usr/lib/cmake/xapian, /usr/share/doc/xapian-core-1.4.27 e /usr/share/xapian-core Descrições Curtas copydatabase realiza uma cópia documento a documento de uma ou mais bases de dados Xapian quest é uma ferramenta de linha de comando para pesquisar ao longo de uma base de dados simpleexpand é um aplicativo simples de exemplo que demonstra a expansão da consulta simpleindex indexa cada parágrafo de um arquivo de texto como um documento Xapian simplesearch é um utilitário simples de pesquisa de linha de comando xapian-check verifica a consistência de uma base de dados ou de uma tabela xapian-compact compacta uma base de dados ou mescla e compacta várias bases de dados xapian-config relata informação a respeito da versão instalada do xapian xapian-delve inspeciona o conteúdo de uma base de dados Xapian xapian-metadata lê e grava metadados de usuário(a) xapian-pos inspeciona o conteúdo de uma tabela de pederneira para desenvolvimento ou depuração xapian-progsrv é um servidor remoto para uso com ProgClient xapian-replicate replica uma base de dados a partir de um servidor mestre para uma cópia local xapian-replicate-server atende a solicitações de replicação de base de dados originárias de clientes xapian-tcpsrv é o processo de segundo plano do TCP para uso com a estrutura remota de retaguarda do Xapian Capítulo 10. Bibliotecas de Gráficos e de Fontes Dependendo de como seu sistema será usado, você pode ou não precisar das bibliotecas de gráficos e de fontes. A maioria das máquinas de área de trabalho as desejará para uso com aplicativos gráficos. A maioria dos servidores, por outro lado, não as exigirá. AAlib-1.4rc5 Introdução ao AAlib AAlib é uma biblioteca para renderizar qualquer gráfico em arte ASCII. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2977]https://downloads.sourceforge.net/aa-project/aalib-1.4rc5.tar .gz * Transferência (FTP): * 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 Dependências do AAlib Opcionais [2978]Bibliotecas do Xorg, [2979]Fontes do Xorg (tempo de execução), [2980]slang-2.3.3 e [2981]GPM-1.20.7 Instalação do AAlib Corrija um pequeno problema com o arquivo "m4" incluído: sed -i -e '/AM_PATH_AALIB,/s/AM_PATH_AALIB/[&]/' aalib.m4 Mude a fonte padrão do X11 de [2982]Fontes Legadas do Xorg para [2983]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 ' \ src/aa{fire,info,lib,linuxkbd,savefont,test,regist}.c && sed -i '1i#include ' \ src/aa{kbdreg,moureg,test,regist}.c && sed -i '/X11_KBDDRIVER/a#include ' \ src/aaxkbd.c && sed -i '/rawmode_init/,/^}/s/return;/return 0;/' \ src/aalinuxkbd.c && autoconf Instale AAlib executando os seguintes comandos: ./configure --prefix=/usr \ --infodir=/usr/share/info \ --mandir=/usr/share/man \ --with-ncurses=/usr \ --disable-static && make Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) root: make install Conteúdo Aplicativos Instalados: aafire, aainfo, aalib-config, aasavefont e aatest Biblioteca Instalada: libaa.so Diretórios Instalados: Nenhum(a) Descrições Curtas aafire é uma demonstração do AAlib, renderizando um fogo animado em arte ASCII aainfo fornece informações para suas configurações atuais relacionadas a AAlib aalib-config fornece informações de configuração para AAlib aasavefont salva uma fonte em um arquivo aatest mostra as habilidades de AAlib em um pequeno teste libaa.so é uma coleção de rotinas para renderizar qualquer entrada gerada gráfica em formato portável para arte ASCII. Ela pode ser usada por vários aplicativos e tem uma API muito bem documentada, de forma que você consiga colocá-la facilmente em seus próprios programas babl-0.1.110 Introdução ao Babl O pacote Babl é uma biblioteca dinâmica de tradução em formato de pixel, de qualquer para qualquer. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2984]https://download.gimp.org/pub/babl/0.1/babl-0.1.110.tar.xz * Transferência (FTP): * Soma de verificação MD5 da transferência: 647708858d0c217579dec462b5f202a2 * Tamanho da transferência: 312 KB * Espaço em disco estimado exigido: 14 MB (com testes) * Tempo de construção estimado: 0,1 UPC (Usando paralelismo=4; com testes) Dependências do Babl Recomendadas [2985]GLib-2.82.5 (com GObject Introspection) e [2986]librsvg-2.59.2 Opcionais [2987]Little CMS-2.17 e [2988]w3m Instalação do Babl Instale Babl executando os seguintes comandos: mkdir bld && cd bld && meson setup --prefix=/usr --buildtype=release .. && ninja Para testar os resultados, emita: ninja test. Agora, como o(a) usuário(a) root: ninja install && install -v -m755 -d /usr/share/gtk-doc/html/babl/graphics && install -v -m644 docs/*.{css,html} /usr/share/gtk-doc/html/babl && install -v -m644 docs/graphics/*.{html,svg} /usr/share/gtk-doc/html/babl/graphic s Explicações do Comando install -v -m755 -d /usr/share/gtk-doc/html/babl/graphics: Esse e os comandos subsequentes instalam a documentação html da biblioteca sob /usr /share/gtk-doc/html onde outros pacotes gtk colocam a documentação orientada para o(a) programador(a). Conteúdo Aplicativos Instalados: Nenhum(a) Bibliotecas Instaladas: libbabl-0.1.so e bibliotecas em /usr/lib/babl-0.1 Diretórios Instalados: /usr/{include,lib}/babl-0.1 e /usr/share/gtk-doc/html/babl Descrições Curtas libbabl-0.1.so contém funções para acessar "BablFishes" para converter entre formatos Exiv2-0.28.5 Introdução ao Exiv2 Exiv2 contém uma biblioteca C++ e um utilitário de linha de comando para gerenciar metadados de imagem e de vídeo. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [2989]https://github.com/Exiv2/exiv2/archive/v0.28.5/exiv2-0.28.5.t ar.gz * Transferência (FTP): * Soma de verificação MD5 da transferência: f8de9495e03f06be5152ecae3a82815c * Tamanho da transferência: 45 MB * Espaço em disco estimado exigido: 134 MB (com testes) * Tempo de construção estimado: 0,4 UPC (Usando paralelismo=4, com testes) Dependências do Exiv2 Exigidas [2990]CMake-3.31.5 Recomendadas [2991]Brotli-1.1.0, [2992]cURL-8.12.1 e [2993]inih-58 Opcionais [2994]libssh Opcionais para documentação [2995]Doxygen-1.13.2, [2996]Graphviz-12.2.1 e [2997]libxslt-1.1.42 Instalação do Exiv2 Instale Exiv2 executando os seguintes comandos: mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ -D EXIV2_ENABLE_VIDEO=yes \ -D EXIV2_ENABLE_WEBREADY=yes \ -D EXIV2_ENABLE_CURL=yes \ -D EXIV2_BUILD_SAMPLES=no \ -D CMAKE_SKIP_INSTALL_RPATH=ON \ -G Ninja .. && ninja Para testar os resultados, emita: ninja test. Agora, como o(a) usuário(a) root: ninja install Explicações do Comando -D CMAKE_SKIP_INSTALL_RPATH=ON: Essa chave faz com que cmake remova caminhos de pesquisa de biblioteca rigidamente codificados (rpath) ao instalar um arquivo binário executável ou uma biblioteca compartilhada. Esse pacote não precisa do rpath depois de instalado no local padrão, e o rpath ocasionalmente pode causar efeitos indesejados ou até mesmo problemas de segurança. -D EXIV2_ENABLE_VIDEO=yes: Essa chave habilita o gerenciamento de metadados de vídeo. -D EXIV2_ENABLE_WEBREADY=yes: Essa chave habilita o gerenciamento de metadados de imagem da web. -D EXIV2_BUILD_SAMPLES=no: Essa chave é necessária para suprimir a construção e instalação de aplicativos de amostra. Se os aplicativos de amostra forem compilados, 34 aplicativos adicionais serão instalados em /usr/bin. -D EXIV2_ENABLE_CURL=yes: Essa chave é necessária para habilitar os recursos de rede de comunicação/http. -D EXIV2_ENABLE_INIH=no: Use essa chave se você não tiver instalado [2998]inih-58. -D EXIV2_ENABLE_BROTLI=no: Use essa chave se você não tiver instalado [2999]Brotli-1.1.0. Conteúdo Aplicativo Instalado: exiv2 Biblioteca Instalada: libexiv2.so Diretórios Instalados: /usr/include/exiv2 e /usr/lib/cmake/exiv2 Descrições Curtas exiv2 é um utilitário usado para despejar dados "Exif" FreeType-2.13.3 Introdução ao FreeType2 O pacote FreeType2 contém uma biblioteca que permite que os aplicativos renderizem corretamente as fontes TrueType. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3000]https://downloads.sourceforge.net/freetype/freetype-2.13.3.ta r.xz * Transferência (FTP): * Soma de verificação MD5 da transferência: f3b4432c4212064c00500e1ad63fbc64 * Tamanho da transferência: 2,5 MB * Espaço em disco estimado exigido: 33 MB (com documentação adicional) * Tempo de construção estimado: 0,2 UPC (com documentação adicional) Transferências Adicionais Documentação Adicional * Transferência (HTTP): [3001]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 Dependências do FreeType2 Recomendadas [3002]harfBuzz-10.4.0 (circular: construa freetype, então harfbuzz, então reinstale freetype), [3003]libpng-1.6.46 e [3004]Which-2.23 Opcionais [3005]Brotli-1.1.0 e [3006]librsvg-2.59.2 Opcionais (para documentação) [3007]docwriter Instalação do FreeType2 Se você baixou a documentação adicional, [então] desempacote-a na árvore do fonte usando o seguinte comando: tar -xf ../freetype-doc-2.13.3.tar.xz --strip-components=2 -C docs Instale FreeType2 executando os seguintes comandos: sed -ri "s:.*(AUX_MODULES.*valid):\1:" modules.cfg && sed -r "s:.*(#.*SUBPIXEL_RENDERING) .*:\1:" \ -i include/freetype/config/ftoption.h && ./configure --prefix=/usr --enable-freetype-config --disable-static && make Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) root: make install Se você baixou a documentação opcional, [então] instale-a como o(a) usuário(a) root: cp -v -R docs -T /usr/share/doc/freetype-2.13.3 && rm -v /usr/share/doc/freetype-2.13.3/freetype-config.1 Explicações do Comando sed -ri ...: O primeiro comando habilita a validação da tabela "GX/AAT" e "OpenType" e o segundo comando habilita a renderização de sub pixel. Observe que a renderização de sub pixel possivelmente tenha problemas de patente. Certifique-se de ler a parte 'Outros problemas de patentes' de [3008]https://freetype.org/patents.html antes de habilitar essa opção. --enable-freetype-config: Essa chave garante que a página de manual para "freetype-config" seja instalada. --without-harfbuzz: se harfbuzz for instalado antes de freetype sem suporte a freetype, [então] use essa chave para evitar uma falha de construção. --disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas. Conteúdo Aplicativo Instalado: freetype-config Biblioteca Instalada: libfreetype.so Diretórios Instalados: /usr/include/freetype2 e /usr/share/doc/freetype-2.13.3 Descrições Curtas freetype-config é usado para obter informações da compilação e da vinculação do FreeType libfreetype.so contém funções para renderizar vários tipos de fonte, como "TrueType" e "Type1" Fontconfig-2.16.0 Introdução ao Fontconfig O pacote Fontconfig contém uma biblioteca e aplicativos de suporte usados para configurar e personalizar o acesso à fonte. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3009]https://www.freedesktop.org/software/fontconfig/release/fontc onfig-2.16.0.tar.xz * Transferência (FTP): * 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) Dependências do Fontconfig Exigidas [3010]FreeType-2.13.3 Opcionais [3011]bubblewrap-0.11.0 (usado por alguns testes), [3012]cURL-8.12.1 e [3013]libarchive-3.7.7 (ambos usados por alguns testes para baixar e extrair arquivos de teste), [3014]JSON-C-0.18, [3015]DocBook-utils-0.6.14 e [3016]libxml2-2.13.6, [3017]texlive-20240312 (ou [3018]install-tl-unx) Nota Uma conexão com a Internet é necessária para alguns testes desse pacote. A loja de certificados do sistema possivelmente precise ser configurada com [3019]make-ca-1.15 antes de se testar esse pacote Nota Se tiver DocBook Utils instalado e remover o parâmetro --disable-docs do comando configure abaixo, você precisa também ter [3020]SGMLSpm-1.1 e [3021]texlive-20240312 instalados, ou a construção do Fontconfig falhará. Instalação do Fontconfig Instale Fontconfig executando os seguintes comandos: ./configure --prefix=/usr \ --sysconfdir=/etc \ --localstatedir=/var \ --disable-docs \ --docdir=/usr/share/doc/fontconfig-2.16.0 && make Para testar os resultados, emita: make check. Um teste é conhecido por falhar se o núcleo não suportar espaços de nomes de usuário(a). Alguns testes transferirão alguns arquivos de fonte via Internet. Agora, como o(a) usuário(a) root: make install Se não removeu o parâmetro --disable-docs do comando configure, [então] você consegue instalar a documentação pré-gerada usando os seguintes comandos como o(a) usuário(a) root: install -v -dm755 \ /usr/share/{man/man{1,3,5},doc/fontconfig-2.16.0} && install -v -m644 fc-*/*.1 /usr/share/man/man1 && install -v -m644 doc/*.3 /usr/share/man/man3 && install -v -m644 doc/fonts-conf.5 /usr/share/man/man5 && install -v -m644 doc/*.{pdf,sgml,txt,html} \ /usr/share/doc/fontconfig-2.16.0 Explicações do Comando --disable-docs: Essa chave evita construir a documentação (o tarball de lançamento inclui a documentação pré-gerada). Configurando Fontconfig Arquivos de Configuração /etc/fonts/*, /etc/fonts/conf.d/* e /usr/share/fontconfig/conf.avail/* Informação de Configuração O arquivo principal de configuração para Fontconfig é /etc/fonts/fonts.conf. Geralmente você não deseja editar esse arquivo. Ele também lerá /etc/fonts/local.conf e quaisquer arquivos em /etc/fonts/conf.d. Para colocar um novo diretório de fontes na configuração, crie (ou atualize) o arquivo /etc/fonts/local.conf com suas informações locais ou adicione um novo arquivo em /etc/fonts/conf.d. O local padrão das fontes em Fontconfig é: * /usr/share/fonts * ~/.local/share/fonts * ~/.fonts (isso agora está obsoleto, mas, no momento, ainda funciona) Fontconfig também envia muitos arquivos de configuração de exemplo no diretório /usr/share/fontconfig/conf.avail. Criar links simbólicos para arquivos específicos para /etc/fonts/conf.d irá habilitá-los. A configuração padrão geralmente é boa o suficiente para a maioria dos(as) usuários(as). Veja-se /etc/fonts/conf.d/README para uma descrição dos arquivos de configuração. Mais informações a respeito de configurar o Fontconfig podem ser encontradas no manual do(a) usuário(a) em [3022]file:///usr/share/doc/fontconfig-2.16.0/fontconfig-user.html. Conteúdo Aplicativos Instalados: fc-cache, fc-cat, fc-conflist, fc-list, fc-match, fc-pattern, fc-query, fc-scan e fc-validate Biblioteca Instalada: libfontconfig.so Diretórios Instalados: /etc/fonts, /usr/include/fontconfig, /usr/share/doc/fontconfig-2.16.0, /usr/share/fontconfig, /usr/share/xml/fontconfig e /var/cache/fontconfig Descrições Curtas fc-cache é usado para criar caches de informações de fonte fc-cat é usado para ler caches de informações de fonte fc-conflist mostra as informações dos arquivos do conjunto de regras no sistema fc-list é usado para criar listas de fontes fc-match é usado para corresponder às fontes disponíveis ou encontrar fontes que correspondam a um determinado padrão fc-pattern é usado para analisar amostra (modelo vazio por padrão) e mostrar o resultado analisado fc-query é usado para consultar arquivos de fontes e imprimir padrões resultantes fc-scan é usado para escanear arquivos e diretórios de fontes e imprimir padrões resultantes fc-validate é usado para validar arquivos de fontes libfontconfig.so contém funções usadas pelos aplicativos Fontconfig e também por outros aplicativos para configurar ou personalizar o acesso à fonte FriBidi-1.0.16 Introdução ao FriBidi O pacote FriBidi é uma implementação do [3023]Algoritmo Bidirecional Unicode (BIDI). Isso é útil para suportar os alfabetos árabe e hebraico em outros pacotes. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3024]https://github.com/fribidi/fribidi/releases/download/v1.0.16/ fribidi-1.0.16.tar.xz * Transferência (FTP): * 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) Dependências do FriBidi Opcionais [3025]c2man (para construir páginas de manual) Instalação do FriBidi Instale FriBidi executando os seguintes comandos: mkdir build && cd build && meson setup --prefix=/usr --buildtype=release .. && ninja Para testar os resultados, emita: ninja test. Agora, como o(a) usuário(a) root: ninja install Explicações do Comando --buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados. Conteúdo Aplicativo Instalado: fribidi Biblioteca Instalada: libfribidi.so Diretório Instalado: /usr/include/fribidi Descrições Curtas fribidi é uma interface de linha de comando para a biblioteca libfribidi e pode ser usada para converter uma sequência lógica de caracteres para saída gerada visual libfribidi.so contém funções usadas para implementar o [3026]Algoritmo Bidirecional Unicode gegl-0.4.54 Introdução ao gegl Esse pacote fornece a "Generic Graphics Library", que é um formato de processamento de imagens baseado em gráficos. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3027]https://download.gimp.org/pub/gegl/0.4/gegl-0.4.54.tar.xz * Transferência (FTP): * Soma de verificação MD5 da transferência: e739f5c59b18d3813b7b4ae77372f53d * Tamanho da transferência: 5,7 MB * Espaço em disco estimado exigido: 124 MB (Adicionar 4 MB para testes) * Tempo de construção estimado: 0,7 UPC (adicionar 0,1 UPC para testes, ambos com paralelismo=4) Dependências do gegl Exigidas [3028]babl-0.1.110 e [3029]JSON-GLib-1.10.6 Recomendadas [3030]GLib-2.82.5 (com GObject Introspection), [3031]Graphviz-12.2.1 (construído com pango e libpng), [3032]Pygments-2.19.1 e [3033]PyGObject-3.50.0 Opcionais [3034]asciidoc-10.2.1, [3035]Cairo-1.18.2, [3036]FFmpeg-7.1 (atualmente quebrado), [3037]gdk-pixbuf-2.42.12, [3038]gexiv2-0.14.3, [3039]GTK-Doc-1.34.0, [3040]jasper-4.2.4, [3041]Little CMS-2.17, [3042]libraw-0.21.3, [3043]librsvg-2.59.2, [3044]libspiro-20220722, [3045]libtiff-4.7.0, [3046]libwebp-1.5.0, [3047]luajit-20250212, [3048]Pango-1.56.1, [3049]Poppler-25.02.0, [3050]Ruby-3.4.2, [3051]SDL2-2.30.11, [3052]v4l-utils-1.28.1, [3053]Vala-0.56.17, [3054]lensfun, [3055]libnsgif, [3056]libumfpack, [3057]maxflow, [3058]MRG, [3059]OpenCL, [3060]OpenEXR, [3061]poly2tri-c, [3062]source-highlight e [3063]w3m Instalação do gegl Se você estiver instalando sobre uma versão anterior do gegl, um dos módulos precisará ser removido. Como o(a) usuário(a) root, execute o seguinte comando para removê-lo: rm -f /usr/lib/gegl-0.4/vector-fill.so Instale gegl executando os seguintes comandos: mkdir build && cd build && meson setup --prefix=/usr --buildtype=release .. && ninja Para executar os testes, emita: ninja test. Agora, como o(a) usuário(a) root: ninja install Explicações do Comando -D docs=true: Use essa chave para construir e instalar a documentação (exige [3064]GTK-Doc-1.34.0). Conteúdo Aplicativos Instalados: gegl e gegl-imgcmp Bibliotecas Instaladas: libgegl-0.4.so, libgegl-npd-0.4.so e módulos em /usr/lib/gegl-0.4 Diretórios Instalados: /usr/lib/gegl-0.4 e /usr/include/gegl-0.4 Descrições Curtas gegl é uma ferramenta de linha de comando para interfacear com a biblioteca gegl gegl-imgcmp é uma ferramenta simples de detecção de diferença de imagem para uso em testes de regressão libgegl-0.4.so fornece infraestrutura para fazer edição de imagem não destrutiva em cache baseada em demanda em "buffers" maiores que a RAM libgegl-npd-0.4.so é a biblioteca "GEGL" de deformação de imagem de N pontos giflib-5.2.2 Introdução ao giflib O pacote giflib contém bibliotecas para ler e escrever "GIFs", bem como aplicativos para converter e trabalhar com arquivos "GIF". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3065]https://sourceforge.net/projects/giflib/files/giflib-5.2.2.ta r.gz * Transferência (FTP): * Soma de verificação MD5 da transferência: 913dd251492134e235ee3c9a91987a4d * Tamanho da transferência: 440 KB * Espaço em disco estimado exigido: 4,0 MB (com documentação) * Tempo de construção estimado: menos que 0,1 UPC (com a documentação) Transferências Adicionais * Remendo exigido: [3066]https://www.linuxfromscratch.org/patches/blfs/12.3/giflib-5.2 .2-upstream_fixes-1.patch Dependências do giflib Exigidas [3067]xmlto-0.0.29 Instalação do giflib Primeiro, evite que o processo de construção instale arquivos XML em vez de páginas de manual: patch -Np1 -i ../giflib-5.2.2-upstream_fixes-1.patch Em seguida, remova uma dependência desnecessária de [3068]ImageMagick-7.1.1-43 movendo um arquivo para um local esperado: cp pic/gifgrid.gif doc/giflib-logo.gif Instale giflib executando os seguintes comandos: make Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) root: make PREFIX=/usr install && rm -fv /usr/lib/libgif.a && find doc \( -name Makefile\* -o -name \*.1 \ -o -name \*.xml \) -exec rm -v {} \; && install -v -dm755 /usr/share/doc/giflib-5.2.2 && cp -v -R doc/* /usr/share/doc/giflib-5.2.2 Explicações do Comando rm -fv /usr/lib/libgif.a: Esse comando remove uma biblioteca estática que não é usada por nenhum pacote do BLFS. find doc ... -exec rm -v {} \;: Esse comando remove os arquivos Makefiles, man e xml do diretório de documentação que, de outra forma, seriam instalados pelos comandos a seguir. Conteúdo Aplicativos Instalados: gif2rgb, gifbuild, gifclrmp, giffix, giftext e giftool Biblioteca Instalada: libgif.so Diretório Instalado: /usr/share/doc/giflib-5.2.2 Descrições Curtas gif2rgb converte imagens salvas como "GIF" em imagens "RGB" de 24 bits gifbuild despeja dados "GIF" em um formato textual ou os entulha em um "GIF" gifclrmp modifica mapas de cores de imagens "GIF" giffix tenta desajeitadamente corrigir imagens truncadas "GIF" giftext imprime (somente texto) informações gerais a respeito de um arquivo "GIF" giftool é uma ferramenta de transformação "GIF" libgif.so contém funções de API exigidas pelos aplicativos giflib e quaisquer outros aplicativos necessitando de funcionalidade de biblioteca para ler, escrever e manipular imagens "GIF" Glad-2.0.8 Introdução ao Glad O pacote Glad contém um gerador para carregar contextos do Vulkan, OpenGL, EGL, GLES e GLX. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3069]https://github.com/Dav1dde/glad/archive/v2.0.8/glad-2.0.8.tar .gz * Transferência (FTP): * 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 Dependências do Glad Opcionais (exigidas para executar os testes) [3070]pytest-8.3.4, [3071]rustc-1.85.0, [3072]Bibliotecas do Xorg, [3073]glfw e [3074]WINE Instalação do Glad Instale Glad executando os seguintes comandos: pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD Esse pacote vem com uma suíte de teste, mas ela não pode ser executada sem instalar-se as dependências externas listadas acima. Agora, como o(a) usuário(a) root: pip3 install --no-index --find-links dist --no-user glad2 Conteúdo Aplicativos Instalados: glad Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /usr/lib/python3.13/site-packages/glad e /usr/lib/python3.13/site-packages/glad2-2.0.8.dist-info Descrições Curtas glad gera carregadores para contextos do Vulkan, OpenGL, EGL, GLES e GLX GLM-1.0.1 Introdução ao GLM "OpenGL Mathematics" (GLM) é uma biblioteca matemática C++ somente de cabeçalho para software gráfico baseada nas especificações "OpenGL Shading Language" (GLSL). Um sistema de extensão fornece recursos estendidos, tais como transformações de matrizes e "quaternions". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3075]https://github.com/g-truc/glm/archive/1.0.1/glm-1.0.1.tar.gz * Transferência (FTP): * Soma de verificação MD5 da transferência: f824ac50e16310a95279032f82cbd341 * Tamanho da transferência: 4,4 MB * Espaço em disco estimado exigido: 44 MB * Tempo de construção estimado: menos que 0,1 UPC Instalação do GLM Nota Esse pacote é incomum, pois inclui a funcionalidade dele em arquivos de cabeçalho. Nós apenas os copiamos para a posição. Como o(a) usuário(a) root: cp -r glm /usr/include/ && cp -r doc /usr/share/doc/glm-1.0.1 Conteúdo Aplicativo Instalado: Nenhum(a) Biblioteca Instalada: Nenhum(a) Diretório Instalado: /usr/include/glm e /usr/share/doc/glm-1.0.1 Graphite2-1.3.14 Introdução ao Graphite2 Graphite2 é um mecanismo de renderização para fontes de grafite. Essas são fontes "TrueType" com tabelas adicionais contendo informações de renderização inteligente e foram originalmente desenvolvidas para suportar sistemas complexos de escrita não romanos. Elas possivelmente contenham regras para, por exemplo, ligaduras, substituição de glifos, "kerning", justificação - isso pode torná-las úteis mesmo em textos escritos em sistemas de escrita romanos, como o inglês. Observe que o firefox por padrão fornece uma cópia interna do mecanismo de grafite e não pode usar uma versão do sistema (embora agora possa ser remendado para usá-lo), mas também ele deveria se beneficiar da disponibilidade de fontes de grafite. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3076]https://github.com/silnrsi/graphite/releases/download/1.3.14/ graphite2-1.3.14.tgz * Transferência (FTP): * 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) Dependências do Graphite2 Exigidas [3077]CMake-3.31.5 Opcionais [3078]FreeType-2.13.3, [3079]silgraphite para construir a ferramenta de teste e avaliação comparativa comparerender e, se isso estiver presente, e [3080]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: [3081]asciidoc-10.2.1, [3082]Doxygen-1.13.2, [3083]texlive-20240312 (ou [3084]install-tl-unx) e [3085]dblatex (para documentos "PDF") Para executar a suíte de teste, você precisará de [3086]FontTools (módulo Python 3), caso contrário, os testes "cmp" falham. Opcional (em tempo de execução) Você precisará de pelo menos uma [3087]fonte grafite adequada para que o pacote seja útil. Instalação do Graphite2 Alguns testes falham se o [3088]FontTools (módulo Python 3) não estiver instalado. Esses testes podem ser removidos com: sed -i '/cmptest/d' tests/CMakeLists.txt Instale Graphite2 executando os seguintes comandos: mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr .. && make Se você deseja construir a documentação, emita: make docs Para testar os resultados, emita: make test. Um teste chamado nametabletest é conhecido por falhar. Agora, como o(a) usuário(a) root: make install Se você construiu a documentação, [então] instale, como o(a) usuário(a) root: install -v -d -m755 /usr/share/doc/graphite2-1.3.14 && cp -v -f doc/{GTF,manual}.html \ /usr/share/doc/graphite2-1.3.14 && cp -v -f doc/{GTF,manual}.pdf \ /usr/share/doc/graphite2-1.3.14 Explicações do Comando -D CMAKE_VERBOSE_MAKEFILE=ON: Essa chave liga o modo detalhado de construção. Conteúdo Aplicativos Instalados: gr2fonttest e, opcionalmente, comparerender Bibliotecas Instaladas: libgraphite2.so Diretórios Instalados: /usr/{include,share}/graphite2 e, opcionalmente, /usr/share/doc/graphite2-1.3.14 Descrições Curtas comparerender é uma ferramenta de teste e avaliação comparativa gr2fonttest é uma ferramenta de console de diagnóstico para fontes de grafite libgraphite2.so é um mecanismo de renderização para fontes de grafite harfBuzz-10.4.0 Introdução ao Harfbuzz O pacote HarfBuzz contém um mecanismo de modelagem de texto "OpenType". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3089]https://github.com/harfbuzz/harfbuzz/releases/download/10.4.0 /harfbuzz-10.4.0.tar.xz * Transferência (FTP): * 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) Dependências do HarfBuzz Recomendadas [3090]GLib-2.82.5 (exigido para Pango; GObject Introspection exigido para construir GNOME), [3091]Graphite2-1.3.14 (exigido para construir [3092]texlive-20240312 ou [3093]LibreOffice-25.2.1.2 com harfbuzz do sistema), [3094]ICU-76.1 e [3095]FreeType-2.13.3 (depois que harfbuzz estiver instalado, reinstale freetype) Opcionais [3096]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), [3097]git-2.48.1, [3098]GTK-Doc-1.34.0, [3099]FontTools (módulo Python 3, para a suíte de teste), [3100]ragel e [3101]wasm-micro-runtime Atenção As dependências recomendadas não são estritamente necessárias para construir o pacote. No entanto, você pode não obter os resultados esperados no tempo de execução se não os instalar. Por favor, não informe defeitos com esse pacote se você não tiver instalado as dependências recomendadas. Instalação do HarfBuzz Instale HarfBuzz executando os seguintes comandos: mkdir build && cd build && meson setup .. \ --prefix=/usr \ --buildtype=release \ -D graphite2=enabled && ninja Para testar os resultados, emita: ninja test. Agora, como o(a) usuário(a) root: ninja install Explicações do Comando --buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados. -D graphite2=enabled: Essa chave habilita o suporte Graphite2, que é exigido para construir [3102]texlive-20240312 ou o [3103]LibreOffice-25.2.1.2 com harfbuzz do sistema. -D docs=disabled: Se [3104]GTK-Doc-1.34.0 estiver instalado, a documentação será construída e instalada. Essa chave impede isso. Conteúdo Aplicativos Instalados: hb-info, hb-ot-shape-closure, hb-shape, hb-subset e hb-view (somente se "Cairo" estiver instalado) Bibliotecas Instaladas: libharfbuzz.so, libharfbuzz-cairo.so (somente se "Cairo" estiver instalado), libharfbuzz-gobject.so, libharfbuzz-icu.so e libharfbuzz-subset.so Diretórios Instalados: /usr/include/harbuzz, /usr/lib/cmake/harfbuzz e /usr/share/gtk-doc/html/harfbuzz (opcional) Descrições Curtas hb-info é usado para coletar informações a respeito das fontes instaladas no sistema hb-ot-shape-closure fornece o conjunto de caracteres contidos em uma sequência de caracteres, representados como caracteres únicos e(ou) nomes únicos de caracteres. Exemplo: hb-ot-shape-closure /usr/share/fonts/dejavu/DejaVuSans.ttf "Hello World." hb-shape é usado para a conversão de sequências de caracteres de texto em glifos posicionados hb-subset é usado para criar subconjuntos de fontes e exibir texto usando-os hb-view exibe uma visualização gráfica de uma forma de sequência de caracteres usando uma fonte específica como um conjunto de glifos. O formato da saída gerada é definido automaticamente pela extensão do arquivo, sendo as suportadas ansi/png/svg/pdf/ps/eps. Por exemplo: hb-view --output-file=hello.png /usr/share/fonts/dejavu/DejaVuSans.ttf "Hello World." libharfbuzz.so é a biblioteca de modelagem de texto "HarfBuzz" libharfbuzz-cairo.so fornece integração "Cairo" para a biblioteca de modelagem de texto "Harfbuzz" libharfbuzz-gobject.so fornece integração "GObject" para a biblioteca de modelagem de texto "HarfBuzz" libharfbuzz-icu.so fornece integração "ICU" para a biblioteca de modelagem de texto "HarfBuzz" libharfbuzz-subset.so fornece funções de API para realizar operações de subconjunto em arquivos de fonte jasper-4.2.4 Introdução ao jasper O Projeto jasper é uma iniciativa de fonte aberto para fornecer uma implementação de referência baseada em software livre do codec JPEG-2000. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3105]https://github.com/jasper-software/jasper/archive/version-4.2 .4/jasper-version-4.2.4.tar.gz * Transferência (FTP): * 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) Dependências do jasper Exigidas [3106]CMake-3.31.5 Recomendadas [3107]libjpeg-turbo-3.0.1 Opcionais [3108]Freeglut-3.6.0 (necessário para jiv), [3109]Doxygen-1.13.2 (necessário para gerar documentação html) e [3110]texlive-20240312 ( necessário para regerar a documentação em pdf) Instalação do jasper Instale jasper executando os seguintes comandos: mkdir BUILD && cd BUILD && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ -D CMAKE_SKIP_INSTALL_RPATH=ON \ -D JAS_ENABLE_DOC=NO \ -D ALLOW_IN_SOURCE_BUILD=YES \ -D CMAKE_INSTALL_DOCDIR=/usr/share/doc/jasper-4.2.4 \ .. && make Para testar os resultados, emita: make test. Agora, como o(a) usuário(a) root: make install Explicações do Comando -D CMAKE_SKIP_INSTALL_RPATH=ON: Essa chave faz com que cmake remova caminhos de pesquisa de biblioteca rigidamente codificados (rpath) ao instalar um arquivo binário executável ou uma biblioteca compartilhada. Esse pacote não precisa do rpath depois de instalado no local padrão, e o rpath ocasionalmente pode causar efeitos indesejados ou até mesmo problemas de segurança. -D JAS_ENABLE_DOC=NO: Essa opção desabilita a reconstrução da documentação em PDF se [3111]texlive-20240312 estiver instalado. -D ALLOW_IN_SOURCE_BUILD=YES: Essa chave permite construir a partir da árvore do fonte. No nosso caso, isso é necessário para nos permitir construir dentro do diretório BUILD em vez de precisar criar outro diretório fora da árvore do fonte. Conteúdo Aplicativos Instalados: imgcmp, imginfo, jasper e jiv Biblioteca Instalada: libjasper.so Diretórios Instalados: /usr/include/jasper e /usr/share/doc/jasper-4.2.4 Descrições Curtas imgcmp compara duas imagens da mesma geometria imginfo exibe informações a respeito de uma imagem jasper converte imagens entre formatos (BMP, JPS, JPC, JPG, PGX, PNM, MIF e RAS) jiv exibe imagens libjasper.so é uma biblioteca usada por aplicativos para ler e gravar arquivos no formato "JPEG2000" Little CMS-2.17 Introdução ao Little CMS2 O "Little Color Management System" é um mecanismo de gerenciamento de cores compacto, com foco especial em precisão e desempenho. Ele usa o padrão "International Color Consortium" (ICC), que é o padrão moderno para gerenciamento de cores. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3112]https://github.com/mm2/Little-CMS/releases/download/lcms2.17/ lcms2-2.17.tar.gz * Transferência (FTP): * 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) Dependências do Little CMS2 Opcionais [3113]libjpeg-turbo-3.0.1 e [3114]libtiff-4.7.0 Instalação do Little CMS2 Instale Little CMS2 executando os seguintes comandos: ./configure --prefix=/usr --disable-static && make Para testar os resultados, emita: make check. Agora, como o(a) usuário(a) root: make install Explicações do Comando --disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas. Conteúdo Aplicativos Instalados: jpgicc, linkicc, psicc, tificc e transicc Biblioteca Instalada: liblcms2.so Diretórios Instalados: Nenhum(a) Descrições Curtas jpgicc é o aplicador de perfil "ICC" do "Little CMS" para "JPEG" linkicc é o gerador de ligação de dispositivo "ICC" do "Little CMS" psicc é o gerador de "ICC PostScript" do "Little CMS" tificc é o gerador de "ICC tiff" do "Little CMS" transicc é a calculadora de conversão "ColorSpace" do "Little CMS" liblcms2.so contém funções que implementam a API do "lcms2" libavif-1.2.0 Introdução ao libavif O pacote libavif contém uma biblioteca usada para codificar e decodificar arquivos AVIF. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3115]https://github.com/AOMediaCodec/libavif/archive/v1.2.0/libavi f-1.2.0.tar.gz * Transferência (FTP): * 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 Dependências do libavif Exigidas [3116]libaom-3.12.0 Recomendadas [3117]gdk-pixbuf-2.42.12 Opcionais [3118]gtest, [3119]libdav1d, [3120]libyuv, [3121]rav1e e [3122]svt-av1 Nota Uma conexão com a Internet é necessária para alguns testes desse pacote. A loja de certificados do sistema possivelmente precise ser configurada com [3123]make-ca-1.15 antes de se testar esse pacote Instalação do libavif Instale o libavif executando os seguintes comandos: mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ -D AVIF_CODEC_AOM=SYSTEM \ -D AVIF_BUILD_GDK_PIXBUF=ON \ -D AVIF_LIBYUV=OFF \ -G Ninja .. && ninja Para testar o pacote (observe que isso fará com que o sistema de construção baixe uma cópia do [3124]gtest e construa a suíte de teste com a cópia), emita: cmake .. -D AVIF_GTEST=LOCAL -D AVIF_BUILD_TESTS=ON && ninja && ninja test Agora, como o(a) usuário(a) root: ninja install O formato AV1 precisa ser adicionado ao cache dos carregadores. Como o(a) usuário(a) root: gdk-pixbuf-query-loaders --update-cache Explicações do Comando -D AVIF_CODEC_AOM=ON: Essa chave habilita usar o codificador AOM. Esse pacote é inútil sem pelo menos um codificador integrado. -D AVIF_BUILD_GDK_PIXBUF=ON: Essa chave constrói o carregador AVIF para aplicativos que usam gdk-pixbuf. Remova-a se você não tiver instalado o [3125]gdk-pixbuf-2.42.12. -D AVIF_LIBYUV=OFF: Use essa chave se você não tiver instalado [3126]libyuv. -D AVIF_CODEC_DAV1D=SYSTEM: Use essa chave se você tiver instalado [3127]libdav1d e desejar usá-lo como um codificador. -D AVIF_CODEC_RAV1E=SYSTEM: Use essa chave se você tiver instalado [3128]rav1e e desejar usá-lo como um codificador. -D AVIF_CODEC_SVT=SYSTEM: Use essa chave se você tiver instalado [3129]svt-av1 e desejar usá-lo como um codificador. Conteúdo Aplicativos Instalados: Nenhum(a) Bibliotecas Instaladas: libavif.so e libpixbbufloader-avif.so (em /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders) Diretórios Instalados: /usr/include/avif e /usr/lib/cmake/libavif Descrições Curtas libavif.so contém funções que fornecem uma implementação C portável do formato de imagem AV1 libpixbufloader-avif.so permite que aplicativos que usam gdk-pixbuf leiam imagens AVIF libexif-0.6.25 Introdução ao "libexif" O pacote libexif contém uma biblioteca para analisar, editar e salvar dados "EXIF". A maioria das câmeras digitais produz arquivos "EXIF", que são arquivos "JPEG" com etiquetas extras que contém informações a respeito da imagem. Todas as etiquetas "EXIF" descritas no padrão "EXIF 2.1" são suportadas. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3130]https://github.com/libexif/libexif/releases/download/v0.6.25/ libexif-0.6.25.tar.bz2 * Transferência (FTP): * 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 Dependências do "libexif" Opcionais (para construir a documentação) [3131]Doxygen-1.13.2 e [3132]Graphviz-12.2.1 Instalação do "libexif" Instale libexif executando os seguintes comandos: ./configure --prefix=/usr \ --disable-static \ --with-doc-dir=/usr/share/doc/libexif-0.6.25 && make Para testar os resultados, emita: make check. Agora, como o(a) usuário(a) root: make install A documentação foi construída e instalada se você tiver as dependências mostradas acima instaladas. Se você não tiver as dependências instaladas, [então] existe um "tarball" comprimido no diretório doc da árvore do fonte que pode ser desempacotado em /usr/share/doc/libexif-0.6.25. Explicações do Comando --disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas. Conteúdo Aplicativos Instalados: Nenhum(a) Biblioteca Instalada: libexif.so Diretórios Instalados: /usr/include/libexif e /usr/share/doc/libexif-0.6.25 Descrições Curtas libexif.so contém funções usadas para analisar, editar e salvar dados "EXIF" libgxps-0.3.2 Introdução ao libgxps O pacote libgxps fornece uma interface para manipular documentos "XPS". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3133]https://download.gnome.org/sources/libgxps/0.3/libgxps-0.3.2. tar.xz * Transferência (FTP): * 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 Dependências do Libgxps Exigidas [3134]GTK-3.24.48, [3135]Little CMS-2.17, [3136]libarchive-3.7.7, [3137]libjpeg-turbo-3.0.1, [3138]libtiff-4.7.0 e [3139]libxslt-1.1.42 Opcionais [3140]git-2.48.1 e [3141]GTK-Doc-1.34.0 Instalação do Libgxps Instale Libgxps executando os seguintes comandos: mkdir build && cd build && meson setup --prefix=/usr --buildtype=release .. && ninja Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) root: ninja install Explicações do Comando --buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados. Conteúdo Aplicativos Instalados: xpstojpeg, xpstopdf, xpstopng, xpstops e xpstosvg Biblioteca Instalada: libgxps.so Diretórios Instalados: /usr/include/libgxps Descrições Curtas xpstojpeg converte documentos "XPS" em uma imagem "JPEG" xpstopdf converte documentos "XPS" para o formato "PDF" xpstopng converte documentos "XPS" em uma imagem "PNG" xpstops converte documentos "XPS" em "PostScript" xpstosvg converte documentos "XPS" em imagens "SVG" libgxps.so contém funções de API para manipular documentos "XPS" libjpeg-turbo-3.0.1 Introdução ao libjpeg-turbo libjpeg-turbo é uma bifurcação do libjpeg "IJG" original que usa "SIMD" para acelerar a compressão e descompressão "JPEG" da linha de base. libjpeg é uma biblioteca que implementa codificação, decodificação e transcodificação de imagens "JPEG". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3142]https://downloads.sourceforge.net/libjpeg-turbo/libjpeg-turbo -3.0.1.tar.gz * Transferência (FTP): * 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) Dependências do libjpeg-turbo Exigidas [3143]CMake-3.31.5 Recomendadas [3144]NASM-2.16.03 ou [3145]yasm-1.3.0 (para construir o pacote com rotina otimizada "assembly") Instalação do libjpeg-turbo Instale libjpeg-turbo executando os seguintes comandos: mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=RELEASE \ -D ENABLE_STATIC=FALSE \ -D CMAKE_INSTALL_DEFAULT_LIBDIR=lib \ -D CMAKE_SKIP_INSTALL_RPATH=ON \ -D CMAKE_INSTALL_DOCDIR=/usr/share/doc/libjpeg-turbo-3.0.1 \ .. && make Para testar os resultados, emita: make test. Agora, como o(a) usuário(a) root: make install Explicações do Comando -D CMAKE_SKIP_INSTALL_RPATH=ON: Essa chave faz com que cmake remova caminhos de pesquisa de biblioteca rigidamente codificados (rpath) ao instalar um arquivo binário executável ou uma biblioteca compartilhada. Esse pacote não precisa do rpath depois de instalado no local padrão, e o rpath ocasionalmente pode causar efeitos indesejados ou até mesmo problemas de segurança. -D WITH_JPEG8=ON: Essa chave habilita a compatibilidade com libjpeg versão 8. Conteúdo Aplicativos Instalados: cjpeg, djpeg, jpegtran, rdjpgcom, tjbench e wrjpgcom Bibliotecas Instaladas: libjpeg.so e libturbojpeg.so Diretórios Instalados: /usr/share/doc/libjpeg-turbo-3.0.1 Descrições Curtas cjpeg comprime arquivos de imagem para produzir um arquivo "JPEG/JFIF" na saída gerada padrão. Os formatos de arquivo de entrada atualmente suportados são: "PPM" (formato de cor "PBMPLUS"), "PGM" (formato de escala de cinza "PBMPLUS"), "BMP" e "Targa" djpeg descomprime arquivos de imagem do formato "JPEG/JFIF" para ou "PPM" (formato de cores "PBMPLUS"), "PGM" (formato de escala de cinza "PBMPLUS"), "BMP" ou formato "Targa" jpegtran é usado para transformação sem perdas de arquivos "JPEG" rdjpgcom exibe comentários de texto a partir de um arquivo "JPEG" tjbench é usado para avaliar comparativamente o desempenho da "libjpeg-turbo" wrjpgcom insere comentários de texto em um arquivo "JPEG" libjpeg.so contém funções usadas para ler e gravar imagens "JPEG" libjxl-0.11.1 Introdução ao libjxl O pacote libjxl contém a implementação de referência do formato de imagem JPEG XL. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3146]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) Dependências de libjxl Exigidas [3147]Brotli-1.1.0, [3148]CMake-3.31.5, [3149]giflib-5.2.2, [3150]highway-1.2.0, [3151]Little CMS-2.17, [3152]libjpeg-turbo-3.0.1 e [3153]libpng-1.6.46 Recomendadas [3154]gdk-pixbuf-2.42.12 (para o plugin) Opcionais [3155]asciidoc-10.2.1 (para páginas de manual), [3156]Doxygen-1.13.2 e [3157]Graphviz-12.2.1 (para documentação), [3158]Java-23.0.2 (para o JAR), [3159]libavif-1.2.0, [3160]libwebp-1.5.0, [3161]gtest, [3162]OpenEXR, [3163]sjpeg e [3164]skcms Instalação do libjxl Instale libjxl executando os seguintes comandos: mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ -D BUILD_TESTING=OFF \ -D BUILD_SHARED_LIBS=ON \ -D JPEGXL_ENABLE_SKCMS=OFF \ -D JPEGXL_ENABLE_SJPEG=OFF \ -D JPEGXL_ENABLE_PLUGINS=ON \ -D JPEGXL_INSTALL_JARDIR=/usr/share/java \ -G Ninja .. && ninja Esse pacote vem com uma suíte de teste, porém ela exige [3165]gtest, que não está no BLFS. Agora, como o(a) usuário(a) root: ninja install && gdk-pixbuf-query-loaders --update-cache Explicações do Comando gdk-pixbuf-query-loaders --update-cache: Esse comando regenera o cache do carregador do GDK Pixbuf, de forma que ele esteja ciente do carregador JPEG-XL. -D BUILD_TESTING=OFF: Esse parâmetro desabilita os testes porque eles exigem [3166]gtest, que não está no BLFS. Se você deseja executar os testes e ter o [3167]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 [3168]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 [3169]sjpeg. -D JPEGXL_ENABLE_PLUGINS=ON: Esse parâmetro habilita o suporte de Plugin, que cria plug-ins para [3170]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 [3171]Java-23.0.2 estiver instalado. Conteúdo Aplicativos Instalados: benchmark_xl, cjxl, djxl e jxlinfo Bibliotecas Instaladas: libjxl.so, libjxl_cms.so, libjxl_extras_codec.so, libjxl_jni.so, libjxl_threads.so e libpixbufloader-jxl.so (em /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders) Diretórios Instalados: /usr/include/jxl Descrições Curtas benchmark_xl executa avaliações de desempenho em relação à libjxl cjxl comprime imagens no formato JPEG XL djxl descomprime imagens do formato JPEG XL para outros formatos jxlinfo exibe informações acerca de imagens JPEG XL libjxl.so contém a implementação de referência do padrão JPEG XL libjxl_cms.so contém suporte para Little CMS na libjxl libjxl_extras_codec.so contém suporte adicional de codificador/decodificador para imagens JPEG XL libjxl_jni.so contém uma interface Java para suportar JPEG XL em sistemas onde [3172]Java-23.0.2 foi instalado ao tempo da construção libjxl_threads.so contém funções de camada para JPEG XL libpixbufloader-jxl.so contém um carregador para gdk-pixbuf para permiti-lo carregar imagens JPEG XL libmng-2.0.3 Introdução ao libmng As bibliotecas libmng são usadas por aplicativos querendo ler e gravar arquivos "Multiple-image Network Graphics" ("MNG"), que são os equivalentes de animação aos arquivos "PNG". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3173]https://downloads.sourceforge.net/libmng/libmng-2.0.3.tar.xz * Transferência (FTP): * 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 Dependências do libmng Exigidas [3174]libjpeg-turbo-3.0.1 e [3175]Little CMS-2.17 Instalação do libmng Instale libmng executando os seguintes comandos: ./configure --prefix=/usr --disable-static && make Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) root: make install && install -v -m755 -d /usr/share/doc/libmng-2.0.3 && install -v -m644 doc/*.txt /usr/share/doc/libmng-2.0.3 Explicações do Comando --disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas. Conteúdo Aplicativos Instalados: Nenhum(a) Biblioteca Instalada: libmng.so Diretório Instalado: /usr/share/doc/libmng-2.0.3 Descrições Curtas libmng.so fornece funções para aplicativos desejando ler e gravar arquivos "MNG" que são arquivos de animação sem os problemas de patente associados com certos outros formatos libmypaint-1.6.1 Introdução ao libmypaint O pacote libmypaint, também conhecido como "brushlib", é uma biblioteca para fazer pinceladas que é usada pelo "MyPaint" e outros projetos. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3176]https://github.com/mypaint/libmypaint/releases/download/v1.6. 1/libmypaint-1.6.1.tar.xz * Transferência (FTP): * 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) Dependências do libmypaint Exigidas [3177]JSON-C-0.18 Recomendadas [3178]GLib-2.82.5 (com GObject Introspection) Opcionais [3179]Doxygen-1.13.2 (para criar documentos "XML"), [3180]gegl (somente versões 0.3) e [3181]gperftools Instalação do libmypaint Instale libmypaint executando os seguintes comandos: ./configure --prefix=/usr && make Para testar os resultados, emita: make check. Agora, como o(a) usuário(a) root: make install Conteúdo Aplicativos Instalados: Nenhum. Bibliotecas Instaladas: libmypaint.so (e, opcionalmente, "libmypaint-gegl.so", que não é usada por nenhum pacote neste livro). Diretório Instalado: /usr/include/libmypaint Descrições Curtas libmypaint.so contém funções para fazer pinceladas libpng-1.6.46 Introdução ao libpng O pacote libpng contém bibliotecas usadas por outros aplicativos para ler e gravar arquivos "PNG". O formato "PNG" foi projetado como um substituto para o "GIF" e, em menor grau, o "TIFF", com muitas melhorias e extensões e ausência de problemas de patente. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3182]https://downloads.sourceforge.net/libpng/libpng-1.6.46.tar.xz * Transferência (FTP): * Soma de verificação MD5 da transferência: 2ba00adb5d5c76d512486559a3e77be7 * Tamanho da transferência: 1,0 MB * Espaço em disco estimado exigido: 14 UPC (com testes) * Tempo de construção estimado: 0,1 UPC (adicionar 0,3 UPC para testes) Transferências Adicionais * Remendo recomendado para incluir a funcionalidade de "png" animado em libpng (exigido para usar a libpng do sistema no Firefox, Seamonkey e Thunderbird): [3183]https://downloads.sourceforge.net/sourceforge/libpng-apng/lib png-1.6.46-apng.patch.gz * Soma de verificação MD5 do remendo: 30b2da9a1e27235499806e415bc56840 Instalação do libpng Se você deseja remendar a "libpng" para suportar arquivos "apng", [então] aplique-o aqui: gzip -cd ../libpng-1.6.46-apng.patch.gz | patch -p1 Instale libpng executando os seguintes comandos: ./configure --prefix=/usr --disable-static && make Para testar os resultados, emita: make check. Agora, como o(a) usuário(a) root: make install && mkdir -v /usr/share/doc/libpng-1.6.46 && cp -v README libpng-manual.txt /usr/share/doc/libpng-1.6.46 Explicações do Comando --disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas. Conteúdo Aplicativos Instalados: libpng-config (link simbólico), libpng16-config, pngfix e png-fix-itxt Bibliotecas Instaladas: libpng.so Diretórios Instalados: /usr/include/libpng16 e /usr/share/doc/libpng-1.6.46 Descrições Curtas pngfix testa, otimiza e, opcionalmente, corrige o cabeçalho "zlib" em arquivos "PNG". Opcionalmente, ao corrigir, retira pedaços auxiliares do arquivo png-fix-itxt corrige arquivos "PNG" que tem um campo incorreto de comprimento nos blocos "iTXt" libpng-config é um script de shell que fornece informações de configuração para aplicativos querendo usar a libpng libpng.so contém rotinas usadas para criar e manipular arquivos gráficos no formato "PNG" libraw-0.21.3 Introdução ao libraw Libraw é uma biblioteca para leitura de arquivos BRUTOS obtidos a partir de câmeras digitais (CRW/CR2, NEF, RAF, DNG e outros). Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3184]https://www.libraw.org/data/LibRaw-0.21.3.tar.gz * Transferência (FTP): * Soma de verificação MD5 da transferência: b9d2b96a8e30ed76ff5b0da19f3fbe81 * Tamanho da transferência: 1,4 MB * Espaço em disco estimado exigido: 27 MB * Tempo de construção estimado: 0,1 UPC (Usando paralelismo=4) Dependências do libraw Recomendadas [3185]libjpeg-turbo-3.0.1, [3186]jasper-4.2.4 e [3187]Little CMS-2.17 Instalação do libraw Instale libraw executando os seguintes comandos: ./configure --prefix=/usr \ --enable-jpeg \ --enable-jasper \ --enable-lcms \ --disable-static \ --docdir=/usr/share/doc/libraw-0.21.3 && make Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) root: make install Explicações do Comando --enable-jpeg: Essa chave habilita o suporte para imagens JPEG. Remova-a se você não tiver [3188]libjpeg-turbo-3.0.1 instalado. --enable-jasper: Essa chave habilita o suporte para imagens JPEG2000. Remova-a se você não tiver [3189]jasper-4.2.4 instalado. --enable-lcms: Essa chave habilita o suporte para gerenciamento de cores. Remova-a se você não tiver [3190]Little CMS-2.17 instalado. --disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas. Conteúdo Nota Todos os programas instalados são exemplos de uso da libraw. Aplicativos Instalados: 4channels, dcraw_emu, dcraw_half, half_mt, mem_image, multirender_test, postprocessing_benchmark, raw-identify, simple_dcraw e unprocessed_raw Biblioteca Instalada: libraw.so e libraw_r.so Diretórios Instalados: /usr/include/libraw e /usr/share/doc/libraw-0.21.3 Descrições Curtas 4channels gera quatro arquivos TIFF a partir de dados BRUTOS, com um arquivo por canal dcraw_half emula executar "dcraw -h" (veja-se a [3191]página de manual do DCRAW) mem_image emula executar "dcraw [-4] [-6] [-e]" (veja-se a [3192]página de manual do DCRAW) postprocessing_benchmark cria oito renderizações a partir de um arquivo de origem. O primeiro e o quarto deveriam ser idênticos simple_dcraw emula executar "dcraw [-D] [-T] [-v] [-e] [-4]" (veja-se a [3193]página de manual do DCRAW) dcraw_emu é um emulador "dcraw" quase completo (veja-se a [3194]página de manual do DCRAW) half_mt emula executar "dcraw -h [-w] [-a] [-v]" (veja-se a [3195]página de manual do DCRAW) multirender_test cria oito renderizações a partir de um arquivo de origem. O primeiro e o quarto deveriam ser idênticos raw-identify emula executar "dcraw -i [-v]" (veja-se a [3196]página de manual do DCRAW) unprocessed_raw gera uma imagem bruta não processada (com pixeis mascarados e sem subtração de preto) libraw.so contém funções usadas para analisar, editar e salvar dados BRUTOS de imagem. librsvg-2.59.2 Introdução ao librsvg O pacote librsvg contém uma biblioteca e ferramentas usadas para manipular, converter e visualizar imagens "Scalable Vector Graphic" ("SVG"). Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3197]https://download.gnome.org/sources/librsvg/2.59/librsvg-2.59. 2.tar.xz * Transferência (FTP): * Soma de verificação MD5 da transferência: 6d495c8bb2ee0cb0a62856c790a67298 * Tamanho da transferência: 6,3 MB * Espaço em disco estimado exigido: 1,2 GB (17 MB instalado), adicionar 492 MB para testes * Tempo de construção estimado: 0,6 UPC (adicionar 0,4 UPC para testes; ambos usando paralelismo=4) Dependências do librsvg Exigidas [3198]Cairo-1.18.2, [3199]cargo-c-0.10.11, [3200]gdk-pixbuf-2.42.12, [3201]Pango-1.56.1 e [3202]rustc-1.85.0 Nota Uma conexão com a Internet é necessária para construir esse pacote. A loja de certificados do sistema possivelmente precise ser configurada com [3203]make-ca-1.15 antes de se construir esse pacote Recomendadas [3204]GLib-2.82.5 (com GObject Introspection) e [3205]Vala-0.56.17 Opcionais [3206]docutils-0.21.2 (para páginas de manual), [3207]Gi-DocGen-2025.3 (para documentação) e [3208]Fontes do Xorg (para testes) Instalação do librsvg Primeiro, corrija o caminho de instalação da documentação da API: sed -e "/OUTDIR/s|,| / 'librsvg-2.59.2', '--no-namespace-dir',|" \ -e '/output/s|Rsvg-2.0|librsvg-2.59.2|' \ -i doc/meson.build Instale librsvg executando os seguintes comandos: mkdir build && cd build && meson setup --prefix=/usr --buildtype=release .. && ninja Para testar os resultados, emita: ninja test Um teste, Rust tests (rsvg), é conhecido por falhar. Agora, como o(a) usuário(a) root: ninja install Conteúdo Aplicativos Instalados: rsvg-convert Biblioteca Instalada: librsvg-2.so e libpixbufloader-svg.so (instalada em /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders) Diretórios Instalados: /usr/include/librsvg-2.0 e /usr/share/doc/librsvg-2.59.2 Descrições Curtas rsvg-convert é usado para converter imagens em "PNG", "PDF", "PS", "SVG" e outros formatos librsvg-2.so fornece as funções para renderizar Gráficos Escaláveis Vetoriais libpixbufloader-svg.so é o plug-in Gdk Pixbuf que permite que aplicativos GTK+ renderizem imagens de Gráficos Escaláveis Vetoriais Libspiro-20220722 Introdução ao libspiro Libspiro pegará uma matriz de pontos de controle "spiro" e os converterá em uma série de "splines bezier" que podem então ser usados em uma miríade de maneiras que o mundo passou a usar "beziers". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3209]https://github.com/fontforge/libspiro/releases/download/20220 722/libspiro-dist-20220722.tar.gz * Transferência (FTP): * 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 Instalação do libspiro Instale libspiro executando os seguintes comandos: ./configure --prefix=/usr --disable-static && make Para testar os resultados, emita: make check. Agora, como o(a) usuário(a) root: make install Explicações do Comando --disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas. Conteúdo Aplicativos Instalados: Nenhum(a) Biblioteca Instalada: libspiro.so Diretórios Instalados: Nenhum(a) Descrições Curtas libspiro.so é uma biblioteca compartilhável que pode ser usada por aplicativos para fazer os cálculos do "Spiro" para você libtiff-4.7.0 Introdução ao libtiff O pacote libtiff contém as bibliotecas "TIFF" e utilitários associados. As bibliotecas são usadas por muitos aplicativos para ler e gravar arquivos "TIFF" e os utilitários são usados para trabalhos gerais com arquivos "TIFF". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3210]https://download.osgeo.org/libtiff/tiff-4.7.0.tar.gz * Transferência (FTP): * Soma de verificação MD5 da transferência: 3a0fa4a270a4a192b08913f88d0cfbdd * Tamanho da transferência: 3,7 MB * Espaço em disco estimado exigido: 60 MB (com testes) * Tempo de construção estimado: 0,2 UPC (com testes) Dependências do libtiff Recomendadas [3211]CMake-3.31.5 Opcionais [3212]Freeglut-3.6.0 (exigido para tiffgt), [3213]libjpeg-turbo-3.0.1, [3214]sphinx-8.2.1, [3215]libwebp-1.5.0, [3216]JBIG-KIT e [3217]LERC Instalação do libtiff Instale libtiff executando os seguintes comandos: mkdir -p libtiff-build && cd libtiff-build && cmake -D CMAKE_INSTALL_DOCDIR=/usr/share/doc/libtiff-4.7.0 \ -D CMAKE_INSTALL_PREFIX=/usr -G Ninja .. && ninja Para testar os resultados, emita: ninja test. Agora, como o(a) usuário(a) root: ninja install Conteúdo Aplicativos Instalados: fax2ps, fax2tiff, pal2rgb, ppm2tiff, raw2tiff, tiff2bw, tiff2pdf, tiff2ps, tiff2rgba, tiffcmp, tiffcp, tiffcrop, tiffdither, tiffdump, tiffgt, tiffinfo, tiffmedian, tiffset e tiffsplit Bibliotecas Instaladas: libtiff.so e libtiffxx.so Diretório Instalado: /usr/lib/cmake/tiff e /usr/share/doc/tiff-4.7.0 Descrições Curtas fax2ps converte um fac-símile "TIFF" em arquivo comprimido "PostScript" fax2tiff cria um arquivo de fax "TIFF" Classe F a partir de dados brutos de fax pal2rgb converte uma imagem "TIFF" colorida da paleta em uma imagem completa colorida ppm2tiff cria um arquivo "TIFF" a partir de um arquivo de imagem "PPM" raw2tiff converte uma sequência bruta de bytes em "TIFF" tiff2bw converte uma imagem colorida "TIFF" em tons de cinza tiff2pdf converte uma imagem "TIFF" em um documento "PDF" tiff2ps converte uma imagem "TIFF" em um arquivo "PostScript" tiff2rgba converte uma ampla variedade de imagens "TIFF" em uma imagem "RGBA TIFF" tiffcmp compara dois arquivos "TIFF" tiffcp copia (e possivelmente converte) um arquivo "TIFF" tiffcrop seleciona, copia, recorta, converte, extrai e(ou) processa um ou mais arquivos "TIFF" tiffdither converte uma imagem em tons de cinza em dois níveis usando pontilhamento tiffdump imprime informações literais a respeito de arquivos "TIFF" tiffgt exibe uma imagem armazenada em um arquivo "TIFF" tiffinfo imprime informações relativas a arquivos "TIFF" tiffmedian aplica o algoritmo de corte mediano aos dados em um arquivo "TIFF" tiffset configura o valor de um cabeçalho "TIFF" para um valor especificado tiffsplit divide um "TIFF" de várias imagens em arquivos "TIFF" de imagem única libtiff.so contém as funções de API usadas pelos aplicativos libtiff assim como outros aplicativos para ler e gravar arquivos "TIFF" libtiffxx.so contém as funções da API C++ usadas pelos aplicativos para ler e gravar arquivos "TIFF" libwebp-1.5.0 Introdução ao libwebp O pacote libwebp contém uma biblioteca e aplicativos de suporte para codificar e decodificar imagens no formato "WebP". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3218]https://storage.googleapis.com/downloads.webmproject.org/rele ases/webp/libwebp-1.5.0.tar.gz * Transferência (FTP): * 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) Dependências do libwebp Recomendadas [3219]libjpeg-turbo-3.0.1, [3220]libpng-1.6.46, [3221]libtiff-4.7.0 e [3222]SDL2-2.30.11 (para aceleração 3D melhorada) Opcionais [3223]Freeglut-3.6.0 e [3224]giflib-5.2.2 Instalação do libwebp Instale libwebp executando os seguintes comandos: ./configure --prefix=/usr \ --enable-libwebpmux \ --enable-libwebpdemux \ --enable-libwebpdecoder \ --enable-libwebpextras \ --enable-swap-16bit-csp \ --disable-static && make Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) root: make install Explicações do Comando --enable-swap-16bit-csp: Essa chave habilita a troca de bytes para espaços de cores de 16 bits. --disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas. Conteúdo Aplicativos Instalados: cwebp, dwebp, gif2webp, img2webp, vwebp, webpinfo e webpmux Biblioteca Instalada: libsharpyuv.so, libwebpdecoder.so, libwebpdemux.so, libwebpmux.so e libwebp.so Diretório Instalado: /usr/include/webp Descrições Curtas cwebp comprime uma imagem usando o formato "WebP" dwebp descomprime arquivos "WebP" em imagens "PNG", "PAM", "PPM" ou "PGM" gif2webp converte uma imagem "GIF" em uma imagem "WebP" img2webp cria um arquivo animado "WebP" a partir de uma sequência de imagens de entrada vwebp descomprime um arquivo "WebP" e o exibe em uma janela webpinfo imprime a estrutura de nível "cunk" dos arquivos "WebP" junto com a realização de verificações básicas de integridade webpmux cria arquivos animados "WebP" a partir de imagens não animadas "WebP", extrai quadros a partir de imagens animadas "WebP" e gerencia metadados "XMP"/"EXIF" e o perfil "ICC" libwebp.so contém as funções de API para codificação e decodificação "WebP" mypaint-brushes-1.3.1 Introdução ao mypaint-brushes O pacote mypaint-brushes contém pincéis usados por pacotes que usam a "libmypaint". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3225]https://github.com/mypaint/mypaint-brushes/releases/download/ v1.3.1/mypaint-brushes-1.3.1.tar.xz * Transferência (FTP): * 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 Dependências do mypaint-brushes Exigidas em tempo de execução [3226]libmypaint-1.6.1 Instalação do mypaint-brushes Instale mypaint-brushes executando os seguintes comandos: ./configure --prefix=/usr && make Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) root: make install Conteúdo Aplicativos Instalados: Nenhum(a). Bibliotecas Instaladas: Nenhum(a). Diretórios Instalados: /usr/share/mypaint-data. newt-0.52.24 Introdução ao newt Newt é uma biblioteca de programação para modo de texto colorido, interfaces de usuário(a) baseadas em pequenas engenhocas. Ela pode ser usada para adicionar janelas empilhadas, pequenas engenhocas de entrada, caixas de seleção, botões de opção, rótulos, campos de texto simples, barras de rolagem, etc., a interfaces de usuário(a) em modo texto. Newt é baseado na biblioteca "S-Lang". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3227]https://releases.pagure.org/newt/newt-0.52.24.tar.gz * Transferência (FTP): * Soma de verificação MD5 da transferência: 9a0630e2f59eaa3037aec94989c36c4a * Tamanho da transferência: 176 KB * Espaço em disco estimado exigido: 3,0 MB * Tempo de construção estimado: menos que 0,1 UPC Dependências do Newt Exigidas [3228]popt-1.19 e [3229]slang-2.3.3 Recomendadas [3230]GPM-1.20.7 (tempo de execução) Instalação do newt Instale newt executando o seguinte comando: sed -e '/install -m 644 $(LIBNEWT)/ s/^/#/' \ -e '/$(LIBNEWT):/,/rv/ s/^/#/' \ -e 's/$(LIBNEWT)/$(LIBNEWTSH)/g' \ -i Makefile.in && ./configure --prefix=/usr \ --with-gpm-support \ --with-python=python3.13 && make Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) root: make install Explicações do Comando sed -e ... -i Makefile.in: Desabilita a instalação de uma biblioteca estática. --with-gpm-support: Essa chave habilita o suporte de mouse para aplicativos "newt" por meio do "GPM". --with-python=python3.13: Ao fornecer explicitamente o nome do diretório onde residem os módulos Python, essa chave impede a construção do módulo "python2". Conteúdo Aplicativos Instalados: whiptail Biblioteca Instalada: libnewt.so, whiptcl.so e /usr/lib/python3.13/site-packages/_snack.so Diretórios Instalados: Nenhum(a) Descrições Curtas whiptail exibe caixas de diálogo a partir de scripts de shell libnewt.so é a biblioteca para modo de texto colorido, interfaces de usuário(a) baseadas em pequenas engenhocas opencv-4.11.0 Introdução ao opencv O pacote opencv contém bibliotecas gráficas voltadas principalmente para visão computacional em tempo real. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3231]https://github.com/opencv/opencv/archive/4.11.0/opencv-4.11.0 .tar.gz * Transferência (FTP): * Soma de verificação MD5 da transferência: f35fbd46350cc677af13e198805b58f7 * Tamanho da transferência: 91 MB * Espaço em disco estimado exigido: 832 MB (com opencv-contrib) * Tempo de construção estimado: 3,6 UPC (usando paralelismo = 8) Transferências Adicionais * Módulos adicionais opcionais: [3232]https://github.com/opencv/opencv_contrib/archive/4.11.0/openc v_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 Nota Um arquivo adicional que começa com "ippicv" (primitivas de desempenho integrado) será baixado automaticamente durante a parte "cmake" do procedimento de construção. Essa transferência é específica para a arquitetura do sistema. Dependências do opencv Exigidas [3233]CMake-3.31.5 e [3234]libarchive-3.7.7 Recomendadas [3235]FFmpeg-7.1, [3236]gst-plugins-base-1.24.12, [3237]GTK-3.24.48, [3238]jasper-4.2.4, [3239]libexif-0.6.25, [3240]libjpeg-turbo-3.0.1, [3241]libpng-1.6.46, [3242]libtiff-4.7.0, [3243]libwebp-1.5.0, [3244]OpenJPEG-2.5.3, [3245]v4l-utils-1.28.1 e [3246]xine-lib-1.2.13 Opcionais [3247]apache-ant-1.10.15, [3248]Doxygen-1.13.2, [3249]Java-23.0.2, [3250]NumPy-2.2.3, [3251]Protobuf-29.3, [3252]ATLAS, [3253]blas, [3254]Cuda, [3255]Eigen, [3256]OpenEXR, [3257]GDAL, [3258]lapack, [3259]libdc1394, [3260]Threading Building Blocks (TBB) e [3261]VTK - The Visualization Toolkit, Instalação do opencv Se você baixou os módulos opcionais, [então] desempacote-os agora: tar -xf ../opencv_contrib-4.11.0.tar.gz Instale opencv executando os seguintes comandos: mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ -D ENABLE_CXX11=ON \ -D BUILD_PERF_TESTS=OFF \ -D WITH_XINE=ON \ -D BUILD_TESTS=OFF \ -D ENABLE_PRECOMPILED_HEADERS=OFF \ -D CMAKE_SKIP_INSTALL_RPATH=ON \ -D BUILD_WITH_DEBUG_INFO=OFF \ -D OPENCV_GENERATE_PKGCONFIG=ON \ -W no-dev .. && make O pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) root: make install Explicações do Comando -D CMAKE_SKIP_INSTALL_RPATH=ON: Essa chave faz com que cmake remova caminhos de pesquisa de biblioteca rigidamente codificados (rpath) ao instalar um arquivo binário executável ou uma biblioteca compartilhada. Esse pacote não precisa do rpath depois de instalado no local padrão, e o rpath ocasionalmente pode causar efeitos indesejados ou até mesmo problemas de segurança. -D WITH_XINE=ON: Essa chave instrui o procedimento make a usar [3262]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 [3263]gst-plugins-bad-1.24.12) precisam desses módulos para construir componentes que usam OpenCV. Conteúdo Aplicativos Instalados: opencv_annotation, opencv_interactive-calibration, opencv_model_diagnostics, opencv_version, opencv_visualisation e setup_vars_opencv4.sh Bibliotecas Instaladas: libopencv_calib3d.so, libopencv_core.so, libopencv_dnn.so, libopencv_features2d.so, libopencv_flann.so, libopencv_gapi.so, libopencv_highgui.so, libopencv_imgcodecs.so, libopencv_imgproc.so, libopencv_ml.so, libopencv_objdetect.so, libopencv_photo.so, libopencv_stitching.so, libopencv_video.so e libopencv_videoio.so Diretórios Instalados: /usr/include/opencv4, /usr/lib/cmake/opencv4, /usr/lib/python3.13/site-packages/cv2, /usr/share/licenses/opencv4, /usr/share/opencv4 e /usr/share/java/opencv4 OpenJPEG-2.5.3 Introdução ao OpenJPEG OpenJPEG é uma implementação de fonte aberto do padrão "JPEG-2000". O OpenJPEG respeita totalmente as especificações "JPEG-2000" e consegue comprimir/descomprimir imagens de 16 bits sem perdas. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3264]https://github.com/uclouvain/openjpeg/archive/v2.5.3/openjpeg -2.5.3.tar.gz * Transferência (FTP): * Soma de verificação MD5 da transferência: 12ae257cb21738c41b5f6ca977d01081 * Tamanho da transferência: 2,1 MB * Espaço em disco estimado exigido: 17 MB (adicionar 1,7 GB para os testes) * Tempo de construção estimado: 0,2 UPC (adicionar 1,0 UPC para testes) Dependências do OpenJPEG Exigidas [3265]CMake-3.31.5 Opcionais [3266]git-2.48.1 (para testes), [3267]Little CMS-2.17, [3268]libpng-1.6.46, [3269]libtiff-4.7.0 e [3270]Doxygen-1.13.2 (para construir a documentação da API) Instalação do OpenJPEG Instale OpenJPEG executando os seguintes comandos: mkdir -v build && cd build && cmake -D CMAKE_BUILD_TYPE=Release \ -D CMAKE_INSTALL_PREFIX=/usr \ -D BUILD_STATIC_LIBS=OFF .. && make Se você desejar executar os testes, alguns arquivos adicionais serão necessários. Baixe esses arquivos e execute os testes usando os seguintes comandos, mas observe que oito (8) testes são conhecidos por falharem: git clone https://github.com/uclouvain/openjpeg-data.git --depth 1 && OPJ_DATA_ROOT=$PWD/openjpeg-data cmake -D BUILD_TESTING=ON .. && make && make test Agora, como o(a) usuário(a) root: make install && cp -rv ../doc/man -T /usr/share/man Conteúdo Aplicativos Instalados: opj_compress, opj_decompress e opj_dump Bibliotecas Instaladas: libopenjp2.so Diretórios Instalados: /usr/include/openjpeg-2.5 e /usr/lib/openjpeg-2.5 Descrições Curtas opj_compress converte vários formatos de imagem para o formato "jpeg2000" opj_decompress converte imagens "jpeg2000" para outros tipos de imagem opj_dump lê uma imagem "jpeg2000" e despeja o conteúdo para a saída gerada padrão Pixman-0.44.2 Introdução ao Pixman O pacote Pixman contém uma biblioteca que fornece recursos de manipulação de pixel de baixo nível, como composição de imagem e rasterização trapezoidal. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3271]https://www.cairographics.org/releases/pixman-0.44.2.tar.gz * Transferência (FTP): * Soma de verificação MD5 da transferência: 0825cd6bfc488d5177f2f013a06ef240 * Tamanho da transferência: 796 KB * Espaço em disco estimado exigido: 29 MB (Com testes) * Tempo de construção estimado: 0,2 UPC (Usando paralelismo=4; com testes) Dependências do Pixman Opcionais [3272]libpng-1.6.46 e [3273]GTK-3.24.48 (para testes e demonstrações) Instalação do Pixman Instale Pixman executando os seguintes comandos: mkdir build && cd build && meson setup --prefix=/usr --buildtype=release .. && ninja Para testar os resultados, emita: ninja test. Agora, como o(a) usuário(a) root: ninja install Explicações do Comando --buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados. Conteúdo Aplicativos Instalados: Nenhum(a) Biblioteca Instalada: libpixman-1.so Diretório Instalado: /usr/include/pixman-1 Descrições Curtas libpixman-1.so contém funções que fornecem recursos de baixo nível de manipulação de pixel Poppler-25.02.0 Introdução ao Poppler O pacote Poppler contém uma biblioteca de renderização de PDF e ferramentas de linha de comando usadas para manipular arquivos PDF. Isso é útil para fornecer funcionalidade de renderização de PDF como uma biblioteca compartilhada. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3274]https://poppler.freedesktop.org/poppler-25.02.0.tar.xz * Transferência (FTP): * Soma de verificação MD5 da transferência: feae5e0715ed7738fcb4220730a3ff4c * Tamanho da transferência: 1,9 MB * Espaço em disco estimado exigido: 77 MB (com biblioteca Qt6 e testes) * Tempo de construção estimado: 1,0 UPC (com paralelismo=4, testes e biblioteca Qt6) Transferências Adicionais Dados de Codificação Poppler * Transferência (HTTP): [3275]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. Dependências do Poppler Exigidas [3276]CMake-3.31.5, [3277]Fontconfig-2.16.0 e [3278]GLib-2.82.5 (com GObject Introspection) Recomendadas [3279]Boost-1.87.0, [3280]Cairo-1.18.2, [3281]GPGME-1.24.2, [3282]Little CMS-2.17, [3283]libjpeg-turbo-3.0.1, [3284]libpng-1.6.46, [3285]libtiff-4.7.0, [3286]nss-3.108, [3287]OpenJPEG-2.5.3 e [3288]Qt-6.8.2 (exigido para suporte PDF no [3289]okular-24.12.2) Opcionais [3290]cURL-8.12.1, [3291]gdk-pixbuf-2.42.12, [3292]git-2.48.1 (para baixar arquivos de teste), [3293]GTK-Doc-1.34.0 e [3294]GTK-3.24.48 Instalação do Poppler Agora, Instale Poppler executando os seguintes comandos: mkdir build && cd build && cmake -D CMAKE_BUILD_TYPE=Release \ -D CMAKE_INSTALL_PREFIX=/usr \ -D TESTDATADIR=$PWD/testfiles \ -D ENABLE_QT5=OFF \ -D ENABLE_UNSTABLE_API_ABI_HEADERS=ON \ -G Ninja .. && ninja Para a finalidade de executar a suíte de teste, alguns casos de teste são necessários e podem ser obtidos somente a partir de um repositório git. O comando para baixá-los é: git clone --depth 1 https://gitlab.freedesktop.org/poppler/test.git testfiles. Em seguida, emita: LC_ALL=en_US.UTF-8 ninja test. Agora, como o(a) usuário(a) root: ninja install Para instalar a documentação, execute os seguintes comandos como root: install -v -m755 -d /usr/share/doc/poppler-25.02.0 && cp -vr ../glib/reference/html /usr/share/doc/poppler-25.02.0 Dados Poppler Se você baixou o pacote adicional de dados de codificação, [então] instale-o emitindo os seguintes comandos: tar -xf ../../poppler-data-0.4.12.tar.gz && cd poppler-data-0.4.12 Agora, como o(a) usuário(a) root: make prefix=/usr install Explicações do Comando -D CMAKE_BUILD_TYPE=Release: Essa chave é usada para aplicar um nível mais alto de otimização à compilação. -D TESTDATADIR=$PWD/testfiles: Informa aos aplicativos de teste onde os arquivos auxiliares estão localizados. -D ENABLE_QT5=OFF: Essa chave é necessária para evitar um erro quando o Qt5 não estiver instalado. -D ENABLE_UNSTABLE_API_ABI_HEADERS=ON: Instala alguns cabeçalhos antigos do Xpdf exigidos por certos aplicativos. -D ENABLE_GTK_DOC=ON: Use esse parâmetro se o GTK-Doc estiver instalado e você desejar reconstruir e instalar a documentação da API. -D ENABLE_QT6=OFF: Use esse parâmetro se [3295]Qt-6.8.2 não estiver instalado. -D ENABLE_BOOST=OFF: Use esse parâmetro se você não tiver instalado o boost (a estrutura de retaguarda Splash para Qt6 recomenda o boost). -D ENABLE_NSS3=OFF: Use esse parâmetro se você não tiver instalado nss. -D ENABLE_GPGME=OFF: Use esse parâmetro se você não tiver instalado gpgme. -D ENABLE_LIBTIFF=OFF: Use esse parâmetro se você não tiver instalado libtiff. LC_ALL=en_US.UTF-8 ninja test: Executa a suíte de teste. A variável de ambiente "LC_ALL=en_US.UTF-8" só é necessária se a localidade padrão não incluir UTF-8. Conteúdo Aplicativos Instalados: pdfattach, pdfdetach, pdffonts, pdfimages, pdfinfo, pdfseparate, pdfsig, pdftocairo, pdftohtml, pdftoppm, pdftops, pdftotext e pdfunite Bibliotecas Instaladas: libpoppler.so, libpoppler-cpp.so, libpoppler-glib.so e (opcionalmente) libpoppler-qt6.so Diretórios Instalados: /usr/include/poppler, /usr/share/poppler e /usr/share/doc/poppler-25.02.0 Descrições Curtas pdfattach adiciona um novo arquivo incorporado a um arquivo "PDF" existente pdfdetach lista ou extrai arquivos incorporados a partir de arquivos "PDF" pdffonts lista as fontes usadas em um arquivo "PDF" junto com várias informações para cada fonte pdfimages salva imagens a partir de um arquivo "PDF" como arquivos "PPM", "PBM" ou "JPEG" pdfinfo imprime o conteúdo do dicionário 'Info' (mais algumas outras informações úteis) a partir de um arquivo "PDF" pdfseparate extrai páginas únicas a partir de um arquivo "PDF" pdfsig verifica as assinaturas digitais em um documento "PDF" pdftocairo converte um arquivo "PDF" em um dos vários formatos ("PNG", "JPEG", "PDF", "PS", "EPS", "SVG") usando o dispositivo de saída "cairo" da biblioteca "poppler" pdftohtml converte um arquivo "PDF" para "HTML" pdftoppm converte arquivos "PDF" para os formatos "PBM", "PGM" e "PPM" pdftops converte arquivos "PDF" para o formato "Postscript" pdftotext converte arquivos "PDF" em texto plano pdfunite mescla vários arquivos "PDF", na ordem da ocorrência deles na linha de comando, em um arquivo de saída "PDF" libpoppler.so contém as funções da "API" para renderizar arquivos "PDF" libpoppler-cpp.so é uma estrutura de retaguarda "C++" para renderizar arquivos "PDF" libpoppler-glib.so é uma biblioteca invólucro usada para interfacear as funções de renderização de "PDF" com GTK+ libpoppler-qt6.so é uma biblioteca invólucro usada para interfacear as funções de renderização de PDF com Qt6 Potrace-1.16 Introdução ao Potrace Potrace™ é uma ferramenta para transformar um bitmap (formato PBM, PGM, PPM ou BMP) em um dos vários formatos de arquivo vetorial. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3296]https://downloads.sourceforge.net/potrace/potrace-1.16.tar.gz * Transferência (FTP): * Soma de verificação MD5 da transferência: 5f0bd87ddd9a620b0c4e65652ef93d69 * Tamanho da transferência: 644 KB * Espaço em disco estimado exigido: 7,1 MB (incluindo os testes) * Tempo de construção estimado: menos que 0,1 UPC (incluindo testes) Dependências do Potrace Recomendadas [3297]LLVM-19.1.7 (incluindo clang) Instalação do Potrace Instale Potrace executando os seguintes comandos: ./configure --prefix=/usr \ --disable-static \ --docdir=/usr/share/doc/potrace-1.16 \ --enable-a4 \ --enable-metric \ --with-libpotrace && make Para executar a suíte de teste, emita: make check. Agora, como o(a) usuário(a) root: make install Explicações do Comando --enable-a4: Use "A4" como tamanho padrão de papel. --enable-metric: Use unidades métricas (centímetros) como padrão --disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas. --with-libpotrace: Instale a biblioteca e os cabeçalhos. Conteúdo Aplicativos Instalados: mkbitmap, potrace Bibliotecas Instaladas: libpotrace.so Diretórios Instalados: /usr/share/doc/potrace-1.16 Descrições Curtas mkbitmap transforma imagens em "bitmaps" com escala e filtragem potrace transforma "bitmaps" em gráficos vetoriais libpotrace.so é uma biblioteca para transformar "bitmaps" em gráficos vetoriais Qpdf-11.10.1 Introdução ao Qpdf O pacote Qpdf contém aplicativos de linha de comando e uma biblioteca que faz transformações estruturais, preservando conteúdo, sobre arquivos "PDF". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3298]https://github.com/qpdf/qpdf/releases/download/v11.10.1/qpdf- 11.10.1.tar.gz * Transferência (FTP): * Soma de verificação MD5 da transferência: 1ff2340ee610bd8d1e1296d3523c79c9 * Tamanho da transferência: 19 MB * Espaço em disco estimado exigido: 313 MB (com testes) * Tempo de construção estimado: 0,5 UPC (usando paralelismo=4; adicionar 0,4 UPC para testes) Dependências do Qpdf Exigidas [3299]libjpeg-turbo-3.0.1 Opcionais [3300]ghostscript-10.04.0, [3301]GnuTLS-3.8.9, [3302]libtiff-4.7.0, [3303]sphinx-8.2.1, com [3304]sphinx_rtd_theme-3.0.2, e [3305]texlive-20240312 ou [3306]install-tl-unx Instalação do Qpdf Instale Qpdf executando os seguintes comandos: mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ -D BUILD_STATIC_LIBS=OFF \ -D CMAKE_INSTALL_DOCDIR=/usr/share/doc/qpdf-11.10.1 \ .. && make Para testar os resultados, emita: ctest. Agora, como o(a) usuário(a) root: make install Conteúdo Aplicativos Instalados: fix-qdf, qpdf e zlib-flate Biblioteca Instalada: libqpdf.so Diretórios Instalados: /usr/lib/cmake/qpdf, /usr/include/qpdf e /usr/share/doc/qpdf-11.10.1 Descrições Curtas fix-qdf é usado para reparar arquivos "PDF" no formato "QDF" após a edição qpdf é usado para converter um arquivo "PDF" para outro arquivo "PDF" equivalente zlib-flate é um aplicativo de compressão bruta "zlib" libqpdf.so contém as funções da "API" Qpdf qrencode-4.1.1 Introdução ao qrencode Qrencode é uma biblioteca rápida e compacta para codificação de dados em um símbolo "QR Code", uma simbologia "2D" que pode ser escaneada por terminais portáteis, como um telefone móvel com um sensor "CCD". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3307]https://fukuchi.org/works/qrencode/qrencode-4.1.1.tar.bz2 * Transferência (FTP): * Soma de verificação MD5 da transferência: de7185bcab635a34730e1b73d4efa705 * Tamanho da transferência: 451 KB * Espaço em disco estimado exigido: 5,0 MB (com a documentação, adicionar 5 MB para os testes) * Tempo de construção estimado: menos que 0,1 UPC; adicionar 0,1 UPC para testes Dependências do Qrencode Recomendadas [3308]libpng-1.6.46 Opcionais [3309]Doxygen-1.13.2 para gerar documentação e [3310]SDL2-2.30.11 para os testes Instalação do qrencode Instale libqrencode executando os seguintes comandos: ./configure --prefix=/usr && make Se instalou [3311]Doxygen-1.13.2, [então] você consegue construir a documentação emitindo: doxygen Os testes precisam ser executados depois de instalar o pacote. Agora, como o(a) usuário(a) root: make install Se você tiver construído a documentação opcional, [então] instale-a como o(a) usuário(a) root: install -vdm 755 /usr/share/doc/qrencode-4.1.1 && mv html/* /usr/share/doc/qrencode-4.1.1 Para testar os resultados, se você tiver passado a opção --with-tests para configure, emita: make check. Explicações do Comando --with-tests: Essa opção permite construir os aplicativos de teste. Exige [3312]SDL2-2.30.11. --without-tools: Essa opção evita construir o executável qrencode, removendo a necessidade da [3313]libpng-1.6.46. Conteúdo Aplicativo Instalado: qrencode Biblioteca Instalada: libqrencode.so Diretório Instalado: /usr/share/doc/qrencode-4.1.1 (opcional) Descrições Curtas qrencode codifica os dados de entrada em um "QR Code" e os salva como uma imagem "PNG" ou "EPS" libqrencode.so contém funções para codificar dados em um símbolo de código "QR" sassc-3.6.2 Introdução ao sassc SassC é um invólucro em torno da "libsass", uma linguagem de pré-processador "CSS". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3314]https://github.com/sass/sassc/archive/3.6.2/sassc-3.6.2.tar.g z * Transferência (FTP): * 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ências Adicionais * Transferência (HTTP): [3315]https://github.com/sass/libsass/archive/3.6.6/libsass-3.6.6.t ar.gz * Transferência (FTP): * 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) Instalação do sassc Primeiro, construa a biblioteca: tar -xf ../libsass-3.6.6.tar.gz && pushd libsass-3.6.6 && autoreconf -fi && ./configure --prefix=/usr --disable-static && make Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) root: make install Construa o invólucro da linha de comando: popd && autoreconf -fi && ./configure --prefix=/usr && make Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) root: make install Conteúdo Aplicativos Instalados: sassc Bibliotecas Instaladas: libsass.so Diretórios Instalados: /usr/include/sass Descrições Curtas sassc fornece uma interface de linha de comando para a biblioteca "libsass" webp-pixbuf-loader-0.2.7 Introdução ao webp-pixbuf-loader O pacote webp-pixbuf-loader contém uma biblioteca que permite ao gdk-pixbuf carregar e processar imagens webp. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3316]https://github.com/aruiz/webp-pixbuf-loader/archive/0.2.7/web p-pixbuf-loader-0.2.7.tar.gz * Transferência (FTP): * 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) Dependências do webp-pixbuf-loader Exigidas [3317]gdk-pixbuf-2.42.12 e [3318]libwebp-1.5.0 Instalação do webp-pixbuf-loader Instale o webp-pixbuf-loader executando os seguintes comandos: mkdir build && cd build && meson setup --prefix=/usr --buildtype=release .. && ninja Para testar os resultados, emita: ninja test. Agora, como o(a) usuário(a) root: ninja install O formato webp precisa ser adicionado ao cache dos carregadores: gdk-pixbuf-query-loaders --update-cache Explicações do Comando --buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados. gdk-pixbuf-query-loaders --update-cache: Esse comando atualiza o cache do carregador gdk-pixbuf, de forma que ele saiba que o carregador webp foi instalado. Conteúdo Aplicativos Instalados: Nenhum(a) Bibliotecas Instaladas: libpixbufloader-webp.so Diretórios Instalados: Nenhum(a) Descrições Curtas libpixbufloader-webp.so contém funções que permitem ao gdk-pixbuf carregar imagens webp woff2-1.0.2 Introdução ao WOFF2 WOFF2 é uma biblioteca para converter fontes do formato "TTF" para o formato "WOFF 2.0". Ela também permite a descompressão de "WOFF 2.0" para "TTF". O formato "WOFF 2.0" usa o algoritmo de compressão "Brotli" para comprimir fontes adequadas para download nas regras "@font-face" do "CSS". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3319]https://github.com/google/woff2/archive/v1.0.2/woff2-1.0.2.ta r.gz * Transferência (FTP): * 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 Dependências do WOFF2 Exigidas [3320]Brotli-1.1.0 e [3321]CMake-3.31.5 Instalação do WOFF2 Instale WOFF2 executando os seguintes comandos: mkdir out && cd out && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ -D CMAKE_SKIP_INSTALL_RPATH=ON .. && make Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) root: make install Explicações do Comando -D CMAKE_SKIP_INSTALL_RPATH=ON: Essa chave faz com que cmake remova caminhos de pesquisa de biblioteca rigidamente codificados (rpath) ao instalar um arquivo binário executável ou uma biblioteca compartilhada. Esse pacote não precisa do rpath depois de instalado no local padrão, e o rpath ocasionalmente pode causar efeitos indesejados ou até mesmo problemas de segurança. Conteúdo Aplicativo Instalado: Nenhum(a) Bibliotecas Instaladas: libwoff2common.so, libwoff2dec.so e libwoff2enc.so Diretório Instalado: /usr/include/woff2 Descrições Curtas libwoff2common.so fornece dados compartilhados usados pelas bibliotecas "libwoff2dec" e "libwoff2enc" libwoff2dec.so é a biblioteca do decodificador "WOFF2" libwoff2enc.so é a biblioteca do codificador "WOFF2" zxing-cpp-2.3.0 Introdução ao zxing-cpp O pacote zxing-cpp fornece uma biblioteca de processamento de imagens de código de barras linear/matriz multiformato de código aberto. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3322]https://github.com/zxing-cpp/zxing-cpp/archive/v2.3.0/zxing-c pp-2.3.0.tar.gz * Transferência (FTP): * 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) Dependências do zxing-cpp Exigidas [3323]CMake-3.31.5 Opcionais [3324]googletest Instalação do zxing-cpp Instale zxing-cpp executando os seguintes comandos: mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ -D ZXING_EXAMPLES=OFF \ -W no-dev .. && make Testes exigem um pacote externo. Agora, como o(a) usuário(a) root: make install Conteúdo Aplicativos Instalados: None Bibliotecas Instaladas: libZXing.so Diretórios Instalados: /usr/include/ZXing e /usr/lib/cmake/ZXing Capítulo 11. Utilitários Gerais Este capítulo contém vários utilitários que não se encaixam convenientemente em outros capítulos. Os aplicativos incluem alguns geradores de documentação, vários utilitários para manipular texto e gráficos, aplicativos para listar arquivos, um aplicativo para inserir números "PIN" e frases senha e um gerenciador de conexões. Asciidoctor-2.0.23 Introdução ao Asciidoctor O "Asciidoctor" é um processador de texto de fonte aberto rápido e um conjunto de ferramentas de publicação para converter conteúdo "AsciiDoc" em "HTML5", "DocBook", "PDF" e outros formatos. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3325]https://github.com/asciidoctor/asciidoctor/archive/v2.0.23/as ciidoctor-2.0.23.tar.gz * Transferência (FTP): * 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 Dependências do Asciidoctor Exigidas [3326]Ruby-3.4.2 Instalação do Asciidoctor Nota Quando construir esse pacote, a seguinte mensagem possivelmente apareça: fatal: not a git repository (or any of the parent directories): .git . Isso é normal e o pacote continuará sendo construído após esse ponto. Construa a gema Ruby: gem build asciidoctor.gemspec A suíte de teste precisa de muitas gemas Ruby além do escopo do BLFS. Agora, como o(a) usuário(a) root: gem install asciidoctor-2.0.23.gem && install -vm644 man/asciidoctor.1 /usr/share/man/man1 Conteúdo Aplicativos Instalados: asciidoctor Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /usr/lib/ruby/gems/3.4.0/gems/asciidoctor-2.0.23 e /usr/lib/ruby/gems/3.4.0/doc/asciidoctor-2.0.23 Descrições Curtas asciidoctor converte arquivos fonte "AsciiDoc" em "HTML", "DocBook" e outros formatos Bogofilter-1.2.5 Introdução ao Bogofilter O aplicativo Bogofilter é um filtro de mensagens que classifica a mensagem como "spam" ou "ham" (não "spam") por meio de uma análise estatística do cabeçalho e conteúdo (corpo) da mensagem. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3327]https://downloads.sourceforge.net/bogofilter/bogofilter-1.2.5 .tar.xz * Transferência (FTP): * 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 Dependências do Bogofilter Recomendadas [3328]gsl-2.8, [3329]libxml2-2.13.6 e [3330]SQLite-3.49.1 Opcionais [3331]lmdb-0.9.31, [3332]xmlto-0.0.29, [3333]Berkeley DB (obsoleto), [3334]QDBM e [3335]TokyoCabinet Nota Se você não instalar o pacote [3336]gsl-2.8 recomendado, então uma versão enviada estaticamente vinculada será usada. Instalação do Bogofilter Nota Se você planeja mudar a versão de sua biblioteca de base de dados em uma instalação existente ou mudar para uma base de dados diferente, [então] leia o aviso na parte superior do arquivo "RELEASE.NOTES". Instale Bogofilter executando os seguintes comandos: ./configure --prefix=/usr \ --sysconfdir=/etc/bogofilter \ --with-database=sqlite3 && make Para testar os resultados, emita make check. Agora, como o(a) usuário(a) root: make install Explicações do Comando --with-database=sqlite3: Essa chave faz com que Bogofilter use [3337]SQLite-3.49.1 como a base de dados, em vez de Berkeley DB. --with-database={lmdb,qdbm,tokyocabinet}: Essa chave também permite usar lmdb, qdbm ou tokyocabinet como a base de dados. Conteúdo Aplicativos Instalados: bf_compact, bf_copy, bf_tar, bogofilter, bogolexer, bogotune, bogoupgrade e bogoutil Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /etc/bogofilter Descrições Curtas bf_compact cria um diretório de trabalho do "bogofilter" mais compacto com um ciclo de despejo/carga bf_copy copia um diretório de trabalho do "bogofilter" para outro diretório bf_tar agrupa um diretório de trabalho do "bogofilter" no formato "tar" e o copia para a saída padrão bogofilter é um filtro de "spam" "bayesiano" rápido bogolexer é usado para separar mensagens em "tokens" e para testar novas versões do código "lexer.l" bogotune tenta encontrar configurações ideais de parâmetros para o "bogofilter" bogoupgrade atualiza a base de dados do "bogofilter" para a versão atual bogoutil despeja, carrega e mantém arquivos de base de dados do "bogofilter" Compface-1.5.2 Introdução ao Compface O Compface fornece utilitários e uma biblioteca para converter de/para o formato "X-Face", um formato "bitmap" 48x48 usado para transportar miniaturas dos(as) autores(as) de mensagens eletrônicas em um cabeçalho de mensagem. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3338]https://anduin.linuxfromscratch.org/BLFS/compface/compface-1. 5.2.tar.gz * Transferência (FTP): * 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 Instalação do Compface Primeiro, corrija o conjunto de comandos sequenciais configure, de forma que ele seja compatível com C99: autoreconf A seguir, corrija uma falha de construção que ocorre com GCC 14: sed -e '/compface.h/a #include ' \ -i cmain.c \ -i uncmain.c Instale Compface executando os seguintes comandos: ./configure --prefix=/usr --mandir=/usr/share/man && make Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) root: make install && install -m755 -v xbm2xface.pl /usr/bin Conteúdo Aplicativos Instalados: compface, uncompface e xbm2xface.pl Biblioteca Instalada: libcompface.a Diretórios Instalados: Nenhum(a) Descrições Curtas compface é um filtro para gerar representações altamente comprimidas de arquivos de imagem de face 48x48x1 uncompface é um filtro inverso que realiza uma transformação inversa sem perda de dados xbm2xface.pl é um script para gerar "xfaces" libcompface.a permite que os algoritmos de compressão e descompressão sejam usados em outros aplicativos, tais como "MTAs" desktop-file-utils-0.28 Introdução ao "Desktop File Utils" O pacote Desktop File Utils contém utilitários de linha de comando para trabalhar com [3339]entradas de área de trabalho. Esses utilitários são usados por ambientes de área de trabalho e outros aplicativos para manipular as bases de dados de aplicativos de tipo "MIME" e ajudar a aderir à especificação de entrada de área de trabalho. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3340]https://www.freedesktop.org/software/desktop-file-utils/relea ses/desktop-file-utils-0.28.tar.xz * Transferência (FTP): * 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 Dependências do "Desktop File Utils" Exigidas [3341]GLib-2.82.5 Opcionais [3342]Emacs-30.1 Instalação do "Desktop File Utils" Atenção Se você estiver atualizando a partir de uma versão anterior do "desktop-file-utils" que usou o método "Autotools" de instalação e configuração do pacote, [então] você precisa remover o link simbólico "desktop-file-edit" usando os seguintes comandos. rm -fv /usr/bin/desktop-file-edit Instale Desktop File Utils executando os seguintes comandos: mkdir build && cd build && meson setup --prefix=/usr --buildtype=release .. && ninja Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) root: ninja install Explicações do Comando --buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados. Configurando o "Desktop File Utils" Informação de Configuração A especificação [3343]XDG Base Directory define os locais padrão para os aplicativos colocarem dados e arquivos de configuração. Esses arquivos podem ser usados, por exemplo, para definir a estrutura do menu e os itens do menu em um ambiente de área de trabalho. O local padrão para os arquivos de configuração a serem instalados é /etc/xdg; e os locais padrão para arquivos de dados são /usr/local/share e /usr/share. Esses locais podem ser estendidos com as variáveis de ambiente XDG_CONFIG_DIRS e XDG_DATA_DIRS, respectivamente. Os ambientes GNOME, KDE e XFCE respeitam essas configurações. Quando um pacote instala um arquivo .desktop em um local em um dos diretórios básicos de dados, a base de dados que mapeia tipos "MIME" para aplicativos disponíveis consegue ser atualizado. Por exemplo, o arquivo de cache em /usr/share/applications/mimeinfo.cache pode ser reconstruído executando-se o seguinte comando como o(a) usuário(a) root: install -vdm755 /usr/share/applications && update-desktop-database /usr/share/applications Conteúdo Aplicativos Instalados: desktop-file-edit, desktop-file-install, desktop-file-validate e update-desktop-database Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: Nenhum(a) Descrições Curtas desktop-file-edit é usado para modificar uma entrada existente do arquivo da área de trabalho desktop-file-install é usado para instalar uma nova entrada do arquivo da área de trabalho. Também é usado para reconstruir ou modificar a base de dados de aplicativos de tipos "MIME" desktop-file-validate é usado para verificar a integridade de um arquivo da área de trabalho update-desktop-database é usado para atualizar a base de dados de aplicativos de tipos "MIME" dos2unix-7.5.2 Introdução ao dos2unix O pacote dos2unix contém um conversor de formato de texto de qualquer para qualquer. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3344]https://downloads.sourceforge.net/dos2unix/dos2unix-7.5.2.tar .gz * Transferência (FTP): * Soma de verificação MD5 da transferência: 646272020848c9b673de24c4e8e3422e * Tamanho da transferência: 972 KB * Espaço em disco estimado exigido: 7,2 MB (com testes) * Tempo de construção estimado: menos que 0,1 UPC (com testes) Instalação do dos2unix Construa dos2unix executando os seguintes comandos: make Para testar os resultados, emita: make check. Agora, como o(a) usuário(a) root: make install Conteúdo Aplicativo Instalado: dos2unix, mac2unix, unix2dos e unix2mac Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /usr/share/doc/dos2unix-7.5.2 Descrições Curtas dos2unix converte arquivos de texto plano no formato "DOS" para o formato "Unix" mac2unix converte arquivos de texto plano no formato "Mac" para o formato "Unix" unix2dos converte arquivos de texto plano no formato "Unix" para o formato "DOS" unix2mac converte arquivos de texto plano no formato "Unix" para o formato "Mac" glslc originário de shaderc-2024.4 Introdução ao glslc O programa glslc é o compilador de linha de comando do Google para OpenGL Shading Language/High Level Shading Language (GLSL/HLSL) para Standard Portable Intermediate Representation (SPIR-V). Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3345]https://github.com/google/shaderc/archive/v2024.4/shaderc-202 4.4.tar.gz * Transferência (FTP): * 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 Dependências do Glslc Exigidas [3346]CMake-3.31.5, [3347]Glslang-15.1.0 e [3348]SPIRV-Tools-1.4.304.1 Instalação do glslc Primeiro, permita construir com [3349]Glslang-15.1.0 e [3350]SPIRV-Tools-1.4.304.1 do sistema: sed '/build-version/d' -i glslc/CMakeLists.txt && sed '/third_party/d' -i CMakeLists.txt && sed 's|SPIRV|glslang/&|' -i libshaderc_util/src/compiler.cc && echo '"2024.4"' > glslc/src/build-version.inc Agora instale glslc executando os seguintes comandos: mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ -D SHADERC_SKIP_TESTS=ON \ -G Ninja .. ninja Agora, como o(a) usuário(a) root: install -vm755 glslc/glslc /usr/bin Conteúdo Aplicativos Instalados: glslc Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: Nenhum(a) Descrições Curtas glslc compila sombreadores OpenGL Shading Language/High Level Shading Language (GLSL/HLSL) para SPIR-V Graphviz-12.2.1 Introdução ao Graphviz O pacote Graphviz contém um software de visualização gráfica. A visualização gráfica é uma forma de representar informações estruturais como diagramas de gráficos abstratos e redes de comunicação. O Graphviz tem vários aplicativos principais de esquemas gráficos. Também tem interfaces gráficas web e interativas, ferramentas auxiliares, bibliotecas e ligações de linguagem. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3351]https://gitlab.com/graphviz/graphviz/-/archive/12.2.1/graphvi z-12.2.1.tar.bz2 * Transferência (FTP): * 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) Dependências do Graphviz Nota O uso básico do Graphviz não exige quaisquer bibliotecas além das encontradas no livro LFS. O mecanismo “central” dele de renderização é capaz de gerar vários formatos gráficos, como Postscript, SVG, VML, .fig e Tk. Esses formatos podem ser convertidos para quase qualquer outro formato usando ferramentas provenientes de pacotes como [3352]ImageMagick-7.1.1-43. As dependências abaixo adicionam a capacidade para gerar imagens de gráfico em formato de bitmap, para exibir a imagem de gráfico na tela, para editar um gráfico visualizando a imagem resultante diretamente ou para visualizar gráficos grandes. Como o Graphviz é uma dependência de vários pacotes neste livro, é sugerido que você o construa primeiro sem quaisquer dependências e, em seguida, o reconstrua quando tiver construído pacotes suficientes para atender às tuas necessidades. Opcional, para várias saídas de "bitmap" [3353]Pango-1.56.1, com [3354]Cairo-1.18.2, [3355]Bibliotecas do Xorg, [3356]Fontconfig-2.16.0 e [3357]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 [3358]gegl-0.4.54 Adicionar [3359]GTK+-2 com [3360]libjpeg-turbo-3.0.1 adiciona suporte para formatos JPEG, BMP, TIF e ICO e permite exibir a imagem em uma janela GTK+ [3361]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 [3362]libwebp-1.5.0 (o suporte a "WebP" é considerado experimental), [3363]DevIL, [3364]libLASi e [3365]glitz Opcional (para carregar gráficos que podem ser exibidos dentro dos nós de um gráfico) libgs.so originária de [3366]ghostscript-10.04.0, [3367]librsvg-2.59.2 e [3368]Poppler-25.02.0 Opcional (para construir mais ferramentas) [3369]Freeglut-3.6.0 (com [3370]GtkGLExt e [3371]libGTS para construir o visualizador de gráficos grandes smyrna, o qual é considerado experimental) Opcional (para construir ligações de idioma) [3372]SWIG-4.3.0 (SWIG precisa estar instalado ou nenhuma ligação será construída), [3373]GCC-14.2.0 (para o compilador "go"), [3374]Guile-3.0.10, [3375]OpenJDK-23.0.2, [3376]Lua-5.4.7, [3377]PHP-8.4.4, [3378]Ruby-3.4.2, [3379]Tk-8.6.16, [3380]Io, [3381]Mono, [3382]OCaml e [3383]R Opcional (ferramentas de construção) [3384]Criterion (estrutura essencial de suporte para os testes) e [3385]Electric Fence Opcional (para construir a documentação "PDF") [3386]ghostscript-10.04.0 (para o comando ps2pdf) Instalação do Graphviz Instale Graphviz executando os seguintes comandos: sed -i '/LIBPOSTFIX="64"/s/64//' configure.ac && ./autogen.sh && ./configure --prefix=/usr \ --docdir=/usr/share/doc/graphviz-12.2.1 Nota Um aviso é gerado por autogen.sh porque a árvore de construção não é um repositório "git". Como resultado, a data da construção é configurada para zero (0). Para obter uma data significativa na sequência de caracteres da versão, você pode executar: sed -i "s/0/$(date +%Y%m%d)/" builddate.h Fixe ou não a data, prossiga para compilar o pacote: make Esse pacote não vem com uma suíte de teste que forneça resultados significativos. Agora, como o(a) usuário(a) root: make install Explicações do Comando sed ... configure.ac: Esse comando é necessário para evitar instalar arquivos em "/usr/lib64". --with-javaincludedir="$JAVA_HOME/include -I$JAVA_HOME/include/linux": Se você tiver construído o [3387]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 [3388]libwebp-1.5.0 estiver instalado, ele não é incluído na construção sem essa opção. --with-smyrna: Mesmo se as dependências necessárias estiverem instaladas, o visualizador gráfico interativo smyrna não é construído sem essa opção. Configurando Graphviz Arquivos de Configuração /usr/lib/graphviz/config Informação de Configuração Não há requisitos específicos de configuração para Graphviz. Você possivelmente considere instalar os "plug-ins" e ferramentas adicionais disponíveis a partir da página de download em [3389]https://graphviz.org/download/source/ para recursos adicionais. Se "plug-ins" adicionais estiverem instalados, [então] você pode executar dot -c (como o(a) usuário(a) root) para atualizar o arquivo config em /usr/lib/graphviz. Conteúdo Aplicativos Instalados: acyclic, bcomps, ccomps, circo, cluster, dijkstra, dot, dot2gxl, dot_builtins, edgepaint, fdp, gc, gml2gv, graphml2gv, gv2gml, gv2gxl, gvcolor, gvedit, gvgen, gvmap, gvmap.sh, gvpack, gvpr, gxl2dot, gxl2gv, mm2gv, neato, nop, osage, patchwork, prune, sccmap, sfdp, tred, twopi, unflatten e vimdot Bibliotecas Instaladas: libcdt.so, libcgraph.so, libgvc.so, libgvpr.so, liblab_gamut.so, libpathplan.so, libxdot.so e vários "plug-ins" em /usr/lib/graphviz. Existem também várias em subdiretórios de /usr/lib/{lua,perl5,php,python3.13,tcl8.6}. Infelizmente, algumas bibliotecas são duplicadas. Diretórios Instalados: /usr/include/graphviz, /usr/lib/graphviz, /usr/lib/tcl8.6/graphviz, /usr/share/doc/graphviz-12.2.1 e /usr/share/graphviz Descrições Curtas acyclic é um filtro que recebe um gráfico direcionado como entrada e emite uma cópia do gráfico com arestas suficientes invertidas para tornar o gráfico acíclico bcomps decompõe gráficos nos componentes bi-conectados deles, imprimindo os componentes na saída padrão ccomps decompõe gráficos nos componentes conectados deles, imprimindo os componentes na saída padrão circo desenha gráficos usando um esquema circular cluster pega um gráfico no formato DOT como entrada, encontra aglomerados de nós e então aumenta o gráfico com essa informação diffimg (precisa de [3390]GD Library) gera uma imagem onde cada pixel é a diferença entre o pixel correspondente em cada uma das duas imagens de origem dijkstra lê um fluxo de gráficos e para cada um calcula a distância de cada nó a partir do nó de origem dot desenha gráficos direcionados. Funciona bem em "DAGs" e outros gráficos que possam ser desenhados como hierarquias. Ele lê arquivos atribuídos gráficos e escreve desenhos. Por padrão, o ponto de formato da saída gerada é o arquivo da entrada com coordenadas de esquema anexadas dot2gxl converte entre gráficos representados em "GXL" e na linguagem "DOT". A menos que um tipo de conversão seja especificado usando um sinalizador, gxl2dot deduzirá o tipo de conversão a partir do sufixo do arquivo de entrada; um sufixo .dot causa uma conversão de "DOT" para "GXL"; e um sufixo .gxl causa uma conversão de "GXL" para "DOT" edgepaint realiza a coloração de arestas para eliminar a ambiguidade dos cruzamentos de arestas fdp desenha gráficos não direcionados usando um modelo “spring”. Baseia-se em uma abordagem dirigida pela força no espírito de "Fruchterman" e "Reingold" gc é um gráfico análogo ao wc, pois imprime na saída padrão o número de nós, arestas, componentes conectados ou aglomerados contidos nos arquivos de entrada. Ele também imprime uma contagem total para todos os gráficos, se mais de um gráfico for fornecido gml2gv converte um gráfico especificado no formato "GML" em um gráfico no formato "GV" (anteriormente "DOT") graphml2gv converte um gráfico especificado no formato "GRAPHML" em um gráfico no formato "GV" (anteriormente "DOT") gv2gml converte um gráfico especificado no formato "GV" para um gráfico no formato "GML" gv2gxl converte um gráfico especificado no formato "GV" para um gráfico no formato "GXL" gvcolor é um filtro que configura as cores dos nós a partir dos valores iniciais de semente. As cores fluem ao longo das bordas a partir da cauda para a cabeça e são calculadas à média (como vetores "HSB") nos nós gvedit fornece um editor e visualizador simples de gráficos. Permite que muitos gráficos sejam visualizados ao mesmo tempo. O texto de cada gráfico é exibido na própria janela de texto dele gvgen gera uma variedade de gráficos abstratos simples e estruturados regularmente gvmap toma como entrada um gráfico no formato "DOT", encontra aglomerados de nós e produz uma renderização do gráfico como um mapa de estilo geográfico, com aglomerados realçados, no formato "xdot" gvmap.sh é uma linha tubular para executar o "gvmap" gvpack lê um fluxo de gráficos, combina os gráficos em um esquema e produz um gráfico servindo como a união dos gráficos de entrada gvpr é um editor de fluxo gráfico inspirado no awk. Ele copia gráficos de entrada para a saída dele, possivelmente transformando a estrutura e atributos deles, criando novos gráficos ou imprimindo informações arbitrárias gxl2dot converte entre gráficos representados em "GXL" e na linguagem "DOT". A menos que um tipo de conversão seja especificado usando um sinalizador, gxl2dot deduzirá o tipo de conversão a partir do sufixo do arquivo de entrada; um sufixo .dot causa uma conversão de "DOT" para "GXL"; e um sufixo .gxl causa uma conversão de "GXL" para "DOT" gxl2gv converte entre gráficos representados em "GXL" e na linguagem "GV" mm2gv converte uma matriz esparsa do formato "Matrix Market" em um gráfico no formato "GV" (anteriormente "DOT") neato desenha gráficos não direcionados usando modelos “spring”. Os arquivos de entrada precisam ser formatados na linguagem gráfica atribuída dot. Por padrão, a saída gerada de neato é o gráfico de entrada com coordenadas de esquema anexadas nop lê um fluxo de gráficos e imprime cada um em formato bem estampado (canônico) na saída padrão. Se nenhum arquivo for fornecido, [então] ele lê a partir da entrada padrão osage desenha gráficos agrupados. Toma qualquer gráfico no formato "DOT" como entrada patchwork desenha gráficos agrupados usando um esquema quadrado de mapa de árvore. Toma qualquer gráfico no formato "DOT" como entrada prune lê gráficos direcionados no mesmo formato usado por dot e remove sub-gráficos enraizados em nós especificados na linha de comando por meio de opções sccmap decompõe dígrafos em componentes fortemente conectados e um mapa auxiliar do relacionamento entre os componentes. Nesse mapa, cada componente é recolhido em um nó. Os gráficos resultantes são impressos na saída padrão sfdp desenha gráficos não direcionados usando o modelo “spring”, mas usa uma abordagem multi escala para produzir esquemas de gráficos grandes em um tempo razoavelmente curto tred calcula a redução transitiva de gráficos direcionados e imprime os gráficos resultantes na saída padrão. Isso remove as arestas implícitas pela transitividade. Nós e sub-gráficos não são afetados de outra forma twopi desenha gráficos usando um esquema radial. Basicamente, um nó é escolhido como centro e colocado na origem. Os nós restantes são colocados em uma sequência de círculos concêntricos centrados na origem, cada um a uma distância radial fixa a partir do círculo anterior unflatten é um pré-processador para dot que é usado para melhorar a proporção dos gráficos com muitas folhas ou nós desconectados. O esquema usual para tal gráfico geralmente é muito largo ou alto vimdot é um script simples que inicia o editor gvim ou o vim junto com uma janela "GUI" mostrando a saída gerada do dot do arquivo editado libcdt.so gerencia dicionários em tempo de execução usando tipos padrão de dados de contêiner: conjunto/multiconjunto não ordenado, conjunto/multiconjunto ordenado, lista, pilha e fila libcgraph.so suporta programação de gráficos, mantendo os gráficos na memória e lendo e gravando arquivos de gráficos. Os gráficos são compostos de nós, arestas e sub-gráficos aninhados libgvc.so fornece um contexto para aplicativos que desejam manipular e renderizar gráficos. Ele fornece interfaces de análise de linha de comando, código de renderização comum e um mecanismo de "plug-in" para renderizadores libpathplan.so contém funções para encontrar o caminho mais curto entre dois pontos em um polígono simples libxdot.so fornece suporte para analisar e desanalisar operações gráficas especificadas pela linguagem "xdot" GTK-Doc-1.34.0 Introdução ao GTK-Doc O pacote GTK-Doc contém um documentador de código. Isso é útil para extrair comentários especialmente formatados a partir do código para criar a documentação da API. Esse pacote é opcional; se não estiver instalado, [então] os pacotes não construirão a documentação. Isso não significa que você não terá nenhuma documentação. Se GTK-Doc não estiver disponível, [então] o processo de instalação copiará qualquer documentação pré-construída para seu sistema. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3391]https://download.gnome.org/sources/gtk-doc/1.34/gtk-doc-1.34. 0.tar.xz * Transferência (FTP): * 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) Dependências do GTK-Doc Exigidas [3392]docbook-xml-4.5, [3393]docbook-xsl-nons-1.79.2, [3394]GLib-2.82.5, [3395]itstool-2.0.7, [3396]libxslt-1.1.42 e [3397]Pygments-2.19.1 Opcionais Para testes: [3398]dblatex ou [3399]fop-2.10 (suporte a PDF XML), [3400]Which-2.23 e módulos Python [3401]lxml-5.3.1, [3402]parameterized e [3403]yelp-tools Nota Os módulos opcionais "Python" acima podem ser facilmente instalados com o comando pip3. Instalação do GTK-Doc Instale GTK-Doc executando os seguintes comandos: mkdir -p build && cd build && meson setup --prefix=/usr --buildtype=release .. && ninja A suíte de teste travará se o pacote (ou uma versão anterior) ainda não estiver instalado. Agora, como o(a) usuário(a) root: ninja install Para testar os resultados, emita: ninja test. Alguns testes falharão dependendo dos pacotes instalados opcionalmente. Conteúdo Aplicativos Instalados: gtkdocize, gtkdoc-check, gtkdoc-depscan, gtkdoc-fixxref, gtkdoc-mkdb, gtkdoc-mkhtml, gtkdoc-mkhtml2, gtkdoc-mkman, gtkdoc-mkpdf, gtkdoc-rebase, gtkdoc-scan e gtkdoc-scangobj Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /usr/share/gtk-doc e /usr/share/cmake/GtkDoc Descrições Curtas gtkdoc* esses são todos shell, ou scripts Python usados pelos scripts do pacote Makefile para gerar documentação para o pacote sendo construído Highlight-4.15 Introdução ao "Highlight" Highlight é um utilitário que converte o código-fonte em texto formatado com realce de sintaxe. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3404]http://www.andre-simon.de/zip/highlight-4.15.tar.bz2 * Transferência (FTP): * Soma de verificação MD5 da transferência: fd16041ffc8945ef6c4c07dbf83c541c * Tamanho da transferência: 1,4 MB * Espaço em disco estimado exigido: 25 MB (com GUI) * Tempo de construção estimado: 0,3 UPC (Usando paralelismo=4; com GUI) Dependências do "Highlight" Exigidas [3405]Boost-1.87.0 e [3406]Lua-5.4.7 Opcionais [3407]Qt-6.8.2 (para construir a estrutura GUI de retaguarda) Instalação do "Highlight" Para consistência, não comprima páginas de manual. sed -i '/GZIP/s/^/#/' makefile Para construir Highlight execute o seguinte comando: make Para construir a estrutura GUI do qt6, execute o seguinte comando: make doc_dir=/usr/share/doc/highlight-4.15/ gui Esse pacote não vem com uma suíte de teste. Para instalar Highlight, execute o seguinte comando como o(a) usuário(a) root: make doc_dir=/usr/share/doc/highlight-4.15/ install Para instalar o aplicativo "GUI", execute o seguinte comando como o(a) usuário(a) root: make install-gui Explicações do Comando doc_dir=/usr/share/doc/highlight-4.15/: instala a documentação do highlight em um diretório versionado. Esse parâmetro também é necessário para make gui, pois o valor dele seria rigidamente codificado no executável GUI. Observe que a “/” à direita é necessária. Conteúdo Aplicativos Instalados: highlight e highlight-gui (opcional) Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /etc/highlight, /usr/share/doc/highlight-4.15 e /usr/share/highlight Descrições Curtas highlight é um código-fonte universal para conversor de texto formatado highlight-gui é a interface do qt6 para highlight. ibus-1.5.31 Introdução ao ibus ibus é um barramento de entrada inteligente. É uma nova estrutura essencial de suporte de entrada para o sistema operacional Linux. Ele fornece uma interface de usuário de método de entrada amigável e com todos os recursos. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3408]https://github.com/ibus/ibus/archive/1.5.31/ibus-1.5.31.tar.g z * Transferência (FTP): * Soma de verificação MD5 da transferência: 3d685af1010d871bb858dc8a8aabb5c4 * Tamanho da transferência: 1,5 MB * Espaço em disco estimado exigido: 55 MB (adicionar 1 MB para os testes) * Tempo de construção estimado: 0,3 UPC (Usando paralelismo=4; adicionar 1,0 UPC para testes) Transferências Adicionais * Base de dados de caracteres "Unicode": [3409]https://www.unicode.org/Public/zipped/16.0.0/UCD.zip Dependências do ibus Exigidas [3410]ISO Codes-4.17.0 e [3411]Vala-0.56.17 Recomendadas [3412]DConf-0.40.0, [3413]GLib-2.82.5 (com GObject Introspection), [3414]GTK-3.24.48, [3415]GTK-4.16.12 e [3416]libnotify-0.8.4 Opcionais [3417]GTK-Doc-1.34.0 (para gerar documentação da API), [3418]D-Bus Python-1.3.2 e [3419]PyGObject-3.50.0 (ambos para construir a biblioteca de suporte a Python), [3420]libxkbcommon-1.8.0, [3421]Wayland-1.23.0 (ambos para construir os programas de suporte a Wayland), [3422]EmojiOne e [3423]libdbusmenu Instalação do ibus Primeiro, instale a base de dados de caracteres Unicode como o(a) usuário(a) root: mkdir -p /usr/share/unicode/ucd && unzip -o ../UCD.zip -d /usr/share/unicode/ucd Corrija um problema com entradas de esquema obsoletas: sed -e 's@/desktop/ibus@/org/freedesktop/ibus@g' \ -i data/dconf/org.freedesktop.ibus.gschema.xml Se [3424]GTK-Doc-1.34.0 não estiver instalado, remova as referências a ele: if ! [ -e /usr/bin/gtkdocize ]; then sed '/docs/d;/GTK_DOC/d' -i Makefile.am configure.ac fi Instale ibus executando os seguintes comandos: SAVE_DIST_FILES=1 NOCONFIGURE=1 ./autogen.sh && PYTHON=python3 \ ./configure --prefix=/usr \ --sysconfdir=/etc \ --disable-python2 \ --disable-appindicator \ --disable-emoji-dict \ --disable-gtk2 \ --disable-systemd-services && make Para testar os resultados, emita: make -k check. O teste chamado ibus-compose falha porque usa algumas localidades não instaladas no LFS. O teste chamado ibus-keypress falhará se executar em uma sessão do Wayland. O teste xkb-latin-layouts também é conhecido por falhar em alguns sistemas. Agora, como o(a) usuário(a) root: make install Explicações do Comando --disable-appindicator: Essa chave desabilita usar a libdbusmenu. Omita se você instalou a dependência opcional. --disable-emoji-dict: Essa chave desabilita o uso de dicionários de emoticons. Omita se você instalou o pacote opcional. --disable-gtk2: Essa chave remove a dependência do GTK+-2. --disable-gtk4: Essa chave desabilita construir o immodule do GTK 4. Use-a se você não quiser instalar o GTK 4. --enable-python-library: Essa chave habilita construir a biblioteca de suporte do Python. Use-a se você tiver instalado os módulos opcionais do Python. --enable-wayland: Essa chave habilita construir os programas de suporte do Wayland. Ela é habilitada automaticamente se [3425]libxkbcommon-1.8.0 e [3426]Wayland-1.23.0 estiverem instalados. NOCONFIGURE=1: Impede que autogen.sh execute o conjunto de comandos sequenciais configure gerado. Nós executaremos o conjunto de comandos sequenciais manualmente em vez de depender do autogen.sh para executá-lo, porque autogen.sh configuraria -fsanitize=address -fsanitize=leak em CFLAGS executando configure, mas essas opções do compilador não são adequadas para uso produtivo e também podem causar uma falha da construção. PYTHON=python3: Essa variável de ambiente faz com que o conjunto de comandos sequenciais configure procure por Python 3. Use-o se quiser construir a biblioteca de suporte do Python 3. SAVE_DIST_FILES=1: Essa variável de ambiente faz com que o conjunto de comandos sequenciais autogen.sh salve alguns arquivos de cabeçalho pré gerados em vez de sobrescrevê-los quando for executado. Isso evita falhas de construção ao gerar ibusemojigen.h. --enable-gtk-doc: Use esse parâmetro se GTK-Doc estiver instalado e você desejar reconstruir e instalar a documentação da API. Configurando Ibus Se o GTK+-3 estiver instalado e --disable-gtk3 não for usado, o módulo IM do ibus para GTK+-3 será instalado. Como o(a) usuário(a) root, atualize um arquivo de cache do GTK+-3, de forma que os aplicativos baseados em GTK possam encontrar o módulo IM recém-instalado e usar o ibus como um método de entrada: gtk-query-immodules-3.0 --update-cache O comando acima atualiza o arquivo de cache para GTK+-3. O GTK-4 não exige um arquivo de cache para módulos IM. Conteúdo Aplicativos Instalados: ibus, ibus-daemon e ibus-setup Biblioteca Instalada: libibus-1.0.so e im-ibus.so (módulo "IM" GTK+) Diretórios Instalados: /etc/dconf/db/ibus.d, /usr/include/ibus-1.0, /usr/share/gtk-doc/html/ibus e /usr/share/ibus Descrições Curtas ibus-daemon é o processo de segundo plano de barramento de entrada inteligente ibus-setup é o aplicativo GTK+ usado para configurar o ibus-daemon libibus-1.0.so contém as funções da "API" ibus ImageMagick-7.1.1-43 Introdução ao ImageMagick ImageMagick é uma coleção de ferramentas e bibliotecas para ler, escrever e manipular uma imagem em vários formatos de imagem. As operações de processamento de imagem estão disponíveis a partir da linha de comando. Ligações para "Perl" e "C++" também estão disponíveis. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3427]https://www.imagemagick.org/archive/releases/ImageMagick-7.1. 1-43.tar.xz * Transferência (FTP): * Soma de verificação MD5 da transferência: 007f3006dc48fbd9d6a5da6dbdf3c5c2 * Tamanho da transferência: 10 MB * Espaço em disco estimado exigido: 192 MB, 45 MB instalado (com dependências típicas; adicionar 10 MB para verificações) * Tempo de construção estimado: 0,9 UPC (com dependências típicas; adicionar 0,7 UPC para verificações, ambos usando paralelismo=4) Nota Os lançamentos de fonte do ImageMagick são atualizados frequentemente e a versão mostrada acima possivelmente não mais esteja disponível a partir dos locais de transferência. Você pode baixar uma versão mais recente e usar as instruções existentes do BLFS para instalá-la. As chances são de que funcione bem, mas isso não foi testado pela equipe do BLFS. Se a versão do pacote mostrada acima não estiver disponível a partir dos locais mostrados acima, você pode baixá-la a partir do servidor de pacotes do BLFS na Oregon State University: [3428]https://ftp.osuosl.org/pub/blfs/conglomeration/ImageMagick/. Dependências do ImageMagick Recomendadas [3429]Bibliotecas do Xorg 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 [3430]https://imagemagick.org/script/install-source.php. Utilitários Opcionais do Sistema [3431]7zip-24.09 (LZMA), Clang proveniente de [3432]LLVM-19.1.7, [3433]Cups-2.4.11, [3434]cURL-8.12.1, [3435]FFmpeg-7.1, [3436]fftw-3.3.10, [3437]SANE-1.2.1, [3438]Wget-1.25.0, [3439]xdg-utils-1.2.1, [3440]xterm-397, [3441]Dmalloc, [3442]Electric Fence e [3443]PGP ou [3444]GnuPG-2.4.7 (você terá que fazer alguns ajustes para usar GnuPG), [3445]Profiles Bibliotecas Opcionais de Gráficos [3446]jasper-4.2.4, [3447]Little CMS-2.17, [3448]libgxps-0.3.2, [3449]libjpeg-turbo-3.0.1, [3450]libjxl-0.11.1, [3451]libpng-1.6.46, [3452]libraw-0.21.3 (para arquivos dng; precisa da libraw_r de camada segura), [3453]librsvg-2.59.2, [3454]libtiff-4.7.0, [3455]libwebp-1.5.0, [3456]OpenJPEG-2.5.3, [3457]Pango-1.56.1, [3458]DjVuLibre, [3459]FlashPIX (libfpx), [3460]FLIF, [3461]JBIG-KIT, [3462]libheif com [3463]libde265 (ambos necessários se converter imagens heic do macOS), [3464]libraqm, [3465]Liquid Rescale, [3466]OpenEXR e [3467]RALCGM (ou [3468]ralcgm) Utilitários Opcionais Gráficos [3469]Fontes Dejavu, [3470]ghostscript-10.04.0, [3471]Gimp-3.0.0-RC3, [3472]Graphviz-12.2.1, [3473]Inkscape-1.4, [3474]Blender, [3475]corefonts, [3476]GhostPCL, [3477]Gnuplot, [3478]POV-Ray e [3479]Radiance Ferramentas Opcionais de Conversão [3480]Enscript-1.6.6, [3481]Potrace-1.16, [3482]texlive-20240312 (ou [3483]install-tl-unx) [3484]AutoTrace, [3485]Utilitários de Linha de Comandos GeoExpress, também conhecidos como Utilitários MrSID (pacote binário), [3486]hp2xx, [3487]libwmf, [3488]UniConvertor, e [3489]Utah Raster Toolkit (ou [3490]URT-3.1b) Instalação do ImageMagick Instale ImageMagick executando os seguintes comandos: ./configure --prefix=/usr \ --sysconfdir=/etc \ --enable-hdri \ --with-modules \ --with-perl \ --disable-static && make Agora, como o(a) usuário(a) root: make DOCUMENTATION_PATH=/usr/share/doc/imagemagick-7.1.1 install Para testar a instalação, emita: make check. Observe que os testes EPS, PS e PDF exigem um Ghostscript funcional. Um teste em 'make check' precisa da “Helvetica” originário de “Ghostscript Standard Fonts”, que são opcionalmente instaladas em [3491]ghostscript-10.04.0 - esse teste, e um outro, pode falhar, mas toda a validação ainda pode passar. Explicações do Comando --enable-hdri: Permite construir uma versão de alta faixa dinâmica do "ImageMagick". --with-modules: Habilita o suporte para módulos carregáveis dinamicamente. --with-perl: Habilita a construção e instalação do "PerlMagick". --disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas. --with-fftw: Habilita suporte para a biblioteca compartilhada FFTW. --with-rsvg: Habilita suporte para a biblioteca librsvg. --with-autotrace: Habilita suporte para a biblioteca Autotrace. --with-wmf: Habilita suporte para a biblioteca libwmf. --with-gvc: Habilita suporte para GraphViz. --with-security-policy=open|limited|secure|websafe: Se você desejar impor uma política diferente da padrão 'open', veja-se www/security-policy.html no fonte para detalhes. --with-windows-font-dir= : Essa opção especifica o diretório onde as fontes centrais do Windows estão instaladas. --with-dejavu-font-dir= : Essa opção especifica o diretório onde as fontes "DejaVu" estão instaladas. As opções e parâmetros listados acima são os únicos que você deveria passar para o script configure para ativar todas as dependências delegadas. Todas as outras dependências serão detectadas e utilizadas automaticamente na construção, se elas estiverem instaladas. Conteúdo Aplicativos Instalados: magick, Magick++-config, MagickCore-config e MagickWand-config. (animate, compare, composite, conjure, convert, display, identify, import, magick-script, mogrify, montage e stream são todos links simbólicos para magick) Bibliotecas Instaladas: libMagickCore-7.Q16HDRI.so, libMagickWand-7.Q16HDRI.so e libMagick++-7.Q16HDRI.so Diretórios Instalados: /etc/ImageMagick-7, /usr/include/ImageMagick-7, /usr/lib/ImageMagick-7.1.1, /usr/lib/perl5/site_perl/5.40/{,auto}/Image/Magick, /usr/share/doc/ImageMagick-7.1.1 e /usr/share/ImageMagick-7 Descrições Curtas animate anima uma sequência de imagens compare compara uma imagem com uma imagem reconstruída composite compõe várias imagens na imagem base fornecida conjure processa um script "MSL" para criar uma imagem convert converte imagem(ns) de um formato para outro display exibe uma imagem identify descreve o formato e as características de um arquivo de imagem import captura uma janela do X magick converte entre formatos de imagem, bem como redimensiona uma imagem, desfoca, corta, descolore, pontilha, desenha, inverte, junta, reamostra e muito mais Magick{++,Core,Wand}-config mostra informações a respeito das versões instaladas das bibliotecas do ImageMagick mogrify transforma uma imagem montage compõe várias imagens em uma nova imagem stream transmite um ou mais componentes de pixel de uma imagem ou parte da imagem para sua escolha de formatos de armazenamento Image::Magick permite ler, manipular e escrever um grande número de formatos de arquivo de imagem usando a biblioteca ImageMagick. Execute make no diretório PerlMagick/demo da árvore do fonte do pacote depois do pacote estar instalado para ver uma boa demonstração dos recursos do módulo libMagickCore-7.Q16HDRI.so fornece a API C para ImageMagick libMagickWand-7.Q16HDRI.so é a API C recomendada para ImageMagick. Ao contrário da API MagickCore, ela usa somente alguns tipos opacos libMagick++-7.Q16HDRI.so fornece a API C++ para ImageMagick ISO Codes-4.17.0 Introdução ao ISO Codes O pacote ISO Codes contém uma lista de nomes de países, idiomas e moedas e é usado como uma base de dados central para acessar esses dados. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3492]https://salsa.debian.org/iso-codes-team/iso-codes/-/archive/v 4.17.0/iso-codes-v4.17.0.tar.gz * Transferência (FTP): * 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) Instalação do ISO Codes Instale ISO Codes executando os seguintes comandos: ./configure --prefix=/usr && make Para testar os resultados, emita: make check. Agora, como o(a) usuário(a) root: make install LN_S='ln -sfn' Explicações do Comando LN_S='ln -sfn': Essa substituição garante os links simbólicos instalados recriados corretamente caso nós estejamos atualizando ou reinstalando o pacote. Ela é desnecessária, mas inofensiva, ao instalar o pacote no sistema pela primeira vez. Conteúdo Aplicativos Instalados: Nenhum(a) Bibliotecas Instaladas: Nenhum(a) Diretório Instalado: /usr/share/iso-codes, /usr/share/xml/iso-codes lsof-4.99.0 Introdução ao lsof O pacote lsof é útil para listar arquivos abertos para um dado aplicativo ou processo em execução. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3493]https://github.com/lsof-org/lsof/releases/download/4.99.0/lso f-4.99.0.tar.gz * Transferência (FTP): * 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) Dependências do lsof Exigidas [3494]libtirpc-1.3.6 Opcionais [3495]Nmap-7.95 (com um link simbólico nc apontando para ncat em /usr/bin; usado em testes) Configuração do Núcleo Para executar os testes, a seguinte opção deveria estar habilitada na configuração do núcleo: General setup ---> [*] POSIX Message Queues [POSIX_MQUEUE] Instalação do lsof Instale lsof executando os seguintes comandos: ./configure --prefix=/usr --disable-static && make Os testes deveriam ser executados como o(a) usuário(a) root. Eles exigem que as filas de mensagens "POSIX" estejam habilitadas no núcleo e que [3496]Nmap-7.95 seja instalado com um link simbólico /usr/bin/nc apontando para ncat. make check Agora, como o(a) usuário(a) root: make install Explicações do Comando --disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas. Conteúdo Aplicativo Instalado: lsof Bibliotecas Instaladas: liblsof.so Diretórios Instalados: Nenhum(a) Descrições Curtas lsof lista arquivos abertos para processos em execução liblsof.so contém uma interface para aplicativos listarem arquivos abertos pinentry-1.3.1 Introdução ao PIN-Entry O pacote PIN-Entry contém uma coleção de caixas de diálogos simples de entrada de PIN ou frase secreta que utiliza o protocolo Assuan conforme descrito pelo [3497]projeto Egito. Os aplicativos PIN-Entry geralmente são invocados pelo processo de segundo plano gpg-agent, mas podem ser executados a partir da linha de comando também. Existem aplicativos para vários ambientes baseados em texto e GUI, incluindo interfaces projetadas para Ncurses (baseadas em texto) e para os kits comuns de ferramentas GTK e Qt. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3498]https://www.gnupg.org/ftp/gcrypt/pinentry/pinentry-1.3.1.tar. bz2 * Transferência (FTP): * 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 Dependências do PIN-Entry Exigidas [3499]libassuan-3.0.2 e [3500]libgpg-error-1.51 Opcionais [3501]Emacs-30.1, [3502]FLTK-1.4.2, [3503]Gcr-4.3.1 (ou [3504]Gcr-3.41.2), [3505]KDE Frameworks-6.11.0, [3506]libsecret-0.21.6 e [3507]efl Instalação do PIN-Entry Primeiro, torne configure consistente com fltk-1.4.1: sed -i "/FLTK 1/s/3/4/" configure && sed -i '14462 s/1.3/1.4/' configure Instale PIN-Entry executando os seguintes comandos: ./configure --prefix=/usr \ --enable-pinentry-tty && make Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) root: make install Explicações do Comando --enable-inside-emacs=yes/no: Padrão é "no". --enable-pinentry-qt=yes/no: Padrão é "yes". --enable-pinentry-gnome3=yes/no: O padrão é sim. Essa opção usa [3508]Gcr-4.3.1 (ou [3509]Gcr-3.41.2 se o primeiro não estiver instalado) para a caixa de diálogo do pinentry. --enable-pinentry-tty: Padrão é "maybe". Conteúdo Aplicativos Instalados: pinentry (link simbólico), pinentry-curses, pinentry-emacs, pinentry-fltk, pinentry-gnome3, pinentry-qt e pinentry-tty Bibliotecas Instaladas: Nenhum(a) Diretório Instalado: Nenhum(a) Descrições Curtas pinentry é um link simbólico para o aplicativo padrão PIN-Entry pinentry-curses é um aplicativo auxiliar Ncurses do PIN-Entry baseado em texto pinentry-emacs é uma versão Emacs do aplicativo auxiliar do PIN-Entry pinentry-fltk é um aplicativo auxiliar FLTK do PIN-Entry pinentry-gnome3 é um aplicativo auxiliar GNOME-3 do PIN-Entry pinentry-qt é um aplicativo auxiliar Qt4 ou 5 do PIN-Entry pinentry-tty é um aplicativo auxiliar tty do PIN-Entry Screen-5.0.0 Introdução ao Screen Screen é um multiplexador de terminal que executa vários processos, normalmente shells interativos, em um terminal físico baseado em caracteres. Cada terminal virtual emula um "DEC VT100" mais várias funções "ANSI X3.64" e "ISO 2022" e também fornece tradução configurável de entrada e saída, suporte a porta serial, registro configurável, suporte multiusuário(a) e muitas codificações de caracteres, incluindo "UTF-8". As sessões do "Screen" podem ser desanexadas e retomadas posteriormente em um terminal diferente. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3510]https://ftp.gnu.org/gnu/screen/screen-5.0.0.tar.gz * Transferência (FTP): * Soma de verificação MD5 da transferência: befc115989242ed4bceeff8d8bfeb4e6 * Tamanho da transferência: 876 KB * Espaço em disco estimado exigido: 7,7 MB * Tempo de construção estimado: 0,1 UPC Dependências do Screen Opcionais [3511]Linux-PAM-1.7.0 Instalação do Screen Instale Screen executando os seguintes comandos: ./configure --prefix=/usr \ --infodir=/usr/share/info \ --mandir=/usr/share/man \ --disable-pam \ --enable-socket-dir=/run/screen \ --with-pty-group=5 \ --with-system_screenrc=/etc/screenrc && sed -i -e "s%/usr/local/etc/screenrc%/etc/screenrc%" {etc,doc}/* && make Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) root: make install && install -m 644 etc/etcscreenrc /etc/screenrc Explicações do Comando --disable-pam: Essa opção remove uma dependência de construção de Linux-PAM. Remova essa opção se você quiser suporte a PAM. --enable-socket-dir=/run/screen: Essa opção coloca os soquetes por usuário(a) em um local padrão. --with-system_screenrc=/etc/screenrc: Essa opção coloca o arquivo global screenrc em /etc. --with-pty-group=5: Essa opção configura o "GID" para o valor usado pelo LFS. sed -i -e "s%/usr/local/etc/screenrc%/etc/screenrc%" {etc,doc}/*: Esse comando corrige os arquivos de configuração e documentação para o local que é usado aqui para o arquivo global "screenrc". Configurando Screen Arquivos de Configuração /etc/screenrc e ~/.screenrc Informação de Configuração Você possivelmente queira examinar o arquivo de configuração de exemplo que foi instalado e personalizá-lo para suas necessidades. Conteúdo Aplicativo Instalado: screen (link simbólico) e screen-5.0.0 Bibliotecas Instaladas: Nenhum(a) Diretório Instalado: /usr/share/screen e /run/screen Descrições Curtas screen é um multiplexador de terminal com emulação de terminal "VT100/ANSI" shared-mime-info-2.4 Introdução ao "Shared Mime Info" O pacote Shared Mime Info contém uma base de dados "MIME". Isso permite atualizações centrais de informações "MIME" para todos os aplicativos de suporte. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3512]https://gitlab.freedesktop.org/xdg/shared-mime-info/-/archive /2.4/shared-mime-info-2.4.tar.gz * Transferência (FTP): * 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ências Adicionais * Transferência opcional, exigida para executar a suíte de teste: [3513]https://anduin.linuxfromscratch.org/BLFS/xdgmime/xdgmime.tar. xz Soma de verificação MD5 de "xdgmime": 7dfb4446705d345d3acd672024049e86 Dependências do "Shared Mime Info" Exigidas [3514]GLib-2.82.5 e [3515]libxml2-2.13.6 Opcionais [3516]xmlto-0.0.29 Instalação do "Shared Mime Info" Instale Shared Mime Info executando os seguintes comandos: Se deseja executar a suíte de teste, [então] você precisa primeiro extrair o tarball xdgmime no diretório atual e compilá-lo, de forma que meson consiga encontrá-lo: tar -xf ../xdgmime.tar.xz && make -C xdgmime Agora construa o pacote: mkdir build && cd build && meson setup --prefix=/usr --buildtype=release -D update-mimedb=true .. && ninja Se você tiver seguido as instruções acima para construir xdgmime, [então], para testar o resultado, emita ninja test. Agora, como o(a) usuário(a) root: ninja install Explicações do Comando --buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados. -D update-mimedb=true: Esse parâmetro informa ao sistema de construção para executar update-mime-database durante a instalação. Caso contrário, isso precisa ser feito manualmente para a finalidade de poder usar a base de dados MIME. Conteúdo Aplicativo Instalado: update-mime-database Biblioteca Instalada: Nenhum(a) Diretório Instalado: /usr/share/mime Descrições Curtas update-mime-database auxilia na adição de dados "MIME" à base de dados Sharutils-4.15.2 Introdução ao Sharutils O pacote Sharutils contém utilitários que conseguem criar arquivamentos "shell". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3517]https://ftp.gnu.org/gnu/sharutils/sharutils-4.15.2.tar.xz * Transferência (FTP): * Soma de verificação MD5 da transferência: 5975ce21da36491d7aa6dc2b0d9788e0 * Tamanho da transferência: 1,1 MB * Espaço em disco estimado exigido: 22 MB (com a suíte de teste) * Tempo de construção estimado: 0,4 UPC (com a suíte de teste) Instalação do Sharutils Corrija um estouro de "buffer" de uma coleção desordenada de objetos colocados ao acaso uns sobre os outros e um problema exposto pelo "GCC-10": sed -i 's/BUFSIZ/rw_base_size/' src/unshar.c && sed -i '/program_name/s/^/extern /' src/*opts.h Instale Sharutils executando os seguintes comandos: sed -i 's/IO_ftrylockfile/IO_EOF_SEEN/' lib/*.c && echo "#define _IO_IN_BACKUP 0x100" >> lib/stdio-impl.h && ./configure --prefix=/usr && make Para testar os resultados, emita make check. Agora, como o(a) usuário(a) root: make install Conteúdo Aplicativos Instalados: shar, unshar, uudecode e uuencode Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: Nenhum(a) Descrições Curtas shar cria "arquivamentos shell" (ou arquivos "shar") que estão em formato de texto e conseguem ser enviados por correio unshar desempacota um arquivo "shar" uudecode lê um arquivo (ou, por padrão, a entrada gerada padrão) e grava uma versão codificada na saída gerada padrão. A codificação usa somente caracteres de impressão "ASCII" uuencode lê um arquivo (ou, por padrão, a entrada gerada padrão) e decodifica a versão "uuencoded" para a saída gerada padrão tidy-html5-5.8.0 Introdução ao "Tidy HTML5" O pacote Tidy HTML5 contém uma ferramenta de linha de comando e bibliotecas usadas para ler arquivos "HTML", "XHTML" e "XML" e gravar marcações limpas. Ele detecta e corrige muitos erros comuns de codificação e se esforça para produzir marcação visualmente equivalente que seja compatível com "W3C" e compatível com a maioria dos navegadores. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3518]https://github.com/htacg/tidy-html5/archive/5.8.0/tidy-html5- 5.8.0.tar.gz * Transferência (FTP): * 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 Dependências do "Tidy HTML5" Exigidas [3519]CMake-3.31.5 Recomendadas [3520]libxslt-1.1.42 Instalação do "Tidy HTML5" Instale Tidy HTML5 executando os seguintes comandos: cd build/cmake && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ -D BUILD_TAB2SPACE=ON \ ../.. && make Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) root: make install && rm -fv /usr/lib/libtidy.a && install -v -m755 tab2space /usr/bin Explicações do Comando -D CMAKE_BUILD_TYPE=Release: Essa chave é usada para construir a biblioteca de lançamento sem qualquer `assertiva` de depuração no código. -D BUILD_TAB2SPACE=ON: Essa chave é usada para habilitar a construção do utilitário tab2space. Configurando "Tidy HTML5" Arquivos de Configuração O caminho absoluto do arquivo especificado em HTML_TIDY. Informação de Configuração As opções padrão de configuração podem ser configuradas no arquivo definido em HTML_TIDY. Opções adicionais de configuração podem ser passadas para tidy via parâmetros de linha de comando ou o parâmetro -config . Conteúdo Aplicativos Instalados: tab2space e tidy Biblioteca Instalada: libtidy.so Diretório Instalado: /usr/share/doc/tidy-5.8.0 Descrições Curtas tab2space é um utilitário para expandir abas e garantir finais de linha consistentes tidy valida, corrige e bem imprime arquivos "HTML" libtidy.so A biblioteca fornece as funções da "API" Tidy HTML5 para tidy e também pode ser chamada por outros aplicativos Time-1.9 Introdução ao Time O utilitário time é um aplicativo que mede muitos dos recursos da "CPU", como tempo e memória, que outros aplicativos usam. A versão "GNU" pode formatar a saída gerada de maneiras arbitrárias usando uma sequência de caracteres de formato no estilo "printf" para incluir várias medições de recursos. Embora o shell tenha um comando integrado que fornece funcionalidades semelhantes, esse utilitário é exigido pelo "LSB". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3521]https://ftp.gnu.org/gnu/time/time-1.9.tar.gz * Transferência (FTP): * Soma de verificação MD5 da transferência: d2356e0fe1c0b85285d83c6b2ad51b5f * Tamanho da transferência: 584 KB * Espaço em disco estimado exigido: 4,0 MB (com testes) * Tempo de construção estimado: 0,1 UPC (com testes) Instalação do "Time" Instale Time executando os seguintes comandos: ./configure --prefix=/usr && make Para testar os resultados, emita: make check. Agora, como o(a) usuário(a) root: make install Conteúdo Aplicativo Instalado: time Biblioteca Instalada: Nenhum(a) Diretório Instalado: Nenhum(a) Descrições Curtas time informa várias estatísticas a respeito de um comando executado tree-2.2.1 Introdução ao "tree" O aplicativo tree é útil para exibir um conteúdo de árvore de dicionário, incluindo arquivos, diretórios e links. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3522]https://gitlab.com/OldManProgrammer/unix-tree/-/archive/2.2.1 /unix-tree-2.2.1.tar.bz2 * Transferência (FTP): * 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 Instalação do "tree" Instale tree executando os seguintes comandos: make Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) root: make PREFIX=/usr MANDIR=/usr/share/man install Conteúdo Aplicativo Instalado: tree Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: Nenhum(a) Descrições Curtas tree exibe uma árvore de diretórios em um terminal unixODBC-2.3.12 Introdução ao "unixODBC" O pacote unixODBC é um subsistema "ODBC" ("Open DataBase Connectivity") de fonte aberto e um "SDK" "ODBC" para Linux, Mac OSX e UNIX. "ODBC" é uma especificação aberta para fornecer para os(as) desenvolvedores(as) de aplicativos uma "API" previsível com a qual acessar fontes de dados. As fontes de dados incluem servidores "SQL" opcionais e qualquer fonte de dados com um controlador "ODBC". unixODBC contém os seguintes componentes usados para auxiliar na manipulação de fontes de dados "ODBC": um gerenciador de controlador; uma biblioteca de instalador e ferramenta de linha de comando; ferramentas de linha de comando para ajudar a instalar um controlador e trabalhar com "SQL"; controladores e bibliotecas de configuração do controlador. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3523]https://github.com/lurcher/unixODBC/releases/download/2.3.12/ unixODBC-2.3.12.tar.gz * Transferência (FTP): * 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) Dependências do "unixODBC" Opcionais [3524]Mini SQL Instalação do "unixODBC" Instale unixODBC executando os seguintes comandos: ./configure --prefix=/usr \ --sysconfdir=/etc/unixODBC && make Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) root: make install && find doc -name "Makefile*" -delete && chmod 644 doc/{lst,ProgrammerManual/Tutorial}/* && install -v -m755 -d /usr/share/doc/unixODBC-2.3.12 && cp -v -R doc/* /usr/share/doc/unixODBC-2.3.12 Explicações do Comando --enable-drivers: Esse parâmetro habilita construir os controladores que foram instalados por padrão nas versões anteriores. --enable-drivers-conf: Esse parâmetro habilita construir as bibliotecas de configuração do controlador que foram instaladas por padrão nas versões anteriores. Configurando "unixODBC" Arquivos de Configuração /etc/unixODBC/* Informação de Configuração Os arquivos em /etc/unixODBC são destinados a serem configurados pelo(a) administrador(a) do sistema (ou pelo(a) administrador(a) do sítio "ODBC" se os privilégios apropriados forem concedidos a /etc /unixODBC). Esses arquivos não são destinados para serem editados diretamente. A biblioteca do instalador "ODBC" é responsável por ler e gravar os arquivos de configuração unixODBC. Infelizmente, não existem muitas man, ou quaisquer páginas info para os vários aplicativos disponíveis no pacote unixODBC. Juntamente com as informações nas “Descrições Curtas” abaixo e a documentação instalada em /usr/share/doc/unixODBC-2.3.12, existem muitos arquivos README em toda a árvore do fonte onde o uso e a funcionalidade dos aplicativos podem ser encontrados. Além disso, você pode usar o parâmetro -? para informações de sintaxe e uso. Por fim, o sítio da "web" do unixODBC em [3525]http://www.unixodbc.org/ tem informações muito boas. Conteúdo Aplicativos Instalados: dltest, isql, iusql, odbc_config, odbcinst e slencheck Bibliotecas Instaladas: libodbc.so, libodbccr.so e libodbcinst.so Diretórios Instalados: /etc/unixODBC e /usr/share/doc/unixODBC-2.3.12 Descrições Curtas dltest é um utilitário usado para verificar uma biblioteca compartilhada para ver se ela pode ser carregada e se um dado símbolo existe nela isql é um utilitário que pode ser usado para submeter "SQL" para uma fonte de dados e para formatar/suprir resultados. Ele pode ser usado em modo de lote ou interativo iusql fornece a mesma funcionalidade que o aplicativo isql odbc_config é usado para descobrir detalhes a respeito da instalação do pacote unixODBC odbcinst é um utilitário criado para instalar escritores de script/"RPM". É uma interface de linha de comando para funcionalidade chave na biblioteca libodbcinst. Ele não copia nenhum arquivo (ou seja, bibliotecas), mas modificará as informações do sistema "ODBC" para o(a) usuário(a) slencheck é um utilitário que tenta verificar se um controlador "ODBC" foi construído com tipos "SQLLEN" de 32 bits ou 64 bits xdg-dbus-proxy-0.1.6 Introdução ao xdg-dbus-proxy O pacote xdg-dbus-proxy contém um proxy de filtragem para conexões D-Bus. Isso é útil para encaminhar dados dentro e fora de uma sandbox. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3526]https://github.com/flatpak/xdg-dbus-proxy/releases/download/0 .1.6/xdg-dbus-proxy-0.1.6.tar.xz * Transferência (FTP): * 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 Dependências do xdg-dbus-proxy Exigidas [3527]GLib-2.82.5 Instalação do xdg-dbus-proxy Instale o xdg-dbus-proxy executando os seguintes comandos: mkdir build && cd build && meson setup --prefix=/usr --buildtype=release .. && ninja Para testar os resultados, emita: ninja test. Agora, como o(a) usuário(a) root: ninja install Explicações do Comando --buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados. Conteúdo Aplicativos Instalados: xdg-dbus-proxy Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: Nenhum(a) Descrições Curtas xdg-dbus-proxy é um proxy de filtragem para conexões D-Bus Xdg-user-dirs-0.18 Introdução ao "Xdg-user-dirs" Xdg-user-dirs é uma ferramenta para ajudar a gerenciar diretórios de usuário(a) “bem conhecidos” como a pasta "desktop" e a pasta de música. Ele também lida com a localização (ou seja, a tradução) dos nomes dos arquivos. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3528]https://user-dirs.freedesktop.org/releases/xdg-user-dirs-0.18 .tar.gz * Transferência (FTP): * 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 Dependências do Xdg-user-dirs Opcionais [3529]docbook-xml-4.5, [3530]docbook-xsl-nons-1.79.2 e [3531]libxslt-1.1.42 (todos três para construir as páginas de manual) Instalação do "Xdg-user-dirs" Instale xdg-user-dirs executando os seguintes comandos: ./configure --prefix=/usr \ --sysconfdir=/etc \ --disable-documentation && make Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) root: make install Explicações do Comando --disable-documentation: Desabilita a instalação das páginas de manual. Remova essa chave se você tiver instalado as dependências opcionais e desejar instalar as páginas de manual desse pacote. Configurando "Xdg-user-dirs" Arquivos de Configuração ~/.config/user-dirs.dirs, /etc/xdg/user-dirs.conf e /etc/xdg/user-dirs.defaults. Esses locais padrão podem ser substituídos por XDG_CONFIG_HOME e XDG_CONFIG_DIRS Conteúdo Aplicativos Instalados: xdg-user-dir e xdg-user-dirs-update Biblioteca Instalada: Nenhum(a) Diretório Instalado: Nenhum(a) Descrições Curtas xdg-user-dir procura o caminho atual para um dos diretórios "XDG" de usuário(a) xdg-user-dirs-update cria versões localizadas dos diretórios de usuário(a) Capítulo 12. Utilitários de Sistema Este capítulo contém principalmente utilitários de hardware. Ele também contém alguns aplicativos usados por outros aplicativos no livro para propósitos de instalação ou configuração. 7zip-24.09 Introdução ao 7zip 7zip é um arquivador de arquivos que arquiva com altas taxas de compressão. Ele lida com os formatos 7z, ZIP, GZIP, Brotli, BZIP2, XZ, TAR, APM, ARJ, CAB, CHM, CPIO, CramFS, DEB, DMG, FAT, HFS, ISO, Lizard, LZ5, LZFSE, LZH, LZMA, LZMA2, MBR, MSI, MSLZ, NSIS, NTFS, RAR, RPM, SquashFS, UDF, VHD, WIM, XAR, Z e Zstd. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3532]https://github.com/ip7z/7zip/archive/24.09/7zip-24.09.tar.gz * Transferência (FTP): * Soma de verificação MD5 da transferência: 41d0d31a3b0e39a1cbd848c10574fb0b * Tamanho da transferência: 2,1 MB * Espaço em disco estimado exigido: 39 MB * Tempo de construção estimado: 2,3 UPC (com testes) Dependências do 7zip Opcionais [3533]UASM Instalação do 7zip Instale 7zip executando os seguintes comandos: for i in Bundles/{Alone,Alone7z,Format7zF,SFXCon} UI/Console; do make -C CPP/7zip/$i -f ../../cmpl_gcc.mak done Esse pacote não tem uma suíte de teste. Agora, como o(a) usuário(a) root: install -vDm755 CPP/7zip/Bundles/Alone{/b/g/7za,7z/b/g/7zr} \ CPP/7zip/Bundles/Format7zF/b/g/7z.so \ CPP/7zip/UI/Console/b/g/7z \ -t /usr/lib/7zip/ && install -vm755 CPP/7zip/Bundles/SFXCon/b/g/7zCon \ /usr/lib/7zip/7zCon.sfx && (for i in 7z 7za 7zr; do cat > /usr/bin/$i << EOF || exit #!/bin/sh exec /usr/lib/7zip/$i "\$@" EOF chmod 755 /usr/bin/$i || exit done) && cp -rv DOC -T /usr/share/doc/7zip-24.09 Conteúdo Aplicativos Instalados: 7z, 7za e 7zr Bibliotecas Instaladas: Nenhum(a) Diretório Instalado: /usr/lib/7zip e /usr/share/doc/7zip-24.09 Descrições Curtas 7z é um utilitário arquivador de arquivos 7za é um executável autônomo que lida com menos formatos de arquivamento que o 7z 7zr é uma versão mínima do 7za que lida somente com arquivamentos 7z AccountsService-23.13.9 Introdução ao AccountsService O pacote AccountsService fornece um conjunto de interfaces D-Bus para consulta e manipulação de informações da conta do(a) usuário(a) e uma implementação dessas interfaces baseada nos comandos [3534]usermod(8), [3535]useradd(8) e [3536]userdel(8). Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3537]https://www.freedesktop.org/software/accountsservice/accounts service-23.13.9.tar.xz * Transferência (FTP): * 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) Dependências do "AccountsService" Exigidas [3538]Polkit-126 Recomendadas [3539]GLib-2.82.5 (com GObject Introspection), [3540]elogind-255.17 e [3541]Vala-0.56.17 Opcionais [3542]GTK-Doc-1.34.0 e [3543]xmlto-0.0.29 Opcionais (para testes) [3544]dbusmock-0.34.3 e [3545]PyGObject-3.50.0 Instalação do "AccountsService" Primeiro, renomeie um diretório cuja presença impede o sistema de construção de executar se [3546]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-daem on.py Instale AccountsService executando os seguintes comandos: mkdir build && cd build && meson setup .. \ --prefix=/usr \ --buildtype=release \ -D admin_group=adm \ -D elogind=true \ -D systemdsystemunitdir=no Agora adapte a cópia de mocklibc enviada para permitir construir a suíte de teste com GCC 14 ou posterior: grep 'print_indent' ../subprojects/mocklibc-1.0/src/netgroup.c \ | sed 's/ {/;/' >> ../subprojects/mocklibc-1.0/src/netgroup.h && sed -i '1i#include ' \ ../subprojects/mocklibc-1.0/src/netgroup.h Construa o pacote: ninja Para testar o pacote, emita ninja test. Agora, como o(a) usuário(a) root: ninja install Explicações do Comando --buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados. -D admin_group=adm: Essa chave configura o grupo para contas de administrador(a). -D docbook=true: Essa chave habilita construir a documentação da API da interface do D-Bus (precisa do [3547]xmlto-0.0.29). -D gtk_doc=true: Essa chave habilita construir a documentação da API da libaccountsservice (precisa do [3548]GTK-Doc-1.34.0). -D vapi=false: Essa chave desabilita construir as ligações vala. Use-a se você não tiver instalado [3549]Vala-0.56.17. Configurando "AccountsService" Para permitir que os(as) usuários(as) no grupo "adm" sejam listados como Administradores(as), execute os seguintes comandos como o(a) usuário(a) root: cat > /etc/polkit-1/rules.d/40-adm.rules << "EOF" polkit.addAdminRule(function(action, subject) { return ["unix-group:adm"]; }); EOF Conteúdo Aplicativos Instalados: accounts-daemon (em /usr/libexec) Bibliotecas Instaladas: libaccountsservice.so Diretórios Instalados: /usr/include/accountsservice-1.0, /usr/share/accountsservice, /usr/share/gtk-doc/html/libaccountsservice (opcional) e /var/lib/AccountsService Descrições Curtas accounts-daemon é o processo de segundo plano AccountsService libaccountsservice.so contém as funções da "API" do AccountsService acpid-2.0.34 Introdução ao "acpid" O acpid ("Advanced Configuration and Power Interface" processo de segundo plano de evento) é um processo de segundo plano completamente flexível e totalmente extensível para entrega de eventos "ACPI". Ele escuta na interface "netlink" e, quando ocorre um evento, executa aplicativos para lidar com o evento. Os aplicativos que ele executa são configurados por meio de um conjunto de arquivos de configuração, que podem ser inseridos por pacotes ou pelo(a) usuário(a). Nota Alguns outros pacotes também podem lidar com alguns eventos ACPI e possivelmente conflitem com esse pacote. Por exemplo, [3550]elogind-255.17 (leia-se a documentação para Handle*= em [3551]logind.conf(5) para detalhes) e [3552]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, [3553]elogind-255.17 lida com alguns eventos ACPI por padrão, de forma que o tratamento desses eventos pelo [3554]elogind-255.17 deveria ser desabilitado primeiro se manusear esses eventos com acpid (novamente, leia-se [3555]logind.conf(5) para detalhes). Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3556]https://downloads.sourceforge.net/acpid2/acpid-2.0.34.tar.xz * Transferência (FTP): * Soma de verificação MD5 da transferência: 988c2e3fd5ba0ea4492d3ba7273af295 * Tamanho da transferência: 160 KB * Espaço em disco estimado exigido: 1,9 MB * Tempo de construção estimado: menos que 0,1 UPC Instalação do "acpid" Instale acpid executando os seguintes comandos: ./configure --prefix=/usr \ --docdir=/usr/share/doc/acpid-2.0.34 && make Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) root: make install && install -v -m755 -d /etc/acpi/events && cp -r samples /usr/share/doc/acpid-2.0.34 Configurando "acpid" acpid é configurado por eventos definidos pelo(a) usuário(a). Coloque os arquivos de eventos sob o diretório /etc/acpi/events. Se ocorrer um evento, [então] acpid percorre os arquivos de eventos para a finalidade de ver se a expressão regular definida depois de "event" corresponde. Se corresponder, [então] a ação é executada. O breve exemplo a seguir suspenderá o sistema quando a tampa do laptop for fechada (exige [3557]pm-utils-1.4.1). O exemplo também desabilita o tratamento padrão do evento de fechamento da tampa pelo [3558]elogind-255.17 quando o sistema estiver funcionando com bateria e não conectado a nenhum monitor externo, para a finalidade de evitar um conflito: cat > /etc/acpi/events/lid << "EOF" event=button/lid action=/etc/acpi/lid.sh EOF cat > /etc/acpi/lid.sh << "EOF" #!/bin/sh /bin/grep -q open /proc/acpi/button/lid/LID/state && exit 0 /usr/sbin/pm-suspend EOF chmod +x /etc/acpi/lid.sh mkdir -pv /etc/elogind/logind.conf.d echo HandleLidSwitch=ignore > /etc/elogind/logind.conf.d/acpi.conf Infelizmente, nem todos os computadores rotulam os eventos ACPI da mesma maneira (por exemplo, a tampa possivelmente seja reconhecida como LID0 em vez de LID). Para determinar como teus botões são reconhecidos, use a ferramenta acpi_listen. Além disso, procure no diretório samples sob /usr/share/doc/acpid-2.0.34 para mais exemplos. Script de Inicialização Para iniciar automaticamente o acpid quando o sistema for reinicializado, instale o script de inicialização /etc/rc.d/init.d/acpid originário do pacote [3559]blfs-bootscripts-20250225. make install-acpid Conteúdo Aplicativos Instalados: acpid, acpi_listen e kacpimon Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /etc/acpi e /usr/share/doc/acpid-2.0.34 Descrições Curtas acpid é um aplicativo que escuta eventos "ACPI" e executa as regras que correspondem ao evento recebido acpi_listen é uma ferramenta simples que se conecta ao acpid e escuta os eventos kacpimon é um aplicativo monitor que se conecta a três fontes de eventos "ACPI" (arquivo de eventos; "netlink"; e camada de entrada) e então informa o que vê enquanto está conectado at-3.2.5 Introdução ao "at" O pacote at fornece execução diferida de tarefas e processamento em lote. Ele é exigido para conformidade com o Linux Standards Base (LSB). Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3560]https://anduin.linuxfromscratch.org/BLFS/at/at_3.2.5.orig.tar .gz * Transferência (FTP): * Soma de verificação MD5 da transferência: ca3657a1c90d7c3d252e0bc17feddc6e * Tamanho da transferência: 130 KB * Espaço em disco estimado exigido: 1,9 MB (incluindo os testes) * Tempo de construção estimado: menos que 0,1 UPC Dependências do "at" Exigidas Um [3561]MTA Opcionais [3562]Linux-PAM-1.7.0 Instalação do "at" Antes de construir o at, como o(a) usuário(a) root, você deveria criar o grupo e o(a) usuário(a) atd que executarão o processo de segundo plano atd: groupadd -g 17 atd && useradd -d /dev/null -c "atd daemon" -g atd -s /bin/false -u 17 atd Instale at com os seguintes comandos: ./configure --with-daemon_username=atd \ --with-daemon_groupname=atd \ --with-jobdir=/var/spool/atjobs \ --with-atspool=/var/spool/atspool \ SENDMAIL=/usr/sbin/sendmail && make -j1 Para testar os resultados, emita: make test. Agora, como o(a) usuário(a) root: make install docdir=/usr/share/doc/at-3.2.5 \ atdocdir=/usr/share/doc/at-3.2.5 Configurando "at" Arquivos de Configuração /etc/at.allow e /etc/at.deny determinam quem consegue submeter tarefas via "at" ou "batch". Configuração do Linux PAM Se At tiver sido construído com suporte Linux PAM, [então] você precisa criar um arquivo de configuração PAM, para fazê-lo funcionar corretamente com BLFS. Emita os seguintes comandos como o(a) usuário(a) root para criar o arquivo de configuração para Linux PAM: cat > /etc/pam.d/atd << "EOF" # Inicia /etc/pam.d/atd auth required pam_unix.so account required pam_unix.so password required pam_unix.so session required pam_unix.so # Termina /etc/pam.d/atd EOF Conjunto de Comandos Sequenciais de Inicialização Instale o script de inicialização /etc/init.d/atd a partir do pacote [3563]blfs-bootscripts-20250225. make install-atd Conteúdo Aplicativos Instalados: at, atd, atq (link simbólico), atrm (link simbólico), atrun e batch Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /usr/share/doc/at-3.2.5 Descrições Curtas at enfileira, examina ou deleta tarefas para execução posterior atd é o processo de segundo plano que executa tarefas enfileiradas para execução posterior atq lista as tarefas pendentes do(a) usuário(a), ou todas as tarefas, se superusuário(a) atrm deleta tarefas, identificadas pelo número da tarefa delas atrun executa tarefas enfileiradas para execução posterior batch é um script que executa comandos quando os níveis de carga do sistema permitem autofs-5.1.9 Introdução ao "Autofs" Autofs controla a operação dos processos de segundo plano "automount". Os processos de segundo plano "automount" montam automaticamente sistemas de arquivos quando eles são acessados e os desmontam depois de um período de inatividade. Isso é feito baseado em um conjunto de mapas pré-configurados. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3564]https://www.kernel.org/pub/linux/daemons/autofs/v5/autofs-5.1 .9.tar.xz * Transferência (FTP): * 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 Dependências do "Autofs" Exigidas [3565]libtirpc-1.3.6 e [3566]rpcsvc-proto-1.4.4 Opcionais [3567]nfs-utils-2.8.2, [3568]libnsl-2.0.1, [3569]libxml2-2.13.6, [3570]MIT Kerberos V5-1.21.3, [3571]OpenLDAP-2.6.9 (somente o cliente) e [3572]Cyrus SASL-2.1.28 Configuração do Núcleo Verifique se o suporte de núcleo "automounter" foi habilitado: File systems ---> <*/M> Kernel automounter support (supports v3, v4 and v5) [AUTOFS_FS] Opcionalmente, habilite as seguintes opções na configuração do núcleo: File systems ---> [*] Network File Systems ---> [NETWORK_FILESYSTEMS] <*/M> NFS client support [NFS_FS] <*/M> SMB3 and CIFS support (advanced network filesystem) [CIFS] Recompile e instale o novo núcleo, se necessário. Instalação do "Autofs" Instale Autofs executando os seguintes comandos: ./configure --prefix=/usr \ --with-mapdir=/etc/autofs \ --with-libtirpc \ --without-openldap \ --mandir=/usr/share/man && make Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) root: make install Cuidado Se autofs já estiver instalado em seu sistema, [então] certifique-se de produzir cópia de segurança de seus arquivos de configuração. Eles serão sobrescritos pelo seguinte comando. Instale os arquivos padrão de configuração, ainda como o(a) usuário(a) root: make install_samples Explicações do Comando --with-libtirpc: Essa chave força o pacote a usar "libtirpc" para a funcionalidade "RPC" em vez de depender da implementação originária da "Glibc", que foi removida no LFS 8.1. --without-openldap: Essa chave desabilita o "openldap" se encontrado. Se o "openldap" for desejado, [então] omita essa chave. Observe que o suporte a "openldap" em "autofs" exige [3573]MIT Kerberos V5-1.21.3. Configurando "Autofs" Arquivos de Configuração /etc/sysconfig/autofs.conf, /etc/autofs/auto.master, /etc/autofs/auto.misc e /etc/autofs/auto.net Informação de Configuração O processo de instalação cria auto.master, auto.misc, auto.smb e auto.net. Substitua o arquivo auto.master pelos seguintes comandos como o(a) usuário(a) root: mv /etc/autofs/auto.master /etc/autofs/auto.master.bak && cat > /etc/autofs/auto.master << "EOF" # Início /etc/autofs/auto.master /media/auto /etc/autofs/auto.misc --ghost #/home /etc/autofs/auto.home # Fim /etc/autofs/auto.master EOF Esse arquivo cria um novo diretório de mídia, /media/auto que sobreporá qualquer diretório existente com o mesmo nome. Nesse exemplo, o arquivo, /etc/autofs/auto.misc, tem uma linha: cd -fstype=iso9660,ro,nosuid,nodev :/dev/cdrom que montará um CDROM como /media/auto/cd se esse diretório for acessado. A opção --ghost diz ao montador automático para criar versões “ghost” (ou seja, diretórios vazios) de todos os pontos de montagem listados no arquivo de configuração, independentemente se algum dos sistemas de arquivos for realmente montado ou não. Isso é muito conveniente e altamente recomendado, porque mostrará os sistemas de arquivos montáveis automaticamente disponíveis como diretórios existentes, mesmo quando os sistemas de arquivos deles não estiverem montados atualmente. Sem a opção --ghost, você terá que se lembrar dos nomes dos diretórios. Assim que você tentar acessar um deles, o diretório será criado e o sistema de arquivos será montado. Quando o sistema de arquivos for desmontado novamente, o diretório também é destruído, a menos que a opção --ghost tenha sido fornecida. Nota Um método alternativo seria especificar outro local de montagem automática, como /var/lib/auto/cdrom, e criar um link simbólico a partir de /media/cdrom para o local de montagem automática. O arquivo auto.misc precisa ser configurado para seu hardware de trabalho. O arquivo de configuração carregado deveria carregar seu CDROM se /dev/cdrom estiver ativo ou pode ser editado para corresponder à configuração do seu dispositivo. Exemplos para disquetes estão disponíveis no arquivo e são facilmente ativados. A documentação para esse arquivo está disponível usando o comando man 5 autofs. Na segunda linha, se habilitada, um diretório inicial de usuário(a) seria montado via "NFS" no login. O /etc/home.auto precisaria existir e ter uma entrada semelhante a: joe exemplo.org:/export/home/joe onde o diretório /export/home/joe é exportado via "NFS" a partir do sistema "exemplo.org". Os compartilhamentos "NFS" são abordados na próxima página. Esse pacote também poderia ser usado para montar compartilhamentos SMB, porém esse recurso não está configurado nessas instruções. Para informações adicionais de configuração, vejam-se as páginas de manual para [3574]auto.master(5). Existem também recursos da web, tais como este [3575]AUTOFS HOWTO, disponíveis. Conjunto de Comandos Sequenciais de Inicialização O autofs instala o próprio script de inicialização dele, mas não tem capacidade para registro ou conformidade visual com outros scripts do BLFS. Ele será substituído por uma versão aprimorada. Instale o script de montagem /etc/init.d/autofs incluído com o pacote [3576]blfs-bootscripts-20250225. make install-autofs A variável de tempo limite é configurada em /etc/sysconfig/autofs.conf. O arquivo instalado configura um padrão de sessenta (60) segundos de inatividade antes de desmontar o dispositivo. Um tempo muito menor possivelmente seja necessário para proteger a gravação do "buffer" em um disquete se os(as) usuários(as) tendem a remover a mídia antes da configuração de tempo limite. Conteúdo Aplicativo Instalado: automount Bibliotecas Instaladas: libautofs.so, lookup_dir.so, lookup_file.so, lookup_files.so (link simbólico para lookup_file.so), lookup_hosts.so, lookup_ldap.so (opcional), lookup_multi.so, lookup_nis.so (link simbólico para lookup_yp.so), lookup_program.so, lookup_userhome.so, lookup_yp.so, mount_afs.so, mount_autofs.so, mount_bind.so, mount_changer.so, mount_ext2.so, mount_ext3.so (link simbólico para mount_ext2.so), mount_ext4.so (link simbólico para mount_ext2.so), mount_generic.so, mount_nfs.so, mount_nfs4.so (link simbólico para mount_nfs.so), parse_amd.so e parse_sun.so Diretórios Instalados: /usr/lib/autofs e /etc/autofs Descrições Curtas automount é o processo de segundo plano que realiza a montagem quando uma solicitação é feita para o dispositivo BlueZ-5.79 Introdução ao "BlueZ" O pacote BlueZ contém a pilha de protocolos "Bluetooth" para Linux. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3577]https://www.kernel.org/pub/linux/bluetooth/bluez-5.79.tar.xz * Transferência (FTP): * Soma de verificação MD5 da transferência: a22d25ca60e89d211ac154dca3a84e61 * Tamanho da transferência: 2,3 MB * Espaço em disco estimado exigido: 170 MB (com testes) * Tempo de construção estimado: 0,5 UPC (usando paralelismo = 4; com os testes) Dependências do "BlueZ" Exigidas [3578]dbus-1.16.0, [3579]GLib-2.82.5 e [3580]libical-3.0.19 Opcionais [3581]docutils-0.21.2 (para gerar páginas de manual) Configuração do Núcleo Se você estiver construindo esse pacote para usar dispositivos "bluetooth" (em vez de uma dependência de construção), [então] habilite as seguintes opções na configuração do núcleo, também as opções na seção “Cryptographic API” se você pretende executar os testes e recompile o núcleo, se necessário: General setup ---> # If it is disabled, [TIMERFD] and [EVENTFD] will be hidden and # enabled implicitly. We DO NOT recommend to enable [EXPERT] # unless you are really an expert user: [ /*] Configure standard kernel features (expert users) ---> [EXPERT] [*] Enable timerfd() system call [TIMERFD] [*] Enable eventfd() system call [EVENTFD] [*] Networking support ---> [NET] <*/M> Bluetooth subsystem support ---> [BT] [*] Bluetooth Classic (BR/EDR) features [BT_BREDR] <*/M> RFCOMM protocol support [BT_RFCOMM] [*] RFCOMM TTY support [BT_RFCOMM_TTY] <*/M> BNEP protocol support [BT_BNEP] [*] Multicast filter support [BT_BNEP_MC_FILTER] [*] Protocol filter support [BT_BNEP_PROTO_FILTER] <*/M> HIDP protocol support [BT_HIDP] Bluetooth device drivers ---> # Select the appropriate drivers for your bluetooth hardware. # There are more vendor-specific drivers not listed here: < /*/M> HCI USB driver [BT_HCIBTUSB] < /*/M> HCI SDIO driver [BT_HCIBTSDIO] < /*/M> HCI UART driver [BT_HCIUART] <*/M> RF switch subsystem support ---> [RFKILL] -*- Cryptographic API ---> [CRYPTO] Crypto core or helper ---> <*/M> Userspace cryptographic algorithm configuration [CRYPTO_USER] Block ciphers ---> <*/M> AES (Advanced Encryption Standard) [CRYPTO_AES] AEAD (authenticated encryption with associated data) ciphers ---> <*/M> CCM (Counter with Cipher Block Chaining-MAC) [CRYPTO_CCM] Hashes, digests, and MACs ---> <*/M> CMAC (Cipher-based MAC) [CRYPTO_CMAC] Userspace interface ---> <*/M> Hash algorithms [CRYPTO_USER_API_HASH] <*/M> Symmetric key cipher algorithms [CRYPTO_USER_API_SKCIPHER] <*/M> AEAD cipher algorithms [CRYPTO_USER_API_AEAD] Instalação do "BlueZ" Instale BlueZ executando os seguintes comandos: ./configure --prefix=/usr \ --sysconfdir=/etc \ --localstatedir=/var \ --enable-library \ --disable-manpages \ --disable-systemd && make Para testar os resultados, emita: make check. Agora, como o(a) usuário(a) root: make install && ln -svf ../libexec/bluetooth/bluetoothd /usr/sbin Instale o principal arquivo de configuração como o(a) usuário(a) root: install -v -dm755 /etc/bluetooth && install -v -m644 src/main.conf /etc/bluetooth/main.conf Se desejado, instale a documentação da API como o(a) usuário(a) root: install -v -dm755 /usr/share/doc/bluez-5.79 && install -v -m644 doc/*.txt /usr/share/doc/bluez-5.79 Instale um serviço ausente do D-Bus como o(a) usuário(a) root: install -m644 ./obexd/src/org.bluez.obex.service /usr/share/dbus-1/services Explicações do Comando --disable-manpages: Essa chave desabilita a geração de páginas de manual por causa da dependência de 'rst2man' em "docutils". Remova essa chave se você tiver [3582]docutils-0.21.2 instalado e desejar gerar as páginas de manual. --enable-library: Essa chave habilita construir a biblioteca de compatibilidade BlueZ 4 que é exigida por alguns aplicativos. --disable-systemd: Essa chave é necessária porque o systemd não é parte do LFS/BLFS. Se você estiver usando o "systemd", [então] remova essa chave. ln -svf ../libexec/bluetooth/bluetoothd /usr/sbin: Esse comando torna o acesso ao processo de segundo plano "bluetooth" mais conveniente. Configurando o "BlueZ" Arquivos de Configuração /etc/bluetooth/main.conf é instalado automaticamente durante a instalação. Além disso, existem três arquivos de configuração suplementares. "/etc/sysconfig/bluetooth" é instalado como parte do script de inicialização abaixo. Além disso, você pode opcionalmente instalar o seguinte, como o(a) usuário(a) root: cat > /etc/bluetooth/rfcomm.conf << "EOF" # Início rfcomm.conf # Configura a configuração "RFCOMM" do subsistema "Bluetooth" no núcleo Linux. # Usa uma linha por comando # Veja-se a página de manual do "rfcomm" para opções # Fim do rfcomm.conf EOF cat > /etc/bluetooth/uart.conf << "EOF" # Início uart.conf # Anexa dispositivos seriais via "UART HCI" à pilha "BlueZ" # Usa uma linha por dispositivo # Veja-se a página de manual do "hciattach" para opções # Fim do uart.conf EOF Script de Inicialização Para iniciar automaticamente o processo de segundo plano bluetoothd quando o sistema for reinicializado, instale o script de inicialização /etc/rc.d/init.d/bluetooth originário do pacote [3583]blfs-bootscripts-20250225. make install-bluetooth Conteúdo Aplicativos Instalados: bluemoon, bluetoothctl, bluetoothd (link simbólico), btattach, btmon, hex2hcd, l2ping, l2test, mpris-proxy e rctest Biblioteca Instalada: libbluetooth.so Diretórios Instalados: /etc/bluetooth, /usr/{include,libexec}/bluetooth e /usr/share/doc/bluez-5.79 Descrições Curtas bluemoon é um utilitário de configuração do Bluetooth bluetoothctl é o aplicativo interativo de controle do "Bluetooth" bluetoothd é o processo de segundo plano "Bluetooth" btmon fornece acesso à infraestrutura do monitor do subsistema "Bluetooth" para leitura de rastreamentos "HCI" hex2hcd é usado para converter um arquivo necessário para dispositivos "Broadcom" para o formato "hcd" ("Broadcom bluetooth firmware") l2ping é usado para enviar uma solicitação de eco "L2CAP" para o endereço "MAC" do "Bluetooth" fornecido em notação hexadecimal com pontos l2test é um aplicativo de teste "L2CAP" rctest é usado para testar as comunicações "RFCOMM" na pilha "Bluetooth" libbluetooth.so contém as funções de "API" do BlueZ 4 Bubblewrap-0.11.0 Introdução ao "Bubblewrap" Bubblewrap é uma implementação "setuid" de espaços de nome de usuário(a), ou ambiente de testagem, que fornece acesso a um subconjunto de recursos do núcleo de espaço de nome de usuário(a). O "Bubblewrap" permite que os processos de propriedade do(a) usuário(a) executem em um ambiente isolado com acesso limitado ao sistema de arquivos subjacente. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3584]https://github.com/containers/bubblewrap/releases/download/v0 .11.0/bubblewrap-0.11.0.tar.xz * Transferência (FTP): * 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) Dependências do "Bubblewrap" Opcionais [3585]libxslt-1.1.42 (para gerar páginas de manual), [3586]libseccomp-2.6.0 (construído com ligações Python, para testes), [3587]bash-completion e [3588]SELinux Configuração do Núcleo Quando esse pacote começou, o fluxo de desenvolvimento esperava que ele pudesse ser instalado suid-root. Isso foi há muito tempo; suid-root geralmente é considerado uma má ideia. Além dos espaços de nomes padrão, esse pacote exige que o espaço de nome opcional do(a) Usuário(a) esteja habilitado. Se isso ainda não tiver sido habilitado, selecione a seguinte opção na configuração do núcleo e recompile o núcleo: General setup ---> -*- Namespaces support ---> [NAMESPACES] [*] User namespace [USER_NS] Instalação do "Bubblewrap" Instale Bubblewrap executando os seguintes comandos: mkdir build && cd build && meson setup --prefix=/usr --buildtype=release .. && ninja Em seguida, se você deseja executar a suíte de teste, corrija um problema causado pela configuração mesclada do "/usr" no LFS: sed 's@symlink usr/lib64@ro-bind-try /lib64@' -i ../tests/libtest.sh Para testar os resultados, emita (como um(a) usuário(a) diferente do(a) usuário(a) root): ninja test Agora, como o(a) usuário(a) root: ninja install Explicações do Comando --buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados. Conteúdo Aplicativo Instalado: bwrap Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: Nenhum(a) Descrições Curtas bwrap gera um ambiente de testagem para um aplicativo executar dentro Colord-1.4.7 Introdução ao "Colord" Colord é um serviço de sistema que facilita gerenciar, instalar e a gerar perfis de cores. Ele é usado principalmente pelo GNOME Color Manager para integração do sistema e uso quando nenhum(a) usuário(a) está logado. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3589]https://www.freedesktop.org/software/colord/releases/colord-1 .4.7.tar.xz * Transferência (FTP): * 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) Transferências Adicionais * Remendo exigido: [3590]https://www.linuxfromscratch.org/patches/blfs/12.3/colord-1.4 .7-upstream_fixes-1.patch Dependências do "Colord" Exigidas [3591]dbus-1.16.0, [3592]GLib-2.82.5 (GObject Introspection recomendado), [3593]Little CMS-2.17, [3594]libgudev-238, [3595]libgusb-0.4.9, [3596]Polkit-126 e [3597]SQLite-3.49.1 Recomendadas [3598]elogind-255.17 e [3599]Vala-0.56.17 Opcionais [3600]gnome-desktop-44.1 e [3601]colord-gtk-0.3.1 (para construir as ferramentas de exemplo), [3602]docbook-xml-5.0, [3603]docbook-xsl-ns-1.79.2, e [3604]libxslt-1.1.42 (para construir as páginas de manual), [3605]GTK-Doc-1.34.0, [3606]SANE-1.2.1, [3607]ArgyllCMS e [3608]Bash Completion Instalação do "Colord" Primeiro, corrija um uso indevido da API do sqlite, causante de uma falha de teste e possível quebra ao tempo da execução: patch -Np1 -i ../colord-1.4.7-upstream_fixes-1.patch Deveria existir um(a) usuário(a) e um grupo dedicados para assumir o controle do processo de segundo plano "colord" após ele ser iniciado. Emita os seguintes comandos como o(a) usuário(a) root: groupadd -g 71 colord && useradd -c "Proprietário(a) do Processo de Segundo Plano de Cores" -d /var/lib/c olord -u 71 \ -g colord -s /bin/false colord Instale Colord executando os seguintes comandos: mkdir build && cd build && meson setup .. \ --prefix=/usr \ --buildtype=release \ -D daemon_user=colord \ -D vapi=true \ -D systemd=false \ -D libcolordcompat=true \ -D argyllcms_sensor=false \ -D bash_completion=false \ -D docs=false \ -D man=false && ninja Se [3609]docbook-xml-5.0, [3610]docbook-xsl-ns-1.79.2 e [3611]libxslt-1.1.42 estiverem instalados, construa as páginas de manual: sed -e '/class="manual"/icolord' \ -i ../man/*.xml && meson configure -D man=true && ninja Agora, como o(a) usuário(a) root: ninja install Para testar os resultados, emita: ninja test. Um teste, colord-self-test-daemon, falhará se o pacote já estiver instalado. A suíte de teste precisa ser executada com o "D-Bus Daemon" abrangente ao sistema em execução. Explicações do Comando --buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados. -D daemon_user=colord: Essa chave é usada de modo que o processo de segundo plano colord executará como um(a) usuário(a) sem privilégios em vez do(a) usuário(a) root. -D vapi=true: Essa chave habilita construir as ligações Vala. Remova se você não tiver [3612]Vala-0.56.17 instalado. -D systemd=false: Essa chave desabilita o suporte para login systemd em aplicativos Colord. -D libcolordcompat=true: Essa chave habilita construir uma biblioteca de compatibilidade para pacotes mais antigos que usam Colord. -D argyllcms_sensor=false: Essa chave desabilita o controlador do sensor ArgLLCMS. Omita se você tiver [3613]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 [3614]GTK-Doc-1.34.0 disponível. Conteúdo Aplicativos Instalados: cd-create-profile, cd-fix-profile, cd-iccdump, cd-it8 e colormgr Bibliotecas Instaladas: libcolord.so, libcolordcompat.so, libcolordprivate.so e libcolorhug.so Diretórios Instalados: /usr/include/colord-1, /usr/lib/colord-{plugins,sensors}, /usr/share/color{d}, /usr/share/gtk-doc/html/colord e /var/lib/colord Descrições Curtas cd-create-profile é a "Color Manager Profile Creation Tool" cd-fix-profile é uma ferramenta usada para corrigir metadados em perfis "ICC" cd-iccdump despeja o conteúdo de um perfil "ICC" como texto legível por humanos cd-it8 é a "Color Manager Testing Tool" colormgr é um aplicativo em modo texto que te permite interagir com o "colord" na linha de comando libcolord.so contém as funções da "API" do Colord libcolordcompat.so contém funções de API herdadas para compatibilidade com aplicativos mais antigos libcolordprivate.so contém funções internas de "API" para os aplicativos incluídos com o Colord libcolorhug.so contém um colorímetro simples de hardware de exibição cpio-2.15 Introdução ao "cpio" O pacote cpio contém ferramentas para arquivamento. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3615]https://ftp.gnu.org/gnu/cpio/cpio-2.15.tar.bz2 * Transferência (FTP): * Soma de verificação MD5 da transferência: 3394d444ca1905ea56c94b628b706a0b * Tamanho da transferência: 1,6 MB * Espaço em disco estimado exigido: 21 MB (com testes e documentos) * Tempo de construção estimado: 0,3 UPC (com testes e documentos) Dependências do "CPIO" Opcionais [3616]texlive-20240312 (ou [3617]install-tl-unx) Instalação do "cpio" Instale cpio executando os seguintes comandos: ./configure --prefix=/usr \ --enable-mt \ --with-rmt=/usr/libexec/rmt && make && makeinfo --html -o doc/html doc/cpio.texi && makeinfo --html --no-split -o doc/cpio.html doc/cpio.texi && makeinfo --plaintext -o doc/cpio.txt doc/cpio.texi Se você tiver [3618]texlive-20240312 instalado e desejar criar documentação em "PDF" ou "Postscript", [então] emita um ou ambos os seguintes comandos: make -C doc pdf && make -C doc ps Para testar os resultados, emita: make check. Agora, como o(a) usuário(a) root: make install && install -v -m755 -d /usr/share/doc/cpio-2.15/html && install -v -m644 doc/html/* \ /usr/share/doc/cpio-2.15/html && install -v -m644 doc/cpio.{html,txt} \ /usr/share/doc/cpio-2.15 Se você criou documentação em "PDF" ou "Postscript", [então] instale-a emitindo os seguintes comandos como o(a) usuário(a) root: install -v -m644 doc/cpio.{pdf,ps,dvi} \ /usr/share/doc/cpio-2.15 Explicações do Comando --enable-mt: Esse parâmetro força a construção e instalação do aplicativo mt. --with-rmt=/usr/libexec/rmt: Esse parâmetro inibe a construção do aplicativo rmt, pois ele já é instalado pelo pacote Tar no LFS. Conteúdo Aplicativos Instalados: cpio e mt Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /usr/share/doc/cpio-2.15 Descrições Curtas cpio copia arquivos de e para arquivamentos mt controla as operações da unidade de fita magnética cups-pk-helper-0.2.7 Introdução ao "cups-pk-helper" O pacote cups-pk-helper contém um auxiliar PolicyKit usado para configurar o Cups com privilégios refinados. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3619]https://www.freedesktop.org/software/cups-pk-helper/releases/ cups-pk-helper-0.2.7.tar.xz * Transferência (FTP): * 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 Dependências do "cups-pk-helper" Exigidas [3620]Cups-2.4.11 e [3621]Polkit-126 Instalação do "cups-pk-helper" Instale cups-pk-helper executando os seguintes comandos: mkdir build && cd build && meson setup --prefix=/usr .. && ninja Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) root: ninja install Conteúdo Aplicativos Instalados: cups-pk-helper-mechanism (executável da biblioteca) Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: Nenhum(a) dbus-1.16.0 Introdução ao "D-Bus" D-Bus é um sistema de barramento de mensagens, uma maneira simples para os aplicativos se comunicarem entre si. D-Bus fornece um processo de segundo plano de sistema (para eventos como “novo dispositivo de hardware adicionado” ou “fila de impressora mudou”) e um processo de segundo plano de sessão de login por usuário(a) (para necessidades gerais de "IPC" entre aplicativos de usuário(a)). Além disso, o barramento de mensagens é construído sobre uma estrutura geral de passagem de mensagens um-para-um, a qual pode ser usada por quaisquer dois aplicativos para se comunicarem diretamente (sem passar pelo processo de segundo plano do barramento de mensagens). Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3622]https://dbus.freedesktop.org/releases/dbus/dbus-1.16.0.tar.xz * Transferência (FTP): * Soma de verificação MD5 da transferência: 66bfcf1f42d4ebc634ca558d14335e92 * Tamanho da transferência: 1,3 MB * Espaço em disco estimado exigido: 110 MB (adicionar 6 MB para os testes) * Tempo de construção estimado: 0,2 UPC (adicionar 0,4 UPC para testes) Dependências do "D-Bus" Recomendadas [3623]Bibliotecas do Xorg (para aplicativo dbus-launch) Opcionais Para os testes: [3624]D-Bus Python-1.3.2, [3625]PyGObject-3.50.0 e [3626]Valgrind-3.24.0; para documentação: [3627]Doxygen-1.13.2, [3628]xmlto-0.0.29, [3629]Ducktype e [3630]Yelp Tools Instalação do "D-Bus" Instale o D-Bus executando os seguintes comandos (você possivelmente deseje revisar o arquivo meson_options.txt primeiro e adicionar quaisquer opções adicionais desejadas à linha setup do meson abaixo): mkdir build && cd build && meson setup --prefix=/usr \ --buildtype=release \ --wrap-mode=nofallback \ -D systemd=disabled \ .. && ninja Veja-se abaixo para instruções de teste. Agora, como o(a) usuário(a) root: ninja install Se você estiver usando uma instalação "DESTDIR", [então] o dbus-daemon-launch-helper precisa ser corrigido posteriormente. Emita, como usuário(a) root: chown -v root:messagebus /usr/libexec/dbus-daemon-launch-helper && chmod -v 4750 /usr/libexec/dbus-daemon-launch-helper Se você ainda estiver construindo seu sistema em "chroot" ou ainda não iniciou o processo de segundo plano, mas deseja compilar alguns pacotes que exigem o D-Bus, [então] gere o "UUID" do D-Bus, para evitar avisos ao compilar alguns pacotes, com o seguinte comando como o(a) usuário(a) root: dbus-uuidgen --ensure Se usar [3631]elogind-255.17, [então] crie um link simbólico para o arquivo /var/lib/dbus/machine-id: ln -sfv /var/lib/dbus/machine-id /etc Finalmente, ainda como o(a) usuário(a) root, renomeie o diretório da documentação (ele só existe se as dependências opcionais forem satisfeitas para pelo menos um formato de documentação) para torná-lo versionado: if [ -e /usr/share/doc/dbus ]; then rm -rf /usr/share/doc/dbus-1.16.0 && mv -v /usr/share/doc/dbus{,-1.16.0} fi Muitos testes estão desabilitados, a menos que [3632]D-Bus Python-1.3.2 e [3633]PyGObject-3.50.0 tenham sido instalados. Eles precisam ser executados como um(a) usuário(a) sem privilégios a partir de uma sessão local com endereço de barramento. Para executar os testes padrão, emita ninja test. Se você deseja executar os testes de regressão de unidade, o meson exige parâmetros adicionais os quais expõem funcionalidades adicionais nos binários que não se destinam a serem usadas em uma construção de produção do D-Bus. Se você gostaria de executar os testes, emita os seguintes comandos (para os testes, você não precisa construir os documentos): meson configure -D asserts=true -D intrusive_tests=true && ninja test Explicações do Comando --wrap-mode=nofallback: Essa chave impede meson de usar substitutos de subprojeto para quaisquer declarações de dependência nos arquivos de construção, impedindo-o de baixar quaisquer dependências opcionais que não estejam instaladas no sistema. -D systemd=disabled: Não instale arquivos de suporte do systemd mesmo que libsystemd exista (ou seja, o pacote [3634]elogind-255.17 esteja instalado). -D intrusive_tests=true: Constrói partes extras do código para suportar todos os testes. Não use em uma construção de produção. -D asserts=true: Habilita código de depuração para executar asserções para declarações normalmente presumidas serem verdadeiras. Isso evita um aviso de que '-D asserts=true' por si só é útil somente para perfilamento e pode não fornecer resultados verdadeiros para todos os testes, mas adiciona a própria OBSERVAÇÃO dele de que isso não deveria ser usado em uma construção de produção. Configurando o "D-Bus" Arquivos de Configuração /etc/dbus-1/session.conf, /etc/dbus-1/system.conf e /etc/dbus-1/system.d/* Informação de Configuração Os arquivos de configuração listados acima provavelmente não deveriam ser modificados. Se mudanças forem necessárias, [então] você deveria criar /etc/dbus-1/session-local.conf e(ou) /etc/dbus-1/system-local.conf e fazer quaisquer mudanças desejadas nesses arquivos. Se quaisquer pacotes instalarem um arquivo .service do D-Bus fora do diretório padrão /usr/share/dbus-1/services, esse diretório deveria ser adicionado à configuração local da sessão. Por exemplo, /usr/local/share/dbus-1/services pode ser adicionado realizando-se os seguintes comandos como o(a) usuário(a) root: cat > /etc/dbus-1/session-local.conf << "EOF" /usr/local/share/dbus-1/services EOF Processo de Segundo Plano de Sessão do "D-Bus" Para iniciar automaticamente o dbus-daemon quando o sistema for reinicializado, instale o "script" de inicialização /etc/rc.d/init.d/dbus a partir do pacote [3635]blfs-bootscripts-20250225. make install-dbus Se essa for a primeira vez que instala o D-Bus no sistema e não estiver operando em um ambiente chroot, você consegue iniciar imediatamente o dbus-daemon sem reinicializar o sistema: /etc/init.d/dbus start Observe que esse "script" de inicialização somente inicia o processo de segundo plano D-Bus abrangente ao sistema. Cada usuário(a) solicitante de acesso aos serviços do D-Bus também precisará executar um processo de segundo plano de sessão. Existem muitos métodos que você pode usar para iniciar um processo de segundo plano de sessão usando o comando dbus-launch. Revise a página de manual do dbus-launch para detalhes a respeito dos parâmetros e opções disponíveis. Aqui estão algumas sugestões e exemplos: * Adicione dbus-launch à linha no arquivo ~/.xinitrc que inicia seu ambiente gráfico de área de trabalho. * Se você usar gdm ou algum outro gerenciador de tela que chame o arquivo ~/.xsession, [então] você pode adicionar dbus-launch à linha no seu arquivo ~/.xsession que inicia seu ambiente gráfico de área de trabalho. A sintaxe seria semelhante ao exemplo no arquivo ~/.xinitrc. * Os exemplos mostrados anteriormente usam dbus-launch para especificar um aplicativo a ser executado. Isso tem a vantagem (ao usar também o parâmetro --exit-with-x11) de parar o processo de segundo plano de sessão quando o aplicativo especificado for interrompido. Você também pode iniciar o processo de segundo plano de sessão em seus "scripts" de inicialização de sistema ou os pessoais, adicionando as seguintes linhas: # Inicia o processo de segundo plano de sessão do "D-Bus" eval `dbus-launch` export DBUS_SESSION_BUS_ADDRESS Esse método não parará o processo de segundo plano de sessão quando você sair do seu "shell"; portanto você deveria adicionar a seguinte linha ao seu arquivo ~/.bash_logout: # Mata o processo de segundo plano de sessão do "D-Bus" kill $DBUS_SESSION_BUS_PID Conteúdo Aplicativos Instalados: dbus-cleanup-sockets, dbus-daemon, dbus-launch, dbus-monitor, dbus-run-session, dbus-send, dbus-test-tool, dbus-update-activation-environment e dbus-uuidgen Biblioteca Instalada: libdbus-1.so Diretórios Instalados: /etc/dbus-1, /usr/{include,lib}/dbus-1.0, /usr/lib/cmake/DBus1, /usr/share/dbus-1, /usr/share/xml/dbus-1, /usr/share/doc/dbus-1.16.0 e /var/{lib,run}/dbus Descrições Curtas dbus-cleanup-sockets é usado para limpar soquetes restantes em um diretório dbus-daemon é o processo de segundo plano de barramento de mensagens do D-Bus dbus-launch é usado para iniciar o dbus-daemon a partir de um "script" do "shell". Normalmente seria chamado a partir dos "scripts" de login de um(a) usuário(a) dbus-monitor é usado para monitorar mensagens que passam por um barramento de mensagens D-Bus dbus-run-session inicia um processo como uma nova sessão do D-Bus dbus-send é usado para enviar uma mensagem para um barramento de mensagens do D-Bus dbus-test-tool é um gerador de tráfego e ferramenta de teste do D-Bus; é uma ferramenta multifuncional para depuração e perfilamento do D-Bus dbus-update-activation-environment é usado para atualizar o ambiente usado para serviços de sessão do D-Bus; atualiza a lista de variáveis de ambiente usadas por dbus-daemon --session quando ativa serviços de sessão sem usar o "systemd" dbus-uuidgen é usado para gerar um "ID" universalmente único libdbus-1.so contém as funções da "API" usadas pelo processo de segundo plano de mensagens do D-Bus. D-Bus é primeiro uma biblioteca que fornece comunicação "um para um" entre quaisquer duas aplicações; dbus-daemon é um aplicativo que usa essa biblioteca para implementar um processo de segundo plano de barramento de mensagens elogind-255.17 Introdução ao elogind elogind é o "logind" do projeto systemd, extraído para ser um processo de segundo plano independente. Ele se integra com [3636]Linux-PAM-1.7.0 para rastrear todos(as) os(as) usuários(as) logados(as) em um sistema, e se eles(as) estão logados(as) graficamente, no console ou remotamente. Elogind expõe essas informações por meio da interface padrão org.freedesktop.login1 do D-Bus e também por meio do sistema de arquivos usando o esquema padrão /run/systemd do "systemd". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3637]https://github.com/elogind/elogind/archive/v255.17/elogind-25 5.17.tar.gz * Transferência (FTP): * Soma de verificação MD5 da transferência: 3cd76e1a71e13c4810f6e80e176a8fa7 * Tamanho da transferência: 2,1 MB * Espaço em disco estimado exigido: 59 MB (com testes) * Tempo de construção estimado: 0,2 UPC (com paralelismo=4; com testes) Dependências do elogind Recomendadas [3638]dbus-1.16.0 (tempo de execução), [3639]Linux-PAM-1.7.0 (exigido para Xorg), [3640]Polkit-126 (tempo de execução), [3641]docbook-xml-4.5, [3642]docbook-xsl-nons-1.79.2 e [3643]libxslt-1.1.42 (todos os três para construir as páginas de manual) Opcionais [3644]lxml-5.3.1, [3645]zsh-5.9, [3646]Valgrind-3.24.0 (necessário para testes), [3647]audit-userspace, [3648]bash-completion, [3649]kexec e [3650]SELinux Observações de Editor(a): [3651]https://wiki.linuxfromscratch.org/blfs/wiki/Logind Configuração do Núcleo Habilite as seguintes opções na configuração do núcleo e recompile o núcleo se necessário: File systems ---> [*] Inotify support for userspace [INOTIFY_USER] Pseudo filesystems ---> [*] Tmpfs virtual memory file system support (former shm fs) [TMPFS] [*] Tmpfs POSIX Access Control Lists [TMPFS_POSIX_ACL] Além disso, alguns testes precisam da "API" criptográfica do espaço do(a) usuário(a) do núcleo, a qual é habilitada com: -*- Cryptographic API ---> [CRYPTO] Crypto core or helper ---> <*/M> Userspace cryptographic algorithm configuration [CRYPTO_USER] Userspace interface ---> <*/M> Hash algorithms [CRYPTO_USER_API_HASH] Instalação do elogind Instale o elogind executando os seguintes comandos: mkdir build && cd build && meson setup .. \ --prefix=/usr \ --buildtype=release \ -D man=auto \ -D docdir=/usr/share/doc/elogind-255.17 \ -D cgroup-controller=elogind \ -D dev-kvm-mode=0660 \ -D dbuspolicydir=/etc/dbus-1/system.d && ninja Para testar os resultados, emita: ninja test. Uns poucos testes são ignorados se não executados com privilégios de root. Três testes, test-login, dbus-docs-fresh e check-version-history, são conhecidos por falharem. Agora, como o(a) usuário(a) root: ninja install && ln -sfv libelogind.pc /usr/lib/pkgconfig/libsystemd.pc && ln -sfvn elogind /usr/include/systemd Explicações do Comando -D docdir=/usr/share/doc/elogind-255.17: Isso é necessário para instalar a documentação em um diretório versionado. -D cgroup-controller=elogind: Essa chave é necessária para construir esse pacote quando o núcleo não for compilado com CONFIG_CGROUPS habilitada. Observe que elogind precisa estritamente de um núcleo com CONFIG_CGROUPS habilitada em tempo de execução, mas essa chave permitirá construir o pacote primeiro. -D dbuspolicydir=/etc/dbus-1/system.d: Essa chave configura o local do diretório de políticas do D-Bus. -D dev-kvm-mode=0660: A regra udev do LFS configura o modo de /dev/kvm como 0660. Essa opção garante que as regras udev do elogind sejam consistentes com a configuração do LFS. -D man=auto: O valor padrão dessa chave é false. Configurá-lo como auto permite construir e instalar as páginas de manual se as dependências recomendadas estiverem instaladas. -D html=auto: O valor padrão dessa chave é false. Configurá-la como auto permite construir e instalar a documentação HTML se as dependências recomendadas estiverem instaladas. -D default-kill-user-processes=false: Determina se os processos de um(a) usuário(a) deveriam ser eliminados quando o(a) usuário(a) sai. O padrão é true, mas isso anula o uso tradicional de screen ou tmux. Isso também pode ser mudado no arquivo de configuração (veja-se abaixo). ln -s ...: Esses comandos instalam links simbólicos, de modo que aqueles pacotes de software consigam encontrar a biblioteca e os cabeçalhos compatíveis com o "systemd". Configurando o elogind Arquivo de Configuração /etc/elogind/logind.conf Informação de Configuração O arquivo instalado /etc/elogind/logind.conf contém todas as opções possíveis com os padrões delas comentados. Você possivelmente quera desabilitar a eliminação automática de processos do(a) usuário(a) quando o(a) usuário(a) sai, executando como o(a) usuário(a) root: sed -e '/\[Login\]/a KillUserProcesses=no' \ -i /etc/elogind/logind.conf Cada usuário precisará registrar uma sessão de usuário(a) usando Linux-PAM no login. O arquivo /etc/pam.d/system-session precisa ser modificado e um novo arquivo precisa ser criado para a finalidade de que o elogind funcione corretamente. Execute os seguintes comandos como o(a) usuário(a) root: cat >> /etc/pam.d/system-session << "EOF" && # Começo da adição de "elogind" session required pam_loginuid.so session optional pam_elogind.so # Fim da adição de "elogind" EOF cat > /etc/pam.d/elogind-user << "EOF" # Começo /etc/pam.d/elogind-user account required pam_access.so account include system-account session required pam_env.so session required pam_limits.so session required pam_unix.so session required pam_loginuid.so session optional pam_keyinit.so force revoke session optional pam_elogind.so auth required pam_deny.so password required pam_deny.so # Fim /etc/pam.d/elogind-user EOF Nota Depois da conclusão do elogind, você deveria verificar se ele funciona corretamente. Primeiro, certifique-se de que dbus esteja executando. Pode ser mais fácil fazer isso reinicializando o sistema. Depois de se logar novamente, execute o comando loginctl. O resultado deveria indicar que uma SESSÃO e um SEAT foram criados. Conteúdo Aplicativos Instalados: busctl, elogind-inhibit e loginctl Biblioteca Instalada: libelogind.so Diretórios Instalados: /usr/lib/elogind, /etc/elogind, /usr/include/elogind e /usr/share/doc/elogind-255.17 Descrições Curtas busctl é usado para introspectar e monitorar o barramento do "D-Bus" elogind-inhibit é usado para executar um aplicativo com bloqueio de inibidor de desligamento, suspensão ou inatividade loginctl é usado para introspectar e controlar o estado do Gerenciador de Login do "elogind" libelogind.so é a principal biblioteca de utilitários do "elogind" blocaled-0.7 Introdução ao "blocaled" blocaled é uma implementação do protocolo org.freedesktop.locale1 do "D-Bus", que normalmente vem com o systemd. Ele é necessário para a área de trabalho GNOME. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3652]https://github.com/lfs-book/blocaled/releases/download/v0.7/b localed-0.7.tar.xz * Transferência (FTP): * Soma de verificação MD5 da transferência: cb3edd8c96539fb1042b68cb63e45e12 * Tamanho da transferência: 269 KB * Espaço em disco estimado exigido: 4,3 MB (com testes) * Tempo de construção estimado: menos que 0,1 UPC (com testes) Dependências do "blocaled" Exigidas [3653]Polkit-126 e [3654]libdaemon-0.14 Instalação do "blocaled" Instale blocaled executando os seguintes comandos: ./configure --prefix=/usr --sysconfdir=/etc && make Para testar os resultados, emita: make check. Agora, como o(a) usuário(a) root: make install Configurando o "blocaled" Arquivos de Configuração /etc/blocaled.conf Informação de Configuração /etc/blocaled.conf contém o local dos arquivos de configurações usados por blocaled. Os padrões são adequados para BLFS. Informações relativas às entradas estão disponíveis como comentários no arquivo. O protocolo org.freedesktop.locale1 é inapto para exportar variáveis de localidade. As configurações de localidade são armazenadas por padrão em /etc/locale.conf. Precisamos recuperá-las no perfil do "bash". Como o(a) usuário(a) root, emita: cat > /etc/profile.d/i18n.sh << "EOF" # Começo /etc/profile.d/i18n.sh if [ -r /etc/locale.conf ]; then source /etc/locale.conf; fi if [ -n "$LANG" ]; then export LANG; fi if [ -n "$LC_TYPE" ]; then export LC_TYPE; fi if [ -n "$LC_NUMERIC" ]; then export LC_NUMERIC; fi if [ -n "$LC_TIME" ]; then export LC_TIME; fi if [ -n "$LC_COLLATE" ]; then export LC_COLLATE; fi if [ -n "$LC_MONETARY" ]; then export LC_MONETARY; fi if [ -n "$LC_MESSAGES" ]; then export LC_MESSAGES; fi if [ -n "$LC_PAPER" ]; then export LC_PAPER; fi if [ -n "$LC_NAME" ]; then export LC_NAME; fi if [ -n "$LC_ADDRESS" ]; then export LC_ADDRESS; fi if [ -n "$LC_TELEPHONE" ]; then export LC_TELEPHONE; fi if [ -n "$LC_MEASUREMENT" ]; then export LC_MEASUREMENT; fi if [ -n "$LC_IDENTIFICATION" ]; then export LC_IDENTIFICATION; fi # Fim /etc/profile.d/i18n.sh EOF Então o arquivo /etc/locale deveria ser gerado, como o(a) usuário(a) root: cat > /etc/locale.conf << EOF # Começo /etc/locale.conf LANG=$LANG # Fim /etc/locale.conf EOF Se você planeja executar um sistema de janelas "X" (ou "Wayland"), [então] você possivelmente queira configurar seu teclado do "X". A melhor maneira de fazer isso é a de recuperar as configurações a partir de /etc/sysconfig/console e alimentá-las para o processo de segundo plano blocaled. Como o(a) usuário(a) root: source /etc/sysconfig/console && KEYMAP=${KEYMAP:-us} && gdbus call --system \ --dest org.freedesktop.locale1 \ --object-path /org/freedesktop/locale1 \ --method org.freedesktop.locale1.SetVConsoleKeyboard \ "$KEYMAP" "$KEYMAP_CORRECTIONS" true true Isso deveria criar ou modificar o arquivo de configuração do "Xorg" (o padrão é /etc/X11/xorg.conf.d/30-keyboard.conf) para corresponder às configurações do teclado definidas em KEYMAP. Conteúdo Aplicativo Instalado: "blocaled" (em /usr/libexec) Biblioteca Instalada: Nenhum(a) Diretório Instalado: /usr/share/blocaled Descrições Curtas blocaled é o processo de segundo plano implementando o protocolo org.freedesktop.locale1 do "D-Bus" Fcron-3.2.1 Introdução ao "Fcron" O pacote Fcron contém um agendador periódico de comandos que visa a substituir o Vixie Cron. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3655]http://fcron.free.fr/archives/fcron-3.2.1.src.tar.gz * Transferência (FTP): * Soma de verificação MD5 da transferência: bd4996e941a40327d11efc5e3fd1f839 * Tamanho da transferência: 587 KB * Espaço em disco estimado exigido: 5,1 MB * Tempo de construção estimado: 0,1 UPC Dependências do "Fcron" Opcionais Um [3656]MTA, [3657]editor de texto (o padrão é vi originário do pacote [3658]Vim-9.1.1166), [3659]Linux-PAM-1.7.0 e [3660]DocBook-utils-0.6.14 Instalação do "Fcron" Fcron usa o recurso "cron" do syslog para registrar todas as mensagens. Como o LFS não configura essa facilidade em /etc/syslog.conf, isso precisa ser feito antes de instalar o Fcron. Esse comando anexará a linha necessária ao /etc/syslog.conf atual (realize como o(a) usuário(a) root): cat >> /etc/syslog.conf << "EOF" # Começo da adição do "fcron" ao /etc/syslog.conf cron.* -/var/log/cron.log # Fim da adição do "fcron" EOF O arquivo de configuração foi modificado, de modo que recarregar o processo de segundo plano sysklogd ativará as mudanças (novamente como o(a) usuário(a) root). /etc/rc.d/init.d/sysklogd reload Por razões de segurança, um(a) usuário(a) e um grupo sem privilégios para Fcron deveriam ser criados (realize como o(a) usuário(a) root): groupadd -g 22 fcron && useradd -d /dev/null -c "Usuário(a) Fcron" -g fcron -s /bin/false -u 22 fcron Agora corrija alguns locais codificados rigidamente na documentação: find doc -type f -exec sed -i 's:/usr/local::g' {} \; Instale Fcron executando os seguintes comandos: ./configure --prefix=/usr \ --sysconfdir=/etc \ --localstatedir=/var \ --without-sendmail \ --with-boot-install=no \ --with-systemdsystemunitdir=no && make Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) root: make install A instalação "DESTDIR" precisa ser feita como usuário(a) root. Além disso, se os arquivos de configuração "PAM" devessem ser instalados em /etc/pam.d, [então] você tem de criar esse diretório no "DESTDIR" antes de fazer a instalação. Explicações do Comando --without-sendmail: Por padrão, Fcron tentará usar o comando sendmail originário de um pacote [3661]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. --with-boot-install=no: Isso impede a instalação do "script" de inicialização incluído no pacote. --with-systemdsystemunitdir=no: Isso evita construir as unidades do systemd, que não são necessárias para um sistema SYS V. --with-editor=: Essa chave te permite configurar o editor padrão de texto. --with-dsssl-dir=: Possivelmente seja usado se você tiver [3662]DocBook-utils-0.6.14 instalado. Atualmente, as folhas de estilo "dsssl" estão localizadas em /usr/share/sgml/docbook/dsssl-stylesheets-1.79. Configurando o "Fcron" Arquivos de Configuração /etc/fcron.conf, /etc/fcron.allow e /etc/fcron.deny Informação de Configuração Não existem modificações necessárias em nenhum dos arquivos de configuração. As informações de configuração podem ser encontradas na página de manual do fcron.conf. Scripts fcron são escritos usando fcrontab. Consulte a página de manual do fcrontab para os parâmetros adequados para endereçar sua situação. Se Linux-PAM estiver instalado, [então] dois arquivos de configuração do "PAM" serão instalados em /etc/pam.d. Alternativamente, se /etc/pam.d não for usado, [então] a instalação anexará duas seções de configuração ao arquivo /etc/pam.conf existente. Você deveria garantir que os arquivos correspondam às suas preferências. Modifique-os conforme necessário para atender às suas necessidades. Tarefas Periódicas Se você gostaria de configurar uma hierarquia periódica para o(a) usuário(a) "root", [então] primeiro emita os seguintes comandos (como o(a) usuário(a) root) para criar o "script" /usr/bin/run -parts: cat > /usr/bin/run-parts << "EOF" && #!/bin/sh # run-parts: Executa todos os scripts encontrados em um diretório. # Originário do "Slackware", por Patrick J. Volkerding com ideias advindas # das versões "Red Hat" e "Debian" desse utilitário. # Continue quando algo falhar set +e if [ $# -lt 1 ]; then echo "Uso: run-parts " exit 1 fi if [ ! -d $1 ]; then echo "Não é um diretório: $1" echo "Uso: run-parts " exit 1 fi # Existem vários tipos de arquivos que gostaríamos de # ignorar automaticamente, pois provavelmente serão cópias de segurança # de outros scripts: IGNORE_SUFFIXES="~ ^ , .bak .new .rpmsave .rpmorig .rpmnew .swp" # Principal loop: for SCRIPT in $1/* ; do # Se este não for um arquivo normal, pule-o: if [ ! -f $SCRIPT ]; then continue fi # Determine se este arquivo deveria ser ignorado pelo sufixo: SKIP=false for SUFFIX in $IGNORE_SUFFIXES ; do if [ ! "$(basename $SCRIPT $SUFFIX)" = "$(basename $SCRIPT)" ]; then SKIP=true break fi done if [ "$SKIP" = "true" ]; then continue fi # Se chegamos até aqui, [então] execute o script se for executável: if [ -x $SCRIPT ]; then $SCRIPT || echo "$SCRIPT falhou." fi done exit 0 EOF chmod -v 755 /usr/bin/run-parts Em seguida, crie o esquema do diretório para os tarefas periódicas (novamente como o(a) usuário(a) root): install -vdm754 /etc/cron.{hourly,daily,weekly,monthly} Finalmente, adicione o run-parts ao "fcrontab" do sistema (enquanto ainda o(a) usuário(a) root): cat > /var/spool/fcron/systab.orig << "EOF" &bootrun 01 * * * * root run-parts /etc/cron.hourly &bootrun 02 4 * * * root run-parts /etc/cron.daily &bootrun 22 4 * * 0 root run-parts /etc/cron.weekly &bootrun 42 4 1 * * root run-parts /etc/cron.monthly EOF Conjunto de Comandos Sequenciais de Inicialização Instale o "script" de iniciação /etc/rc.d/init.d/fcron a partir do pacote [3663]blfs-bootscripts-20250225. make install-fcron Finalmente, novamente como o(a) usuário(a) root, inicie o "fcron" e gere o arquivo /var/spool/fcron/systab: /etc/rc.d/init.d/fcron start && fcrontab -z -u systab Conteúdo Aplicativos Instalados: fcron, fcrondyn, fcronsighup e fcrontab Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /usr/share/doc/fcron-3.2.1 e /var/spool/fcron Descrições Curtas fcron é o processo de segundo plano de agendamento fcrondyn é uma ferramenta de usuário(a) destinada a interagir com um processo de segundo plano fcron em execução fcronsighup instrui o fcron a reler as tabelas do Fcron fcrontab é um aplicativo usado para instalar, editar, listar e remover as tabelas usadas pelo fcron GPM-1.20.7 Introdução ao "GPM" O pacote GPM (processo de segundo plano "General Purpose Mouse") contém um servidor de mouse para o console e xterm. Ele não apenas fornece suporte para recortar e colar em geral, mas o componente de biblioteca dele é usado por vários softwares, como Links, para fornecer suporte de mouse para o aplicativo. É útil em áreas de trabalho, especialmente se seguir as instruções do (Beyond) Linux From Scratch; frequentemente é muito mais fácil (e menos sujeito a erros) recortar e colar entre duas janelas do console que digitar tudo manualmente! Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3664]https://anduin.linuxfromscratch.org/BLFS/gpm/gpm-1.20.7.tar.b z2 * Transferência (FTP): * 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 Transferências Adicionais * Remendo exigido: [3665]https://www.linuxfromscratch.org/patches/blfs/12.3/gpm-1.20.7 -consolidated-1.patch Dependências do GPM Opcionais [3666]texlive-20240312 (para documentação) Configuração do Núcleo Habilite a seguinte opção na configuração do núcleo e recompile o núcleo se necessário: Device Drivers ---> Input device support ---> -*- Generic input layer (needed for keyboard, mouse, ...) [INPUT] <*/M> Mouse interface [INPUT_MOUSEDEV] Instalação do "GPM" Instale GPM executando os seguintes comandos: patch -Np1 -i ../gpm-1.20.7-consolidated-1.patch && ./autogen.sh && ./configure --prefix=/usr --sysconfdir=/etc ac_cv_path_emacs=no && make Se [3667]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 [3668]texlive-20240312 estiver instalado e você tiver construído o manual do GPM como formatos dvi, ps e pdf, instale-os como o(a) usuário(a) root: install -vm644 doc/gpm.{dvi,ps,pdf} /usr/share/doc/gpm-1.20.7 Explicações do Comando ./autogen.sh: Esse comando cria o ausente script configure. ac_cv_path_emacs=no: Essa variável soluciona um problema que faz com que o pacote falhe para construir com [3669]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 [3670]Emacs-30.1. Se precisar usar [3671]Emacs-30.1 no console do Linux com suporte para mouse, você deveria instalar (ou reinstalar) [3672]Emacs-30.1 depois do GPM. install-info ...: Esse pacote instala um arquivo .info, mas não atualiza o arquivo dir do sistema. Esse comando faz a atualização. ln -v -sfn libgpm.so.2.1.0 /usr/lib/libgpm.so: Esse comando é usado para criar (ou atualizar) o link simbólico .so para a biblioteca. Configurando o "GPM" Conjunto de Comandos Sequenciais de Inicialização Instale o script de iniciação /etc/rc.d/init.d/gpm incluído no pacote [3673]blfs-bootscripts-20250225. make install-gpm Arquivos de Configuração /etc/gpm-root.conf e ~/.gpm-root: Os arquivos de configuração gpm-root padrão e de usuário(a) individual. /etc/sysconfig/mouse: Esse arquivo contém o nome do seu dispositivo de mouse e o protocolo que ele usa. Para criar esse arquivo, execute o seguinte como o(a) usuário(a) root: cat > /etc/sysconfig/mouse << "EOF" # Começo /etc/sysconfig/mouse MDEVICE="" PROTOCOL="" GPMOPTS="" # Fim /etc/sysconfig/mouse EOF Informação de Configuração Exemplos de valores para configurar MDEVICE, PROTOCOL e GPMOPTS são: MDEVICE="/dev/input/mice" PROTOCOL="imps2" GPMOPTS="" Uma lista de quais valores de protocolo são conhecidos pode ser encontrada executando gpm -m [dispositivo] -t -help. A configuração MDEVICE depende de qual tipo de mouse você tiver. Por exemplo, /dev/ttyS0 para um mouse serial (no "Windows" isso é COM1), /dev/input/mice é frequentemente usado para mouses USB e /dev/psaux para mouses PS2. GPMOPTS é o 'pega tudo' para quaisquer opções adicionais que sejam necessárias para o seu hardware. Conteúdo Aplicativos Instalados: disable-paste, display-buttons, display-coords, get-versions, gpm, gpm-root, hltest, mev e mouse-test Biblioteca Instalada: libgpm.so Diretório Instalado: /usr/share/doc/gpm-1.20.7 Descrições Curtas disable-paste é um mecanismo de segurança usado para desabilitar o "buffer" de colagem display-buttons é um aplicativo simples que informa os botões do mouse sendo pressionados e liberados display-coords é um aplicativo simples que informa as coordenadas do mouse get-versions é usado para informar as versões da biblioteca GPM e do servidor gpm é um utilitário de recortar e colar e servidor de mouse para consoles virtuais gpm-root é um manuseador padrão para gpm. É usado para desenhar menus na janela raiz hltest é um aplicativo de exemplo simples que usa a biblioteca de alto nível, destinado a ser lido por programadores(as) que tentam usar a biblioteca de alto nível mev é um aplicativo para informar eventos de mouse mouse-test é uma ferramenta para determinar o tipo de mouse e o dispositivo ao qual está conectado libgpm.so contém as funções da "API" para acessar o processo de segundo plano GPM Hdparm-9.65 Introdução ao "Hdparm" O pacote Hdparm contém um utilitário que é útil para obter informações e controlar controladores "ATA"/"IDE" e unidades rígidas. Permite aumentar o desempenho e, às vezes, aumentar a estabilidade. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Atenção Além de ser útil, o uso incorreto do Hdparm pode destruir suas informações e, em casos raros, unidades. Use com cuidado e certifique-se de saber o que está fazendo. Se em dúvida, [então] é recomendado que você deixe os parâmetros padrão do núcleo em paz. Informação do Pacote * Transferência (HTTP): [3674]https://downloads.sourceforge.net/hdparm/hdparm-9.65.tar.gz * Transferência (FTP): * Soma de verificação MD5 da transferência: 6d6d039d61ec995b1ec72ddce0b1853b * Tamanho da transferência: 140 KB * Espaço em disco estimado exigido: 1,0 MB * Tempo de construção estimado: menos que 0,1 UPC Instalação do "Hdparm" Construa o Hdparm executando o seguinte comando: make Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) root: make binprefix=/usr install Conteúdo Aplicativo Instalado: hdparm Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: Nenhum(a) Descrições Curtas hdparm fornece uma interface de linha de comando para vários "ioctls" de disco rígido suportados pelo subsistema padrão de controlador de dispositivo "ATA"/"IDE" do Linux hwdata-0.392 Introdução ao hwdata O pacote hwdata contém dados atuais de PCI e ID do fornecedor. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3675]https://github.com/vcrhonek/hwdata/archive/v0.392/hwdata-0.39 2.tar.gz * Transferência (FTP): * 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 Instalação do hwdata Instale hwdata executando os seguintes comandos: ./configure --prefix=/usr --disable-blacklist Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) root: make install Conteúdo Aplicativos Instalados: Nenhum(a) Biblioteca Instalada: Nenhum(a) Diretório Instalado: /usr/share/hwdata LSB-Tools-0.12 Introdução ao "LSB-Tools" O pacote LSB-Tools inclui ferramentas para conformidade com "Linux Standards Base" (LSB). Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3676]https://github.com/lfs-book/LSB-Tools/releases/download/v0.12 /LSB-Tools-0.12.tar.gz * Transferência (FTP): * 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 Instalação do "LSB-Tools" Instale LSB-Tools executando os seguintes comandos: make Agora, como o(a) usuário(a) root: make install Remova um arquivo que não deveria ser instalado, como o(a) usuário(a) root: rm /usr/sbin/lsbinstall Informação de Configuração A configuração para esse pacote foi feita no [3677]LFS. O arquivo /etc/lsb-release já deveria existir. Certifique-se de que a entrada DISTRIB_CODENAME tenha sido configurada corretamente. Conteúdo Aplicativos Instalados: lsb_release , install_initd e remove_initd Biblioteca Instalada: Nenhum(a) Diretórios Instalados: /usr/lib/python3.13/site-packages/lsbtools Descrições Curtas lsb_release é um script para fornecer dados "LSB" install_initd é um script para ativar scripts de inicialização do "SysV" remove_initd é um script para desativar scripts de inicialização do "SysV" lm-sensors-3-6-0 Introdução ao lm-sensors O pacote lm-sensors fornece suporte de espaço de usuário(a) para os controladores de monitoramento de hardware no núcleo Linux. Isso é útil para monitorar a temperatura da CPU e para ajustar o desempenho de alguns hardwares (como ventiladores de resfriamento). Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3678]https://github.com/lm-sensors/lm-sensors/archive/V3-6-0/lm-se nsors-3-6-0.tar.gz * Transferência (FTP): * 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 Dependências do lm-sensors Exigidas [3679]Which-2.23 Opcionais [3680]RRDtool (exigido para construir o aplicativo sensord) e [3681]dmidecode (tempo de execução) Configuração do Núcleo As opções de configuração a seguir tentam abranger os dispositivos de monitoramento de hardware mais comuns em um sistema típico de área de trabalho ou laptop. Veja-se a ajuda de cada uma (pressionando o botão H com a opção focada em make menuconfig) para saber se você precisa dela. Existem muitos dispositivos de monitoramento de hardware específicos da plataforma, de forma que é impossível listar a configuração de todos eles aqui. Você pode investigar o conteúdo de /sys/class/hwmon dentro de uma distribuição “mainstream” em execução no sistema para saber quais controladores você precisa. Power management and ACPI options ---> [*] ACPI (Advanced Configuration and Power Interface) Support ---> [ACPI] < /*/M> Battery [ACPI_BATTERY] < /*/M> Thermal Zone [ACPI_THERMAL] Device Drivers ---> NVME Support ---> < /*> NVM Express block device [BLK_DEV_NVME] # Set [HWMON] to <*> (not !) or it will not show up: [ /*] NVMe hardware monitoring [NVME_HWMON] <*/M> Hardware Monitoring support ---> [HWMON] < /*/M> AMD Athlon64/FX or Opteron temperature sensor [SENSORS_K8TEMP] < /*/M> AMD Family 10h+ temperature sensor [SENSORS_K10TEMP] < /*/M> AMD Family 15h processor power [SENSORS_FAM15H_POWER] < /*/M> Intel Core/Core2/Atom temperature sensor [SENSORS_CORETEMP] Recompile teu núcleo e reinicialize no novo núcleo. Instalação do lm-sensors Instale lm-sensors executando os seguintes comandos: make PREFIX=/usr \ BUILD_STATIC_LIB=0 \ MANDIR=/usr/share/man \ EXLDFLAGS= Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) root: make PREFIX=/usr \ BUILD_STATIC_LIB=0 \ MANDIR=/usr/share/man install && install -v -m755 -d /usr/share/doc/lm-sensors-3-6-0 && cp -rv README INSTALL doc/* \ /usr/share/doc/lm-sensors-3-6-0 Explicações do Comando BUILD_STATIC_LIB=0: Esse parâmetro desabilita a compilação e instalação da versão estática da libsensors. EXLDFLAGS=: Esse parâmetro desabilita codificar rigidamente caminhos de pesquisa de biblioteca (rpath) nos arquivos binários executáveis e bibliotecas compartilhadas. Esse pacote não precisa do rpath para uma instalação no local padrão, e o rpath às vezes pode causar efeitos indesejados ou até mesmo problemas de segurança. PROG_EXTRA=sensord: Esse parâmetro habilita compilar o sensord, um processo de segundo plano que consegue monitorar teu sistema em intervalos regulares. Compilar sensord exige [3682]RRDtool. Certifique-se de instalar o RRDtool em /usr executando make prefix=/usr ao construí-lo. Caso contrário, lm-sensors não o encontrará facilmente. Configurando lm-sensors Arquivo de Configuração /etc/sensors3.conf Conteúdo Aplicativos Instalados: fancontrol, isadump, isaset, pwmconfig, sensors, sensors-conf-convert, sensors-detect e, opcionalmente, sensord Biblioteca Instalada: libsensors.so Diretórios Instalados: /etc/sensors.d, /usr/include/sensors e /usr/share/doc/lm-sensors-3-6-0 Descrições Curtas fancontrol é um conjunto de comandos sequenciais de shell para uso com lm-sensors. Ele lê a configuração dele a partir de um arquivo (/etc/sensors3.conf por padrão), então calcula velocidades do ventilador a partir das temperaturas e configura as correspondentes saídas geradas de PWM para os valores computados isadump é um pequeno aplicativo auxiliar para examinar registros visíveis por meio do barramento "ISA". Destina-se a testar qualquer chip que resida no barramento "ISA" trabalhando com um registrador de endereços e um registrador de dados (acesso tipo "I2C") ou um intervalo plano (de até 256 bytes) isaset é um pequeno aplicativo auxiliar para configurar registros visíveis por meio do barramento "ISA" pwmconfig testa as saídas geradas de modulação por largura de pulso ("PWM") dos sensores e configura o controle do ventilador sensors imprime as leituras atuais de todos os "chips" sensores sensors-conf-convert é um script Perl para converter arquivos de configuração de versão 2 do lm-sensors para funcionar com a versão 3 sensors-detect é um conjunto de comandos sequenciais Perl que te guiará ao longo do processo de varredura do teu sistema em busca de vários chips de monitoramento de hardware (sensores) suportados pela libsensors, ou mais geralmente pela suíte de ferramentas do lm-sensors sensord (opcional) é um processo de segundo plano que consegue ser usado para registrar periodicamente as leituras do sensor libsensors.so contém as funções de API do lm-sensors Logrotate-3.22.0 Introdução ao "Logrotate" O pacote logrotate permite rotação, compressão, remoção e envio automático de arquivos de registro. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3683]https://github.com/logrotate/logrotate/releases/download/3.22 .0/logrotate-3.22.0.tar.xz * Transferência (FTP): * 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) Dependências do "Logrotate" Exigidas [3684]popt-1.19 Recomendadas [3685]Fcron-3.2.1 (tempo de execução) Opcionais Um [3686]MTA (tempo de execução) Instalação do "Logrotate" Instale logrotate executando o seguinte comando: ./configure --prefix=/usr && make Para testar os resultados, emita: make test. Dois testes falham se um MTA não estiver instalado. Agora, como o(a) usuário(a) root: make install Configurando o "Logrotate" Logrotate precisa de um arquivo de configuração, o qual precisa ser passado como um argumento para o comando quando executado. Crie o arquivo como o(a) usuário(a) root: cat > /etc/logrotate.conf << EOF # Começo /etc/logrotate.conf # Rotacione os arquivos de registro semanalmente weekly # Não envie registros para ninguém nomail # Se o arquivo de registro estiver vazio, [então] ele não será rotacionado notifempty # Número de cópias de segurança que serão mantidas # Isto manterá somente as duas cópias de segurança mais recentes rotate 2 # Crie novos arquivos vazios depois de rotacionar os antigos # Isto criará arquivos de registro vazios, com o(a) proprietário(a) # configurado como "root", grupo configurado como "sys" e permissões 664 create 0664 root sys # Comprime as cópias de segurança com o "gzip" compress # Nenhum pacote possui "lastlog" ou "wtmp" - rotacione-os aqui /var/log/wtmp { monthly create 0664 root utmp rotate 1 } /var/log/lastlog { monthly rotate 1 } # Alguns pacotes colocam informações de rotação de registro neste diretório # de forma que incluímos qualquer arquivo nele. include /etc/logrotate.d # Fim /etc/logrotate.conf EOF chmod -v 0644 /etc/logrotate.conf Agora crie o diretório /etc/logrotate.d como o(a) usuário(a) root: mkdir -p /etc/logrotate.d Neste ponto, comandos adicionais de rotação de registro conseguem ser inseridos, normalmente no diretório /etc/logrotate.d. Por exemplo: cat > /etc/logrotate.d/sys.log << EOF /var/log/sys.log { # Se o arquivo de registro for maior que 100 KB, [então] rotacione-o size 100k rotate 5 weekly postrotate /bin/killall -HUP syslogd endscript } EOF chmod -v 0644 /etc/logrotate.d/sys.log Você consegue designar vários arquivos em uma entrada: cat > /etc/logrotate.d/example.log << EOF file1 file2 file3 { ... postrotate ... endscript } EOF chmod -v 0644 /etc/logrotate.d/example.log Você consegue usar na mesma linha a lista de arquivos: arquivo1 arquivo2 arquivo3. Veja-se a página de manual do "logrotate" ou [3687]https://www.techrepublic.com/article/manage-linux-log-files-with- logrotate/ para mais exemplos. O comando logrotate /etc/logrotate.conf pode ser executado manualmente, porém o comando deveria ser executado diariamente. Outros comandos úteis são logrotate -d /etc/logrotate.conf para fins de depuração e logrotate -f /etc/logrotate.conf forçando os comandos do "logrotate" a serem executados imediatamente. Combinando as opções anteriores -df, você consegue depurar o efeito do comando "force". Durante a depuração, os comandos são somente simulados e não são realmente executados. Como resultado, erros a respeito de arquivos inexistentes aparecerão eventualmente porque os arquivos não foram realmente criados. Para executar o comando logrotate diariamente, se você instalou [3688]Fcron-3.2.1 e completou a seção a respeito de tarefas periódicas, execute os seguintes comandos, como o(a) usuário(a) root, para criar uma tarefa diária do "cron": cat > /etc/cron.daily/logrotate.sh << "EOF" && #!/bin/bash /usr/sbin/logrotate /etc/logrotate.conf EOF chmod 754 /etc/cron.daily/logrotate.sh Conteúdo Aplicativos Instalados: logrotate Biblioteca Instalada: Nenhum(a) Diretórios Instalados: Nenhum(a) Descrições Curtas logrotate realiza as funções de manutenção do registro definidas nos arquivos de configuração MC-4.8.33 Introdução ao "MC" MC (Midnight Commander) é um gerenciador de arquivos em tela cheia em modo texto e shell visual. Ele fornece uma interface clara, amigável e um tanto protegida para um sistema Unix, ao mesmo tempo que torna muitas operações frequentes de arquivos mais eficientes e preserva todo o poder do prompt de comando. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3689]http://ftp.midnight-commander.org/mc-4.8.33.tar.xz * Transferência (FTP): * Soma de verificação MD5 da transferência: b3596c1f092b9822a6cd9c9a1aef8dde * Tamanho da transferência: 2,3 MB * Espaço em disco estimado exigido: 71 MB (adicionar 97 MB para os testes) * Tempo de construção estimado: 0,3 UPC (usando paralelismo=4; adicionar 0,1 UPC para testes) Dependências do "MC" Exigidas [3690]GLib-2.82.5 Recomendadas [3691]slang-2.3.3 Opcionais [3692]Doxygen-1.13.2, [3693]GPM-1.20.7, [3694]Graphviz-12.2.1, [3695]libarchive-3.7.7, [3696]libssh2-1.11.1, [3697]pcre2-10.45, [3698]Ruby-3.4.2, [3699]um ambiente gráfico e [3700]Zip-3.0 Instalação do "MC" Instale MC executando os seguintes comandos: ./configure --prefix=/usr \ --sysconfdir=/etc \ --enable-charset && make Para testar os resultados, emita: make check. Agora, como o(a) usuário(a) root: make install Explicações do Comando --sysconfdir=/etc: Essa chave coloca o diretório global de configuração em /etc. --enable-charset: Essa chave adiciona suporte ao mcedit para edição de arquivos em codificações diferentes daquela implícita na localidade atual. --with-screen=ncurses: Use isso se você não tiver [3701]slang-2.3.3 instalado. --with-search-engine=pcre2: Use essa chave se você preferisse usar [3702]pcre2-10.45 em vez de GLib para o mecanismo de pesquisa integrado. Configurando o "MC" Arquivos de Configuração ~/.config/mc/* Informação de Configuração O diretório ~/.config/mc e o conteúdo dele são criados quando você inicia o mc pela primeira vez. Então você pode editar o arquivo principal de configuração ~/.config/mc/ini manualmente ou por meio do shell do MC. Consulte-se a página de manual do [3703]mc(1) para detalhes. Conteúdo Aplicativos Instalados: "mc" e os links simbólicos "mcdiff", "mcedit" e "mcview" Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /etc/mc e /usr/{libexec,share}/mc Descrições Curtas mc é um shell visual mcdiff é uma ferramenta interna visual de comparação mcedit é um editor interno de arquivos mcview é um visualizador interno de arquivos ModemManager-1.18.12 Introdução ao "ModemManager" ModemManager fornece uma API unificada de alto nível para comunicação com modems de banda larga móvel, independentemente do protocolo usado para comunicação com o dispositivo real. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3704]https://www.freedesktop.org/software/ModemManager/ModemManage r-1.18.12.tar.xz * Transferência (FTP): * 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) Dependências do "ModemManager" Exigidas [3705]libgudev-238 Recomendadas [3706]elogind-255.17, [3707]GLib-2.82.5 (com GObject Introspection), [3708]libmbim-1.26.4, [3709]libqmi-1.30.8, [3710]Polkit-126 e [3711]Vala-0.56.17 Opcionais [3712]GTK-Doc-1.34.0 Observações de Editor(a): [3713]https://wiki.linuxfromscratch.org/blfs/wiki/ModemManager Instalação do "ModemManager" Instale ModemManager executando os seguintes comandos: ./configure --prefix=/usr \ --sysconfdir=/etc \ --localstatedir=/var \ --disable-static \ --disable-maintainer-mode \ --with-systemd-journal=no \ --with-systemd-suspend-resume && make Para testar os resultados, emita: make check. Agora, como o(a) usuário(a) root: make install Explicações do Comando --with-systemd-suspend-resume: Essa chave força o ModemManager a usar os recursos de gerenciamento de energia do elogind . --with-systemd-journal=no : Essa chave força o ModemManager a não usar o diário do "systemd" para registro. --disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas. --enable-gtk-doc: Use esse parâmetro se GTK-Doc estiver instalado e você desejar reconstruir e instalar a documentação da API. Conteúdo Aplicativos Instalados: mmcli e ModemManager Bibliotecas Instaladas: libmm-glib.so Diretórios Instalados: /etc/ModemManager, /usr/include/libmm-glib, /usr/include/ModemManager, /usr/lib/ModemManager, /usr/share/ModemManager, /usr/share/gtk-doc/html/libmm-glib (opcional) e /usr/share/gtk-doc/html/ModemManager (opcional) Descrições Curtas mmcli é um utilitário usado para controlar e monitorar o ModemManager ModemManager é um serviço do D-Bus usado para se comunicar com modems libmm-glib.so contém funções de "API" para comunicação com modems de banda larga móvel, independentemente do protocolo usado para comunicação com o dispositivo real notification-daemon-3.20.0 Introdução ao "Notification Daemon" O pacote Notification Daemon contém um processo de segundo plano que exibe notificações "pop-up" passivas. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3714]https://download.gnome.org/sources/notification-daemon/3.20/n otification-daemon-3.20.0.tar.xz * Transferência (FTP): * 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 Dependências do "Notification Daemon" Exigidas [3715]GTK-3.24.48 e [3716]libcanberra-0.30 (Construído com suporte a [3717]GTK-3.24.48). Instalação do "Notification Daemon" Instale o Notification Daemon executando os seguintes comandos: ./configure --prefix=/usr \ --sysconfdir=/etc \ --disable-static && make Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) root: make install Você consegue testar o processo de segundo plano de notificação com o comando notify-send: pgrep -l notification-da && notify-send -i info Information "Olá ${USER}, Isto é um Teste" O comando pgrep -l notification-da é adicionado para garantir que é o processo de segundo plano desse pacote que está executando, e não outro, por exemplo. o processo de segundo plano oriundo de [3718]xfce4-notifyd-0.9.7. Conteúdo Aplicativo Instalado: nenhum(a) Bibliotecas Instaladas: nenhum(a) Diretório Instalado: nenhum(a) Pax-20240817 Introdução ao "Pax" pax é um utilitário de arquivamento criado pelo "POSIX" e definido pelo padrão "POSIX.1-2001". Em vez de resolver as opções incompatíveis que surgiram entre tar e cpio, juntamente com as implementações deles em várias versões do UNIX, o "IEEE" projetou um novo utilitário de arquivamento. O nome “pax” é um acrônimo para "Portable Archive Exchange". Além disso, “pax” significa “paz” em latim, de forma que o nome dele implica que deve criar a paz entre os(as) apoiadores(as) do formato tar e do cpio. A invocação de comandos e a estrutura de comandos são, de certa forma, uma unificação de ambos, tar e cpio. Tem sido exigido que o pax esteja presente em sistemas compatíveis com a "LSB" desde a versão 3.0 da "LSB". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3719]http://www.mirbsd.org/MirOS/dist/mir/cpio/paxmirabilis-202408 17.tgz * Transferência (FTP): * 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 Instalação do "Pax" Instale o "pax" executando os seguintes comandos:. Nota Esse pacote expande para o diretório pax. bash Build.sh Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) root: Nota Esse pacote também cria links rígidos a partir do pax para os aplicativos cpio e tar no diretório de construção. Os(As) editores(as) do LFS não recomendam que eles sejam instalados, pois sobrescreverão as versões "GNU" desses aplicativos. install -v pax /usr/bin && install -v -m644 pax.1 /usr/share/man/man1 Conteúdo Aplicativo Instalado: pax Descrições Curtas pax copia arquivos de e para arquivamentos em vários formatos pciutils-3.13.0 Introdução ao "PCI Utils" O pacote PCI Utils contém um conjunto de aplicativos para listar dispositivos "PCI", inspecionar a situação deles e configurar os registros de configuração deles. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3720]https://mj.ucw.cz/download/linux/pci/pciutils-3.13.0.tar.gz * Transferência (FTP): * Soma de verificação MD5 da transferência: 1edb865de7a2de84e67508911010091b * Tamanho da transferência: 660 KB * Espaço em disco estimado exigido: 4,9 MB * Tempo de construção estimado: menos que 0,1 UPC Dependências do "PCI Utils" Recomendadas [3721]hwdata-0.392 (tempo de execução) Instalação do "PCI Utils" Evite a instalação do arquivo pci.ids para evitar um conflito com o pacote [3722]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 [3723]hwdata-0.392 para o arquivo pci.ids. Explicações do Comando SHARED=yes: Esse parâmetro habilita a construção da biblioteca compartilhada em vez da estática. Conteúdo Aplicativos Instalados: lspci, pcilmr e setpci Biblioteca Instalada: libpci.so Diretório Instalado: /usr/include/pci Descrições Curtas lspci é um utilitário para exibir informações relativas a todos os barramentos "PCI" no sistema e todos os dispositivos conectados a eles pcilmr é um utilitário para gerenciar links PCIe setpci é um utilitário para consultar e configurar dispositivos "PCI" libpci.so é uma biblioteca que permite que aplicativos acessem o subsistema PCI pm-utils-1.4.1 Introdução aos Utilitários de Gerenciamento de Eletricidade Os Utilitários de Gerenciamento de Eletricidade fornecem ferramentas simples de linha de comando do shell para suspender e hibernar o computador. Eles podem ser usados para executar scripts fornecidos pelo(a) usuário(a) na suspensão e na retomada. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3724]https://pm-utils.freedesktop.org/releases/pm-utils-1.4.1.tar. gz * Transferência (FTP): * 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 Transferências Adicionais * Remendo exigido: [3725]https://www.linuxfromscratch.org/patches/blfs/12.3/pm-utils-1 .4.1-bugfixes-1.patch Dependências dos Utilitários de Gerenciamento de Eletricidade Opcionais [3726]xmlto-0.0.29 (para gerar páginas de manual) Opcionais (tempo de execução) [3727]Hdparm-9.65, [3728]Wireless Tools-29, [3729]ethtool e [3730]vbetool Configuração do Núcleo Se necessário, habilite as seguintes opções na configuração do núcleo e recompile o núcleo: Power management and ACPI options ---> [*] Suspend to RAM and standby [SUSPEND] [*] Hibernation (aka 'suspend to disk') [HIBERNATION] Suspender para "RAM" permite que o sistema entre em estados de suspensão nos quais a memória principal é alimentada e, portanto, o conteúdo dela é preservado. O método corta a eletricidade da maioria das partes da máquina, exceto a "RAM". Devido à grande economia de eletricidade, é aconselhável para "laptops" para entrarem automaticamente nesse modo quando o computador estiver funcionando com baterias e a tampa estiver fechada (ou o(a) usuário(a) estiver inativo(a) por algum tempo). Suspender no disco (hibernação) salva o estado da máquina no espaço de troca e desliga completamente a máquina. Quando a máquina for ligada, o estado é restaurado. Até então, existe consumo zero de eletricidade. A suspensão para "RAM" e a hibernação são normalmente apropriadas para dispositivos portáteis, como "laptops", mas podem ser usadas em estações de trabalho. A capacidade não é realmente apropriada para servidores. Para usar a hibernação, o parâmetro do núcleo "resume=/dev/" tem de ser usado na linha de comando do núcleo (no "grub.cfg"). A partição de troca deveria ser, pelo menos, do tamanho da "RAM" física no sistema. Instalação dos Utilitários de Gerenciamento de Eletricidade Primeiro, corrija vários defeitos e algumas incompatibilidades com núcleos mais recentes: patch -Np1 -i ../pm-utils-1.4.1-bugfixes-1.patch Instale os Utilitários de Gerenciamento de Eletricidade executando os seguintes comandos: ./configure --prefix=/usr \ --sysconfdir=/etc \ --docdir=/usr/share/doc/pm-utils-1.4.1 && make Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) root: make install Se você não tiver [3731]xmlto-0.0.29 instalado, [então] copie as páginas de manual pré geradas, como o(a) usuário(a) root: install -v -m644 man/*.1 /usr/share/man/man1 && install -v -m644 man/*.8 /usr/share/man/man8 && ln -sv pm-action.8 /usr/share/man/man8/pm-suspend.8 && ln -sv pm-action.8 /usr/share/man/man8/pm-hibernate.8 && ln -sv pm-action.8 /usr/share/man/man8/pm-suspend-hybrid.8 Configurando os Utilitários de Gerenciamento de Eletricidade A funcionalidade de suspensão ou retomada pode ser facilmente modificada instalando-se arquivos no diretório /etc/pm/sleep.d. Esses arquivos, conhecidos como ganchos, são executados quando o sistema for colocado em um estado de suspensão ou retomado. Os ganchos padrão estão localizados em /usr/lib/pm-utils/sleep.d, e os ganchos de usuário(a) deveriam ser colocados em /etc/pm/sleep.d. Veja-se a página de manual [3732]pm-action(8) para mais informações. Para a finalidade de usar a hibernação com GRUB e uma partição de troca, você precisa adicionar o parâmetro do núcleo resume=partição_de_troca (por exemplo, resume=/dev/sda1) à linha do núcleo no arquivo de configuração /boot/grub/grub.cfg. Conteúdo Aplicativos Instalados: on_ac_power, pm-hibernate, pm-is-supported, pm-powersave, pm-suspend e pm-suspend-hybrid Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /etc/pm, /usr/lib/pm-utils e /usr/share/doc/pm-utils-1.4.1 Descrições Curtas on_ac_power é um script que determina se o sistema está funcionando com eletricidade "CA" (em vez de uma bateria) pm-hibernate é um link simbólico para o script "pm-action" que coloca o computador no modo de hibernação (o sistema é totalmente desligado e o estado do sistema é salvo no disco) pm-is-supported é um script que verifica se os recursos de gerenciamento de eletricidade, como suspensão e hibernação, são suportados pm-powersave é um script que coloca o computador no modo de economia de eletricidade (baixo consumo de eletricidade) pm-suspend é um link simbólico para o script "pm-action" que coloca o computador no modo de suspensão (a maioria dos dispositivos é desligada e o estado do sistema é salvo na "RAM") pm-suspend-hybrid é um link simbólico para o script "pm-action" que coloca o computador no modo de suspensão híbrida (o sistema faz tudo o que precisa para hibernar, mas suspende em vez de desligar) Power-profiles-daemon-0.30 Introdução ao Power-profiles-daemon O pacote Power-profiles-daemon fornece um programa que permite a modificação do estado de eletricidade/comportamento do sistema. Isso é usado em muitos laptops e pode ser usado por um ambiente de área de trabalho para ativar a economia de eletricidade ou controladores de desempenho da CPU por meio do dbus. Em outros sistemas, o Power-profiles-daemon pode ser usado como uma forma simplificada para configurar o controladores da CPU para a finalidade de aumentar o desempenho do sistema ao custo do uso de eletricidade. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3733]https://gitlab.freedesktop.org/upower/power-profiles-daemon/- /archive/0.30/power-profiles-daemon-0.30.tar.gz * Transferência (FTP): * 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) Dependências do Power-profiles-daemon Exigidas [3734]Polkit-126, [3735]PyGObject-3.50.0 (pycairo não é necessário) e [3736]UPower-1.90.7 Opcionais [3737]GTK-Doc-1.34.0, Os restos são para os testes, [3738]dbusmock-0.34.3, [3739]umockdev-0.19.1, [3740]isort e [3741]mccabe Configuração do Núcleo Habilite as seguintes opções na configuração do núcleo e recompile o núcleo se necessário: Power management and ACPI options ---> CPU Frequency scaling ---> -*- CPU Frequency scaling [CPU_FREQ] -*- 'performance' governor [CPU_FREQ_GOV_PERFORMANCE] <*/M> 'powersave' governor [CPU_FREQ_GOV_POWERSAVE] # Select if CPU is Intel: [ /*] Intel P state control [X86_INTEL_PSTATE] # Select if CPU is AMD: [ /*] AMD Processor P-State driver [X86_AMD_PSTATE] Device Drivers ---> # Some drivers under this submenu provide "platform profile" support # and power-profiles-daemon can take advantage from platform profiles; # select a driver if suitable for your platform: [ /*] X86 Platform Specific Device Drivers ---> [X86_PLATFORM_DEVICES] Selecione as sub opções apropriadas que aparecem quando as opções acima são selecionadas. Tanto quanto possível, o esquema deveria ser o mesmo dos menus de configuração do núcleo. Instalação do Power-profiles-daemon Instale Power-profiles-daemon executando os seguintes comandos: mkdir build && cd build && meson setup \ --prefix=/usr \ --buildtype=release \ -D gtk_doc=false \ -D tests=false \ -D systemdsystemunitdir=/tmp \ .. && ninja Se você tiver instalado as dependências externas, para testar os resultados, emita: ninja test. Agora, como o(a) usuário(a) root: ninja install Agora, limpe uma unidade do systemd desnecessária instalada em /tmp: rm -fv /tmp/power-profiles-daemon.service Crie um diretório exigido para estados persistentes de eletricidade depois de reinicialização: install -vdm755 /var/lib/power-profiles-daemon Explicações do Comando -D gtk_doc=false: Impede construir a documentação. Remova isso se você tiver o GTK-Doc instalado e desejar construir a documentação. -D tests=false: Impede construir os testes porque eles não podem ser executados dentro dos limites do BLFS. Remova isso se você tiver instalado as dependências externas e desejar executar os testes. -D systemdsystemunitdir=/tmp: Remove a dependência em relação ao systemd. Configurando Power-profiles-daemon Conjunto de Comandos Sequenciais de Inicialização Para iniciar automaticamente o power-profiles-daemon quando o sistema for reinicializado, instale o conjunto de comandos sequenciais de inicialização /etc/rc.d/init.d/power-profiles-daemon, a partir do [3742]blfs-bootscripts-20250225, como o(a) usuário(a) root: make install-power-profiles-daemon Selecione um Perfil de Eletricidade Para listar todos os perfis de eletricidade suportados, emita: powerprofilesctl Para ativar um perfil de eletricidade (por exemplo performance), emita: powerprofilesctl set performance Alguns ambientes de área de trabalho (por exemplo GNOME e KDE) também fornecem uma interface gráfica para interagir com power-profiles-daemon e ativar um perfil de eletricidade. O perfil de eletricidade ativado é automaticamente armazenado em /var/lib/power-profiles-daemon/state.ini e power-profiles-daemon irá lê-lo e ativá-lo novamente na próxima inicialização se o conjunto de comandos sequenciais de inicialização estiver instalado como acima. Conteúdo Aplicativo Instalado: powerprofilesctl Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: Nenhum(a) Descrições Curtas powerprofilesctl Isso permite que o(a) usuário(a) configure o regulador de eletricidade da CPU. Raptor-2.0.16 Introdução ao "Raptor" Raptor é uma biblioteca C que fornece um conjunto de analisadores e serializadores que geram triplos "Resource Description Framework" ("RDF"). Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3743]https://download.librdf.org/source/raptor2-2.0.16.tar.gz * Transferência (FTP): * Soma de verificação MD5 da transferência: 0a71f13b6eaa0a04bf411083d89d7bc2 * Tamanho da transferência: 1,7 MB * Espaço em disco estimado exigido: 25 MB (adicionais 2 MB para os testes) * Tempo de construção estimado: 0,1 UPC (adicionais 0,3 UPC para os testes) Dependências do "Raptor" Exigidas [3744]cURL-8.12.1 e [3745]libxslt-1.1.42 Opcionais [3746]GTK-Doc-1.34.0, [3747]ICU-76.1 e [3748]libyajl Instalação do "Raptor" Primeiro, corrija uma incompatibilidade com libxml2-2.11.x: sed -i 's/20627/20627 \&\& LIBXML_VERSION < 21100/' src/raptor_libxml.c Instale Raptor executando os seguintes comandos: ./configure --prefix=/usr --disable-static && make Para testar os resultados, emita: make check. Vários dos testes de "XML" possivelmente falhem. Agora, como o(a) usuário(a) root: make install Explicações do Comando --disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas. --with-icu-config=/usr/bin/icu-config: Use essa chave se você tiver instalado o [3749]ICU-76.1 e desejar construir o Raptor com suporte a ele. Conteúdo Aplicativos Instalados: rapper Bibliotecas Instaladas: libraptor2.so Diretórios Instalados: /usr/include/raptor2 e /usr/share/gtk-doc/html/raptor2 Descrições Curtas rapper é um utilitário de análise e serialização "RDF" libraptor2.so contém as funções da "API" do Raptor Rasqal-0.9.33 Introdução ao "Rasqal" Rasqal é uma biblioteca C que lida com sintaxes de linguagem de consulta "Resource Description Framework" ("RDF"), construção de consultas e execução de consultas que retornam resultados como ligações, booleanos, gráficos/triplos "RDF" ou sintaxes. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3750]https://download.librdf.org/source/rasqal-0.9.33.tar.gz * Transferência (FTP): * Soma de verificação MD5 da transferência: 1f5def51ca0026cd192958ef07228b52 * Tamanho da transferência: 1,6 MB * Espaço em disco estimado exigido: 22 MB (4 MB adicionais para os testes) * Tempo de construção estimado: 0,3 UPC (0,7 UPC adicionais para os testes) Dependências do "Rasqal" Exigidas [3751]Raptor-2.0.16 Opcionais [3752]libgcrypt-1.11.0 Instalação do "Rasqal" Instale Rasqal executando os seguintes comandos: ./configure --prefix=/usr --disable-static && make Para testar os resultados, emita: make check. Agora, como o(a) usuário(a) root: make install Explicações do Comando --disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas. Conteúdo Aplicativos Instalados: rasqal-config e roqet Biblioteca Instalada: librasqal.so Diretórios Instalados: /usr/include/rasqal e /usr/share/gtk-doc/html/rasqal Descrições Curtas rasqal-config é um utilitário para recuperar as opções de instalação do Rasqal roqet é um utilitário de consulta "RDF" Redland-1.0.17 Introdução ao "Redland" Redland é um conjunto de bibliotecas C de software livre que fornece suporte para o "Resource Description Framework" ("RDF"). Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3753]https://download.librdf.org/source/redland-1.0.17.tar.gz * Transferência (FTP): * Soma de verificação MD5 da transferência: e5be03eda13ef68aabab6e42aa67715e * Tamanho da transferência: 1,6 MB * Espaço em disco estimado exigido: 18 MB * Tempo de construção estimado: 0,2 UPC Dependências do "Redland" Exigidas [3754]Rasqal-0.9.33 Opcionais [3755]SQLite-3.49.1, [3756]MariaDB-11.4.5 ou [3757]MySQL, [3758]PostgreSQL-17.4, [3759]Berkeley DB (obsoleto) [3760]libiodbc, [3761]virtuoso e [3762]3store Instalação do "Redland" Instale Redland executando os seguintes comandos: ./configure --prefix=/usr --disable-static && make Para testar os resultados, emita make check. Agora, como o(a) usuário(a) root: make install Explicações do Comando --disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas. Conteúdo Aplicativos Instalados: rdfproc, redland-config e redland-db-upgrade Bibliotecas Instaladas: librdf.so e /usr/lib/redland/librdf_storage_*.so Diretórios Instalados: /usr/lib/redland, /usr/share/gtk-doc/html/redland e /usr/share/redland Descrições Curtas rdfproc é o utilitário do processador de "RDF" "Redland" redland-config é um script para obter informações relativas à versão instalada do "Redland" redland-db-upgrade atualiza bases de dados "Redland" mais antigas para o formato 0.9.12 sg3_utils-1.48 Introdução ao "sg3_utils" O pacote sg3_utils contém utilitários de baixo nível para dispositivos que usam um conjunto de comandos "SCSI". Além dos dispositivos de interface paralela "SCSI" ("SPI"), o conjunto de comandos "SCSI" é usado por dispositivos "ATAPI" (CD/DVDs e fitas), dispositivos de armazenamento em massa "USB", discos de Canal de Fibra, dispositivos de armazenamento "IEEE" 1394 (que usam o protocolo "SBP"), Dispositivos "SAS", "iSCSI" e "FCoE" (entre outros). Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3763]https://sg.danny.cz/sg/p/sg3_utils-1.48.tar.xz * Transferência (FTP): * Soma de verificação MD5 da transferência: 0024393d2d2942cc081ce613d98db68a * Tamanho da transferência: 1,2 MB * Espaço em disco estimado exigido: 27 MB * Tempo de construção estimado: 0,2 UPC Instalação do "sg3_utils" Instale sg3_utils executando os seguintes comandos: ./configure --prefix=/usr --disable-static && make Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) root: make install Explicações do Comando --disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas. Conteúdo Aplicativos Instalados: rescan-scsi-bus.sh, scsi_logging_level, scsi_mandat, scsi_readcap, scsi_ready, scsi_satl, scsi_start, scsi_stop, scsi_temperature, sg_bg_ctl, sg_compare_and_write, sg_copy_results, sg_dd, sg_decode_sense, sg_emc_trespass, sg_format, sg_get_config, sg_get_lba_status, sg_ident, sg_inq, sg_logs, sg_luns, sg_map, sg_map26, sg_modes, sg_opcodes, sg_persist, sg_prevent, sg_raw, sg_rbuf, sg_rdac, sg_read, sg_read_attr, sg_read_block_limits, sg_read_buffer, sg_read_long, sg_readcap, sg_reassign, sg_referrals, sg_rep_pip, sg_rep_zones, sg_requests, sg_reset, sg_reset_wp, sg_rmsn, sg_rtpg, sg_safte, sg_sanitize, sg_sat_identify, sg_sat_phy_event, sg_sat_read_gplog, sg_sat_set_features, sg_scan, sg_seek, sg_senddiag, sg_ses, sg_ses_microcode, sg_start, sg_stpg, sg_stream_ctl, sg_sync, sg_test_rwbuf, sg_timestamp, sg_turs, sg_unmap, sg_verify, sg_vpd, sg_wr_mode, sg_write_buffer, sg_write_long, sg_write_same, sg_write_verify, sg_write_x, sg_xcopy, sg_zone, sginfo, sgm_dd e sgp_dd Biblioteca Instalada: libsgutils2.so Diretórios Instalados: Nenhum(a) Descrições Curtas rescan-scsi-bus.sh adiciona ou remove dispositivos "SCSI" sem precisar reinicializar scsi_logging_level acessa informações de nível de registro "SCSI" do Linux scsi_mandat verifica o suporte do dispositivo "SCSI" para comandos obrigatórios scsi_readcap faz o comando "SCSI READ CAPACITY" em discos scsi_ready faz o "SCSI TEST UNIT READY" em dispositivos scsi_satl verifica o suporte de tradução "SCSI" para "ATA" (SAT) do dispositivo scsi_start inicia um ou mais discos "SCSI" scsi_stop interrompe um ou mais discos "SCSI" scsi_temperature busca a temperatura de um dispositivo "SCSI" sg_bg_ctl realiza um comando "SCSI BACKGROUND CONTROL" em um dispositivo para realizar "operações avançadas em segundo plano" sg_compare_and_write envia o comando "SCSI COMPARE AND WRITE" para o dispositivo sg_copy_results envia o comando "SCSI RECEIVE COPY RESULTS" (relacionado ao "XCOPY") sg_dd copia dados de e para arquivos e dispositivos. Especializado para dispositivos que entendem o conjunto de comandos "SCSI" sg_decode_sense pega dados de detecção "SCSI" em binário ou como uma sequência de bytes hexadecimais "ASCII" e os decodifica sg_emc_trespass muda a titularidade de propriedade de um "LUN" de outro processador de serviço para este sg_format formata ou redimensiona um disco "SCSI" (talvez mude o tamanho de bloco dele) sg_get_config envia um comando "SCSI GET CONFIGURATION" ("MMC-4 +") sg_get_elem_status envia um comando "SCSI GET PHYSICAL ELEMENT STATUS" para um dispositivo sg_get_lba_status envia o comando "SCSI GET LBA STATUS" sg_ident envia um comando "SCSI REPORT" ou "SET IDENTIFYING INFORMATION" sginfo acessa informações da página de modo para um dispositivo "SCSI" (ou "ATAPI") sg_inq envia um comando "SCSI INQUIRY" ou "ATA IDENTIFY (PACKET) DEVICE" e gera a resposta sg_logs acessa páginas de registro com o comando "SCSI LOG SENSE" sg_luns envia o comando "SCSI REPORT LUNS" sg_map exibe o mapeamento entre o "sg" do Linux e outros dispositivos "SCSI" sg_map26 mapeia um arquivo especial para um dispositivo "SCSI" genérico (sg) (ou vice-versa) sgm_dd copia dados de e para arquivos e dispositivos. Especializado para dispositivos que entendem o conjunto de comandos "SCSI" e fazem transferências mapeadas na memória a partir de dispositivos "sg" sg_modes lê páginas de modo com o comando "SCSI MODE SENSE" sg_opcodes informa informações relativas a comandos suportados "SCSI" ou funções de gerenciamento de tarefas sgp_dd copia dados de e para arquivos e dispositivos. Especializado para dispositivos que entendem o conjunto de comandos "SCSI" sg_persist envia um comando "SCSI PERSISTENT RESERVE (IN ou OUT)" para manipular registros e reservas sg_prevent envia um comando "SCSI PREVENT ALLOW MEDIUM REMOVAL" sg_raw envia um comando "SCSI" arbitrário para um dispositivo sg_rbuf lê dados usando o comando "SCSI READ BUFFER" sg_rdac exibe ou modifica a página do controlador redundante "RDAC" sg_read lê blocos de dados continuamente a partir do mesmo deslocamento sg_read_attr realiza um comando "SCSI READ ATTRIBUTE" em um dispositivo sg_read_block_limits envia um comando "SCSI READ BLOCK LIMITS" sg_read_buffer envia um comando "SCSI READ BUFFER" sg_readcap envia um comando "SCSI READ CAPACITY" sg_read_long envia um comando "SCSI READ LONG" sg_reassign envia um comando "SCSI REASSIGN BLOCKS" sg_referrals envia um comando "SCSI REPORT REFERRALS" sg_rep_pip envia um comando "SCSI REPORT PROVISIONING INITIALIZATION PATTERN" sg_rep_zones envia um comando "SCSI REPORT ZONES" sg_requests envia um ou mais comandos "SCSI REQUEST SENSE" sg_reset envia uma redefinição de dispositivo, destino, barramento ou anfitrião "SCSI"; ou verifica o estado de redefinição sg_reset_wp envia um comando "SCSI RESET WRITE POINTER" sg_rmsn envia um comando "SCSI READ MEDIA SERIAL NUMBER" sg_rtpg envia um comando "SCSI REPORT TARGET PORT GROUPS" sg_safte busca informações de situação a partir de um dispositivo "SCSI" "Accessed Fault-Tolerant Enclosure" ("SAF-TE") sg_sanitize envia um comando "SCSI SANITIZE" sg_sat_identify envia um comando "ATA IDENTIFY (PACKET) DEVICE" por meio de uma camada de tradução "SCSI" para "ATA" ("SAT") sg_sat_phy_event envia um comando "ATA READ LOG EXT" por meio de uma passagem "SAT" para buscar a página de registro "11h" a qual contém contadores de eventos físicos "SATA" sg_sat_read_gplog envia um comando "ATA READ LOG EXT" por meio de uma camada de tradução "SCSI" para "ATA" ("SAT") sg_sat_set_features envia um comando "ATA SET FEATURES" por meio de uma camada de tradução "SCSI" para "ATA" ("SAT") sg_scan faz uma varredura de dispositivos "sg" (ou dados dispositivos "SCSI"/"ATAPI"/"ATA") e imprime os resultados sg_seek realiza um comando "SCSI SEEK" ou "PRE-FETCH" em um dispositivo e o cache dele sg_senddiag realiza um comando "SCSI SEND DIAGNOSTIC" sg_ses envia controles e busca a situação atual a partir de um dispositivo "SCSI Enclosure Services" ("SES") sg_ses_microcode envia microcódigo para um gabinete "SCSI" sg_start envia um comando "SCSI START STOP UNIT" para iniciar, parar, carregar ou ejetar o meio sg_stpg envia um comando "SCSI SET TARGET PORT GROUPS" sg_stream_ctl realiza um comando "SCSI STREAM CONTROL" ou "GET STREAM STATUS" em um dispositivo para abrir ou fechar um fluxo de Entrada/Saída sg_sync envia um comando "SCSI" para sincronizar o cache sg_test_rwbuf testa o adaptador "SCSI" do anfitrião emitindo operações de gravação e leitura no "buffer" de um dispositivo e calculando somas de verificação sg_timestamp informa ou configura o carimbo de tempo em um dispositivo "SCSI" sg_turs envia um ou mais comandos "SCSI TEST UNIT READY" sg_unmap envia um comando "SCSI UNMAP" sg_verify invoca comando(s) "SCSI VERIFY" em um dispositivo de bloco sg_vpd busca páginas de dados vitais do produto ("VPD") usando um comando "SCSI INQUIRY" sg_write_buffer envia um comando "SCSI WRITE BUFFER" sg_write_long envia um comando "SCSI WRITE LONG" sg_write_same envia um comando "SCSI WRITE SAME" sg_write_verify envia um comando "SCSI WRITE AND VERIFY" sg_write_x realiza comandos "SCSI WRITE" em um dispositivo sg_wr_mode escreve páginas de modo sg_xcopy copia dados de e para arquivos e dispositivos usando "SCSI EXTENDED COPY" ("XCOPY") sg_zone realiza comandos "SCSI ZONE" em um dispositivo, tais como "OPEN", "CLOSE", "FINISH" ou "SEQUENTIALIZE" libsgutils2.so contém as funções de "API" do sg3_utils sysmond-1.0.0 Introdução ao sysmond O pacote sysmond (pronuncia-se sys-mon-d) é a parte de processo de segundo plano do aplicativo cliente/servidor sysmond/sysmon3 que monitora valores do sistema, incluindo uso de CPU, uso de memória e temperaturas do sistema em uma janela de tela compacta. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3764]https://github.com/lfs-book/sysmond/releases/download/sysmond -1.0.0/sysmond-1.0.0.tar.xz * Transferência (FTP): * 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 Configuração do Núcleo Existem muitos dispositivos de hardware que detectam temperaturas. As leituras de temperatura são atualizadas por controladores do núcleo que suportam dispositivos específicos. Para determinar quais dispositivos estão presentes em um sistema, o pacote [3765]lm-sensors-3-6-0 tem um conjunto de comandos sequenciais Perl, sensors-detect, que consegue procurar por dispositivos específicos que estão no sistema atual. Depois dos dispositivos sensores serem conhecidos, o controlador apropriado de núcleo precisa ser habilitado. Em muitos casos, mas não em todos, os controladores apropriados serão selecionados por padrão. Os parâmetros de configuração do núcleo estão localizados em: Device Drivers ---> Networking options ---> [*] Hardware Monitoring support ---> [CONFIG_HWMON] Na maioria dos casos, pelo menos o sensor de temperatura Intel Core/Core2/Atom (SENSORS_CORETEMP) deveria estar habilitado para sistemas baseados em Intel ou CONFIG_SENSORS_K10TEMP (AMD) deveria estar habilitado para sistemas baseados em AMD. Instalação do sysmond Instale sysmond executando os seguintes comandos: make Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) root: make install Configurando sysmond Conjunto de Comandos Sequenciais de Inicialização Instale o conjunto de comandos sequenciais de iniciação /etc/rc.d/init.d/sysmond incluído no pacote [3766]blfs-bootscripts-20250225. make install-sysmond Arquivo de Configuração Por padrão, o arquivo de configuração é /etc/sysmond.conf, mas ele pode ser mudado passando-se --config-file na linha de comando. Inicialmente, todos os itens de configuração estão comentados e os padrões especificados ali serão usados. Conteúdo Aplicativos Instalados: sysmond Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: Nenhum(a) sysmon3-3.0.1 Introdução ao sysmon3 O pacote sysmon3 (pronuncia-se sys-mon-3) é a parte cliente do aplicativo cliente/servidor sysmond/sysmon3 que monitora valores do sistema, incluindo uso de CPU, uso de memória e temperaturas do sistema em uma janela de tela compacta. Múltiplas instâncias do sysmon3 podem ser executadas em um sistema para monitorar valores em sistemas diferentes. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3767]https://github.com/lfs-book/sysmon3/releases/download/sysmon3 -3.0.1/sysmon3-3.0.1.tar.xz * Transferência (FTP): * 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 Dependências do sysmon3 Exigidas [3768]Qt-6.8.2 (ou qt5) Exigidas em tempo de execução [3769]sysmond-1.0.0 (tempo de execução no sistema a ser monitorado) Instalação do sysmon3 Instale sysmon3 executando os seguintes comandos: qmake sysmon3.pro && make Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) root: install -vm755 sysmon3 /usr/bin Configurando sysmon3 Arquivos de Configuração $HOME/.config/LinuxFromScratch/.conf Os arquivos de configuração são criados em tempo de execução para cada sistema sendo monitorado. Eles normalmente não são atualizados manualmente, mas são gerenciados pelas pequenas engenhocas de configuração do programa. Quando da primeira execução, o programa solicita o sistema a ser monitorado. Depois de testar se a comunicação com o servidor está satisfatória e se o nome do servidor está salvo, a janela principal iniciará. Depois da configuração inicial, a pequena engenhoca de configuração pode ser contornada passando-se o nome do servidor como um argumento para o programa. O programa é projetado para ocupar o mínimo de espaço na tela, de forma que, por padrão, ele não tem um quadro. O quadro pode ser ligado e desligado com Ctrl-F. Isso pode ser útil para colocar a janela no local desejado. Depois do posicionamento inicial, o local será salvo no arquivo de configuração para a próxima vez que o programa for iniciado. Um menu curto de operação é exibido com um clique direito do mouse na janela principal. Pequenas engenhocas de configuração são exibidas com F1. Conteúdo Aplicativos Instalados: sysmon3 Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: $HOME/.config/LinuxFromScratch/ Sysstat-12.7.7 Introdução ao "Sysstat" O pacote Sysstat contém utilitários para monitorar o desempenho do sistema e a atividade de uso. Sysstat contém o utilitário sar, comum a muitos "Unixes" comerciais, e ferramentas que você pode agendar via "cron" para coletar e historizar dados de desempenho e atividades. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3770]https://sysstat.github.io/sysstat-packages/sysstat-12.7.7.tar .xz * Transferência (FTP): * 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 Dependências do "Sysstat" Não existem requisitos de tempo de construção para esse pacote; entretanto, ele foi projetado para ser controlado por um processo de segundo plano "cron", como o [3771]Fcron-3.2.1. Instalação do "Sysstat" Instale Sysstat executando os seguintes comandos: sa_lib_dir=/usr/lib/sa \ sa_dir=/var/log/sa \ conf_dir=/etc/sysstat \ ./configure --prefix=/usr \ --disable-file-attr && make Esse pacote não vem com uma suíte de teste funcional. Agora, como o(a) usuário(a) root: make install Explicações do Comando sa_lib_dir: Essa variável de ambiente especifica o local do diretório específico do pacote da biblioteca. sa_dir: Essa variável de ambiente especifica o local do diretório que contém os arquivos de dados. conf_dir: Essa variável de ambiente especifica o local do diretório do sistema da configuração. --disable-file-attr: Não configure atributos nos arquivos sendo instalados. Esse parâmetro faz com que a instalação ignore a variável do grupo "man", resultando nos arquivos de manual tendo a titularidade da propriedade root: root. Nota Execute ./configure --help para ver outras variáveis de ambiente influentes que você possa passar para o configure. Você possivelmente queira usar as variáveis history e compressafter para personalizar a quantidade de arquivos de dados mantidos no sistema. Configurando o "Sysstat" Arquivos de Configuração /etc/sysconfig/sysstat e /etc/sysconfig/sysstat.ioconf Informações do "cron" Para começar a coletar informações do histórico do Sysstat, você precisa adicionar ou criar um "crontab" de usuário(a) privilegiado(a). O local dos dados do histórico é /var/log/sa. O(A) usuário(a) que executa os utilitários do Sysstat via "cron" precisa ter acesso de escrita a esse local. Abaixo está um exemplo do que instalar no "crontab". Ajuste os parâmetros para atender às suas necessidades. Use man sa1 e man sa2 para informações a respeito dos comandos. # Informes de atividades das 8h às 19h a cada 10 minutos durante a semana 0 8-18 * * 1-5 /usr/lib/sa/sa1 600 6 & # Informes de atividades das 19h às 8h, a cada hora durante a semana 0 19-7 * * 1-5 /usr/lib/sa/sa1 & # Informes de atividades a cada hora aos sábados e domingos 0 * * * 0,6 /usr/lib/sa/sa1 & # Resumo diário aprontado às 19h05 5 19 * * * /usr/lib/sa/sa2 -A & Certifique-se de submeter o "crontab" revisado ao processo de segundo plano "cron". Informações de Inicialização do Sistema Na inicialização do sistema, uma mensagem LINUX RESTART precisa ser inserida no arquivo diário de dados para reinicializar os contadores do núcleo. Isso pode ser automatizado instalando-se o conjunto de comandos sequenciais de iniciação /etc/rc.d/init.d/sysstat incluído no pacote [3772]blfs-bootscripts-20250225 usando-se o seguinte comando como o(a) usuário(a) root: make install-sysstat Conteúdo Aplicativos Instalados: cifsiostat, iostat, mpstat, pidstat, sadf, sar e tapestat Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /usr/lib/sa, /usr/share/doc/sysstat-12.7.7 e /var/log/sa Descrições Curtas cifsiostat exibe estatísticas relativas a operações de leitura e escrita em sistemas de arquivos "CIFS" iostat informa estatísticas de "CPU" e estatísticas de entrada/saída para dispositivos e partições mpstat escreve atividades para cada processador disponível pidstat é usado para monitorar tarefas individuais atualmente sendo gerenciadas pelo núcleo Linux sadf é usado para exibir o conteúdo dos arquivos de dados criados pelo comando sar. Mas diferentemente do sar, o sadf pode escrever os dados dele em muitos formatos sar é usado para exibir o conteúdo dos contadores de atividades cumulativas eleitos no sistema operacional tapestat é usado para monitorar a atividade de unidades de fita conectadas a um sistema UDisks-2.10.1 Introdução ao "UDisks" O pacote UDisks fornece um processo de segundo plano, ferramentas e bibliotecas para acessar e manipular discos e dispositivos de armazenamento. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3773]https://github.com/storaged-project/udisks/releases/download/ udisks-2.10.1/udisks-2.10.1.tar.bz2 * Transferência (FTP): * 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) Dependências do "UDisks" Exigidas [3774]libatasmart-0.19, [3775]libblockdev-3.3.0, [3776]libgudev-238 e [3777]Polkit-126 Recomendadas [3778]elogind-255.17 Opcionais (Exigidas se construir "GNOME") [3779]GLib-2.82.5 (com GObject Introspection) Opcionais [3780]D-Bus Python-1.3.2 (para os testes de integração), [3781]GTK-Doc-1.34.0, [3782]libxslt-1.1.42 (para as páginas de manual), [3783]LVM2-2.03.30, [3784]PyGObject-3.50.0 (para os testes de integração), [3785]exFAT e [3786]libiscsi Dependências Opcionais de Tempo de Execução [3787]btrfs-progs-6.13, [3788]dbus-1.16.0, [3789]dosfstools-4.2, [3790]gptfdisk-1.0.10, [3791]mdadm-4.3 e [3792]xfsprogs-6.13.0 Instalação do "UDisks" Instale UDisks executando os seguintes comandos: ./configure --prefix=/usr \ --sysconfdir=/etc \ --localstatedir=/var \ --disable-static \ --enable-available-modules && make Para testar os resultados, emita: make check. Um teste mais completo pode ser executado com make ci. Você precisa primeiro criar os diretórios /var/run/udisks2 e /var/lib/udisks2, e os módulos opcionais "python" deveriam estar presente. Agora, como o(a) usuário(a) root: make install Explicações do Comando --disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas. --enable-gtk-doc: Use esse parâmetro se GTK-Doc estiver instalado e você desejar reconstruir e instalar a documentação da API. --enable-available-modules: Essa chave habilita funcionalidades adicionais do UDisks2 se [3793]libblockdev-3.3.0 tiver sido construído com dependências opcionais. Conteúdo Aplicativos Instalados: "udisksctl" e "umount.udisks2" Biblioteca Instalada: libudisks2.so Diretórios Instalados: /etc/udisks2, /usr/include/udisks2, /usr/libexec/udisks2, /usr/share/gtk-doc/html/udisks2 e /var/lib/udisks2 Descrições Curtas udisksctl é um aplicativo de linha de comando usado para interagir com o processo de segundo plano udisksd umount.udisks2 é um aplicativo de linha de comando usado para desmontar sistemas de arquivos que tenham sido montados pelo processo de segundo plano UDisks libudisks2.so contém as funções da "API" do UDisks UnRar-7.1.5 Introdução ao "UnRar" O pacote UnRar contém um utilitário de extração RAR usado para extrair arquivos a partir de arquivamentos RAR. Arquivamentos RAR geralmente são criados com WinRAR, principalmente em um ambiente "Windows". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3794]https://www.rarlab.com/rar/unrarsrc-7.1.5.tar.gz * Transferência (FTP): * Soma de verificação MD5 da transferência: 2cfa06457cf93dacf870da6de2f1c1a1 * Tamanho da transferência: 264 KB * Espaço em disco estimado exigido: 2,7 MB * Tempo de construção estimado: 0,4 UPC Instalação do "UnRar" Nota Esse pacote extrai o "tarball" para o diretório não versionado unrar e não para o diretório esperado unrar-7.1.5. Instale UnRar executando os seguintes comandos: make -f makefile Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) root: install -v -m755 unrar /usr/bin Conteúdo Aplicativo Instalado: unrar Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: Nenhum(a) Descrições Curtas unrar descomprime um arquivamento RAR UPower-1.90.7 Introdução ao "UPower" O pacote UPower fornece uma interface para enumerar dispositivos de eletricidade, ouvir eventos de dispositivos e consultar histórico e estatísticas. Qualquer aplicativo ou serviço no sistema consegue acessar o serviço org.freedesktop.UPower por meio do barramento de mensagens do sistema. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3795]https://gitlab.freedesktop.org/upower/upower/-/archive/v1.90. 7/upower-v1.90.7.tar.bz2 * Transferência (FTP): * 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) Dependências do "UPower" Exigidas [3796]libgudev-238 e [3797]libusb-1.0.27 Opcionais (Exigidas se construir GNOME) [3798]GLib-2.82.5 (com GObject Introspection) Opcionais [3799]GTK-Doc-1.34.0, [3800]libxslt-1.1.42, [3801]docbook-xsl-nons-1.79.2, [3802]PyGObject-3.50.0, [3803]dbusmock-0.34.3, [3804]umockdev-0.19.1 (para parte da suíte de teste) e [3805]libimobiledevice Instalação do "UPower" Instale UPower executando os seguintes comandos: mkdir build && cd build && meson setup .. \ --prefix=/usr \ --buildtype=release \ -D gtk-doc=false \ -D man=false \ -D systemdsystemunitdir=no \ -D udevrulesdir=/usr/lib/udev/rules.d && ninja Para testar os resultados, emita: LC_ALL=C ninja test. A suíte de teste deveria ser executada a partir de uma sessão GUI local iniciada com dbus-launch. Em máquinas de 32 bits, um teste falhará devido a erros de arredondamento: Tests.test_battery_energy_charge_mixed. Em alguns sistemas, dois testes relacionados ao recurso hotplug de fone de ouvido são conhecidos por falharem. Eles podem ser ignorados com segurança, pois a funcionalidade ainda funciona. Agora, como o(a) usuário(a) root: ninja install Explicações do Comando -D gtk-doc=false: Impede construir a documentação. Remova isso se você tiver o GTK-Doc instalado e desejar construir a documentação. -D man=false: Impede construir as páginas de manual. Remova isso se você tiver [3806]libxslt-1.1.42 e [3807]docbook-xsl-nons-1.79.2 instalados e desejar construir as páginas de manual. -D systemdsystemunitdir=no: Remove a dependência do systemd. -D udevrulesdir=/usr/lib/udev/rules.d: Informa ao sistema de construção onde instalar as regras do udev porque as informações estão ausentes em /usr/lib/pkgconfig/libudev.pc Conteúdo Aplicativos Instalados: upower Bibliotecas Instaladas: libupower-glib.so Diretórios Instalados: /etc/UPower, /usr/include/libupower-glib e /var/lib/upower Descrições Curtas upower é a ferramenta de linha de comando UPower libupower-glib.so contém as funções da "API" do UPower usbutils-018 Introdução ao "USB Utils" O pacote USB Utils contém utilitários usados para exibir informações relativas a barramentos "USB" no sistema e os dispositivos conectados a eles. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3808]https://kernel.org/pub/linux/utils/usb/usbutils/usbutils-018. tar.xz * Transferência (FTP): * 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 Dependências do "USB Utils" Exigidas [3809]libusb-1.0.27 Recomendadas [3810]hwdata-0.392 (tempo de execução) Instalação do "USB Utils" Instale USB Utils executando os seguintes comandos: mkdir build && cd build && meson setup .. \ --prefix=/usr \ --buildtype=release && ninja Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) root: ninja install Para o arquivo de dados usb.ids, instale o pacote [3811]hwdata-0.392. O script lsusb.py exibe informações em um formato mais facilmente legível que lsusb. Para encontrar as opções, use lsusb.py -h. Uma forma de uso recomendada pelo(a) desenvolvedor(a) é lsusb.py -ciu. Conteúdo Aplicativos Instalados: lsusb, lsusb.py, usb-devices e usbhid-dump Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: Nenhum(a) Descrições Curtas lsusb é um utilitário para exibir informações relativas a todos os barramentos "USB" no sistema e todos os dispositivos conectados a eles, mas não de forma amigável a humanos(as) lsusb.py exibe informações relativas a todos os barramentos "USB" no sistema e todos os dispositivos conectados a eles em forma razoavelmente amigável a humanos(as) usb-devices é um script de shell que exibe detalhes dos barramentos "USB" e dos dispositivos conectados a eles. Ele foi projetado para ser usado se "/proc/bus/usb/devices" não estiver disponível em seu sistema usbhid-dump é usado para despejar descritores de informes e fluxos a partir de interfaces "HID" (dispositivo de interface humana) de dispositivos "USB" Which-2.23 e Alternativas A presença ou ausência do aplicativo which no livro principal do LFS é provavelmente uma das questões mais controversas nas listas de discussão. Isso resultou em pelo menos uma guerra violenta no passado. Para esperançosamente colocar um fim a isso de uma vez por todas, apresentamos aqui duas opções para equipar seu sistema com which. A questão de qual “which” cabe a você decidir. Introdução ao "GNU Which" A primeira opção é a de instalar o atual pacote GNU which. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3812]https://ftp.gnu.org/gnu/which/which-2.23.tar.gz * Transferência (FTP): * Soma de verificação MD5 da transferência: 1963b85914132d78373f02a84cdb3c86 * Tamanho da transferência: 197 KB * Espaço em disco estimado exigido: 1,2 MB * Tempo de construção estimado: menos que 0,1 UPC Instalação do "Which" Instale which executando os seguintes comandos: ./configure --prefix=/usr && make Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) root: make install Conteúdo Aplicativo Instalado: which Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: Nenhum(a) Descrições Curtas which mostra o caminho completo dos comandos (shell) instalados em seu PATH O Script 'which' A segunda opção (para quem não deseja instalar o pacote) é a de criar um script simples (executar como o(a) usuário(a) root): cat > /usr/bin/which << "EOF" #!/bin/bash type -pa "$@" | head -n 1 ; exit ${PIPESTATUS[0]} EOF chmod -v 755 /usr/bin/which chown -v root:root /usr/bin/which Isso deveria funcionar bem e é provavelmente a solução mais fácil para a maioria dos casos, mas não é a implementação mais abrangente. xdotool-3.20211022.1 Introdução ao xdotool O pacote xdotool fornece os recursos para simular entrada de teclado e atividade de mouse, mover e redimensionar janelas, etc. Ele faz isso usando a extensão XTEST do X11 e outras funções da Xlib. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3813]https://github.com/jordansissel/xdotool/releases/download/v3. 20211022.1/xdotool-3.20211022.1.tar.gz * Transferência (FTP): * 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 Dependências do xdotool Exigidas [3814]Bibliotecas do Xorg Instalação do xdotool Instale xdotool executando os seguintes comandos: make WITHOUT_RPATH_FIX=1 Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) root: make PREFIX=/usr INSTALLMAN=/usr/share/man install Conteúdo Aplicativo Instalado: xdotool Bibliotecas Instaladas: libxdo.so Diretórios Instalados: Nenhum(a) Zip-3.0 Introdução ao "Zip" O pacote Zip contém utilitários Zip. Eles são úteis para comprimir arquivos em arquivamentos ZIP. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3815]https://downloads.sourceforge.net/infozip/zip30.tar.gz * Transferência (FTP): * Soma de verificação MD5da transferência: 7b74551e63f8ee6aab6fbc86676c0d37 * Tamanho da transferência: 1,1 MB * Espaço em disco estimado exigido: 6,4 MB * Tempo de construção estimado: 0,1 UPC Instalação do "Zip" Instale Zip executando os seguintes comandos: make -f unix/Makefile generic CC="gcc -std=gnu89" Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) root: make prefix=/usr MANDIR=/usr/share/man/man1 -f unix/Makefile install Explicações do Comando CC="gcc -std=gnu89": Esse parâmetro substitui a variável CC que é configurada como cc no arquivo unix/Makefile. No LFS, cc é um link simbólico para gcc e usa -std=gnu17 (ISO 9899:2017 com extensões GNU) como padrão, mas Zip é um pacote “legado” onde algumas construções gramaticais são inválidas no ISO 9899:1999 e usos comuns mais recentes. prefix=/usr: Esse parâmetro substitui a variável prefix que está configurada como /usr/local no arquivo unix/Makefile. Conteúdo Aplicativos Instalados: zip, zipcloak, zipnote e zipsplit Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: Nenhum(a) Descrições Curtas zip comprime arquivos em um arquivamento ZIP zipcloak é um utilitário para encriptar e desencriptar um arquivamento ZIP zipnote lê ou escreve comentários armazenados em um arquivo ZIP zipsplit é um utilitário para dividir arquivos ZIP em arquivos menores Capítulo 13. Programação Um sistema LFS básico pode ser usado como uma plataforma de desenvolvimento, porém o sistema básico inclui somente suporte de linguagem para C, C++, Perl e Python. Esse capítulo fornece instruções para construir muitos ambientes de programação populares para expandir significativamente as capacidades de desenvolvimento do seu sistema. cargo-c-0.10.11 Introdução ao cargo-c O pacote cargo-c cria um sub comando cargo para construir e instalar bibliotecas dinâmicas e estáticas compatíveis com C-ABI. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3816]https://github.com/lu-zero/cargo-c/archive/v0.10.11/cargo-c-0 .10.11.tar.gz * Transferência (FTP): * 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 Dependências do cargo-c Exigidas [3817]rustc-1.85.0 Recomendadas [3818]libssh2-1.11.1 e [3819]SQLite-3.49.1 Nota Uma conexão com a Internet é necessária para construir esse pacote. A loja de certificados do sistema possivelmente precise ser configurada com [3820]make-ca-1.15 antes de se construir esse pacote Instalação do cargo-c Primeiro, baixe um arquivo para garantir que cargo use as versões de dependência especificadas pelos(as) desenvolvedores(as) do fluxo de desenvolvimento quando essa versão cargo-c (0.10.11) foi lançada. Sem isso, as versões mais recentes das dependências seriam usadas e elas poderiam causar quebras: curl -LO https://github.com/lu-zero/cargo-c/releases/download/v0.10.11/Cargo.loc k Nota Normalmente, nós colocaríamos essa transferência em uma seção “Transferências Adicionais”. Mas, nesse caso, não podemos dizer o nome e a versão do pacote a partir do nome do arquivo Cargo.lock, de forma que é melhor não colocar o arquivo ambiguamente nomeado fora do diretório cargo-c-0.10.11. Nós usamos curl aqui porque o pacote [3821]cURL-8.12.1 deveria ter sido instalado como uma dependência exigida do [3822]rustc-1.85.0. A soma de verificação MD5 do arquivo deveria ser d39f6c60470dc6aff66fac7a86b6b261. Instale cargo-c executando os seguintes comandos: [ ! -e /usr/include/libssh2.h ] || export LIBSSH2_SYS_USE_PKG_CONFIG=1 && [ ! -e /usr/include/sqlite3.h ] || export LIBSQLITE3_SYS_USE_PKG_CONFIG=1 && cargo build --release Para testar os resultados, emita: cargo test --release. Agora, como o(a) usuário(a) root: install -vm755 target/release/cargo-{capi,cbuild,cinstall,ctest} /usr/bin/ Conteúdo Aplicativos Instalados: cargo-capi, cargo-cbuild, cargo-cinstall e cargo-ctest Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: Nenhum(a) Cbindgen-0.28.0 Introdução ao "Cbindgen" Cbindgen pode ser usado para gerar ligações C para código Rust. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3823]https://github.com/mozilla/cbindgen/archive/v0.28.0/cbindgen- 0.28.0.tar.gz * Transferência (FTP): * Soma de verificação MD5 da transferência: 0712d991fc8e65121924265d738db71d * Tamanho da transferência: 232 KB * Espaço em disco estimado exigido: 121 MB (adicionar 600 MB para testes) * Tempo de construção estimado: 0,5 UPC (adicionar 0,4 UPC para testes), ambos em uma máquina de 4 núcleos Dependências do "cbindgen" Exigidas [3824]rustc-1.85.0 Nota Uma conexão com a Internet é necessária para construir esse pacote. A loja de certificados do sistema possivelmente precise ser configurada com [3825]make-ca-1.15 antes de se construir esse pacote Instalação do "cbindgen" Instale cbindgen executando os seguintes comandos: cargo build --release Para testar os resultados, emita: cargo test --release. Três testes em profile.rs são conhecidos por falharem porque eles esperam alguns recursos instáveis da Rust desabilitados no na configuração de [3826]rustc-1.85.0 do BLFS. Agora, como o(a) usuário(a) root: install -Dm755 target/release/cbindgen /usr/bin/ Conteúdo Aplicativo Instalado: cbindgen Biblioteca Instalada: nenhum(a) Diretório Instalado: nenhum(a) Descrições Curtas cbindgen gera ligações C para código Rust Clisp-2.49 Introdução ao "Clisp" GNU Clisp é uma implementação "Common Lisp" que inclui um interpretador, compilador, depurador e muitas extensões. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3827]https://ftp.gnu.org/gnu/clisp/latest/clisp-2.49.tar.bz2 * Transferência (FTP): * Soma de verificação MD5 da transferência: 1962b99d5e530390ec3829236d168649 * Tamanho da transferência: 7,8 MB * Espaço em disco estimado exigido: 163 MB (adicionar 8 MB para os testes) * Tempo de construção estimado: 0,9 UPC (1,2 UPC com os testes) Transferências Adicionais * Remendo opcional: [3828]https://www.linuxfromscratch.org/patches/blfs/12.3/clisp-2.49 -readline7_fixes-1.patch (exigido se construir contra a "libffcall") Dependências do "Clisp" Recomendadas [3829]libsigsegv-2.14 Opcionais [3830]libnsl-2.0.1 e [3831]libffcall Instalação do "Clisp" Nota Esse pacote não suporta construção paralela. Se você estiver construindo em um sistema de 32 bits, [então] contorne um defeito no "GCC" causado pela versão mais recente do "binutils": case $(uname -m) in i?86) export CFLAGS="${CFLAGS:--O2 -g} -falign-functions=4" ;; esac Remova dois testes que falham por motivos desconhecidos: sed -i -e '/socket/d' -e '/"streams"/d' tests/tests.lisp Instale Clisp executando os seguintes comandos: Se você estiver construindo clisp contra a libffcall, [então] aplique o remendo para corrigir uma falha de construção com a readline atual: patch -Np1 -i ../clisp-2.49-readline7_fixes-1.patch Instale Clisp executando os seguintes comandos: mkdir build && cd build && ../configure --srcdir=../ \ --prefix=/usr \ --docdir=/usr/share/doc/clisp-2.49 \ --with-libsigsegv-prefix=/usr && ulimit -S -s 16384 && make -j1 Para testar os resultados, emita: make check. Agora, como o(a) usuário(a) root: make install Explicações do Comando ulimit -S -s 16384: isso aumenta o tamanho máximo da pilha, conforme recomendado pelo configure. --docdir=/usr/share/doc/clisp-2.49: essa chave força a documentação HTML ser instalada em um diretório versionado em vez de no /usr/share/html/. --with-libsigsegv-prefix=/usr: use isso para informar ao configure que você instalou o libsigsegv em /usr, caso contrário ele não será encontrado. --with-libffcall-prefix=/usr: use isso para informar ao configure que você instalou o pacote opcional libffcall em /usr, caso contrário, como libsigsegv, ele não será encontrado. Conteúdo Aplicativos Instalados: clisp e clisp-link Bibliotecas Instaladas: várias bibliotecas estáticas em /usr/lib/clisp-2.49/base/ Diretórios Instalados: /usr/lib/clisp-2.49, /usr/share/doc/clisp-2.49 e /usr/share/emacs/site-lisp Descrições Curtas clisp é um compilador, interpretador e depurador "ANSI" "Common Lisp" clisp-link é usado para vincular um módulo externo ao "clisp" CMake-3.31.5 Introdução ao "CMake" O pacote CMake contém um conjunto moderno de ferramentas usado para gerar "Makefiles". É um sucessor do script configure gerado automaticamente e pretende ser independente de plataforma e de compilador. Um usuário significativo do CMake é o KDE desde a versão 4. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3832]https://cmake.org/files/v3.31/cmake-3.31.5.tar.gz * Transferência (FTP): * Soma de verificação MD5da transferência: ea5e8d7208616b1609018db290a67419 * Tamanho da transferência: 12 MB * Espaço em disco estimado exigido: 576 MB (adicionar 1,4 GB para os testes) * Tempo de construção estimado: 2,2 UPC (adicionar 5,4 UPC para testes, ambos usando paralelismo=4) Dependências do "CMake" Recomendadas [3833]cURL-8.12.1, [3834]libarchive-3.7.7, [3835]libuv-1.50.0 e [3836]nghttp2-1.64.0 Opcionais [3837]GCC-14.2.0 (para gfortran), [3838]git-2.48.1 (para uso durante testes), [3839]Mercurial-6.9.2 (para uso durante testes), [3840]OpenJDK-23.0.2 (para uso durante testes), [3841]Qt-6.8.2 (para a GUI baseada em Qt), [3842]sphinx-8.2.1 (para construir documentos), [3843]Subversion-1.14.5 (para testagem), [3844]cppdap, [3845]jsoncpp e [3846]rhash Instalação do "CMake" Instale CMake executando os seguintes comandos: sed -i '/"lib64"/s/64//' Modules/GNUInstallDirs.cmake && ./bootstrap --prefix=/usr \ --system-libs \ --mandir=/share/man \ --no-system-jsoncpp \ --no-system-cppdap \ --no-system-librhash \ --docdir=/share/doc/cmake-3.31.5 && make Para testar os resultados, emita: bin/ctest -j$(nproc). Substitua $(nproc) por um inteiro entre 1 e o número de núcleos lógicos do sistema se você não quiser usar todos. Se você quiser investigar um problema com um determinado "problem1-test", [então] use bin/ctest -R "problem1-test" e, para omiti-lo, use bin/ctest -E "problem1-test". Essas opções podem ser usadas juntas: bin/ctest -R "problem1-test" -E "problem2-test". A opção -N pode ser usada para exibir todos os testes disponíveis, e você pode executar bin/ctest para um subconjunto de testes usando nomes ou números separados por espaços como opções . A opção --help pode ser usada para mostrar todas as opções. Agora, como o(a) usuário(a) root: make install Explicações do Comando sed ... Modules/GNUInstallDirs.cmake: Esse comando desabilita aplicativos que usam "cmake" de tentar instalar arquivos em "/usr/lib64/". --system-libs: Essa chave força o sistema de construção a vincular-se à versão instalada do sistema para todas as bibliotecas necessárias, exceto aquelas especificadas explicitamente por meio de uma opção --no-system-*. --no-system-jsoncpp e --no-system-cppdap: Essas chaves removem a biblioteca JSON-C++ da lista de bibliotecas do sistema. Uma versão empacotada dessa biblioteca é usada em lugar dela. --no-system-librhash: Essa chave remove a biblioteca librhash da lista de bibliotecas do sistema usadas. Uma versão empacotada dessa biblioteca é usada em lugar dela. --no-system-{curl,libarchive,libuv,nghttp2}: Use a opção correspondente na lista para o bootstrap se uma das dependências recomendadas não estiver instalada. Uma versão empacotada da dependência será usada em lugar dela. --qt-gui: Essa chave habilita construir a "GUI" baseada em Qt para CMake. --parallel=: Essa chave permite executar as instruções de autoaprimoramento do CMake com várias tarefas ao mesmo tempo. Não é necessário se a variável MAKEFLAGS já tiver sido configurada para usar vários processadores seguindo [3847]Usando Múltiplos Processadores. Conteúdo Aplicativos Instalados: ccmake, cmake, cmake-gui (opcional), cpack e ctest Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /usr/share/cmake-3.31 e /usr/share/doc/cmake-3.31.5 Descrições Curtas ccmake é uma estrutura de interação direta com o(a) usuário(a) baseada em "curses" para cmake cmake é o gerador de "makefile" cmake-gui (opcional) é a estrutura de interação direta com o(a) usuário(a) baseada em Qt para o cmake cpack é o aplicativo de empacotamento CMake ctest é um utilitário de teste para árvores de construção geradas pelo "cmake" Doxygen-1.13.2 Introdução ao "Doxygen" O pacote Doxygen contém um sistema de documentação para "C++", "C", "Java", "Objective-C", "Corba IDL" e, até certo ponto, "PHP", "C#" e "D". É útil para gerar documentação "HTML" e(ou) manual de referência fora de linha a partir de um conjunto de arquivos fonte documentados. Também existe suporte para gerar saída em "RTF", "PostScript", "PDF" com hiperlink, "HTML" compactado e páginas de manual "Unix". A documentação é extraída diretamente dos fontes, o que torna muito mais fácil manter a documentação consistente com o código-fonte. Você também pode configurar o Doxygen para extrair a estrutura do código a partir de arquivos fonte não documentados. Isso é muito útil para encontrar rapidamente seu caminho em grandes distribuições de fontes. Usado junto com Graphviz, você também consegue visualizar as relações entre os vários elementos por meio de gráficos de dependência, diagramas de herança e diagramas de colaboração, todos gerados automaticamente. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3848]https://doxygen.nl/files/doxygen-1.13.2.src.tar.gz * Transferência (FTP): * Soma de verificação MD5 da transferência: 1c3bfaaeda1544bf2b33b73ceb4d2ea4 * Tamanho da transferência: 8,1 MB * Espaço em disco estimado exigido: 253 MB (com testes) * Tempo de construção estimado: 1,6 UPC (com testes; ambos usando paralelismo=4) Dependências do "Doxygen" Exigidas [3849]CMake-3.31.5 e [3850]git-2.48.1 Recomendadas [3851]Qt-6.8.2 (para doxywizard) Opcionais [3852]Graphviz-12.2.1, [3853]ghostscript-10.04.0, [3854]libxml2-2.13.6 (exigido para os testes), [3855]LLVM-19.1.7 (com clang), [3856]texlive-20240312 (ou [3857]install-tl-unx), [3858]xapian-1.4.27 (para doxyindexer) e [3859]javacc Instalação do "Doxygen" Primeiro, corrija alguns conjuntos de comandos sequenciais python: grep -rl '^#!.*python$' | xargs sed -i '1s/python/&3/' Instale Doxygen executando os seguintes comandos: mkdir -v build && cd build && cmake -G "Unix Makefiles" \ -D CMAKE_BUILD_TYPE=Release \ -D CMAKE_INSTALL_PREFIX=/usr \ -D build_wizard=ON \ -D force_qt=Qt6 \ -W no-dev .. && make Para testar os resultados, emita: make testes. Um teste, 012_cite.dox, é conhecido por falhar se [3860]texlive-20240312 ou [3861]install-tl-unx não estiver instalado. Se você deseja gerar a documentação do pacote, [então] você precisa ter Python, TeX Live (para documentos "HTML") e Ghostscript (para documentos "PDF") instalados, então emita o seguinte comando: cmake -D build_doc=ON \ -D DOC_INSTALL_DIR=share/doc/doxygen-1.13.2 \ .. && make docs Agora, como o(a) usuário(a) root: make install && install -vm644 ../doc/*.1 /usr/share/man/man1 Se você gerou a documentação do pacote, então as páginas de manual serão instaladas automaticamente e você não precisará executar o último comando install .... Explicações do Comando -D build_wizard=OFF: Use essa chave se Qt6 não estiver instalado. -D build_search=ON: Use essa chave se xapian estiver instalado e você desejar construir ferramentas de pesquisa externas (doxysearch.cgi e doxyindexer). -D force_qt6=ON: Use essa chave para construir doxywizard com Qt6, mesmo se Qt5 estiver instalado. -D use_libclang=ON: Use essa chave se llvm com clang estiverem instalados, para adicionar suporte para análise da libclang. Configurando o "Doxygen" Não existe nenhuma configuração real necessária para o pacote Doxygen, embora três pacotes adicionais sejam exigidos se você desejar usar recursos estendidos. Se demandar fórmulas para criar documentação em PDF, então você precisa ter o [3862]texlive-20240312 instalado. Se demandar fórmulas para converter arquivos PostScript em bitmaps, então você precisa ter o [3863]ghostscript-10.04.0 instalado. Conteúdo Aplicativos Instalados: doxygen e opcionalmente, doxywizard, doxyindexer e doxysearch.cgi Bibliotecas Instaladas: Nenhum(a) Diretório Instalado: /usr/share/doc/doxygen-1.13.2 Descrições Curtas doxygen é um utilitário baseado em linha de comando usado para gerar arquivos de configuração de modelo e, em seguida, gerar documentação a partir desses modelos. Use doxygen --help para uma explicação dos parâmetros da linha de comando doxywizard é uma estrutura "GUI" de interação direta com o(a) usuário(a) para configurar e executar doxygen doxyindexer gera um índice de pesquisa chamado doxysearch.db a partir de um ou mais arquivos de dados de pesquisa produzidos por doxygen. Veja-se, por exemplo, [3864]https://javacc.github.io/javacc/ doxysearch.cgi é um aplicativo "CGI" para pesquisar os dados indexados por doxyindexer dtc-1.7.2 Introdução ao Dtc O pacote dtc contém o Device Tree Compiler para trabalhar com fontes de árvores de dispositivos e arquivos binários e também libfdt, uma biblioteca de utilitários para ler e manipular árvores de dispositivos no formato binário. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3865]https://kernel.org/pub/software/utils/dtc/dtc-1.7.2.tar.xz * Soma de verificação MD5 da transferência: 0f193be84172556027da22d4fe3464e0 * Tamanho da transferência: 168 KB * Espaço em disco estimado exigido: 13 MB (com testes) * Tempo de construção estimado: 0,2 UPC (com testes) Dependências de Dtc Opcionais [3866]libyaml-0.2.5, [3867]SWIG-4.3.0 e [3868]texlive-20240312 Instalação do Dtc Instale dtc executando os seguintes comandos: mkdir build && cd build && meson setup --prefix=/usr \ --buildtype=release \ -D python=disabled .. && ninja Para testar os resultados, emita: CC='gcc -Wl,-z,noexecstack' meson test -v. Agora, como o(a) usuário(a) root: ninja install Ainda como o(a) usuário(a) root, remova a biblioteca estática inútil: rm /usr/lib/libfdt.a Se você tiver [3869]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 [3870]SWIG-4.3.0 e desejar instalar as ligações Python 3 desse pacote, construa o módulo Python 3: pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir .. Como o(a) usuário(a) root, instale o módulo Python 3: pip3 install --no-index --find-links dist --no-user libfdt Explicações do Comando --buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados. -D python=disabled: Essa chave impede construir a ligação do Python 3 com o método obsoleto (executando setup.py diretamente). Nós construiremos a ligação do Python 3 com o comando pip3 wheel separadamente, se desejado. CC='gcc -Wl,-z,noexecstack': Essa variável impede marcar as bibliotecas compartilhadas na suíte de teste como exigindo pilha executável. A Glibc 2.41 ou posterior parou de permitir abrir com dlopen tal biblioteca compartilhada, de forma que a suíte de teste falharia. Mas essas bibliotecas compartilhadas não precisam realmente de uma pilha executável, de modo que nós podemos usar -Wl,-z,noexecstack para consertar a suíte de teste. É necessário no ambiente CC para o meson test porque essas bibliotecas compartilhadas são construídas por um conjunto de comandos sequenciais de teste em vez do sistema de construção meson/ninja, e o conjunto de comandos sequenciais de teste não reconhece outras variáveis de ambiente “comuns” como LDFLAGS. Conteúdo Aplicativos Instalados: convert-dtsv0, dtc, dtdiff, fdtdump, fdtget, fdtoverlay e fdtput Biblioteca Instalada: libfdt.so Diretório Instalado: /usr/lib/python3.13/site-packages/libfdt-1.7.2.dist-info e /usr/share/doc/dtc-1.7.2 (opcionalmente) Descrições Curtas convert-dtsv0 converte a fonte da árvore de dispositivos v0 em árvore de dispositivos v1 dtc compila a fonte da árvore de dispositivos (dts) para o blob binário da árvore de dispositivos (dtb) ou descompila dtb para dts dtdiff compara duas árvores de dispositivos fdtdump imprime uma versão legível de um arquivo simples de árvore de dispositivos fdtget lê valores a partir da árvore de dispositivos fdtoverlay aplica uma série de sobreposições a um blob de árvore de dispositivo base fdtput escreve um valor de propriedade em uma árvore de dispositivos libfdt.so é uma biblioteca de utilitários para ler e manipular árvores de dispositivos no formato binário GCC-14.2.0 Introdução ao GCC O pacote GCC contém a GNU Compiler Collection. Esta página descreve a instalação de compiladores para as seguintes linguagens: C, C++, Fortran, Objective C, Objective C++, Go e Modula2. Como C e C++ são instalados no LFS, esta página é tanto para atualizar C e C++ quanto para instalar compiladores adicionais. Nota Linguagens adicionais, entre as quais D e Ada, estão disponíveis na coleção. D e Ada tem um requisito de instruções iniciais de carregamento de binário para a primeira instalação, de modo que a instalação deles não está descrita aqui. Para instalá-los, você pode proceder da mesma forma abaixo depois de instalar o compilador correspondente a partir de um pacote binário, adicionando ada ou d à linha --enable-languages. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Cuidado Se você estiver atualizando o GCC a partir de qualquer outra versão anterior ao 14.2.0, então você precisa ser cuidadoso(a) ao compilar módulos de terceiros do núcleo. Você deveria garantir que o núcleo e todos os módulos nativos dele também sejam compilados usando a mesma versão do GCC que você usa para construir o módulo de terceiros. Esse problema não afeta as atualizações do núcleo nativo (e dos módulos do núcleo), pois as instruções abaixo são uma reinstalação completa do GCC. Se você tiver módulos de terceiros instalados, certifique-se de que eles sejam recompilados usando a versão atualizada do GCC. Informação do Pacote * Transferência (HTTP): [3871]https://ftp.gnu.org/gnu/gcc/gcc-14.2.0/gcc-14.2.0.tar.xz * Transferência (FTP): * Soma de verificação MD5 da transferência: 2268420ba02dc01821960e274711bde0 * Tamanho da transferência: 88 MB * Espaço em disco estimado exigido: 11 GB (3,4 GB instalado com todas as linguagens listadas; adicionar 1,6 GB para testes) * Tempo de construção estimado: 14 UPC (adicionar 34 UPC para testes; ambos com paralelismo=8) Dependências do GCC Opcionais [3872]GDB-16.2, [3873]Graphviz-12.2.1 (alguns testes usam ele se instalado; observe que se ele estiver instalado, porém não construído com [3874]libpng-1.6.46, esses testes falharão), [3875]Valgrind-3.24.0 (para testes) e [3876]ISL (para habilitar otimização do graphite) Instalação do GCC Importante Mesmo se você especificar somente linguagens diferentes de "C" e "C++" para o comando ./configure abaixo, o processo de instalação substituirá seus compiladores e bibliotecas "C" e "C++" do GCC existentes. Executar a suíte completa de teste é recomendado. Não continue com o comando make install até ter certeza de que a construção foi bem-sucedida. Você pode comparar seus resultados de teste com aqueles encontrados em [3877]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 ([3878]../../../../lfs/view/12.3/chapter08/gcc.html). As instruções abaixo estão intencionalmente realizando um processo de “bootstrap”. As instruções iniciais de carregamento são necessárias para robustez e são altamente recomendadas ao atualizar a versão dos compiladores. Para desabilitar as instruções iniciais de carregamento de qualquer maneira, adicione --disable-bootstrap às opções ./configure abaixo. Instale o GCC executando os seguintes comandos: case $(uname -m) in x86_64) sed -i.orig '/m64=/s/lib64/lib/' gcc/config/i386/t-linux64 ;; esac mkdir build && cd build && ../configure \ --prefix=/usr \ --disable-multilib \ --with-system-zlib \ --enable-default-pie \ --enable-default-ssp \ --enable-host-pie \ --disable-fixincludes \ --enable-languages=c,c++,fortran,go,objc,obj-c++,m2 && make Se executar testes, como no LFS, remova/corrija várias falhas de teste conhecidas: sed -e '/cpython/d' -i ../gcc/testsuite/gcc.dg/plugin/plugin.exp sed -e 's/no-pic /&-no-pie /' -i ../gcc/testsuite/gcc.target/i386/pr113689-1 .c sed -e 's/300000/(1|300000)/' -i ../libgomp/testsuite/libgomp.c-c++-common/p r109062.c sed -e 's/{ target nonpic } //' \ -e '/GOTPCREL/d' -i ../gcc/testsuite/gcc.target/i386/fentryname 3.c Se você tiver instalado pacotes adicionais, como valgrind e gdb, a parte gcc da suíte de teste executará mais testes que no LFS. Alguns deles informarão FAIL e outros XPASS (aprovados quando esperado FAIL). A partir do gcc-14.1.0, cerca de setenta e quatro (74) FAIL ocorrem na suíte “guality”, bem como falhas diversas em todo o resto da suíte de teste. Se todos os compiladores acima forem construídos, existirão um pouco mais que cento e dez (110) falhas inesperadas em mais que seiscentos e dezessete mil (617.000) testes. Para executar os testes, emita: make -k check Os testes são muito longos e os resultados possivelmente sejam difíceis de encontrar nos registros, especialmente se você usar tarefas paralelas com "make". Você consegue obter um resumo dos testes com: ../contrib/test_summary Agora, como o(a) usuário(a) root: make install && mkdir -pv /usr/share/gdb/auto-load/usr/lib && mv -v /usr/lib/*gdb.py /usr/share/gdb/auto-load/usr/lib && chown -v -R root:root \ /usr/lib/gcc/*linux-gnu/14.2.0/include{,-fixed} && ln -sfv ../../libexec/gcc/$(gcc -dumpmachine)/14.2.0/liblto_plugin.so \ /usr/lib/bfd-plugins/ Explicações do Comando mkdir build; cd build: A documentação do GCC recomenda construir o pacote em um diretório de construção dedicado. --disable-multilib: Esse parâmetro garante que os arquivos sejam criados para a arquitetura específica do seu computador. --with-system-zlib: Usa a zlib do sistema em vez daquela empacotada. A zlib é usada para comprimir e descomprimir a linguagem intermediária do GCC em arquivos de objeto "Link Time Optimization" ("LTO"). --enable-default-pie: Torna a opção -fpie o padrão ao compilar aplicativos. Juntamente com o recurso [3879]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. [3880]SSP é uma técnica que evita a alteração do fluxo do programa por corrompimento da pilha de parâmetros. --enable-host-pie: Torna os executáveis do compilador PIE (Position Independent Executable). Isso pode ser usado para aumentar a proteção contra ataques ROP (Return Oriented Programming) e pode ser visto como parte de uma tendência mais ampla de fortalecer os binários. --enable-languages=c,c++,fortran,go,objc,obj-c++,m2: Esse comando identifica quais linguagens construir. Você pode modificar esse comando para remover linguagens indesejadas. A GCC também suporta Ada e D, mas construir a GCC com suporte a Ada (ou D) precisa de um compilador Ada (ou D) existente. Portanto, eles não estão habilitados aqui. make -k check: Esse comando executa a suíte de teste sem parar se quaisquer erros forem encontrados. ../contrib/test_summary: Esse comando produzirá um resumo dos resultados da suíte de teste. Você pode anexar | grep -A7 Summ ao comando para produzir uma versão ainda mais condensada do resumo. Você possivelmente também deseje redirecionar a saída gerada para um arquivo para revisão e comparação posterior. mv -v /usr/lib/*gdb.py ...: A etapa de instalação coloca alguns arquivos usados pelo gdb sob o diretório /usr/lib. Isso gera mensagens de erro falsas ao executar o ldconfig. Esse comando move os arquivos para outro local. chown -v -R root:root /usr/lib/gcc/*linux-gnu/...: Se o pacote for construído por um(a) usuário(a) diferente de "root", [então] titularidade da propriedade do diretório include instalado (e o conteúdo dele) estará incorreta. Esse comando muda a titularidade da propriedade para o(a) usuário(a) e grupo root. --enable-host-shared --enable-languages=jit: Construir libgccjit, uma biblioteca para incorporar a GCC em aplicativos e bibliotecas para gerar código de máquina . Apesar do “JIT” (just-in-time) no nome, a biblioteca também pode ser usada para compilação AOT (ahead-of-time). --enable-host-shared é necessário para construir libgccjit, mas retarda significativamente a GCC. Portanto libgccjit deveria ser construída e instalada separadamente, não como parte da instalação “principal” da GCC. Se você precisar dessa biblioteca, configure a GCC com essas duas opções e instale a biblioteca executando make -C gcc jit.install-common jit.install-info como o(a) usuário(a) root. Essa biblioteca não é usada por nenhum pacote do BLFS, nem testada pelos(as) desenvolvedores(as) do BLFS. Conteúdo Alguns nomes e descrições de aplicativos e bibliotecas não estão listados aqui, mas podem ser encontrados na [3881]seção do LFS para "GCC", já que foram inicialmente instalados durante a construção do LFS. Aplicativos Instalados: gccgo, gfortran, gm2, go e gofmt, rigidamente vinculados a nomes específicos de arquitetura Bibliotecas Instaladas: libgfortran.{so,a}, libgm2.{so,a}, libgo.{so,a}, libgobegin.a, libgolibbegin.a, libobjc.{so,a} e numerosos(as) outros(as) bibliotecas e executáveis de tempo de execução Diretórios Instalados: /usr/lib/go Descrições Curtas gccgo é um compilador baseado na GCC para a linguagem Go gm2 é um compilador baseado na GCC para a linguagem Modula-2 go é uma ferramenta para gerenciar o código-fonte da Go gofmt é uma ferramenta para formatar o código-fonte da Go gfortran é um compilador baseado na GCC para a linguagem Fortran GC-8.2.8 Introdução ao "GC" O pacote GC contém o coletor conservador de lixo Boehm-Demers-Weiser, que pode ser usado como um substituto da coleta de lixo para a função "malloc" da "C" ou o novo operador da "C++". Ele permite que você aloque memória basicamente como faria normalmente, sem desalocar explicitamente a memória que não é mais útil. O coletor recicla automaticamente a memória quando determina que ela não mais consegue ser acessada de outra forma. O coletor também é usado por diversas implementações de linguagens de programação que, ou usam a "C" como código intermediário; desejam facilitar a interoperação mais fácil com bibliotecas "C"; ou apenas preferem a interface simples do coletor. Alternativamente, o coletor de lixo possivelmente seja usado como detector de vazamentos para aplicativos "C" ou "C++", embora esse não seja o objetivo principal dele. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3882]https://github.com/ivmai/bdwgc/releases/download/v8.2.8/gc-8. 2.8.tar.gz * Transferência (FTP): * 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) Opcionais [3883]libatomic_ops-7.8.2 Instalação do "GC" Instale GC executando os seguintes comandos: ./configure --prefix=/usr \ --enable-cplusplus \ --disable-static \ --docdir=/usr/share/doc/gc-8.2.8 && make Para testar os resultados, emita: make check. Agora, como o(a) usuário(a) root: make install && install -v -m644 doc/gc.man /usr/share/man/man3/gc_malloc.3 Explicações do Comando --docdir=/usr/share/doc/gc-8.2.8: Essa opção é usada de forma que o pacote instalará a documentação em um diretório versionado. --enable-cplusplus: Esse parâmetro habilita a construção e instalação da biblioteca "C++" juntamente com a biblioteca "C" padrão. --disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas. Conteúdo Aplicativos Instalados: Nenhum(a) Bibliotecas Instaladas: libcord.so, libgc.so, libgccpp.so e libgctba.so Diretórios Instalados: /usr/include/gc e /usr/share/doc/gc-8.2.8 Descrições Curtas libcord.so contém uma biblioteca de sequências de caracteres baseada em árvore libgc.so contém uma interface "C" para o coletor conservador de lixo, projetada principalmente para substituir a função "malloc" da "C" libgccpp.so contém uma interface "C++" para o coletor conservador de lixo libgctba.so contém uma interface "C++" para lançar alocações incorretas GDB-16.2 Introdução ao GDB GDB, o depurador do Projeto "GNU", permite que você veja o que está acontecendo “dentro” de outro aplicativo enquanto ele é executado - ou o que outro aplicativo estava fazendo no momento em que travou. Observe que GDB é mais eficaz ao rastrear aplicativos e bibliotecas que foram construídos(as) com símbolos de depuração e não despojados(as). Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3884]https://ftp.gnu.org/gnu/gdb/gdb-16.2.tar.xz * Transferência (FTP): * Soma de verificação MD5 da transferência: 05e4a7e3b177432771aa7277af9bccee * Tamanho da transferência: 23 MB * Espaço em disco estimado exigido: 1,0 GB (adicionar 943 MB para documentos; adicionar 960 MB para testes) * Tempo de construção estimado: 1,4 UPC (adicionar 0,3 UPC para documentos; adicionar 3,0 UPC testes; todos usando paralelismo=8) Dependências do GDB Dependência Recomendada de Tempo de Execução [3885]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) Opcionais [3886]Doxygen-1.13.2, [3887]GCC-14.2.0 (ada, gfortran e go são usados para testes), [3888]Guile-3.0.10, [3889]rustc-1.85.0 (usado para alguns testes), [3890]Valgrind-3.24.0 e [3891]SystemTap (tempo de execução, usado para testes) Instalação do GDB Instale o GDB executando os seguintes comandos: mkdir build && cd build && ../configure --prefix=/usr \ --with-system-readline \ --with-python=/usr/bin/python3 && make Opcionalmente, para construir a documentação da "API" usando [3892]Doxygen-1.13.2, execute: make -C gdb/doc doxy Executar os testes não é recomendado. Os resultados variam muito dependendo da arquitetura do sistema e de quais dependências opcionais estão instaladas e qual versão do GCC está sendo usada. Em um sistema testado, existiram 140 falhas inesperadas (de mais de 108.000 testes) e em outro sistema existiram “somente” 14 falhas inesperadas. O tempo para executar os testes varia de aproximadamente 3 UPC a mais de 15 UPC ao usar -j8. Isso depende do número de testes que expiram, assim como de outros fatores. Dica Com um make check simples, existem muitas mensagens de aviso acerca de um arquivo de configuração global ausente. Essas podem ser evitadas executando-se touch global.exp e antepondo-se ao comando make check DEJAGNU=$PWD/global.exp. Além disso, os testes podem ser consideravelmente acelerados usando-se a opção do make "-j", onde é 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 [3893]TestingGDB. Existem muitos problemas adicionais com a suíte de teste: * Diretórios limpos são necessários se reexecutar-se os testes. Por esse motivo, produza uma cópia do diretório do código-fonte compilado antes dos testes, caso precise executar os testes novamente. * Os resultados também podem depender dos compiladores instalados. * Em alguns sistemas baseados em "AMD", mais que duzentos (200) testes adicionais possivelmente falhem devido a uma diferença na implementação de camadas nessas "CPUs". * Para gdb-16.1, usando um Intel Xeon E5-1650 v3, existiram 14 falhas inesperadas em mais de 120.000 testes. * Quatro testes na suíte gdb.base/step-over-syscall.exp são conhecidos por falharem devido a mudanças no Linux 6.13 e glibc-2.41. Agora, como o(a) usuário(a) root: make -C gdb install && make -C gdbserver install Se você construiu a documentação da "API", [então] ela agora está em "gdb/doc/doxy". Você consegue instalá-la (como o(a) usuário(a) root): install -d /usr/share/doc/gdb-16.2 && rm -rf gdb/doc/doxy/xml && cp -Rv gdb/doc/doxy /usr/share/doc/gdb-16.2 Explicações do Comando --with-system-readline: Essa chave força o GDB a usar a cópia do Readline instalada no LFS. --with-python=/usr/bin/python3: Essa chave força GDB a usar Python 3. Conteúdo Aplicativos Instalados: gcore, gdb, gdbserver, gdb-add-index e gstack Biblioteca Instalada: libinproctrace.so Diretórios Instalados: /usr/{include,share}/gdb e /usr/share/doc/gdb-16.2 Descrições Curtas gcore gera um despejo principal de um aplicativo em execução gdb é o Depurador GNU gdbserver é um servidor remoto para o depurador "GNU" (permite que aplicativos sejam depurados a partir de uma máquina diferente) gdb-add-index Permite adicionar arquivos de índice a binários ELF. Isso acelera o início do gdb em aplicativos grandes. gstack imprime um rastreamento de pilha a partir de um programa que esteja executando atualmente libinproctrace.so contém funções para o agente de rastreamento em processo. O agente permite instalar pontos de rastreamento rápidos, listar marcadores de pontos de rastreamento estáticos, sondar marcadores de pontos de rastreamento estáticos e iniciar o monitoramento de rastreamento. Git-2.48.1 Introdução ao "Git" Git é um sistema de controle de versão distribuído, gratuito e de código aberto, projetado para lidar com tudo, desde projetos pequenos a muito grandes, com velocidade e eficiência. Cada clone do Git é um repositório completo com histórico completo e recursos completos de rastreamento de revisão, não dependente de acesso à rede de comunicação ou de um servidor central. Ramificar e mesclar são rápidos e fáceis de fazer. Git é usado para controle de versão de arquivos, assim como ferramentas como [3894]Mercurial-6.9.2, Bazaar, [3895]Subversion-1.14.5, [3896]CVS, Perforce e Team Foundation Server. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3897]https://www.kernel.org/pub/software/scm/git/git-2.48.1.tar.xz * Transferência (FTP): * Soma de verificação MD5 da transferência: 99656f1481e70701198257ada703a480 * Tamanho da transferência: 7,4 MB * Espaço em disco estimado exigido: 541 MB (com documentação baixada; adicionar 19 MB para construir documentos; adicionar 21 MB para testes) * Tempo de construção estimado: 0,3 UPC (com paralelismo=4; adicionar 1,0 UPC para construir documentos e até 7 UPC (dependente da velocidade do disco) para testes) Transferências Adicionais * [3898]https://www.kernel.org/pub/software/scm/git/git-manpages-2.48 .1.tar.xz (não necessário se você tiver instalado [3899]asciidoc-10.2.1, [3900]xmlto-0.0.29 e preferir reconstrui-las) * [3901]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 [3902]asciidoc-10.2.1 e desejar reconstruir a documentação). Dependências do "Git" Recomendadas [3903]cURL-8.12.1 (necessário para usar Git por meio de "HTTP", "HTTPS", "FTP" or "FTPS") Opcionais [3904]Apache-2.4.63 (para alguns testes), [3905]Fcron-3.2.1 (tempo de execução, para agendamento de tarefas git maintenance), [3906]GnuPG-2.4.7 (tempo de execução, possivelmente seja usado para assinar submissões ou etiquetas do Git, ou verificar as assinaturas delas), [3907]OpenSSH-9.9p2 (tempo de execução, necessário para usar Git sobre ssh), [3908]pcre2-10.45, [3909]Subversion-1.14.5 com ligações Perl (tempo de execução, para git svn), [3910]Tk-8.6.16 (gitk, um visualizador simples de repositórios do Git, usa Tk em tempo de execução), [3911]Valgrind-3.24.0, [3912]Authen::SASL (tempo de execução, para git send-email), e [3913]IO-Socket-SSL-2.089 (tempo de execução, para git send-email se conectar a um servidor SMTP com encriptação SSL) Opcional (para criar as páginas de manual, documentos "HTML" e outros documentos) [3914]xmlto-0.0.29 e [3915]asciidoc-10.2.1 , e também [3916]dblatex (para a versão PDF do manual de usuário(a)) e [3917]docbook2x para criar páginas info Instalação do "Git" Instale Git executando os seguintes comandos: ./configure --prefix=/usr \ --with-gitconfig=/etc/gitconfig \ --with-python=python3 && make Você pode construir as páginas de manual e(ou) documentos "HTML" ou usar os baixados. Se você decidir construí-los(as), [então] use as próximas duas instruções. Se você instalou [3918]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 [3919]asciidoc-10.2.1 e [3920]xmlto-0.0.29, [então] você pode criar as páginas de manual: make man A suíte de teste pode ser executada em modo paralelo. Para executar a suíte de teste, emita: GIT_UNZIP=nonexist make test -k |& tee test.log. A configuração GIT_UNZIP impede que a suíte de teste use unzip; nós precisamos dela porque no BLFS unzip é um link simbólico para bsdunzip que não satisfaz a suposição de alguns casos de teste. Se algum caso de teste falhar, a lista de testes falhos pode ser mostrada via grep '^not ok' test.log | grep -v TODO. Agora, como o(a) usuário(a) root: make perllibdir=/usr/lib/perl5/5.40/site_perl install Se você criou as páginas de manual e(ou) documentos "HTML" Instale as páginas de manual como o(a) usuário(a) root: make install-man Instale os documentos "HTML" como o(a) usuário(a) root: make htmldir=/usr/share/doc/git-2.48.1 install-html Se você baixou as páginas de manual e(ou) documentos "HTML" Se você baixou as páginas de manual, [então] descompacte-as como o(a) usuário(a) root: tar -xf ../git-manpages-2.48.1.tar.xz \ -C /usr/share/man --no-same-owner --no-overwrite-dir Se você baixou os documentos "HTML", [então] descompacte-os como o(a) usuário(a) root: mkdir -vp /usr/share/doc/git-2.48.1 && tar -xf ../git-htmldocs-2.48.1.tar.xz \ -C /usr/share/doc/git-2.48.1 --no-same-owner --no-overwrite-dir && find /usr/share/doc/git-2.48.1 -type d -exec chmod 755 {} \; && find /usr/share/doc/git-2.48.1 -type f -exec chmod 644 {} \; Reorganize o texto e o "HTML" no "html-docs" (ambos os métodos) Para ambos os métodos, o "html-docs" inclue muitos arquivos planos de texto. Reorganize os arquivos como o(a) usuário(a) root: mkdir -vp /usr/share/doc/git-2.48.1/man-pages/{html,text} && mv /usr/share/doc/git-2.48.1/{git*.txt,man-pages/text} && mv /usr/share/doc/git-2.48.1/{git*.,index.,man-pages/}html && mkdir -vp /usr/share/doc/git-2.48.1/technical/{html,text} && mv /usr/share/doc/git-2.48.1/technical/{*.txt,text} && mv /usr/share/doc/git-2.48.1/technical/{*.,}html && mkdir -vp /usr/share/doc/git-2.48.1/howto/{html,text} && mv /usr/share/doc/git-2.48.1/howto/{*.txt,text} && mv /usr/share/doc/git-2.48.1/howto/{*.,}html && sed -i '/^> /h ome/git/.ssh/authorized_keys && cat >> /home/git/.ssh/authorized_keys Também é útil definir o nome padrão da ramificação inicial de novos repositórios modificando a configuração do "git". Como o(a) usuário(a) root, execute: git config --system init.defaultBranch trunk Por fim, adicione a entrada /usr/bin/git-shell ao arquivo de configuração /etc/shells. Esse shell foi definido no perfil do(a) usuário(a) git e serve para garantir que somente ações relacionadas ao "git" possam ser executadas: echo "/usr/bin/git-shell" >> /etc/shells 2. Criar um repositório "git" O repositório pode estar em qualquer lugar no sistema de arquivos. É importante que o(a) usuário(a) "git" tenha acesso de leitura/escrita a esse local. Usamos /srv/git como diretório base. Crie um novo repositório git com os seguintes comandos (como o(a) usuário(a) root): Nota Em todas as instruções abaixo, usamos projeto1 como um nome de repositório de exemplo. Você deveria nomear seu repositório como um nome descritivo curto para seu projeto específico. install -o git -g git -m755 -d /srv/git/projeto1.git && cd /srv/git/projeto1.git && git init --bare && chown -R git:git . 3. Povoar o repositório a partir de um sistema cliente Nota Todas as instruções nesta seção e na próxima deveriam ser feitas em um sistema do(a) usuário(a), não no sistema do servidor. Agora que o repositório foi criado, ele pode ser usado pelos(as) desenvolvedores(as) para colocar alguns arquivos nele. Depois que a chave "ssh" do(a) usuário(a) for importada para o arquivo authorized_keys do "git", o(a) usuário(a) poderá interagir com o repositório. Uma configuração mínima deveria estar disponível no sistema do(a) desenvolvedor(a) especificando o nome de usuário(a) e endereço de correio eletrônico dele(a). Crie esse arquivo de configuração mínima no lado do cliente: cat > ~/.gitconfig < email = EOF Na máquina do(a) desenvolvedor(a), configure alguns arquivos para serem enviados ao repositório como conteúdo inicial: Nota O termo gitserver usado abaixo deveria ser o nome do dispositivo (ou endereço "IP") do servidor "git". mkdir meuprojeto cd meuprojeto git init --initial-branch=trunk git remote add origin git@gitserver:/srv/git/projeto1.git cat >LEIAME < 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= 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= 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= a essa variável. Para mais informações relativas a quais opções podem ser definidas, dê uma olhada na saída gerada de git daemon --help. Após iniciar o processo de segundo plano, usuários(as) não autenticados(as) conseguem clonar repositórios exportados usando git clone git://gitserver/projeto1.git Como o diretório base é /srv/git por padrão (ou definido como um valor personalizado na configuração), git interpreta o caminho de entrada (/projeto1.git) relativo a esse diretório base, de modo que o repositório em /srv/git/projeto1.git seja servido. Guile-3.0.10 Introdução ao "Guile" O pacote Guile contém a biblioteca de linguagens de extensão do Projeto "GNU". Guile também contém um interpretador Scheme independente. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3926]https://ftp.gnu.org/gnu/guile/guile-3.0.10.tar.xz * Transferência (FTP): * Soma de verificação MD5 da transferência: 375f8a423a23d229552512113aa4a954 * Tamanho da transferência: 5,5 MB * Espaço em disco estimado exigido: 184 MB (adicionar 4 MB para os testes) * Tempo de construção estimado: 4,5 UPC (Usando paralelismo=4; adicionar 0,3 UPC para testes) Dependências do "Guile" Exigidas [3927]GC-8.2.8 e [3928]libunistring-1.3 Opcionais [3929]Emacs-30.1 e [3930]GDB-16.2 (dependências somente em tempo de execução). Instalação do "Guile" Instale Guile executando os seguintes comandos: ./configure --prefix=/usr \ --disable-static \ --docdir=/usr/share/doc/guile-3.0.10 && make && make html && makeinfo --plaintext -o doc/r5rs/r5rs.txt doc/r5rs/r5rs.texi && makeinfo --plaintext -o doc/ref/guile.txt doc/ref/guile.texi Para testar os resultados, emita: ./check-guile. Em um sistema "i686", até dez (10) testes falharão na suíte de teste numbers.test devido a pequenos erros de arredondamento de ponto flutuante. Agora, como o(a) usuário(a) root: make install && make install-html && mkdir -p /usr/share/gdb/auto-load/usr/lib && mv /usr/lib/libguile-*-gdb.scm /usr/share/gdb/auto-load/usr/lib && mv /usr/share/doc/guile-3.0.10/{guile.html,ref} && mv /usr/share/doc/guile-3.0.10/r5rs{.html,} && find examples -name "Makefile*" -delete && cp -vR examples /usr/share/doc/guile-3.0.10 && for DIRNAME in r5rs ref; do install -v -m644 doc/${DIRNAME}/*.txt \ /usr/share/doc/guile-3.0.10/${DIRNAME} done && unset DIRNAME Explicações do Comando --disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas. Conteúdo Aplicativos Instalados: guild, guile, guile-config, guile-snarf e guile-tools Bibliotecas Instaladas: libguile-3.0.so e guile-readline.so Diretórios Instalados: /usr/include/guile, /usr/lib/guile, /usr/share/doc/guile-3.0.10 e /usr/share/guile Descrições Curtas guile é um interpretador "Scheme" independente para Guile guile-config é um script Guile que fornece as informações necessárias para vincular seus programas à biblioteca Guile, em muito da mesma maneira que o "PkgConfig" faz guile-snarf é um script para analisar declarações em seu código C para funções visíveis C do Scheme guild é um aplicativo envólucro instalado junto com o guile, que sabe onde um determinado módulo está instalado e o chama, passando os argumentos dele para o aplicativo guile-tools é um vínculo simbólico para guild LLVM-19.1.7 Introdução ao LLVM O pacote LLVM contém uma coleção de compiladores modulares e reusáveis e tecnologias de conjunto de ferramentas. As bibliotecas centrais Low Level Virtual Machine (LLVM) fornecem um otimizador moderno independente de origem e destino, junto com suporte para geração de código para muitas CPUs populares (bem como algumas menos comuns!). Essas bibliotecas são construídas em torno de uma representação de código bem especificada, conhecida como a LLVM Intermediate Representation ("LLVM IR"). Clang fornece novas estruturas C, C++, Objective C e Objective C++ de interação direta com o(a) usuário(a) para o LLVM e é exigido por alguns pacotes de área de trabalho, como firefox, e para rust se for construído usando o sistema LLVM. O pacote Compiler RT fornece higienizador de tempo de execução e bibliotecas de perfilamento para desenvolvedores(as) que usam Clang e LLVM. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3931]https://github.com/llvm/llvm-project/releases/download/llvmor g-19.1.7/llvm-19.1.7.src.tar.xz * Transferência (FTP): * Soma de verificação MD5 da transferência: 45229744809103ad151e3757a0f21d3d * Tamanho da transferência: 65 MB * Espaço em disco estimado exigido: 3,5 GB (964 MB instalado; adicionar 20 GB para testes e 308 MB para documentação) * Tempo de construção estimado: 13 UPC (Adicionar 8 UPC para testes; ambos usando paralelismo=8) Transferências Adicionais módulos Cmake para LLVM * Transferência: [3932]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: [3933]https://anduin.linuxfromscratch.org/BLFS/llvm/llvm-third-part y-19.1.7.src.tar.xz * Soma de verificação MD5 da transferência: d950171ac5ea4a1a20cb8f6eb9f1c8eb * Tamanho da transferência: 448 KB Transferência Recomendada Clang * Transferência: [3934]https://github.com/llvm/llvm-project/releases/download/llvmor g-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 Transferência Opcional Compilador RT * Transferência: [3935]https://github.com/llvm/llvm-project/releases/download/llvmor g-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 Dependências do LLVM Exigidas [3936]CMake-3.31.5 Opcionais [3937]Doxygen-1.13.2, [3938]git-2.48.1, [3939]Graphviz-12.2.1, [3940]libxml2-2.13.6, [3941]psutil-7.0.0 (para testes), [3942]Pygments-2.19.1, [3943]PyYAML-6.0.2 (para testes), [3944]rsync-3.4.1 (para testes), [3945]texlive-20240312 (ou [3946]install-tl-unx), [3947]Valgrind-3.24.0, [3948]Zip-3.0, [3949]myst-parser (para construir documentação), [3950]OCaml e [3951]Z3 Instalação do LLVM Dois tarballs adicionais llvm-cmake-19.1.7.src.tar.xz e llvm-third-party-19.1.7.src.tar.xz são necessários para o sistema de construção do LLVM. O fluxo de desenvolvimento espera eles extraídos no mesmo nível, como o tarball llvm-19.1.7.src.tar.xz, e os diretórios extraídos renomeados para cmake e third-party. Extraia-os e modifique o sistema de construção para evitar criar diretórios ambiguamente nomeados fora da hierarquia llvm-19.1.7.src: tar -xf ../llvm-cmake-19.1.7.src.tar.xz && tar -xf ../llvm-third-party-19.1.7.src.tar.xz && sed '/LLVM_COMMON_CMAKE_UTILS/s@../cmake@cmake-19.1.7.src@' \ -i CMakeLists.txt && sed '/LLVM_THIRD_PARTY_DIR/s@../third-party@third-party-19.1.7.src@' \ -i cmake/modules/HandleLLVMOptions.cmake Nota Esses dois tarballs extraem nos diretórios chamados cmake-19.1.7.src e third-party-19.1.7.src, ou seja, os nomes dos diretórios carecem do prefixo llvm-. Instale o clang na árvore do fonte executando os seguintes comandos: tar -xf ../clang-19.1.7.src.tar.xz -C tools && mv tools/clang-19.1.7.src tools/clang Se você tiver baixado compiler-rt, instale-o na árvore do fonte executando os seguintes comandos: tar -xf ../compiler-rt-19.1.7.src.tar.xz -C projects && mv projects/compiler-rt-19.1.7.src projects/compiler-rt Existem muitos conjuntos de comandos sequenciais Python nesse pacote que usam /usr/bin/env python para acessar o Python do sistema, que no LFS é [3952]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 [3953]rustc-1.85.0): sed 's/utility/tool/' -i utils/FileCheck/CMakeLists.txt Instale o LLVM executando os seguintes comandos: mkdir -v build && cd build && CC=gcc CXX=g++ \ cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_SKIP_INSTALL_RPATH=ON \ -D LLVM_ENABLE_FFI=ON \ -D CMAKE_BUILD_TYPE=Release \ -D LLVM_BUILD_LLVM_DYLIB=ON \ -D LLVM_LINK_LLVM_DYLIB=ON \ -D LLVM_ENABLE_RTTI=ON \ -D LLVM_TARGETS_TO_BUILD="host;AMDGPU" \ -D LLVM_BINUTILS_INCDIR=/usr/include \ -D LLVM_INCLUDE_BENCHMARKS=OFF \ -D CLANG_DEFAULT_PIE_ON_LINUX=ON \ -D CLANG_CONFIG_FILE_SYSTEM_DIR=/etc/clang \ -W no-dev -G Ninja .. && ninja Se você deseja executar a suíte de teste e tiver baixado o compiler-rt, contorne um problema que causa falhas de testes ao construir o LLVM com GCC e -D CLANG_CONFIG_FILE_SYSTEM_DIR: sed -e 's/config.has_no_default_config_flag/True/' \ -i ../projects/compiler-rt/test/lit.common.cfg.py A suíte de testes do LLVM pode produzir muitos arquivos de despejo de core. Eles ocuparão uma grande quantidade de espaço em disco e o processo de despejo de core pode retardar significativamente a testagem. Para testar os resultados com o despejo de core desabilitado, emita: sh -c 'ulimit -c 0 && ninja check-all' Se -jN (N substituído por um número) for passado para ninja, os testes serão construídos com N núcleos lógicos, mas executados usando todos os núcleos lógicos disponíveis. Execute o comando de teste em um cgroup ( leia [3954]“Use o Grupo de Controle do Linux para Limitar o Uso de Recursos” para detalhes) para limitar o número de núcleos lógicos para executar os testes. Um teste chamado Linux/clone_setns.cpp falhará se CONFIG_USER_NS não estiver habilitada na configuração do núcleo. Agora, como o(a) usuário(a) root: ninja install Explicações do Comando -D CMAKE_SKIP_INSTALL_RPATH=ON: Essa chave faz com que cmake remova caminhos de pesquisa de biblioteca rigidamente codificados (rpath) ao instalar um arquivo binário executável ou uma biblioteca compartilhada. Esse pacote não precisa do rpath depois de instalado no local padrão, e o rpath ocasionalmente pode causar efeitos indesejados ou até mesmo problemas de segurança. -D LLVM_ENABLE_FFI=ON: Essa chave permite que o LLVM use libffi. -D LLVM_BUILD_LLVM_DYLIB=ON: Essa chave constrói as bibliotecas como estáticas e vincula todas elas em uma biblioteca compartilhada exclusiva. Essa é a forma recomendada de construir uma biblioteca compartilhada. -D CMAKE_BUILD_TYPE=Release: Essa chave habilita otimizações do compilador para a finalidade de acelerar o código e reduzir o tamanho dele. Também desabilita algumas verificações de compilação que não são necessárias em um sistema de produção. -D LLVM_TARGETS_TO_BUILD="host;AMDGPU": Essa chave habilita construir para o mesmo alvo que o anfitrião e, também, para a GPU r600 da AMD, usada pelos controladores r600 e radeonsi do Mesa. O padrão é todos os alvos. Você pode usar uma lista separada por ponto e vírgula. Os alvos válidos são: host, AArch64, AMDGPU, ARM, AVR, BPF, Hexagon, Lanai, LoongArch, Mips, MSP430, NVPTX, PowerPC, RISCV, Sparc, SystemZ, SystemZ, VE, WebAssembly, X86, XCore ou all. -D LLVM_LINK_LLVM_DYLIB=ON: Usado em conjunção com -D LLVM_BUILD_LLVM_DYLIB=ON, essa chave habilita vincular as ferramentas à biblioteca compartilhada em vez das estáticas. Reduz ligeiramente o tamanho delas e também garante que "llvm-config" usará corretamente "libLLVM-19.so". -D LLVM_ENABLE_RTTI=ON: Essa chave é usada para construir LLVM com informações de tipo de tempo de execução. Isso é necessário para construir [3955]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 [3956]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 [3957]Doxygen-1.13.2. Você deveria executar make doxygen-html depois e instalar a documentação gerada manualmente. Configurando LLVM Informação de Configuração Se você tiver construído o Clang, como o(a) usuário(a) root, crie dois arquivos de configuração para tornar [3958]SSP habilitado por padrão para clang e clang++, de forma que a configuração padrão do recurso SSP deles seja consistente com [3959]GCC-14.2.0: mkdir -pv /etc/clang && for i in clang clang++; do echo -fstack-protector-strong > /etc/clang/$i.cfg done Conteúdo Aplicativos Instalados: amdgpu-arch, analyze-build, bugpoint, c-index-test, clang, clang++ (links simbólicos para clang-19), clang-19, clang-check, clang-cl, clang-cpp (os últimos dois links simbólicos para clang), clang-extdef-mapping, clang-format, clang-linker-wrapper, clang-offload-bundler, clang-offload-packager, clang-refactor, clang-rename, clang-repl, clang-scan-deps, clang-tblgen, diagtool, dsymutil, FileCheck, git-clang-format, hmaptool, intercept-build, llc, lli, llvm-addr2line (link simbólico para llvm-symbolizer), llvm-ar, llvm-as, llvm-bcanalyzer, llvm-bitcode-strip (link simbólico para llvm-objcopy), llvm-cat, llvm-cfi-verify, llvm-config, llvm-cov, llvm-c-test, llvm-cvtres, llvm-cxxdump, llvm-cxxfilt, llvm-cxxmap, llvm-debuginfo-analyzer, llvm-debuginfod, llvm-debuginfod-find, llvm-diff, llvm-dis, llvm-dlltool (link simbólico para llvm-ar), llvm-dwarfdump, llvm-dwarfutil, llvm-dwp, llvm-exegesis, llvm-extract, llvm-gsymutil, llvm-ifs, llvm-install-name-tool (link simbólico para llvm-objcopy), llvm-jitlink, llvm-lib (link simbólico para llvm-ar), llvm-libtool-darwin, llvm-link, llvm-lipo, llvm-lto, llvm-lto2, llvm-mc, llvm-mca, llvm-ml, llvm-modextract, llvm-mt, llvm-nm, llvm-objcopy, llvm-objdump, llvm-opt-report, llvm-otool (link simbólico para llv-objdump), llvm-pdbutil, llvm-profdata, llvm-profgen, llvm-ranlib (link simbólico para llvm-ar), llvm-rc, llvm-readelf (link simbólico para llvm-readobj), llvm-readobj, llvm-readtapi, llvm-reduce, llvm-remarkutil, llvm-rtdyld, llvm-sim, llvm-size, llvm-split, llvm-stress, llvm-strings, llvm-strip (link simbólico para llvm-objcopy), llvm-symbolizer, llvm-tblgen, llvm-tli-checker, llvm-undname, llvm-windres (link simbólico para llvm-rc), llvm-xray, nvptx-arch, opt, sancov, sanstats, scan-build, scan-build-py, scan-view e verify-uselistorder Bibliotecas Instaladas: libLLVM.so, libLLVM*.a (107 bibliotecas), libLTO.so, libRemarks.so, libclang.so, libclang-cpp.so, libclang*.a (43 bibliotecas) e LLVMgold.so Diretórios Instalados: /usr/include/{clang,clang-c,llvm,llvm-c}, /usr/lib/{clang,cmake/{clang,llvm},libear,libscanbuild}, /usr/share/{clang,opt-viewer,scan-build,scan-view} e /etc/clang Descrições Curtas amdgpu-arch lista as GPUs AMD instaladas; em tempo de execução ele precisa de libhsa-runtime64.so que não é parte do BLFS analyze-build é uma ferramenta de análise estática bugpoint é a ferramenta automática de redução de casos de teste c-index-test é usado para testar a API da libclang e demonstrar o uso dela clang é o compilador C, C++ e Objective-C do Clang clang-check é uma ferramenta para realizar análise estática de código e exibir Abstract Syntax Trees (AST) clang-extdef-mapping é uma ferramenta para coletar o nome do USR e o local de definições externas em um arquivo de fonte clang-format é uma ferramenta para formatar código C/C++/Java/JavaScript/Objective-C/Protobuf clang-linker-wrapper é um utilitário envólucro sobre o vinculador de dispositivo clang-offload-bundler é uma ferramenta para agrupar/desagrupar arquivos descarregados OpenMP associados a um arquivo fonte comum clang-offload-packager é uma ferramenta para agrupar vários arquivos de objeto em um binário, que pode então ser usado para criar um binário que contenha código nativo para várias arquiteturas de processador contendo código de descarregamento clang-refactor é uma ferramenta de refatoração baseada em Clang para C, C++ e Objective-C clang-rename é uma ferramenta para renomear símbolos em aplicativos C/C++ clang-scan-deps é uma ferramenta para escanear dependências em um arquivo fonte clang-tblgen é um programa que traduz arquivos de descrição de alvo relacionados ao compilador (.td) para código C++ e outros formatos de saída diagtool é uma combinação de ferramentas para lidar com diagnósticos em clang FileCheck é uma ferramenta que lê dois arquivos (um a partir da entrada padrão e outro especificado na linha de comando) e usa um para verificar o outro. dsymutil é uma ferramenta usada para manipular arquivos de símbolos de depuração DWARF arquivados, compatível com o comando dsymutil do Darwin git-clang-format executa clang-format em remendos gerados pelo git (exige [3960]git-2.48.1) hmaptool é uma ferramenta Python para despejar e construir mapas de cabeçalho intercept-build gera uma base de dados de comandos de construção para um projeto llc é o compilador estático LLVM lli é usado para executar aplicativos diretamente a partir do bitcode do LLVM llvm-addr2line é uma ferramenta usada para converter endereços em nomes de arquivos e números de linha llvm-ar é o arquivador do LLVM llvm-as é o montador do LLVM llvm-bcanalyzer é o analizador de bitcode do LLVM llvm-bitcode-strip remove o bitcode de LLVM de um objeto llvm-cat é uma ferramenta para concatenar módulos llvm llvm-cfi-verify identifica se o Control Flow Integrity protege todas as instruções de fluxo de controle indireto no arquivo de objeto fornecido, DSO ou binário llvm-config Imprime as opções de compilação do LLVM llvm-cov é usado para emitir informações de cobertura llvm-c-test é um desmontador de bytecode llvm-cvtres é uma ferramenta para converter arquivos de recursos da Microsoft em COFF llvm-cxxdump é usado como um Despejador de Dados de ABI da C++ llvm-cxxfilt é usado para desmontar símbolos C++ no código llvm llvm-cxxmap é usado para remapear símbolos mutilados da C++ llvm-debuginfo-analyzer imprime uma representação lógica de informações de depuração de baixo nível llvm-debuginfod é um serviço que fornece informações de depuração por meio de uma API de HTTP para analisar binários despojados llvm-debuginfod-find é uma interface para o processo de segundo plano llvm-debuginfod para achar artefatos debuginfod llvm-diff é o 'diff' estrutural do LLVM llvm-dis é o desmontador do LLVM llvm-dwarfdump imprime o conteúdo das seções DWARF em arquivos objeto llvm-dwarfutil é uma ferramenta para copiar e manipular informações de depuração llvm-dwp mescla arquivos divididos DWARF llvm-elfabi é usado para ler informações relativas a uma ABI de um binário ELF llvm-exegesis é uma ferramenta de comparação que usa informações disponíveis no LLVM para medir características de instrução de máquina do dispositivo, como latência ou decomposição de porta llvm-extract é usado para extrair uma função a partir de um módulo do LLVM llvm-gsymutil é usado para processar arquivos no formato de simbolização GSYM que convertem endereços de memória para nome de função e linha de arquivo fonte. Esses arquivos são menores que os arquivos "DWARF" ou "Breakpad" llvm-ifs é usado para mesclar "stubs" de interface com arquivos de objeto llvm-install-name-tool é usado para reescrever comandos de carregamento no formato binário "MachO" llvm-jitlink é usado para analisar arquivos de objetos relocáveis para tornar o conteúdo deles executável em um processo alvo llvm-libtool-darwin fornece funcionalidade básica da libtool em sistemas baseados em Darwin. Isso é útil principalmente se você estiver gerando binários para sistemas macOS llvm-link é o vinculador do LLVM llvm-lipo é usado para criar binários universais a partir de arquivos MachO llvm-lto é o vinculador Link Time Optimization (LTO) do LLVM llvm-lto2 é um equipamento de teste para a interface LTO baseada em resolução llvm-mc é um montador/desmontador de código de máquina autônomo llvm-mca é uma ferramenta de análise de desempenho para medir estaticamente o desempenho do código de máquina llvm-ml é um área de recreação para código de máquina fornecido pelo LLVM llvm-modextract é uma ferramenta para extrair um módulo a partir de arquivos bitcode multi módulos llvm-mt é uma ferramenta para gerar arquivos e catálogos assinados a partir de um manifesto de montagem lado a lado (usado para SDK da Microsoft) llvm-nm é usado para listar o bitcode do LLVM e a tabela de símbolos do arquivo objeto llvm-objcopy é a versão do LLVM de uma ferramenta objcopy llvm-objdump é um despejador de arquivo objeto do LLVM llvm-opt-report é uma ferramenta para gerar um informe de otimização a partir de arquivos de registro de otimização YAML llvm-pdbutil é um despejador Program Database (PDB). PDB é um formato da Microsoft llvm-profdata é uma pequena ferramenta para manipular e imprimir arquivos de dados de perfil llvm-profgen gera informações de perfil SPGO do LLVM llvm-ranlib é usado para gerar um índice para um arquivamento do LLVM llvm-rc é uma ferramenta independente de plataforma para compilar scripts de recursos em arquivos de recursos de binários llvm-readobj exibe informações específicas de formato de baixo nível relativas a arquivos de objeto llvm-readtapi é o leitor e transformador de arquivos TAPI do LLVM llvm-reduce é usado para reduzir automaticamente os casos de teste ao executar uma suíte de teste llvm-remarkutil converte arquivos de observação entre bitstream e YAML; ou imprime informações de contagem de instruções de função em arquivos de observação llvm-rtdyld é a ferramenta MC-JIT do LLVM llvm-size é o despejador de tamanho de objeto do LLVM llvm-split é o divisor de módulo do LLVM llvm-stress é usado para gerar arquivos aleatórios .ll llvm-strings imprime sequências de caracteres encontradas em um binário (arquivo objeto, executável ou biblioteca de arquivamento) llvm-symbolizer converte endereços em locais de código-fonte llvm-tblgen é a descrição alvo do LLVM para o gerador de código C++ llvm-tli-checker é o verificador TargetLibraryInfo versus SDK do LLVM llvm-undname é uma ferramenta para desmantelar nomes llvm-xray é uma implementação do sistema de rastreamento de chamadas de função XRay do Google nvptx-arch lista as GPUs NVIDIA instaladas; em tempo de execução ele precisa de libcuda.so que não é parte do BLFS opt é o otimizador do LLVM sancov é a ferramenta de processamento de cobertura de higienizador sanstats é a ferramenta de processamento de estatísticas de higienizador scan-build é um conjunto de comandos sequenciais Perl que invoca o analisador estático Clang scan-build-py é um conjuntos de comandos sequenciais Python que invoca o analisador estático Clang scan-view é um visualizador dos resultados do analisador estático Clang verify-uselistorder é a ferramenta do LLVM para verificar a ordem da lista de uso Lua-5.4.7 Introdução ao "Lua" Lua é uma linguagem de programação poderosa e leve projetada para estender aplicativos. Também é frequentemente usada como uma linguagem autônoma de uso geral. Lua é implementada como uma pequena biblioteca de funções "C", escrita em "ANSI C", e compila sem modificações em todas as plataformas conhecidas. Os objetivos de implementação são simplicidade, eficiência, portabilidade e baixo custo de incorporação. O resultado é um mecanismo de linguagem rápido e compacto, tornando-a ideal em sistemas embarcados também. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3961]https://www.lua.org/ftp/lua-5.4.7.tar.gz * Transferência (FTP): * Soma de verificação MD5 da transferência: fc3f3291353bbe6ee6dec85ee61331e8 * Tamanho da transferência: 368 KB * Espaço em disco estimado exigido: 3,8 MB (com testes Básicos) * Tempo de construção estimado: menos que 0,1 UPC (com os testes Básicos) Transferências Adicionais * Remendo exigido: [3962]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): [3963]https://www.lua.org/tests/lua-5.4.7-tests.tar.gz * Transferência da Suíte Opcional de Teste (FTP): * 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 Instalação do "Lua" Alguns pacotes verificam o arquivo pkg-config para Lua, o qual é criado com: cat > lua.pc << "EOF" V=5.4 R=5.4.7 prefix=/usr INSTALL_BIN=${prefix}/bin INSTALL_INC=${prefix}/include INSTALL_LIB=${prefix}/lib INSTALL_MAN=${prefix}/share/man/man1 INSTALL_LMOD=${prefix}/share/lua/${V} INSTALL_CMOD=${prefix}/lib/lua/${V} exec_prefix=${prefix} libdir=${exec_prefix}/lib includedir=${prefix}/include Name: Lua Description: Uma Linguagem de Extensão Extensível Version: ${R} Requires: Libs: -L${libdir} -llua -lm -ldl Cflags: -I${includedir} EOF Instale Lua executando os seguintes comandos: patch -Np1 -i ../lua-5.4.7-shared_library-1.patch && make linux Para testar os resultados, emita: make test. “Isso executará o interpretador e imprimirá a versão dele”. Testes mais abrangentes podem ser realizados se você baixou o tarball da "Suíte de teste". Esses testes precisam ser executados depois que o pacote estiver instalado, por isso seguimos para a descrição abaixo. Agora, como o(a) usuário(a) root: make INSTALL_TOP=/usr \ INSTALL_DATA="cp -d" \ INSTALL_MAN=/usr/share/man/man1 \ TO_LIB="liblua.so liblua.so.5.4 liblua.so.5.4.7" \ install && mkdir -pv /usr/share/doc/lua-5.4.7 && cp -v doc/*.{html,css,gif,png} /usr/share/doc/lua-5.4.7 && install -v -m644 -D lua.pc /usr/lib/pkgconfig/lua.pc Aqui descrevemos somente os "Testes básicos". Descompacte o "tarball" e mude para o diretório lua-5.4.7-tests e emita lua -e "_U=true" all.lua. Se os testes terminarem sem erros, [então] você verá uma mensagem contendo a sequência de caracteres "final OK". Conteúdo Aplicativos Instalados: lua e luac Biblioteca Instalada: liblua.so Diretórios Instalados: /usr/{lib,share}/lua e /usr/share/doc/lua-5.4.7 Descrições Curtas lua é o interpretador independente "Lua" luac é o compilador "Lua" liblua.so contém as funções da "API" da Lua luajit-20250212 Introdução ao luajit O pacote luajit contém um compilador Just-In-Time para Lua. Ele frequentemente é usado como middleware de automação, e tem alto desempenho, ao mesmo tempo em que ocupa pouca memória. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3964]https://anduin.linuxfromscratch.org/BLFS/luajit/luajit-202502 12.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 Instalação do luajit Instale luajit executando os seguintes comandos: make PREFIX=/usr amalg Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) root: make PREFIX=/usr install && rm -v /usr/lib/libluajit-5.1.a Explicações do Comando amalg: Isso garante uma construção amalgamada, ou seja, o núcleo LuaJIT é compilado como um grande arquivo C, permitindo que o GCC gere código mais rápido e mais curto. Conteúdo Aplicativos Instalados: luajit (link simbólico para luajit-2.1.ROLLING) e luajit-2.1.ROLLING Bibliotecas Instaladas: libluajit-5.1.so Diretórios Instalados: /usr/include/luajit-2.1 e /usr/share/luajit-2.1 Descrições Curtas luajit fornece um compilador Just-In-Time para Lua libluajit-5.1.so contém uma API para o compilador Just-In-Time para Lua Mercurial-6.9.2 Introdução ao "Mercurial" Mercurial é uma ferramenta de gerenciamento distribuído de controle de fonte semelhante ao Git e ao Bazaar. Mercurial é escrita em Python e é usada por projetos como "Mozilla" para "Firefox" e "Thunderbird". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3965]https://www.mercurial-scm.org/release/mercurial-6.9.2.tar.gz * Transferência (FTP): * Soma de verificação MD5 da transferência: 05cb7a265bf503c0b934e3591f3c66ac * Tamanho da transferência: 8,3 MB * Espaço em disco estimado exigido: 83 MB (com documentos, adicionar 1,6 GB para testes) * Tempo de construção estimado: 0,3 UPC (com documentos; adicionar 15 UPC para testes; ambos usando paralelismo=8) Dependências do "Mercurial" Opcionais [3966]docutils-0.21.2 (exigido para construir a documentação), [3967]git-2.48.1, [3968]GPGME-1.24.2 (com ligações "Python"), [3969]OpenSSH-9.9p2 (tempo de execução, para acessar repositórios "ssh://..."), [3970]Pygments-2.19.1, [3971]rustc-1.85.0 (veja-se rust/README.rst e rust/rhg/README.md), [3972]Subversion-1.14.5 (com ligações "Python"), [3973]Bazaar, [3974]CVS, [3975]pyflakes, [3976]pyOpenSSL e [3977]re2 Instalação do "Mercurial" Construa Mercurial emitindo o seguinte comando: make build Para construir a documentação (exige [3978]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 --tmpdir tmp" make check onde é 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 = EOF onde você precisa substituir e (o correio é opcional e pode ser omitido). Com a identidade do(a) usuário(a) definida, execute hg debuginstall e diversas linhas serão exibidas, a última dizendo "no problems detected". Outro teste rápido e simples é apenas hg, que deveria gerar comandos básicos que conseguem ser usados com hg. Configurando o "Mercurial" Arquivos de Configuração /etc/mercurial/hgrc e ~/.hgrc A maioria das extensões está desabilitada por padrão. Execute hg help extensions se precisar habilitar alguma, por exemplo. ao investigar falhas de teste. Isso exibirá uma lista de extensões habilitadas e desabilitadas, bem como mais informações, tais como habilitar ou desabilitar extensões usando arquivos de configuração. Se você tiver instalado o [3979]make-ca-1.15 e deseja que o Mercurial use os certificados, [então] como o(a) usuário(a) root, emita: install -v -d -m755 /etc/mercurial && cat > /etc/mercurial/hgrc << "EOF" [web] cacerts = /etc/pki/tls/certs/ca-bundle.crt EOF Conteúdo Aplicativos Instalados: hg Bibliotecas Instaladas: vários módulos internos sob /usr/lib/python3.13/site-packages/mercurial Diretórios Instalados: /etc/mercurial, /usr/lib/python3.13/site-packages/hgdemandimport, /usr/lib/python3.13/site-packages/hgext, /usr/lib/python3.13/site-packages/hgext3rd, /usr/lib/python3.13/site-packages/mercurial e /usr/lib/python3.13/site-packages/mercurial-6.9.2-py3.13.egg-info Descrições Curtas hg é o sistema de controle de versão "mercurial" NASM-2.16.03 Introdução ao "NASM" NASM ("Netwide Assembler") é um montador "80x86" projetado para portabilidade e modularidade. Inclui também um desmontador. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3980]https://www.nasm.us/pub/nasm/releasebuilds/2.16.03/nasm-2.16. 03.tar.xz * Transferência (FTP): * 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 Transferências Adicionais * Documentação opcional: [3981]https://www.nasm.us/pub/nasm/releasebuilds/2.16.03/nasm-2.16. 03-xdoc.tar.xz Dependências do "NASM" Opcional (para gerar documentação): [3982]asciidoc-10.2.1 e [3983]xmlto-0.0.29 Instalação do "NASM" Se você baixou a documentação opcional, [então] coloque-a na árvore do fonte: tar -xf ../nasm-2.16.03-xdoc.tar.xz --strip-components=1 Instale NASM executando os seguintes comandos: ./configure --prefix=/usr && make Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) root: make install Se você baixou a documentação opcional, [então] instale-a com as seguintes instruções como o(a) usuário(a) root: install -m755 -d /usr/share/doc/nasm-2.16.03/html && cp -v doc/html/*.html /usr/share/doc/nasm-2.16.03/html && cp -v doc/*.{txt,ps,pdf} /usr/share/doc/nasm-2.16.03 Conteúdo Aplicativos Instalados: nasm e ndisasm Bibliotecas Instaladas: Nenhum(a) Diretório Instalado: /usr/share/doc/nasm-2.16.03 Descrições Curtas nasm é um montador portável "80x86" ndisasm é um desmontador de arquivos binários "80x86" Patchelf-0.18.0 Introdução ao "Patchelf" O pacote patchelf contém um pequeno utilitário para modificar o vinculador dinâmico e o "RPATH" dos executáveis "ELF". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [3984]https://github.com/NixOS/patchelf/releases/download/0.18.0/pa tchelf-0.18.0.tar.gz * Transferência (FTP): * 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) Instalação do "Patchelf" Instale patchelf executando os seguintes comandos: ./configure --prefix=/usr \ --docdir=/usr/share/doc/patchelf-0.18.0 && make Para testar os resultados, emita: make check. Agora, como o(a) usuário(a) root: make install Conteúdo Aplicativo Instalado: patchelf Descrições Curtas patchelf é um utilitário simples para modificar executáveis e bibliotecas "ELF" existentes; ele consegue mudar o carregador dinâmico ("interpretador ELF") de executáveis e mudar o "RPATH" de executáveis e bibliotecas. Módulos Perl Introdução aos Módulos "Perl" Os pacotes de módulos Perl (também chamados de Distribuições, porque cada um pode conter vários módulos) adicionam objetos úteis à linguagem Perl. Os pacotes listados nesta página são exigidos ou recomendados para outros pacotes no livro. Se eles tiverem módulos dependentes, [então] esses estarão ou nesta página ou na próxima página ([3985]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 [3986]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): [3987]https://wiki.linuxfromscratch.org/blfs/wiki/perl-modules * [3988]Archive-Zip-1.68 * [3989]autovivification-0.18 * [3990]Business-ISBN-3.011 * [3991]Business-ISMN-1.204 * [3992]Business-ISSN-1.008 * [3993]Class-Accessor-0.51 * [3994]Data-Compare-1.29 * [3995]Data-Dump-1.25 * [3996]Data-Uniqid-0.12 * [3997]DateTime-Calendar-Julian-0.107 * [3998]DateTime-Format-Builder-0.83 * [3999]Encode-EUCJPASCII-0.03 * [4000]Encode-HanExtra-0.23 * [4001]Encode-JIS2K-0.05 * [4002]File-FcntlLock-0.22 * [4003]File-Slurper-0.014 * [4004]File-Which-1.27 * [4005]HTML-Parser-3.83 * [4006]HTTP-Daemon-6.16 * [4007]IO-Socket-SSL-2.089 * [4008]IO-String-1.08 * [4009]IPC-Run3-0.049 * [4010]libwww-perl-6.78 * [4011]Lingua-Translit-0.29 * [4012]List-AllUtils-0.19 * [4013]List-MoreUtils-0.430 * [4014]Log-Log4perl-1.57 * [4015]LWP-Protocol-https-6.14 * [4016]Module-Build-0.4234 * [4017]Net-DNS-1.50 * [4018]Parse-RecDescent-1.967015 * [4019]Parse-Yapp-1.21 * [4020]PerlIO-utf8_strict-0.010 * [4021]Regexp-Common-2024080801 * [4022]SGMLSpm-1.1 * [4023]Sort-Key-1.33 * [4024]Test-Command-0.11 * [4025]Test-Differences-0.71 * [4026]Text-BibTeX-0.91 * [4027]Text-CSV-2.05 * [4028]Text-Roman-3.5 * [4029]Unicode-Collate-1.31 * [4030]Unicode-LineBreak-2019.001 * [4031]URI-5.31 * [4032]XML-LibXML-Simple-1.01 * [4033]XML-LibXSLT-2.003000 * [4034]XML-Simple-2.25 * [4035]XML-Writer-0.900 * [4036]Instalação automatizada "CPAN" de módulos "Perl" Archive::Zip-1.68 Introdução ao "Archive::Zip" O módulo "Archive::Zip" permite que um aplicativo "Perl" crie, manipule, leia e escreva arquivamentos "Zip". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4037]https://www.cpan.org/authors/id/P/PH/PHRED/Archive-Zip-1.68.t ar.gz * Soma de verificação MD5 da transferência: a33993309322164867c99e04a4000ee3 Dependências do "Archive::Zip" Recomendadas (para a suíte de teste) [4038]libarchive-3.7.7 Instalação do "Archive::Zip" Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install Conteúdo Aplicativos Instalados: crc32 Descrições Curtas crc32 computa e imprime na saída gerada padrão os valores "CRC-32" dos arquivos fornecidos autovivification-0.18 Introdução ao módulo "autovivification" Esse módulo permite que você desabilite a "autovivificação" (a criação e povoamento automática de novos vetores e resumos sempre que variáveis indefinidas são desreferenciadas) e, opcionalmente, lançar um aviso ou um erro quando isso tivesse ocorrido. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4039]https://www.cpan.org/authors/id/V/VP/VPIT/autovivification-0. 18.tar.gz * Soma de verificação MD5 da transferência: 8dec994e1e7d368e055f21a5777385a0 Instalação do "autovivification" Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install Business::ISBN-3.011 Introdução ao "Business::ISBN" O módulo "Business::ISBN" fornece funções para trabalhar-se com números internacionais padrão de livros. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4040]https://www.cpan.org/authors/id/B/BR/BRIANDFOY/Business-ISBN- 3.011.tar.gz * Soma de verificação MD5 da transferência: 58f498cc9b44f0727ffa9b66c67f812e Dependências do "Business::ISBN" Exigidas [4041]Business-ISBN-Data-20250205.001 Instalação do "Business::ISBN" Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install Business::ISMN-1.204 Introdução ao "Business::ISMN" O módulo Business::ISMN fornece funções para trabalhar com International Standard Music Numbers. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4042]https://www.cpan.org/authors/id/B/BR/BRIANDFOY/Business-ISMN- 1.204.tar.gz * Soma de verificação MD5 da transferência: dbc9023703262ee29d1b9e9a8294106c Dependências do "Business::ISMN" Exigidas [4043]Tie-Cycle-1.229 Instalação do "Business::ISMN" Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install Business::ISSN-1.008 Introdução ao "Business::ISSN" O módulo Business::ISSN fornece funções para trabalhar com International Standard Serial Numbers. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4044]https://www.cpan.org/authors/id/B/BR/BRIANDFOY/Business-ISSN- 1.008.tar.gz * Soma de verificação MD5 da transferência: 967e79eff741c8710d70c64fb593eda1 Instalação do "Business::ISSN" Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install Class::Accessor-0.51 Introdução ao "Class::Accessor" "Class::Accessor" gera acessadores/mutadores para sua classe. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4045]https://www.cpan.org/authors/id/K/KA/KASEI/Class-Accessor-0.5 1.tar.gz * Soma de verificação MD5 da transferência: 1f1e5990f87cad7659b292fed7dc0407 Instalação do "Class::Accessor" Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install Data::Compare-1.29 Introdução ao "Data::Compare" O módulo "Data::Compare" compara duas estruturas de dados perl. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4046]https://www.cpan.org/authors/id/D/DC/DCANTRELL/Data-Compare-1 .29.tar.gz * Soma de verificação MD5 da transferência: ce9cb42ba6af634f5ab51f13f37e2ddb Dependências do "Data::Compare" Exigidas [4047]Clone-0.47 e [4048]File-Find-Rule-0.34 Instalação do "Data::Compare" Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install Data::Dump-1.25 Introdução ao "Data::Dump" "Data::Dump" fornece uma impressão bonita de estruturas de dados. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4049]https://www.cpan.org/authors/id/G/GA/GARU/Data-Dump-1.25.tar. gz * Soma de verificação MD5 da transferência: 9bd7131ef0441e1e0e001bf85e9fae31 Instalação do "Data::Dump" Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install Data::Uniqid-0.12 Introdução ao "Data::Uniqid" "Data::Uniqid" fornece três rotinas simples para gerar "IDs" exclusivos. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4050]https://www.cpan.org/authors/id/M/MW/MWX/Data-Uniqid-0.12.tar .gz * Soma de verificação MD5 da transferência: 6bab3b5da09fedfdf60ce2629a7367db Instalação do "Data::Uniqid" Embora o teste final falhe e informe um "Error", a suíte de teste retorna uma situação de zero (0). O erro pode ser seguramente ignorado. Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install DateTime::Calendar::Julian-0.107 Introdução ao "DateTime::Calendar::Julian" "DateTime::Calendar::Julian" implementa o Calendário Juliano. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4051]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 Dependências do "DateTime::Calendar::Julian" Exigidas [4052]DateTime-1.65 Instalação do "DateTime::Calendar::Julian" Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install DateTime::Format::Builder-0.83 Introdução ao "DateTime::Format::Builder" DateTime::Format::Builder cria classes e objetos do analisador DateTime. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4053]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 Dependências do "DateTime::Format::Builder" Exigidas [4054]DateTime-Format-Strptime-1.79 e [4055]Params-Validate-1.31 Instalação do "DateTime::Format::Builder" Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install Encode::EUCJPASCII-0.03 Introdução ao "Encode::EUCJPASCII" "Encode::EUCJPASCII" fornece um mapeamento "eucJP-open" ("Extended Unix Code", japonês). Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4056]https://www.cpan.org/authors/id/N/NE/NEZUMI/Encode-EUCJPASCII -0.03.tar.gz * Soma de verificação MD5 da transferência: 5daa65f55b7c2050bb0713d9e95f239d Instalação do "Encode::EUCJPASCII" Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install Encode::HanExtra-0.23 Introdução ao "Encode::HanExtra" O módulo "Encode::HanExtra" fornece conjuntos extras de codificações chinesas as quais não estão incluídas no módulo "Encode" principal devido a problemas de tamanho. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4057]https://www.cpan.org/authors/id/A/AU/AUDREYT/Encode-HanExtra- 0.23.tar.gz * Soma de verificação MD5 da transferência: e1d3bc32c1c8ee304235a06fbcd5d5a4 Instalação do "Encode::HanExtra" Esse módulo usa as instruções de construção e instalação 'inseguras' (no perl-5.26.0 o uso do diretório atual em @INC foi removido por razões de segurança e esse módulo não foi atualizado): PERL_USE_UNSAFE_INC=1 perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install Encode::JIS2K-0.05 Introdução ao "Encode::JIS2K" O módulo "Encode::JIS2K" fornece codificações "JIS X 0212" (também conhecidas como "JIS 2000"). Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4058]https://www.cpan.org/authors/id/D/DA/DANKOGAI/Encode-JIS2K-0. 05.tar.gz * Soma de verificação MD5 da transferência: 06acd9e878d41ffc354258e265db2875 Instalação do "Encode::JIS2K" Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install File::FcntlLock-0.22 Introdução ao File::FcntlLock File::FcntlLock é um módulo para fazer bloqueio de arquivos de maneira orientada a objetos usando a chamada de sistema [4059]fcntl(2). Isso permite bloqueios em partes de um arquivo, bem como em todo o arquivo e supera alguns problemas conhecidos com [4060]flock(2), no qual a função flock() do Perl é baseada por padrão. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4061]https://www.cpan.org/authors/id/J/JT/JTT/File-FcntlLock-0.22. tar.gz * Soma de verificação MD5 da transferência: 579698d735d864ee403674f1175f789d Instalação do File::FcntlLock Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install File::Slurper-0.014 Introdução ao "File::Slurper" "File::Slurper" é um módulo simples, sensato e eficiente para sorver um arquivo. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4062]https://www.cpan.org/authors/id/L/LE/LEONT/File-Slurper-0.014 .tar.gz * Soma de verificação MD5 da transferência: d43bc5f069035eff3b6b7c418b4cedc4 Dependências do "File::Slurper" Recomendadas (exigidas para a suíte de teste) [4063]Test-Warnings-0.038 Instalação do "File::Slurper" Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install File::Which-1.27 Introdução ao "File::Which" "File::Which" fornece uma implementação portável do utilitário 'which'. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4064]https://www.cpan.org/authors/id/P/PL/PLICEASE/File-Which-1.27 .tar.gz * Soma de verificação MD5 da transferência: d5c9154262b93398f0750ec364207639 Instalação do "File::Which" Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install HTML::Parser-3.83 Introdução ao "HTML::Parser" A distribuição "HTML::Parser" é uma coleção de módulos que analisam e extraem informações a partir de documentos "HTML". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4065]https://www.cpan.org/authors/id/O/OA/OALDERS/HTML-Parser-3.83 .tar.gz * Soma de verificação MD5 da transferência: 17a4c886024bfad1cffcbe6b46cda128 Dependências do "HTML::Parser" Exigidas [4066]HTML-Tagset-3.24 e [4067]HTTP-Message-7.00 (estritamente falando, não exigido para construção, mas o módulo HTTP::Headers dele é exigido para testes e uma exigência de tempo de execução para HTML::HeadParser proveniente dessa distribuição). Instalação do "HTML::Parser" Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install HTTP::Daemon-6.16 Introdução ao "HTTP::Daemon" As instâncias da classe "HTTP::Daemon" são servidores "HTTP/1.1" que escutam em um soquete as solicitações entrantes. O "HTTP::Daemon" é uma subclasse de "IO::Socket::INET", de forma que você consegue realizar operações de soquete diretamente nele também. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4068]https://www.cpan.org/authors/id/O/OA/OALDERS/HTTP-Daemon-6.16 .tar.gz * Soma de verificação MD5 da transferência: 51425462790165aeafc2819a7359706f Dependências do "HTTP::Daemon" Exigidas [4069]HTTP-Message-7.00 Nota "Makefile.PL" e a execução dos testes reclamarão que "Module::Build::Tiny" está ausente, mas isso só é necessário para Build.PL que é usado se o sistema carecer de um compilador "C". Instalação do "HTTP::Daemon" Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install IO::Socket::SSL-2.089 Introdução ao "IO::Socket::SSL" "IO::Socket::SSL" torna usar "SSL/TLS" muito mais fácil, agrupando a funcionalidade necessária na interface familiar "IO::Socket" e fornecendo padrões seguros sempre que possível. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4070]https://www.cpan.org/authors/id/S/SU/SULLR/IO-Socket-SSL-2.08 9.tar.gz * Soma de verificação MD5 da transferência: 1e9cf40beaaafa502de8f3b560a9adee Dependências do "IO::Socket::SSL" Exigidas [4071]make-ca-1.15 e [4072]Net-SSLeay-1.94 Recomendadas [4073]URI-5.31 (para acessar nomes internacionais de domínio) Instalação do "IO::Socket::SSL" Esse módulo usa uma variante das instruções padrão de construção e instalação: yes | perl Makefile.PL && make && make test Um teste, Client non-SSL connection, é conhecido por falhar. Agora, como o(a) usuário(a) root: make install Explicações do Comando yes: "Perl" perguntará se você deseja executar testes externos, que "falharão suavemente" se existirem problemas de rede de comunicação. O padrão é "y", que permitirá que você automatize o processo de construção. IO::String-1.08 Introdução ao "IO::String" "IO::String" - Emula interface de arquivo para sequências internas de caracteres. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4074]https://www.cpan.org/authors/id/G/GA/GAAS/IO-String-1.08.tar. gz * Soma de verificação MD5 da transferência: 250e5424f290299fc3d6b5d1e9da3835 Instalação do "IO::String" Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install IPC::Run3-0.049 Introdução ao "IPC::Run3" "IPC::Run3" é usado para executar um subprocesso com redirecionamento de entrada/saída. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4075]https://www.cpan.org/authors/id/R/RJ/RJBS/IPC-Run3-0.049.tar. gz * Soma de verificação MD5 da transferência: 569393ca56dfb78dedd79e93c0439159 Instalação do "IPC::Run3" Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install Lingua::Translit-0.29 Introdução ao "Lingua::Translit" "Lingua::Translit" e o aplicativo translit transliteram texto entre sistemas de escrita. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4076]https://www.cpan.org/authors/id/A/AL/ALINKE/Lingua-Translit-0 .29.tar.gz * Soma de verificação MD5 da transferência: 605a82f06b05fef4fc18bf069b1be511 Instalação do "Lingua::Translit" Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install Conteúdo Aplicativos Instalados: translit Descrições Curtas translit translitera texto entre sistemas de escrita usando vários padrões LWP (libwww-perl-6.78) Introdução à "LWP" - A biblioteca "World-wide Web" para Perl A coleção "libwww-perl" é um conjunto de módulos "Perl" que fornece uma interface de programação de aplicativos ("API") simples e consistente para a "World Wide Web". O foco principal da biblioteca é o de fornecer classes e funções que te permitem escrever clientes "WWW". A biblioteca também contém módulos que são de uso mais geral e até classes que te ajudam a implementar servidores "HTTP" simples. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4077]https://www.cpan.org/authors/id/O/OA/OALDERS/libwww-perl-6.78 .tar.gz * Soma de verificação MD5 da transferência: 58729b6da69e24ea0624a20b9f39d952 Dependências da "libwww-perl" Exigidas [4078]File-Listing-6.16, [4079]HTTP-CookieJar-0.014, [4080]HTTP-Cookies-6.11, [4081]HTTP-Daemon-6.16, [4082]HTTP-Negotiate-6.01, [4083]HTML-Parser-3.83, [4084]Net-HTTP-6.23, [4085]Try-Tiny-0.32 e [4086]WWW-RobotRules-6.02 Recomendadas (exigidas para a suíte de teste) [4087]Test-Fatal-0.017, [4088]Test-Needs-0.002010 e [4089]Test-RequiresInternet-0.05 Instalação da "libwww-perl" Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install Depois de instalar esse pacote, se você desejar suporte ao protocolo "HTTPS", [então] instale [4090]LWP-Protocol-https-6.14. Conteúdo Aplicativos Instalados: lwp-download, lwp-dump, lwp-mirror, lwp-request Descrições Curtas lwp-download é um script para buscar um arquivo grande a partir da "web" lwp-dump é usado para ver quais cabeçalhos e conteúdo são retornados para um "URL" lwp-mirror é um utilitário simples de espelho lwp-request é um agente simples de usuário(a) de linha de comando List::AllUtils-0.19 Introdução ao "List::AllUtils" O módulo "List::Allutils" combina "List::Util" e "List::MoreUtils" em um pacote pequeno. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4091]https://www.cpan.org/authors/id/D/DR/DROLSKY/List-AllUtils-0. 19.tar.gz * Soma de verificação MD5 da transferência: 86469b1f6819ba181a8471eb932965f2 Dependências do "List::AllUtils" Exigidas [4092]List-SomeUtils-0.59 e [4093]List-UtilsBy-0.12 Instalação do "List::AllUtils" Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install List::MoreUtils-0.430 Introdução ao "List::MoreUtils" "List::MoreUtils" fornece o que falta em "List::Util". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4094]https://www.cpan.org/authors/id/R/RE/REHSACK/List-MoreUtils-0 .430.tar.gz * Soma de verificação MD5 da transferência: daccd6310021231b827dcc943ff1c6b7 Dependências do "List::MoreUtils" Exigidas [4095]Exporter-Tiny-1.006002 e [4096]List-MoreUtils-XS-0.430 Instalação do "List::MoreUtils" Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install Log::Log4perl-1.57 Introdução ao "Log::Log4perl" "Log::Log4perl" fornece uma implementação "Log4j" para perl. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4097]https://www.cpan.org/authors/id/E/ET/ETJ/Log-Log4perl-1.57.ta r.gz * Soma de verificação MD5 da transferência: acbe29cbaf03f4478a13579a275b0011 Instalação do "Log::Log4perl" Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install Conteúdo Aplicativos Instalados: l4p-templ Descrições Curtas l4p-templ imprime o texto de um modelo de configuração do "Log4perl" para iniciar um novo arquivo de configuração do "Log4perl" LWP::Protocol::https-6.14 Introdução ao "LWP::Protocol::https" "LWP::Protocol::https" fornece suporte "HTTPS" para "LWP::UserAgent" (ou seja, [4098]libwww-perl-6.78). Depois que o módulo estiver instalado, o "LWP" será capaz de acessar sítios usando "HTTP" sobre "SSL"/"TLS". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4099]https://www.cpan.org/authors/id/O/OA/OALDERS/LWP-Protocol-htt ps-6.14.tar.gz * Soma de verificação MD5 da transferência: 65401e3e34be653c9e3b31f798ed5454 Dependências do "LWP::Protocol::https" Exigidas [4100]IO-Socket-SSL-2.089, [4101]libwww-perl-6.78 e [4102]make-ca-1.15 com /etc/pki/tls/certs/ca-bundle.crt. Instalação do "LWP::Protocol::https" Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install Module::Build-0.4234 Introdução ao "Module::Build" "Module::Build" permite módulos "Perl" serem construídos sem um comando make estar presente. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4103]https://cpan.metacpan.org/authors/id/L/LE/LEONT/Module-Build- 0.4234.tar.gz * Soma de verificação MD5 da transferência: 0032d0c0bc36a3b68ef41c947829d5e3 Instalação do "Module::Build" Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install Observe que esse módulo também pode ser construído usando Build.PL Conteúdo Aplicativos Instalados: config_data Descrições Curtas config_data é usado para consultar ou mudar a configuração de módulos "Perl" Net::DNS-1.50 Introdução ao "Net::DNS" "Net::DNS" é um resolvedor de "DNS" implementado em Perl. Ele pode ser usado para realizar praticamente qualquer tipo de consulta "DNS" a partir de um script Perl. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4104]https://www.cpan.org/authors/id/N/NL/NLNETLABS/Net-DNS-1.50.t ar.gz * Soma de verificação MD5 da transferência: 1ca152f2eec8f66ef4ae7243697197cc Instalação do "Net::DNS" Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install Parse::RecDescent-1.967015 Introdução ao "Parse::RecDescent" "Parse::RecDescent" gera incrementalmente analisadores de texto descendentes recursivos de cima para baixo a partir de especificações gramaticais simples do tipo "yacc". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4105]https://www.cpan.org/authors/id/J/JT/JTBRAUN/Parse-RecDescent -1.967015.tar.gz * Soma de verificação MD5 da transferência: 7a36d45d62a9b68603edcdbd276006cc Instalação do "Parse::RecDescent" Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install Parse::Yapp-1.21 Introdução ao "Parse::Yapp" "Parse::Yapp" é uma extensão "Perl" para gerar e usar analisadores "LALR". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4106]https://www.cpan.org/authors/id/W/WB/WBRASWELL/Parse-Yapp-1.2 1.tar.gz * Soma de verificação MD5 da transferência: 69584d5b0f0304bb2a23cffcd982c5de Instalação do "Parse::Yapp" Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install Conteúdo Aplicativos Instalados: yapp Descrições Curtas yapp é uma interface para o módulo "Parse::Yapp", que te permite criar um analisador "Perl" "OO" a partir de um arquivo de gramática de entrada PerlIO::utf8_strict-0.010 Introdução ao "PerlIO::utf8_strict" PerlIO::utf8_strict fornece uma camada UTF-8 PerlIO rápida e correta. Ao contrário da camada :utf8 padrão do Perl, ele verifica a correção da entrada gerada. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4107]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 Dependências do "PerlIO::utf8_strict" Recomendadas (exigidas para a suíte de teste) [4108]Test-Exception-0.43 Instalação dp "PerlIO::utf8_strict" Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install Regexp::Common-2024080801 Introdução ao "Regexp::Common" "Regexp::Common" fornece expressões regulares comumente solicitadas. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4109]https://www.cpan.org/authors/id/A/AB/ABIGAIL/Regexp-Common-20 24080801.tar.gz * Soma de verificação MD5 da transferência: 73d4b4b2a0690f9ab573d54a69c22aee Instalação do "Regexp::Common" Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install SGMLSpm-1.1 Introdução ao "SGMLSpm" O módulo "SGMLSpm" é uma biblioteca Perl usada para analisar a saída gerada a partir dos analisadores "SGMLS" e "NSGMLS" de James Clark. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4110]https://www.cpan.org/authors/id/R/RA/RAAB/SGMLSpm-1.1.tar.gz * Soma de verificação MD5 da transferência: 746c74ae969992cedb1a2879b4168090 Instalação do "SGMLSpm" Antes de iniciar a construção, emita o seguinte comando para evitar um erro: chmod -v 644 MYMETA.yml Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install Depois de o pacote ter sido instalado, execute o seguinte comando como o(a) usuário(a) root: ln -sv sgmlspl.pl /usr/bin/sgmlspl Conteúdo Aplicativos Instalados: sgmlspl.pl, sgmlspl Descrições Curtas sgmlspl.pl é um processador "SGML" sgmlspl é um vínculo simbólico usado durante a instalação de [4111]DocBook-utils-0.6.14 Sort::Key-1.33 Introdução ao "Sort::Key" "Sort::Key" fornece um conjunto de funções para classificar listas de valores por algum valor-chave calculado. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4112]https://www.cpan.org/authors/id/S/SA/SALVA/Sort-Key-1.33.tar. gz * Soma de verificação MD5 da transferência: a37ab0da0cfdc26e57b4c79e39f6d98f Instalação do "Sort::Key" Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install Test::Command-0.11 Introdução ao "Test::Command" "Test::Command" testa a situação de saída, "STDOUT" ou "STDERR", de um comando externo. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4113]https://www.cpan.org/authors/id/D/DA/DANBOO/Test-Command-0.11 .tar.gz * Soma de verificação MD5 da transferência: 9ab83c4695961dbe92cd86efe08f0634 Instalação do "Test::Command" Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install Test::Differences-0.71 Introdução ao "Test::Differences" "Test::Differences" testa sequências de caracteres e estruturas de dados e mostra as diferenças se elas não corresponderem. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4114]https://www.cpan.org/authors/id/D/DC/DCANTRELL/Test-Differenc es-0.71.tar.gz * Soma de verificação MD5 da transferência: 23a54d5ada6ffe0850f42cd768b4b3c1 Dependências do "Test::Differences" Exigidas [4115]Text-Diff-1.45 Recomendadas (exigidas para a suíte de teste) [4116]Capture-Tiny-0.50 Instalação do "Test::Differences" Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install Text::BibTeX-0.91 Introdução ao "Text::BibTeX" "Text::BibTeX" fornece uma interface para ler e analisar arquivos BibTeX. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4117]https://www.cpan.org/authors/id/A/AM/AMBS/Text-BibTeX-0.91.ta r.gz * Soma de verificação MD5 da transferência: 437862f801cfb7598dff52aa4ff7d888 Dependências do "Text::BibTeX" Exigidas [4118]Config-AutoConf-0.320 e [4119]ExtUtils-LibBuilder-0.09 Instalação do "Text::BibTeX" Esse módulo é construído usando Build.PL: perl Build.PL && ./Build && ./Build test Agora, como o(a) usuário(a) root: ./Build install Conteúdo Aplicativos Instalados: biblex, bibparse, dumpnames Bibliotecas Instaladas: libbtparse.so Descrições Curtas biblex realiza análise léxica em um arquivo "BibTeX" bibparse analisa uma série de arquivos "BibTeX" com opções de linha de comando para controlar o comportamento de pós-processamento da sequência de caracteres dumpnames analisa um arquivo "BibTeX", dividindo os campos "author" e "editor" em listas de nomes e, em seguida, despeja tudo na saída gerada padrão libbtparse.so é uma biblioteca para analisar e processar arquivos de dados "BibTeX" Text::CSV-2.05 Introdução ao "Text::CSV" "Text::CSV" é um manipulador de valores separados por vírgula, usando "XS" ("eXternal Subroutine" - para sub-rotinas escritas em "C" ou "C++") ou "Perl" puro. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4120]https://www.cpan.org/authors/id/I/IS/ISHIGAKI/Text-CSV-2.05.t ar.gz * Soma de verificação MD5 da transferência: efdde839dd5f05a34f2f2d91b1d60b29 Dependências do "Text::CSV" Recomendadas [4121]Text-CSV_XS-1.60 (exigido por [4122]biber-2.20) Instalação do "Text::CSV" Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install Text::Roman-3.5 Introdução ao "Text::Roman" "Text::Roman" permite a conversão entre algoritmos romanos e arábicos (sistemas numéricos, por exemplo, "MCMXLV" e "1945"). Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4123]https://www.cpan.org/authors/id/S/SY/SYP/Text-Roman-3.5.tar.g z * Soma de verificação MD5 da transferência: 1f6b09c0cc1f4425b565ff787a39fd83 Instalação do "Text::Roman" Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install Unicode::Collate-1.31 Introdução ao "Unicode::Collate" "Unicode::Collate" fornece um algoritmo de agrupamento "Unicode". Nota Esse é um módulo central. Se você estiver usando perl-5.28.0 ou posterior, [então] a versão dele é boa o suficiente para [4124]biber-2.20 e você não precisa reinstalar esse módulo. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4125]https://www.cpan.org/authors/id/S/SA/SADAHIRO/Unicode-Collate -1.31.tar.gz * Soma de verificação MD5 da transferência: ee4d960d057c5e5b02ebb49d0286db8f Instalação do "Unicode::Collate" Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install Unicode::LineBreak-2019.001 Introdução ao "Unicode::LineBreak" "Unicode::LineBreak" fornece um algoritmo de quebra de linha "Unicode" "UAX #14". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4126]https://www.cpan.org/authors/id/N/NE/NEZUMI/Unicode-LineBreak -2019.001.tar.gz * Soma de verificação MD5 da transferência: 003d6da7a13700e069afed9238c864b9 Dependências do "Unicode::LineBreak" Exigidas [4127]MIME-Charset-1.013.1 e [4128]Wget-1.25.0 (para baixar dois arquivos a partir de unicode.org na suíte de teste) Opcionais [4129]libthai (para quebrar palavras tailandesas em segmentos) Instalação do "Unicode::LineBreak" Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install URI-5.31 Introdução ao "URI" Esse módulo implementa a classe "URI". Os objetos dessa classe representam "referências de Identificador Uniforme de Recursos" conforme especificado na "RFC" 2396 (e atualizado pela "RFC" 2732). Um Identificador Uniforme de Recursos é uma sequência compacta de caracteres que identifica um recurso abstrato ou físico. Um Identificador Uniforme de Recursos pode ainda ser classificado ou como um Localizador Uniforme de Recursos ("URL") ou um Nome Uniforme de Recurso ("URN"). A distinção entre "URL" e "URN" não importa para a interface da classe "URI". Uma "referência de URI" é um "URI" que possivelmente tenha informações adicionais anexadas na forma de um identificador de fragmento. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4130]https://www.cpan.org/authors/id/O/OA/OALDERS/URI-5.31.tar.gz * Soma de verificação MD5 da transferência: b5388d5b86e1870a80ad95c153bf41fd Dependências do "URI" Exigidas [4131]MIME-Base32-1.303 Recomendadas (exigidas para a suíte de teste) [4132]Test-Fatal-0.017, [4133]Test-Needs-0.002010 e [4134]Test-Warnings-0.038 Opcionais [4135]Business-ISBN-3.011 Instalação do "URI" Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install XML::LibXML::Simple-1.01 Introdução ao "XML::LibXML::Simple" O módulo XML::LibXML::Simple é uma reescrita de XML::Simple para usar o analisador XML::LibXML para estruturas XML, em vez dos analisadores simples Perl ou SAX. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4136]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 Dependências do "XML::LibXML::Simple" Exigidas [4137]XML-LibXML-2.0210 Instalação do "XML::LibXML::Simple" Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install XML::LibXSLT-2.003000 Introdução ao "XML::LibXSLT" "XML-LibXSLT" fornece uma interface para [4138]libxslt-1.1.42 Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4139]https://www.cpan.org/authors/id/S/SH/SHLOMIF/XML-LibXSLT-2.00 3000.tar.gz * Soma de verificação MD5 da transferência: 632dce587b3c405edd4e622364750191 Dependências do "XML::LibXSLT" Exigidas [4140]libxslt-1.1.42 e [4141]XML-LibXML-2.0210 Instalação do "XML::LibXSLT" Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install XML::Simple-2.25 Introdução ao "XML::Simple" "XML::Simple" fornece uma "API" fácil para ler e escrever "XML" (especialmente arquivos de configuração). Está obsoleto e o uso dele é desencorajado. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4142]https://www.cpan.org/authors/id/G/GR/GRANTM/XML-Simple-2.25.t ar.gz * Soma de verificação MD5 da transferência: bb841dce889a26c89a1c2739970e9fbc Dependências do "XML::Simple" Opcionais [4143]XML-SAX-1.02 (para um analisador alternativo, que será usado se disponível; caso contrário, XML::Parser (que foi instalado no LFS) será usado Instalação do "XML::Simple" Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install XML::Writer-0.900 Introdução ao "XML::Writer" "XML::Writer" fornece uma extensão Perl para escrever documentos "XML". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4144]https://www.cpan.org/authors/id/J/JO/JOSEPHW/XML-Writer-0.900 .tar.gz * Soma de verificação MD5 da transferência: 2457214360cefda445742a608dd6195e Instalação do "XML::Writer" Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install Instalação automatizada "CPAN" de módulos "Perl" Instalação Automática de Módulos "Perl". Existe uma maneira alternativa de instalar os módulos usando o comando install do "shell" cpan. O comando baixa automaticamente o fonte mais recente a partir do arquivamento "CPAN" para o módulo e quaisquer módulos de pré-requisito ausentes listados pelo(a) desenvolvedor(a). Então para cada módulo ele o extrai, executa a compilação, os testes e o instala. Você ainda precisa instalar quaisquer dependências não "Perl" antes de executar o método de instalação automatizado. Você possivelmente queira limpar o diretório build/ depois da instalação, para liberar o espaço. Se quaisquer ações pós-instalação, como criar um link simbólico, for mencionada, [então] você também deveria executá-las. Na primeira vez que você executar o cpan, você será solicitado(a) a inserir algumas informações relativas a locais e métodos de transferência. Essas informações são retidas em arquivos localizados em ~/.cpan. Em particular, você possivelmente deseje configurá-lo de forma que [4145]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 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 Revise a página de manual cpan.1 para parâmetros adicionais que você consegue passar para cpan na linha de comando. Dependências de Módulos "Perl" Módulos "Perl" que são exigidos somente por outros módulos Os módulos na página anterior são referenciados a partir de outras páginas no BLFS, mas esses módulos estão no livro somente como dependências daqueles módulos. Se você usar o método de instalação "CPAN", [então] não precisará ler esta página. Os(As) editores(as) do BLFS prestam muito menos atenção a estes módulos e as versões não serão revisadas regularmente. Em todos os casos, somente as dependências exigidas ou recomendadas estão listadas - podem existir outros módulos que permitem que mais testes sejam executados, mas omiti-los ainda permitirá que os testes PASSEM. Nota Os links nesta página (para metacpan.org) deveriam ir para versões "boas conhecidas", para as quais as dependências delas estão corretas. Se você desejar usar uma versão posterior, por favor, verifique o arquivo das Mudanças em https://metacpan.org - às vezes as dependências adicionadas estão listadas, outras vezes não. Alguns destes módulos tem atualizações muito frequentes, muitas vezes trazendo diferentes dependências. As versões vinculadas do metacpan.org abaixo eram conhecidas por funcionarem com as versões do módulo no BLFS quando revisadas pela última vez. No entanto, se você notar que o arquivo de mudanças para uma versão mais recente que a do livro de desenvolvimento atual informa uma correção para um problema de segurança, [então] informe isso ou à lista "blfs-dev" ou à "blfs-support". Da mesma forma, se você descobrir que um módulo atualizado na página anterior precisa de uma dependência extra, [então], por favor, informe isso. * [4146]Algorithm-Diff-1.201 * [4147]Alien-Build-2.84 * [4148]Alien-Build-Plugin-Download-GitLab-0.01 * [4149]Alien-Libxml2-0.19 * [4150]B-COW-0.007 * [4151]B-Hooks-EndOfScope-0.28 * [4152]Business-ISBN-Data-20250205.001 * [4153]Capture-Tiny-0.50 * [4154]Class-Data-Inheritable-0.10 * [4155]Class-Inspector-1.36 * [4156]Class-Singleton-1.6 * [4157]Class-Tiny-1.008 * [4158]Clone-0.47 * [4159]Config-AutoConf-0.320 * [4160]CPAN-Meta-Check-0.018 * [4161]DateTime-1.65 * [4162]DateTime-Format-Strptime-1.79 * [4163]DateTime-Locale-1.44 * [4164]DateTime-TimeZone-2.64 * [4165]Devel-StackTrace-2.05 * [4166]Dist-CheckConflicts-0.11 * [4167]Encode-Locale-1.05 * [4168]Eval-Closure-0.14 * [4169]Exception-Class-1.45 * [4170]Exporter-Tiny-1.006002 * [4171]ExtUtils-LibBuilder-0.09 * [4172]FFI-CheckLib-0.31 * [4173]File-chdir-0.1011 * [4174]File-Copy-Recursive-0.45 * [4175]File-Find-Rule-0.34 * [4176]File-Listing-6.16 * [4177]File-ShareDir-1.118 * [4178]File-ShareDir-Install-0.14 * [4179]HTML-Tagset-3.24 * [4180]HTTP-CookieJar-0.014 * [4181]HTTP-Cookies-6.11 * [4182]HTTP-Date-6.06 * [4183]HTTP-Message-7.00 * [4184]HTTP-Negotiate-6.01 * [4185]IO-HTML-1.004 * [4186]IPC-System-Simple-1.30 * [4187]List-MoreUtils-XS-0.430 * [4188]List-SomeUtils-0.59 * [4189]List-SomeUtils-XS-0.58 * [4190]List-UtilsBy-0.12 * [4191]LWP-MediaTypes-6.04 * [4192]MIME-Base32-1.303 * [4193]MIME-Charset-1.013.1 * [4194]Module-Implementation-0.09 * [4195]Module-Runtime-0.016 * [4196]MRO-Compat-0.15 * [4197]namespace-autoclean-0.31 * [4198]namespace-clean-0.27 * [4199]Net-HTTP-6.23 * [4200]Net-SSLeay-1.94 * [4201]Number-Compare-0.03 * [4202]Package-Stash-0.40 * [4203]Params-Validate-1.31 * [4204]Params-ValidationCompiler-0.31 * [4205]Path-Tiny-0.146 * [4206]Role-Tiny-2.002004 * [4207]Scope-Guard-0.21 * [4208]Specio-0.49 * [4209]Sub-Exporter-Progressive-0.001013 * [4210]Sub-Quote-2.006008 * [4211]Sub-Uplevel-0.2800 * [4212]Term-Table-0.024 * [4213]Test-Deep-1.204 * [4214]Test-Exception-0.43 * [4215]Test-Fatal-0.017 * [4216]Test-File-1.994 * [4217]Test-File-ShareDir-1.001002 * [4218]Test-LeakTrace-0.17 * [4219]Test-Needs-0.002010 * [4220]Test-Requires-0.11 * [4221]Test-RequiresInternet-0.05 * [4222]Test-Simple-1.302209 * [4223]Test-utf8-1.03 * [4224]Test-Warnings-0.038 * [4225]Test-Without-Module-0.23 * [4226]Test2-Plugin-NoWarnings-0.10 * [4227]Text-CSV_XS-1.60 * [4228]Text-Diff-1.45 * [4229]Text-Glob-0.11 * [4230]Tie-Cycle-1.229 * [4231]TimeDate-2.33 * [4232]Try-Tiny-0.32 * [4233]Variable-Magic-0.64 * [4234]WWW-RobotRules-6.02 * [4235]XML-LibXML-2.0210 * [4236]XML-NamespaceSupport-1.12 * [4237]XML-SAX-1.02 * [4238]XML-SAX-Base-1.09 Algorithm::Diff-1.201 Introdução ao "Algorithm::Diff" "Algorithm::Diff" calcula diferenças "inteligentes" entre dois arquivos ou listas. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4239]https://cpan.metacpan.org/authors/id/R/RJ/RJBS//Algorithm-Dif f-1.201.tar.gz * Soma de verificação MD5 da transferência: 2eaae910f5220261ee2bbdfc4a8df2c2 Instalação do "Algorithm::Diff" Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install Alien::Build-2.84 Introdução ao "Alien::Build" "Alien::Build" fornece ferramentas para construir dependências externas (não "CPAN") para "CPAN". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4240]https://cpan.metacpan.org/authors/id/P/PL/PLICEASE/Alien-Buil d-2.84.tar.gz * Soma de verificação MD5 da transferência: 531c4d1ea1274e2fafd7e61df60f9099 Dependências do "Alien::Build" Exigidas [4241]Capture-Tiny-0.50, [4242]File-Which-1.27, [4243]FFI-CheckLib-0.31 e [4244]File-chdir-0.1011 Instalação do "Alien::Build" Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install Alien::Build::Plugin::Download::GitLab-0.01 Introdução ao "Alien::Build::Plugin::Download::GitLab" "Alien::Build::Plugin::Download::GitLab" permite que "Alien::Build" baixe a partir do "GitLab" (na prática, isso não baixa se a biblioteca exigida já estiver instalada no sistema). Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4245]https://cpan.metacpan.org/authors/id/P/PL/PLICEASE/Alien-Buil d-Plugin-Download-GitLab-0.01.tar.gz * Soma de verificação MD5 da transferência: ad1d815262ad7dd98b0a9b35ba2f05ef Dependências do "Alien::Build::Plugin::Download::GitLab" Exigidas [4246]Alien-Build-2.84 e [4247]URI-5.31 Instalação do "Alien::Build::Plugin::Download::GitLab" Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install Alien::Libxml2-0.19 Introdução ao "Alien::Libxml2" "Alien::Libxml2" foi projetado para permitir que módulos instalem a biblioteca "libxml2" da "C" em seu sistema. No BLFS, ele usa pkg-config para descobrir como vincular ao [4248]libxml2-2.13.6 instalado. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4249]https://cpan.metacpan.org/authors/id/P/PL/PLICEASE/Alien-Libx ml2-0.19.tar.gz * Soma de verificação MD5 da transferência: 54ef82ddf7641279a72f216e405f9a5e Dependências do "Alien::Libxml2" Exigidas [4250]Alien-Build-Plugin-Download-GitLab-0.01, [4251]libxml2-2.13.6 e [4252]Path-Tiny-0.146 Recomendadas (exigidas para a suíte de teste) [4253]Test-Simple-1.302209 Instalação do "Alien::Libxml2" Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install B::COW-0.007 Introdução ao "B::COW" "B::COW" fornece ajudantes adicionais para o módulo central "B" verificar "Copy On Write". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4254]https://cpan.metacpan.org/authors/id/A/AT/ATOOMIC/B-COW-0.007 .tar.gz * Soma de verificação MD5 da transferência: 7afc46f19e6f906e2ba5769b21fca5ff Instalação do "B::COW" Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install B::Hooks::EndOfScope-0.28 Introdução ao B::Hooks::EndOfScope B::Hooks::EndOfScope permite que você execute código quando o Perl terminar de compilar o escopo circundante. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4255]https://cpan.metacpan.org/authors/id/E/ET/ETHER/B-Hooks-EndOf Scope-0.28.tar.gz * Soma de verificação MD5 da transferência: d738ba65539d4acd601d47cc3e2cbb3a Dependências de B::Hooks::EndOfScope Exigidas [4256]Module-Implementation-0.09, [4257]Sub-Exporter-Progressive-0.001013 e [4258]Variable-Magic-0.64 Recomendadas (exigidas para a suíte de teste) [4259]Try-Tiny-0.32 Instalação do B::Hooks::EndOfScope Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install Business::ISBN::Data-20250205.001 Introdução ao "Business-ISBN-Data" "Business-ISBN-Data" é um pacote de dados para "Business::ISBN". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4260]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 Instalação do “Business-ISBN-Data” Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install Capture::Tiny-0.50 Introdução ao "Capture::Tiny" O módulo "Capture::Tiny" captura "STDOUT" e "STDERR" a partir de "Perl", "XS" ("eXternal Subroutine", ou seja, escrito em "C" ou "C++") ou aplicativos externos. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4261]https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN/Capture-Ti ny-0.50.tar.gz * Soma de verificação MD5 da transferência: 92c96fdff1b972a663cc2b3e206ca853 Instalação do "Capture::Tiny" Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install Class::Data::Inheritable-0.10 Introdução ao "Class::Data::Inheritable" "Class::Data::Inheritable" serve para criar acessadores/"mutadores" para dados de classe. Isto é, se você quiser armazenar algo acerca de sua classe como um todo (em vez de acerca de um objeto). Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4262]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 Instalação do "Class::Data::Inheritable" Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install Class::Inspector-1.36 Introdução ao "Class::Inspector" "Class::Inspector" te permite obter informações acerca de uma classe carregada. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4263]https://cpan.metacpan.org/authors/id/P/PL/PLICEASE/Class-Insp ector-1.36.tar.gz * Soma de verificação MD5 da transferência: 084c3aeec023639d21ecbaf7d4460b21 Instalação do "Class::Inspector" Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install Class::Singleton-1.6 Introdução ao "Class::Singleton" Um "Singleton" descreve uma classe de objeto que pode ter somente uma instância em qualquer sistema, como um aplicativo de gerenciamento de fila de documentos de impressão. Esse módulo implementa uma classe "Singleton" a partir da qual outras classes podem ser derivadas. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4264]https://cpan.metacpan.org/authors/id/S/SH/SHAY/Class-Singleto n-1.6.tar.gz * Soma de verificação MD5 da transferência: d9c84a7b8d1c490c38e88ed1f9faae47 Instalação do "Class::Singleton" Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install Class:Tiny-1.008 Introdução ao "Class:Tiny" "Classe:Tiny" oferece um conjunto de ferramentas minimalistas de construção de classes. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4265]https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN/Class-Tiny -1.008.tar.gz * Soma de verificação MD5 da transferência: e3ccfae5f64d443e7e1110be964d7202 Instalação do "Class:Tiny" Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install Clone-0.47 Introdução ao "Clone" "Clone" copia recursivamente tipos de dados "Perl". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4266]https://cpan.metacpan.org/authors/id/A/AT/ATOOMIC/Clone-0.47. tar.gz * Soma de verificação MD5 da transferência: 62ff032a4df0c4abb74f76adf519361e Dependências do "Clone" Recomendadas (exigidas para a suíte de teste) [4267]B-COW-0.007 Instalação do "Clone" Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install Config::AutoConf-0.320 Introdução ao "Config::AutoConf" O módulo "Config::AutoConf" implementa algumas das macros "AutoConf" (detectar um comando, detectar uma biblioteca, etc.) em "Perl" puro. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4268]https://cpan.metacpan.org/authors/id/A/AM/AMBS/Config-AutoCon f-0.320.tar.gz * Soma de verificação MD5 da transferência: 71664b2864232e265179ac29298e0916 Dependências do "Config::AutoConf" Exigidas [4269]Capture-Tiny-0.50 e [4270]File-Slurper-0.014 Instalação do "Config::AutoConf" Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install CPAN::Meta::Check-0.018 Introdução ao "CPAN::Meta::Check" "CPAN::Meta::Check" verifica se os requisitos descritos em um objeto "CPAN::Meta" estão presentes. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4271]https://cpan.metacpan.org/authors/id/L/LE/LEONT/CPAN-Meta-Che ck-0.018.tar.gz * Soma de verificação MD5 da transferência: d1c2190e8bc1c176b9ee9cba3ac403ad Instalação do "CPAN::Meta::Check" Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install DateTime-1.65 Introdução ao "DateTime" "DateTime" é um objeto de data e hora para "Perl". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4272]https://cpan.metacpan.org/authors/id/D/DR/DROLSKY/DateTime-1. 65.tar.gz * Soma de verificação MD5 da transferência: 6f60018500f8f20c5fd3d34495eae1eb Dependências do "DateTime" Exigidas [4273]DateTime-Locale-1.44 e [4274]DateTime-TimeZone-2.64 Recomendadas (exigidas para a suíte de teste) [4275]CPAN-Meta-Check-0.018, [4276]Test-Fatal-0.017, [4277]Test-Warnings-0.038 e [4278]Test-Without-Module-0.23 Instalação do "DateTime" Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install DateTime::Format::Strptime-1.79 Introdução ao "DateTime::Format::Strptime" DateTime::Format::Strptime implementa a maior parte de [4279]strptime(3), ou seja, ele pega uma sequência de caracteres e um padrão e retorna um objeto DateTime. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4280]https://cpan.metacpan.org/authors/id/D/DR/DROLSKY/DateTime-Fo rmat-Strptime-1.79.tar.gz * Soma de verificação MD5 da transferência: 441cfec62b0b8a1b4c05cbe5ef73fbf4 Dependências do "DateTime::Format::Strptime" Exigidas [4281]DateTime-1.65 Instalação do "DateTime::Format::Strptime" Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install DateTime::Locale-1.44 Introdução ao "DateTime::Locale" "DateTime::Locale" fornece suporte a localização para [4282]DateTime-1.65. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4283]https://cpan.metacpan.org/authors/id/D/DR/DROLSKY/DateTime-Lo cale-1.44.tar.gz * Soma de verificação MD5 da transferência: 6d659f7c46e27215de6ca8a01f875661 Dependências do "DateTime::Locale" Exigidas [4284]Dist-CheckConflicts-0.11, [4285]File-ShareDir-1.118, [4286]namespace-autoclean-0.31 e [4287]Params-ValidationCompiler-0.31 Recomendadas (exigidas para a suíte de teste) [4288]CPAN-Meta-Check-0.018, [4289]IPC-System-Simple-1.30 e [4290]Test-File-ShareDir-1.001002 Instalação do "DateTime::Locale" Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install DateTime::TimeZone-2.64 Introdução ao "DateTime::TimeZone" Essa classe é a classe base para todos os objetos de fuso horário. Um fuso horário é representado internamente como um conjunto de observâncias, cada uma das quais descreve o deslocamento a partir do "GMT" para um dado período de tempo. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4291]https://cpan.metacpan.org/authors/id/D/DR/DROLSKY/DateTime-Ti meZone-2.64.tar.gz * Soma de verificação MD5 da transferência: fe3081e8223c9308184379c9c8844bde Dependências do "DateTime::TimeZone" Exigidas [4292]Class-Singleton-1.6, [4293]Module-Runtime-0.016 e [4294]Params-ValidationCompiler-0.31 Recomendadas (exigidas para a suíte de teste) Ambos [4295]Test-Fatal-0.017 e [4296]Test-Requires-0.11, mas somente se uma cópia de [4297]DateTime-1.65 (para o qual esse é uma dependência) já tiver sido instalado. Instalação do "DateTime::TimeZone" Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install Devel::StackTrace-2.05 Introdução ao "Devel::StackTrace" Devel::StackTrace fornece um objeto que representa um rastreamento de pilha. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4298]https://cpan.metacpan.org/authors/id/D/DR/DROLSKY/Devel-Stack Trace-2.05.tar.gz * Soma de verificação MD5 da transferência: b8ca19bb4c76e98a04373618db9c7c3c Instalação do "Devel::StackTrace" Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install Dist::CheckConflicts-0.11 Introdução ao "Dist::CheckConflicts" "Dist::CheckConflicts" declara conflitos de versão para uma distribuição, para suportar atualizações pós-instalação de distribuições dependentes. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4299]https://cpan.metacpan.org/authors/id/D/DO/DOY/Dist-CheckConfl icts-0.11.tar.gz * Soma de verificação MD5 da transferência: c8725a92b9169708b0f63036812070f2 Dependências do "Dist::CheckConflicts" Exigidas [4300]Module-Runtime-0.016 Recomendadas (exigidas para a suíte de teste) [4301]Test-Fatal-0.017 Instalação do "Dist::CheckConflicts" Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install Encode::Locale-1.05 Introdução ao "Encode::Locale" "Encode::Locale" determina a codificação de localidade. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4302]https://cpan.metacpan.org/authors/id/G/GA/GAAS/Encode-Locale- 1.05.tar.gz * Soma de verificação MD5 da transferência: fcfdb8e4ee34bcf62aed429b4a23db27 Instalação do "Encode::Locale" Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install Eval::Closure-0.14 Introdução ao "Eval::Closure" "Eval::Closure" cria fechamentos de forma segura e limpa por meio de avaliação de sequências de caracteres. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4303]https://cpan.metacpan.org/authors/id/D/DO/DOY/Eval-Closure-0. 14.tar.gz * Soma de verificação MD5 da transferência: ceeb1fc579ac9af981fa6b600538c285 Dependências do "Eval::Closure" Recomendadas (exigidas para a suíte de teste) [4304]Test-Fatal-0.017 e [4305]Test-Requires-0.11 Instalação do "Eval::Closure" Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install Exception::Class-1.45 Introdução ao "Exception::Class" "Exception::Class" permite que você declare classes reais de exceção em Perl. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4306]https://cpan.metacpan.org/authors/id/D/DR/DROLSKY/Exception-C lass-1.45.tar.gz * Soma de verificação MD5 da transferência: 1e564d20b374a99fdf660ba3f36b0098 Dependências do "Exception::Class" Exigidas [4307]Class-Data-Inheritable-0.10 e [4308]Devel-StackTrace-2.05 Instalação do "Exception::Class" Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install Exporter::Tiny-1.006002 Introdução ao Exporter::Tiny "Exporter::Tiny" é um exportador com os recursos do "Sub::Exporter", mas somente com dependências centrais. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4309]https://cpan.metacpan.org/authors/id/T/TO/TOBYINK/Exporter-Ti ny-1.006002.tar.gz * Soma de verificação MD5 da transferência: 0545ee8f4edcb9dc5a87b21ed25edd74 Instalação do Exporter::Tiny Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install ExtUtils::LibBuilder-0.09 Introdução ao ExtUtils::LibBuilder "ExtUtils::LibBuilder" é uma ferramenta para construir bibliotecas "C". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4310]https://cpan.metacpan.org/authors/id/A/AM/AMBS/ExtUtils-LibBu ilder-0.09.tar.gz * Soma de verificação MD5 da transferência: 16115f941df504f65b0f94b7f29e8fbc Dependências do ExtUtils::LibBuilder Exigidas [4311]Module-Build-0.4234 Instalação do ExtUtils::LibBuilder Esse módulo é construído usando Build.PL: perl Build.PL && ./Build && ./Build test Agora, como o(a) usuário(a) root: ./Build install FFI::CheckLib-0.31 Introdução ao FFI::CheckLib "FFI::CheckLib" verifica se uma biblioteca dinâmica específica está disponível para uso por "Foreign Function Interface" ("FFI"). Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4312]https://cpan.metacpan.org/authors/id/P/PL/PLICEASE/FFI-CheckL ib-0.31.tar.gz * Soma de verificação MD5 da transferência: ffc8e61bb686dd631bed3ddf102af41c Dependências do FFI::CheckLib Recomendadas (exigidas para a suíte de teste) [4313]Capture-Tiny-0.50, [4314]File-Which-1.27, [4315]Path-Tiny-0.146 e [4316]Test-Simple-1.302209 Instalação do FFI::CheckLib Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install File::chdir-0.1011 Introdução ao File::chdir "File::chdir" fornece uma maneira mais sensata de mudar diretórios. O "chdir()" do "Perl" tem o infeliz problema de ser muito, muito, muito global. Se qualquer parte do seu aplicativo chamar "chdir()" ou se qualquer biblioteca que você usa chamar "chdir()", [então] ele muda o diretório atual de trabalho do aplicativo *inteiro*. "File::chdir" te oferece uma alternativa, "$CWD" e "@CWD". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4317]https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN/File-chdir -0.1011.tar.gz * Soma de verificação MD5 da transferência: 932090f6c5f602301ae66c259de23ebb Instalação do File::chdir Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install File::Copy::Recursive-0.45 Introdução ao File::Copy::Recursive Esse módulo copia e move diretórios recursivamente (ou arquivos únicos), para uma profundidade opcional e tenta preservar o modo de cada arquivo ou diretório. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4318]https://cpan.metacpan.org/authors/id/D/DM/DMUEY/File-Copy-Rec ursive-0.45.tar.gz * Soma de verificação MD5 da transferência: e5eee1a3f8ae3aebbac063ea54870e54 Dependências do File::Copy::Recursive Recomendadas (exigidas para a suíte de teste) [4319]Path-Tiny-0.146, [4320]Test-Deep-1.204, [4321]Test-Fatal-0.017, [4322]Test-File-1.994 e [4323]Test-Warnings-0.038 Instalação do File::Copy::Recursive Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install File::Find::Rule-0.34 Introdução ao File::Find::Rule "File::Find::Rule" é uma interface mais amigável para "File::Find". Ele permite que você construa regras que especifiquem os arquivos e diretórios desejados. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4324]https://cpan.metacpan.org/authors/id/R/RC/RCLAMP/File-Find-Ru le-0.34.tar.gz * Soma de verificação MD5 da transferência: a7aa9ad4d8ee87b2a77b8e3722768712 Dependências do File::Find::Rule Exigidas [4325]Number-Compare-0.03 e [4326]Text-Glob-0.11 Instalação do File::Find::Rule Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install Conteúdo Aplicativos Instalados: findrule Descrições Curtas findrule é um envólucro de linha de comando para "File::Find::Rule" File::Listing-6.16 Introdução ao File::Listing "File::Listing" analisa uma listagem de diretórios. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4327]https://cpan.metacpan.org/authors/id/P/PL/PLICEASE/File-Listi ng-6.16.tar.gz * Soma de verificação MD5 da transferência: d4fc8b0c86633d1fa5bf75323720eadc Dependências do File::Listing Exigidas [4328]HTTP-Date-6.06 Instalação do File::Listing Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install File::ShareDir-1.118 Introdução ao File::ShareDir "File::ShareDir" permite que você acesse arquivos de dados que tenham sido instalados por "File::ShareDir::Install". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4329]https://cpan.metacpan.org/authors/id/R/RE/REHSACK/File-ShareD ir-1.118.tar.gz * Soma de verificação MD5 da transferência: 0084f730f4e3d4d89703d92b3ea82f54 Dependências do File::ShareDir Exigidas [4330]Class-Inspector-1.36 e [4331]File-ShareDir-Install-0.14 Instalação do File::ShareDir Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install File::ShareDir::Install-0.14 Introdução ao File::ShareDir::Install "File::ShareDir::Install" permite que você instale arquivos de dados somente leitura a partir de uma distribuição. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4332]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 Instalação do File::ShareDir::Install Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install HTML::Tagset-3.24 Introdução ao HTML::Tagset "HTML::Tagset" fornece várias tabelas de dados úteis na análise de "HTML". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4333]https://cpan.metacpan.org/authors/id/P/PE/PETDANCE/HTML-Tagse t-3.24.tar.gz * Soma de verificação MD5 da transferência: f8db8974f5e7fe7df2a58263a7b00552 Instalação do HTML::Tagset Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install HTTP::CookieJar-0.014 Introdução ao HTTP::CookieJar HTTP::CookieJar fornece um cookie HTTP jar minimalista de agente de usuário(a). Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4334]https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN/HTTP-Cooki eJar-0.014.tar.gz * Soma de verificação MD5 da transferência: a1d891ce0046f1a2c19e2c617d624d0d Dependências do HTTP::CookieJar Exigidas [4335]HTTP-Date-6.06 Recomendadas (exigidas para a suíte de teste) [4336]Test-Deep-1.204, [4337]Test-Requires-0.11 e [4338]URI-5.31 Instalação do HTTP::CookieJar Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install HTTP::Cookies-6.11 Introdução ao HTTP::Cookies "HTTP::Cookies" fornece uma classe para objetos que representam um "cookie jar" - isto é, uma base de dados de todos os "cookies" "HTTP" que um determinado objeto "LWP::UserAgent" (proveniente de [4339]libwww-perl-6.78) conhece. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4340]https://cpan.metacpan.org/authors/id/O/OA/OALDERS/HTTP-Cookie s-6.11.tar.gz * Soma de verificação MD5 da transferência: 80017e7e56bdc8ba16dea75789748829 Dependências do HTTP::Cookies Exigidas [4341]HTTP-Message-7.00 Instalação do HTTP::Cookies Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install HTTP::Date-6.06 Introdução ao HTTP::Date "HTTP::Date" fornece funções para lidar com os formatos de data usados pelo protocolo "HTTP" e também com alguns outros formatos de data. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4342]https://cpan.metacpan.org/authors/id/O/OA/OALDERS/HTTP-Date-6 .06.tar.gz * Soma de verificação MD5 da transferência: 60462359bfeb1e6d14602508cfd07885 Dependências do HTTP::Date Recomendadas [4343]TimeDate-2.33 (para permitir que reconheça zonas diferentes de "GMT" e numéricas) Instalação do HTTP::Date Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install HTTP::Message-7.00 Introdução ao HTTP::Message "HTTP::Message" fornece uma classe base para objetos de mensagem de estilo "HTTP". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4344]https://cpan.metacpan.org/authors/id/O/OA/OALDERS/HTTP-Messag e-7.00.tar.gz * Soma de verificação MD5 da transferência: 01b29ce55d79a774420bc768bb905354 Dependências do HTTP::Message Exigidas [4345]Clone-0.47, [4346]Encode-Locale-1.05, [4347]HTTP-Date-6.06, [4348]IO-HTML-1.004, [4349]LWP-MediaTypes-6.04 e [4350]URI-5.31 Recomendadas (exigidas para a suíte de teste) [4351]Test-Needs-0.002010 e [4352]Try-Tiny-0.32 Instalação do HTTP::Message Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install HTTP::Negotiate-6.01 Introdução ao HTTP::Negotiate "HTTP::Negotiate" fornece uma implementação completa do algoritmo de negociação de conteúdo "HTTP". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4353]https://cpan.metacpan.org/authors/id/G/GA/GAAS/HTTP-Negotiate -6.01.tar.gz * Soma de verificação MD5 da transferência: 1236195250e264d7436e7bb02031671b Dependências do HTTP::Negotiate Recomendadas (exigidas para a suíte de teste) [4354]HTTP-Message-7.00 Instalação do HTTP::Negotiate Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install IO::HTML-1.004 Introdução ao IO::HTML "IO::HTML" abre um arquivo "HTML" com detecção automática de conjunto de caracteres. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4355]https://cpan.metacpan.org/authors/id/C/CJ/CJM/IO-HTML-1.004.t ar.gz * Soma de verificação MD5 da transferência: 04bbe363686fd19bfb4cc0ed775e3d03 Instalação do IO::HTML Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install IPC::System::Simple-1.30 Introdução ao IPC::System::Simple "IPC::System::Simple" elimina o trabalho árduo de chamar comandos externos e produzir diagnósticos detalhados. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4356]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 Instalação do IPC::System::Simple Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install List::MoreUtils::XS-0.430 Introdução ao List::MoreUtils::XS "List::MoreUtils::XS" é uma estrutura compilada de retaguarda para "List::MoreUtils" Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4357]https://cpan.metacpan.org/authors/id/R/RE/REHSACK/List-MoreUt ils-XS-0.430.tar.gz * Soma de verificação MD5 da transferência: e77113e55b046906aecfb4ddb4f0c662 Instalação do List::MoreUtils::XS Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install List::SomeUtils-0.59 Introdução ao List::SomeUtils "List::SomeUtils" fornece o que falta em "List::Util". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4358]https://cpan.metacpan.org/authors/id/D/DR/DROLSKY/List-SomeUt ils-0.59.tar.gz * Soma de verificação MD5 da transferência: 333b4adb2907deff2be8da5899881453 Dependências do List::SomeUtils Exigidas [4359]Module-Implementation-0.09 e [4360]List-SomeUtils-XS-0.58 Instalação do List::SomeUtils Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install List::SomeUtils::XS-0.58 Introdução ao List::SomeUtils::XS "List::SomeUtils::XS" é uma implementação "XS" ("eXternal Subroutine") (mais rápida) para "List::SomeUtils". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4361]https://cpan.metacpan.org/authors/id/D/DR/DROLSKY/List-SomeUt ils-XS-0.58.tar.gz * Soma de verificação MD5 da transferência: 396eabe83a75fcb8d7542d95812469d1 Dependências do List::SomeUtils::XS Recomendadas (exigidas para a suíte de teste) [4362]Test-LeakTrace-0.17 e [4363]Test-Warnings-0.038 Instalação do List::SomeUtils::XS Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install List::UtilsBy-0.12 Introdução ao List::UtilsBy "List::UtilsBy" fornece uma série de funções utilitárias de lista de ordem superior. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4364]https://cpan.metacpan.org/authors/id/P/PE/PEVANS/List-UtilsBy -0.12.tar.gz * Soma de verificação MD5 da transferência: 54a8c7092bc02f29ea6c5ae215eea385 Instalação do List::UtilsBy Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install LWP::MediaTypes-6.04 Introdução ao LWP::MediaTypes "LWP::MediaTypes" adivinha o tipo de mídia (ou seja, o tipo "MIME") de um arquivo ou "URL". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4365]https://cpan.metacpan.org/authors/id/O/OA/OALDERS/LWP-MediaTy pes-6.04.tar.gz * Soma de verificação MD5 da transferência: 84b799a90c0d2ce52897a7cb4c0478d0 Dependências do LWP::MediaTypes Recomendadas (exigidas para a suíte de teste) [4366]Test-Fatal-0.017 Instalação do LWP::MediaTypes Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install MIME::Base32-1.303 Introdução ao MIME::Base32 MIME::Base32 é para Codificar/Decodificar dados. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4367]https://cpan.metacpan.org/authors/id/R/RE/REHSACK/MIME-Base32 -1.303.tar.gz * Soma de verificação MD5 da transferência: 0c7735fa09e74c7f2ec93d1890b8c6c0 Instalação do MIME::Base32 Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install MIME::Charset-1.013.1 Introdução ao MIME::Charset MIME::Charset fornece informações relativas a conjuntos de caracteres usados para mensagens MIME na Internet, como as codificações deles. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4368]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 Dependências do MIME::Charset Recomendadas [4369]Encode-EUCJPASCII-0.03, [4370]Encode-HanExtra-0.23 e [4371]Encode-JIS2K-0.05 (porque todos são exigidos por [4372]biber-2.20) Instalação do MIME::Charset Esse módulo usa uma variante das instruções padrão de construção e instalação: yes '' | perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install Explicações do Comando yes |: Perl perguntará se você deseja instalar um módulo adicional para lidar com codificações legadas em japonês, e outro que ele usaria para traduzir documentação para japonês. A opção padrão é "n"; usar "yes" permite que você automatize a construção. Module::Implementation-0.09 Introdução ao Module::Implementation "Module::Implementation" carrega uma das várias implementações alternativas subjacentes de um módulo (por exemplo, "eXternal Subroutine" ou "Perl" puro, ou uma implementação para um determinado Sistema Operacional). Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4373]https://cpan.metacpan.org/authors/id/D/DR/DROLSKY/Module-Impl ementation-0.09.tar.gz * Soma de verificação MD5 da transferência: 52e3fe0ca6b1eff0488d59b7aacc0667 Dependências do Module::Implementation Exigidas [4374]Module-Runtime-0.016 e [4375]Try-Tiny-0.32 Recomendadas (exigidas para a suíte de teste) [4376]Test-Fatal-0.017 e [4377]Test-Requires-0.11 Instalação do Module::Implementation Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install Module::Runtime-0.016 Introdução ao Module::Runtime "Module::Runtime" fornece funções para lidar com o manuseio em tempo de execução de módulos Perl. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4378]https://cpan.metacpan.org/authors/id/Z/ZE/ZEFRAM/Module-Runti me-0.016.tar.gz * Soma de verificação MD5 da transferência: d3d47222fa2e3dfcb4526f6cc8437b20 Instalação do Module::Runtime Embora "Module::Build" ainda esteja listado como um pré-requisito, ele não mais é necessário em sistemas com um make funcional. Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install MRO::Compat-0.15 Introdução ao MRO::Compat O espaço de nome "mro" fornece vários utilitários para lidar com a ordem de resolução de métodos e cache de métodos em geral no "Perl" 5.9.5 e superior. Esse módulo fornece essas interfaces para versões anteriores do "Perl". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4379]https://cpan.metacpan.org/authors/id/H/HA/HAARG/MRO-Compat-0. 15.tar.gz * Soma de verificação MD5 da transferência: f644dafe901214cedfa7ed8b43b56df1 Instalação do MRO::Compat Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install namespace::autoclean-0.31 Introdução ao namespace::autoclean Esse módulo é muito semelhante ao "namespace::clean", exceto que limpará todas as funções importadas, não importa se você as importou antes ou depois que usou o "pragma". Também não tocará em nada que pareça um método. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4380]https://cpan.metacpan.org/authors/id/E/ET/ETHER/namespace-aut oclean-0.31.tar.gz * Soma de verificação MD5 da transferência: abd25263af155ab70bf7a039247400d3 Dependências do namespace::autoclean Exigidas [4381]namespace-clean-0.27 Recomendadas (exigidas para a suíte de teste) [4382]Test-Needs-0.002010 Instalação do namespace::autoclean Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install namespace::clean-0.27 Introdução ao namespace::clean Esse pacote permite que você mantenha importações e funções fora do seu espaço de nome. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4383]https://cpan.metacpan.org/authors/id/R/RI/RIBASUSHI/namespace -clean-0.27.tar.gz * Soma de verificação MD5 da transferência: cba97f39ef7e594bd8489b4fdcddb662 Dependências do namespace::clean Exigidas [4384]B-Hooks-EndOfScope-0.28 e [4385]Package-Stash-0.40 Instalação do namespace::clean Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install Net::HTTP-6.23 Introdução ao Net::HTTP A classe "Net::HTTP" é um cliente "HTTP" de baixo nível. Uma instância da classe representa uma conexão com um servidor "HTTP". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4386]https://cpan.metacpan.org/authors/id/O/OA/OALDERS/Net-HTTP-6. 23.tar.gz * Soma de verificação MD5 da transferência: 1682735ddd1c059864ca5c1bbf15ab95 Dependências do Net::HTTP Exigidas [4387]URI-5.31 Instalação do Net::HTTP Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install Net::SSLeay-1.94 Introdução ao Net::SSLeay Net::SSLeay é uma extensão Perl para usar OpenSSL. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4388]https://cpan.metacpan.org/authors/id/C/CH/CHRISN/Net-SSLeay-1 .94.tar.gz * Soma de verificação MD5 da transferência: 1b22c764e5a094c6261e37a4b1f148ce Instalação do Net::SSLeay Nota Um teste chamado 32_x509_get_cert_info.t é conhecido por falhar com OpenSSL-3.4.0 ou posterior. Se habilitar os testes externos, um teste em t/external/15_altnames.t possivelmente falhe. Esse módulo usa uma variante das instruções padrão de construção e instalação: yes '' | perl Makefile.PL && make && make test || true Agora, como o(a) usuário(a) root: make install Explicações do Comando yes '': "Perl" perguntará se você deseja executar testes externos, que falharão se você não tiver conectividade de rede de intercomunicação. O padrão é "n"; especificar isso permite que você automatize a construção. || true: Ao executar um conjunto de comandos sequenciais que sai em caso de erro, isso evita a parada devido à falha conhecida de teste. Number::Compare-0.03 Introdução ao Number::Compare "Number::Compare" compila uma comparação simples com uma sub-rotina anônima, que você consegue chamar com um valor a ser testado. Ele compreende magnitudes padrão "IEC" (k, ki, m, mi, g, gi). Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4389]https://cpan.metacpan.org/authors/id/R/RC/RCLAMP/Number-Compa re-0.03.tar.gz * Soma de verificação MD5 da transferência: ded4085a8fc96328742785574ca65208 Instalação do Number::Compare Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install Package::Stash-0.40 Introdução ao Package::Stash Manipular "stashes" (tabelas de símbolos do "Perl") ocasionalmente é necessário, mas incrivelmente confuso e fácil de errar. Esse módulo esconde tudo isso atrás de uma "API" simples. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4390]https://cpan.metacpan.org/authors/id/E/ET/ETHER/Package-Stash -0.40.tar.gz * Soma de verificação MD5 da transferência: 7a2922941cc2aad6a52642e4fb13d07b Dependências do Package::Stash Exigidas [4391]Dist-CheckConflicts-0.11 e [4392]Module-Implementation-0.09 Recomendadas (exigidas para a suíte de teste) [4393]CPAN-Meta-Check-0.018, [4394]Test-Fatal-0.017 e [4395]Test-Needs-0.002010 Instalação do Package::Stash Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install Params::Validate-1.31 Introdução ao Params::Validate "Params::Validate" te permite validar parâmetros de chamada de método ou função para um nível arbitrário de especificidade. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4396]https://cpan.metacpan.org/authors/id/D/DR/DROLSKY/Params-Vali date-1.31.tar.gz * Soma de verificação MD5 da transferência: ef5f57387c2c9032b59fb23023cf5b25 Dependências do Params::Validate Exigidas [4397]Module-Build-0.4234 e [4398]Module-Implementation-0.09 Recomendadas (exigidas para a suíte de teste) [4399]Test-Fatal-0.017 e [4400]Test-Requires-0.11 Instalação do Params::Validate Esse módulo é construído usando Build.PL: perl Build.PL && ./Build && ./Build test Agora, como o(a) usuário(a) root: ./Build install Params::ValidationCompiler-0.31 Introdução ao Params::ValidationCompiler "Params::ValidationCompiler" constrói um validador de parâmetro de sub-rotina otimizado. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4401]https://cpan.metacpan.org/authors/id/D/DR/DROLSKY/Params-Vali dationCompiler-0.31.tar.gz * Soma de verificação MD5 da transferência: 15528055f3f53c8cfebbee1f928dec07 Dependências do Params::ValidationCompiler Exigidas [4402]Exception-Class-1.45 e [4403]Specio-0.49 Recomendadas (exigidas para a suíte de teste) [4404]Test-Without-Module-0.23 e [4405]Test2-Plugin-NoWarnings-0.10 Instalação do Params::ValidationCompiler Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install Path::Tiny-0.146 Introdução ao Path::Tiny "Path::Tiny" fornece um pequeno utilitário rápido para trabalhar com caminhos de arquivos. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4406]https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN/Path-Tiny- 0.146.tar.gz * Soma de verificação MD5 da transferência: 656d3556bb7f30c77d0881d564e200b2 Instalação do Path::Tiny Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install Role::Tiny-2.002004 Introdução ao Role::Tiny "Role::Tiny" é uma ferramenta minimalista de composição de papéis. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4407]https://cpan.metacpan.org/authors/id/H/HA/HAARG/Role-Tiny-2.0 02004.tar.gz * Soma de verificação MD5 da transferência: 9ee45591befa3d0b1094ac75d282b6ba Instalação do Role::Tiny Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install Scope::Guard-0.21 Introdução ao Scope::Guard "Scope::Guard" fornece uma maneira conveniente de realizar limpeza ou outras formas de gerenciamento de recursos no final de um escopo. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4408]https://cpan.metacpan.org/authors/id/C/CH/CHOCOLATE/Scope-Gua rd-0.21.tar.gz * Soma de verificação MD5 da transferência: be57b915d23ddac7677ef2ad9e52b92a Instalação do Scope::Guard Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install Specio-0.49 Introdução ao Specio "Specio" fornece classes para representar restrições de tipo e coerção, junto com açúcar sintático para declará-las. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4409]https://cpan.metacpan.org/authors/id/D/DR/DROLSKY/Specio-0.49 .tar.gz * Soma de verificação MD5 da transferência: c72e8e60faed34d3458be02b8d5a15d3 Dependências do Specio Exigidas [4410]Devel-StackTrace-2.05, [4411]Eval-Closure-0.14, [4412]Module-Runtime-0.016, [4413]Role-Tiny-2.002004, [4414]Sub-Quote-2.006008 e [4415]Try-Tiny-0.32 Recomendadas (exigidas para a suíte de teste) [4416]MRO-Compat-0.15, [4417]Test-Fatal-0.017 e [4418]Test-Needs-0.002010 Opcionais [4419]namespace-autoclean-0.31 (para a suíte de teste) Instalação do Specio Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install Sub::Exporter::Progressive-0.001013 Introdução ao Sub::Exporter::Progressive "Sub::Exporter::Progressive" é um envólucro para "Sub::Exporter". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4420]https://cpan.metacpan.org/authors/id/F/FR/FREW/Sub-Exporter-P rogressive-0.001013.tar.gz * Soma de verificação MD5 da transferência: 72cf6acdd2a0a8b105821a4db98e4ebe Instalação do Sub::Exporter::Progressive Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install Sub::Quote-2.006008 Introdução ao Sub::Quote "Sub::Quote" fornece maneiras de gerar sub-rotinas a partir de sequências de caracteres. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4421]https://cpan.metacpan.org/authors/id/H/HA/HAARG/Sub-Quote-2.0 06008.tar.gz * Soma de verificação MD5 da transferência: f19c60039ba87f69f7f9357fc0a03e07 Instalação do Sub::Quote Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install Sub::Uplevel-0.2800 Introdução ao Sub::Uplevel "Sub::Uplevel" permite que você engane um chamador dizendo que ele está executando em um quadro mais alto da pilha. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4422]https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN/Sub-Upleve l-0.2800.tar.gz * Soma de verificação MD5 da transferência: 6c6a174861fd160e8d5871a86df00baf Instalação do Sub::Uplevel Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install Term::Table-0.024 Introdução ao Term::Table Term::Table formata um cabeçalho e linhas em uma tabela. Isso é usado por alguns testes falhos para fornecer diagnósticos relativos ao que deu errado. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4423]https://cpan.metacpan.org/authors/id/E/EX/EXODIST/Term-Table- 0.024.tar.gz * Soma de verificação MD5 da transferência: fda537b24c606191fc10b561962a4a67 Dependências do Term::Table Recomendadas (exigidas para a suíte de teste) [4424]Test-Simple-1.302209 Instalação do Term::Table Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install Test::Deep-1.204 Introdução ao Test::Deep "Test::Deep" te dá maneiras muito flexíveis de verificar se o resultado obtido é o resultado que você estava esperando. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4425]https://cpan.metacpan.org/authors/id/R/RJ/RJBS/Test-Deep-1.20 4.tar.gz * Soma de verificação MD5 da transferência: fcff296434cd92538ae9de9d1744705f Instalação do Test::Deep Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install Test::Exception-0.43 Introdução ao Test::Exception "Test::Exception" fornece métodos convenientes para testar código baseado em exceções. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4426]https://cpan.metacpan.org/authors/id/E/EX/EXODIST/Test-Except ion-0.43.tar.gz * Soma de verificação MD5 da transferência: 572d355026fb0b87fc2b8c64b83cada0 Dependências do Test::Exception Exigidas [4427]Sub-Uplevel-0.2800 Instalação do Test::Exception Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install Test::Fatal-0.017 Introdução ao Test::Fatal O módulo "Test::Fatal" fornece ajudantes simples para testar código que lança exceções. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4428]https://cpan.metacpan.org/authors/id/R/RJ/RJBS/Test-Fatal-0.0 17.tar.gz * Soma de verificação MD5 da transferência: 2f160c31e1848536e3b82112d573bb76 Dependências do Test::Fatal Exigidas [4429]Try-Tiny-0.32 Instalação do Test::Fatal Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install Test::File-1.994 Introdução ao Test::File "Test::File" fornece uma coleção de utilitários de teste para atributos de arquivo. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4430]https://cpan.metacpan.org/authors/id/B/BR/BRIANDFOY/Test-File -1.994.tar.gz * Soma de verificação MD5 da transferência: d941b5e964800ceb4cbf1b5718b60290 Dependências do Test::File Recomendadas (exigidas para a suíte de teste) [4431]Test-utf8-1.03 Instalação do Test::File Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install Test::File::ShareDir-1.001002 Introdução ao Test::File::ShareDir "Test::File::ShareDir" é algum encanamento de baixo nível para habilitar a distribuição a realizar testes enquanto consome os próprios diretórios de compartilhamento deles de maneira semelhante a como eles serão ocasionalmente instalados. Isso permite que [4432]File-ShareDir-1.118 veja a versão mais recente do conteúdo em vez do que estiver instalado no sistema alvo onde você estiver testando. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4433]https://cpan.metacpan.org/authors/id/K/KE/KENTNL/Test-File-Sh areDir-1.001002.tar.gz * Soma de verificação MD5 da transferência: ec31466aa44c1cd56c6cb51d7ec3a5de Dependências do Test::File::ShareDir Exigidas [4434]Class-Tiny-1.008, [4435]File-Copy-Recursive-0.45, [4436]File-ShareDir-1.118, [4437]Path-Tiny-0.146 e [4438]Scope-Guard-0.21 Recomendadas (exigidas para a suíte de teste) [4439]Test-Fatal-0.017 Instalação do Test::File::ShareDir Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install Test::LeakTrace-0.17 Introdução ao Test::LeakTrace "Test::LeakTrace" rastreia vazamentos de memória. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4440]https://cpan.metacpan.org/authors/id/L/LE/LEEJO/Test-LeakTrac e-0.17.tar.gz * Soma de verificação MD5 da transferência: afdb2cc6be0807cb635fb601a004d522 Instalação do Test::LeakTrace Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install Test::Needs-0.002010 Introdução ao Test::Needs "Test::Needs" pula os testes se um módulo solicitado não estiver presente. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4441]https://cpan.metacpan.org/authors/id/H/HA/HAARG/Test-Needs-0. 002010.tar.gz * Soma de verificação MD5 da transferência: 2b3d10946001561297624e7668f09c26 Instalação do Test::Needs Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install Test::Requires-0.11 Introdução ao Test::Requires O módulo "Test::Requires" verifica se outro módulo (opcional) consegue ser carregado e, se não, pula todos os testes atuais. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4442]https://cpan.metacpan.org/authors/id/T/TO/TOKUHIROM/Test-Requ ires-0.11.tar.gz * Soma de verificação MD5 da transferência: 999d6c4e46ea7baae7a5113292e02ed8 Instalação do Test::Requires Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install Test::RequiresInternet-0.05 Introdução ao Test::RequiresInternet Test::RequiresInternet destina-se a testar facilmente a conectividade da rede de intercomunicação antes que os testes funcionais comecem a se conectarem a recursos não locais da Internet. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4443]https://cpan.metacpan.org/authors/id/M/MA/MALLEN/Test-Require sInternet-0.05.tar.gz * Soma de verificação MD5 da transferência: 0ba9f1cff4cf90ed2618c2eddfd525d8 Instalação do Test::RequiresInternet Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install Test::Simple-1.302209 Introdução ao Test::Simple Test::Simple contém utilitários básicos para escrever testes. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4444]https://cpan.metacpan.org/authors/id/E/EX/EXODIST/Test-Simple -1.302209.tar.gz * Soma de verificação MD5 da transferência: 0b0060fafa4dd5cdf9b11fd5bcc1de64 Dependências do Test::Simple Exigidas [4445]Term-Table-0.024 Instalação do Test::Simple Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install Test::utf8-1.03 Introdução ao Test::utf8 "Test::utf8" é uma coleção de testes úteis para lidar com sequências de caracteres utf8 na Perl. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4446]https://cpan.metacpan.org/authors/id/S/SC/SCHWIGON/Test-utf8- 1.03.tar.gz * Soma de verificação MD5 da transferência: 03e219b5a7d0645b313f557238c0f8b3 Instalação do Test::utf8 Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install Test::Warnings-0.038 Introdução ao Test::Warnings "Test::Warnings" testa para avisos e a falta deles. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4447]https://cpan.metacpan.org/authors/id/E/ET/ETHER/Test-Warnings -0.038.tar.gz * Soma de verificação MD5 da transferência: 53f8c543cf362f49f822bdfe31797712 Instalação do Test::Warnings Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install Test::Without::Module-0.23 Introdução ao Test::Without::Module Esse módulo te permite ocultar deliberadamente módulos provenientes de um aplicativo, mesmo que eles estejam instalados. Isso é útil principalmente para testar módulos que possuem um substituto quando um determinado módulo de dependência não estiver instalado. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4448]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 Instalação do Test::Without::Module Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install Test2::Plugin::NoWarnings-0.10 Introdução ao Test2::Plugin::NoWarnings "Test2::Plugin::NoWarnings" causa testes falhem se existir algum aviso durante a execução deles. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4449]https://cpan.metacpan.org/authors/id/D/DR/DROLSKY/Test2-Plugi n-NoWarnings-0.10.tar.gz * Soma de verificação MD5 da transferência: d50e21a76f1fef09004092a73b1c065b Dependências do Test2::Plugin::NoWarnings Exigidas [4450]Test-Simple-1.302209 Recomendadas (exigidas para a suíte de teste) [4451]IPC-Run3-0.049 Instalação do Test2::Plugin::NoWarnings Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install Text::CSV_XS-1.60 Introdução ao Text::CSV_XS "Text::CSV_XS" fornece facilidades para a composição e decomposição de valores separados por vírgula. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4452]https://cpan.metacpan.org/authors/id/H/HM/HMBRAND/Text-CSV_XS -1.60.tgz * Soma de verificação MD5 da transferência: 4c76eb41efea0e6effdd2fd67f40a808 Instalação do Text::CSV_XS Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install Text::Diff-1.45 Introdução ao Text::Diff "Text::Diff" realiza diferenças em arquivos e conjuntos de registros. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4453]https://cpan.metacpan.org/authors/id/N/NE/NEILB/Text-Diff-1.4 5.tar.gz * Soma de verificação MD5 da transferência: edf57b6189f7651a6be454062a4e6d9c Dependências do Text::Diff Exigidas [4454]Algorithm-Diff-1.201 Instalação do Text::Diff Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install Text::Glob-0.11 Introdução ao Text::Glob Text::Glob implementa correspondência de estilo [4455]glob(3) que pode ser usada para corresponder a texto, em vez de buscar nomes a partir de um sistema de arquivos. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4456]https://cpan.metacpan.org/authors/id/R/RC/RCLAMP/Text-Glob-0. 11.tar.gz * Soma de verificação MD5 da transferência: d001559c504a2625dd117bd1558f07f7 Instalação do Text::Glob Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install Tie::Cycle-1.229 Introdução ao Tie::Cycle Você usa "Tie::Cycle" para percorrer uma lista repetidamente. Depois de chegar ao final da lista, você volta ao início. Você não precisa se preocupar com nada disso, pois a magia da gravata faz isso por você. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4457]https://cpan.metacpan.org/authors/id/B/BR/BRIANDFOY/Tie-Cycle -1.229.tar.gz * Soma de verificação MD5 da transferência: 03374d069b69c6673a6fb8a14b64f918 Instalação do Tie::Cycle Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install TimeDate-2.33 Introdução ao TimeDate "TimeDate" fornece diversas rotinas de manipulação de fuso horário. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4458]https://cpan.metacpan.org/authors/id/A/AT/ATOOMIC/TimeDate-2. 33.tar.gz * Soma de verificação MD5 da transferência: 5e5afe22c8d417417283d1f7f4572a57 Instalação do TimeDate Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install Try::Tiny-0.32 Introdução ao Try::Tiny "Try::Tiny" fornece try e catch para esperar e lidar com condições excepcionais, evitando peculiaridades na Perl e erros comuns. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4459]https://cpan.metacpan.org/authors/id/E/ET/ETHER/Try-Tiny-0.32 .tar.gz * Soma de verificação MD5 da transferência: 964424fcada4654bede745a7a2fb870b Dependências do Try::Tiny Opcionais (podem ser usadas pela suíte de teste) [4460]Capture-Tiny-0.50 Instalação do Try::Tiny Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install Variable::Magic-0.64 Introdução ao Variable::Magic "Magic" é a maneira "Perl" de melhorar variáveis. Com esse módulo, você consegue adicionar sua própria magia a qualquer variável. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4461]https://cpan.metacpan.org/authors/id/V/VP/VPIT/Variable-Magic -0.64.tar.gz * Soma de verificação MD5 da transferência: 957d53fc6614deb593aa6d7cf96d713a Instalação do Variable::Magic Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install WWW::RobotRules-6.02 Introdução ao WWW::RobotRules "WWW::RobotRules" analisa arquivos robots.txt, criando um objeto "WWW::RobotRules" com métodos para verificar se o acesso a um determinado "URL" é proibido. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4462]https://cpan.metacpan.org/authors/id/G/GA/GAAS/WWW-RobotRules -6.02.tar.gz * Soma de verificação MD5 da transferência: b7186e8b8b3701e70c22abf430742403 Dependências do WWW::RobotRules Exigidas (tempo de execução) [4463]libwww-perl-6.78 (instale esse módulo primeiro e instale-o mais tarde) Instalação do WWW::RobotRules Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install XML::LibXML-2.0210 Introdução ao XML::LibXML "XML::LibXML" é uma ligação "Perl" para [4464]libxml2-2.13.6. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4465]https://cpan.metacpan.org/authors/id/S/SH/SHLOMIF/XML-LibXML- 2.0210.tar.gz * Soma de verificação MD5 da transferência: d2bad7f395716a6f57abde538d47008c Transferência Adicional * Remendo exigido: [4466]https://www.linuxfromscratch.org/patches/blfs/12.3/XML-LibXML -2.0210-testsuite_fixes-1.patch Dependências do XML::LibXML Exigidas [4467]Alien-Libxml2-0.19 e [4468]XML-SAX-1.02 Instalação do XML::LibXML Primeiro, aplique um remendo para corrigir problemas com a suíte de teste quando compilada em relação à libxml2-2.13: patch -Np1 -i ../XML-LibXML-2.0210-testsuite_fixes-1.patch Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install XML::NamespaceSupport-1.12 Introdução ao XML::NamespaceSupport "XML::NamespaceSupport" oferece uma maneira simples de processar nomes "XML" com espaços de nome a partir de dentro de qualquer aplicativo que possa precisar deles. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4469]https://cpan.metacpan.org/authors/id/P/PE/PERIGRIN/XML-Namesp aceSupport-1.12.tar.gz * Soma de verificação MD5 da transferência: a8916c6d095bcf073e1108af02e78c97 Instalação do XML::NamespaceSupport Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install XML::SAX-1.02 Introdução ao XML::SAX "XML::SAX" é uma "API" de acesso ao analisador "SAX" para "Perl". Inclui classes e "APIs" exigidas para implementar controladores "SAX", juntamente com uma classe de fábrica para retornar qualquer analisador "SAX" instalado no sistema do(a) usuário(a). Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4470]https://cpan.metacpan.org/authors/id/G/GR/GRANTM/XML-SAX-1.02 .tar.gz * Soma de verificação MD5 da transferência: b62e3754523695c7f5bbcafa3676a38d Dependências do XML::SAX Exigidas [4471]libxml2-2.13.6, [4472]XML-NamespaceSupport-1.12 e [4473]XML-SAX-Base-1.09 Instalação do XML::SAX Esse módulo usa uma variante das instruções padrão de construção e instalação: yes | perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install Explicações do Comando yes: "Perl" perguntará se você deseja alterar o "ParserDetails.ini" e, então, aguardará uma resposta. O padrão é "y". Usar "yes" te permite automatizar isso. XML::SAX::Base-1.09 Introdução ao XML::SAX::Base Esse módulo tem uma tarefa muito simples - ser uma classe base para controladores e filtros "PerlSAX". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4474]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 Instalação do XML::SAX-Base Esse módulo usa as instruções padrão de construção e instalação: perl Makefile.PL && make && make test Agora, como o(a) usuário(a) root: make install PHP-8.4.4 Introdução ao PHP PHP é o PHP Hypertext Preprocessor. Usado principalmente em sites dinâmicos, ele permite que o código de programação seja diretamente incorporado na marcação HTML. Ele também é útil como uma linguagem de script de propósito geral. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4475]https://www.php.net/distributions/php-8.4.4.tar.xz * Transferência (FTP): * Soma de verificação MD5 da transferência: c9aa75fada9f41e9f0e02642b51225cc * Tamanho da transferência: 13 MB * Espaço em disco estimado exigido: 589 MB (com documentação e testes) * Tempo de construção estimado: 1,3 UPC (com paralelismo=4; adicionar 2,5 UPC para testes) Transferências Adicionais * Documentação pré construida opcional (arquivo único HTML): [4476]https://www.php.net/distributions/manual/php_manual_en.html.g z * Documentação pré construída opcional (HTML em pedaços): [4477]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 [4478]https://www.php.net/download-docs.php Dependências do PHP Recomendadas [4479]Apache-2.4.63 e [4480]libxml2-2.13.6 Utilitários e Bibliotecas de Sistema Opcionais [4481]Aspell-0.60.8.1, [4482]enchant-2.8.2, [4483]libxslt-1.1.42, um [4484]MTA (que forneça um comando sendmail), [4485]pcre2-10.45, [4486]AppArmor, [4487]Dmalloc, [4488]Net-SNMP, [4489]oniguruma, [4490]OSSP mm, [4491]re2c e [4492]XMLRPC-EPI Utilitários e Bibliotecas Gráficos Opcionais [4493]FreeType-2.13.3, [4494]libexif-0.6.25, [4495]libjpeg-turbo-3.0.1, [4496]libpng-1.6.46, [4497]libtiff-4.7.0, [4498]libwebp-1.5.0, [4499]um ambiente gráfico, [4500]FDF Toolkit, [4501]GD e [4502]t1lib Utilitários Opcionais da Web [4503]cURL-8.12.1, [4504]tidy-html5-5.8.0, [4505]Caudium, [4506]Hyperwave, [4507]Roxen WebServer e [4508]WDDX Utilitários e Bibliotecas Opcionais de Gerenciamento de Dados [4509]lmdb-0.9.31, [4510]MariaDB-11.4.5 ou [4511]MySQL, [4512]OpenLDAP-2.6.9, [4513]PostgreSQL-17.4, [4514]SQLite-3.49.1, [4515]unixODBC-2.3.12, [4516]Berkeley DB (obsoleto) [4517]Adabas, [4518]Birdstep, [4519]cdb, [4520]DBMaker, [4521]Empress, [4522]FrontBase, [4523]IBM DB2, [4524]libiodbc, [4525]Mini SQL, [4526]Monetra e [4527]QDBM PHP também fornece suporte para muitas ferramentas comerciais de base de dados, como Oracle, SAP e ODBC Router. Utilitários e Bibliotecas Opcionais de Segurança/Encriptação [4528]Cyrus SASL-2.1.28, [4529]MIT Kerberos V5-1.21.3, [4530]libmcrypt e [4531]mhash Observações de Editor(a): [4532]https://wiki.linuxfromscratch.org/blfs/wiki/php Instalação do PHP Você pode usar PHP para scripts do lado do servidor, scripts de linha de comando ou aplicativos GUI do lado do cliente. Este livro fornece instruções para configurar PHP para scripts do lado do servidor, pois é a forma mais comum. Nota PHP tem muito mais opções do configure que habilitarão suporte para várias coisas. Você pode usar ./configure --help para ver uma lista completa das opções disponíveis. Também, o uso do [4533]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 [4534]https://anduin.linuxfromscratch.org/BLFS/files/php_configure.txt. Se, por qualquer motivo, você não tiver [4535]libxml2-2.13.6 instalado, você precisa adicionar --disable-libxml ao comando configure nas instruções abaixo. Observe que isso impedirá que o comando pear seja construído. Instale PHP executando os seguintes comandos: ./configure --prefix=/usr \ --sysconfdir=/etc \ --localstatedir=/var \ --datadir=/usr/share/php \ --mandir=/usr/share/man \ --without-pear \ --enable-fpm \ --with-fpm-user=apache \ --with-fpm-group=apache \ --with-config-file-path=/etc \ --with-zlib \ --enable-bcmath \ --with-bz2 \ --enable-calendar \ --enable-dba=shared \ --with-gdbm \ --with-gmp \ --enable-ftp \ --with-gettext \ --enable-mbstring \ --disable-mbregex \ --with-readline && make Para testar os resultados, emita: make test. Several tests (out of over 20000) may fail, in which case you are asked whether you want to send the report to the PHP developers. If you want to automate the test, you may prefix the command with yes "n" | . Agora, como o(a) usuário(a) root: make install && install -v -m644 php.ini-production /etc/php.ini && install -v -m755 -d /usr/share/doc/php-8.4.4 && install -v -m644 CODING_STANDARDS* EXTENSIONS NEWS README* UPGRADING* \ /usr/share/doc/php-8.4.4 Os arquivos pré definidos de configuração para o gerenciador de processos fastCGI são instalados somente se eles ainda não existirem no sistema. Se esta for a primeira instalação, eles deveriam ser renomeados, como o(a) usuário(a) root: if [ -f /etc/php-fpm.conf.default ]; then mv -v /etc/php-fpm.conf{.default,} && mv -v /etc/php-fpm.d/www.conf{.default,} fi A documentação HTML pré-construída é empacotada em dois formatos: um tarball contendo muitos arquivos individuais, útil para carregamento rápido no teu navegador, e um arquivo individual grande, que é útil para usar o utilitário de pesquisa do teu navegador. Se você baixou um, ou ambos, os arquivos de documentação, emita os seguintes comandos como o(a) usuário(a) root para instalá-los (observe que estas instruções assumem documentos em inglês; modifique os nomes dos tarballs abaixo se necessário). Para o arquivo “HTML Único”: install -v -m644 ../php_manual_en.html.gz \ /usr/share/doc/php-8.4.4 && gunzip -v /usr/share/doc/php-8.4.4/php_manual_en.html.gz Para o tarball “Muitos arquivos HTML”: tar -xvf ../php_manual_en.tar.gz \ -C /usr/share/doc/php-8.4.4 --no-same-owner O pear empacotado não é instalado por causa de um defeito que poderia poluir o sistema de arquivos com vários arquivos e diretórios ocultos. Se o pear for necessário, execute os seguintes comandos para instalá-lo: wget https://pear.php.net/go-pear.phar php ./go-pear.phar Explicações do Comando --datadir=/usr/share/php: Isso contorna um defeito no mecanismo de construção, que instala alguns dados em um local errado. --enable-fpm: Esse parâmetro permite construir o Gerenciador de Processos fastCGI. --without-pear: Essa chave desabilita a instalação do software pear incluído. --with-config-file-path=/etc: Esse parâmetro faz com que PHP procure o arquivo de configuração php.ini em /etc. --with-zlib: Esse parâmetro adiciona suporte para compressão Zlib. --enable-bcmath: Habilita funções matemáticas de precisão no estilo do bc. --with-bz2: Adiciona suporte para funções de compressão do Bzip2. --enable-calendar: Esse parâmetro fornece suporte para conversão de calendário. --enable-dba=shared: Esse parâmetro habilita o suporte para funções de camada de abstração de base de dados (estilo dbm). --enable-ftp: Esse parâmetro habilita funções de FTP. --with-gettext: Habilita funções que usam a tradução de texto Gettext. --enable-mbstring: Esse parâmetro habilita o suporte a sequências de caracteres de multi byte. --with-readline: Esse parâmetro habilita o suporte Readline de linha de comando. --disable-libxml: Essa opção permite construir o PHP sem libxml2 instalado. --with-apxs2: Em vez de construir o gerenciador de processos fastCGI, é possível construir um módulo do apache. Isso tem alguma penalidade de desempenho para servidores com carga pesada, mas pode ser mais fácil de configurar. Essa chave é incompatível com as chaves --enable-fpm e --with-fpm-.... --with-mysqli=shared: Essa opção inclui suporte ao MySQLi. --with-mysql-sock=/run/mysqld/mysqld.sock: Local do ponteiro do soquete Unix do MySQL. --with-pdo-mysql=shared: Essa opção inclui suporte a PDO: MySQL. --with-tidy=shared: Essa opção inclui suporte a biblioteca tidy. Configurando PHP Arquivos de Configuração /etc/php.ini, /etc/pear.conf, /etc/php-fpm.conf e /etc/php-fpm.d/www.conf Informação de Configuração O arquivo usado como o arquivo pré definido de configuração /etc/php.ini é recomendado pela equipe de desenvolvimento do PHP. Esse arquivo modifica o comportamento pré definido do PHP. Se nenhum /etc/php.ini for usado, todas as definições de configuração cairão para as pré definidas. Você deveria revisar os comentários nesse arquivo e garantir que as mudanças sejam aceitáveis em teu ambiente específico. O gerenciador de processos fastCGI usa o arquivo de configuração /etc/php-fpm.conf. O arquivo pré definido enviado com o PHP inclui todos os /etc/php-fpm.d/*.conf em sequência. Existe um arquivo /etc/php-fpm.d/www.conf enviado, que contém os parâmetros relacionados à interação com o servidor Web Apache. Você deve ter observado o seguinte a partir da saída gerada do comando make install: You may want to add: /usr/lib/php to your php.ini include_path Se desejado, adicione a entrada usando o seguinte comando como o(a) usuário(a) root: sed -i 's@php/includes"@&\ninclude_path = ".:/usr/lib/php"@' \ /etc/php.ini Para habilitar o suporte fastCGI no servidor web Apache, duas diretivas LoadModule precisam ser adicionadas ao arquivo httpd.conf. Elas estão comentadas, de forma que apenas emita o seguinte comando como usuário(a) root: sed -i -e '/proxy_module/s/^#//' \ -e '/proxy_fcgi_module/s/^#//' \ /etc/httpd/httpd.conf Esses módulos aceitam várias diretivas ProxyPass. Uma possibilidade é (como o(a) usuário(a) root): echo \ 'ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/srv/www/$1' >> \ /etc/httpd/httpd.conf Além disso, pode ser útil adicionar uma entrada para index.php para a diretiva DirectoryIndex do arquivo httpd.conf. Por fim, adicionar uma linha para configurar a extensão .phps para mostrar o fonte PHP destacado pode ser desejável: AddType application/x-httpd-php-source .phps Você precisará reiniciar o servidor web Apache depois de fazer quaisquer modificações no arquivo httpd.conf. Script de Inicialização Para iniciar automaticamente o processo de segundo plano php-fpm quando o sistema for reinicializado, instale o conjunto de comandos sequenciais de inicialização /etc/rc.d/init.d/php oriundo do pacote [4536]blfs-bootscripts-20250225 como o(a) usuário(a) root: make install-php Conteúdo Aplicativos Instalados: phar (link simbólico), phar.phar, php, php-cgi, php-config, php-fpm, phpdbg e phpize Bibliotecas Instaladas: dba.so e opcache.so em /usr/lib/php/extensions/no-debug-non-zts-20230831 Diretórios Instalados: /etc/php-fpm.d, /usr/{include,lib,share}/php e /usr/share/doc/php-8.4.4 Descrições Curtas php é uma interface de linha de comando que te habilita a analisar e a executar código PHP pear é o gerenciador de pacotes PHP Extension and Application Repository (PEAR). Isso não é instalado por pré definição php-fpm é o gerenciador de processos fastCGI para PHP phpdbg é o depurador interativo de PHP Python-3.13.2 Introdução ao Python 3 O pacote Python 3 contém o ambiente de desenvolvimento Python. Isso é útil para programação orientada a objetos, escrita de conjuntos sequenciais de comandos, prototipagem de aplicativos grandes ou desenvolvimento de aplicativos inteiros. Nota O Python 3 foi instalado no LFS. A única razão para reconstruí-lo aqui é se módulos opcionais forem necessários ou para atualizar esse pacote. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Importante Se atualizar para uma nova versão secundária do Python-3 (por exemplo, de Python-3.11.x para Python-3.12.0), você precisará reinstalar quaisquer módulos do Python3 que tiver instalado. Você também deveria reinstalar pacotes que geram módulos do Python3, incluindo [4537]GLib-2.82.5 (com GObject Introspection), [4538]libxml2-2.13.6, [4539]opencv-4.11.0, [4540]FontForge-20230101, [4541]gnome-tweaks-46.1, [4542]Samba-4.21.4 e [4543]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 [4544]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: [4545]flit-core, [4546]wheel, [4547]setuptools, [4548]meson, [4549]MarkupSafe e [4550]Jinja2. Informação do Pacote * Transferência (HTTP): [4551]https://www.python.org/ftp/python/3.13.2/Python-3.13.2.tar.xz * Transferência (FTP): * Soma de verificação MD5 da transferência: 4c2d9202ab4db02c9d0999b14655dfe5 * Tamanho da transferência: 22 MB * Espaço em disco estimado exigido: 649 MB (adicionar 65 MB para os testes) * Tempo de construção estimado: 2,1 UPC (adicionar 1,1 UPC para testes; ambos usando paralelismo=4) Transferência Adicional Opcional * Transferência (HTTP): [4552]https://www.python.org/ftp/python/doc/3.13.2/python-3.13.2-do cs-html.tar.bz2 * Soma de verificação MD5 da transferência: d6aede88f480a018d26b3206f21654ae Dependências do "Python" 3 Recomendadas [4553]SQLite-3.49.1 (exigido se construir Firefox ou Thunderbird) Opcionais [4554]BlueZ-5.79, [4555]GDB-16.2 (exigido para alguns testes), [4556]Valgrind-3.24.0 e [4557]libmpdec Opcionais (Para Módulos Adicionais) [4558]libnsl-2.0.1, [4559]Tk-8.6.16 e [4560]Berkeley DB (obsoleto) Observações de Editor(a): [4561]https://wiki.linuxfromscratch.org/blfs/wiki/Python3 Instalação do Python 3 Instale o "Python 3" executando os seguintes comandos: CXX="/usr/bin/g++" \ ./configure --prefix=/usr \ --enable-shared \ --with-system-expat \ --enable-optimizations && make Alguns testes são conhecidos por travarem ocasional e indefinidamente. Portanto, para testar os resultados, execute a suíte de teste, porém configure um limite de tempo de 2 minutos para cada caso de teste: make test TESTOPTS="--timeout 120" Para um sistema relativamente lento, você possivelmente precise aumentar o limite de tempo e 1 UPC (medido ao construir Binutils a passagem 1 com um núcleo de CPU) deveria ser suficiente. Alguns testes são instáveis, de forma que a suíte de teste automaticamente reexecutará testes falhos. Se um teste falhou, porém a seguir passou quando reexecutado, ele deveria ser considerado como passado. De mais de 44.000 testes, o seguinte teste é conhecido por falhar: test_importlib. Agora, como o(a) usuário(a) "root": make install Se atualizar e a documentação tiver sido baixada, [então] opcionalmente instale-a como o(a) usuário(a) "root": install -v -dm755 /usr/share/doc/python-3.13.2/html tar --strip-components=1 \ --no-same-owner \ --no-same-permissions \ -C /usr/share/doc/python-3.13.2/html \ -xvf ../python-3.13.2-docs-html.tar.bz2 Explicações do Comando CXX="/usr/bin/g++" ./configure ...: Evite uma mensagem irritante durante a configuração. --with-system-expat: Essa chave habilita vinculação à versão do sistema do Expat. --enable-optimizations: Essa chave habilita otimizações estáveis, mas caras. --with-lto: Essa chave opcional habilita "Link Time Optimization" denso. Excepcionalmente, ele cria um "/usr/lib/python3.13/config-3.13--linux-gnu/libpython3.13.a" muito maior com um pequeno aumento no tempo para compilar o "Python". Os resultados em tempo de execução não parecem mostrar nenhum benefício advindo de fazer isso. Configurando o Python 3 Para a finalidade de que "python3" encontre a documentação instalada, crie o seguinte link simbólico independente da versão: ln -svfn python-3.13.2 /usr/share/doc/python-3 e adicione a seguinte variável de ambiente ao perfil individual do(a) usuário(a) ou ao do sistema: export PYTHONDOCS=/usr/share/doc/python-3/html Conteúdo Aplicativos Instalados: 2to3 (link simbólico) e 2to3-3.13, idle3 (link simbólico) e idle3.13, pip3 e pip3.13, pydoc3 (link simbólico) e pydoc3.13, python3 (link simbólico) e python3.13, e python3-config (link simbólico) e python3.13-config Bibliotecas Instaladas: libpython3.13.so e libpython3.so Diretórios Instalados: /usr/include/python3.13, /usr/lib/python3.13 e /usr/share/doc/python-3.13.2 Descrições Curtas idle3 é um conjunto sequencial de comandos envólucros que abrem um editor "GUI" compatível com "Python". Para esse conjunto sequencial de comandos executar, você precisa ter instalado o "Tk" antes do "Python", de forma que o módulo "Tkinter" do "Python" seja construído pydoc3 é a ferramenta de documentação do "Python" python3 é uma linguagem de programação interpretada, interativa e orientada a objetos python3.13 é um nome específico da versão para o programa python Python-3.11.1 Introdução ao Python 3.11 O pacote Python 3.11 contém uma versão mais antiga do ambiente de desenvolvimento do Python. Isso é necessário somente para construir [4562]seamonkey-2.53.20, pois o sistema de construção dele não tem sido atualizado para suportar [4563]Python-3.13.2. Nota NÃO instale esse pacote se você não estiver instalando Seamonkey. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4564]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) Dependências do Python 3.11 Recomendadas [4565]SQLite-3.49.1 Instalação do Python 3.11 Instale Python 3.11 executando os seguintes comandos: CXX="/usr/bin/g++" \ ./configure --prefix=/opt/python3.11 \ --disable-shared \ --with-system-expat && make Como esse pacote é usado somente em situações muito limitadas, testes não são recomendados. Agora, como o(a) usuário(a) root: make install Explicações do Comando CXX="/usr/bin/g++" ./configure ...: Evite uma mensagem irritante durante a configuração. --prefix=/opt/python3.11: Isso instala Python 3.11 em /opt para a finalidade de evitar conflitos com a versão do sistema do Python e permitir fácil remoção/isolamento quando programas atualizarem para Python 3.12 ou posterior. --disable-shared: Essa chave desabilita construir bibliotecas compartilhadas. Como todos os pacotes que precisam do python-3.11 foram construídos em módulos e não se vinculam diretamente ao python, é seguro desativar o suporte de biblioteca compartilhada. --with-system-expat: Essa chave habilita vinculação à versão do sistema do Expat. Conteúdo Aplicativos Instalados: python3.11 Bibliotecas Instaladas: libpython3.11.a Diretórios Instalados: /opt/python3.11/include/python3.11 e /opt/python3.11/lib/python3.11, Descrições Curtas python3.11 é um nome específico da versão para o programa python Módulos "Python" Introdução aos Módulos do Python Os pacotes de módulo Python adicionam objetos úteis à linguagem Python. Os módulos utilizados pelos pacotes em todo o BLFS estão listados aqui, junto com as dependências deles. Nota Se você quiser executar testes, vários dos seguintes módulos dependem do módulo central python sqlite3 que não foi construído no LFS. Portanto, é recomendado reconstruir o Python depois de instalar a dependência recomendada listada em [4566]Python-3.13.2. Importante No BLFS, normalmente construímos e instalamos módulos "Python 3" com pip3. Por favor tome cuidado de que os comandos pip3 install no livro deveriam ser executados como root a menos que seja para um ambiente virtual "Python". Executar o pip3 install como um(a) usuário(a) não-root possivelmente pareça funcionar bem, mas causará o módulo instalado ficar inacessível para outros(as) usuários(as). pip3 install não reinstalará um módulo já instalado por padrão. Para usar o comando pip3 install para atualizar um módulo (por exemplo, de meson-0.61.3 para meson-0.62.0), insira --upgrade na linha de comando. Se for realmente necessário desatualizar um módulo ou reinstalar a mesma versão por algum motivo, insira --force-reinstall na linha de comando. * [4567]asciidoc-10.2.1 * [4568]CacheControl-0.14.2 * [4569]cssselect-1.2.0 * [4570]cython-3.0.12 * [4571]dbusmock-0.34.3 * [4572]D-Bus Python-1.3.2 * [4573]docutils-0.21.2 * [4574]doxypypy-0.8.8.7 * [4575]doxyqml-0.5.3 * [4576]Gi-DocGen-2025.3 * [4577]html5lib-1.1 * [4578]lxml-5.3.1 * [4579]Mako-1.3.9 * [4580]NumPy-2.2.3 * [4581]packaging-24.2 * [4582]ply-3.11 * [4583]psutil-7.0.0 * [4584]Py3c-1.4 * [4585]PyAtSpi2-2.46.1 * [4586]PyCairo-1.26.1 * [4587]pygdbmi-0.11.0.0 * [4588]Pygments-2.19.1 * [4589]PyGObject-3.50.0 * [4590]pyparsing-3.2.1 * [4591]pySerial-3.5 * [4592]pytest-8.3.4 * [4593]PyXDG-0.28 * [4594]PyYAML-6.0.2 * [4595]recommonmark-0.7.1 * [4596]requests-2.32.3 * [4597]sentry-sdk-2.22.0 * [4598]Scour-0.38.2 * [4599]six-1.17.0 * [4600]sphinx-8.2.1 * [4601]sphinx_rtd_theme-3.0.2 Asciidoc-10.2.1 Introdução ao Módulo Asciidoc O pacote Asciidoc é um formato de documento de texto para escrever notas, documentação, artigos, livros, "e-books", apresentações de slides, páginas da "web", páginas de manual e "blogs". Os arquivos "AsciiDoc" podem ser traduzidos para muitos formatos, incluindo "HTML", "PDF", "EPUB" e página de manual. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4602]https://files.pythonhosted.org/packages/source/a/asciidoc/asc iidoc-10.2.1.tar.gz * Transferência (FTP): * 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 Dependências do Asciidoc Opcionais (tempo de execução) [4603]docbook-xsl-nons-1.79.2, [4604]fop-2.10, [4605]libxslt-1.1.42, [4606]Lynx-2.9.2, [4607]dblatex e [4608]W3m Instalação do Asciidoc Construa o módulo: pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) root: pip3 install --no-index --find-links dist --no-user asciidoc Explicações do Comando -w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist". --no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção. --no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto. --no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links"). --find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist". --no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root". --no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root". --upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada. --force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote. --no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall". Conteúdo Aplicativos Instalados: a2x e asciidoc Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /usr/lib/python3.13/site-packages/asciidoc e /usr/lib/python3.13/site-packages/asciidoc-10.2.1.dist-info Descrições Curtas a2x é um gerenciador de conjunto de ferramentas para "AsciiDoc" (converte arquivos de texto "Asciidoc" para outros formatos de arquivo) asciidoc converte um arquivo de texto "AsciiDoc" para "HTML" ou "DocBook" CSSSelect-1.2.0 Introdução ao Módulo CSSSelect CSSSelect fornece seletores "CSS" para "Python". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4609]https://files.pythonhosted.org/packages/source/c/cssselect/cs sselect-1.2.0.tar.gz * Transferência (FTP): * 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 Dependências do CSSSelect Exigidas [4610]setuptools_scm-8.1.0 Opcionais (para testagem) [4611]lxml-5.3.1 e [4612]pytest-8.3.4 Instalação do CSSSelect Construa o módulo: pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD Agora, como o(a) usuário(a) root: pip3 install --no-index --find-links dist --no-user cssselect Para testar a instalação, emita pytest. Explicações do Comando -w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist". --no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção. --no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto. --no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links"). --find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist". --no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root". --no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root". --upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada. --force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote. --no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall". Conteúdo Aplicativos Instalados: Nenhum(a) Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /usr/lib/python3.13/site-packages/cssselect CacheControl-0.14.2 Introdução ao Módulo CacheControl CacheControl é uma porta dos algoritmos de cache em "httplib2" para uso com solicitações de objeto de sessão. Ele foi escrito porque o melhor suporte do "httplib2" para cache frequentemente é mitigado pela falta de segurança de camada. O mesmo se aplica às solicitações em termos de cache. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4613]https://github.com/psf/cachecontrol/archive/v0.14.2/cachecont rol-0.14.2.tar.gz * Transferência (FTP): * 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 Dependências do CacheControl Exigidas [4614]msgpack-1.1.0 e [4615]requests-2.32.3 Instalação do CacheControl Construa o módulo: pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD Agora, como o(a) usuário(a) root: pip3 install --no-index --find-links dist --no-user cachecontrol Esse módulo não tem uma suíte de teste funcional. Explicações do Comando -w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist". --no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção. --no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto. --no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links"). --find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist". --no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root". --no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root". --upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada. --force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote. --no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall". Conteúdo Aplicativos Instalados: doesitcache Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /usr/lib/python3.13/site-packages/CacheControl-0.14.2.dist-info e /usr/lib/python3.13/site-packages/cachecontrol Descrições Curtas doesitcache é um conjunto de comandos sequenciais de linha de comando não documentado. Cython-3.0.12 Introdução ao Módulo Cython O pacote Cython fornece um compilador para escrever extensões "C" para a linguagem "Python". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4616]https://github.com/cython/cython/releases/download/3.0.12/cyt hon-3.0.12.tar.gz * Transferência (FTP): * 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 Instalação do Cython Construa o módulo: pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) root: pip3 install --no-index --find-links dist --no-user Cython Explicações do Comando -w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist". --no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção. --no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto. --no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links"). --find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist". --no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root". --no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root". --upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada. --force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote. --no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall". Conteúdo Aplicativos Instalados: cygdb, cython e cythonize Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /usr/lib/python3.13/site-packages/Cython, /usr/lib/python3.13/site-packages/Cython-3.0.12.dist-info e /usr/lib/python3.13/site-packages/pyximport Descrições Curtas cygdb é o depurador Cython cython é um compilador para código escrito na linguagem Cython. Ele gera um aplicativo C/C++ que pode ser compilado com um compilador C/C++ cythonize é um compilador para código escrito na linguagem Cython. Ele gera um módulo de extensão que é importável diretamente a partir do Python dbusmock-0.34.3 Introdução ao dbusmock dbusmock é uma biblioteca "Python" útil para escrever testes para logiciário que se comunique com serviços "D-Bus". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4617]https://files.pythonhosted.org/packages/source/p/python-dbusm ock/python_dbusmock-0.34.3.tar.gz * Transferência (FTP): * 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 Dependências do dbusmock Exigidas [4618]D-Bus Python-1.3.2 Opcionais [4619]pytest-8.3.4 (exigido para executar a suíte de teste), [4620]PyGObject-3.50.0 (exigido para executar a suíte de teste), [4621]BlueZ-5.79 (opcional para a suíte de teste) e [4622]UPower-1.90.7 (opcional para a suíte de teste; se não instalado, um teste falhará) Instalação do dbusmock Construa o pacote com: pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD Para instalar o pacote execute o seguinte como o(a) usuário(a) root: pip3 install --no-index --find-links dist --no-user python-dbusmock Para testar os resultados, emita: LC_ALL=C pytest Explicações do Comando -w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist". --no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção. --no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto. --no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links"). --find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist". --no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root". --no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root". --upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada. --force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote. --no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall". Conteúdo Aplicativos Instalados: Nenhum(a) Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /usr/lib/python3.13/site-packages/dbusmock e /usr/lib/python3.13/site-packages/python_dbusmock-0.34.3.dist-info D-Bus Python-1.3.2 Introdução ao Módulo D-Bus Python "D-Bus Python" fornece ligações "Python" para a interface "API" "D-Bus". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4623]https://dbus.freedesktop.org/releases/dbus-python/dbus-python -1.3.2.tar.gz * Transferência (FTP): * 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 Dependências do "D-Bus Python" Exigidas [4624]dbus-1.16.0, [4625]GLib-2.82.5, [4626]meson_python-0.17.1 e [4627]patchelf-0.18.0 Instalação do D-Bus Python Construa o módulo "D-Bus Python" executando o seguinte comando: pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD Esse pacote não vem com uma suíte de teste. Agora instale o módulo como o(a) usuário(a) root: pip3 install --no-index --find-links dist --no-user dbus-python Explicações do Comando -w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist". --no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção. --no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto. --no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links"). --find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist". --no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root". --no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root". --upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada. --force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote. --no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall". Conteúdo Aplicativos Instalados: Nenhum(a) Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /usr/lib/python3.13/site-packages/dbus e /usr/lib/python3.13/site-packages/dbus_python-1.3.2.egg-info docutils-0.21.2 Introdução ao docutils "docutils" é um conjunto de módulos e programas "Python" para processar documentos de texto simples em formatos como "HTML", "XML" ou "LaTeX". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4628]https://files.pythonhosted.org/packages/source/d/docutils/doc utils-0.21.2.tar.gz * Transferência (FTP): * 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 Instalação do docutils Primeiro, remova alguns arquivos instalados em uma versão anterior que não mais são válidos. Como o(a) usuário(a) root: for f in /usr/bin/rst*.py; do rm -fv /usr/bin/$(basename $f .py) done Para construir os aplicativos "Python 3", execute o seguinte comando: pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD Para instalar os aplicativos "Python" execute o seguinte como o(a) usuário(a) "root": pip3 install --no-index --find-links dist --no-user docutils Para testar a instalação, emita: test/alltests.py. Dois testes na suíte test_parser são conhecidos por falharem. Explicações do Comando -w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist". --no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção. --no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto. --no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links"). --find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist". --no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root". --no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root". --upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada. --force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote. --no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall". Conteúdo Aplicativos Instalados: docutils, rst2html4, rst2html5, rst2html, rst2latex, rst2man, rst2odt_prepstyles, rst2odt, rst2pseudoxml, rst2s5, rst2xetex, rst2xml e rstpep2html Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /usr/lib/python3.13/site-packages/docutils{,-0.21.2.dist-info} Descrições Curtas docutils converte documentos em vários formatos rst2html gera documentos "(X)HTML" a partir de fontes independentes "reStructuredText" rst2html4 gera documentos "(X)HTML" a partir de fontes independentes "reStructuredText" rst2html5 gera documentos "HTML5" a partir de fontes independentes "reStructuredText" rst2latex gera documentos "LaTeX" a partir de fontes independentes "reStructuredText" rst2man gera documentos manuais simples "Unix" a partir de fontes independentes "reStructuredText" rst2odt gera documentos "OpenDocument/OpenOffice/ODF" a partir de fontes independentes "reStructuredText" rst2odt_prepstyles Corrige um "styles.odt" gerado por processador de texto para uso do "odtwriter" rst2pseudoxml gera pseudo "XML" a partir de fontes independentes "reStructuredText" (para fins de teste) rst2s5 gera apresentação de slides "(X)HTML" "S5" a partir de fontes independentes "reStructuredText" rst2xetex gera documentos "LaTeX" a partir de fontes independentes "reStructuredText" para compilação com as variantes "TeX" compatíveis com "Unicode" "XeLaTeX" ou "LuaLaTeX" rst2xml gera "XML" nativo do "Docutils" a partir de fontes independentes "reStructuredText" rstpep2html gera "(X)HTML" a partir de arquivos "PEP" no formato "reStructuredText" Doxypypy-0.8.8.7 Introdução ao Módulo Doxypypy O pacote "Doxypypy" é um filtro "doxygen" para "Python". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4629]https://files.pythonhosted.org/packages/source/d/doxypypy/dox ypypy-0.8.8.7.tar.gz * Transferência (FTP): * 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 Dependências do Doxypypy Exigidas [4630]chardet-5.2.0 e [4631]Doxygen-1.13.2 (em tempo de execução) Instalação do Doxypypy Construa o módulo: pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD Agora, como o(a) usuário(a) root: pip3 install --no-index --find-links dist --no-user doxypypy Esse pacote não vem com uma suíte de teste funcional. Explicações do Comando -w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist". --no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção. --no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto. --no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links"). --find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist". --no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root". --no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root". --upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada. --force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote. --no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall". Conteúdo Aplicativos Instalados: doxypypy Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /usr/lib/python3.13/site-packages/doxypypy e /usr/lib/python3.13/site-packages/doxypypy-0.8.8.7.dist-info Descrições Curtas doxypypy filtra o código "Python" para uso com "Doxygen", usando uma abordagem com reconhecimento de sintaxe. Doxyqml-0.5.3 Introdução ao Módulo Doxyqml O pacote "Doxyqml" permite usar "Doxygen" para documentar classes "QML". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4632]https://files.pythonhosted.org/packages/source/d/doxyqml/doxy qml-0.5.3.tar.gz * Transferência (FTP): * 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) Dependências do Doxyqml Exigidas (Tempo de Execução) [4633]Doxygen-1.13.2 Opcionais (para testagem) [4634]pytest-8.3.4 Instalação do Doxyqml Construa o módulo: pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD Agora, como o(a) usuário(a) root: pip3 install --no-index --find-links dist --no-user doxyqml Para testar a instalação, emita: python3 tests/functional/tests.py && python3 tests/unit/tests.py Explicações do Comando -w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist". --no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção. --no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto. --no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links"). --find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist". --no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root". --no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root". --upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada. --force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote. --no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall". Conteúdo Aplicativos Instalados: doxyqml Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /usr/lib/python3.13/site-packages/doxyqml e /usr/lib/python3.13/site-packages/doxyqml-0.5.3.dist-info Descrições Curtas doxyqml é um filtro de entrada "Doxygen" para arquivos "QML". Gi-DocGen-2025.3 Introdução ao Módulo Gi-DocGen Gi-DocGen é um gerador de documentos para bibliotecas baseadas em GObject. GObject é o sistema básico de tipos do projeto GNOME. Gi-DocGen reusa os dados de introspecção gerados por bibliotecas baseadas em GObject para gerar a referência de API dessas bibliotecas, bem como outras documentações auxiliares. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4635]https://files.pythonhosted.org/packages/source/g/gi-docgen/gi _docgen-2025.3.tar.gz * Transferência (FTP): * 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) Dependências do Gi-DocGen Exigidas [4636]Markdown-3.7, [4637]packaging-24.2, [4638]Pygments-2.19.1 e [4639]typogrify-2.1.0 Opcionais [4640]Graphviz-12.2.1 (tempo de execução, para visualizar gráficos de hierarquia de classes) e [4641]pytest-8.3.4 (para testagem) Instalação do gi-docgen Construa o módulo: pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD Agora, como o(a) usuário(a) root: pip3 install --no-index --find-links dist --no-user gi-docgen Para testar a instalação, emita "pytest". Explicações do Comando -w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist". --no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção. --no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto. --no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links"). --find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist". --no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root". --no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root". --upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada. --force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote. --no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall". Conteúdo Aplicativos Instalados: gi-docgen Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /usr/lib/python3.13/site-packages/gidocgen e /usr/lib/python3.13/site-packages/gi_docgen-2025.3.dist-info Descrições Curtas gi-docgen gerencia documentação para bibliotecas baseadas em "libgobject". html5lib-1.1 Introdução ao html5lib Module html5lib fornece uma biblioteca Python pura para analisar HTML. Ele foi projetado para conformar-se com a especificação HTML WHATWG. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4642]https://files.pythonhosted.org/packages/source/h/html5lib/htm l5lib-1.1.tar.gz * Transferência (FTP): * 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 Dependências de html5lib Exigidas [4643]six-1.17.0 e [4644]webencodings-0.5.1 Instalação do html5lib Para construir o módulo do Python 3, execute: pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD Para instalar o módulo, emita o seguinte comando como o(a) usuário(a) root: pip3 install --no-index --find-links dist --no-user html5lib Explicações do Comando -w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist". --no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção. --no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto. --no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links"). --find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist". --no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root". --no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root". --upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada. --force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote. --no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall". Conteúdo Aplicativos Instalados: Nenhum(a) Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /usr/lib/python3.13/site-packages/html5lib e /usr/lib/python3.13/site-packages/html5lib-1.1.dist-info lxml-5.3.1 Introdução ao Módulo lxml "lxml" fornece ligações "Python" para [4645]libxslt-1.1.42 e [4646]libxml2-2.13.6. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4647]https://files.pythonhosted.org/packages/source/l/lxml/lxml-5. 3.1.tar.gz * Transferência (FTP): * 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 Dependências do lxml Exigidas [4648]libxslt-1.1.42 Instalação do lxml Para construir o módulo do Python 3, execute: pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD Para instalar o módulo, emita o seguinte comando como o(a) usuário(a) root: pip3 install --no-index --find-links dist --no-user lxml Explicações do Comando -w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist". --no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção. --no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto. --no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links"). --find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist". --no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root". --no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root". --upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada. --force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote. --no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall". Conteúdo Aplicativos Instalados: Nenhum(a) Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /usr/lib/python3.13/site-packages/lxml e /usr/lib/python3.13/site-packages/lxml-5.3.1.dist-info Mako-1.3.9 Introdução ao Módulo Mako "Mako" é um módulo "Python" que implementa modelos hiper-rápidos e leves para a plataforma "Python". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4649]https://files.pythonhosted.org/packages/source/M/Mako/mako-1. 3.9.tar.gz * Transferência (FTP): * 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) Nota O nome do tarball mudou de Mako para mako, mas ainda instala o módulo como Mako. Dependências do Mako Opcionais (para testagem) [4650]pytest-8.3.4 Instalação do Mako Construa o módulo: pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD Instale o módulo como o(a) usuário(a) "root": pip3 install --no-index --find-links dist --no-user Mako Para testar a instalação, emita "pytest". Explicações do Comando -w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist". --no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção. --no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto. --no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links"). --find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist". --no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root". --no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root". --upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada. --force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote. --no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall". Conteúdo Aplicativos Instalados: mako-render Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /usr/lib/python3.13/site-packages/mako e /usr/lib/python3.13/site-packages/Mako-1.3.9.dist-info Descrições Curtas mako-render renderiza um modelo NumPy-2.2.3 Introdução ao Módulo NumPy "NumPy" é o pacote fundamental para computação científica com "Python". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4651]https://files.pythonhosted.org/packages/source/n/numpy/numpy- 2.2.3.tar.gz * Transferência (FTP): * 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) Dependências do NumPy Exigidas [4652]cython-3.0.12, [4653]meson_python-0.17.1 e [4654]pyproject-metadata-0.9.0 Opcionais fortran oriundo do [4655]GCC-14.2.0, [4656]lapack e cblas e [4657]openblas Opcionais (para testagem) [4658]attrs-25.1.0, [4659]pytest-8.3.4, [4660]pytz-2025.1 e [4661]hypothesis Instalação do NumPy Construa o módulo: pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir -C setup-args=- Dallow-noblas=true $PWD Agora, como o(a) usuário(a) root: pip3 install --no-index --find-links dist --no-user numpy A instalação pode ser testada com os seguintes comandos: mkdir -p test && cd test && python3 -m venv --system-site-packages testenv && source testenv/bin/activate && pip3 install hypothesis && python3 -c "import numpy, sys; sys.exit(numpy.test() is False)" deactivate Explicações do Comando -w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist". --no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção. --no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto. --no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links"). --find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist". --no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root". --no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root". --upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada. --force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote. --no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall". Conteúdo Aplicativos Instalados: f2py, f2py3 e f2py3.13 (três cópias do mesmo "script") Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /usr/lib/python3.13/site-packages/numpy Descrições Curtas f2py é o utilitário gerador de interface "Fortran" para "Python". Packaging-24.2 Introdução ao Módulo Packaging A biblioteca Packaging fornece utilitários que implementam as especificações de interoperabilidade que tem claramente um comportamento correto (PEP440) ou se beneficiam muito de ter uma implementação compartilhada (PEP425). Isso inclui utilitários para manuseio de versão, especificadores, marcadores, etiquetadores e exigências. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4662]https://files.pythonhosted.org/packages/source/p/packaging/pa ckaging-24.2.tar.gz * Transferência (FTP): * 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) Dependências do Packaging Opcionais (para testagem) [4663]pytest-8.3.4 e [4664]pretend Instalação do Packaging Construa o módulo: pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD Agora, como o(a) usuário(a) root: pip3 install --no-index --find-links dist --no-user packaging Supondo que "[4665]pytest-8.3.4" esteja instalado, mas a outra dependência opcional não esteja, a instalação pode ser testada com os seguintes comandos: python3 -m venv --system-site-packages testenv && source testenv/bin/activate && pip3 install pretend && python3 /usr/bin/pytest deactivate Explicações do Comando -w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist". --no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção. --no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto. --no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links"). --find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist". --no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root". --no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root". --upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada. --force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote. --no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall". Conteúdo Aplicativos Instalados: Nenhum(a) Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /usr/lib/python3.13/site-packages/packaging e /usr/lib/python3.13/site-packages/packaging-24.2.dist-info ply-3.11 Introdução ao ply Module O pacote ply é uma implementação 100% Python das ferramentas comuns de análise 'lex' e 'yacc'. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4666]https://files.pythonhosted.org/packages/source/p/ply/ply-3.11 .tar.gz * Transferência (FTP): * 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 Instalação do ply Construa o módulo: pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD Agora, como o(a) usuário(a) root: pip3 install --no-index --find-links dist --no-user ply Esse pacote não vem com uma suíte de teste funcional. Explicações do Comando -w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist". --no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção. --no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto. --no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links"). --find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist". --no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root". --no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root". --upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada. --force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote. --no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall". Conteúdo Aplicativos Instalados: Nenhum(a) Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /usr/lib/python3.13/site-packages/ply e /usr/lib/python3.13/site-packages/ply-3.11.dist-info psutil-7.0.0 Introdução ao psutil Module psutil (utilitários de processo e sistema) é uma biblioteca multiplataforma para recuperar informações acerca de processos em execução e utilização do sistema (CPU, memória, discos, rede de intercomunicação, sensores) em Python. Ela é útil principalmente para monitoramento do sistema, criação de perfil e limitação de recursos de processos e gerenciamento de processos em execução. Ela implementa muitas funcionalidades oferecidas pelas ferramentas clássicas de linha de comando do UNIX, como ps, top, iotop, lsof, netstat, ifconfig, free e outras. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4667]https://files.pythonhosted.org/packages/source/p/psutil/psuti l-7.0.0.tar.gz * Transferência (FTP): * 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 Dependências do Packaging Opcionais (para testagem) [4668]pytest-8.3.4 and [4669]pypinfo Instalação do psutil Construa o módulo: pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD Agora, como o(a) usuário(a) root: pip3 install --no-index --find-links dist --no-user psutil Para testar os resultados, emita: make test. Two tests, TestSystemAPIs::test_disk_usage and TestNetAPIs::test_net_if_addrs, are known to fail. One test named TestAvailProcessAPIs::test_io_counters is known to fail if the kernel does not have CONFIG_TASK_IO_ACCOUNTING enabled. TestScripts.test_who is known to fail if the login manager does not write into /run/utmp (note that due to the potential year 2037 problem, Shadow has already stopped writing into it). TestInternalScripts::test_import_all is known to fail if the external module pyinfo is not installed. Explicações do Comando -w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist". --no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção. --no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto. --no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links"). --find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist". --no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root". --no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root". --upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada. --force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote. --no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall". Conteúdo Aplicativos Instalados: Nenhum(a) Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /usr/lib/python3.13/site-packages/psutil-7.0.0.dist-info Py3c-1.4 Introdução ao Py3c "Py3c" te ajuda a portar extensões "C" para "Python" 3. Ele fornece um guia detalhado e um conjunto de macros para facilitar a portabilidade e reduzir o clichê. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4670]https://github.com/encukou/py3c/archive/v1.4/py3c-1.4.tar.gz * Soma de verificação MD5 da transferência: 53029afde7e0cf8672a2d69d378a0cfc * Tamanho da transferência: 47 KB * Espaço em disco estimado exigido: 608 KB (com testes) * Tempo de construção estimado: menos que 0,1 UPC (com testes) Instalação do Py3c O pacote "Py3c" é um pacote somente de cabeçalhos e, por isso, nenhuma configuração e compilação é necessária. Para testar o pacote, emita: make test-python3 && make test-python3-cpp Para instalar o módulo "Python 3", execute o seguinte comando como o(a) usuário(a) "root": make prefix=/usr install Conteúdo Aplicativos Instalados: Nenhum(a) Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /usr/include/py3c PyAtSpi2-2.46.1 Introdução ao PyAtSpi2 O pacote "PyAtSpi2" contém ligações "Python" para os componentes centrais da Acessibilidade do "GNOME". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4671]https://download.gnome.org/sources/pyatspi/2.46/pyatspi-2.46. 1.tar.xz * Transferência (FTP): * 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 Dependências do PyAtSpi2 Exigidas [4672]PyGObject-3.50.0 Recomendadas [4673]at-spi2-core-2.54.1 Instalação do PyAtSpi2 Para construir "PyAtSpi2" como um módulo "Python 3", execute os seguintes comandos: ./configure --prefix=/usr --with-python=/usr/bin/python3 Esse pacote não vem com uma suíte de teste. Para instalar o módulo "Python 3", execute o seguinte comando como o(a) usuário(a) "root": make install Conteúdo Aplicativos Instalados: Nenhum(a) Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /usr/lib/python3.13/site-packages/pyatspi PyCairo-1.26.1 Introdução ao Módulo PyCairo "PyCairo" fornece ligações "Python" para "Cairo". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4674]https://github.com/pygobject/pycairo/releases/download/v1.26. 1/pycairo-1.26.1.tar.gz * Transferência (FTP): * 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 Dependências do PyCairo Exigidas [4675]Cairo-1.18.2 Opcionais [4676]Hypothesis e [4677]pytest-8.3.4 (para testes) Instalação do PyCairo Instale "PyCairo" para "Python3" executando os seguintes comandos: mkdir build && cd build && meson setup --prefix=/usr --buildtype=release .. && ninja Para executar os testes, esse pacote exige o módulo opcional pytest. Se ele estiver instalado, execute os testes executando ninja test. Agora, como o(a) usuário(a) "root": ninja install Conteúdo Aplicativo Instalado: Nenhum(a) Biblioteca Instalada: Nenhum(a) Diretórios Instalados: /usr/include/pycairo, /usr/lib/python3.13/site-packages/cairo e /usr/lib/python3.13/site-packages/pycairo-1.26.1.egg-info pygdbmi-0.11.0.0 Introdução ao pygdbmi Module GDB/MI é uma interface de texto orientada a máquina baseada em linha para GDB e é ativada especificando-se usar a opção de linha de comando --interpreter (vejam-se Opções de Modo). Ele é destinado especificamente para suportar o desenvolvimento de sistemas que usam o depurador apenas como um pequeno componente de um sistema maior. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4678]https://files.pythonhosted.org/packages/source/p/pygdbmi/pygd bmi-0.11.0.0.tar.gz * Transferência (FTP): * 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 Instalação do pygdbmi Construa o módulo: pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) root: pip3 install --no-index --find-links dist --no-user pygdbmi Explicações do Comando -w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist". --no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção. --no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto. --no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links"). --find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist". --no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root". --no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root". --upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada. --force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote. --no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall". Conteúdo Aplicativos Instalados: Nenhum(a) Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /usr/lib/python3.13/site-packages/pygdbmi-0.11.0.0.dist-info Pygments-2.19.1 Introdução ao Módulo Pygments "Pygments" é um realçador geral de sintaxe escrito em "Python", para mais de trezentas (300) linguagens. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4679]https://files.pythonhosted.org/packages/source/P/Pygments/pyg ments-2.19.1.tar.gz * Transferência (FTP): * 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 Dependências do Pygments Exigidas [4680]hatchling-1.27.0 Opcionais (para testagem) [4681]pytest-8.3.4 e [4682]wcag-contrast-ratio Instalação do Pygments Construa o módulo "Python 3": pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD Para instalar o pacote execute o seguinte como o usuário "root": pip3 install --no-index --find-links dist --no-user Pygments Para testar a instalação, certifique-se de que [4683]pytest-8.3.4 esteja instalado e execute: python3 -m venv --system-site-packages testenv && testenv/bin/pip3 install wcag-contrast-ratio && testenv/bin/python -m pytest Explicações do Comando -w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist". --no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção. --no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto. --no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links"). --find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist". --no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root". --no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root". --upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada. --force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote. --no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall". Conteúdo Aplicativos Instalados: pygmentize Biblioteca Instalada: Nenhum(a) Diretórios Instalados: /usr/lib/python3.13/site-packages/pygments e /usr/lib/python3.13/site-packages/Pygments-2.19.1.dist-info Descrições Curtas pygmentize realça um arquivo de entrada e escreve o resultado em um arquivo de saída PyGObject-3.50.0 Introdução ao Módulo PyGObject3 "PyGObject3" fornece ligações "Python" para a classe "GObject" originária da "GLib". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4684]https://download.gnome.org/sources/pygobject/3.50/pygobject-3 .50.0.tar.xz * Transferência (FTP): * 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) Dependências do PyGObject3 Exigidas [4685]GLib-2.82.5 (com GObject Introspection) Recomendadas [4686]PyCairo-1.26.1 Opcionais (para os testes) [4687]GTK-4.16.12, [4688]pep8, [4689]pyflakes e [4690]pytest-8.3.4 Instalação do PyGObject3 Primeiro, remova dois testes defeituosos: mv -v tests/test_gdbus.py{,.nouse} && mv -v tests/test_overrides_gtk.py{,.nouse} Instale "pygobject3" executando os seguintes comandos: mkdir build && cd build && meson setup --prefix=/usr --buildtype=release .. && ninja Para testar os resultados, emita: "ninja test". É necessária uma sessão gráfica já ativa com endereço de barramento para executar os testes. Outra rodada de testes possivelmente informe "ERROR" se "[4691]GTK-4.16.12" não estiver instalado. Agora, como o(a) usuário(a) "root": ninja install Explicações do Comando --buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados. -D pycairo=disabled: use essa chave se você não tiver [4692]PyCairo-1.26.1 instalado. Conteúdo Aplicativos Instalados: Nenhum(a) Biblioteca Instalada: /usr/lib/python3.13/site-packages/gi/_gi{,_cairo}.cpython-313--li nux-gnu.so Diretórios Instalados: /usr/include/pygobject-3.0 e /usr/lib/python3.13/site-packages/{gi,pygtkcompat} pyparsing-3.2.1 Introdução ao Módulo pyparsing O módulo "pyparsing" é uma abordagem alternativa para criar e executar gramáticas simples, versus a abordagem tradicional "lex/yacc", ou o uso de expressões regulares. Ele fornece uma biblioteca de classes que o código cliente usa para construir a gramática diretamente no código "Python". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4693]https://files.pythonhosted.org/packages/source/p/pyparsing/py parsing-3.2.1.tar.gz * Transferência (FTP): * 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) Dependências do pyparsing Opcionais [4694]railroad-diagrams (também necessário para testes) Opcionais (para testagem) [4695]pytest-8.3.4 Instalação do pyparsing Construa o módulo: pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD Agora, como o(a) usuário(a) "root": pip3 install --no-index --find-links dist --no-user pyparsing Supondo que [4696]pytest-8.3.4 esteja instalado, mas a outra dependência opcional não esteja, a instalação pode ser testada com os seguintes comandos: python3 -m venv --system-site-packages testenv && source testenv/bin/activate && pip3 install railroad-diagrams matplotlib && python3 /usr/bin/pytest deactivate Explicações do Comando -w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist". --no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção. --no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto. --no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links"). --find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist". --no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root". --no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root". --upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada. --force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote. --no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall". Conteúdo Aplicativos Instalados: Nenhum(a) Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /usr/lib/python3.13/site-packages/pyparsing e /usr/lib/python3.13/site-packages/pyparsing-3.2.1.dist-info pySerial-3.5 Introdução ao Módulo pySerial O módulo "pySerial" encapsula o acesso à porta serial. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4697]https://files.pythonhosted.org/packages/source/p/pyserial/pys erial-3.5.tar.gz * Transferência (FTP): * 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 Dependências do pySerial Exigidas [4698]setuptools_scm-8.1.0 Opcionais (para testagem) [4699]pytest-8.3.4 Instalação do pySerial Construa o módulo: pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD Agora, como o(a) usuário(a) "root": pip3 install --no-index --find-links dist --no-user pyserial Para testar a instalação, emita pytest. Explicações do Comando -w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist". --no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção. --no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto. --no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links"). --find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist". --no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root". --no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root". --upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada. --force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote. --no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall". Conteúdo Aplicativos Instalados: pyserial-miniterm e pyserial-ports Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /usr/lib/python3.13/site-packages/pyserial-3.5.dist-info e /usr/lib/python3.13/site-packages/serial Descrições Curtas pyserial-miniterm é um aplicativo de console que fornece um pequeno aplicativo de terminal. Ele pode herdar recursos de terminal a partir do terminal no qual é executado. pyserial-ports lista portas disponíveis. Pytest-8.3.4 Introdução ao Módulo Pytest A estrutura "Pytest" facilita escrever testes pequenos e legíveis e pode escalar para suportar testagem complexa funcional para aplicativos e bibliotecas. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4700]https://files.pythonhosted.org/packages/source/p/pytest/pytes t-8.3.4.tar.gz * Transferência (FTP): * 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) Dependências do Pytest Exigidas [4701]iniconfig-2.0.0, [4702]packaging-24.2 e [4703]pluggy-1.5.0 Recomendadas [4704]setuptools_scm-8.1.0 Opcionais (para testagem) [4705]attrs-25.1.0, [4706]Pygments-2.19.1, [4707]requests-2.32.3, [4708]argcomplete, [4709]hypothesis, [4710]mock e [4711]xmlschema Instalação do Pytest Construa o módulo: pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD Agora, como o(a) usuário(a) "root": pip3 install --no-index --find-links dist --no-user pytest A instalação pode ser testada com os seguintes comandos: python3 -m venv --system-site-packages testenv && source testenv/bin/activate && pip3 install pytest[dev] xmlschema hypothesis && python3 /usr/bin/pytest deactivate Explicações do Comando -w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist". --no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção. --no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto. --no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links"). --find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist". --no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root". --no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root". --upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada. --force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote. --no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall". Conteúdo Aplicativos Instalados: "pytest" e "py.test" (arquivos diferentes, mas com o mesmo conteúdo) Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /usr/lib/python3.13/site-packages/_pytest, /usr/lib/python3.13/site-packages/pytest e /usr/lib/python3.13/site-packages/pytest-8.3.4.dist-info Descrições Curtas pytest configura, gerencia e (ou) executa testes nos diretórios fonte do módulo python PyXDG-0.28 Introdução ao Módulo PyXDG "PyXDG" é uma biblioteca "Python" para acessar os padrões do "freedesktop.org". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4712]https://files.pythonhosted.org/packages/b0/25/7998cd2dec731ac bd438fbf91bc619603fc5188de0a9a17699a781840452/pyxdg-0.28.tar.gz * Transferência (FTP): * 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 Instalação do PyXDG Construa o módulo: pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD Instale o módulo como o(a) usuário(a) "root": pip3 install --no-index --find-links dist --no-user pyxdg Explicações do Comando -w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist". --no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção. --no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto. --no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links"). --find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist". --no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root". --no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root". --upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada. --force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote. --no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall". Conteúdo Diretório Instalado: /usr/lib/python3.13/site-packages/xdg e /usr/lib/python3.13/site-packages/pyxdg-0.28.dist-info PyYAML-6.0.2 Introdução ao Módulo PyYAML "PyYAML" é um módulo "Python" que implementa o analisador e emissor "YAML" de próxima geração. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4713]https://files.pythonhosted.org/packages/source/P/PyYAML/pyyam l-6.0.2.tar.gz * Transferência (FTP): * 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 Dependências do PyYAML Exigidas [4714]cython-3.0.12 e [4715]libyaml-0.2.5 Opcionais [4716]pytest-8.3.4 (para testagem) Instalação do PyYAML Construa PyYAML com o seguinte comando: pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD Agora, instale o módulo como o usuário "root": pip3 install --no-index --find-links dist --no-user PyYAML Para testar os resultados, emita: pytest. Explicações do Comando -w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist". --no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção. --no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto. --no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links"). --find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist". --no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root". --no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root". --upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada. --force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote. --no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall". Conteúdo Aplicativos Instalados: Nenhum(a) Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /usr/lib/python3.13/site-packages/PyYAML-0.2.5.dist-info Recommonmark-0.7.1 Introdução ao Módulo Recommonmark Recommonmark é uma ponte de compatibilidade do Docutils para o CommonMark. Ele permite escrever CommonMark dentro de projetos Docutils e Sphinx. Recommonmark agora está obsoleto em favor do [4717]MyST-Parser. Infelizmente, [4718]libinput-1.27.1 depende desse módulo. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4719]https://files.pythonhosted.org/packages/source/r/recommonmark /recommonmark-0.7.1.tar.gz * Transferência (FTP): * 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) Dependências do Recommonmark Exigidas [4720]commonmark-0.9.1 e [4721]sphinx-8.2.1 Opcionais (para testagem) [4722]pytest-8.3.4 Instalação do Recommonmark Construa o módulo: pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD Agora, como o(a) usuário(a) root: pip3 install --no-index --find-links dist --no-user recommonmark "Recommonmark" agora está obsoleto em favor de [4723]MyST-Parser. Por essa razão, muitos testes tem que ser desabilitados porque eles não passam com versões recentes do "Sphinx". A instalação pode ser parcialmente testada com o seguinte comando: pytest -k 'not (test_integration or test_code or test_headings or test_image or test_links or test_lists)' Explicações do Comando -w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist". --no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção. --no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto. --no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links"). --find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist". --no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root". --no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root". --upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada. --force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote. --no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall". Conteúdo Aplicativos Instalados: cm2html, cm2latex, cm2man, cm2pseudoxml, cm2xetex e cm2xml Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /usr/lib/python3.13/site-packages/recommonmark e /usr/lib/python3.13/site-packages/recommonmark-0.7.1.dist-info Descrições Curtas cm2html gera um documento "HTML" a partir de fontes "markdown" cm2latex gera um documento "LaTeX" a partir de fontes "markdown" cm2man gera uma página de manual a partir de fontes "markdown" cm2pseudoxml gera um documento pseudo "XML" a partir de fontes "markdown" cm2xetex gera um documento "XeTeX" a partir de fontes "markdown" cm2xml gera um documento "XML" a partir de fontes "markdown" Requests-2.32.3 Introdução ao Módulo Requests O pacote "Requests" é uma biblioteca "HTTP" elegante e simples para "Python", construída para seres humanos. Permite enviar solicitações "HTTP/1.1" extremamente facilmente. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4724]https://files.pythonhosted.org/packages/source/r/requests/req uests-2.32.3.tar.gz * Transferência (FTP): * 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) Transferência Adicional * Remendo recomendado: [4725]https://www.linuxfromscratch.org/patches/blfs/12.3/requests-2 .32.3-use_system_certs-1.patch Dependências do Requests Exigidas [4726]charset-normalizer-3.4.1, [4727]idna-3.10 e [4728]urllib3-2.3.0 Recomendadas [4729]make-ca-1.15, com [4730]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"). Opcionais [4731]PySocks (também necessário para testagem) Opcionais (para testagem) [4732]pytest-8.3.4, [4733]Flask<2, [4734]httpbin, [4735]MarkupSafe<2.1, [4736]pytest-mock, [4737]pytest-httpbin, [4738]sphinx<5, [4739]trustme e [4740]Werkzeug<2 Instalação do Requests Primeiro aplique um remendo, de forma que a mesma variável de ambiente já usada para apontar para certificados de sistema em "Python3", seguindo a instalação de "make-ca", também possa ser usada por esse módulo: patch -Np1 -i ../requests-2.32.3-use_system_certs-1.patch Construa o módulo: pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD Agora, como o(a) usuário(a) "root": pip3 install --no-index --find-links dist --no-user requests Supondo que "[4741]pytest-8.3.4" esteja instalado, mas as outras dependências opcionais não estejam, a instalação pode ser testada com os seguintes comandos: python3 -m venv --system-site-packages testenv && source testenv/bin/activate && pip3 install --force-reinstall sphinx\<5 && pip3 install pytest-mock \ werkzeug\<2 \ flask\<2 \ pytest-httpbin \ pysocks \ trustme && pip3 install --force-reinstall Markupsafe\<2.1 && python3 /usr/bin/pytest tests deactivate Nota Veja-se "[4742]make-ca-1.15" para saber como configurar a variável de ambiente e como as cópias locais dos módulos "Certifi" e "Requests" instaladas em um ambiente virtual substituirão os certificados do sistema. Explicações do Comando -w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist". --no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção. --no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto. --no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links"). --find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist". --no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root". --no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root". --upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada. --force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote. --no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall". Conteúdo Aplicativos Instalados: Nenhum(a) Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /usr/lib/python3.13/site-packages/requests e /usr/lib/python3.13/site-packages/requests-2.32.3.dist-info Scour-0.38.2 Introdução ao Módulo Scour "Scour" é um otimizador/limpador "Scalable Vector Graphics" ("SVG") que reduz o tamanho deles otimizando a estrutura e removendo dados desnecessários. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4743]https://github.com/scour-project/scour/archive/v0.38.2/scour- 0.38.2.tar.gz * Transferência (FTP): * 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 Dependências do Scour Exigidas [4744]six-1.17.0 Instalação do scour Construa o módulo: pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD Para instalar o módulo, execute o seguinte comando como o(a) usuário(a) "root": pip3 install --no-index --find-links dist --no-user scour Explicações do Comando -w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist". --no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção. --no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto. --no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links"). --find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist". --no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root". --no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root". --upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada. --force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote. --no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall". Conteúdo Aplicativos Instalados: scour Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /usr/lib/python3.13/site-packages/scour e /usr/lib/python3.13/site-packages/scour-0.38.2.dist-info Descrições Curtas scour é um aplicativo para otimizar e limpar arquivos "SVG" sentry-sdk-2.22.0 Introdução ao Módulo sentry-sdk O módulo sentry-sdk é o SDK oficial do Python para Sentry.io. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4745]https://github.com/getsentry/sentry-python/releases/download/ 2.22.0/sentry_sdk-2.22.0.tar.gz * Transferência (FTP): * 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 Dependências do sentry-sdk Exigidas [4746]certifi-2025.1.31 e [4747]urllib3-2.3.0 Instalação do sentry-sdk Construa o módulo: pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD Agora, como o(a) usuário(a) root: pip3 install --no-index --find-links dist --no-user sentry-sdk Explicações do Comando -w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist". --no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção. --no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto. --no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links"). --find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist". --no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root". --no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root". --upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada. --force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote. --no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall". Conteúdo Aplicativos Instalados: Nenhum(a) Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /usr/lib/python3.13/site-packages/sentry_sdk-2.22.0.dist-info e /usr/lib/python3.13/site-packages/sentry_sdk six-1.17.0 Introdução ao Módulo Six "Six" é uma biblioteca de compatibilidade "Python" 2 a 3. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4748]https://files.pythonhosted.org/packages/source/s/six/six-1.17 .0.tar.gz * Transferência (FTP): * 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 Instalação do Six Construa o módulo: pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) "root": pip3 install --no-index --find-links dist --no-user six Explicações do Comando -w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist". --no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção. --no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto. --no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links"). --find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist". --no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root". --no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root". --upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada. --force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote. --no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall". Conteúdo Aplicativos Instalados: Nenhum(a) Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /usr/lib/python3.13/site-packages/six-1.17.0.dist-info Sphinx-8.2.1 Introdução ao Módulo Sphinx O pacote "Sphinx" é um conjunto de ferramentas para traduzir alguns formatos de texto estruturado em documentação bonita em vários formatos. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4749]https://files.pythonhosted.org/packages/source/s/sphinx/sphin x-8.2.1.tar.gz * Transferência (FTP): * Soma de verificação MD5 da transferência: c4e340fa7b1c85898dcb72b5ea8bb8f7 * Tamanho da transferência: 7,9 MB * Espaço em disco estimado exigido: 32 MB (adicionar 22 MB para os testes) * Tempo de construção estimado: menos que 0,1 UPC (adicionar 0,7 UPC para testes) Dependências do Sphinx Exigidas [4750]alabaster-1.0.0, [4751]babel-2.17.0, [4752]docutils-0.21.2, [4753]imagesize-1.4.1, [4754]packaging-24.2, [4755]Pygments-2.19.1, [4756]requests-2.32.3, [4757]snowballstemmer-2.2.0, [4758]sphinxcontrib-applehelp-2.0.0, [4759]sphinxcontrib-devhelp-2.0.0, [4760]sphinxcontrib-htmlhelp-2.1.0, [4761]sphinxcontrib-jsmath-1.0.1, [4762]sphinxcontrib-qthelp-2.0.0 e [4763]sphinxcontrib-serializinghtml-2.0.0 Opcionais (para testes) [4764]cython-3.0.12, [4765]html5lib-1.1, [4766]pytest-8.3.4, [4767]texlive-20240312, [4768]defusedxml e [4769]typing_extensions Instalação do Sphinx Primeiro instale uma nova dependência como o(a) usuário(a) root: pip3 install roman-numerals-py Construa o módulo: pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD Agora, como o(a) usuário(a) "root": pip3 install --no-index --find-links dist --no-user sphinx Supondo que [4770]cython-3.0.12 e [4771]pytest-8.3.4 estejam instalados, mas as outras dependências opcionais não estejam, a instalação pode ser testada com os seguintes comandos: python3 -m venv --system-site-packages testenv && source testenv/bin/activate && pip3 install sphinx[test] && python3 -m pytest deactivate Um teste, test_ext_math.py::test_imgmath_numfig_html, é conhecido por falhar. Explicações do Comando -w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist". --no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção. --no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto. --no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links"). --find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist". --no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root". --no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root". --upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada. --force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote. --no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall". Conteúdo Aplicativos Instalados: sphinx-apidoc, sphinx-autogen, sphinx-build e sphinx-quickstart Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /usr/lib/python3.13/site-packages/sphinx e /usr/lib/python3.13/site-packages/sphinx-8.2.1.dist-info Descrições Curtas sphinx-apidoc cria um arquivo "reST" a partir de módulos e pacotes "Python" sphinx-autogen gera "ReStructuredText" a partir de diretivas especiais contidas em determinados arquivos de entrada sphinx-build gera documentação em vários formatos a partir de arquivos fonte "ReStructuredText" sphinx-quickstart gera os arquivos exigidos para um projeto "Sphinx" Sphinx_rtd_theme-3.0.2 Introdução ao Módulo Sphinx_rtd_theme O módulo "sphinx_rtd_theme" é um tema "Sphinx" projetado para fornecer uma ótima experiência de leitura para usuários(as) de documentação em áreas de trabalho e dispositivos móveis. Esse tema é usado principalmente no "Read the Docs", mas pode funcionar com qualquer projeto "Sphinx". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4772]https://files.pythonhosted.org/packages/source/s/sphinx_rtd_t heme/sphinx_rtd_theme-3.0.2.tar.gz * Transferência (FTP): * 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) Dependências do Sphinx_rtd_theme Exigidas [4773]sphinx-8.2.1 e [4774]sphinxcontrib-jquery-4.1 Opcionais (para testes) [4775]pytest-8.3.4 e [4776]readthedocs-sphinx-ext Instalação do Sphinx_rtd_theme Construa o módulo: pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD Agora, como o(a) usuário(a) "root": pip3 install --no-index --find-links dist --no-user sphinx_rtd_theme Supondo que "[4777]pytest-8.3.4" esteja instalado, mas a outra dependência opcional não esteja, a instalação pode ser testada com os seguintes comandos: python3 -m venv --system-site-packages testenv && source testenv/bin/activate && pip3 install readthedocs-sphinx-ext && python3 /usr/bin/pytest deactivate Vários testes retornam avisos porque usam uma API obsoleta do Sphinx. Explicações do Comando -w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist". --no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção. --no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto. --no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links"). --find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist". --no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root". --no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root". --upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada. --force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote. --no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall". Conteúdo Aplicativos Instalados: Nenhum(a) Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /usr/lib/python3.13/site-packages/sphinx_rtd_theme e /usr/lib/python3.13/site-packages/sphinx_rtd_theme-3.0.2.dist-info Dependências do "Python" Introdução às Dependências do Python Os módulos "Python" listados em "[4778]Módulos "Python"" tem dependências que não são referenciadas por outros pacotes no BLFS. Essas dependências estão listadas aqui. Eles não serão atualizados regularmente, a menos que uma versão mais recente seja necessária. Importante No BLFS, normalmente construímos e instalamos módulos "Python" 3 com pip3. Por favor tome cuidado para que os comandos "pip3 install" no livro sejam executados como "root", a menos que seja para um ambiente virtual "Python". Executar o "pip3 install" como um(a) usuário(a) não "root" pode parecer funcionar bem, mas fará com que o módulo instalado fique inacessível para outros(as) usuários(as). pip3 install não reinstalará um módulo já instalado por padrão. Para usar o comando pip3 install para atualizar um módulo (por exemplo, de meson-0.61.3 para meson-0.62.0), insira --upgrade na linha de comando. Se for realmente necessário desatualizar um módulo ou reinstalar a mesma versão por algum motivo, insira --force-reinstall na linha de comando. * [4779]alabaster-1.0.0 * [4780]attrs-25.1.0 * [4781]babel-2.17.0 * [4782]certifi-2025.1.31 * [4783]chardet-5.2.0 * [4784]charset-normalizer-3.4.1 * [4785]commonmark-0.9.1 * [4786]editables-0.5 * [4787]hatchling-1.27.0 * [4788]hatch-fancy-pypi-readme-24.1.0 * [4789]hatch_vcs-0.4.0 * [4790]idna-3.10 * [4791]imagesize-1.4.1 * [4792]iniconfig-2.0.0 * [4793]Markdown-3.7 * [4794]meson_python-0.17.1 * [4795]msgpack-1.1.0 * [4796]pathspec-0.12.1 * [4797]pluggy-1.5.0 * [4798]pyproject-metadata-0.9.0 * [4799]pytz-2025.1 * [4800]setuptools_scm-8.1.0 * [4801]smartypants-2.0.1 * [4802]snowballstemmer-2.2.0 * [4803]sphinxcontrib-applehelp-2.0.0 * [4804]sphinxcontrib-devhelp-2.0.0 * [4805]sphinxcontrib-htmlhelp-2.1.0 * [4806]sphinxcontrib-jquery-4.1 * [4807]sphinxcontrib-jsmath-1.0.1 * [4808]sphinxcontrib-qthelp-2.0.0 * [4809]sphinxcontrib-serializinghtml-2.0.0 * [4810]trove-classifiers-2025.1.15.22 * [4811]typogrify-2.1.0 * [4812]urllib3-2.3.0 * [4813]webencodings-0.5.1 Alabaster-1.0.0 Introdução ao Módulo Alabaster O pacote "Alabaster" é um tema para o sistema de documentação "sphinx". Embora desenvolvido separadamente, é o tema padrão para "Sphinx". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4814]https://files.pythonhosted.org/packages/source/a/alabaster/al abaster-1.0.0.tar.gz * Transferência (FTP): * 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 Instalação do Alabaster Construa o módulo: pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) "root": pip3 install --no-index --find-links dist --no-user alabaster Explicações do Comando -w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist". --no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção. --no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto. --no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links"). --find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist". --no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root". --no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root". --upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada. --force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote. --no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall". Conteúdo Aplicativos Instalados: Nenhum(a) Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /usr/lib/python3.13/site-packages/alabaster e /usr/lib/python3.13/site-packages/alabaster-1.0.0.dist-info Attrs-25.1.0 Introdução ao Módulo Attrs O pacote Attrs é um módulo python que permite escrever atributos sem clichês extras. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4815]https://files.pythonhosted.org/packages/source/a/attrs/attrs- 25.1.0.tar.gz * Transferência (FTP): * Soma de verificação MD5 da transferência: 338069d6f69126086d589b2cb44f4c73 * Tamanho da transferência: 776 KB * Espaço em disco estimado exigido: 7 MB (adicionar 78 MB para os testes) * Tempo de construção estimado: menos que 0,1 UPC (0,2 UPC para os testes) Dependências de Attrs Exigidas [4816]hatch-fancy-pypi-readme-24.1.0 e [4817]hatch_vcs-0.4.0 Opcionais (para testagem) [4818]pytest-8.3.4, [4819]cloudpickle, [4820]hypothesis, [4821]Pympler, [4822]mypy, [4823]pytest-mypy-plugins, [4824]pytest-xdist[psutil] e [4825]zope.interface Instalação do Attrs Construa o módulo: pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD Agora, como o(a) usuário(a) "root": pip3 install --no-index --find-links dist --no-user attrs Para testar a instalação, execute: python3 -m venv --system-site-packages testenv && testenv/bin/pip3 install 'attrs[tests]' && PATH=$PWD/testenv/bin:$PATH testenv/bin/python -m pytest Explicações do Comando -w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist". --no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção. --no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto. --no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links"). --find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist". --no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root". --no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root". --upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada. --force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote. --no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall". Conteúdo Aplicativos Instalados: Nenhum(a) Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /usr/lib/python3.13/site-packages/attr, /usr/lib/python3.13/site-packages/attrs e /usr/lib/python3.13/site-packages/attrs-25.1.0.dist-info babel-2.17.0 Introdução ao Módulo Babel O pacote "Babel" é uma coleção integrada de utilitários que auxiliam na internacionalização e localização de aplicações "Python", com ênfase em aplicações baseadas na web. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4826]https://files.pythonhosted.org/packages/source/B/Babel/babel- 2.17.0.tar.gz * Transferência (FTP): * 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) Dependências do Babel Exigidas [4827]pytz-2025.1 Opcionais (para testagem) [4828]pytest-8.3.4, [4829]Python-3.13.2 (com o módulo sqlite), [4830]freezegun e [4831]pytest-cov Instalação do Babel Construa o módulo: pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD Agora, como o(a) usuário(a) "root": pip3 install --no-index --find-links dist --no-user Babel Supondo que "[4832]pytest-8.3.4" esteja instalado, mas as outras dependências opcionais não estejam, a instalação pode ser testada com os seguintes comandos: python3 -m venv --system-site-packages testenv && source testenv/bin/activate && pip3 install pytest-cov freezegun && python3 /usr/bin/pytest deactivate Explicações do Comando -w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist". --no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção. --no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto. --no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links"). --find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist". --no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root". --no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root". --upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada. --force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote. --no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall". Conteúdo Aplicativos Instalados: pybabel Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /usr/lib/python3.13/site-packages/babel e /usr/lib/python3.13/site-packages/Babel-2.17.0.dist-info Descrições Curtas pybabel é uma interface de linha de comando para trabalhar com catálogos de mensagens certifi-2025.1.31 Introdução ao Certifi Module O módulo certifi fornece uma coleção cuidadosamente selecionada de Certificados Raiz da Mozilla para validar a confiabilidade dos certificados SSL enquanto verifica a identidade dos dispositivos TLS. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4833]https://files.pythonhosted.org/packages/source/c/certifi/cert ifi-2025.1.31.tar.gz * Transferência (FTP): * 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 Instalação do certifi Construa o módulo: pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD Agora, como o(a) usuário(a) root: pip3 install --no-index --find-links dist --no-user certifi Explicações do Comando -w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist". --no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção. --no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto. --no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links"). --find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist". --no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root". --no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root". --upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada. --force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote. --no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall". Conteúdo Aplicativos Instalados: Nenhum(a) Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /usr/lib/python3.13/site-packages/certifi e /usr/lib/python3.13/site-packages/certifi-2025.1.31.dist-info Chardet-5.2.0 Introdução ao Módulo chardet "Chardet" é um detector universal de codificação de caracteres. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4834]https://files.pythonhosted.org/packages/source/c/chardet/char det-5.2.0.tar.gz * Transferência (FTP): * 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) Dependências do Chardet Opcionais (para testagem) [4835]pytest-8.3.4 Instalação do Chardet Construa o módulo: pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD Agora, como o(a) usuário(a) "root": pip3 install --no-index --find-links dist --no-user chardet Para testar a instalação, emita pytest. Explicações do Comando -w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist". --no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção. --no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto. --no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links"). --find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist". --no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root". --no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root". --upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada. --force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote. --no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall". Conteúdo Aplicativos Instalados: chardetect Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /usr/lib/python3.13/site-packages/chardet e /usr/lib/python3.13/site-packages/chardet-5.2.0.dist-info Descrições Curtas chardetect é um detector universal de codificação de caracteres Charset-normalizer-3.4.1 Introdução ao Módulo charset-normalizer A biblioteca charset-normalizer ajuda com leitura de texto originário de uma codificação de caracteres desconhecida. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4836]https://files.pythonhosted.org/packages/source/c/charset-norm alizer/charset_normalizer-3.4.1.tar.gz * Transferência (FTP): * 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) Dependências do Charset-normalizer Exigidas [4837]setuptools_scm-8.1.0 Opcionais (para testagem) [4838]pytest-8.3.4, [4839]Python-3.13.2 (reconstruído depois de instalar [4840]SQLite-3.49.1) e [4841]pytest-cov Instalação do Charset-normalizer Construa o módulo: pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD Agora, como o(a) usuário(a) "root": pip3 install --no-index --find-links dist --no-user charset-normalizer Supondo que "[4842]pytest-8.3.4" esteja instalado, mas as outras dependências opcionais não estejam, a instalação pode ser testada com os seguintes comandos: python3 -m venv --system-site-packages testenv && source testenv/bin/activate && pip3 install pytest-cov && python3 /usr/bin/pytest deactivate Explicações do Comando -w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist". --no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção. --no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto. --no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links"). --find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist". --no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root". --no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root". --upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada. --force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote. --no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall". Conteúdo Aplicativos Instalados: normalizer Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /usr/lib/python3.13/site-packages/charset_normalizer e /usr/lib/python3.13/site-packages/charset_normalizer-3.4.1.dist-info Descrições Curtas normalizer é um Detector Universal de Conjuntos de Caracteres (descobre a codificação de origem e normaliza o texto para "Unicode") Commonmark-0.9.1 Introdução ao Módulo Commonmark "Commonmark" analisador "Python" para a especificação "CommonMark Markdown". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4843]https://files.pythonhosted.org/packages/source/c/commonmark/c ommonmark-0.9.1.tar.gz * Transferência (FTP): * 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) Dependências do Commonmark Opcionais (para testagem) [4844]pytest-8.3.4, [4845]flake8 e [4846]hypothesis Instalação do Commonmark Construa o módulo: pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD Agora, como o(a) usuário(a) "root": pip3 install --no-index --find-links dist --no-user commonmark Supondo que "[4847]pytest-8.3.4" esteja instalado e a outra dependência opcional não esteja, a instalação pode ser testada com: python3 -m venv --system-site-packages testenv && source testenv/bin/activate && pip3 install hypothesis && python3 /usr/bin/pytest commonmark/tests/unit_tests.py python3 commonmark/tests/run_spec_tests.py deactivate Explicações do Comando -w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist". --no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção. --no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto. --no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links"). --find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist". --no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root". --no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root". --upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada. --force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote. --no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall". Conteúdo Aplicativos Instalados: cmark Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /usr/lib/python3.13/site-packages/commonmark e /usr/lib/python3.13/site-packages/commonmark-0.9.1.dist-info Descrições Curtas cmark processa "Markdown" de acordo com a especificação "CommonMark" Editables-0.5 Introdução ao Módulo Editables Editables é uma biblioteca Python para criar “rodas editáveis”. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4848]https://files.pythonhosted.org/packages/source/e/editables/ed itables-0.5.tar.gz * Transferência (FTP): * 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 Dependências de Editables Opcionais (para testagem) [4849]pytest-8.3.4 Instalação do Editables Construa o módulo: pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD Agora, como o(a) usuário(a) "root": pip3 install --no-index --find-links dist --no-user editables Para testar a instalação, emita: pytest. Explicações do Comando -w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist". --no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção. --no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto. --no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links"). --find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist". --no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root". --no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root". --upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada. --force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote. --no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall". Conteúdo Aplicativos Instalados: Nenhum(a) Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /usr/lib/python3.13/site-packages/editables e /usr/lib/python3.13/site-packages/editables-0.5.dist-info Hatchling-1.27.0 Introdução ao Módulo Hatchling "Hatchling" é uma estrutura de retaguarda de construção extensível e compatível com padrões para módulos "Python". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4850]https://files.pythonhosted.org/packages/source/h/hatchling/ha tchling-1.27.0.tar.gz * Transferência (FTP): * 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 Dependências do Hatchling Exigidas [4851]editables-0.5, [4852]packaging-24.2, [4853]pathspec-0.12.1, [4854]pluggy-1.5.0 e [4855]trove-classifiers-2025.1.15.22 Instalação do Hatchling Construa o módulo: pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD Esse pacote não vem com uma suíte de teste funcional. Agora, como o(a) usuário(a) "root": pip3 install --no-index --find-links dist --no-user hatchling Explicações do Comando -w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist". --no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção. --no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto. --no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links"). --find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist". --no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root". --no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root". --upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada. --force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote. --no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall". Conteúdo Aplicativos Instalados: hatchling Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /usr/lib/python3.13/site-packages/hatchling e /usr/lib/python3.13/site-packages/hatchling-1.27.0.dist-info Descrições Curtas hatchling é um construtor de módulo "Python" Hatch-Fancy-Pypi-Readme-24.1.0 Introdução ao Hatch-Fancy-Pypi-Readme Module Hatch-Fancy-Pypi-Readme é um plugin de hachura que preenche o campo leia-me nos metadados de um módulo Python a partir dos arquivos de documentação da linguagem de marcação do módulo. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4856]https://files.pythonhosted.org/packages/source/h/hatch-fancy- pypi-readme/hatch_fancy_pypi_readme-24.1.0.tar.gz * Transferência (FTP): * 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 Dependências de Hatch-Fancy-Pypi-Readme Exigidas [4857]hatchling-1.27.0 Opcionais (para testagem) [4858]pytest-8.3.4 e [4859]build Instalação do Hatch-Fancy-Pypi-Readme Construa o módulo: pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD Agora, como o(a) usuário(a) root: pip3 install --no-index --find-links dist --no-user hatch-fancy-pypi-readme Para testar a instalação, certifique-se de que [4860]pytest-8.3.4 esteja instalado e execute: python3 -m venv --system-site-packages testenv && testenv/bin/pip3 install 'hatch-fancy-pypi-readme[tests]' && testenv/bin/python -m pytest Explicações do Comando -w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist". --no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção. --no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto. --no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links"). --find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist". --no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root". --no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root". --upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada. --force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote. --no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall". Conteúdo Aplicativos Instalados: Nenhum(a) Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /usr/lib/python3.13/site-packages/hatch_fancy_pypi_readme e /usr/lib/python3.13/site-packages/hatch_fancy_pypi_readme-24.1.0.dist-i nfo Hatch_vcs-0.4.0 Introdução ao Módulo Hatch-vcs Hatch_vcs é um plugin Hatch para versionamento com vários Sistemas de Controle de Versão ( [4861]VCS ). Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4862]https://files.pythonhosted.org/packages/source/h/hatch-vcs/ha tch_vcs-0.4.0.tar.gz * Transferência (FTP): * 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) Dependências do Hatch_vcs Exigidas [4863]hatchling-1.27.0 e [4864]setuptools_scm-8.1.0 Opcionais (para testagem) [4865]git-2.48.1 e [4866]pytest-8.3.4 Instalação do Hatch_vcs Construa o módulo: pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD Agora, como o(a) usuário(a) "root": pip3 install --no-index --find-links dist --no-user hatch_vcs Para testar a instalação, emita (HOME= impede o arquivo .gitconfig no diretório inicial de interferir nos testes): HOME= pytest. Explicações do Comando -w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist". --no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção. --no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto. --no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links"). --find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist". --no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root". --no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root". --upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada. --force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote. --no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall". Conteúdo Aplicativos Instalados: Nenhum(a) Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /usr/lib/python3.13/site-packages/hatch_vcs e /usr/lib/python3.13/site-packages/hatch_vcs-0.4.0.dist-info Idna-3.10 Introdução ao Módulo Idna O módulo "Idna" fornece suporte para o protocolo "Internationalized Domain Names in Applications" ("IDNA"), conforme especificado na "RFC" 5891. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4867]https://files.pythonhosted.org/packages/source/i/idna/idna-3. 10.tar.gz * Transferência (FTP): * 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) Dependências do Idna Opcionais (para testagem) [4868]pytest-8.3.4 Instalação do Idna Construa o módulo: pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD Agora, como o(a) usuário(a) "root": pip3 install --no-index --find-links dist --no-user idna Para testar a instalação, execute "pytest". Explicações do Comando -w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist". --no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção. --no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto. --no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links"). --find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist". --no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root". --no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root". --upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada. --force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote. --no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall". Conteúdo Aplicativos Instalados: Nenhum(a) Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /usr/lib/python3.13/site-packages/idna e /usr/lib/python3.13/site-packages/idna-3.10.dist-info Imagesize-1.4.1 Introdução ao Módulo Imagesize O pacote "imagesize" analisa os cabeçalhos dos arquivos de imagem e retorna o tamanho e o "DPI" da imagem. Funciona com formatos "JPEG"/"JPEG 2000"/"PNG"/"GIF"/"TIFF"/"SVG"/"Netpbm"/"WebP". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4869]https://files.pythonhosted.org/packages/source/i/imagesize/im agesize-1.4.1.tar.gz * Transferência (FTP): * 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) Dependências do Imagesize Opcionais (para testagem) [4870]pytest-8.3.4 e [4871]requests-2.32.3 Instalação do Imagesize Construa o módulo: pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD Agora, como o(a) usuário(a) "root": pip3 install --no-index --find-links dist --no-user imagesize Os testes para esse pacote são conhecidos por estarem quebrados. Para testar a instalação de qualquer maneira, execute pytest. Explicações do Comando -w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist". --no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção. --no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto. --no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links"). --find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist". --no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root". --no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root". --upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada. --force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote. --no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall". Conteúdo Aplicativos Instalados: Nenhum(a) Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /usr/lib/python3.13/site-packages/imagesize e /usr/lib/python3.13/site-packages/imagesize-1.4.1.dist-info Iniconfig-2.0.0 Introdução ao Módulo Iniconfig Iniconfig é um módulo analisador de arquivo "INI" pequeno e simples. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4872]https://files.pythonhosted.org/packages/source/i/iniconfig/in iconfig-2.0.0.tar.gz * Transferência (FTP): * 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 Dependências do Iniconfig Exigidas [4873]hatch_vcs-0.4.0 Instalação do Iniconfig Construa o módulo: pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) "root": pip3 install --no-index --find-links dist --no-user iniconfig Explicações do Comando -w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist". --no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção. --no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto. --no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links"). --find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist". --no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root". --no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root". --upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada. --force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote. --no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall". Conteúdo Aplicativos Instalados: Nenhum(a) Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /usr/lib/python3.13/site-packages/iniconfig e /usr/lib/python3.13/site-packages/iniconfig-2.0.0.dist-info Markdown-3.7 Introdução ao Módulo Markdown "Markdown" é um analisador "Python" para a especificação "Markdown" de John Gruber. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4874]https://files.pythonhosted.org/packages/source/M/Markdown/mar kdown-3.7.tar.gz * Transferência (FTP): * 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) Dependências do Markdown Opcionais (para testagem) [4875]pytest-8.3.4, [4876]PyYAML-6.0.2 e [4877]coverage Instalação do Markdown Construa o módulo: pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD Agora, como o(a) usuário(a) "root": pip3 install --no-index --find-links dist --no-user Markdown Supondo que [4878]pytest-8.3.4 e [4879]PyYAML-6.0.2 estejam instalados e a outra dependência opcional não esteja, a instalação pode ser testada com: python3 -m venv --system-site-packages testenv && source testenv/bin/activate && pip3 install coverage && python3 /usr/bin/pytest --ignore=tests/test_syntax/extensions/test_md_in_html.py deactivate Explicações do Comando -w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist". --no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção. --no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto. --no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links"). --find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist". --no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root". --no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root". --upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada. --force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote. --no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall". Conteúdo Aplicativos Instalados: markdown_py Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /usr/lib/python3.13/site-packages/markdown e /usr/lib/python3.13/site-packages/Markdown-3.7.dist-info Descrições Curtas markdown_py converte arquivos "markdown" para "(x)html" Meson_python-0.17.1 Introdução ao Módulo Meson_python O módulo "Meson_python" contém uma estrutura de retaguarda de construção "Python" ("PEP" 517) para projetos "Meson". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4880]https://files.pythonhosted.org/packages/source/m/meson_python /meson_python-0.17.1.tar.gz * Transferência (FTP): * 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 Dependências do Meson_python Exigidas [4881]pyproject-metadata-0.9.0 Recomendadas (tempo de execução) [4882]patchelf-0.18.0 Opcionais (para testagem) [4883]cython-3.0.12, [4884]git-2.48.1, [4885]pytest-8.3.4, [4886]Python-3.13.2 (reconstruído depois de instalar [4887]SQLite-3.49.1), [4888]build e [4889]pytest-mock Instalação do Meson_python Construa o módulo: pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) "root": pip3 install --no-index --find-links dist --no-user meson_python Para testar a instalação, certifique-se de que [4890]git-2.48.1, [4891]patchelf-0.18.0 e [4892]pytest-8.3.4 estejam instalados e [4893]Python-3.13.2 foi reconstruído depois de instalar [4894]SQLite-3.49.1, então emita (HOME= evita que o arquivo .gitconfig no diretório inicial interfira nos testes): python3 -m venv --system-site-packages testenv && testenv/bin/pip3 install 'meson_python[test]' && HOME= testenv/bin/python -m pytest Dois testes chamados test_missing_version e test_pep621 são conhecidos por falharem com pyproject-metadata-0.8.0 ou posterior. Explicações do Comando -w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist". --no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção. --no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto. --no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links"). --find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist". --no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root". --no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root". --upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada. --force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote. --no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall". Conteúdo Aplicativos Instalados: Nenhum(a) Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /usr/lib/python3.13/site-packages/meson_python e /usr/lib/python3.13/site-packages/meson_python-0.17.1.dist-info Msgpack-1.1.0 Introdução ao Módulo Msgpack Msgpack é um formato de serialização binária eficiente. Ele te permite trocar dados entre várias linguagens, como JSON. Mas é mais rápido e menor. Esse pacote fornece ligações CPython para leitura e escrita de dados do Msgpack. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4895]https://files.pythonhosted.org/packages/source/m/msgpack/msgp ack-1.1.0.tar.gz * Transferência (FTP): * 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 Dependências do Msgpack Exigidas [4896]cython-3.0.12 Opcionais (para testagem) [4897]pytest-8.3.4 Instalação do Msgpack Construa o módulo: pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD Agora, como o(a) usuário(a) "root": pip3 install --no-index --find-links dist --no-user msgpack Para testar a instalação, emita pytest. Explicações do Comando -w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist". --no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção. --no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto. --no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links"). --find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist". --no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root". --no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root". --upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada. --force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote. --no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall". Conteúdo Aplicativos Instalados: Nenhum(a) Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /usr/lib/python3.13/site-packages/msgpack-1.1.0.dist-info e /usr/lib/python3.13/site-packages/msgpack Pathspec-0.12.1 Introdução ao Módulo Pathspec "Pathspec" é uma biblioteca de utilitários para correspondência de padrões de caminhos de arquivos. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4898]https://files.pythonhosted.org/packages/source/p/pathspec/pat hspec-0.12.1.tar.gz * Transferência (FTP): * 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) Dependências do Pathspec Opcionais (para testagem) [4899]pytest-8.3.4 Instalação do Pathspec Construa o módulo: pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD Agora, como o(a) usuário(a) "root": pip3 install --no-index --find-links dist --no-user pathspec Para testar a instalação, emita "pytest". Explicações do Comando -w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist". --no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção. --no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto. --no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links"). --find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist". --no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root". --no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root". --upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada. --force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote. --no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall". Conteúdo Aplicativos Instalados: Nenhum(a) Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /usr/lib/python3.13/site-packages/pathspec e /usr/lib/python3.13/site-packages/pathspec-0.12.1.dist-info Pluggy-1.5.0 Introdução ao Módulo Pluggy O pacote "Pluggy" oferece a usuários(as) a capacidade de estender ou modificar o comportamento de um aplicativo anfitrião instalando um "plugin" para esse aplicativo. O código do "plugin" será executado como parte da execução normal do aplicativo, mudando ou aprimorando certos aspectos dele. Em essência, "pluggy" habilita a ligação de funções, de modo que um(a) usuário(a) consiga construir sistemas “plugáveis”. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4900]https://files.pythonhosted.org/packages/source/p/pluggy/plugg y-1.5.0.tar.gz * Transferência (FTP): * 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) Dependências do Pluggy Recomendadas [4901]setuptools_scm-8.1.0 Opcionais (para testagem) [4902]pytest-8.3.4 Instalação do Pluggy Construa o módulo: pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD Agora, como o(a) usuário(a) "root": pip3 install --no-index --find-links dist --no-user pluggy Para testar a instalação, emita: pytest. Explicações do Comando -w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist". --no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção. --no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto. --no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links"). --find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist". --no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root". --no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root". --upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada. --force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote. --no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall". Conteúdo Aplicativos Instalados: Nenhum(a) Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /usr/lib/python3.13/site-packages/pluggy e /usr/lib/python3.13/site-packages/pluggy-1.5.0.dist-info Pyproject-Metadata-0.9.0 Introdução ao Módulo Pyproject-Metadata O módulo "Pyproject-Metadata" contém uma classe de dados para metadados "PEP" 621 com suporte para geração de “metadados centrais” ("PEP" 643). Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4903]https://files.pythonhosted.org/packages/source/p/pyproject-me tadata/pyproject_metadata-0.9.0.tar.gz * Transferência (FTP): * 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 Dependências do Pyproject-Metadata Exigidas [4904]packaging-24.2 Opcionais (para testagem) [4905]pytest-8.3.4 Instalação do Pyproject-Metadata Construa o módulo: pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD Agora, como o(a) usuário(a) "root": pip3 install --no-index --find-links dist --no-user pyproject-metadata Para testar a instalação, emita: pytest. Explicações do Comando -w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist". --no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção. --no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto. --no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links"). --find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist". --no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root". --no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root". --upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada. --force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote. --no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall". Conteúdo Aplicativos Instalados: Nenhum(a) Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /usr/lib/python3.13/site-packages/pyproject_metadata e /usr/lib/python3.13/site-packages/pyproject_metadata-0.9.0.dist-info Pytz-2025.1 Introdução ao Módulo Pytz A biblioteca "Pytz" traz a base de dados "tz" da "IANA" para o "Python". Ela permite cálculos de fuso horário precisos e entre plataformas. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4906]https://files.pythonhosted.org/packages/source/p/pytz/pytz-20 25.1.tar.gz * Transferência (FTP): * 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) Dependências do Pytz Opcionais (para testagem) [4907]pytest-8.3.4 Instalação do Pytz Construa o módulo: pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD Agora, como o(a) usuário(a) "root": pip3 install --no-index --find-links dist --no-user pytz Para testar a instalação, execute "pytest". Uns poucos avisos são emitidos. Explicações do Comando -w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist". --no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção. --no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto. --no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links"). --find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist". --no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root". --no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root". --upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada. --force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote. --no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall". Conteúdo Aplicativos Instalados: Nenhum(a) Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /usr/lib/python3.13/site-packages/pytz e /usr/lib/python3.13/site-packages/pytz-2025.1.dist-info Setuptools_scm-8.1.0 Introdução ao Módulo Setuptools_scm O pacote "Setuptools_scm" é usado para extrair versões de pacotes "Python" a partir dos metadados "git" ou "hg" em vez de declará-los. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4908]https://files.pythonhosted.org/packages/source/s/setuptools_s cm/setuptools_scm-8.1.0.tar.gz * Transferência (FTP): * 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) Dependências do Setuptools_scm Exigidas [4909]packaging-24.2 Opcionais (para testagem) [4910]git-2.48.1, [4911]Mercurial-6.9.2, [4912]pytest-8.3.4, [4913]Sudo-1.9.16p2 e [4914]build Instalação do Setuptools_scm Construa o módulo: pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD Agora, como o(a) usuário(a) "root": pip3 install --no-index --find-links dist --no-user setuptools_scm Para testar a instalação, certifique-se de que [4915]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 [4916]git-2.48.1 e (ou) [4917]Mercurial-6.9.2 não estiverem instalados, os testes dependentes do(s) ausente(s) serão ignorados. Alguns testes possivelmente invoquem [4918]Sudo-1.9.16p2 e solicitem uma senha. Explicações do Comando -w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist". --no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção. --no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto. --no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links"). --find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist". --no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root". --no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root". --upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada. --force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote. --no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall". Conteúdo Aplicativos Instalados: Nenhum(a) Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /usr/lib/python3.13/site-packages/setuptools_scm e /usr/lib/python3.13/site-packages/setuptools_scm-8.1.0.dist-info Smartypants-2.0.1 Introdução ao Módulo Smartypants "Smartypants" traduz caracteres de pontuação "ASCII" simples em entidades "HTML" de pontuação tipográfica “inteligente”. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4919]https://github.com/leohemsted/smartypants.py/archive/v2.0.1/s martypants.py-2.0.1.tar.gz * Transferência (FTP): * 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 Dependências do Smartypants Opcionais (para testagem) [4920]docutils-0.21.2, [4921]Pygments-2.19.1 e [4922]pytest-8.3.4 Instalação do Smartypants Construa o módulo: pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD Esse pacote não vem com uma suíte de teste funcional. Agora, como o(a) usuário(a) "root": pip3 install --no-index --find-links dist --no-user smartypants Para testar os resultados, emita: sed 's/assertEquals/assertEqual/' -i tests/test_cli.py && cp /usr/bin/smartypants . && pytest Explicações do Comando -w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist". --no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção. --no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto. --no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links"). --find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist". --no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root". --no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root". --upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada. --force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote. --no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall". Conteúdo Aplicativos Instalados: smartypants Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /usr/lib/python3.13/site-packages/smartypants-2.0.1.dist-info Descrições Curtas smartypants traduz pontuação "ASCII" em pontuação "HTML". Snowballstemmer-2.2.0 Introdução ao Módulo Snowballstemmer O pacote Snowballstemmer é uma pequena linguagem de processamento de sequências de caracteres para criar algoritmos de remoção de radical [de palavras] para uso em Recuperação de Informação, mais uma coleção de algoritmos de remoção de radical [de palavras] implementados usando-a. O removedor de radical [de palavras] mapeia diferentes formas da mesma palavra para um “radical” comum — por exemplo, o removedor inglês de radical [de palavras] mapeia connection, connections, connective, connected e connecting para connect. Executar-se uma busca por connected também encontraria documentos que tenham somente as outras formas. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4923]https://files.pythonhosted.org/packages/source/s/snowballstem mer/snowballstemmer-2.2.0.tar.gz * Transferência (FTP): * 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 Instalação do Snowballstemmer Construa o módulo: pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) "root": pip3 install --no-index --find-links dist --no-user snowballstemmer Explicações do Comando -w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist". --no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção. --no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto. --no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links"). --find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist". --no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root". --no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root". --upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada. --force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote. --no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall". Conteúdo Aplicativos Instalados: Nenhum(a) Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /usr/lib/python3.13/site-packages/snowballstemmer e /usr/lib/python3.13/site-packages/snowballstemmer-2.2.0.dist-info Sphinxcontrib-applehelp-2.0.0 Introdução ao Módulo Sphinxcontrib-applehelp O pacote "Sphinxcontrib-applehelp" é uma extensão "Sphinx" que produz livros de ajuda da "Apple". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4924]https://files.pythonhosted.org/packages/source/s/sphinxcontri b-applehelp/sphinxcontrib_applehelp-2.0.0.tar.gz * Transferência (FTP): * 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 Dependências do Sphinxcontrib-applehelp Opcionais (para testagem) [4925]pytest-8.3.4 e [4926]sphinx-8.2.1 (dependência circular) Instalação do Sphinxcontrib-applehelp Construa o módulo: pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD Agora, como o(a) usuário(a) "root": pip3 install --no-index --find-links dist --no-user sphinxcontrib-applehelp Para testar a instalação, execute "pytest". Vários avisos possivelmente sejam emitidos devido ao uso de funções obsoletas. Explicações do Comando -w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist". --no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção. --no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto. --no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links"). --find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist". --no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root". --no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root". --upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada. --force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote. --no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall". Conteúdo Aplicativos Instalados: Nenhum(a) Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /usr/lib/python3.13/site-packages/sphinxcontrib e /usr/lib/python3.13/site-packages/sphinxcontrib_applehelp-2.0.0.dist-in fo Sphinxcontrib-devhelp-2.0.0 Introdução ao Módulo Sphinxcontrib-devhelp O pacote "Sphinxcontrib-devhelp" é uma extensão "Sphinx" que produz documentos [4927]Devhelp. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4928]https://files.pythonhosted.org/packages/source/s/sphinxcontri b-devhelp/sphinxcontrib_devhelp-2.0.0.tar.gz * Transferência (FTP): * 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) Dependências do Sphinxcontrib-devhelp Opcionais (para testagem) [4929]pytest-8.3.4 e [4930]sphinx-8.2.1 (dependência circular) Instalação do Sphinxcontrib-devhelp Construa o módulo: pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD Agora, como o(a) usuário(a) "root": pip3 install --no-index --find-links dist --no-user sphinxcontrib-devhelp Para testar a instalação, execute "pytest". Explicações do Comando -w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist". --no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção. --no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto. --no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links"). --find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist". --no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root". --no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root". --upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada. --force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote. --no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall". Conteúdo Aplicativos Instalados: Nenhum(a) Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /usr/lib/python3.13/site-packages/sphinxcontrib e /usr/lib/python3.13/site-packages/sphinxcontrib_devhelp-2.0.0.dist-info Sphinxcontrib-htmlhelp-2.1.0 Introdução ao Módulo Sphinxcontrib-htmlhelp O pacote "Sphinxcontrib-htmlhelp" é uma extensão "Sphinx" que renderiza arquivos de ajuda "HTML". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4931]https://files.pythonhosted.org/packages/source/s/sphinxcontri b-htmlhelp/sphinxcontrib_htmlhelp-2.1.0.tar.gz * Transferência (FTP): * 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) Dependências do Sphinxcontrib-htmlhelp Opcionais (para testagem) [4932]pytest-8.3.4, [4933]sphinx-8.2.1 (dependência circular) e [4934]html5lib-1.1 Instalação do Sphinxcontrib-htmlhelp Construa o módulo: pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD Agora, como o(a) usuário(a) "root": pip3 install --no-index --find-links dist --no-user sphinxcontrib-htmlhelp Se as dependências opcionais estiverem instaladas, o pacote pode ser testado com: pytest Explicações do Comando -w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist". --no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção. --no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto. --no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links"). --find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist". --no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root". --no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root". --upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada. --force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote. --no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall". Conteúdo Aplicativos Instalados: Nenhum(a) Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /usr/lib/python3.13/site-packages/sphinxcontrib e /usr/lib/python3.13/site-packages/sphinxcontrib_htmlhelp-2.1.0.dist-inf o Sphinxcontrib-jquery-4.1 Introdução ao Módulo Sphinxcontrib-jquery O pacote "Sphinxcontrib-jquery" é uma extensão "Sphinx" que inclui "jQuery" nos lançamentos mais recentes do "Sphinx". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4935]https://files.pythonhosted.org/packages/source/s/sphinxcontri b-jquery/sphinxcontrib-jquery-4.1.tar.gz * Transferência (FTP): * 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 Dependências do Sphinxcontrib-jquery Exigidas [4936]sphinx-8.2.1 Opcionais (para testagem) [4937]pytest-8.3.4 Instalação do Sphinxcontrib-jquery Construa o módulo: pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) "root": pip3 install --no-index --find-links dist --no-user sphinxcontrib-jquery Explicações do Comando -w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist". --no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção. --no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto. --no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links"). --find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist". --no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root". --no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root". --upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada. --force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote. --no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall". Conteúdo Aplicativos Instalados: Nenhum(a) Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /usr/lib/python3.13/site-packages/sphinxcontrib e /usr/lib/python3.13/site-packages/sphinxcontrib_jquery-4.1.dist-info Sphinxcontrib-jsmath-1.0.1 Introdução ao Módulo Sphinxcontrib-jsmath O pacote "Sphinxcontrib-jsmath" é uma extensão "Sphinx" que renderiza matemática de exibição em "HTML" via "JavaScript". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4938]https://files.pythonhosted.org/packages/source/s/sphinxcontri b-jsmath/sphinxcontrib-jsmath-1.0.1.tar.gz * Transferência (FTP): * 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) Dependências do Sphinxcontrib-jsmath Opcionais (para testagem) [4939]pytest-8.3.4 e [4940]sphinx-8.2.1 (dependência circular) Instalação do Sphinxcontrib-jsmath Construa o módulo: pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD Agora, como o(a) usuário(a) "root": pip3 install --no-index --find-links dist --no-user sphinxcontrib-jsmath A instalação pode ser testada com os seguintes comandos: sed -i 's/text()/read_&/' tests/test_jsmath.py && pytest o comando "sed ..." é necessário devido a uma mudança na "API" "Sphinx" para lançamentos superiores a 5.0. Explicações do Comando -w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist". --no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção. --no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto. --no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links"). --find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist". --no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root". --no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root". --upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada. --force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote. --no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall". Conteúdo Aplicativos Instalados: Nenhum(a) Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /usr/lib/python3.13/site-packages/sphinxcontrib e /usr/lib/python3.13/site-packages/sphinxcontrib_jsmath-1.0.1.dist-info Sphinxcontrib-qthelp-2.0.0 Introdução ao Módulo Sphinxcontrib-qthelp O pacote "Sphinxcontrib-qthelp" é uma extensão "Sphinx" que produz documentos "QtHelp". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4941]https://files.pythonhosted.org/packages/source/s/sphinxcontri b-qthelp/sphinxcontrib_qthelp-2.0.0.tar.gz * Transferência (FTP): * 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) Dependências do Sphinxcontrib-qthelp Opcionais (para testagem) [4942]pytest-8.3.4, [4943]sphinx-8.2.1 (dependência circular) e [4944]defusedxml Instalação do Sphinxcontrib-qthelp Construa o módulo: pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD Agora, como o(a) usuário(a) "root": pip3 install --no-index --find-links dist --no-user sphinxcontrib-qthelp A instalação pode ser testada com os seguintes comandos: python3 -m venv --system-site-packages testenv && testenv/bin/pip3 install defusedxml && testenv/bin/python -m pytest Explicações do Comando -w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist". --no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção. --no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto. --no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links"). --find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist". --no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root". --no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root". --upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada. --force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote. --no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall". Conteúdo Aplicativos Instalados: Nenhum(a) Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /usr/lib/python3.13/site-packages/sphinxcontrib e /usr/lib/python3.13/site-packages/sphinxcontrib_qthelp-2.0.0.dist-info Sphinxcontrib-serializinghtml-2.0.0 Introdução ao Módulo Sphinxcontrib-serializinghtml O pacote "Sphinxcontrib-serializinghtml" é uma extensão "Sphinx" que produz arquivos "HTML" “serializados” ("json" e "pickle"). Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4945]https://files.pythonhosted.org/packages/source/s/sphinxcontri b_serializinghtml/sphinxcontrib_serializinghtml-2.0.0.tar.gz * Transferência (FTP): * 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) Dependências do Sphinxcontrib-serializinghtml Opcionais (para testagem) [4946]pytest-8.3.4 e [4947]sphinx-8.2.1 (dependência circular) Instalação do Sphinxcontrib-serializinghtml Construa o módulo: pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD Agora, como o(a) usuário(a) "root": pip3 install --no-index --find-links dist --no-user sphinxcontrib-serializinghtm l Para testar a instalação, primeiro instale [4948]sphinx-8.2.1, a seguir execute pytest. Explicações do Comando -w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist". --no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção. --no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto. --no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links"). --find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist". --no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root". --no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root". --upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada. --force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote. --no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall". Conteúdo Aplicativos Instalados: Nenhum(a) Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /usr/lib/python3.13/site-packages/sphinxcontrib e /usr/lib/python3.13/site-packages/sphinxcontrib_serializinghtml-2.0.0.d ist-info Trove-Classifiers-2025.1.15.22 Introdução ao Trove-Classifiers Module Trove-Classifiers é uma biblioteca Python que abrange todos os classificadores PyPI válidos usados para categorizar projetos e lançamentos de acordo com PEP 301, por exemplo Topic :: System :: Filesystems e Development Status :: 6 - Mature. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4949]https://files.pythonhosted.org/packages/source/t/trove_classi fiers/trove_classifiers-2025.1.15.22.tar.gz * Transferência (FTP): * 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 Dependências de Trove-Classifiers Opcionais (para testagem) [4950]pytest-8.3.4 Instalação do Trove-Classifiers Primeiro, codifique rigidamente a versão do pacote em setup.py para contornar um problema que faz com que a roda gerada contenha uma sequência incorreta de caracteres de versão quando o módulo calver não estiver instalado: sed -i '/calver/s/^/#/;$iversion="2025.1.15.22"' setup.py Construa o módulo: pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD Agora, como o(a) usuário(a) root: pip3 install --no-index --find-links dist --no-user trove-classifiers Para testar a instalação, emita: pytest. Explicações do Comando -w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist". --no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção. --no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto. --no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links"). --find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist". --no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root". --no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root". --upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada. --force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote. --no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall". Conteúdo Aplicativos Instalados: Nenhum(a) Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /usr/lib/python3.13/site-packages/trove_classifiers e /usr/lib/python3.13/site-packages/trove_classifiers-2025.1.15.22.dist-i nfo Typogrify-2.1.0 Introdução ao Módulo Typogrify "Typogrify" fornece filtros para aprimorar a tipografia da "web", incluindo suporte para modelos "Django" e "Jinja". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4951]https://files.pythonhosted.org/packages/source/t/typogrify/ty pogrify-2.1.0.tar.gz * Transferência (FTP): * 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 Dependências do Typogrify Exigidas [4952]smartypants-2.0.1 Instalação do Typogrify Construa o módulo: pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) "root": pip3 install --no-index --find-links dist --no-user typogrify Explicações do Comando -w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist". --no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção. --no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto. --no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links"). --find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist". --no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root". --no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root". --upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada. --force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote. --no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall". Conteúdo Aplicativos Instalados: Nenhum(a) Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /usr/lib/python3.13/site-packages/typogrify e /usr/lib/python3.13/site-packages/typogrify-2.1.0.dist-info Urllib3-2.3.0 Introdução ao Módulo Urllib3 O módulo "Urllib3" é um cliente "HTTP", poderoso e amigável para com o(a) usuário(a), para "Python". Ele traz muitos recursos críticos que estão ausentes nas bibliotecas padrão do "Python". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4953]https://files.pythonhosted.org/packages/source/u/urllib3/urll ib3-2.3.0.tar.gz * Transferência (FTP): * 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) Dependências do Urllib3 Exigidas [4954]hatchling-1.27.0 Opcionais (para testes) [4955]pytest-8.3.4, [4956]httpx, [4957]hypercorn, [4958]mock, [4959]PySocks, [4960]pytest-timeout, [4961]python-dateutil, [4962]quart, [4963]quart-trio, [4964]tornado, [4965]trio e [4966]trustme Instalação do Urllib3 Construa o módulo: pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD Agora, como o(a) usuário(a) "root": pip3 install --no-index --find-links dist --no-user urllib3 Supondo que "[4967]pytest-8.3.4" esteja instalado, mas as outras dependências opcionais não estejam, a instalação pode ser testada com os seguintes comandos: python3 -m venv --system-site-packages testenv && source testenv/bin/activate && pip3 install trustme \ tornado \ python-dateutil \ mock \ pysocks \ pytest-timeout \ trio \ hypercorn \ quart \ quart_trio \ httpx && python3 /usr/bin/pytest deactivate Cerca de 37 erros são conhecidos por ocorrerem devido a pequenas mudanças de comportamento nos módulos externos do Python acima, quando combinados com o Python 3.13.2. Explicações do Comando -w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist". --no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção. --no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto. --no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links"). --find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist". --no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root". --no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root". --upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada. --force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote. --no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall". Conteúdo Aplicativos Instalados: Nenhum(a) Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /usr/lib/python3.13/site-packages/urllib3 e /usr/lib/python3.13/site-packages/urllib3-2.3.0.dist-info webencodings-0.5.1 Introdução ao Webencodings Module O módulo webencodings é uma implementação Python do [4968]padrão de codificação WHATWG. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4969]https://files.pythonhosted.org/packages/source/w/webencodings /webencodings-0.5.1.tar.gz * Transferência (FTP): * 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 Instalação do webencodings Construa o módulo: pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD Agora, como o(a) usuário(a) root: pip3 install --no-index --find-links dist --no-user webencodings Explicações do Comando -w dist: constrói o(a) apropriado(a) "wheel" para esse módulo no diretório "dist". --no-build-isolation: informa ao "pip3" para executar a construção no ambiente do sistema em vez de criar um ambiente temporário de construção. --no-deps: impede o "pip3" de construir "wheels" para as dependências do projeto. --no-index: ignora o índice do pacote (olhando apenas para "URLs" do "--find-links"). --find-links dist: procura links para arquivamentos, como arquivos "wheel" (".whl"), no diretório "dist". --no-cache-dir: desabilita o cache para evitar um aviso ao instalar como o(a) usuário(a) "root". --no-user: Evite executar erroneamente o comando de instalação como um(a) usuário(a) não "root". --upgrade: Atualize o pacote para a versão mais recente disponível. Essa opção é usada com o comando de instalação se uma versão do pacote já estiver instalada. --force-reinstall: Reinstale o pacote mesmo que esteja atualizado. Essa opção é usada com o comando de instalação ao reinstalar o pacote ou reverter para uma versão anterior do pacote. --no-deps: Não instale dependências do pacote. Essa opção possivelmente seja necessária com as opções "--upgrade" ou "--force-reinstall". Conteúdo Aplicativos Instalados: Nenhum(a) Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /usr/lib/python3.13/site-packages/webencodings e /usr/lib/python3.13/site-packages/webencodings-0.5.1.dist-info Last updated on Ruby-3.4.2 Introdução ao Ruby O pacote "Ruby" contém o ambiente de desenvolvimento "Ruby". Isso é útil para "scripts" orientados a objetos. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4970]https://cache.ruby-lang.org/pub/ruby/3.4/ruby-3.4.2.tar.xz * Transferência (FTP): * Soma de verificação MD5 da transferência: 63a56b170246fcf0198a5eaba57dd46c * Tamanho da transferência: 16 MB * Espaço em disco estimado exigido: 697 MB (com documentos de API da C e testes) * Tempo de construção estimado: 1,0 UPC (com documentos da API da C; adicionar 0,5 UPC para testes; todos usando paralelismo=4) Dependências do Ruby Exigidas [4971]libyaml-0.2.5 Opcionais [4972]Doxygen-1.13.2, [4973]Graphviz-12.2.1, [4974]rustc-1.85.0, [4975]Tk-8.6.16, [4976]Valgrind-3.24.0, [4977]Berkeley DB (obsoleto) e [4978]DTrace Nota Uma conexão com a Internet é necessária para alguns testes desse pacote. A loja de certificados do sistema possivelmente precise ser configurada com [4979]make-ca-1.15 antes de se testar esse pacote Instalação do Ruby Nota Se tiver instalado um pacote que fornece uma gema de Ruby, como [4980]asciidoctor-2.0.23, você precisa reinstalar esses pacotes ao atualizar para uma nova versão secundária do Ruby. Instale "Ruby" executando o seguinte comando: ./configure --prefix=/usr \ --disable-rpath \ --enable-shared \ --without-valgrind \ --without-baseruby \ ac_cv_func_qsort_r=no \ --docdir=/usr/share/doc/ruby-3.4.2 && make Opcionalmente, construa os documentos da "API" "C" executando os seguintes comandos: make capi Para testar os resultados, emita: make -k check. Se o ambiente tiver variáveis relacionadas às configurações de proxy (all_proxy, ALL_PROXY, http_proxy e etc.) configuradas, a suíte de teste sairá mais cedo com mensagens como net/ftp is not found. Certifique-se de que você desconfigurou essas variáveis para a suíte de teste. Agora, como o(a) usuário(a) "root": make install Nota Se você tem aplicativos "Ruby-On-Rails" instalados e fez uma atualização do "Ruby" instalando esse pacote, [então] você pode precisar executar uma atualização lá também (como o(a) usuário(a) "root"): cd /caminho/para/aplicativo/web/ bundle update rake e reinicie o servidor "web" que atende o aplicativo. Explicações do Comando --disable-rpath: Essa chave desabilita a incorporação de /usr/lib como um caminho de pesquisa de biblioteca no aplicativo ruby. Fazer isso não é necessário (porque /usr/lib é um caminho de biblioteca do sistema) e possivelmente faça com que a suíte de teste executar com a libruby. so do sistema em vez da recém construída quando o Ruby foi instalado. --enable-shared: Essa chave habilita construir a biblioteca compartilhada "libruby". --without-baseruby: Essa chave impede usar o ruby do sistema se ele já estiver instalado. O sistema de construção usará a versão recém-construída. ac_cv_func_qsort_r=no: Essa chave impede usar a função qsort_r proveniente da Glibc. Ruby faz algumas otimizações agressivas assumindo alguns detalhes de implementação do algoritmo de ordenação, mas a suposição não é verdadeira com a implementação da Glibc. Com essa chave, Ruby usará a própria implementação dela de ordenação. --disable-install-doc: Essa chave desabilita construir e instalar índices "rdoc" e documentos da "API" "C". --disable-install-rdoc: Essa chave desabilita construir e instalar índices "rdoc". --disable-install-capi: Essa chave desabilita construir e instalar documentos da "API" "C". Conteúdo Aplicativos Instalados: bundle, bundler, erb, gem, irb, racc, rake, rbs, rdbg, rdoc, ri, ruby e typeprof Bibliotecas Instaladas: libruby.so Diretórios Instalados: /usr/include/ruby-3.4.0, /usr/lib/ruby, /usr/share/doc/ruby-3.4.2 e /usr/share/ri Descrições Curtas bundle cria pacotes de "Ruby Gems" bundler gerencia as dependências de um aplicativo durante todo o ciclo de vida dele erb é uma estrutura de interação direta com o(a) usuário(a) em linha de comando para "eRuby", que fornece um sistema de modelos para "Ruby" gem é o comando para "RubyGems", que é um sofisticado gerenciador de pacotes para "Ruby". Isso é semelhante ao comando "pip" do "Python" irb é a interface interativa para "Ruby" rake é um utilitário de construção semelhante ao "make" para "Ruby" rdbg é um depurador interativo para "Ruby" rdoc gera documentação "Ruby" ri exibe documentação a partir de uma base de dados relacionada a classes, módulos e métodos "Ruby" ruby é uma linguagem de "script" interpretada para programação orientada a objetos rápida e fácil libruby.so contém as funções da "API" exigidas pelo "Ruby" Rustc-1.85.0 Introdução ao Rust A linguagem de programação Rust foi projetada para ser uma linguagem segura, simultânea e prática. Esse pacote é atualizado em um ciclo de lançamento de seis semanas. Por ser um pacote tão grande e lento para construir, é, no momento, exigido somente por uns poucos pacotes neste livro, e particularmente porque versões mais novas tendem a quebrar pacotes mais antigos do Mozilla, os(as) editores(as) do BLFS consideram que ele deveria ser atualizado somente quando necessário (ou para corrigir problemas ou para permitir que uma nova versão de um pacote construa). Tal como acontece com muitas outras linguagens de programação, o "Rustc" (o compilador "Rust") precisa de um binário a partir do qual inicializar. Ele baixará um binário stage0 no início da construção, de forma que você não consegue compilá-lo sem uma conexão com a Internet. Nota Embora o BLFS normalmente instale em "/usr", quando você atualizar posteriormente para uma versão mais recente do "rust", as bibliotecas antigas em "/usr/lib/rustlib" permanecerão, com vários "hashes" nos nomes delas, mas não serão usáveis e desperdiçarão espaço. Os(As) editores(as) recomendam colocar os arquivos no diretório "/opt". Em particular, se você tiver motivos para reconstruir com uma configuração modificada (por exemplo, usando o "LLVM" enviado após construir com "LLVM" compartilhado, talvez para compilar caixas para arquiteturas que a construção "LLVM" do BLFS não suporta), [então] é possível que a instalação deixe um aplicativo quebrado "cargo". Em tal situação, remova a instalação existente primeiro ou use um prefixo diferente, como "/opt/rustc-1.85.0-build2". Se preferir, você pode, certamente, mudar o prefixo para "/usr". O sistema de construção rustbuild atual usará todos os processadores, embora não escale bem e frequentemente recorra a usar apenas um núcleo enquanto espera que uma biblioteca compile. No entanto, ele pode ser limitado principalmente a um número especificado de processadores por uma combinação da adição da chave --jobs (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=. 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 [4981]“Use o Grupo de Controle do Linux para Limitar o Uso de Recursos” para como usar um cgroup. No momento, "Rust" não oferece nenhuma garantia de uma "ABI" estável. Nota O padrão do "Rustc" é o de construir para TODAS as arquiteturas suportadas, usando uma cópia enviada do "LLVM". No BLFS a construção é somente para a arquitetura "X86". Se você pretende desenvolver caixas "Rust", [então] essa construção possivelmente não seja boa o suficiente para os teus propósitos. Os tempos de construção dessa versão, quando repetidos na mesma máquina, costumam ser razoavelmente consistentes, mas como acontece com todas as compilações usando "rustc", pode existir alguns valores discrepantes muito lentos. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4982]https://static.rust-lang.org/dist/rustc-1.85.0-src.tar.xz * Transferência (FTP): * Soma de verificação MD5 da transferência: a0193e0a4925f772bd50f8d12e47860c * Tamanho da transferência: 261 MB * Espaço em disco estimado exigido: 9,4 GB (252 MB instalado); adicionar 7,4 GB se executar os testes * Tempo de construção estimado: 9,0 UPC (incluindo o tempo de transferência; adicionar 15 UPC para testes, ambos usando paralelismo=8) Dependências do Rust Exigidas [4983]CMake-3.31.5 e [4984]cURL-8.12.1 Nota Uma conexão com a Internet é necessária para construir esse pacote. A loja de certificados do sistema possivelmente precise ser configurada com [4985]make-ca-1.15 antes de se construir esse pacote Recomendadas [4986]libssh2-1.11.1, [4987]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 [4988]SQLite-3.49.1 Nota Se uma dependência recomendada não estiver instalada, [então] uma cópia enviada no "tarball" do fonte do "Rustc" será construída e usada. Opcionais [4989]GDB-16.2 (usado pela suíte de teste se estiver presente), [4990]git-2.48.1 (exigido pela suíte de teste), [4991]cranelift, [4992]jemalloc, libgccjit (leia-se Explicação do Comando em [4993]GCC-14.2.0) e [4994]libgit2 Observações de Editor(a): [4995]https://wiki.linuxfromscratch.org/blfs/wiki/rust Instalação do Rust Para instalar no diretório "/opt", remova qualquer link simbólico "/opt/rustc" existente e crie um novo diretório (ou seja, com um nome diferente se tentar uma construção modificada da mesma versão). Como o(a) usuário(a) "root": mkdir -pv /opt/rustc-1.85.0 && ln -svfn rustc-1.85.0 /opt/rustc Nota Se múltiplas versões do "Rust" estiverem instaladas em "/opt", [então] a mudança para outra versão exige somente mudar o link simbólico "/opt/rustc" e então executar "ldconfig". Crie um arquivo "config.toml" adequado que configurará a construção. cat << EOF > config.toml # see config.toml.example for more possible options # See the 8.4 book for an old example using shipped LLVM # e.g. if not installing clang, or using a version before 13.0 # Tell x.py the editors have reviewed the content of this file # and updated it to follow the major changes of the building system, # so x.py will not warn us to do such a review. change-id = 134650 [llvm] # When using system llvm prefer shared libraries link-shared = true # Do not download pre-built LLVM, instead either use the system # LLVM or build LLVM from the shipped source. download-ci-llvm = false # If building the shipped LLVM source, only enable the x86 target # instead of all the targets supported by LLVM. targets = "X86" [build] # omit docs to save time and space (default is to build them) docs = false # install extended tools: cargo, clippy, etc extended = true # Do not query new versions of dependencies online. locked-deps = true # Specify which extended tools (those from the default install). tools = ["cargo", "clippy", "rustdoc", "rustfmt"] [install] prefix = "/opt/rustc-1.85.0" docdir = "share/doc/rustc-1.85.0" [rust] channel = "stable" description = "for BLFS 12.3" # Enable the same optimizations as the official upstream build. lto = "thin" codegen-units = 1 [target.x86_64-unknown-linux-gnu] llvm-config = "/usr/bin/llvm-config" [target.i686-unknown-linux-gnu] llvm-config = "/usr/bin/llvm-config" EOF Agora remova alguns testes que deflagram uma reconstrução completa da biblioteca padrão e do compilador Rust: sed '/MirOpt/d' -i src/bootstrap/src/core/builder/mod.rs Compile "Rust" executando os seguintes comandos: [ ! -e /usr/include/libssh2.h ] || export LIBSSH2_SYS_USE_PKG_CONFIG=1 [ ! -e /usr/include/sqlite3.h ] || export LIBSQLITE3_SYS_USE_PKG_CONFIG=1 ./x.py build Nota A suíte de teste gerará algumas mensagens no registro do sistema para interceptações em códigos inválidos de operação e para falhas de segmentação. Por si só, isso não é motivo de preocupação, apenas uma maneira do teste ser terminado. Para executar os testes (novamente usando todas as "CPUs" disponíveis), emita: ./x.py test --verbose --no-fail-fast | tee rustc-testlog Seis testes na suíte de teste de instruções de autoaprimoramento são conhecidos por falharem porque eles esperam executar no repositório Git da Rust. Tal como acontece com todas as grandes suítes de teste, alguns testes podem falhar em algumas máquinas - se o número de falhas adicionais for baixo, verifique se existem 'failures:' no registro e revise as linhas acima, especialmente as linhas 'stderr:'. Qualquer menção ao SIGSEGV ou ao sinal onze (11) em um teste falho é motivo de preocupação. Se você receber algum outro teste falho que informe um número de problema, então você deveria procurar por esse problema. Por exemplo, quando "Rustc" >= 1.41.1 era construído com uma versão do "LLVM" do sistema anterior à 10.0, o teste para o problema "69225" falhava [4996]https://github.com/rust-lang/rust/issues/69225 e isso deveria ser considerado como uma falha crítica (eles(as) lançaram 1.41.1 por causa disso). A maioria das outras falhas não será crítica. Portanto, você deveria determinar o número de falhas. O número de testes que passaram e falharam pode ser encontrado executando-se: grep '^test result:' rustc-testlog | awk '{sum1 += $4; sum2 += $6} END { print sum1 " passed; " sum2 " failed" }' Os outros campos disponíveis são "$8" para aqueles que foram ignorados (ou seja, pulados), "$10" para 'medido' e "$12" para 'filtrado', mas ambos os dois últimos provavelmente sejam zero. Agora, como o(a) usuário(a) "root", instale o pacote: Nota Se sudo ou su for invocado para comutar para o(a) usuário(a) root, certifique-se de que LIBSSH2_SYS_USE_PKG_CONFIG e LIBSQLITE3_SYS_USE_PKG_CONFIG sejam passados corretamente ou o comando a seguir pode reconstruir cargo com cópias enviadas de libssh2 e sqlite. Para sudo, use a opção --preserve-env=LIB{SSH2,SQLITE3}_SYS_USE_PKG_CONFIG. Para su, não use as opções - ou --login. ./x.py install rustc std && ./x.py install --stage=1 cargo clippy rustfmt Ainda como o(a) usuário(a) root, corrija a instalação da documentação, linque simbolicamente um arquivo de completação do Zsh para o local correto, e mova um arquivo de completação do Bash para o local recomendado pelos(as) mantenedores(as) da completação do Bash: rm -fv /opt/rustc-1.85.0/share/doc/rustc-1.85.0/*.old && install -vm644 README.md \ /opt/rustc-1.85.0/share/doc/rustc-1.85.0 && install -vdm755 /usr/share/zsh/site-functions && ln -sfv /opt/rustc/share/zsh/site-functions/_cargo \ /usr/share/zsh/site-functions mv -v /etc/bash_completion.d/cargo /usr/share/bash-completion/completions Finalmente, desconfigure as variáveis de ambiente exportadas: unset LIB{SSH2,SQLITE3}_SYS_USE_PKG_CONFIG Explicações do Comando ln -svfn rustc-1.85.0 /opt/rustc: se esse não for o primeiro uso do link simbólico /opt/rustc, [então] sobrescreva-o forçando e use o sinalizador '-n' para evitar resultados confusos oriundos, por exemplo, de ls -l. targets = "X86": isso evita construir todos os compiladores cruzados disponíveis do Linux (AArch64, MIPS, PowerPC, SystemZ, etc). Infelizmente, o Rust insiste em instalar os arquivos fonte para esses abaixo de /opt/rustc/lib/src. extended = true: isso instala várias ferramentas (especificadas pela entrada tools) juntamente com o rustc. tools = ["cargo", "clippy", "rustdoc", "rustfmt"]: construa somente as ferramentas a partir do perfil 'padrão' no comando binário rustup que é recomendado para a maioria dos(as) usuários(as). As outras ferramentas são improváveis que sejam úteis, a menos que se use analisadores (antigos) de código ou se edite a biblioteca padrão. channel = "stable": isso garante que somente recursos estáveis possam ser usados. O padrão no config.toml é o de usar recursos de desenvolvimento, o que não é apropriado para uma versão lançada. [target.x86_64-unknown-linux-gnu]: a sintaxe do config.toml exige uma entrada llvm-config para cada alvo para o qual o LLVM do sistema esteja para ser usado. Mude o alvo para [target.i686-unknown-linux-gnu] se você estiver construindo em x86 de 32 bits. Essa seção inteira pode ser omitida se você desejar construir contra o LLVM enviado ou não tiver clang, mas a construção resultante será maior e demorará mais. export LIBSSH2_SYS_USE_PKG_CONFIG=1: Permite que o "cargo" se vincule à "libssh2" do sistema. export LIBSQLITE3_SYS_USE_PKG_CONFIG=1: Permite cargo lincar ao sqlite do sistema. --verbose: essa chave às vezes pode fornecer mais informações relativas a um teste que falhe. --no-fail-fast: essa chave garante que a suíte de teste não parará no primeiro erro. --stage=1: essa chave contorna um problema que faz com que alguns componentes do Rustc sejam reconstruídos desnecessariamente ao se executar ./x.py install. Configurando o Rust Informação de Configuração Se você instalou "rustc" em "/opt", [então] você precisa atualizar os seguintes arquivos de configuração, de forma que "rustc" seja encontrado corretamente por outros pacotes e processos do sistema. Como o(a) usuário(a) "root", crie o arquivo "/etc/profile.d/rustc.sh": cat > /etc/profile.d/rustc.sh << "EOF" # Begin /etc/profile.d/rustc.sh pathprepend /opt/rustc/bin PATH # End /etc/profile.d/rustc.sh EOF Imediatamente depois da instalação, atualize o PATH atual para teu shell atual como um(a) usuário(a) normal: source /etc/profile.d/rustc.sh Conteúdo Aplicativos Instalados: cargo-clippy, cargo-fmt, cargo, clippy-driver, rust-gdb, rust-gdbgui, rust-lldb, rustc, rustdoc e rustfmt Bibliotecas Instaladas: librustc-driver-.so, libstd-.so e libtest-.so Diretórios Instalados: ~/.cargo, /opt/rustc, link simbólico para /opt/rustc-1.85.0 Descrições Curtas cargo-clippy fornece verificações "lint" para um pacote "cargo" cargo-fmt formata todos os arquivos "bin" e "lib" da caixa atual usando "Rustfmt" cargo é o Gerenciador de Pacote para "Rust" clippy-driver fornece verificações "lint" para "Rust" rust-gdb é um "script" envólucro para "gdb", extraindo módulos de impressão bonita do "Python" instalados em "/opt/rustc-1.85.0/lib/rustlib/etc" rust-gdbgui é um "script" envólucro para uma estrutura gráfica de interação direta com o(a) usuário(a) para "gdb" que executa em um navegador rust-lldb é um "script" envólucro para "LLDB" (o depurador "LLVM") que extrai os módulos de impressão bonita do "Python" rustc é o compilador "rust" rustdoc gera documentação a partir do código fonte "rust" rustfmt formata código "rust" libstd-.so é a biblioteca padrão do "Rust", a fundação do logiciário portável "Rust" rust-bindgen-0.71.1 Introdução ao rust-bindgen O pacote rust-bindgen contém um utilitário que gera ligações Rust a partir de cabeçalhos C/C++. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [4997]https://github.com/rust-lang/rust-bindgen/archive/v0.71.1/rus t-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) Dependências de rust-bindgen Exigidas [4998]rustc-1.85.0 e [4999]LLVM-19.1.7 (com Clang, tempo de execução) Nota Uma conexão com a Internet é necessária para construir esse pacote. A loja de certificados do sistema possivelmente precise ser configurada com [5000]make-ca-1.15 antes de se construir esse pacote Instalação do rust-bindgen Instale rust-bindgen executando os seguintes comandos: cargo build --release Para testar os resultados, emita: cargo test --release. Agora, como o(a) usuário(a) root: install -v -m755 target/release/bindgen /usr/bin Ainda como o(a) usuário(a) root, instale os arquivos de suporte à completação do Bash e do Zsh: bindgen --generate-shell-completions bash \ > /usr/share/bash-completion/completions/bindgen bindgen --generate-shell-completions zsh \ > /usr/share/zsh/site-functions/_bindgen Conteúdo Aplicativos Instalados: bindgen Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: Nenhum(a) Descrições Curtas bindgen gera ligações para Rust a partir de cabeçalhos C/C++ SCons-4.8.1 Introdução ao SCons "SCons" é uma ferramenta para construir logiciário (e outros arquivos) implementada em "Python". Nota Ao expandir o tarball, o pacote expande para scons-4.8.1, não para o esperado SCons-4.8.1. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [5001]https://downloads.sourceforge.net/scons/SCons-4.8.1.tar.gz * Transferência (FTP): * Soma de verificação MD5 da transferência: ed49dcac8dd586f1d78955bcd9878905 * Tamanho da transferência: 3,1 MB * Espaço em disco estimado exigido: 50 MB * Tempo de construção estimado: menos que 0,1 UPC Instalação do SCons Construa o pacote: pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD Como o(a) usuário(a) root, instale o pacote: pip3 install --no-index --find-links dist --no-user SCons && install -v -m664 *.1 /usr/share/man/man1 Conteúdo Aplicativos Instalados: scons, scons-configure-cache e sconsign Bibliotecas Instaladas: Nenhum(a) Diretório Instalado: /usr/lib/python3.13/site-packages/SCons{,-4.8.1.dist-info} Descrições Curtas scons é uma ferramenta de construção de logiciário scons-configure-cache mostra ou converte a configuração de um diretório de cache do "SCons" sconsign imprime informações do arquivo .sconsign do SCons slang-2.3.3 Introdução ao slang "S-Lang" ("slang") é uma linguagem interpretada que pode ser incorporada em um aplicativo para torná-lo extensível. Ela fornece recursos exigidos por aplicativos interativos, como gerenciamento de exibição/tela, entrada de teclado e mapas de teclado. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [5002]https://www.jedsoft.org/releases/slang/slang-2.3.3.tar.bz2 * Transferência (FTP): * Soma de verificação MD5 da transferência: 69015c8300088373eb65ffcc6ed4db8c * Tamanho da transferência: 1,6 MB * Espaço em disco estimado exigido: 22 MB (adicionar 15 MB para os testes) * Tempo de construção estimado: 0,4 UPC (adicionar 0,5 UPC para testes) Dependências do Slang Opcionais [5003]libpng-1.6.46 e [5004]Oniguruma Instalação do Slang Nota Esse pacote não suporta construção paralela. Instale "slang" executando os seguintes comandos: ./configure --prefix=/usr \ --sysconfdir=/etc \ --with-readline=gnu && make -j1 RPATH= Para testar os resultados, emita: LC_ALL=C make check. Agora, como o(a) usuário(a) "root": make install_doc_dir=/usr/share/doc/slang-2.3.3 \ SLSH_DOC_DIR=/usr/share/doc/slang-2.3.3/slsh \ RPATH= install Explicações do Comando --with-readline=gnu: Esse parâmetro configura o "Readline" do "GNU" para ser usado pela interface do analisador em vez da versão interna do "slang". RPATH=: Essa variável substituída do make impede codificar rigidamente caminhos de pesquisa de biblioteca (rpath) nos arquivos executáveis binários e nas bibliotecas compartilhadas. Esse pacote não precisa do rpath para uma instalação no local padrão, e o rpath às vezes pode causar efeitos indesejados ou até mesmo problemas de segurança. install_doc_dir=/usr/share/doc/slang-2.3.3 SLSH_DOC_DIR=/usr/share/doc/slang-2.3.3/slsh: Essas variáveis substituídas do make garantem instalar esse pacote com um diretório versionado de instalação da documentação. Configurando slang Arquivos de Configuração ~/.slshrc e /etc/slsh.rc Conteúdo Aplicativo Instalado: slsh Bibliotecas Instaladas: "libslang.so" e numerosos módulos de suporte Diretórios Instalados: /usr/lib/slang, /usr/share/doc/slang-2.3.3 e /usr/share/slsh Descrições Curtas slsh é um aplicativo simples para interpretar "scripts" "slang". Ele suporta carregamento dinâmico de módulos "slang" e inclui uma interface "Readline" para uso interativo Subversion-1.14.5 Introdução ao Subversion "Subversion" é um sistema de controle de versão que foi projetado para ser um substituto atraente para o "CVS" na comunidade de fonte aberto. Ele amplia e aprimora o conjunto de recursos do "CVS", enquanto mantém uma interface semelhante para aqueles(as) já familiarizados(as) com o "CVS". Estas instruções instalam o logiciário cliente e servidor usado para manipular um repositório "Subversion". A criação de um repositório é abordada em [5005]Executando um Servidor "Subversion". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [5006]https://archive.apache.org/dist/subversion/subversion-1.14.5. tar.bz2 * Transferência (FTP): * Soma de verificação MD5 da transferência: af6001dc7af2f1242a4f72e8a5c565d2 * Tamanho da transferência: 8,3 MB * Espaço em disco estimado exigido: 260 MB (adicionar 189 MB para ligações, 54 MB para documentos, 1,3 GB para testes) * Tempo de construção estimado: 1,5 UPC (Usando paralelismo=4; adicionar 2,0 UPC para ligações, 30 UPC para testes) Dependências do Subversion Exigidas [5007]Apr-Util-1.6.3 e [5008]SQLite-3.49.1 Recomendadas [5009]Serf-1.3.10 (para manusear URLs http:// e https://) e [5010]SWIG-4.3.0 (para regenerar o sistema de construção) Opcionais [5011]Apache-2.4.63, [5012]Boost-1.87.0, [5013]Cyrus SASL-2.1.28, [5014]dbus-1.16.0, [5015]Doxygen-1.13.2 (para gerar documentação HTML), [5016]gnome-keyring-46.2, [5017]libsecret-0.21.6, [5018]Py3c-1.4 (para as ligações Python, e testes), [5019]Python-3.13.2 (com suporte a sqlite para os testes), [5020]Ruby-3.4.2, [5021]SWIG-4.3.0 e [5022]UTF8proc Opcionais (para as ligações Java) Um de [5023]OpenJDK-23.0.2, [5024]Dante ou [5025]Jikes; [5026]JUnit 4 (para testar as ligações "Java") e [5027]apache-ant-1.10.15. Instalação do Subversion Instale Subversion executando os seguintes comandos: ./configure --prefix=/usr \ --disable-static \ --with-apache-libexecdir \ --with-utf8proc=internal && make Se você tiver "[5028]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=" (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 "[5029]apache-ant-1.10.15" e precisa ser baixado separadamente. Para construir as ligações "Java", emita o seguinte comando: make -j1 javahl Se tu desejar compilar ligações "Perl", "Python" ou "Ruby", [então] emita algum dos seguintes comandos: make swig-pl # para Perl make swig-py \ swig_pydir=/usr/lib/python3.13/site-packages/libsvn \ swig_pydir_extra=/usr/lib/python3.13/site-packages/svn # para Python make swig-rb # para Ruby Para testar os resultados, emita: make check. Para testar os resultados de quaisquer das ligações "SWIG", você pode usar algum dos seguintes comandos: "make check-swig-pl", "make check-swig-py" ou "make check-swig-rb". Agora, como o(a) usuário(a) root: make install && install -v -m755 -d /usr/share/doc/subversion-1.14.5 && cp -v -R doc/* /usr/share/doc/subversion-1.14.5 Se você construiu as ligações "Java", [então] emita o seguinte comando como o(a) usuário(a) "root" para instalá-las: make install-javahl Se você construiu as ligações "Perl", "Python" ou "Ruby", [então] emita algum dos seguintes comandos como o(a) usuário(a) "root" para instalá-las: make install-swig-pl make install-swig-py \ swig_pydir=/usr/lib/python3.13/site-packages/libsvn \ swig_pydir_extra=/usr/lib/python3.13/site-packages/svn make install-swig-rb As ligações "Java" precisam ser instaladas para a finalidade de que os testes executem, pois os testes tentam procurá-las em "CLASSPATH". Para testar os resultados da construção de ligações "Java", emita "LANG=C make check-javahl". Explicações do Comando --disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas. --with-apache-libexecdir: Se o "[5030]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=: dá o local do "jar" do "JUnit"; caso contrário, os testes "javahl" não poderão ser executados. --disable-gmock: Não use a estrutura de testes "Googlemock". Configurando o Subversion Arquivos de Configuração ~/.subversion/config e /etc/subversion/config Informação de Configuração /etc/subversion/config é o arquivo de configuração do "Subversion" abrangente ao sistema. Esse arquivo é usado para especificar padrões para diferentes comandos "svn". ~/.subversion/config é o arquivo de configuração pessoal do(a) usuário(a). Ele é usado para substituir os padrões de todo o sistema configurados em "/etc/subversion/config". Conteúdo Aplicativos Instalados: svn, svnadmin, svnbench, svndumpfilter, svnfsfs, svnlook, svnmucc, svnrdump, svnserve, svnsync e svnversion Bibliotecas Instaladas: libsvn_*-1.so e, opcionalmente, uma biblioteca Java; os módulos DSO mod_dav_svn.so e mod_authz_svn.so do Apache HTTP e vários módulos Perl, Python e Ruby. Diretórios Instalados: /usr/include/subversion-1, /usr/lib/perl5/site_perl/5.40/{,auto/}SVN, /usr/lib/python3.13/site-packages/{libsvn,svn}, /usr/lib/ruby/site_ruby//{,-linux/}svn, /usr/lib/svn-javahl e /usr/share/doc/subversion-1.14.5 Descrições Curtas svn é um aplicativo cliente de linha de comando usado para acessar repositórios do "Subversion" svnadmin é uma ferramenta para criar, ajustar ou reparar um repositório "Subversion" svnbench é uma ferramenta de avaliação comparativa svndumpfilter é um aplicativo para filtrar fluxos de formato de arquivo de despejo do repositório "Subversion" svnfsfs é a ferramenta de manipulação de repositório "FSFS" ("FileSystem sobre o FileSystem" - implementação do sistema de arquivos do "Subversion") svnlook é uma ferramenta para inspecionar um repositório "Subversion" svnmucc é um cliente de comando de múltiplas "URLs" para o "Subversion" svnrdump é uma ferramenta para despejar ou carregar um repositório remoto do "Subversion" svnserve é um aplicativo servidor independente personalizado, capaz de executar como um processo de segundo plano ou invocado por "SSH" svnsync é uma ferramenta de sincronização de repositório "Subversion" svnversion é usado para informar o número da versão e o estado de uma cópia funcional do repositório "Subversion" libsvn_*-1.so são as bibliotecas de suporte usadas pelos aplicativos do "Subversion" mod_authz_svn.so é um módulo "plug-in" para o servidor "HTTP" "Apache", usado para autenticar usuários(as) em um repositório "Subversion" por intermédio da Internet ou na intranet mod_dav_svn.so é um módulo "plug-in" para o servidor "HTTP" "Apache", usado para disponibilizar um repositório "Subversion" para outros(as) por intermédio da Internet ou de uma intranet Executando um Servidor "Subversion" Executando um Servidor "Subversion" Esta seção descreverá como configurar, administrar e proteger um servidor "Subversion". Dependências do Servidor "Subversion" Exigidas [5031]Subversion-1.14.5 e [5032]OpenSSH-9.9p2 Configurando um Servidor Subversion. As seguintes instruções instalarão um servidor "Subversion", que será configurado para usar "OpenSSH" como o método de acesso remoto seguro, com "svnserve" disponível para acesso anônimo. A configuração do servidor "Subversion" consiste nas seguintes etapas: 1. Configurar Usuários(as), Grupos e Permissões Você precisará ser o(a) usuário(a) "root" para a parte inicial da configuração. Crie o(a) usuário(a) e grupo "svn" com os seguintes comandos: groupadd -g 56 svn && useradd -c "Proprietário(a) do SVN" -d /home/svn -m -g svn -s /bin/false -u 56 s vn Se você planeja ter vários repositórios, [então] deveria ter um grupo dedicado para cada repositório para facilitar a administração. Crie o grupo "svntest" para o repositório de teste e adicione o(a) usuário(a) "svn" a esse grupo com os seguintes comandos: groupadd -g 57 svntest && usermod -G svntest -a svn Além disso, você deveria configurar "umask 002" enquanto trabalha com um repositório, de forma que todos os novos arquivos sejam escrevíveis pelo(a) proprietário(a) e pelo grupo. Isso é tornado obrigatório criando-se um "script" envólucro para "svn" e "svnserve": mv /usr/bin/svn /usr/bin/svn.orig && mv /usr/bin/svnserve /usr/bin/svnserve.orig && cat >> /usr/bin/svn << "EOF" #!/bin/sh umask 002 /usr/bin/svn.orig "$@" EOF cat >> /usr/bin/svnserve << "EOF" #!/bin/sh umask 002 /usr/bin/svnserve.orig "$@" EOF chmod 0755 /usr/bin/svn{,serve} Nota Se usar o "Apache" para trabalhar com o repositório via "HTTP", mesmo para acesso anônimo, [então] você deveria agrupar "/usr/sbin/httpd" em um "script" semelhante. 2. Criar um repositório Subversion. Existem várias maneiras de configurar um repositório "Subversion". Recomenda-se dar uma olhada no capítulo correspondente do [5033]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." \ \ 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 "svntest" é o grupo atribuído ao repositório "svntest". Conforme mencionado anteriormente, isso facilita a administração de repositórios múltiplos ao usar "OpenSSH" para autenticação. A partir de agora, você precisará adicionar teu(ua) usuário(a) sem privilégios, e quaisquer usuários(as) adicionais que desejar ter acesso de escrita ao repositório, aos grupos "svn" e "svntest". Além disso, você notará que o diretório "db" do novo repositório está configurado o "ID" de grupo. Se o raciocínio não for imediatamente óbvio, [então] ao usar qualquer método externo de autenticação (como "ssh"), o bit "sticky" é configurado, de forma que todos os novos arquivos sejam de propriedade do(a) usuário(a), mas do grupo de "svntest". Qualquer um(a) no grupo "svntest" consegue criar arquivos, mas, ainda assim, conceder ao grupo inteiro acesso de escrita a esses arquivos. Isso evita bloquear outros(as) usuários(as) fora do repositório. Agora, retorne para uma conta de usuário(a) sem privilégios e dê uma olhada no novo repositório usando "svnlook": svnlook tree /srv/svn/repositories/svntest/ Nota Você possivelmente precise sair e entrar novamente para atualizar tuas titularidades de membros(as) de grupo. "su " também deveria funcionar. 3. Configurar o Servidor Como mencionado anteriormente, estas instruções configurarão o servidor para usar somente "ssh" para acesso de escrita ao repositório e para fornecer acesso anônimo usando "svnserve". Existem várias outras maneiras de fornecer acesso ao repositório. Essas configurações adicionais estão melhor explicadas em [5034]https://svnbook.red-bean.com/. A configuração de acesso precisa ser feita para cada repositório. Crie o arquivo "svnserve.conf" para o repositório "svntest" usando os seguintes comandos: cp /srv/svn/repositories/svntest/conf/svnserve.conf \ /srv/svn/repositories/svntest/conf/svnserve.conf.default && cat > /srv/svn/repositories/svntest/conf/svnserve.conf << "EOF" [general] anon-access = read auth-access = write EOF Não há muito no arquivo de configuração. Você notará que somente a seção geral é exigida. Dê uma olhada no arquivo "svnserve.conf.default" para informações relativas a usar o método de autenticação integrado do "svnserve". 4. Iniciar o Servidor Para iniciar o servidor durante a inicialização, instale o "script" de inicialização "svn" incluído no pacote "[5035]blfs-bootscripts-20250225": make install-svn SWIG-4.3.0 Introdução ao SWIG SWIG (Simplified Wrapper and Interface Generator) é um compilador que integra C e C++ com linguagens incluindo Perl, Python, Tcl, Ruby, PHP, Java, JavaScript, C#, D, Go, Lua, Octave, R, Racket, Scilab, Scheme e Ocaml. SWIG também consegue exportar a árvore de análise dele para s-expressions da Lisp e XML. "SWIG" lê arquivos anotados de cabeçalho "C/C++" e cria código envólucro (código de cola) para a finalidade de tornar disponíveis as bibliotecas "C/C++" correspondentes para as linguagens listadas ou para estender aplicativos "C/C++" com uma linguagem de "script". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [5036]https://downloads.sourceforge.net/swig/swig-4.3.0.tar.gz * Transferência (FTP): * Soma de verificação MD5 da transferência: 6a0555a2063c78447c5912136f013c43 * Tamanho da transferência: 8,2 MB * Espaço em disco estimado exigido: 90 MB (2,2 GB com testes) * Tempo de construção estimado: 0,1 UPC (adicionar 8,4 UPC para testes; ambos usando paralelismo=4) Dependências do "SWIG" Exigidas [5037]pcre2-10.45 Opcionais "[5038]Boost-1.87.0" para testes e quaisquer das linguagens mencionadas na introdução, como dependências de tempo de execução Instalação do SWIG Instale "SWIG" executando os seguintes comandos: ./configure --prefix=/usr \ --without-javascript \ --without-maximum-compile-warnings && make Para testar os resultados, emita: make TCL_INCLUDE=-k check. A desconfiguração da variável TCL_INCLUDE é necessária pois ela não é configurada corretamente pelo configure. Os testes são executados somente para as linguagens instaladas em tua máquina, de forma que o espaço em disco e os valores de UPC fornecidos para os testes possivelmente variem e deveriam ser considerados como meras ordens de grandeza. De acordo com a documentação do SWIG, a falha em alguns testes não deveria ser considerada prejudicial. Os testes go são defeituosos e possivelmente gerem um monte de saída sem significado. Agora, como o(a) usuário(a) "root": make install && cp -v -R Doc -T /usr/share/doc/swig-4.3.0 Explicações do Comando --without-maximum-compile-warnings: desabilita o compelimento de conformidade "ANSI" do compilador, o que deflagra erros nos cabeçalhos "Lua" (começando com "Lua" 5.3). --without-: permite desabilitar a construção de testes e exemplos para , mas todas as capacidades de linguagens do SWIG são sempre construídas. Essa chave é usada para JavaScript porque a implementação SWIG está incompleta e muitos testes falham devido a mudanças de API no Node-20. Conteúdo Aplicativos Instalados: swig e ccache-swig Biblioteca Instalada: Nenhum(a) Diretórios Instalados: /usr/share/doc/swig-4.3.0 e /usr/share/swig Descrições Curtas swig pega um arquivo de interface contendo declarações "C"/"C++" e instruções especiais "SWIG" e gera o código envólucro correspondente necessário para construir módulos de extensão ccache-swig é um cache do compilador, que acelera a recompilação de código "C"/"C++"/"SWIG" Tk-8.6.16 Introdução ao Tk O pacote "Tk" contém um kit de ferramentas "GUI" "TCL". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [5039]https://downloads.sourceforge.net/tcl/tk8.6.16-src.tar.gz * Transferência (FTP): * Soma de verificação MD5 da transferência: a7aad6cf52aa4687506a377a9a885a83 * Tamanho da transferência: 4,4 MB * Espaço em disco estimado exigido: 25 MB * Tempo de construção estimado: 0,2 UPC (adicionar 5,6 UPC para testes) Dependências do "Tk" Exigidas [5040]Bibliotecas do Xorg Instalação do Tk Instale "Tk" executando os seguintes comandos: cd unix && ./configure --prefix=/usr \ --mandir=/usr/share/man \ $([ $(uname -m) = x86_64 ] && echo --enable-64bit) && make && sed -e "s@^\(TK_SRC_DIR='\).*@\1/usr/include'@" \ -e "/TK_B/s@='\(-L\)\?.*unix@='\1/usr/lib@" \ -i tkConfig.sh Executar os testes não é recomendado. Falhas serão informadas durante os testes, dependendo da resolução/capacidades da tela, fontes instaladas e outros parâmetros relacionados ao "X", mas o informe final pode mostrar zero (0) falhas. Alguns testes roubarão o foco e alguns poderão travar seu servidor "X". Para testar os resultados de qualquer maneira, emita: "make test". Certifique-se de executá-lo a partir de um dispositivo de exibição do "X Window" com as extensões "GLX" carregadas, mas mesmo assim, os testes podem travar. Agora, como o(a) usuário(a) "root": make install && make install-private-headers && ln -v -sf wish8.6 /usr/bin/wish && chmod -v 755 /usr/lib/libtk8.6.so Explicações do Comando --enable-64bit: Essa chave é usada para habilitar o suporte de 64 bits no Tk em sistemas operacionais de 64 bits. make install-private-headers: Esse comando é usado para instalar os cabeçalhos de interface da biblioteca "Tk" usados por outros pacotes se eles se vincularem à biblioteca "Tk". ln -v -sf wish8.6 /usr/bin/wish: Esse comando é usado para criar um link simbólico de compatibilidade para o arquivo "wish8.6" já que muitos pacotes esperam um arquivo chamado "wish". sed -e ... tkConfig.sh: O pacote "Tk" espera que a árvore fonte dele seja preservada, de forma que os pacotes que dependem dele para compilação possam utilizá-la. Esse "sed" remove as referências ao diretório de construção e as substitui por locais mais saudáveis abrangentes a todo o sistema. Conteúdo Aplicativos Instalados: wish e wish8.6 Bibliotecas Instaladas: libtk8.6.so e libtkstub8.6.a Diretório Instalado: /usr/lib/tk8.6 Descrições Curtas wish é um link simbólico para o aplicativo "wish8.6" wish8.6 é um "shell" simples contendo o kit de ferramentas "Tk" que cria uma janela principal e então processa comandos "Tcl" libtk8.6.so contém as funções da "API" exigidas pelo "Tk" unifdef-2.12 Introdução ao unifdef O pacote unifdef contém um utilitário que é útil para remover do código condicionais de pré processador. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [5041]https://dotat.at/prog/unifdef/unifdef-2.12.tar.gz * Transferência (FTP): * Soma de verificação MD5 da transferência: b225312c110cd2600ca7166bd0419751 * Tamanho da transferência: 88 KB * Espaço em disco estimado exigido: 1,9 MB * Tempo de construção estimado: menos que 0,1 UPC Instalação do unifdef Instale o unifdef executando os seguintes comandos: make Para testar os resultados, emita: make test. Agora, como o(a) usuário(a) root: make prefix=/usr install Conteúdo Aplicativos Instalados: unifdef e unifdefall Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: Nenhum(a) Descrições Curtas unifdef remove do código condicionais de pré processador unifdefall remove do código condicionais de pré processador ao longo de uma árvore inteira Vala-0.56.17 Introdução ao Vala "Vala" é uma nova linguagem de programação que visa a trazer recursos modernos de linguagem de programação para desenvolvedores(as) "GNOME" sem impor quaisquer requisitos adicionais de tempo de execução e sem usar uma "ABI" diferente em comparação com aplicativos e bibliotecas escritos em "C". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [5042]https://download.gnome.org/sources/vala/0.56/vala-0.56.17.tar .xz * Transferência (FTP): * Soma de verificação MD5 da transferência: 134075855867fdd9c51ca7555c4951bb * Tamanho da transferência: 3,8 MB * Espaço em disco estimado exigido: 160 MB (adicionar 19 MB para os testes) * Tempo de construção estimado: 0,5 UPC (adicionar 1,0 UPC para testes; ambos usando paralelismo=4) Dependências do Vala Exigidas [5043]GLib-2.82.5 (GObject Introspection exigido para os testes) Recomendadas [5044]Graphviz-12.2.1 (exigido para "valadoc") Opcionais [5045]dbus-1.16.0 (exigido para os testes), [5046]libxslt-1.1.42 (exigido para gerar a documentação), [5047]help2man, [5048]jing e [5049]weasyprint Instalação do Vala Instale Vala executando os seguintes comandos: ./configure --prefix=/usr && make Para testar os resultados, emita: make check. Agora, como o(a) usuário(a) "root": make install Explicações do Comando bootstrap: Esse alvo do make força o sistema de construção a construir o pacote duas vezes e usar o executável vala produzido na primeira construção para regenerar os arquivos .c a partir dos arquivos .vala, se necessário. Se um executável vala ainda não estiver instalado e você tiver modificado quaisquer arquivos .vala na árvore do fonte, execute make bootstrap em vez de make. --disable-valadoc: Essa opção é exigida se "[5050]Graphviz-12.2.1" não estiver instalado. Conteúdo Aplicativos Instalados: vala, vala-0.56, valac, valadoc, vala-gen-introspect e vapigen (links simbólicos); valac-0.56, valadoc-0.56, vala-gen-introspect-0.56 e vapigen-0.56 Biblioteca Instalada: libvala-0.56.so e libvaladoc-0.56.so Diretórios Instalados: /usr/include/vala-0.56, /usr/include/valadoc-0.56, /usr/lib/vala-0.56, /usr/lib/valadoc-0.56, /usr/share/vala, /usr/share/vala-0.56, /usr/share/valadoc-0.56 e /usr/share/devhelp/books/vala-0.56 Descrições Curtas valac é um compilador que traduz o código-fonte "Vala" em arquivos fonte e de cabeçalho "C" valadoc é um gerador de documentação para gerar documentação de "API" a partir do código-fonte "Vala" baseado na "libvala" vala-gen-introspect gera um arquivo "GI" para pacotes baseados em "GObject" e "GLib" vapigen é um utilitário que gera arquivos "API" "Vala" ("VAPI") a partir de arquivos "GI" libvala-0.56.so contém as funções da "API" "Vala" Valgrind-3.24.0 Introdução ao Valgrind "Valgrind" é uma estrutura de instrumentação para construir ferramentas dinâmicas de análise. Existem ferramentas "Valgrind" que conseguem detectar automaticamente muitos defeitos de gerenciamento de memória e de camadas e perfilar aplicativos em detalhes. "Valgrind" também pode ser usado para construir novas ferramentas. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [5051]https://sourceware.org/pub/valgrind/valgrind-3.24.0.tar.bz2 * Transferência (FTP): * Soma de verificação MD5 da transferência: 7ae7ffc6b3cff48fe35076266c128226 * Tamanho da transferência: 16 MB * Espaço em disco estimado exigido: 396 MB (adicionar 85 MB para os testes) * Tempo de construção estimado: 0,4 UPC (adicionar 6,5 UPC para testes; ambos usando paralelismo=4) Dependências do "Valgrind" Opcionais [5052]docbook-xml-4.5 (para testes), [5053]GDB-16.2 (para testes), [5054]LLVM-19.1.7 (com Clang) e [5055]Which-2.23 (para testes) Instalação do Valgrind Instale "Valgrind" executando os seguintes comandos: sed -i 's|/doc/valgrind||' docs/Makefile.in && ./configure --prefix=/usr \ --datadir=/usr/share/doc/valgrind-3.24.0 && make Para testar os resultados, emita: "make regtest". Os testes possivelmente travem para sempre se "[5056]GDB-16.2" não estiver instalado. Alguns testes também são conhecidos por travarem, dependendo da versão da "glibc". Alguns testes podem falhar em várias suítes. Testes problemáticos podem ser desabilitados mudando-se a linha "prereq:" no arquivo ".vgtest" correspondente para "prereq: false". Por exemplo: sed -e 's@prereq:.*@prereq: false@' \ -i {helgrind,drd}/tests/pth_cond_destroy_busy.vgtest Nota Os testes "OpenMP" serão pulados se a "libgomp" tiver sido compilada com "--enable-linux-futex" (o padrão). Se necessário, apenas recompile a biblioteca "libgomp" originária da árvore de construção do "gcc", passando "--disable-linux-futex" para configurar, armazenando a biblioteca em algum lugar e mudando o link de "/usr/lib/libgomp.so.1" para apontar para a nova biblioteca. Agora, como o(a) usuário(a) "root": make install Explicações do Comando sed -i ... docs/Makefile.in : Esse "sed" fornece a instalação da documentação em um diretório versionado. --enable-lto=yes: Essa opção permite construir "Valgrind" com "Link Time Optimization" ("LTO"). Isso produz um "Valgrind" menor/mais rápido (até 10%), mas o tempo de construção aumenta para cerca de 5,5 UPC. Conteúdo Aplicativos Instalados: callgrind_annotate, callgrind_control, cg_annotate, cg_diff, cg_merge, ms_print, valgrind, valgrind-di-server, valgrind-listener e vgdb Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /usr/lib/valgrind, /usr/libexec/valgrind, /usr/include/valgrind e /usr/share/doc/valgrind-3.24.0 Descrições Curtas valgrind é um aplicativo para depuração e perfilamento de executáveis "Linux" callgrind_annotate pega um arquivo de saída produzido pela ferramenta "Callgrind" do "Valgrind" e imprime as informações em um formato de fácil leitura callgrind_control controla aplicativos sendo executados pela ferramenta "Callgrind" do "Valgrind" cg_annotate é uma ferramenta de pós-processamento para a ferramenta "Cachegrind" do "Valgrind" cg_diff compara dois arquivos de saída gerada do "Cachegrind" cg_merge mescla vários arquivos de saída gerada do "Cachegrind" em um ms_print pega um arquivo de saída produzido pela ferramenta "Massif" do "Valgrind" e imprime as informações em um formato de fácil leitura valgrind-di-server é um servidor que lê informações de depuração oriundas de objetos armazenados em uma máquina diferente valgrind-listener escuta em um soquete os comentários do "Valgrind" vgdb é um intermediário entre "Valgrind" e "GDB" ou um "shell" yasm-1.3.0 Introdução ao yasm "Yasm" é uma reescrita completa do montador "[5057]NASM-2.16.03". Ele suporta conjuntos de instruções "x86" e "AMD64", aceita sintaxes de montador "NASM" e "GAS" e gera formatos de objetos binário, "ELF32" e "ELF64". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [5058]https://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar .gz * Transferência (FTP): * Soma de verificação MD5 da transferência: fc9e586751ff789b34b1f21d572d96af * Tamanho da transferência: 1,5 MB * Espaço em disco estimado exigido: 27 MB (12 MB adicionais para os testes) * Tempo de construção estimado: 0,1 UPC (0,1 UPC adicionais para os testes) Dependências do yasm Opcionais [5059]cython-3.0.12 e [5060]Python2 Instalação do yasm Instale "yasm" executando os seguintes comandos: sed -i 's#) ytasm.*#)#' Makefile.in && ./configure --prefix=/usr && make Para testar os resultados, emita: make -j1 check. Agora, como o(a) usuário(a) "root": make install Explicações do Comando sed -i 's#) ytasm.*#)#' Makefile.in: Esse "sed" impede a compilação de dois aplicativos ("vsyasm" e "ytasm") que são de uso somente no "Microsoft Windows". Conteúdo Aplicativo Instalado: yasm Biblioteca Instalada: libyasm.a Diretório Instalado: /usr/include/libyasm Descrições Curtas yasm é um montador portável e redirecionável que suporta os conjuntos de instruções "x86" e "AMD64", aceita sintaxes de montador "NASM" e "GAS" e gera binários nos formatos de objeto "ELF32" e "ELF64" libyasm.a fornece todas as funcionalidades centrais do "yasm", para manipular instruções de máquina e construções de arquivos de objetos Java Java-23.0.2 Acerca do Java Java é diferente da maioria dos pacotes do LFS e BLFS. É uma linguagem de programação que trabalha com arquivos de códigos de byte para obter instruções e executá-las em uma "Java Virtual Machine" ("JVM"). Um aplicativo introdutório Java se parece com: public class HelloWorld { public static void main(String[] args) { System.out.println("Hello, World"); } } Esse aplicativo é salvo como "HelloWorld.java". O nome do arquivo, "HelloWorld", precisa corresponder ao nome da classe. Em seguida, ele é convertido em código de bytes com "javac HelloWorld.java". O arquivo de saída gerada é "HelloWorld.class". O aplicativo é executado com "java HelloWorld". Isso cria uma "JVM" e executa o código. A extensão 'class' precisa não ser especificada. Vários arquivos de classe podem ser combinados em um arquivo com o comando "jar". Isso é semelhante ao comando "tar" padrão. Por exemplo, o comando "jar cf myjar.jar *.class" combinará todos os arquivos de classe em um diretório em um arquivo" jar". Eles atuam como arquivos de biblioteca. A "JVM" consegue procurar e usar classes em arquivos "jar" automaticamente. Ela usa a variável de ambiente "CLASSPATH" para procurar arquivos "jar". Essa é uma lista padrão de nomes de diretórios separados por dois pontos, semelhante à variável de ambiente "PATH". Informações do Binário JDK Criar uma "JVM" a partir do fonte exige um conjunto de dependências circulares. A primeira coisa que é necessária é um conjunto de aplicativos chamado "Java Development Kit" ("JDK"). Esse conjunto de aplicativos inclui "java", "javac", "jar" e vários outros. Ele também inclui vários arquivos "jar" básicos. Para começar, configuramos uma instalação binária do "JDK" criada pelos(as) editores(as) do BLFS. Ela é instalada no diretório "/opt" para permitir múltiplas instalações, incluindo uma versão baseada no fonte. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informações do Pacote Binário * Transferência do binário (x86): [5061]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): [5062]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 Dependências de Tempo de Execução do Binário "Java" [5063]alsa-lib-1.2.13, [5064]Cups-2.4.11, [5065]giflib-5.2.2, [5066]Little CMS-2.17 e [5067]Bibliotecas do Xorg Instalação do JDK do Binário Java Comece extraindo o "tarball" binário apropriado para tua arquitetura e mudando para o diretório extraído. Instale o binário "OpenJDK" com os seguintes comandos como o(a) usuário(a) "root": install -vdm755 /opt/OpenJDK-23.0.2-bin && mv -v * /opt/OpenJDK-23.0.2-bin && chown -R root:root /opt/OpenJDK-23.0.2-bin A versão binária agora está instalada. Você pode criar um link simbólico para essa versão emitindo, como o(a) usuário(a) "root": ln -sfn OpenJDK-23.0.2-bin /opt/jdk Agora você pode prosseguir para "[5068]Configurando o ambiente Java", onde as instruções assumem que o link acima existe. OpenJDK-23.0.2 Introdução ao OpenJDK "OpenJDK" é uma implementação de código aberto da plataforma "Java Standard Edition" da "Oracle". "OpenJDK" é útil para desenvolver aplicativos "Java" e fornece um ambiente de tempo de execução completo para executar aplicativos "Java". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. "OpenJDK" é código "GPL", com uma exceção especial feita para projetos não-livres para usar essas classes nos produtos proprietários deles. De forma semelhante à "LGPL", que permite que aplicativos não-livres se vinculem a bibliotecas fornecidas por logiciário livre, a [5069]Licença Pública Geral GNU, versão 2, com a exceção Classpath permite que aplicativos de terceiros usem classes fornecidas por logiciário livre sem a exigência de que o logiciário de terceiros também seja livre. Tal como acontece com a "LGPL", quaisquer modificações feitas nas partes de logiciário livre de um aplicativo de terceiros também precisam ser disponibilizadas livremente. Nota O fonte do "OpenJDK" inclui uma suíte de teste de código aberto muito completa usando o equipamento de teste "JTreg". As instruções de teste abaixo permitem testar o "JDK" recém-construído para compatibilidade razoável com o "JDK" proprietário da "Oracle". No entanto, para a finalidade de que uma implementação independente alegue compatibilidade, ela precisa passar por uma suíte proprietária de teste "JCK/TCK". Nenhuma alegação de compatibilidade, ou mesmo compatibilidade parcial, pode ser feita sem passar por uma suíte de teste aprovada. A Oracle fornece acesso gratuito à comunidade, caso a caso, a um kit de ferramentas fechado para garantir 100% de compatibilidade com o JDK proprietário dela. Nem a versão binária fornecida na página [5070]Java-23.0.2 nem a JVM construída com as instruções abaixo foram testadas contra o [5071]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 [5072]aqui. Informação do Pacote * Transferência (HTTP): [5073]https://github.com/openjdk/jdk23u/archive/jdk-23.0.2-ga.tar.g z * Soma de verificação MD5 da transferência: 31ff1e9a086626610591efdff44cb7b3 * Tamanho da Transferência: 112 MB * Espaço em disco estimado exigido: 3,7 GB (adicionar 515 MB para os testes) * Tempo de construção estimado: 4,8 UPC com quatro (04) tarefas (adicionar 33 UPC para testes com quatro (04) tarefas) Transferências Adicionais Equipamento opcional de teste * [5074]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 Dependências do OpenJDK Dependências Exigidas Um binário existente ([5075]Java-23.0.2 ou uma versão construída anterior desse pacote. As instruções abaixo assumem que você está usando [5076]Configurando o ambiente Java), [5077]alsa-lib-1.2.13, [5078]cpio-2.15, [5079]Cups-2.4.11, [5080]libarchive-3.7.7, [5081]Which-2.23, [5082]Bibliotecas do Xorg e [5083]Zip-3.0 Recomendadas [5084]make-ca-1.15, [5085]giflib-5.2.2, [5086]harfBuzz-10.4.0, [5087]Little CMS-2.17, [5088]libjpeg-turbo-3.0.1, [5089]libpng-1.6.46 e [5090]Wget-1.25.0 Opcionais [5091]git-2.48.1, [5092]Graphviz-12.2.1, [5093]Mercurial-6.9.2, [5094]ccache, [5095]pandoc e [5096]pigz Instalação do OpenJDK Se você baixou o equipamento opcional de teste, desempacote-o agora: tar -xf ../jtreg-7.3.1+1.tar.gz Nota Antes de continuar, você deveria garantir que sua variável de ambiente PATH contenha o local do compilador Java usado para inicializar o OpenJDK. Essa é a única exigência para o ambiente. Instalações modernas Java não precisam de JAVA_HOME; e CLASSPATH não é usado aqui. Além disso, os(as) desenvolvedores(as) do OpenJDK recomendam desconfigurar JAVA_HOME e CLASSPATH. O sistema de construção não permite a chave "-j" em "MAKEFLAGS". Veja-se a explicação do comando para "--with-jobs=" para mais informações relativas a personalizar a paralelização. Configure e construa o pacote com os seguintes comandos: unset JAVA_HOME && unset CLASSPATH && unset MAKEFLAGS && bash configure --enable-unlimited-crypto \ --disable-warnings-as-errors \ --with-stdc++lib=dynamic \ --with-giflib=system \ --with-harfbuzz=system \ --with-jtreg=$PWD/jtreg \ --with-lcms=system \ --with-libjpeg=system \ --with-libpng=system \ --with-zlib=system \ --with-version-build="7" \ --with-version-pre="" \ --with-version-opt="" \ --with-jobs=$(nproc) \ --with-cacerts-file=/etc/pki/tls/java/cacerts && make images Para testar os resultados, você precisará executar o aplicativo "jtreg". Você consegue configurar o número de testes simultâneos adicionando o valor "-conc:" no comando abaixo (caso contrário, os testes executarão sequencialmente): export JT_JAVA=$(echo $PWD/build/*/jdk) && jtreg/bin/jtreg -jdk:$JT_JAVA -automatic -ignore:quiet -v1 \ test/jdk:tier1 test/langtools:tier1 && unset JT_JAVA Para mais controle sobre a suíte de teste, revise a documentação disponível em jtreg/doc/jtreg/usage.txt. Para revisar os resultados, vejam-se os arquivos JTreport/test_{jdk,langtools}/text/stats.txt e JTreport/test_{jdk,langtools}/text/summary.txt. Você deveria esperar ver cerca de oitenta (80) falhas e dez (10) erros. Instale o pacote com os seguintes comandos como o(a) usuário(a) "root": install -vdm755 /opt/jdk-23.0.2+7 && cp -Rv build/*/images/jdk/* /opt/jdk-23.0.2+7 && chown -R root:root /opt/jdk-23.0.2+7 && for s in 16 24 32 48; do install -vDm644 src/java.desktop/unix/classes/sun/awt/X11/java-icon${s}.png \ /usr/share/icons/hicolor/${s}x${s}/apps/java.png done Nota Se desejar instalar somente o "Java Runtime Environment", [então] você pode substituir "build/*/images/jre" no comando "cp" acima. Agora existem dois "SDKs" "OpenJDK" instalados em "/opt". Você deveria decidir qual deles gostaria de usar como padrão. Normalmente, você optaria pelo recém-instalado "OpenJDK". Nesse caso, faça o seguinte como o(a) usuário(a) "root": ln -v -nsf jdk-23.0.2+7 /opt/jdk Se desejado, você pode criar arquivos ".desktop" para adicionar entradas no menu para "java" e "jconsole". Os ícones necessários já foram instalados. Como o(a) usuário(a) "root": mkdir -pv /usr/share/applications && cat > /usr/share/applications/openjdk-java.desktop << "EOF" && [Desktop Entry] Name=OpenJDK Java 23.0.2 Tempo de Execução Comment=OpenJDK Java 23.0.2 Tempo de Execução Exec=/opt/jdk/bin/java -jar Terminal=false Type=Application Icon=java MimeType=application/x-java-archive;application/java-archive;application/x-jar; NoDisplay=true EOF cat > /usr/share/applications/openjdk-jconsole.desktop << "EOF" [Desktop Entry] Name=OpenJDK Java 23.0.2 Console Comment=OpenJDK Java 23.0.2 Console Keywords=java;console;monitoramento Exec=/opt/jdk/bin/jconsole Terminal=false Type=Application Icon=java Categories=Application;System; EOF Explicações do Comando bash configure...: o "configure" do nível superior é um envólucro em torno daquele do "autotools". Ele não é executável e precisa ser executado por intermédio do "bash". --enable-unlimited-crypto: Devido às limitações no uso de criptografia em alguns países, existe a possibilidade de limitar o tamanho das chaves de encriptação e o uso de alguns algoritmos em um arquivo de política. Essa chave permite enviar um arquivo de política sem restrições. É responsabilidade do(a) usuário(a) garantir a adequada aderência à legislação. --disable-warnings-as-errors: Essa chave desabilita o uso de "-Werror" na construção. --with-stdc++lib=dynamic: Essa chave força o sistema de construção a vincular-se a "libstdc++.so" (dinâmica) em vez de "libstdc++.a" (estática). --with-jobs=$(nproc): O -j passado para make não funciona com make como invocado aqui. Por padrão, o sistema de construção usará o número de CPUs – 1. --with-jtreg=$PWD/jtreg: Essa chave informa ao "configure" onde encontrar o "jtreg". Omita se você não baixou a suíte opcional de teste. --with-{giflib,harfbuzz,lcms,libjpeg,libpng,zlib}=system: Essas chaves forçam o sistema de construção a usar as bibliotecas do sistema em vez das versões incluídas. --with-version-build: Atualmente, o sistema de construção não inclui o número da construção na sequência de caracteres da versão. Ele tem que ser especificado aqui. --with-version-pre: Essa chave te permite prefixar a sequência de caracteres da versão com uma sequência personalizada de caracteres. --with-version-opt: Essa chave te permite adicionar uma descrição opcional da construção à sequência de caracteres de versão. --with-cacerts-file=/etc/pki/tls/java/cacerts: Especifica onde encontrar um arquivo "cacerts", "/etc/pki/tls/java/" em um sistema BLFS. Caso contrário, um vazio será criado. Você consegue usar o comando "/usr/sbin/make-ca --force" para gerá-lo, depois que tenha instalado os binários "Java". --with-boot-jdk: Essa chave fornece o local do "JDK" temporário. Ele normalmente não é necessário se "java" for encontrado no "PATH". Configurando o OpenJDK Informação de Configuração Normalmente, o ambiente Java é configurado depois de instalar-se a versão binária e também pode ser usado com o pacote recém-construído. Revise [5097]Configurando o ambiente Java caso você queira modificar alguma coisa. Para testar se as páginas de manual estão instaladas corretamente, emita "source /etc/profile" e "man java" para exibir a respectiva página de manual. Configurando o arquivo de Certificados de Autoridade Certificadora do JRE (cacerts) Se você executou as instruções na página "[5098]make-ca-1.15", [então] você só precisa criar um link simbólico no local padrão para o arquivo "cacerts". Como usuário(a) "root": ln -sfv /etc/pki/tls/java/cacerts /opt/jdk/lib/security/cacerts Para verificar a instalação, emita: cd /opt/jdk bin/keytool -list -cacerts No "prompt" "Enter keystore password:", digite "changeit" (o padrão) ou simplesmente pressione a tecla “Enter”. Se o arquivo "cacerts" foi instalado corretamente, [então] você verá uma lista dos certificados com informações relacionadas a cada um. Caso contrário, você precisa reinstalá-los. Conteúdo Aplicativos Instalados: jar, jarsigner, java, javac, javadoc, javap, jcmd, jconsole, jdb, jdeprscan, jdeps, jfr, jhsdb, jimage, jinfo, jlink, jmap, jmod, jpackage, jps, jrunscript, jshell, jstack, jstat, jstatd, jwebserver, keytool, rmiregistry e serialver Bibliotecas Instaladas: 37 bibliotecas em /opt/jdk-23.0.2+7/lib/ Diretório Instalado: /opt/jdk-23.0.2+7 Descrições Curtas jar combina múltiplos arquivos em um arquivamento "jar" jarsigner assina arquivos "jar" e verifica as assinaturas e a integridade de um arquivo "jar" assinado java inicia um aplicativo "Java" iniciando um ambiente em tempo de execução "Java", carregando uma classe especificada e invocando o método principal dela javac lê definições de classe e interface, escritas na linguagem de programação "Java", e as compila em arquivos de classe de código de bytes javadoc analisa as declarações e comentários da documentação em um conjunto de arquivos fonte "Java" e produz um conjunto correspondente de páginas "HTML" descrevendo as classes, interfaces, construtores, métodos e campos javap desmonta um arquivo de classe "Java" jcmd é um utilitário para enviar solicitações de comando de diagnóstico para uma "Java Virtual Machine" em execução jconsole é uma ferramenta gráfica de console para monitorar e gerenciar aplicativos "Java" e máquinas virtuais locais e remotas jdb é um depurador simples de linha de comando para classes "Java" jdeprscan escaneia arquivos de classe ou "jar" em busca de usos de elementos obsoletos de "API" jdeps mostra as dependências de nível de pacote ou de nível de classe de arquivos de classe "Java" jfr é uma ferramenta para trabalhar com arquivos “Flight Recorder” jhsdb é uma ferramenta para analisar o conteúdo de um despejo central originário de uma "Java Virtual Machine" ("JVM") quebrada jimage é usado para listar, extrair, verificar ou obter informações relativas a módulos no formato "jimage" jinfo imprime informações de configuração "Java" para um determinado processo "Java", arquivo central ou servidor remoto de depuração jlink é usado para montar e otimizar um conjunto de módulos e as dependências deles em uma imagem personalizada em tempo de execução jmap imprime mapas de memória de objetos compartilhados ou detalhes de memória "heap" de um determinado processo, arquivo central ou um servidor remoto de depuração jmod cria arquivos "JMOD" e lista o conteúdo dos arquivos existentes "JMOD" jpackage gera pacotes e imagens de aplicativos "Java" jps lista as "JVMs" instrumentadas no sistema alvo jrunscript é um "shell" de "script" de linha de comando jshell é uma ferramenta interativa para aprender a linguagem de programação "Java" e "prototipar" código "Java" jstack imprime rastreamentos de pilha "Java" de camadas "Java" para um determinado processo "Java", arquivo central ou um servidor remoto de depuração jstat exibe estatísticas de desempenho para uma "JVM" instrumentada jstatd é um aplicativo de servidor "RMI" que monitora a criação e o encerramento de "JVMs" instrumentadas jwebserver fornece um servidor mínimo "HTTP", projetado para ser usado para prototipagem, testagem e depuração keytool é um utilitário de gerenciamento de chaves e certificados rmiregistry cria e inicia um registro de objeto remoto na porta especificada no dispositivo atual serialver retorna o "serialVersionUID" para uma ou mais classes em um formato adequado para cópia em uma classe em evolução Configurando o ambiente Java Configurando o ambiente Depois que a instalação do pacote estiver completa, a próxima etapa é a de garantir que o sistema consiga encontrar os arquivos corretamente. Se você configurar teus "scripts" de login conforme recomendado em "[5099]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 "[5100]Sudo-1.9.16p2" estiver instalado, [então] o(a) superusuário(a) deveria ter acesso às variáveis acima. Execute os seguintes comandos como o(a) usuário(a) "root": cat > /etc/sudoers.d/java << "EOF" Defaults env_keep += JAVA_HOME Defaults env_keep += CLASSPATH Defaults env_keep += _JAVA_OPTIONS EOF Para usar "mandb" para incluir as páginas de manual do "OpenJDK" na base de dados dele, emita como o(a) usuário(a) "root": cat >> /etc/man_db.conf << "EOF" && # Inicia adição "Java" MANDATORY_MANPATH /opt/jdk/man MANPATH_MAP /opt/jdk/bin /opt/jdk/man MANDB_MAP /opt/jdk/man /var/cache/man/jdk # Termina Java addition EOF mkdir -p /var/cache/man && mandb -c /opt/jdk/man Configurando os Certificados de Autoridade Certificadora para Java O "OpenJDK" usa o próprio formato dele para os certificados de "AC". Os módulos de segurança do "Java" usam "$JAVA_HOME/lib/security/cacerts" por padrão. Para a finalidade de manter todos os certificados em um lugar, nós usamos "/etc/ssl/java/cacerts". As instruções na página "[5101]make-ca-1.15" criaram anteriormente o arquivo localizado em "/etc/ssl/java". Configure um link simbólico no local padrão como o(a) usuário(a) "root": ln -sfv /etc/pki/tls/java/cacerts /opt/jdk/lib/security/cacerts Use o seguinte comando para verificar se o arquivo "cacerts" foi instalado com sucesso: /opt/jdk/bin/keytool -list -cacerts No "prompt" "Enter keystore password:", digite "changeit" (o padrão) ou simplesmente pressione a tecla “Enter”. Se o arquivo "cacerts" foi instalado corretamente, [então] você verá uma lista dos certificados com informações relacionadas a cada um. Caso contrário, você precisa reinstalá-los. Se instalar posteriormente uma nova "JVM", [então] você apenas tem de criar o link simbólico no local padrão para estar apto(a) a usar o "cacerts". apache-ant-1.10.15 Introdução ao Apache Ant O pacote "Apache Ant" é uma ferramenta de construção baseada em "Java". Na teoria, é como o comando "make", mas sem as rugas do "make". "Ant" é diferente. Em vez de um modelo que é estendido com comandos baseados em "shell", "Ant" é estendido usando classes "Java". Em vez de escrever comandos de "shell", os arquivos de configuração são baseados em "XML", chamando uma árvore alvo que executa várias tarefas. Cada tarefa é executada por um objeto que implementa uma interface específica de tarefa. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [5102]https://archive.apache.org/dist/ant/source/apache-ant-1.10.15 -src.tar.xz * Transferência (FTP): * 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) Dependências do Apache Ant Exigidas Uma "JDK" ("[5103]Binário "Java"" ou "[5104]OpenJDK-23.0.2") e "[5105]GLib-2.82.5" Nota Uma conexão com a Internet é necessária para construir esse pacote. A loja de certificados do sistema possivelmente precise ser configurada com [5106]make-ca-1.15 antes de se construir esse pacote Instalação do Apache Ant Construa uma versão limitada de instruções de autoaprimoramento do "Apache Ant" usando o seguinte comando: ./bootstrap.sh Transfira as dependências de tempo de execução usando o "script" de construção "ant" "fetch.xml": bootstrap/bin/ant -f fetch.xml -Ddest=optional Construa o "Apache Ant" executando o seguinte comando: ./build.sh -Ddist.dir=$PWD/ant-1.10.15 dist Instale, como o(a) usuário(a) "root": cp -rv ant-1.10.15 /opt/ && chown -R root:root /opt/ant-1.10.15 && ln -sfv ant-1.10.15 /opt/ant Explicações do Comando bootstrap/bin/ant -f fetch.xml -Ddest=optional: Transfere as dependências ausentes para o diretório inicial do(a) usuário(a) e as copia para a árvore do fonte (no diretório lib/optional, onde o ant as coleta ao tempo da construção). ./build.sh -Ddist.dir=$PWD/ant-1.10.15 dist: Esse comando constrói, testa e, então, instala o pacote em um diretório temporário. Configurando o Apache Ant Arquivos de Configuração /etc/ant/ant.conf, ~/.ant/ant.conf e ~/.antrc Informação de Configuração Alguns pacotes exigirão que o "ant" esteja no caminho de pesquisa e que a variável de ambiente "ANT_HOME" esteja definida. Satisfaça essas exigências emitindo, como o(a) usuário(a) "root": cat > /etc/profile.d/ant.sh << EOF # Inicia /etc/profile.d/ant.sh pathappend /opt/ant/bin export ANT_HOME=/opt/ant # Termina /etc/profile.d/ant.sh EOF As instruções acima pressupõem que você configurou seu sistema conforme descrito em "[5107]Os Arquivos de Iniciação do Shell Bash". Conteúdo Aplicativos Instalados: ant, antRun, antRun.pl, complete-ant-cmd.pl, runant.pl e runant.py Bibliotecas Instaladas: Numerosos "ant*.jar" e bibliotecas dependentes em "$ANT_HOME/lib" Diretórios Instalados: /opt/ant-1.10.15 Descrições Curtas ant é uma ferramenta de construção baseada em "Java" usada por muitos pacotes em vez do aplicativo convencional "make" antRun é um "script" de suporte usado para iniciar "scripts" de construção do "ant" em um dado diretório antRun.pl é um "script" "Perl" que fornece funcionalidade semelhante oferecida pelo "script" "antRun" complete-ant-cmd.pl é um conjunto de comandos "Perl" que permite ao "Bash" completar uma linha de comando do "ant" runant.pl é um conjunto envólucro de comandos "Perl" usado para invocar o "ant" runant.py é um conjunto envólucro de comandos "Python" usado para invocar o "ant" ant*.jar arquivos são as bibliotecas de classes "Java" do "Apache Ant" Parte IV. Rede de Intercomunicação Capítulo 14. Conectando a uma Rede de Intercomunicação O livro LFS aborda a configuração de rede de intercomunicação conectando-se a uma "LAN" com um endereço "IP" estático. Existem outros métodos usados para obter um endereço "IP" e conectar-se a uma "LAN" e outras redes de intercomunicação (como a Internet). Os métodos mais populares ("DHCP" e "PPP") são abordados neste capítulo. "DHCP" significa "Dynamic Host Configuration Protocol". Ele é um protocolo usado por muitos sítios para fornecer automaticamente informações como endereços "IP", máscaras de sub-rede e informações de roteamento para computadores. Se a sua rede de intercomunicação usar "DHCP", [então] você precisará de um cliente "DHCP" para a finalidade de se conectar a ela. dhcpcd-10.2.2 Introdução ao dhcpcd "dhcpcd" é uma implementação do cliente "DHCP" especificado na "RFC2131". Um cliente "DHCP" é útil para conectar seu computador a uma rede de intercomunicação que usa "DHCP" para atribuir endereços de rede de intercomunicação. O "dhcpcd" se esforça para ser um cliente "DHCP" completo, mas muito leve. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [5108]https://github.com/NetworkConfiguration/dhcpcd/releases/downl oad/v10.2.2/dhcpcd-10.2.2.tar.xz * Transferência (FTP): * 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) Dependências do dhcpcd Opcionais [5109]LLVM-19.1.7 (com Clang), [5110]ntp-4.2.8p18, [5111]chronyd e [5112]ypbind Separação de privilégios Lançamentos recentes do "dhcpcd" suportam opcionalmente a separação de privilégios. Como os benefícios práticos de segurança disso não são claros para um aplicativo como o "dhcpcd" e a configuração é mais complicada, o livro atualmente usa como padrão desativá-lo. No entanto, se você quiser usar a separação de privilégios, [então] etapas adicionais de instalação são necessárias para configurar o ambiente adequado. Emita os seguintes comandos como o(a) usuário(a) "root": install -v -m700 -d /var/lib/dhcpcd && groupadd -g 52 dhcpcd && useradd -c 'Separação de privilégios do dhcpcd' \ -d /var/lib/dhcpcd \ -g dhcpcd \ -s /bin/false \ -u 52 dhcpcd && chown -v dhcpcd:dhcpcd /var/lib/dhcpcd Instalação do dhcpcd Construa o "dhcpcd" sem separação de privilégios executando o seguinte comando: ./configure --prefix=/usr \ --sysconfdir=/etc \ --libexecdir=/usr/lib/dhcpcd \ --dbdir=/var/lib/dhcpcd \ --runstatedir=/run \ --disable-privsep && make Alternativamente, construa o dhcpcd com separação de privilégios executando os seguintes comandos: ./configure --prefix=/usr \ --sysconfdir=/etc \ --libexecdir=/usr/lib/dhcpcd \ --dbdir=/var/lib/dhcpcd \ --runstatedir=/run \ --privsepuser=dhcpcd && make Para testar os resultados, emita: make test. Agora, como o(a) usuário(a) "root": make install Explicações do Comando --libexecdir=/usr/lib/dhcpcd: Essa chave configura um local melhor para bibliotecas internas do dhcpcd. --dbdir=/var/lib/dhcpcd: Essa chave ajusta o diretório da base de dados, pois o diretório padrão, /var/db, não é compatível com o FHS. --runstatedir=/run: Essa chave configura o diretório de estado de tempo de execução, pois o padrão /var/run é um link simbólico para /run e usar /var/run está obsoleto. --disable-privsep: Essa chave desabilita a separação de privilégios, que é o padrão no dhcpcd. Essa chave não é usada na configuração da construção onde a separação de privilégios é usada. --privsepuser=dhcpcd: Essa chave configura o(a) usuário(a) de separação de privilégios na configuração da construção onde o escalonamento de privilégios é usado. --with-hook=...: Opcionalmente, você pode instalar mais ganchos, por exemplo, para instalar alguns arquivos de configuração, como ntp.conf. Um conjunto de ganchos pode ser encontrado no diretório dhcpcd-hooks na árvore da construção. Configurando o dhcpcd Arquivos de Configuração /etc/dhcpcd.conf Informações Gerais de Configuração Para configurar o "dhcpcd", você precisa primeiro instalar o conjunto sequencial de comandos de serviço de rede de intercomunicação, "/usr/lib/services/dhcpcd" incluído no pacote "[5113]blfs-bootscripts-20250225" (como usuário "root"): make install-service-dhcpcd Nota O padrão para o dhcpcd é o de configurar o nome do dispositivo e o MTU. Ele também sobrescreve /etc/resolv.conf e /etc/ntp.conf. Essas modificações nos arquivos do sistema são feitas por ganchos que estão armazenados em /usr/lib/dhcpcd/dhcpcd-hooks. Você consegue mudar esse comportamento removendo ou adicionando ganchos de/para esse diretório. A execução de ganchos pode ser desabilitada usando-se a opção de linha de comando --nohook (-C) ou pela opção nohook no arquivo /etc/dhcpcd.conf. Finalmente, como o(a) usuário(a) "root", crie o arquivo de configuração "/etc/sysconfig/ifconfig.eth0" usando os seguintes comandos. Ajuste adequadamente para interfaces adicionais: cat > /etc/sysconfig/ifconfig.eth0 << "EOF" ONBOOT="yes" IFACE="eth0" SERVICE="dhcpcd" DHCP_START="-b -q -h $HOSTNAME " DHCP_STOP="-k " EOF Para mais informações relativas aos valores apropriados "DHCP_START" e "DHCP_STOP", examine a página de manual do "dhcpcd". Informações de Configuração: IP fixo Embora não usual, é possível que você precise configurar o "dhcpcd" para usar um "IP" fixo. Aqui, nós damos um exemplo. Como o(a) usuário(a) "root" crie o arquivo de configuração "/etc/sysconfig/ifconfig.eth0" usando os seguintes comandos. Ajuste adequadamente para interfaces adicionais e para o "IP" e roteador reais que você precisa: cat > /etc/sysconfig/ifconfig.eth0 << "EOF" ONBOOT="yes" IFACE="eth0" SERVICE="dhcpcd" DHCP_START="-b -q -S ip_address=192.168.0.10/24 -S routers=192.168.0.1" DHCP_STOP="-k" EOF Você consegue ou usar servidores "DNS" em "/etc/resolv.conf" oriundos de outro sistema, teus servidores preferidos, ou apenas o arquivo de exemplo "/etc/resolv.conf.head" abaixo, como está: cat > /etc/resolv.conf.head << "EOF" # Servidores abertos "DNS" nameserver 208.67.222.222 nameserver 208.67.220.220 EOF Conteúdo Aplicativo Instalado: dhcpcd Biblioteca Instalada: /usr/lib/dhcpcd/dev/udev.so Diretório Instalado: /{usr,var}/lib/dhcpcd e /usr/share/dhcpcd Descrições Curtas dhcpcd é uma implementação do cliente "DHCP" especificado na "RFC2131" udev.so adiciona suporte ao "Udev" para chegada e partida da interface; isso ocorre porque o "Udev" gosta de renomear a interface, o que não poderá ser feito se o "dhcpcd" a capturar primeiro Capítulo 15. Aplicativos de Rede de Intercomunicação Estes aplicativos geralmente são aplicativos clientes usados para acessar o servidor apropriado no prédio ou em todo o mundo. "Tcpwrappers" e "portmap" são aplicativos de suporte para processos de segundo plano que você possivelmente esteja executando em tua máquina. bridge-utils-1.7.1 Introdução ao bridge-utils O pacote "bridge-utils" contém um utilitário necessário para criar e gerenciar dispositivos de ponte. Isso é útil na configuração de redes de intercomunicação para uma máquina virtual ("MV") hospedada. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [5114]https://www.kernel.org/pub/linux/utils/net/bridge-utils/bridg e-utils-1.7.1.tar.xz * Transferência (FTP): * 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 Dependências do "bridge-utils" Opcionais (para executar testes) [5115]Net-tools-2.10 Configuração do Núcleo Habilite as seguintes opções na configuração do núcleo e recompile o núcleo se necessário: [*] Networking support ---> [NET] Networking options ---> <*/M> 802.1d Ethernet Bridging [BRIDGE] Instalação do bridge-utils Instale "bridge-utils" executando os seguintes comandos: autoconf && ./configure --prefix=/usr && make Testar os resultados exige executar-se os seis conjuntos sequenciais de comandos de "shell" no diretório "tools/". Dois dos testes exigem duas portas "Ethernet". Alguns testes não preservarão a configuração atual da rede de intercomunicação. Veja-se "tests/README" para detalhes. Agora, como o(a) usuário(a) "root": make install Configurando o bridge-utils Informação de Configuração Para automatizar a criação e configuração da ponte, instale o conjunto sequencial de comandos de serviço "/usr/lib/services/bridge" incluído no pacote "[5116]blfs-bootscripts-20250225". make install-service-bridge Nota O conjunto sequencial de comandos "bridge" depende dos comandos "/sbin/ifup" e "/sbin/ifdown" e do conjunto sequencial de comandos de serviço "ipv4-static" originário dos conjuntos sequenciais de comandos de inicialização do LFS datados de 27 de janeiro de 2012 ou posteriores. O seguinte arquivo de configuração criará um dispositivo de ponte ao tempo da inicialização e anexará o dispositivo "eth0" a ele. Se mais que um dispositivo for desejado, [então] use uma lista separada por espaços de "INTERFACE_COMPONENTS". Essa configuração é útil ao planejar executar uma máquina virtual como "kvm"/"qemu". Outras combinações de "SERVICE" são possíveis, por exemplo, "SERVICE="bridge dhcp"". Nesse caso, os parâmetros de endereço não são necessários, mas não interferem se estiverem presentes. O serviço de ponte também pode ser usado sozinho, mas exigirá configuração adicional subsequente. Cuidado Não execute uma configuração paralela para um dispositivo na lista "INTERFACE_COMPONENTS". Por exemplo, no exemplo abaixo, não configure "/etc/sysconfig/ifconfig.eth0" para executar ao tempo da inicialização. O comando "ifdown br0" seguido pelo comando "ifup eth0" funcionará, mas não tente ativar os dois ao mesmo tempo. cat > /etc/sysconfig/ifconfig.br0 << "EOF" ONBOOT=yes IFACE=br0 VIRTINT=yes SERVICE="ponte IPv4 estático" # Separados por espaço IP=192.168.1.32 GATEWAY=192.168.1.1 PREFIX=24 BROADCAST=192.168.1.255 CHECK_LINK=no # Não verificar antes que a ponte esteja criada STP=no # "Spanning Tree Protocol", padrão não INTERFACE_COMPONENTS="eth0" # Adicionar a "IFACE", dispositivos separados por espaços IP_FORWARD=true EOF Todos os endereços deveriam ser mudados para atender às suas circunstâncias. Conteúdo Aplicativo Instalado: brctl Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: Nenhum(a) Descrições Curtas brctl é um aplicativo usado para configurar, manter e inspecionar a configuração da ponte "Ethernet" no núcleo Linux cifs-utils-7.2 Introdução ao cifs-utils O pacote "cifs-utils" fornece um meio para montar compartilhamentos "SMB"/"CIFS" em um sistema Linux. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [5117]https://www.samba.org/ftp/linux-cifs/cifs-utils/cifs-utils-7. 2.tar.bz2 * Transferência (FTP): * 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 Dependências do "cifs-utils" Exigidas [5118]Talloc-2.4.3 Recomendadas [5119]MIT Kerberos V5-1.21.3 Opcionais [5120]docutils-0.21.2 (para criar as páginas de manual), [5121]keyutils-1.6.3 (exigido para construir o módulo "PAM"), [5122]Linux-PAM-1.7.0, [5123]Samba-4.21.4 e [5124]libcap-2.73 com PAM ou [5125]libcap-ng Configuração do Núcleo Habilite as seguintes opções na configuração do núcleo e recompile o núcleo se necessário: File systems ---> [*] Network File Systems ---> [NETWORK_FILESYSTEMS] <*/M> SMB3 and CIFS support (advanced network filesystem) [CIFS] Dependendo da configuração do teu servidor, opções adicionais do núcleo possivelmente sejam exigidas. Instalação do cifs-utils Instale cifs-utils executando os seguintes comandos: ./configure --prefix=/usr \ --disable-pam \ --disable-systemd && make Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) "root": make install Explicações do Comando --disable-pam: Não construa suporte "PAM". Remova-a e use "--with-pamdir" (veja-se abaixo), se "[5126]Linux-PAM-1.7.0" estiver instalado e você desejar suporte "PAM". --disable-systemd: Desabilite o comportamento específico do "systemd" para "mount.cifs". --with-pamdir=/usr/lib/security: Instale o módulo "PAM" em "/usr/lib/security". Conteúdo Aplicativos Instalados: cifs.idmap, cifs.upcall, cifscreds, getcifsacl, mount.cifs, mount.smb3, setcifsacl, smb2-quota e smbinfo Biblioteca Instalada: /usr/lib/cifs-utils/idmapwb.so e, opcionalmente, o módulo "PAM" /usr/lib/security/pam_cifscreds.so Diretório Instalado: /usr/lib/cifs-utils Descrições Curtas cifs.idmap é um aplicativo auxiliar do espaço de usuário(a) para o sistema de arquivos do cliente "CIFS" Linux. Existe uma série de atividades que o núcleo não consegue realizar facilmente ele próprio. Esse aplicativo é um aplicativo "callout" que faz essas coisas para o núcleo e depois retorna o resultado. Não se destina a ser executado a partir da linha de comando cifs.upcall é um aplicativo auxiliar do espaço de usuário(a) para o sistema de arquivos do cliente "CIFS" Linux. Ele se destina a ser executado quando o núcleo chamar "request-key" para um tipo de chave específico. Não se destina a ser executado a partir da linha de comando cifscreds é uma ferramenta para gerenciamento de credenciais (nome de usuário(a) e senha) com a finalidade de estabelecer sessões em montagens multiusuário(a) getcifsacl é um auxiliar do espaço de usuário(a) para exibir uma "ACL" em um descritor de segurança para "Common Internet File System" ("CIFS") mount.cifs monta um sistema de arquivos CIFS do Linux. Geralmente é invocado indiretamente pelo comando [5127]mount(8) ao usar a opção -t cifs mount.smb3 monta um sistema de arquivos baseado em SMB3. Geralmente é invocado indiretamente pelo comando [5128]mount(8) ao usar a opção -t smb3 setcifsacl destina-se a alterar uma "ACL" de um descritor de segurança para um objeto do sistema de arquivos smb3-quota exibe informações de cota para um sistema de arquivos "SMB" smbinfo exibe informações de arquivos específicas de "SMB", como descritores de segurança e cotas NcFTP-3.2.7 Introdução ao NcFTP O pacote "NcFTP" contém uma interface poderosa e flexível para o protocolo de transferência de arquivos padrão da Internet. Destina-se a substituir ou complementar o aplicativo "ftp" padrão. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [5129]https://www.ncftp.com/downloads/ncftp/ncftp-3.2.7-src.tar.xz * Transferência (FTP): * 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 Instalação do NcFTP Existem duas maneiras de construir o "NcFTP". A primeira (e ideal) maneira constrói a maior parte da funcionalidade como uma biblioteca compartilhada e depois constrói e instala o programa vinculado a essa biblioteca. O segundo método simplesmente vincula todas as funcionalidades ao binário estaticamente. Isso não disponibiliza a biblioteca dinâmica para vinculação por outros aplicativos. Você precisa escolher o método que melhor se adapta a você. Observe que o segundo método não cria um binário totalmente vinculado estaticamente; apenas as partes da "libncftp" estão vinculadas estaticamente, nesse caso. Esteja ciente de que a construção e uso da biblioteca compartilhada são cobertas pela Licença Artística Esclarecida; entretanto, o desenvolvimento de aplicativos que utilizam a biblioteca compartilhada está sujeito a uma licença diferente. Primeiro, corrija um problema com o conjunto de comandos sequenciais de configuração introduzido pelo gcc-14: sed -i 's/def HAVE_STDLIB_H/ 1/;s/extern select/extern int select/' configure Para instalar o "NcFTP" usando o primeiro (e ideal) método, execute os seguintes comandos: CC=/usr/bin/gcc \ ./configure --prefix=/usr --sysconfdir=/etc && make -C libncftp shared && make Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) "root": make -C libncftp soinstall && make install Para instalar o "NcFTP" usando o segundo método (com a funcionalidade da "libncftp" vinculada estaticamente) execute os seguintes comandos: ./configure --prefix=/usr --sysconfdir=/etc && make Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) "root": make install Explicações do Comando CC=/usr/bin/gcc. Essa variável de ambiente garante que gcc seja usado se [5130]LLVM-19.1.7 estiver instalado. O procedimento de construção é quebrado se gcc não for usado. make -C ... && make -C ...: Esses comandos criam e instalam a biblioteca dinâmica "libncftp" que é então usada para vincular ao compilar o programa principal. Conteúdo Aplicativos Instalados: ncftp, ncftpbatch, ncftpbookmarks, ncftpget, ncftpls, ncftpput e ncftpspooler Biblioteca Instalada: libncftp.so Diretórios Instalados: Nenhum(a) Descrições Curtas ncftp é um aplicativo de navegador para "File Transfer Protocol" ncftpbatch é um processador de tarefa "FTP" em lote individual ncftpbookmarks é o editor de marcadores do "NcFTP" (baseado em "NCurses") ncftpget é um aplicativo de transferência de arquivos da Internet para conjuntos de comandos sequenciais usados para recuperar arquivos ncftpls é um aplicativo de transferência de arquivos da Internet para conjuntos de comandos sequenciais usados para listar arquivos ncftpput é um aplicativo de transferência de arquivos da Internet para conjuntos de comandos sequenciais usados para transferir arquivos ncftpspooler é um processo de segundo plano global de processador de tarefas "FTP" em lote Net-tools-2.10 Introdução ao Net-tools O pacote "Net-tools" é uma coleção de aplicativos para controlar o subsistema de rede de intercomunicação do núcleo Linux. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [5131]https://downloads.sourceforge.net/project/net-tools/net-tools -2.10.tar.xz * Transferência (FTP): * 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 Instalação do Net-tools As instruções abaixo automatizam o processo de configuração canalizando "yes" para o comando "make". Se você deseja executar o processo interativo de configuração (mudando a instrução para apenas "make"), mas não tem certeza de como responder a todas as perguntas, então basta aceitar os padrões. Isso funcionará perfeitamente na maioria dos casos. O que você é inquirido(a) aqui é um monte de perguntas relativas a quais protocolos de rede de intercomunicação você habilitou em teu núcleo. As respostas padrão habilitarão as ferramentas originárias desse pacote para funcionem com os protocolos mais comuns: "TCP", "PPP" e vários outros. Você ainda precisa habilitar esses protocolos no núcleo—o que você faz aqui é meramente dizer ao pacote para incluir suporte para esses protocolos nos aplicativos dele, mas cabe ao núcleo disponibilizar os protocolos. Nota Esse pacote tem vários protocolos desnecessários e funções específicas de dispositivos de hardware que estão obsoletas. Para construir somente o mínimo necessário para o teu sistema, ignore o comando "yes" e responda a cada pergunta interativamente. As opções mínimas necessárias são "UNIX protocol family" e "INET (TCP/IP) protocol family". Para esse pacote, nós usamos o método "DESTDIR" de instalação para a finalidade de remover facilmente arquivos da construção que sobrescrevem aqueles que queremos manter ou que não são apropriados para nosso sistema. Instale o "Net-tools" executando os seguintes comandos: export BINDIR='/usr/bin' SBINDIR='/usr/bin' && yes "" | make -j1 && make DESTDIR=$PWD/install -j1 install && rm install/usr/bin/{nis,yp}domainname && rm install/usr/bin/{hostname,dnsdomainname,domainname,ifconfig} && rm -r install/usr/share/man/man1 && rm install/usr/share/man/man8/ifconfig.8 && unset BINDIR SBINDIR Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) "root": chown -R root:root install && cp -a install/* / Explicações do Comando export BINDIR='/usr/bin' SBINDIR='/usr/bin': Certifique-se de que os executáveis estejam instalados no local correto. yes "" | make : Canalizar "yes" para "make config" ignora a configuração interativa e aceita os padrões. rm ...: Remova aplicativos e páginas de manual desnecessários. Conteúdo Aplicativos Instalados: arp, ipmaddr, iptunnel, mii-tool, nameif, netstat, plipconfig, rarp, route e slattach Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: Nenhum(a) Descrições Curtas arp é usado para manipular o "cache" "ARP" do núcleo, geralmente para adicionar ou deletar uma entrada, ou para despejar todo o "cache" ipmaddr adiciona, deleta e mostra os endereços "multicast" de uma interface iptunnel adiciona, muda, deleta e mostra os túneis de uma interface mii-tool verifica ou configura o situação de uma unidade "Media Independent Interface" ("MII") de uma interface de rede de intercomunicação nameif nomeia interfaces de rede baseado em endereços "MAC" netstat é usado para informar conexões de rede, tabelas de roteamento e estatísticas de interface plipconfig é usado para ajustar os parâmetros do dispositivo "PLIP", para melhorar o desempenho dele rarp é usado para manipular a tabela "RARP" do núcleo route é usado para manipular a tabela de roteamento "IP" slattach anexa uma interface de rede de intercomunicação a uma linha serial. Isso permite que você use linhas normais de terminal para links ponto a ponto para outros computadores NFS-Utils-2.8.2 Introdução aos Utilitários do NFS O pacote "NFS Utilities" contém as ferramentas de espaço do usuário(a) servidor e cliente necessárias para usar as capacidades "NFS" do núcleo. "NFS" é um protocolo que permite compartilhar sistemas de arquivos por intermédio da rede de intercomunicação. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [5132]https://www.kernel.org/pub/linux/utils/nfs-utils/2.8.2/nfs-ut ils-2.8.2.tar.xz * Transferência (FTP): * 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) Dependências dos Utilitários do NFS Exigidas [5133]libevent-2.1.12, [5134]libnl-3.11.0, [5135]libtirpc-1.3.6, [5136]libxml2-2.13.6, [5137]rpcsvc-proto-1.4.4 e [5138]SQLite-3.49.1 Opcionais [5139]Cyrus SASL-2.1.28 (para autenticação SASL), [5140]libnsl-2.0.1 (para suporte ao cliente NIS), [5141]LVM2-2.03.30 (libdevmapper para suporte a NFSv4), [5142]OpenLDAP-2.6.9 (para autenticação LDAP), [5143]MIT Kerberos V5-1.21.3 ou [5144]libgssapi e [5145]librpcsecgss (para suporte de segurança GSS e RPC), e [5146]libcap-2.73 com PAM Exigidas (tempo de execução) [5147]rpcbind-1.2.7 Configuração do Núcleo Habilite as seguintes opções na configuração do núcleo (escolha o suporte ao cliente e(ou) servidor conforme apropriado) e recompile o núcleo se necessário: File systems ---> [*] Network File Systems ---> [NETWORK_FILESYSTEMS] <*/M> NFS client support [NFS_FS] <*/M> NFS server support [NFSD] Selecione as sub opções apropriadas que aparecem quando as opções acima são selecionadas. Nota No BLFS nós assumimos que o "NFS" v3 será usado. Se o servidor oferecer "NFS" v4 (para o Linux, "CONFIG_NFSD_V4") então a negociação automática para v3 falhará e você precisará adicionar "nfsver=3" às opções de montagem. Isso também se aplica se essa opção estiver habilitada no núcleo do cliente, por exemplo, em uma distribuição tentando montar a partir de um servidor BLFS v3. Mesmo que nenhuma extremidade da conexão suporte "NFS" v4, adicionar "nfsver=3" ainda é benéfico porque evita que uma mensagem de erro "NFS: bad mount option value specified: minorversion=1" seja registrada em cada montagem. Instalação dos Utilitários do NFS Instale o Utilitários do NFS executando os seguintes comandos: ./configure --prefix=/usr \ --sysconfdir=/etc \ --sbindir=/usr/sbin \ --disable-nfsv4 \ --disable-gss \ LIBS="-lsqlite3 -levent_core" && make Agora, como o(a) usuário(a) root: make install && chmod u+w,go+r /usr/sbin/mount.nfs && chown nobody:nogroup /var/lib/nfs Os testes para esse pacote exigem que o pacote esteja instalado. Além disso, o processo de segundo plano rpc.statd precisa não estar executando e os testes precisam ser executados como o(a) usuário(a) root. Para testar os resultados, emita, como root: make check Explicações do Comando --disable-gss: Desabilita o suporte para "GSS" do "RPCSEC" (Segurança "RPC"). LIBS="-lsqlite3 -levent_core": é exigido para o aplicativo fsidd. chown nobody:nogroup /var/lib/nfs: O aplicativo rpc.statd usa a titularidade de propriedade desse diretório para configurar o UID e GID dele. Esse comando os configura como entradas sem privilégios. Configurando os Utilitários do NFS Configuração do Servidor "/etc/exports" contém os diretórios exportados em servidores "NFS". Consulte a página de manual "exports.5" para a sintaxe desse arquivo. Consulte também o "NFS HowTo" disponível em [5148]https://nfs.sourceforge.net/nfs-howto/ para informações relativas a como configurar os servidores e clientes de maneira segura. Por exemplo, para compartilhar o diretório "/home" por intermédio da rede local de intercomunicação, a seguinte linha pode ser adicionada: cat >> /etc/exports << EOF /home 192.168.0.0/24(rw,subtree_check,anonuid=99,anongid=99) EOF Nota Certifique-se de substituir o diretório, endereço de rede de intercomunicação. e prefixo acima para corresponder à tua rede de intercomunicação. O único espaço na linha acima deveria ficar entre o diretório e o endereço de rede de intercomunicação. Conjunto de Comandos Sequenciais de Inicialização Instale o conjunto de comandos sequenciais de iniciação /etc/rc.d/init.d/nfs-server incluso no pacote [5149]blfs-bootscripts-20250225 para iniciar o servidor na inicialização. make install-nfs-server Agora crie o arquivo de configuração "/etc/sysconfig/nfs-server": cat > /etc/sysconfig/nfs-server << "EOF" PORT="2049" PROCESSES="8" KILLDELAY="10" EOF Nota Os parâmetros acima podem ser opcionalmente colocados no "/etc/sysconfig/rc.site". Configuração do Cliente "/etc/fstab" contém os diretórios que são para serem montados no cliente. Alternativamente, as partições conseguem ser montadas usando o comando "mount" com as opções apropriadas. Para montar as partições "/home" e "/usr", adicione o seguinte ao "/etc/fstab": :/home /home nfs rw,_netdev 0 0 :/usr /usr nfs ro,_netdev 0 0 As opções que podem ser usadas estão especificadas em "man 5 nfs ". Se tanto o cliente quanto o servidor estiverem executando versões recentes do Linux, [então] a maioria das opções serão negociadas (mas veja a Observação acima a respeito de "nfsver=3"). Você consegue especificar ou "rw" ou "ro", "_netdev" se o sistema de arquivos é para ser montado automaticamente na inicialização, ou "noauto" (e talvez "user") para outros sistemas de arquivos. Se o servidor de arquivos não estiver executando uma versão recente do Linux, [então] você possivelmente precise especificar outras opções. Conjunto de Comandos Sequenciais de Inicialização Nota O seguinte conjunto de comandos sequenciais de inicialização não é exigido se o conjunto de comandos sequenciais nfs-server estiverinstalado. Instale o conjunto de comandos sequenciais de iniciação "/etc/rc.d/init.d/nfs-client" incluso no pacote "[5150]blfs-bootscripts-20250225" "" para iniciar os serviços do cliente na inicialização. make install-nfs-client Para montar automaticamente sistemas de arquivos "nfs ", os clientes também precisarão instalar o conjunto de comandos sequenciais de inicialização "netfs" conforme descrito em "[5151]Configurando para Sistemas de Arquivos de Rede de Intercomunicação". Conteúdo Aplicativos Instalados: exportfs, fsidd, mountstats, mount.nfs, mount.nfs4 (link para mount.nfs), nfsconf, nfsdclnts, nfsiostat, nfsstat, rpc.mountd, rpc.nfsd, rpc.statd, rpcdebug, showmount, sm-notify, start-statd, umount.nfs (link para mount.nfs) e umount.nfs4 (link para mount.nfs) Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /var/lib/nfs Descrições Curtas exportfs mantém uma lista de sistemas de arquivos "NFS" exportados fsidd oferece uma interface de soquete de domínio UNIX local para todo o espaço de usuário(a) do NFS para consultar a base de dados de reexportação mountstats exibe estatísticas "NFS" por montagem do cliente mount.nfs é usado para montar um compartilhamento de rede de intercomunicação usando "NFS" mount.nfs4 é usado para montar um compartilhamento de rede de intercomunicação usando "NFSv4" nfsconf pode ser usado para testar e recuperar definições de configuração a partir de uma variedade de arquivos de configuração "nfs-utils" nfsdclnts imprime informações relativas a clientes "NFS" nfsiostat informa estatísticas de entrada/saída para sistemas de arquivos de rede de intercomunicação nfsstat exibe estatísticas mantidas a respeito da atividade "NFS" do cliente e do servidor rpc.mountd implementa o protocolo de montagem "NFS" em um servidor "NFS" rpc.nfsd implementa a parte de nível de usuário(a) do serviço "NFS" no servidor rpc.statd é usado pelo serviço de bloqueio de arquivos "NFS". Execute em ambos os lados, cliente e servidor, quando desejar o bloqueio de arquivos habilitado rpcdebug configura ou limpa os sinalizadores de depuração do "NFS" do cliente e do servidor do núcleo showmount exibe informações de montagem para um servidor "NFS" sm-notify é usado para enviar mensagens de reinicialização do "Network Status Monitor" start-statd é um conjunto de comandos sequenciais chamado pelo "nfsmount" ao montar um sistema de arquivos com bloqueio habilitado, se o "statd" não parecer estar executando. Ele pode ser personalizado com quaisquer sinalizadores apropriados para o sítio umount.nfs é usado para desmontar um compartilhamento de rede de intercomunicação usando "NFS" umount.nfs4 é usado para desmontar um compartilhamento de rede de intercomunicação usando "NFSv4" Configurando para Sistemas de Arquivos de Rede de Intercomunicação Embora o LFS seja capaz de montar sistemas de arquivos de rede de intercomunicação como o "NFS", eles não são montados pelo conjunto de comandos sequenciais de iniciação "mountfs". Os sistemas de arquivos de rede de intercomunicação precisam ser montados depois que a rede de intercomunicação for ativada e desmontados antes que a rede de intercomunicação fique inativa. O conjunto de comandos sequenciais de inicialização "netfs" foi escrito para lidar com a montagem em tempo de inicialização de sistemas de arquivos de rede de intercomunicação, se a entrada em "/etc/fstab" contiver a opção "_netdev", e desmontagem de todos os sistemas de arquivos de rede de intercomunicação antes que a rede seja derrubada. Como o(a) usuário(a) "root", instale o conjunto de comandos sequenciais de inicialização "/etc/rc.d/init.d/netfs" incluído no pacote "[5152]blfs-bootscripts-20250225". make install-netfs ntp-4.2.8p18 Introdução ao ntp O pacote "ntp" contém um cliente e um servidor para manter a hora sincronizada entre vários computadores em uma rede de intercomunicação. Esse pacote é a implementação de referência oficial do protocolo "NTP". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [5153]https://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-4.2/ntp-4. 2.8p18.tar.gz * Transferência (FTP): * 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) Dependências do "ntp" Exigidas [5154]IO-Socket-SSL-2.089 Opcionais [5155]libcap-2.73 com PAM, [5156]libevent-2.1.12, [5157]libedit e [5158]libopts originário do AutoGen Observações de Editor(a): [5159]https://wiki.linuxfromscratch.org/blfs/wiki/ntp Instalação do ntp Deveria existir um(a) usuário(a) e um grupo dedicado(a) para assumir o controle do processo de segundo plano "ntpd" depois que ele for iniciado. Emita os seguintes comandos como o(a) usuário(a) "root": groupadd -g 87 ntp && useradd -c "Protocolo de horário da rede de intercomunicação" -d /var/lib/ntp -u 87 \ -g ntp -s /bin/false ntp Corrija um problema de tipo executando sed -e "s;pthread_detach(NULL);pthread_detach(0);" \ -i configure \ sntp/configure Instale o "ntp" executando os seguintes comandos: ./configure --prefix=/usr \ --bindir=/usr/sbin \ --sysconfdir=/etc \ --enable-linuxcaps \ --with-lineeditlibs=readline \ --docdir=/usr/share/doc/ntp-4.2.8p18 && make Para testar os resultados, emita: make check. Agora, como o(a) usuário(a) "root": make install && install -v -o ntp -g ntp -d /var/lib/ntp Explicações do Comando --bindir=/usr/sbin: Esse parâmetro coloca os aplicativos administrativos em "/usr/sbin". --enable-linuxcaps: O "ntpd" é executado como usuário(a) "ntp", de forma que use os recursos do "Linux" para controle de relógio não raiz. --with-lineeditlibs=readline: Essa chave habilita o suporte "Readline" para os aplicativos "ntpdc" e "ntpq". Se omitido, [então] "libedit" será usada se instalada; caso contrário, nenhum recurso do "Readline" será compilado. Configurando o ntp Arquivos de Configuração /etc/ntp.conf Informação de Configuração O arquivo de configuração a seguir define primeiro vários servidores NTP com acesso aberto a partir de diferentes continentes. Segundo, ele cria um arquivo drift onde ntpd armazena o deslocamento de frequência e um arquivo pid para armazenar o ID do processo ntpd. Como a documentação incluída no pacote é escassa, visite-se o sítio do NTP em [5160]https://www.ntp.org/ e [5161]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 [5162]https://www.eecis.udel.edu/~mills/ntp/html/accopt.html#restrict. cat >> /etc/ntp.conf << "EOF" # Seção de segurança restrict default limited kod nomodify notrap nopeer noquery restrict -6 default limited kod nomodify notrap nopeer noquery restrict 127.0.0.1 restrict ::1 EOF Sincronizando a Hora Existem duas opções. A primeira opção é a de executar o "ntpd" continuamente e permitir que ele sincronize a hora de maneira gradual. A outra opção é a de executar o "ntpd" periodicamente (usando o "Cron") e atualizar a hora cada vez que o "ntpd" estiver agendado. Se você escolher a opção um, então instale o conjunto de comandos sequenciais de iniciação "/etc/rc.d/init.d/ntp" incluso no pacote "[5163]blfs-bootscripts-20250225" "". make install-ntpd Se você preferir executar ntpd periodicamente, adicione o seguinte comando ao crontab do(a) root: ntpd -q Execute o seguinte comando se desejar configurar o relógio do "hardware" para a hora atual do sistema no desligamento e reinicialização: ln -v -sf ../init.d/setclock /etc/rc.d/rc0.d/K46setclock && ln -v -sf ../init.d/setclock /etc/rc.d/rc6.d/K46setclock O contrário já está configurado pelo LFS. Conteúdo Aplicativos Instalados: calc_tickadj, ntp-keygen, ntp-wait, ntpd, ntpdate, ntpdc, ntpq, ntptime, ntptrace, sntp, tickadj e update-leap Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /usr/share/ntp, /usr/share/doc/ntp-4.2.8 e /var/lib/ntp Descrições Curtas calc_tickadj calcula o valor ideal para o "tick" dado o arquivo de mudança gradual do "NTP" ntp-keygen gera arquivos de dados criptográficos usados pelos esquemas de autenticação e identificação "NTPv4" ntp-wait é útil ao tempo da inicialização, para atrasar a sequência de inicialização até que o "ntpd" tenha configurado a hora ntpd é um processo de segundo plano "NTP" que executa em segundo plano e mantém a data e a hora sincronizadas baseado na resposta originária dos servidores "NTP" configurados. Também funciona como um servidor "NTP" ntpdate é um aplicativo cliente que configura a data e a hora baseado na resposta originária de um servidor "NTP". Esse comando está obsoleto ntpdc é usado para consultar o processo de segundo plano "ntp" sobre o estado atual dele e para solicitar mudanças nesse estado ntpq é um aplicativo utilitário usado para monitorar operações "ntpd" e determinar o desempenho ntptime lê e exibe variáveis do núcleo relacionadas à hora ntptrace rastreia uma cadeia de servidores "NTP" até a fonte primária sntp é um cliente "Simple Network Time Protocol" ("SNTP") tickadj lê e, opcionalmente, modifica várias variáveis relacionadas à cronometragem em núcleos mais antigos que não tem suporte para cronometragem de precisão update-leap é um conjunto de comandos sequenciais para verificar e, se necessário, atualizar o arquivo de definição de segundos bissextos. Nota Em novembro de 2022, na 27ª Conferência Geral de Pesos e Medidas, foi decidido abandonar o segundo bissexto. Além disso, esse conjunto de comandos sequenciais rigidamente codifica uma URL para um arquivo de atualização que não mais existe. A última vez que um segundo bissexto foi declarado foi em janeiro de 2017. Esse conjunto de comandos sequenciais provavelmente será removido em um lançamento futuro. rpcbind-1.2.7 Introdução ao rpcbind O aplicativo "rpcbind" é um substituto para o "portmap". Ele é exigido para importar ou exportar diretórios compartilhados do "Network File System" ("NFS"). Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [5164]https://downloads.sourceforge.net/rpcbind/rpcbind-1.2.7.tar.b z2 * Transferência (FTP): * 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 Dependências do "rpcbind" Exigidas [5165]libtirpc-1.3.6 Instalação do rpcbind Para a finalidade de conseguir que o "rpcbind" funcione corretamente, primeiro corrija o pacote para usar o nome correto do serviço: sed -i "/servname/s:rpcbind:sunrpc:" src/rpcbind.c Instale o "rpcbind" executando os seguintes comandos: ./configure --prefix=/usr \ --bindir=/usr/sbin \ --with-rpcuser=root \ --enable-warmstarts \ --without-systemdsystemunitdir && make Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) "root": make install Explicações do Comando --with-rpcuser=root: Isso contorna um erro no conjunto de comandos sequenciais de configuração. --without-systemdsystemunitdir: Essa versão do BLFS não suporte o "systemd". Configurando rpcbind Conjunto de Comandos Sequenciais de Inicialização Instale o conjunto de comandos sequenciais de iniciação "/etc/rc.d/init.d/rpcbind" incluso no pacote "[5166]blfs-bootscripts-20250225". make install-rpcbind Conteúdo Aplicativo Instalado: rpcbind e rpcinfo Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: Nenhum(a) Descrições Curtas rpcbind é um servidor que converte números de aplicativos "RPC" em endereços universais. Ele precisa estar executando no dispositivo para estar apto a fazer chamadas "RPC" em um servidor nessa máquina rpcinfo faz uma chamada "RPC" para um servidor "RPC" e informa dados de acordo com as opções solicitadas rsync-3.4.1 Introdução ao rsync O pacote "rsync" contém o utilitário "rsync". Isso é útil para sincronizar arquivamentos grandes por intermédio de uma rede de intercomunicação. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [5167]https://www.samba.org/ftp/rsync/src/rsync-3.4.1.tar.gz * Transferência (FTP): * Soma de verificação MD5 da transferência: 04ce67866db04fd7a1cde0b78168406e * Tamanho da transferência: 1,1 MB * Espaço em disco estimado exigido: 11 MB (com testes; adicionar 24 MB para documentação HTML da API) * Tempo de construção estimado: 0,6 UPC (com testes) Dependências do "rsync" Recomendadas [5168]popt-1.19 Opcionais [5169]Doxygen-1.13.2 e [5170]xxhash Instalação do rsync Por razões de segurança, executar o servidor "rsync" como um(a) usuário(a) e grupo sem privilégios é encorajado. Se você pretende executar o "rsync" como um processo de segundo plano, [então] crie o(a) usuário(a) e grupo "rsyncd" com os seguintes comandos emitidos pelo(a) usuário(a) "root": groupadd -g 48 rsyncd && useradd -c "Processo de segundo plano rsyncd" -m -d /home/rsync -g rsyncd \ -s /bin/false -u 48 rsyncd Instale o "rsync" executando os seguintes comandos: ./configure --prefix=/usr \ --disable-xxhash \ --without-included-zlib && make Se você tiver o "[5171]Doxygen-1.13.2" instalado e desejar construir a documentação "HTML" da "API", [então] emita: doxygen Para testar os resultados, emita: make check. Agora, como o(a) usuário(a) "root": make install Se você construiu a documentação, [então] instale-a usando os seguintes comandos como o(a) usuário(a) "root": install -v -m755 -d /usr/share/doc/rsync-3.4.1/api && install -v -m644 dox/html/* /usr/share/doc/rsync-3.4.1/api Explicações do Comando --disable-xxhash: Essa chave desabilita o suporte avançado à soma de verificação "xxhash". Remova essa chave se você tiver instalado [5172]xxhash. --without-included-zlib: Essa chave habilita a compilação com a biblioteca "zlib" instalada no sistema. Configurando o rsync Arquivos de Configuração /etc/rsyncd.conf Informação de Configuração Para acesso de cliente a arquivos remotos, você possivelmente precise instalar o pacote "[5173]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 [5174]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 [5175]https://rsync.samba.org/documentation.html. Conjunto de Comandos Sequenciais de Inicialização Observe que você só precisa iniciar o servidor "rsync" se quiser fornecer um arquivamento "rsync" em sua máquina local. Você não precisa deste conjunto de comandos sequenciais para executar o cliente "rsync". Instale o conjunto de comandos sequenciais de iniciação "/etc/rc.d/init.d/rsyncd" incluso no pacote "[5176]blfs-bootscripts-20250225" "". make install-rsyncd Conteúdo Aplicativo Instalado: rsync e rsync-ssl Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: Opcionalmente, /usr/share/doc/rsync-3.4.1 Descrições Curtas rsync é um substituto para o "rcp" (e o "scp") que tem muito mais recursos. Ele usa o “algoritmo rsync” que fornece um método muito rápido de sincronização de arquivos remotos. Ele faz isso enviando apenas as diferenças nos arquivos por intermédio do link, sem exigir que ambos os conjuntos de arquivos estejam presentes em uma extremidade do link antecipadamente rsync-ssl é um conjunto de comandos sequenciais auxiliares usado ao conectar-se a um processo de segundo plano "rsync" que tenha suporte "SSL" integrado Samba-4.21.4 Introdução ao Samba O pacote "Samba" fornece serviços de arquivo e impressão para clientes "SMB"/"CIFS" e rede de intercomunicação Windows para clientes Linux. O "Samba" também pode ser configurado como um substituto do Controlador de Domínio do Windows, um servidor de arquivos/impressão atuando como membro de um domínio do "Windows Active Directory" e um servidor de nomes "NetBIOS" ("RFC" 1001/1002) (que, entre outras coisas, fornece suporte de navegação "LAN"). Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [5177]https://download.samba.org/pub/samba/stable/samba-4.21.4.tar. gz * Transferência (FTP): * Soma de verificação MD5 da transferência: 6d0b330364e05fed58cc63fbb43037fe * Tamanho da transferência: 41 MB * Espaço em disco estimado exigido: 683 MB (adicionar 64 MB para teste rápido) * Tempo de construção estimado: 2,1 UPC (usando paralelismo=4; adicionar 0,4 UPC para quicktest) Transferências Adicionais * Remendo opcional (Exigido para executar a suíte de teste): [5178]https://www.linuxfromscratch.org/patches/blfs/12.3/samba-4.21 .4-testsuite_linux_6_13-1.patch Dependências do "Samba" Exigidas [5179]GnuTLS-3.8.9, [5180]libtirpc-1.3.6, [5181]Parse-Yapp-1.21 e [5182]rpcsvc-proto-1.4.4 Recomendadas [5183]dbus-1.16.0 (para vfs_snapper, que é útil em sistemas que suportam Cópias de Sombra de Volume no Windows), [5184]Fuse-3.16.2, [5185]GPGME-1.24.2, [5186]ICU-76.1, [5187]jansson-2.14, [5188]libtasn1-4.20.0, [5189]libxslt-1.1.42 (para documentação), [5190]Linux-PAM-1.7.0, [5191]lmdb-0.9.31, [5192]MIT Kerberos V5-1.21.3 e [5193]OpenLDAP-2.6.9 Opcionais [5194]Avahi-0.8, [5195]BIND-9.20.6, [5196]Cups-2.4.11, [5197]Cyrus SASL-2.1.28, [5198]GDB-16.2, [5199]git-2.48.1, [5200]GnuPG-2.4.7 (exigido para ADS e a suíte de teste), [5201]libaio-0.3.113, [5202]libarchive-3.7.7 (para tar no smbclient), [5203]libcap-2.73 com PAM, [5204]libgcrypt-1.11.0, [5205]libnsl-2.0.1, [5206]libunwind-1.8.1, [5207]Markdown-3.7, [5208]nss-3.108, [5209]popt-1.19, [5210]Talloc-2.4.3 (usado pela suíte de teste), [5211]Vala-0.56.17, [5212]Valgrind-3.24.0 (opcionalmente usado pela suíte de teste), [5213]xfsprogs-6.13.0, [5214]cmocka, [5215]cryptography, [5216]ctdb (incluído), [5217]cwrap, [5218]dnspython, [5219]FAM, [5220]Gamin, [5221]GlusterFS, [5222]Heimdal (incluído), [5223]iso8601, [5224]ldb (incluído), [5225]OpenAFS, [5226]poetry-core (exigido para ADS), [5227]pyasn1, [5228]tevent (incluído), [5229]tdb (incluído) e [5230]tracker-2 Opcionais (para a Suíte de Teste de Desenvolvedor(a)) Instale na ordem listada: [5231]six-1.17.0, [5232]pytest-8.3.4, [5233]argparse, [5234]testtools, [5235]testscenarios e [5236]python-subunit Observações de Editor(a): [5237]https://wiki.linuxfromscratch.org/blfs/wiki/samba4 Instalação do Samba Para suportar a suíte de teste, configure um ambiente virtual Python para alguns módulos Python fora do escopo do BLFS e corrija um problema na estrutura de teste que faz com que todos os testes falhem em cima do núcleo Linux 6.13 ou mais recente: python3 -m venv --system-site-packages pyvenv && ./pyvenv/bin/pip3 install cryptography pyasn1 iso8601 && patch -Np1 -i ../samba-4.21.4-testsuite_linux_6_13-1.patch Instale o "Samba" executando os seguintes comandos: PYTHON=$PWD/pyvenv/bin/python3 \ PATH=$PWD/pyvenv/bin:$PATH \ ./configure \ --prefix=/usr \ --sysconfdir=/etc \ --localstatedir=/var \ --with-piddir=/run/samba \ --with-pammodulesdir=/usr/lib/security \ --enable-fhs \ --without-ad-dc \ --without-systemd \ --with-system-mitkrb5 \ --enable-selftest \ --disable-rpath-install && make Para testar os resultados, emita: "PATH=$PWD/pyvenv/bin:$PATH make quicktest". A suíte de teste produzirá linhas que parecem falhas, mas são inócuas. As últimas linhas da saída gerada deveriam informar "ALL OK" para uma execução boa do teste. Um resumo de quaisquer falhas pode ser encontrado em "./st/summary". Nota Além disso, suítes de teste para desenvolvedores(as) estão disponíveis. Se você instalou os módulos opcionais "Python" acima no ambiente virtual "Python" para construir esse pacote, [então] você consegue executar esses testes com "make test". Não é recomendado para o(a) construtor(a) médio(a) com cerca de duzentos e noventa (290) UPC e mais que um gigabyte de espaço em disco, e você deveria esperar cerca de setenta e três (73) erros e cerca de trinta (30) falhas originários dos mais que três mil (3.000) testes. Corrija caminhos rigidamente codificados para o interpretador Python 3: sed '1s@^.*$@#!/usr/bin/python3@' \ -i ./bin/default/source4/scripting/bin/*.inst Se atualizar a partir de uma versão antiga do samba, [então] como o(a) usuário(a) "root", remova os arquivos antigos de suporte do "Python" para evitar alguns problemas: rm -rf /usr/lib/python3.13/site-packages/samba Ainda como o(a) usuário(a) "root", instale o pacote: make install && install -v -m644 examples/smb.conf.default /etc/samba && sed -e "s;log file =.*;log file = /var/log/samba/%m.log;" \ -e "s;path = /usr/spool/samba;path = /var/spool/samba;" \ -i /etc/samba/smb.conf.default && mkdir -pv /etc/openldap/schema && install -v -m644 examples/LDAP/README \ /etc/openldap/schema/README.samba && install -v -m644 examples/LDAP/samba* \ /etc/openldap/schema && install -v -m755 examples/LDAP/{get*,ol*} \ /etc/openldap/schema Explicações do Comando --enable-fhs: Atribui todos os outros caminhos de arquivo de maneira compatível com o "Filesystem Hierarchy Standard" ("FHS"). --without-systemd: Desabilite a integração "systemd", uma vez que ela não é construída na versão "System V" do LFS/BLFS. --with-shared-modules='!vfs_snapper': Desabilite o módulo vfs_snapper se você quiser construir samba sem suporte a dbus, para configurações sem interfaces gráficas de usuário(a). --without-ad-dc: Desabilita a funcionalidade do Controlador de Domínio do "Active Directory". Veja-se [5238]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 [5239]MIT Kerberos V5-1.21.3 instalado. --disable-rpath-install: Remove o caminho de instalação da biblioteca dos caminhos incorporados de pesquisa de bibliotecas compartilhadas nos arquivos executáveis binários instalados e nas bibliotecas compartilhadas. Quando esse pacote é instalado no local padrão, o caminho de instalação da biblioteca é /usr/lib. Ele sempre é pesquisado pelo vinculador dinâmico, de forma que não existe necessidade de incorporá-lo aos arquivos instalados. --with-selftest-prefix=SELFTEST_PREFIX: Essa opção especifica o diretório de trabalho da suíte de teste (padrão=./st). install -v -m644 examples/LDAP/* /etc/openldap/schema: Esses comandos são usados para copiar esquemas de amostra do "Samba" para o diretório "schema" do "OpenLDAP". install -v -m644 ../examples/smb.conf.default /etc/samba: Isso copia um arquivo padrão "smb.conf" em "/etc/samba". Essa amostra de configuração não funcionará até que você a copie para "/etc/samba/smb.conf" e faça as mudanças apropriadas para a tua instalação. Veja-se a seção de configuração para os valores mínimos que precisam estar configurados. Configurando o Samba Arquivos de Configuração /etc/samba/smb.conf Impressão para clientes SMB Se você usa "CUPS" para serviços de impressão e deseja imprimir em uma impressora conectada a um cliente "SMB", [então] você precisa criar um dispositivo de estrutura de retaguarda "SMB". Para criar o dispositivo, emita o seguinte comando como o(a) usuário(a) "root": install -dvm 755 /usr/lib/cups/backend && ln -v -sf /usr/bin/smbspool /usr/lib/cups/backend/smb Informação de Configuração Devido à complexidade e aos diversos usos do "Samba", a configuração completa para todos os recursos do pacote está bem além do escopo do livro BLFS. Esta seção fornece instruções para configurar o arquivo "/etc/samba/smb.conf" para dois cenários comuns. O conteúdo completo de "/etc/samba/smb.conf" dependerá do propósito da instalação do "Samba". Nota Você possivelmente ache mais fácil copiar os parâmetros de configuração mostrados abaixo em um arquivo "/etc/samba/smb.conf" vazio em vez de copiar e editar o arquivo padrão conforme mencionado na seção “Explicações do Comando”. Como você cria/edita o arquivo "/etc/samba/smb.conf" será deixado a seu critério. Certifique-se de que o arquivo só possa ser escrevível pelo(a) usuário(a) "root" (modo 644). Cenário 1: instalação Mínima Autônoma Somente para Cliente Escolha essa variante se você quiser somente transferir arquivos usando "smbclient", montar compartilhamentos do Windows e imprimir em impressoras Windows e não quiser compartilhar teus arquivos e impressoras com máquinas Windows. Um arquivo "/etc/samba/smb.conf" com os seguintes três parâmetros é suficiente: [global] workgroup = GRUPO_DE_TRABALHO dos charset = cp850 unix charset = ISO-8859-1 Os valores nesse exemplo especificam que o computador pertence a um grupo de trabalho do Windows chamado GRUPO_DE_TRABALHO, que usa o conjunto de caracteres cp850 na rede ao conversar com MS-DOS e MS Windows 9x, e que os nomes dos arquivos são armazenados na codificação ISO-8859-1 no disco. Ajuste esses valores adequadamente para a tua instalação. O valor unix charset precisa ser o mesmo que a saída gerada de locale charmap quando executado com a variável LANG configurada para a tua localidade preferida, caso contrário o comando ls possivelmente não exiba nomes de arquivos corretos dos arquivos baixados. Não existe necessidade de executar quaisquer servidores "Samba" nesse cenário; portanto, você não precisa instalar os conjuntos de comandos sequenciais de inicialização fornecidos. Cenário 2: Servidor Autônomo de Arquivo/Impressão Escolha essa variante se quiser compartilhar teus arquivos e impressoras com máquinas Windows em teu grupo de trabalho, além dos recursos descritos no Cenário 1. Nesse caso, o arquivo "/etc/samba/smb.conf.default" possivelmente seja um bom modelo para começar. Além disso, você deveria adicionar os parâmetros “dos charset” e “unix charset” à seção “[global]” conforme descrito no Cenário 1 para a finalidade de evitar corrupção de nome de arquivo . Por razões de segurança, você possivelmente deseje definir "path = /home/alice/arquivos-compartilhados", assumindo que teu nome de usuário(a) seja alice e que você quer somente compartilhar os arquivos nesse diretório, em vez de todo o teu "home". Em seguida, substitua "homes" por "arquivos-compartilhados" e mude também o “comment” se usado o arquivo de configuração abaixo ou o "/etc/samba/smb.conf.default" para criar o teu. O arquivo de configuração a seguir cria um compartilhamento separado para cada diretório inicial de usuário e também torna todas as impressoras disponíveis para máquinas Windows: [global] workgroup = GRUPO_DE_TRABALHO dos charset = cp850 unix charset = ISO-8859-1 [homes] comment = Diretórios Home browseable = no writable = yes [printers] comment = Todas Impressoras path = /var/spool/samba browseable = no guest ok = no printable = yes Outros parâmetros que você possivelmente queira personalizar na seção “[global]” incluem: server string = security = hosts allow = load printers = log file = max log size = socket options = local master = Consulte os comentários no arquivo "/etc/samba/smb.conf.default" para informações relativas a esses parâmetros. Como os processos de segundo plano smbd e nmbd são necessários nesse caso, instale o conjunto de comandos sequenciais de inicialização do samba. Certifique-se de executar smbpasswd (com a opção -a para adicionar usuários(as)) para habilitar e configurar senhas para todas as contas que precisarem de acesso ao Samba. Usando a estrutura de retaguarda passdb padrão do Samba, qualquer usuário(a) que você tentar adicionar também será exigido(a) existir no arquivo /etc/passwd. Exigências Avançadas Cenários mais complexos envolvendo controle de domínio ou associação são possíveis. Essas configurações são tópicos avançados e não podem ser abordadas adequadamente no BLFS. Muitos livros completos foram escritos apenas a respeito desses tópicos. Observe que, em alguns cenários de associação de domínio, o processo de segundo plano "winbindd" e o conjunto de comandos sequenciais de inicialização correspondente são necessários. Conta de visitante A instalação padrão do "Samba" usa o(a) usuário(a) "nobody" para acesso de visitante ao servidor. Isso pode ser substituído configurando-se o parâmetro "guest account =" no arquivo "/etc/samba/smb.conf". Se você utilizar o parâmetro "guest account =", [então] certifique-se de que esse(a) usuário(a) exista no arquivo "/etc/passwd". Conjunto de Comandos Sequenciais de Inicialização Para a tua conveniência, conjuntos de comandos sequenciais de inicialização foram fornecidos para o "Samba". Existem dois incluídos no pacote "[5240]blfs-bootscripts-20250225". O primeiro, "samba", iniciará os processos de segundo plano "smbd" e "nmbd" necessários para fornecer serviços "SMB"/"CIFS". O segundo conjunto de comandos sequenciais, "winbind", inicia o processo de segundo plano "winbindd", usado para fornecer serviços de domínio do Windows para clientes Linux. make install-samba make install-winbindd Conteúdo Aplicativos Instalados: cifsdd, dbwrap_tool, dumpmscat, eventlogadm, gentest, ldbadd, ldbdel, ldbedit, ldbmodify, ldbrename, ldbsearch, locktest, masktest, mdsearch, mvxattr, ndrdump, net, nmbd, nmblookup, ntlm_auth, oLschema2ldif, pdbedit, profiles, regdiff, regpatch, regshell, regtree, rpcclient, samba-log-parser, samba-gpupdate, samba-regedit, samba-tool, sharesec, smbcacls, smbclient, smbcontrol, smbcquotas, smbd, smbget, smbpasswd, smbspool, smbstatus, smbtar, smbtorture, smbtree, tdbbackup, tdbdump, tdbrestore, tdbtool, testparm, wbinfo e winbindd Bibliotecas Instaladas: libdcerpc-binding.so, libdcerpc-samr.so, libdcerpc-server-core.so, libdcerpc.so, libndr-krb5pac.so, libndr-nbt.so, libndr.so, libndr-standard.so, libnetapi.so, libnss_winbind.so, libnss_wins.so, libsamba-credentials.so, libsamba-errors.so, libsamba-hostconfig.so, libsamba-passdb.so, libsamba-policy.cpython-311-x86_64-linux-gnu.so, libsamba-util.so, libsamdb.so, libsmbclient.so, libsmbconf.so, libsmbldap.so, libtevent-util.so, libwbclient.so e módulos de sistemas de arquivos e de suporte sob /usr/lib/{python3.13,samba} Diretórios Instalados: /etc/samba, /run/samba, /usr/include/samba-4.0, /usr/lib/python3.13/site-packages/samba, /usr/{lib,libexec,share}/samba e /var/{cache,lib,lock,log,run}/samba Descrições Curtas cifsdd é o comando "dd" para "SMB" dbwrap_tool é usado para ler e manipular bases de dados "TDB"/"CTDB" usando a interface "dbwrap" dumpmscat despeja o conteúdo de arquivos de catálogo do "MS" eventlogadm é usado para escrever registros em registros de eventos a partir do "STDIN", adicionar a fonte especificada e entradas de registro de registro de eventos de "DLL" e exibir os nomes de registro de eventos ativos (a partir de "smb.conf") gentest é usado para executar operações genéricas aleatórias "SMB" contra dois servidores "SMB" e mostrar as diferenças de comportamento ldbadd é um utilitário de linha de comando para adicionar registros a uma base de dados "LDB" ldbdel é um utilitário de linha de comando para deletar registros de base de dados "LDB" ldbedit permite que você edite bases de dados "LDB" usando teu editor preferido ldbmodify permite que você modifique registros em uma base de dados "LDB" ldbrename permite que você renomeie bases de dados "LDB" ldbsearch pesquisa em uma base de dados "LDB" por registros que correspondam a uma expressão especificada locktest é usado para encontrar diferenças no bloqueio entre dois servidores "SMB" masktest é usado para encontrar diferenças na correspondência de curingas entre a implementação do Samba e aquela de um servidor remoto mdsearch executa pesquisas "Spotlight" em um servidor "SMB" mvxattr é usado para renomear recursivamente atributos estendidos ndrdump é um analisador e despejador de pacotes "DCE"/"RPC" net é uma ferramenta para administração de servidores "Samba" e "CIFS" remotos, semelhante ao utilitário "net" para "DOS"/"Windows" nmbd é o servidor de nomes "NetBIOS" do "Samba" nmblookup é usado para consultar nomes "NetBIOS" e mapeá-los para endereços "IP" ntlm_auth é uma ferramenta para permitir acesso externo à função de autenticação "NTLM" do "Winbind" oLschema2ldif converte esquemas "LDAP" em "LDIF" compatível com "LDB" pdbedit é uma ferramenta usada para gerenciar a base de dados "SAM" profiles é um utilitário que informa e muda "SIDs" em arquivos de registro do "Windows" regdiff é um aplicativo "Diff" para arquivos de registro do "Windows" regpatch aplica remendos de registro aos arquivos de registro regshell é um navegador de arquivos de registro do "Windows" usando "Readline" regtree é um visualizador de registro em modo texto rpcclient é usado para executar funções "MS-RPC" do lado do cliente samba-log-parser analisa registros do winbind gerados pelo Samba samba-gpupdate permite que você edite "Group Policy Objects" ("GPOs") da Microsoft samba-regedit é uma ferramenta baseada em "ncurses" para gerenciar o registro do Samba samba-tool é a principal ferramenta de administração do Samba sharesec manipula permissões de compartilhamento de "ACL" em compartilhamentos de arquivos "SMB" smbcacls é usado para manipular listas de controle de acesso do "Windows NT" smbclient é um utilitário de acesso "SMB"/"CIFS", semelhante ao "FTP" smbcontrol é usado para controlar a execução dos processos de segundo plano "smbd", "nmbd" e "winbindd" smbcquotas é usado para manipular cotas do "Windows NT" em compartilhamentos de arquivos "SMB" smbd é o principal processo de segundo plano do "Samba" o qual fornece serviços "SMB"/"CIFS" aos clientes smbget é um utilitário simples com semântica semelhante ao "wget", que consegue baixar arquivos a partir de servidores "SMB". Você consegue especificar os arquivos que gostaria de baixar na linha de comando smbpasswd muda uma senha do "Samba" de um usuário smbspool envia uma trabalho de impressão para uma impressora "SMB" smbstatus informa as conexões atuais do "Samba" smbtar é um conjunto de comandos sequenciais de "shell" usado para produzir cópia de segurança de compartilhamentos "SMB"/"CIFS" diretamente em unidades de fita do Linux ou em um arquivo smbtorture é uma suíte de teste que executa vários testes em um servidor "SMB" smbtree é um navegador de rede de intercomunicação "SMB" baseado em texto tdbbackup é uma ferramenta para produzir cópia de segurança ou para validar a integridade de arquivos .tdb do Samba tdbdump é uma ferramenta usada para imprimir o conteúdo de um arquivo .tdb do Samba tdbrestore é uma ferramenta para criar um arquivo .tdb do Samba a partir de um ntdbdump tdbtool é uma ferramenta que permite a manipulação simples de base de dados a partir da linha de comando testparm verifica um arquivo "smb.conf" quanto à sintaxe correta wbinfo consulta um processo de segundo "winbindd" em execução winbindd resolve nomes a partir de servidores "Windows NT" libnss_winbind.so fornece funções da "API" "Name Service Switch" para resolver nomes a partir de servidores "NT" libnss_wins.so fornece funções de "API" para implementação do Samba do "Windows Internet Naming Service" libnetapi.so fornece funções de "API" para as ferramentas de administração usadas para servidores Samba e "CIFS" remotos libsmbclient.so fornece funções de "API" para as ferramentas de cliente "SMB" do Samba libwbclient.so fornece funções de "API" para serviços de cliente de domínio do "Windows" Wget-1.25.0 Introdução ao Wget O pacote Wget contém um utilitário útil para transferência não interativa de arquivos a partir da "Web". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [5241]https://ftp.gnu.org/gnu/wget/wget-1.25.0.tar.gz * Transferência (FTP): * Soma de verificação MD5 da transferência: c70ba58b36f944e8ba1d655ace552881 * Tamanho da transferência: 5,0 MB * Espaço em disco estimado exigido: 38 MB (adicionar 27 MB para os testes) * Tempo de construção estimado: 0,3 UPC (adicionar 0,4 UPC para testes) Dependências do "Wget" Recomendadas [5242]libpsl-0.21.5 Recomendadas em tempo de execução [5243]make-ca-1.15 Opcionais [5244]GnuTLS-3.8.9, [5245]HTTP-Daemon-6.16 (para a suíte de teste), [5246]IO-Socket-SSL-2.089 (para a suíte de teste), [5247]libidn2-2.3.7, [5248]pcre2-10.45 e [5249]Valgrind-3.24.0 (para a suíte de teste) Instalação do Wget Instale o "Wget" executando os seguintes comandos: ./configure --prefix=/usr \ --sysconfdir=/etc \ --with-ssl=openssl && make Para testar os resultados, emita: make check. Alguns testes possivelmente falhem quando os testes "Valgrind" estiverem habilitados. Agora, como o(a) usuário(a) "root": make install Explicações do Comando --sysconfdir=/etc: Isso realoca o arquivo de configuração de "/usr/etc" para "/etc". --with-ssl=openssl: Isso permite que o aplicativo use o "OpenSSL" em vez do "[5250]GnuTLS-3.8.9". --enable-valgrind-tests: Isso permite que os testes sejam executados sob o "Valgrind". Configurando o Wget Arquivos de Configuração /etc/wgetrc e ~/.wgetrc Conteúdo Aplicativo Instalado: wget Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: Nenhum(a) Descrições Curtas wget recupera arquivos a partir da "Web" usando os protocolos "HTTP", "HTTPS" e "FTP". Ele foi projetado para ser não interativo, para operações em segundo plano ou autônomas Configurando o Núcleo Linux para Sem Fios Antes de usar qualquer ferramenta de espaço do(a) usuário(a) para conectar-se a um ponto de acesso sem fio, o núcleo Linux precisa ser configurado para controlar a NIC sem fio corretamente. Habilite as seguintes opções na configuração do núcleo, bem como controladores específicos de dispositivos para o teu hardware e recompile o núcleo, se necessário: [*] Networking support ---> [NET] [*] Wireless ---> [WIRELESS] <*/M> cfg80211 - wireless configuration API [CFG80211] < /*/M> Generic IEEE 802.11 Networking Stack (mac80211) [MAC80211] Device Drivers ---> [*] Network device support ---> [NETDEVICES] [*] Wireless LAN ---> [WLAN] Abra o submenu “Wireless LAN” e selecione as opções que suportam teu hardware. lspci oriundo de [5251]pciutils-3.13.0 ou lsusb oriundo de [5252]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 failed with error -2, significa que você precisa instalar o firmware ou a NIC sem fio não funcionará. Leia-se [5253]Acerca de Firmware para mais detalhes. iw-6.9 Introdução ao iw "iw" é um novo utilitário de configuração "CLI" baseado em "nl80211" para dispositivos sem fio. Ele suporta todos os novos controladores que foram adicionados recentemente ao núcleo. A antiga ferramenta "iwconfig", que usa a interface "Wireless Extensions", está obsoleta e é altamente recomendado mudar para o "iw" e "nl80211". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [5254]https://www.kernel.org/pub/software/network/iw/iw-6.9.tar.xz * Transferência (FTP): * Soma de verificação MD5 da transferência: 457c99badf2913bb61a8407ae60e4819 * Tamanho da transferência: 156 KB * Espaço em disco estimado exigido: 3,9 MB * Tempo de construção estimado: menos que 0,1 UPC Dependências do "iw" Exigidas [5255]libnl-3.11.0 Exigidas (tempo de execução) [5256]Configurando o Núcleo Linux para Sem Fios Configuração do Núcleo Para usar iw, o núcleo precisa ter os controladores apropriados e outros suportes disponíveis. Leia-se [5257]Configurando o Núcleo Linux para Sem Fios para detalhes. Instalação do iw Para instalar o "iw", use os seguintes comandos: sed -i "/INSTALL.*gz/s/.gz//" Makefile && make Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) "root": make install Explicações do Comando sed ...: Instale páginas de manual descompactadas de acordo com outras páginas de manual. Conteúdo Aplicativos Instalados: iw Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: Nenhum(a) Descrições Curtas iw mostra/manipula dispositivos sem fio e a configuração deles Wireless Tools-29 Introdução ao Wireless Tools A "Wireless Extension" ("WE") é uma "API" genérica no núcleo Linux que permite que um controlador exponha configurações e estatísticas específicas de "LANs" sem fio comuns para o espaço de usuário(a). Um conjunto de ferramentas pode suportar todas as variações de "LANs" sem fio, independentemente do tipo delas, desde que o controlador suporte "Wireless Extensions". Os parâmetros "WE" também podem ser mudados dinamicamente sem reiniciar o controlador (ou o Linux). O pacote "Wireless Tools" ("WT") é um conjunto de ferramentas que permite a manipulação das "Wireless Extensions". Elas usam uma interface textual para suportar as "Wireless Extensions" completas. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [5258]https://hewlettpackard.github.io/wireless-tools/wireless_tool s.29.tar.gz * Transferência (FTP): * 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 Transferências Adicionais * Remendo exigido: [5259]https://www.linuxfromscratch.org/patches/blfs/12.3/wireless_t ools-29-fix_iwlist_scanning-1.patch Dependências do Wireless Tools Exigidas (tempo de execução) [5260]Configurando o Núcleo Linux para Sem Fios Configuração do Núcleo Para usar Wireless Tools, o núcleo precisa ter os controladores apropriados e outros suportes disponíveis. Além das configurações mencionadas em [5261]Configurando o Núcleo Linux para Sem Fios, também é necessário habilitar as seguintes opções na configuração do núcleo: [*] Networking support ---> [NET] [*] Wireless ---> [WIRELESS] <*/M> cfg80211 - wireless configuration API [CFG80211] [*] cfg80211 wireless extensions compatibility [CFG80211_WEXT] Instalação do Wireless Tools Primeiro, aplique um remendo que corrige um problema quando numerosas redes de intercomunicação estiverem disponíveis: patch -Np1 -i ../wireless_tools-29-fix_iwlist_scanning-1.patch Para instalar o "Wireless Tools", use os seguintes comandos: make Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) "root": make PREFIX=/usr INSTALL_MAN=/usr/share/man install Explicações do Comando INSTALL_MAN=/usr/share/man: Instala as páginas de manual em "/usr/share/man" em vez de "/usr/man". Conteúdo Aplicativos Instalados: ifrename, iwconfig, iwevent, iwgetid, iwlist, iwpriv e iwspy Biblioteca Instalada: libiw.so Diretórios Instalados: Nenhum(a) Descrições Curtas ifrename renomeia interfaces de rede de intercomunicação baseado em vários critérios estáticos iwconfig configura uma interface de rede de intercomunicação sem fio iwevent exibe eventos sem fio gerados por controladores e mudanças de configuração iwgetid informa "ESSID", "NWID" ou endereço "AP"/"Cell" de redes de intercomunicação sem fio iwlist obtém informações sem fio detalhadas a partir de uma interface sem fio iwpriv configura parâmetros opcionais (privados) de uma interface de rede de intercomunicação sem fio iwspy obtém estatísticas sem fio a partir de um nó específico libiw.so contém funções exigidas pelos aplicativos sem fio e fornece uma "API" para outros aplicativos wpa_supplicant-2.11 Introdução ao WPA Supplicant "WPA Supplicant" é um cliente "Wi-Fi Protected Access" ("WPA") e suplicante "IEEE 802.1X". Ele implementa a negociação de chave "WPA" com um Autenticador "WPA" e a autenticação "Extensible Authentication Protocol" ("EAP") com um Servidor de Autenticação. Além disso, ele controla o deslocamento e a autenticação/associação "IEEE 802.11" do controlador de "LAN" sem fio. Isso é útil para conectar-se a um ponto de acesso sem fio protegido por senha. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [5262]https://w1.fi/releases/wpa_supplicant-2.11.tar.gz * Transferência (FTP): * Soma de verificação MD5 da transferência: 72a4a00eddb7a499a58113c3361ab094 * Tamanho da transferência: 3,7 MB * Espaço em disco estimado exigido: 35 MB * Tempo de construção estimado: 0,3 UPC Dependências do "WPA Supplicant" Exigidas (tempo de execução) [5263]Configurando o Núcleo Linux para Sem Fios Recomendadas [5264]libnl-3.11.0 Opcionais [5265]dbus-1.16.0 e [5266]libxml2-2.13.6 Configuração do Núcleo Para usar wpa_supplicant, o núcleo precisa ter os controladores apropriados e outros suportes disponíveis. Leia-se [5267]Configurando o Núcleo Linux para Sem Fios para detalhes. Instalação do WPA Supplicant Primeiro você precisará criar um arquivo de configuração inicial para o processo de construção. Você pode ler "wpa_supplicant/README" e "wpa_supplicant/defconfig" para a explicação das opções a seguir, bem como outras opções que podem ser usadas. Crie um arquivo de configuração de construção que deveria funcionar para configurações "WiFi" padrão executando o seguinte comando: cat > wpa_supplicant/.config << "EOF" CONFIG_BACKEND=file CONFIG_CTRL_IFACE=y CONFIG_DEBUG_FILE=y CONFIG_DEBUG_SYSLOG=y CONFIG_DEBUG_SYSLOG_FACILITY=LOG_DAEMON CONFIG_DRIVER_NL80211=y CONFIG_DRIVER_WEXT=y CONFIG_DRIVER_WIRED=y CONFIG_EAP_GTC=y CONFIG_EAP_LEAP=y CONFIG_EAP_MD5=y CONFIG_EAP_MSCHAPV2=y CONFIG_EAP_OTP=y CONFIG_EAP_PEAP=y CONFIG_EAP_TLS=y CONFIG_EAP_TTLS=y CONFIG_IEEE8021X_EAPOL=y CONFIG_IPV6=y CONFIG_LIBNL32=y CONFIG_PEERKEY=y CONFIG_PKCS12=y CONFIG_READLINE=y CONFIG_SMARTCARD=y CONFIG_WPS=y CFLAGS += -I/usr/include/libnl3 EOF Se você deseja usar o WPA Supplicant com o [5268]NetworkManager-1.50.0, certifique-se de ter instalado o [5269]dbus-1.16.0, então adicione as seguintes opções ao arquivo de configuração de construção do WPA Supplicant executando o seguinte comando: cat >> wpa_supplicant/.config << "EOF" CONFIG_CTRL_IFACE_DBUS=y CONFIG_CTRL_IFACE_DBUS_NEW=y CONFIG_CTRL_IFACE_DBUS_INTRO=y EOF Instale o WPA Supplicant executando os seguintes comandos: cd wpa_supplicant && make BINDIR=/usr/sbin LIBDIR=/usr/lib Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) "root": install -v -m755 wpa_{cli,passphrase,supplicant} /usr/sbin/ && install -v -m644 doc/docbook/wpa_supplicant.conf.5 /usr/share/man/man5/ && install -v -m644 doc/docbook/wpa_{cli,passphrase,supplicant}.8 /usr/share/man/ma n8/ Se você tiver construído o "WPA Supplicant" com suporte ao "D-Bus", [então] você precisará instalar os arquivos de configuração do "D-Bus". Instale-os executando os seguintes comandos como o(a) usuário(a) "root": install -v -m644 dbus/fi.w1.wpa_supplicant1.service \ /usr/share/dbus-1/system-services/ && install -v -d -m755 /etc/dbus-1/system.d && install -v -m644 dbus/dbus-wpa_supplicant.conf \ /etc/dbus-1/system.d/wpa_supplicant.conf Nota Você precisará reiniciar o processo de segundo plano "D-Bus" do sistema antes que possa usar a interface "WPA Supplicant" do "D-Bus". Configurando o wpa_supplicant Importante Se você estiver usando o WPA Supplicant com [5270]NetworkManager-1.50.0 (ou qualquer coisa que se comunique com o WPA Supplicant via D-Bus), esta seção deveria ser ignorada. Executar-se uma instância de D-Bus conectado a WPA Supplicant e outra instância WPA Supplicant configurada de acordo com esta seção simultaneamente pode causar problemas sutis. Arquivo de Configuração /etc/sysconfig/wpa_supplicant-*.conf Informação de Configuração Para se conectar a um ponto de acesso que usa uma senha, você precisa colocar a chave pré compartilhada em "/etc/sysconfig/wpa_supplicant-wifi0.conf". "SSID" é a sequência de caracteres que o ponto de acesso/roteador transmite para se identificar. Execute o seguinte comando como o(a) usuário(a) "root": wpa_passphrase SSID SENHA_SECRETA > /etc/sysconfig/wpa_supplicant-wifi0.conf "/etc/sysconfig/wpa_supplicant-wifi0.conf " pode conter os detalhes de vários pontos de acesso. Quando o "wpa_supplicant" for iniciado, ele escaneará os "SSIDs" que conseguir ver e escolherá a senha apropriada para se conectar. Se você deseja se conectar a um ponto de acesso que não seja protegido por senha, [então] coloque uma entrada como esta em "/etc/sysconfig/wpa_supplicant-wifi0.conf". Substitua "Algum-SSID" pelo "SSID" do ponto de acesso/roteador. network={ ssid="Algum-SSID" key_mgmt=NONE } Conectar-se a um novo ponto de acesso que não esteja no arquivo de configuração pode ser realizado manualmente por meio da linha de comando, mas precisa ser feito por meio de um(a) usuário(a) privilegiado(a). Para fazer isso, adicione o seguinte ao arquivo de configuração: ctrl_interface=DIR=/run/wpa_supplicant GROUP= update_config=1 Substitua o acima por um grupo do sistema onde os(as) membros(as) tem a capacidade de se conectarem a um ponto de acesso sem fio. Existem muitas opções que você poderia usar para ajustar como se conecta a cada ponto de acesso. Elas estão descritas com alguns detalhes no arquivo "wpa_supplicant/wpa_supplicant.conf" na árvore do fonte. Conectando-se a um Ponto de Acesso Se você quiser configurar interfaces de rede de intercomunicação na inicialização usando o "wpa_supplicant", [então] você precisa instalar o conjunto de comandos sequenciais "/lib/services/wpa" incluído no pacote "[5271]blfs-bootscripts-20250225": make install-service-wpa Se o teu roteador/ponto de acesso usar DHCP para alocar endereços IP, você pode instalar o [5272]dhcpcd-10.2.2 e usá-lo para automaticamente obter endereços de rede de intercomunicação. Crie o /etc/sysconfig/ifconfig-wifi0 executando o seguinte comando como o(a) usuário(a) root: cat > /etc/sysconfig/ifconfig.wifi0 << "EOF" ONBOOT="yes" IFACE="wlan0" SERVICE="wpa" # Argumentos adicionais para o "wpa_supplicant" WPA_ARGS="" WPA_SERVICE="dhcpcd" DHCP_START="-b -q " DHCP_STOP="-k " EOF Alternativamente, se você usar endereços estáticos em tua rede de intercomunicação local, então crie o "/etc/sysconfig/ifconfig-wifi0 " executando o seguinte comando como o(a) usuário(a) "root": cat > /etc/sysconfig/ifconfig.wifi0 << "EOF" ONBOOT="yes" IFACE="wlan0" SERVICE="wpa" # Argumentos adicionais para o "wpa_supplicant" WPA_ARGS="" WPA_SERVICE="ipv4-static" IP="192.168.1.1" GATEWAY="192.168.1.2" PREFIX="24" BROADCAST="192.168.1.255" EOF Você consegue se conectar ao ponto de acesso sem fio executando o seguinte comando como o(a) usuário(a) "root": ifup wifi0 Substitua "wlan0" pela interface sem fio correta e "wifi0" pelo nome desejado para o arquivo de configuração. Por favor, observe que os arquivos de configuração "wpa_supplicant-*.conf" e "ifconfig.*" precisam ter nomes idênticos, ou seja, ambos conter "wifi0" nos nomes deles. Conteúdo Aplicativos Instalados: wpa_supplicant, wpa_passphrase e wpa_cli Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: Nenhum(a) Descrições Curtas wpa_supplicant é um processo de segundo plano que consegue se conectar a um ponto de acesso sem fio protegido por senha wpa_passphrase pega um "SSID" e uma senha e gera uma configuração simples que o "wpa_supplicant" consiga entender wpa_cli é uma interface de linha de comando usada para controlar um processo de segundo plano "wpa_supplicant" em execução Capítulo 16. Utilitários de Trabalho em Rede de Intercomunicação Este capítulo contém algumas ferramentas que serão úteis quando a rede de intercomunicação precisar de investigação. Avahi-0.8 Introdução ao Avahi O pacote Avahi é um sistema que facilita a descoberta de serviços em uma rede de intercomunicação local. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [5273]https://github.com/lathiat/avahi/releases/download/v0.8/avahi -0.8.tar.gz * Transferência (FTP): * 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 Transferências Adicionais * Remendo exigido: [5274]https://www.linuxfromscratch.org/patches/blfs/12.3/avahi-0.8- ipv6_race_condition_fix-1.patch Dependências do "Avahi" Exigidas [5275]GLib-2.82.5 (GObject Introspection recomendado) Recomendadas [5276]GTK-3.24.48 e [5277]libdaemon-0.14 Opcionais [5278]D-Bus Python-1.3.2, [5279]libevent-2.1.12, [5280]Doxygen-1.13.2, [5281]GTK+-2 (obsoleto) e [5282]xmltoman (para gerar documentação) Instalação do Avahi Deveria existir um(a) usuário(a) e um grupo dedicado(a) para assumir o controle do processo de segundo plano "avahi-daemon" depois que ele for iniciado. Emita os seguintes comandos como o(a) usuário(a) "root": groupadd -fg 84 avahi && useradd -c "Proprietário(a) do Processo de Segundo Plano Avahi" -d /run/avahi-da emon -u 84 \ -g avahi -s /bin/false avahi Também deveria existir um grupo de acesso privilegiado dedicado para clientes do "Avahi". Emita o seguinte comando como o(a) usuário(a) "root": groupadd -fg 86 netdev Corrija uma regressão que resulta em uma condição de corrida quando o "IPv6" está em uso e vários adaptadores de rede de intercomunicação estiverem presentes no sistema: patch -Np1 -i ../avahi-0.8-ipv6_race_condition_fix-1.patch Corrija uma vulnerabilidade de segurança no "avahi-daemon": sed -i '426a if (events & AVAHI_WATCH_HUP) { \ client_free(c); \ return; \ }' avahi-daemon/simple-protocol.c Instale o "Avahi" executando os seguintes comandos: ./configure \ --prefix=/usr \ --sysconfdir=/etc \ --localstatedir=/var \ --disable-static \ --disable-libevent \ --disable-mono \ --disable-monodoc \ --disable-python \ --disable-qt3 \ --disable-qt4 \ --disable-qt5 \ --enable-core-docs \ --with-distro=none \ --with-systemdsystemunitdir=no \ --with-dbus-system-address='unix:path=/run/dbus/system_bus_socket' && make Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) "root": make install Explicações do Comando --disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas. --disable-libevent: Esse parâmetro desabilita o uso da "[5283]libevent-2.1.12". Remova se você a tiver instalado. --disable-mono: Esse parâmetro desabilita as ligações "Mono". --disable-monodoc: Esse parâmetro desabilita a documentação para as ligações "Mono". --disable-python: Esse parâmetro desabilita os conjuntos de comandos sequenciais que dependem do Python. Ele também permite que uma instalação regular complete exitosamente. --disable-qt3: Esse parâmetro desabilita a tentativa de construir as partes obsoletas do "Qt3" do pacote. --disable-qt4: Esse parâmetro desabilita a tentativa de construir as partes obsoletas "Qt4Core" do pacote. --enable-core-docs: Esse parâmetro habilita a construção da documentação. --with-distro=none: Existe um conjunto de comandos sequenciais obsoletos de inicialização na distribuição para o LFS. Essa opção o desabilita. --with-systemdsystemunitdir=no: Sem ele, o processo de segundo plano falha ao iniciar no BLFS, que não suporta "systemd". --with-dbus-system-address=: Essa opção evita que o pacote referencie o diretório obsoleto /var/run. --disable-dbus: Esse parâmetro desabilita o uso do "D-Bus". --disable-gtk: Esse parâmetro desabilita o uso do "GTK+2". --disable-gtk3: Esse parâmetro desabilita o uso do "GTK+3". --disable-qt5: Esse parâmetro desabilita o uso do "Qt5" e permite construir sem ele. --disable-libdaemon: Esse parâmetro desabilita o uso do "libdaemon". Se você usar essa opção, [então] o "avahi-daemon" não será construído. --enable-tests: Essa opção habilita a construção de testes e exemplos. --enable-compat-howl: Essa opção habilita a camada de compatibilidade para o "HOWL". --enable-compat-libdns_sd: Essa opção habilita a camada de compatibilidade para o "libdns_sd". Configurando o avahi Conjunto de Comandos Sequenciais de Inicialização Para iniciar automaticamente o "avahi-daemon" quando o sistema for reinicializado, instale o conjunto de comandos sequenciais de inicialização "/etc/rc.d/init.d/avahi" a partir do pacote "[5284]blfs-bootscripts-20250225". make install-avahi Conteúdo Aplicativos Instalados: avahi-autoipd, avahi-browse, avahi-browse-domains, avahi-daemon, avahi-discover-standalone, avahi-dnsconfd, avahi-publish, avahi-publish-address, avahi-publish-service, avahi-resolve, avahi-resolve-address, avahi-resolve-host-name, avahi-set-host-name, bshell, bssh e bvnc Bibliotecas Instaladas: libavahi-client.so, libavahi-common.so, libavahi-core.so, libavahi-glib.so, libavahi-gobject.so, libavahi-libevent.so libavahi-ui-gtk3.so, libavahi-ui.so, libdns_sd.so e libhowl.so Diretórios Instalados: /etc/avahi/services, /usr/include/{avahi-client,avahi-common, avahi-compat-howl, avahi-compat-libdns_sd, avahi-core, avahi-glib, avahi-gobject, avahi-libevent, avahi-ui}, /usr/lib/avahi, /usr/share/avahi Descrições Curtas avahi-autoipd é um processo de segundo plano de configuração de endereço de rede de intercomunicação "IPv4LL" avahi-browse procura serviços "mDNS"/"DNS-SD" usando o processo de segundo plano "Avahi" avahi-browse-domains procura serviços "mDNS"/"DNS-SD" usando o processo de segundo plano "Avahi" avahi-daemon é o processo de segundo plano "mDNS"/"DNS-SD" "Avahi" avahi-discover-standalone procura serviços "mDNS"/"DNS-SD" usando o processo de segundo plano "Avahi" avahi-dnsconfd é um servidor "DNS" "Unicast" originário do processo de segundo plano de configuração "mDNS"/"DNS-SD" avahi-publish registra um serviço "mDNS"/"DNS-SD" ou mapeamento de nome de dispositivo ou de endereço usando o processo de segundo plano "Avahi" avahi-publish-address registra um serviço "mDNS"/"DNS-SD" ou mapeamento de nome de dispositivo ou de endereço usando o processo de segundo plano "Avahi" avahi-publish-service registra um serviço "mDNS"/"DNS-SD" ou mapeamento de nome de dispositivo ou de endereço usando o processo de segundo plano "Avahi" avahi-resolve resolve um ou mais nomes de dispositivo "mDNS"/"DNS" para endereços "IP" (e vice-versa) usando o processo de segundo plano "Avahi" avahi-resolve-address resolve um ou mais nomes de dispositivo "mDNS"/"DNS" para endereços "IP" (e vice-versa) usando o processo de segundo plano "Avahi" avahi-resolve-host-name resolve um ou mais nomes de dispositivo "mDNS"/"DNS" para endereços "IP" (e vice-versa) usando o processo de segundo plano "Avahi" avahi-set-host-name muda o nome "mDNS" do dispositivo bssh procura servidores "SSH" na rede de intercomunicação local bvnc procura servidores "VNC" na rede de intercomunicação local Utilitários BIND-9.20.6 Introdução aos Utilitários BIND "Utilitários BIND" não é um pacote separado; é uma coleção de aplicativos do lado cliente que estão inclusos no "[5285]BIND-9.20.6". O pacote "BIND" inclui os aplicativos do lado cliente "nslookup", "dig" e "host". Se você instalar o servidor "BIND", [então] esses aplicativos serão instalados automaticamente. Esta seção é para aqueles(as) usuários(as) que não precisam do servidor "BIND" completo, mas precisam desses aplicativos do lado cliente. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [5286]https://ftp.isc.org/isc/bind9/9.20.6/bind-9.20.6.tar.xz * Transferência (FTP): * Soma de verificação MD5 da transferência: 193d9dad97f1fee3127eed7ccd93153f * Tamanho da transferência: 5,4 MB * Espaço em disco estimado exigido: 102 MB * Tempo de construção estimado: 0,3 UPC (usando paralelismo = 4) Dependências dos Utilitários "BIND" Exigidas [5287]liburcu-0.15.1 e [5288]libuv-1.50.0 Recomendadas [5289]JSON-C-0.18 e [5290]nghttp2-1.64.0 Opcionais [5291]libcap-2.73 com PAM, [5292]libxml2-2.13.6 e [5293]sphinx-8.2.1 Instalação dos Utilitários BIND Instale os "Utilitários BIND" executando os seguintes comandos: ./configure --prefix=/usr && make -C lib/isc && make -C lib/dns && make -C lib/ns && make -C lib/isccfg && make -C lib/isccc && make -C bin/dig && make -C bin/nsupdate && make -C bin/rndc && make -C doc Essa parte do pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) "root": make -C lib/isc install && make -C lib/dns install && make -C lib/ns install && make -C lib/isccfg install && make -C lib/isccc install && make -C bin/dig install && make -C bin/nsupdate install && make -C bin/rndc install && cp -v doc/man/{dig.1,host.1,nslookup.1,nsupdate.1} /usr/share/man/man1 && cp -v doc/man/rndc.8 /usr/share/man/man8 Explicações do Comando --disable-doh: Use essa opção se você não tiver instalado o "[5294]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 "[5295]sphinx-8.2.1" do "Python" estiver instalado. Use cp -v doc/man/... /usr/share/man/man... para instalar as páginas de manual se elas tiverem sido construídas. Conteúdo Aplicativos Instalados: dig, host, nslookup, nsupdate e rndc Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: Nenhum(a) Descrições Curtas Vejam-se as descrições do aplicativo na seção "[5296]BIND-9.20.6". NetworkManager-1.50.0 Introdução ao NetworkManager "NetworkManager" é um conjunto de ferramentas cooperativas que tornam a operação interativa de dispositivos via rede de intercomunicação simples e direta. Quer você use "WiFi", com fio, "3G" ou "Bluetooth", o "NetworkManager" te permite mudar rapidamente de uma rede de intercomunicação para outra: depois que uma rede de intercomunicação tiver sido configurada e conectada uma vez, ela poderá ser detectada e conectada novamente automaticamente na próxima vez que estiver disponível. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [5297]https://download.gnome.org/sources/NetworkManager/1.50/Networ kManager-1.50.0.tar.xz * Transferência (FTP): * 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) Dependências do NetworkManager Exigidas [5298]libndp-1.9 Recomendadas [5299]cURL-8.12.1, [5300]dhcpcd-10.2.2, [5301]GLib-2.82.5 (com GObject Introspection), [5302]iptables-1.8.11, [5303]libpsl-0.21.5, [5304]newt-0.52.24 (para nmtui), [5305]nss-3.108, [5306]Polkit-126 (tempo de execução), [5307]PyGObject-3.50.0, [5308]elogind-255.17, [5309]Vala-0.56.17 e [5310]wpa_supplicant-2.11 (tempo de execução, construído com suporte a D-Bus) Opcionais [5311]BlueZ-5.79, [5312]D-Bus Python-1.3.2 (para a suíte de teste), [5313]GnuTLS-3.8.9 (pode ser usado em vez de [5314]nss-3.108), [5315]GTK-Doc-1.34.0, [5316]jansson-2.14, [5317]ModemManager-1.18.12, [5318]UPower-1.90.7, [5319]Valgrind-3.24.0, [5320]dnsmasq, [5321]firewalld, [5322]libaudit, [5323]libteam, [5324]mobile-broadband-provider-info, [5325]PPP e [5326]RP-PPPoE Configuração do Núcleo Se desejar executar os testes, [então] verifique se pelo menos as seguintes opções estão habilitadas na configuração do núcleo. Essas opções foram consideradas necessárias, mas podem não ser suficientes. Recompile o núcleo se necessário: [*] Networking support ---> [NET] Networking options ---> [*] TCP/IP networking [INET] <*/M> IP: tunneling [NET_IPIP] <*/M> IP: GRE demultiplexer [NET_IPGRE_DEMUX] <*/M> IP: GRE tunnels over IP [NET_IPGRE] <*> The IPv6 protocol ---> [IPV6] <*/M> IPv6: IPv6-in-IPv4 tunnel (SIT driver) [IPV6_SIT] <*/M> IPv6: GRE tunnel [IPV6_GRE] [*] IPv6: Multiple Routing Tables [IPV6_MULTIPLE_TABLES] [*] MPTCP: Multipath TCP [MPTCP] [*] MPTCP: IPv6 support for Multipath TCP [MPTCP_IPV6] <*/M> 802.1Q/802.1ad VLAN Support [VLAN_8021Q] [*] QoS and/or fair queueing ---> [NET_SCHED] <*> Stochastic Fairness Queueing (SFQ) [NET_SCH_SFQ] <*> Token Bucket Filter (TBF) [NET_SCH_TBF] <*> Fair Queue Controlled Delay AQM (FQ_CODEL) [NET_SCH_FQ_CODEL] <*> Ingress/classifier-action Qdisc [NET_SCH_INGRESS] Device Drivers ---> [*] Network device support ---> [NETDEVICES] [*] Network core driver support [NET_CORE] <*/M> Bonding driver support [BONDING] <*/M> Dummy net driver support [DUMMY] <*/M> Ethernet team driver support ---> [NET_TEAM] <*/M> MAC-VLAN support [MACVLAN] <*/M> MAC-VLAN based tap driver [MACVTAP] <*/M> IP-VLAN support [IPVLAN] <*/M> Virtual eXtensible Local Area Network (VXLAN) [VXLAN] <*/M> Virtual ethernet pair device [VETH] <*/M> Virtual Routing and Forwarding (Lite) [NET_VRF] Instalação do NetworkManager Corrija os conjuntos sequenciais de comandos "Python", de forma que eles usem "Python 3": grep -rl '^#!.*python$' | xargs sed -i '1s/python/&3/' Instale o NetworkManager executando os seguintes comandos: mkdir build && cd build && meson setup .. \ --prefix=/usr \ --buildtype=release \ -D libaudit=no \ -D nmtui=true \ -D ovs=false \ -D ppp=false \ -D selinux=false \ -D session_tracking=elogind \ -D modem_manager=false \ -D systemdsystemunitdir=no \ -D systemd_journal=false \ -D qt=false && ninja Uma sessão gráfica já ativa com endereço de barramento é necessária para executar os testes. Para testar os resultados, emita "ninja test". Uns poucos testes possivelmente falhem, dependendo das opções de núcleo habilitadas. Agora, como o(a) usuário(a) "root": ninja install && mv -v /usr/share/doc/NetworkManager{,-1.50.0} Se você não passou a opção -D docs=true para meson, você consegue instalar as páginas de manual pré geradas com (como o(a) usuário(a) root): for file in $(echo ../man/*.[1578]); do section=${file##*.} && install -vdm 755 /usr/share/man/man$section install -vm 644 $file /usr/share/man/man$section/ done Se você não tiver usado -D docs=true, a documentação HTML pré gerada também pode ser instalada com (como o(a) usuário(a) root): cp -Rv ../docs/{api,libnm} /usr/share/doc/NetworkManager-1.50.0 Explicações do Comando --buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados. -D docs=true: Use essa chave para habilitar construir páginas de manual e documentação se [5327]GTK-Doc-1.34.0 estiver instalado. -D nmtui=true: Essa chave habilita construir nmtui. -D systemdsystemunitdir=no e -D systemd_journal=false: systemd não é usado para sistemas de inicialização SysV, de forma que evite instalar unidades e usar o diário do systemd. -D ovs=false: Essa chave desabilita a integração do Open vSwitch porque ela precisa de [5328]jansson-2.14. Remova-a se você tiver [5329]jansson-2.14 instalado em teu sistema. -D modem_manager=false: Essa chave é exigida se o ModemManager não estiver instalado. Omita essa chave se você tiver construído ModemManager e mobile-broadband-provider-info. -D session_tracking=elogind: Essa chave é usada para configurar elogind como o aplicativo padrão para rastreamento de sessão. -D ppp=false: Essa chave desabilita suporte a PPP no NetworkManager, já que os aplicativos necessários para isso não estão instalados. Remova essa chave se você precisar de suporte a PPP e tiver o PPP instalado. -D libaudit=no e -D selinux=false: Essa chave desabilita o suporte para libaudit e SELinux, vez que ele(a) não é usado(a) no BLFS. -D qt=false: Essa chave desabilita os exemplos do Qt 5. -D crypto=gnutls: Use essa chave se você tiver GnuTLS instalado e quiser usá-lo para operações de certificados e chaves no NetworkManager, em vez de usar o NSS (o padrão). -D crypto=null: Use essa chave se nem NSS nem GnuTLS estiverem instalados, mas você quiser construir NetworkManager de qualquer maneira. Essa chave fará com que NetworkManager careça de alguns recursos (por exemplo, 802.1X). -D suspend_resume=upower: Use essa chave se você tiver [5330]UPower-1.90.7 instalado e quiser usá-lo (em vez de [5331]elogind-255.17 ) para suspender e retomar o suporte. Configurando o NetworkManager Arquivos de Configuração /etc/NetworkManager/NetworkManager.conf Informação de Configuração Para o "NetworkManager" funcionar, pelo menos um arquivo de configuração mínima precisa estar presente. Tal arquivo não é instalado com "make install". Emita o seguinte comando como o(a) usuário(a) "root" para criar um arquivo "NetworkManager.conf" mínimo: cat >> /etc/NetworkManager/NetworkManager.conf << "EOF" [main] plugins=keyfile EOF Esse arquivo não deveria ser modificado diretamente pelos(as) usuários(as) do sistema. Em vez disso, mudanças específicas do sistema deveriam ser feitas usando arquivos de configuração no diretório "/etc/NetworkManager/conf.d". Para permitir que o "Polkit" gerencie autorizações, adicione o seguinte arquivo de configuração: cat > /etc/NetworkManager/conf.d/polkit.conf << "EOF" [main] auth-polkit=true EOF Para usar algo diferente do cliente DHCP integrado (recomendado se usar somente o nmcli), use a seguinte configuração (os valores válidos incluem ou dhcpcd ou internal): cat > /etc/NetworkManager/conf.d/dhcp.conf << "EOF" [main] dhcp=dhcpcd EOF Para evitar que o "NetworkManager" atualize o arquivo "/etc/resolv.conf", adicione o seguinte arquivo de configuração: cat > /etc/NetworkManager/conf.d/no-dns-update.conf << "EOF" [main] dns=none EOF Para opções adicionais de configuração, veja-se "man 5 NetworkManager.conf". Para permitir que usuários(as) regulares configurem conexões de rede de intercomunicação, você deveria adicioná-los(as) ao grupo "netdev" e criar uma regra do "polkit" que conceda acesso. Execute os seguintes comandos como o(a) usuário(a) "root": groupadd -fg 86 netdev && /usr/sbin/usermod -a -G netdev 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.isI nGroup("netdev")) { return polkit.Result.YES; } }); EOF Conjunto de Comandos Sequenciais de Inicialização Para iniciar automaticamente o processo de segundo plano "NetworkManager" quando o sistema for reinicializado, instale o conjunto sequencial de comandos de inicialização "/etc/rc.d/init.d/networkmanager" a partir do pacote "[5332]blfs-bootscripts-20250225". Nota Se usar o "Network Manager" para gerenciar uma interface, [então] qualquer configuração anterior para essa interface deveria ser removida e a interface ser desativada antes de iniciar o "Network Manager". make install-networkmanager Conteúdo Aplicativos Instalados: NetworkManager, nmcli, nm-online, nmtui e simbolicamente vinculado ao nmtui: nmtui-connect, nmtui-edit e nmtui-hostname Bibliotecas Instaladas: libnm.so e vários módulos sob /usr/lib/NetworkManager Diretórios Instalados: /etc/NetworkManager, /usr/include/libnm, /usr/lib/NetworkManager, /usr/share/doc/NetworkManager-1.50.0, /usr/share/gtk-doc/html/{libnm,NetworkManager} (se a documentação for construída) e /var/lib/NetworkManager Descrições Curtas nmcli é uma ferramenta de linha de comando para controlar o "NetworkManager" e obter a situação dele nm-online é um utilitário para determinar se você está online nmtui é uma interface interativa de usuário(a) baseada em "Ncurses" para o "nmcli" nmtui-connect é uma interface interativa de usuário(a) baseada em "Ncurses" para ativar/desativar conexões nmtui-edit é uma interface interativa de usuário(a) baseada em "Ncurses" para editar conexões nmtui-hostname é uma interface interativa de usuário(a) baseada em "Ncurses" para editar o nome do dispositivo NetworkManager é o processo de segundo plano de gerenciamento de rede de intercomunicação libnm.so contém funções usadas pelo "NetworkManager" network-manager-applet-1.34.0 Introdução ao NetworkManager Applet O "NetworkManager Applet" fornece uma ferramenta e um miniaplicativo de painel usado para configurar conexões de rede de intercomunicação com e sem fio por meio de "GUI". Ele foi projetado para uso com qualquer ambiente de área de trabalho que use "GTK+", como o "Xfce" e o "LXDE". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [5333]https://download.gnome.org/sources/network-manager-applet/1.3 4/network-manager-applet-1.34.0.tar.xz * Transferência (FTP): * 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) Dependências do "NetworkManager Applet" Exigidas [5334]GTK-3.24.48, [5335]libnma-1.10.6 e [5336]libsecret-0.21.6 Recomendadas [5337]GLib-2.82.5 (com GObject Introspection) e [5338]ModemManager-1.18.12 Exigidas (tempo de execução) Como esse pacote usa "[5339]Polkit-126" para autorização, um "[5340]Agente de Autenticação do Polkit" deveria estar em execução quando a funcionalidade desse pacote for usada. Opcionais [5341]gnome-bluetooth-47.1, [5342]jansson-2.14 e [5343]libindicator Instalação do NetworkManager Applet Instale o "NetworkManager Applet" executando os seguintes comandos: mkdir build && cd build && meson setup .. \ --prefix=/usr \ --buildtype=release \ -D appindicator=no \ -D selinux=false \ -D team=false && ninja Para testar os resultados, emita: ninja test. Agora, como o(a) usuário(a) "root": ninja install Explicações do Comando -D appindicator=no: Essa chave desabilita o suporte ao AppIndicator no network-manager-applet porque ele exige a libindicator, que não está no BLFS. A construção falhará sem essa opção. -D selinux=false: Essa chave desabilita forçosamente o suporte ao SELinux, uma vez que ele atualmente não está no BLFS e a construção falhará sem ela. -D team=false: Essa chave desabilita o editor de configuração de equipe, pois ele exige [5344]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 [5345]ModemManager-1.18.12 instalado. Conteúdo Aplicativos Instalados: nm-applet e nm-connection-editor Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: Nenhum(a) Descrições Curtas nm-connection-editor permite que os(as) usuários(as) visualizem e editem configurações de conexão de rede de intercomunicação Nmap-7.95 Introdução ao Nmap "Nmap" é um utilitário para exploração de rede de intercomunicação e auditoria de segurança. Ele suporta varredura de "ping", varredura de porta e impressão digital "TCP"/"IP". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [5346]https://nmap.org/dist/nmap-7.95.tar.bz2 * Transferência (FTP): * Soma de verificação MD5 da transferência: b481d293e53b20278d5370458da9a950 * Tamanho da transferência: 11 MB * Espaço em disco estimado exigido: 116 MB (adicionar 38 MB para os testes) * Tempo de construção estimado: 0,4 UPC (Usando paralelismo=4; adicionar 0,1 UPC para testes) Dependências do "Nmap" Recomendadas Nota Estes pacotes são recomendados porque, se não estiverem instalados, [então] o processo de construção compilará e se vinculará à própria versão deles (geralmente mais antiga). [5347]liblinear-248, [5348]libpcap-1.10.5, [5349]libssh2-1.11.1, [5350]Lua-5.4.7, [5351]pcre2-10.45 e [5352]PyGObject-3.50.0 Opcionais [5353]libdnet Instalação do Nmap Primeiro, se ainda não estiver instalado, adicione um módulo Python necessário. Como o(a) usuário(a) root: pip3 install build Instale o "Nmap" executando os seguintes comandos: ./configure --prefix=/usr && make Se você deseja executar a suíte de teste, execute o seguinte comando: sed -e '/import imp/d' \ -e 's/^ndiff = .*$/import ndiff/' \ -i ndiff/ndifftest.py Para testar os resultados, emita: "make check" como o(a) usuário(a) "root". Os testes precisam de uma sessão gráfica. Agora, como o(a) usuário(a) "root": make install Conteúdo Aplicativos Instalados: ncat, ndiff, nmap, nping, uninstall_ndiff, uninstall_zenmap, zenmap e dois links simbólicos para zenmap: nmapfe e xnmap Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /usr/lib/python3.13/site-packages/{radialnet,zenmapCore,zenmapGUI,zenma p-7.95-py3.13.egg-info} e /usr/share/{ncat,nmap,zenmap} Descrições Curtas ncat é um utilitário para ler e escrever dados entre redes de intercomunicação a partir da linha de comando ndiff é uma ferramenta para auxiliar na comparação de varreduras do "Nmap" nmap é um utilitário para exploração de rede de intercomunicação e auditoria de segurança. Suporta varredura de "ping", varredura de portas e impressão digital "TCP"/"IP" nping é uma ferramenta de fonte aberto para geração de pacotes de rede de intercomunicação, análise de resposta e medição de tempo de resposta uninstall_ndiff é um conjunto de comandos sequenciais "Python" para desinstalar o "ndiff" uninstall_zenmap é um conjunto de comandos sequenciais "Python" para desinstalar o "zenmap" zenmap é um visualizador gráfico, baseado em "Python", de estrutura de interação direta com o(a) usuário(a) do "nmap" Traceroute-2.1.6 Introdução ao Traceroute O pacote "Traceroute" contém um aplicativo que é usado para exibir a rota de rede de intercomunicação que os pacotes percorrem para alcançar um dispositivo especificado. Essa é uma ferramenta padrão de solução de problemas de rede de intercomunicação. Se você se encontrar inapto(a) para se conectar a outro sistema, [então] o "traceroute" pode ajudar a identificar o problema. Nota Esse pacote sobrescreve a versão do "traceroute" que foi instalada no pacote "inetutils" no LFS. Essa versão é mais poderosa e permite muito mais opções que a versão padrão. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [5354]https://downloads.sourceforge.net/traceroute/traceroute-2.1.6 .tar.gz * Transferência (FTP): * 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 Instalação do Traceroute Instale o "Traceroute" executando os seguintes comandos: make Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) "root": make prefix=/usr install && ln -sv -f traceroute /usr/bin/traceroute6 && ln -sv -f traceroute.8 /usr/share/man/man8/traceroute6.8 && rm -fv /usr/share/man/man1/traceroute.1 O arquivo "traceroute.1" que foi instalado no LFS pelo "inetutils" não mais é relevante. Esse pacote sobrescreve essa versão do "traceroute" e instala a página de manual no capítulo oito (08) do manual. Conteúdo Aplicativo Instalado: traceroute e traceroute6 (link simbólico) Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: Nenhum(a) Descrições Curtas traceroute faz basicamente o que diz: rastreia a rota que os teus pacotes seguem a partir do dispositivo em que você estiver trabalhando para outro dispositivo em uma rede de intercomunicação, mostrando todos os saltos intermediários ("gateways") ao longo do caminho traceroute6 é equivalente a "traceroute -6" Whois-5.4.3 Introdução ao Whois "Whois" é um aplicativo do lado cliente que consulta o serviço de diretório "whois" em busca de informações relativas a um nome de domínio específico. Esse pacote instalará dois aplicativos por padrão: "whois" e "mkpasswd". O comando "mkpasswd" também é instalado pelo pacote "expect" no LFS. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [5355]https://github.com/rfc1036/whois/archive/v5.4.3/whois-5.4.3.t ar.gz * Transferência (FTP): * 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 Dependências do "Whois" Opcionais [5356]libidn-1.42 ou [5357]libidn2-2.3.7 Instalação do Whois Construa o aplicativo com: make Você consegue instalar o aplicativo "whois", o aplicativo "mkpasswd" e os arquivos de localidade independentemente. Controle a tua escolha do que será instalado com os seguintes comandos emitidos como o(a) usuário(a) "root": Nota Instalar essa versão do "mkpasswd" sobrescreverá o mesmo comando instalado no LFS. make prefix=/usr install-whois make prefix=/usr install-mkpasswd make prefix=/usr install-pos Conteúdo Aplicativos Instalados: whois e mkpasswd Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: Nenhum(a) Descrições Curtas whois é um aplicativo do lado cliente que consulta o serviço de diretório "whois" em busca de informações relativas a um nome de domínio específico mkpasswd gera uma nova senha e, opcionalmente, aplica-a a um(a) usuário(a) Wireshark-4.4.5 Introdução ao Wireshark O pacote Wireshark contém um analisador de protocolo de rede de intercomunicação, também conhecido como um “sniffer”. Isso é útil para analisar dados capturados “fora do fio” a partir de uma conexão ativa de rede de intercomunicação ou dados lidos a partir de um arquivo de captura. O "Wireshark" fornece uma estrutura de interação direta com o(a) usuário(a), gráfica e em modo TTY, para examinar pacotes de rede de intercomunicação capturados a partir de mais que quinhentos (500) protocolos, bem como a capacidade de ler arquivos de captura a partir de muitos outros analisadores populares de rede de intercomunicação. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [5358]https://www.wireshark.org/download/src/all-versions/wireshark -4.4.5.tar.xz * Transferência (FTP): * 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) Transferências Adicionais * Documentação Adicional: [5359]https://www.wireshark.org/download/docs/ (contém links para vários documentos em uma variedade de formatos) Dependências do "Wireshark" Exigidas [5360]CMake-3.31.5, [5361]c-ares-1.34.4, [5362]GLib-2.82.5, [5363]libgcrypt-1.11.0, [5364]Qt-6.8.2 e [5365]Speex-1.2.1 Recomendadas [5366]libpcap-1.10.5 (exigido para capturar dados) Opcionais [5367]asciidoctor-2.0.23, [5368]Brotli-1.1.0, [5369]Cups-2.4.11, [5370]Doxygen-1.13.2, [5371]git-2.48.1, [5372]GnuTLS-3.8.9, [5373]libnl-3.11.0, [5374]libxslt-1.1.42, [5375]libxml2-2.13.6, [5376]Lua-5.4.7, [5377]MIT Kerberos V5-1.21.3, [5378]nghttp2-1.64.0, [5379]SBC-2.0, [5380]Vulkan-Headers-1.4.304, [5381]BCG729, [5382]libilbc, [5383]libsmi, [5384]libssh, [5385]MaxMindDB, [5386]Minizip, [5387]nghttp3, [5388]Snappy e [5389]Spandsp Configuração do Núcleo O núcleo precisa ter o protocolo "Packet" habilitado para o "Wireshark" capturar pacotes ativos a partir da rede de intercomunicação: [*] Networking support ---> [NET] Networking options ---> <*/M> Packet socket [PACKET] Se construído como um módulo, [então] o nome é "af_packet.ko". Instalação do Wireshark "Wireshark" é um aplicativo muito grande e complexo. Estas instruções fornecem medidas adicionais de segurança para garantir que somente usuários(as) confiáveis sejam permitidos(as) a visualizar o tráfego da rede de intercomunicação. Primeiro, configure um grupo do sistema para o "Wireshark". Como o(a) usuário(a) "root": groupadd -g 62 wireshark Continue a instalar o "Wireshark" executando os seguintes comandos: mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ -D CMAKE_INSTALL_DOCDIR=/usr/share/doc/wireshark-4.4.5 \ -G Ninja \ .. && ninja Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) "root": ninja install && install -v -m755 -d /usr/share/doc/wireshark-4.4.5 && install -v -m644 ../README.linux ../doc/README.* ../doc/randpkt.txt \ /usr/share/doc/wireshark-4.4.5 && pushd /usr/share/doc/wireshark-4.4.5 && for FILENAME in ../../wireshark/*.html; do ln -s -v -f $FILENAME . done && popd unset FILENAME Se você baixou quaisquer dos arquivos de documentação a partir da página listada em "Transferências adicionais", [então] instale-os emitindo os seguintes comandos como o(a) usuário(a) "root": install -v -m644 \ /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 Se você estiver instalando o "Wireshark" pela primeira vez, [então] será necessário sair da tua sessão e entrar novamente. Isso colocará o "Wireshark" em teus grupos, pois, caso contrário, o "Wireshark" não funcionará corretamente. Configurando o Wireshark Arquivos de Configuração /etc/wireshark.conf e ~/.config/wireshark/* (a menos que já exista ~/.wireshark/* no sistema) Informação de Configuração Embora os parâmetros padrão de configuração sejam muito sensatos, consulte a seção de configuração do [5390]Guia do(a) Usuário(a) do Wireshark para informações de configuração. A maior parte da configuração do "Wireshark" pode ser realizada usando as opções de menu das interfaces gráficas do "wireshark". Nota Se você quiser ver os pacotes, [então] certifique-se de não filtrá-los com o "[5391]iptables-1.8.11". Se você quiser excluir certas classes de pacotes, [então] é mais eficiente fazê-lo com o "iptables" que com o "Wireshark". Conteúdo Aplicativos Instalados: capinfos, dumpcap, captype, editcap, idl2wrs, mergecap, randpkt, rawshark, reordercap, sharkd, text2pcap, tshark e wireshark Bibliotecas Instaladas: libwireshark.so, libwiretap.so, libwsutil.so e numerosos módulos sob /usr/lib/wireshark/plugins Diretórios Instalados: /usr/{lib,share}/wireshark e /usr/share/doc/wireshark-4.4.5 Descrições Curtas capinfos lê um arquivo salvo de captura e retorna alguma das, ou todas as, estatísticas relativas a esse arquivo. Ele é capaz de detectar e ler qualquer captura suportada pelo pacote "Wireshark" captype imprime os tipos de arquivos dos arquivos de captura editcap edita e (ou) traduz o formato dos arquivos de captura. Ele sabe como ler arquivos de captura "libpcap", incluindo aqueles do "tcpdump", "Wireshark" e outras ferramentas que escrevem capturas nesse formato idl2wrs é um programa que pega um arquivo CORBA IDL especificado pelo(a) usuário(a) e gera código fonte “C” para um “plugin” do Wireshark. Ele se baseia em dois programas Python, wireshark_be.py e wireshark_gen.py, os quais não são instalados por padrão. Eles tem de ser copiados manualmente a partir do diretório tools para o diretório $PYTHONPATH/site-packages/ mergecap combina vários arquivos salvos de captura em um arquivo de saída gerada randpkt cria arquivos de captura de pacotes aleatórios rawshark despeja e analisa dados brutos da "libpcap" reordercap reordena os carimbos de tempo dos quadros do arquivo de entrada gerada em um arquivo de saída gerada sharkd é um processo de segundo plano que escuta em soquetes "UNIX" text2pcap lê um despejo hexadecimal "ASCII" e escreve os dados descritos em um arquivo de captura estilo "libpcap" tshark é um analisador de protocolo de rede de intercomunicação no modo TTY. Ele te permite capturar dados de pacotes a partir de uma rede de intercomunicação ativa ou ler pacotes a partir de um arquivo de captura salvo anteriormente wireshark é o analisador "GUI" "Qt" de protocolo de rede de intercomunicação. Ele te permite navegar interativamente por dados de pacotes a partir de uma rede de intercomunicação ativa ou a partir de um arquivo de captura salvo anteriormente libwireshark.so contém funções usadas pelos aplicativos "Wireshark" para realizar filtragem e captura de pacotes libwiretap.so é uma biblioteca sendo desenvolvida como uma substituta futura para a "libpcap", a atual biblioteca padrão Unix para captura de pacotes. Para mais informações, veja-se o arquivo "README" no diretório do fonte "wiretap" Capítulo 17. Bibliotecas de Operação Interativa de Dispositivos Via Rede de Intercomunicação Estes aplicativos são bibliotecas de suporte para outros aplicativos do livro. É improvável que você instale apenas estas bibliotecas; geralmente você descobrirá que será encaminhado(a) a este capítulo para satisfazer uma dependência de outros aplicativos. c-ares-1.34.4 Introdução ao c-ares "c-ares" é uma biblioteca "C" para solicitações "DNS" assíncronas. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [5392]https://github.com/c-ares/c-ares/releases/download/v1.34.4/c- ares-1.34.4.tar.gz * Transferência (FTP): * 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 Dependências de c-ares Exigidas [5393]CMake-3.31.5 Instalação do c-ares Instale c-ares executando os seguintes comandos: mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr .. && make Esse pacote não inclui uma suíte de teste. Agora, como o(a) usuário(a) "root": make install Conteúdo Aplicativos Instalados: adig e ahost Bibliotecas Instaladas: libcares.so Diretórios Instalados: Nenhum(a) Descrições Curtas adig consulta informações a partir de servidores "DNS" ahost imprime o registro "A" ou "AAAA" associado a um nome de dispositivo ou endereço "IP" libcares.so é uma biblioteca "C" para solicitações assíncronas "DNS" cURL-8.12.1 Introdução ao cURL O pacote "cURL" contém um utilitário e uma biblioteca usado(a) para transferir arquivos com sintaxe "URL" para qualquer um dos seguintes protocolos: "DICT", "FILE", "FTP", "FTPS", "GOPHER", "GOPHERS", "HTTP", "HTTPS", "IMAP", "IMAPS", "LDAP", "LDAPS", "MQTT", "POP3", "POP3S", "RTSP", "SMB", "SMBS", "SMTP", "SMPTS", "TELNET" e "TFTP". A capacidade dele(a) de baixar e de enviar arquivos pode ser incorporada a outros aplicativos para suportar funções como mídia em transmissão. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [5394]https://curl.se/download/curl-8.12.1.tar.xz * Transferência (FTP): * Soma de verificação MD5 da transferência: 7940975dd510399c4b27831165ab62e0 * Tamanho da transferência: 2,6 MB * Espaço em disco estimado exigido: 53 MB (adicionar 15 MB para os testes) * Tempo de construção estimado: 0,2 UPC (com paralelismo=4; adicionar 4,9 UPC para testes (sem valgrind, adicionar 14 UPC com valgrind)) Dependências do "cURL" Recomendadas [5395]libpsl-0.21.5 Nota Embora exista uma opção para construir o pacote sem libpsl, tanto os(as) desenvolvedores(as) de fluxo de desenvolvimento quanto os(as) editores(as) do BLFS recomendam fortemente não desabilitar o suporte para libpsl devido a graves implicações de segurança. Recomendadas em tempo de execução [5396]make-ca-1.15 Opcionais [5397]Brotli-1.1.0, [5398]c-ares-1.34.4, [5399]GnuTLS-3.8.9, [5400]libidn2-2.3.7, [5401]libssh2-1.11.1, [5402]MIT Kerberos V5-1.21.3, [5403]nghttp2-1.64.0, [5404]OpenLDAP-2.6.9, [5405]Samba-4.21.4 (tempo de execução, para autenticação NTLM), [5406]gsasl, [5407]impacket, [5408]libmetalink, [5409]librtmp, [5410]ngtcp2, [5411]quiche e [5412]SPNEGO Opcionais se Executar a Suíte de Teste [5413]Apache-2.4.63 e [5414]stunnel-5.74 (para os testes HTTPS e FTPS), [5415]OpenSSH-9.9p2 e [5416]Valgrind-3.24.0 (isso atrasará os testes e possivelmente cause falhas) Instalação do cURL Instale o "cURL" executando os seguintes comandos: ./configure --prefix=/usr \ --disable-static \ --with-openssl \ --with-ca-path=/etc/ssl/certs && make Para executar a suíte de teste, emita: make test. Alguns testes são instáveis, de forma que, se alguns testes falharem, é possível executar um teste novamente com: (cd tests; ./runtests.pl ) (o ID dos testes falhos é mostrado na mensagem “These test cases failed:”). Se você executar os testes depois que o pacote tiver sido instalado, alguns testes possivelmente falhem porque as páginas de manual foram deletadas pelo comando 'find' nas instruções de instalação abaixo. Agora, como o(a) usuário(a) "root": make install && rm -rf docs/examples/.deps && find docs \( -name Makefile\* -o \ -name \*.1 -o \ -name \*.3 -o \ -name CMakeLists.txt \) -delete && cp -v -R docs -T /usr/share/doc/curl-8.12.1 Para executar alguns testes simples de verificação sobre o recém instalado curl, emita os seguintes comandos: curl --trace-ascii debugdump.txt https://www.example.com/ e curl --trace-ascii d.txt --trace-time https://example.com/. Inspecione os arquivos de rastreamento criados localmente debugdump.txt e d.txt, que contém informações de versão, informações dos arquivos baixados, etc. Um arquivo tem a hora para cada ação registrada. Explicações do Comando --disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas. --with-ca-path=/etc/ssl/certs: Essa chave define o local do armazenamento da Autoridade Certificadora do BLFS. --with-openssl: Esse parâmetro escolhe OpenSSL como implementação SSL/TLS. Essa opção não é necessária se --with-gnutls for selecionada. --with-gssapi: Esse parâmetro adiciona suporte "Kerberos 5" à "libcurl". --with-gnutls: Use essa chave para construir com suporte GnuTLS em vez de OpenSSL para SSL/TLS. --with-ca-bundle=/etc/pki/tls/certs/ca-bundle.crt: Use essa chave em vez de "--with-ca-path" se construir com suporte "GnuTLS" em vez de "OpenSSL" para "SSL"/"TLS". --with-libssh2: Esse parâmetro adiciona suporte "SSH" ao "cURL". Isso é desabilitado por padrão. --enable-ares: Esse parâmetro adiciona suporte para resolução DNS por meio da biblioteca c-ares. find docs ... -exec rm {} \;: Esse comando remove "Makefiles" e arquivos de manual do diretório de documentação que de outra forma seriam instalados pelos comandos a seguir. Conteúdo Aplicativos Instalados: curl e curl-config Biblioteca Instalada: libcurl.so Diretórios Instalados: /usr/include/curl e /usr/share/doc/curl-8.12.1 Descrições Curtas curl é uma ferramenta de linha de comando para transferência de arquivos com sintaxe de "URL" curl-config imprime informações relativas à última compilação, como bibliotecas vinculadas e configuração de prefixo libcurl.so fornece as funções de "API" exigidas pelo "curl" e outros aplicativos GeoClue-2.7.2 Introdução ao GeoClue "GeoClue" é um serviço modular de geo informação construído sobre o sistema de mensagens "D-Bus". O objetivo do projeto "GeoClue" é o de tornar a criação de aplicativos com reconhecimento de localização o mais simples possível. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [5417]https://gitlab.freedesktop.org/geoclue/geoclue/-/archive/2.7. 2/geoclue-2.7.2.tar.bz2 * Transferência (FTP): * 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 Dependências do "GeoClue" Exigidas [5418]JSON-GLib-1.10.6 e [5419]libsoup-3.6.4 Recomendadas [5420]Avahi-0.8, [5421]libnotify-0.8.4, [5422]ModemManager-1.18.12 e [5423]Vala-0.56.17 Opcionais [5424]GTK-Doc-1.34.0 Instalação do GeoClue Instale o "GeoClue" executando os seguintes comandos: mkdir build && cd build && meson setup --prefix=/usr \ --buildtype=release \ -D gtk-doc=false \ .. && ninja Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) "root": ninja install Explicações do Comando --buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados. -D 3g-source=false: Essa chave desabilita a estrutura de retaguarda 3G. Use-a se você não tiver instalado o pacote ModemManager. -D modem-gps-source=false: Essa chave desabilita a estrutura de retaguarda GPS do modem. Use-a se você não tiver instalado o pacote ModemManager. -D cdma-source=false: Essa chave desabilita a estrutura de retaguarda fonte CDMA. Use-a se você não tiver instalado o pacote ModemManager. -D nmea-source=false: Essa chave desabilita a fonte NMEA. Use-a se você não tiver instalado o pacote Avahi. -D demo-agent=false: Essa chave desabilita a demonstração. Use-a se você não tiver instalado o pacote libnotify. Configurando GeoClue Arquivos de Configuração /etc/geoclue/conf.d/90-lfs-google.conf Informação de Configuração Em março de 2024, a Mozilla anunciou o encerramento do Mozilla Location Service. Geoclue usa esse serviço para determinar um local de usuário(a) quando solicitado por outras aplicações. A única alternativa suportada pelo fluxo de desenvolvimento é a de usar o Serviço de Geolocalização do Google. Para usar o Serviço de Geolocalização do Google, uma chave de API precisa ser usada e um arquivo de configuração precisa ser criado. Esta chave de API é destinada somente para uso com LFS. Por favor, não use esta chave de API se você estiver construindo para outra distribuição ou distribuindo cópias binárias. Se precisar de uma chave de API, você pode solicitar uma em [5425]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=AIzaSyDxKL42zsPjbke5 O8_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 [5426]geoclue(5). Conteúdo Aplicativos Instalados: Nenhum(a) Bibliotecas Instaladas: libgeoclue-2.so Diretórios Instalados: /etc/geoclue, /usr/include/libgeoclue-2.0, /usr/libexec/geoclue-2.0 e /usr/share/gtk-doc/html/{geoclue,libgeoclue} glib-networking-2.80.1 Introdução ao GLib Networking O pacote "GLib Networking" contém módulos "gio" relacionados à rede de intercomunicação para o "GLib". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [5427]https://download.gnome.org/sources/glib-networking/2.80/glib- networking-2.80.1.tar.xz * Transferência (FTP): * 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) Dependências do "GLib Networking" Exigidas [5428]GLib-2.82.5 e [5429]GnuTLS-3.8.9 Recomendadas [5430]gsettings-desktop-schemas-47.1 (para os aplicativos usantes desse pacote usarem as configurações de servidor "proxy" no "GNOME") e [5431]make-ca-1.15 Opcionais [5432]libproxy Instalação do GLib Networking Instale o "GLib Networking" executando os seguintes comandos: mkdir build && cd build && meson setup \ --prefix=/usr \ --buildtype=release \ -D libproxy=disabled \ .. && ninja Para testar os resultados, emita: ninja test. Agora, como o(a) usuário(a) "root": ninja install Explicações do Comando --buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados. Conteúdo Aplicativo Instalado: Nenhum(a) Bibliotecas Instaladas: libgiognomeproxy.so e libgiognutls.so (Módulos GIO instalados em /usr/lib/gio/modules) Diretórios Instalados: Nenhum(a) kdsoap-2.2.0 Introdução ao kdsoap O kdsoap é um componente SOAP do lado do cliente e do lado servidor baseado em Qt. Ele pode ser usado para criar aplicativos clientes para serviços web e também fornece meios para criar serviços web sem a necessidade de qualquer componente adicional, como um servidor web dedicado. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [5433]https://github.com/KDAB/KDSoap/releases/download/kdsoap-2.2.0 /kdsoap-2.2.0.tar.gz * Transferência (FTP): * 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) Dependências do kdsoap Exigidas [5434]Qt-6.8.2 Instalação do kdsoap Instale kdsoap executando os seguintes comandos: mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ -D KDSoap_QT6=ON \ -D CMAKE_INSTALL_DOCDIR=/usr/share/doc/kdsoap-2.2.0 \ .. && make O pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) root: make install Conteúdo Aplicativos Instalados: kdwsdl2cpp-qt6 Bibliotecas Instaladas: libkdsoap-qt6.so e libkdsoap-server-qt6.so Diretórios Instalados: /usr/lib/cmake/KDSoap-Qt6, /usr/share/doc/kdsoap-2.2.0-qt6, /usr/include/KDSoapClient-Qt6. e /usr/include/KDSoapServer-Qt6 kdsoap-ws-discovery-client-0.4.0 Introdução ao kdsoap-ws-discovery-client O pacote kdsoap-ws-discovery-client contém uma biblioteca que fornece suporte para o protocolo WS-Discovery, um protocolo recente usado para descobrir serviços disponíveis em uma rede local de intercomunicação. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [5435]https://download.kde.org/stable/kdsoap-ws-discovery-client/kd soap-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 Dependências do kdsoap-ws-discovery-client Exigidas [5436]Doxygen-1.13.2, [5437]extra-cmake-modules-6.11.0 e [5438]kdsoap-2.2.0 Instalação do kdsoap-ws-discovery-client Instale kdsoap-ws-discovery-client executando os seguintes comandos: mkdir build && cd build && cmake -D CMAKE_INSTALL_PREFIX=/usr \ -D CMAKE_BUILD_TYPE=Release \ -D CMAKE_SKIP_INSTALL_RPATH=ON \ -D QT_MAJOR_VERSION=6 \ -W no-dev .. && make Para testar os resultados, emita: make test. Agora, como o(a) usuário(a) root: make install && mv -v /usr/share/doc/KDSoapWSDiscoveryClient{,-0.4.0} Explicações do Comando -D CMAKE_SKIP_INSTALL_RPATH=ON: Essa chave faz com que cmake remova caminhos de pesquisa de biblioteca rigidamente codificados (rpath) ao instalar um arquivo binário executável ou uma biblioteca compartilhada. Esse pacote não precisa do rpath depois de instalado no local padrão, e o rpath ocasionalmente pode causar efeitos indesejados ou até mesmo problemas de segurança. mv -v /usr/share/doc/KDSoapWSDiscoveryClient[...]:: Esse comando move a documentação para um diretório versionado. -D QT_MAJOR_VERSION=6: Esse parâmetro informa ao sistema de construção para construir a versão Qt6 deste pacote em vez da versão Qt5. -D BUILD_QCH=ON: Essa opção informa ao sistema de construção para criar documentação que pode ser usada com QtCreator, QtAssistant ou KDevelop. Conteúdo Aplicativos Instalados: None Bibliotecas Instaladas: libKDSoapWSDiscoveryClient.so Diretórios Instalados: /usr/include/KDSoapWSDiscoveryClient, /usr/lib/cmake/KDSoapWSDiscoveryClient e /usr/share/doc/KDSoapWSDiscoveryClient-0.4.0 Descrições Curtas libKDSoapWSDiscoveryClient.so fornece uma implementação do protocolo WS-Discovery usando KDSoap ldns-1.8.4 Introdução ao ldns "ldns" é uma biblioteca "DNS" rápida com a meta de simplificar a programação "DNS" e permitir que os(as) desenvolvedores(as) criem facilmente o software em conformidade com os "RFCs" atuais e os rascunhos da Internet. Esses pacotes também incluem a ferramenta "drill". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [5439]https://www.nlnetlabs.nl/downloads/ldns/ldns-1.8.4.tar.gz * Transferência (FTP): * Soma de verificação MD5 da transferência: 94ea1ed8fc7095bef003b64b53b71ec7 * Tamanho da transferência: 1,2 MB * Espaço em disco estimado exigido: 31 MB (com documentos) * Tempo de construção estimado: 0,2 UPC (com os documentos) Dependências do "ldns" Opcionais [5440]make-ca-1.15 e [5441]libpcap-1.10.5 (para programas exemplo), [5442]SWIG-4.3.0 (para ligações Python) e [5443]Doxygen-1.13.2 (para documentação HTML) Instalação do ldns Instale o "ldns" executando os seguintes comandos: ./configure --prefix=/usr \ --sysconfdir=/etc \ --disable-static \ --with-drill && make Se você tiver o "[5444]Doxygen-1.13.2" instalado e desejar construir a documentação "HTML", [então] execute o seguinte comando: make doc Esse pacote não vem com uma suíte de teste funcional. Agora, como o(a) usuário(a) "root": make install Se você construiu a documentação "HTML", [então] instale-a executando os seguintes comandos como o(a) usuário(a) "root": install -v -m755 -d /usr/share/doc/ldns-1.8.4 && install -v -m644 doc/html/* /usr/share/doc/ldns-1.8.4 Explicações do Comando --disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas. --with-drill: Essa opção habilita a construção da ferramenta "drill" (usada para obter informações de depuração a partir do "DNS(SEC)") --disable-dane-ta-usage: Essa opção desabilita o suporte a "DANE-TA" ("DNS-Based Authentication of Named Entities"). Ele é necessário somente se o "OpenSSL-1.1.0" ou posterior não estiver instalado. --with-examples: Essa opção habilita a construção dos aplicativos de exemplo. --with-pyldns: Essa opção habilita construção das ligações Python. Se você usar essa opção, precisará adicionar PYTHON=/usr/bin/python3 à linha do configure também. Conteúdo Aplicativos Instalados: drill e ldns-config Biblioteca Instalada: libldns.so Diretórios Instalados: /usr/include/ldns e /usr/share/doc/ldns-1.8.4 Descrições Curtas drill é uma ferramenta como o "dig" oriunda de "[5445]Utilitários BIND-9.20.6" projetada para obter todo tipo de informação do "DNS" ldns-config mostra sinalizadores de compilador e vinculador para uso do "ldns" libldns.so fornece as funções da "API" do "ldns" para aplicativos libevent-2.1.12 Introdução ao libevent "libevent" é uma biblioteca de logiciário de notificação de eventos assíncronos. A "API" da "libevent" fornece um mecanismo para executar uma função de retorno de chamada quando um evento específico ocorre em um descritor de arquivo ou depois de um tempo limite ter sido atingido. Além disso, "libevent" também suporta retornos de chamada devido a sinais ou tempos limite regulares. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [5446]https://github.com/libevent/libevent/releases/download/releas e-2.1.12-stable/libevent-2.1.12-stable.tar.gz * Transferência (FTP): * 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) Dependências do "libevent" Opcionais [5447]Doxygen-1.13.2 (para a documentação da "API") Instalação do libevent Primeiro, corrija um problema que impede "event_rpcgen.py" de funcionar: sed -i 's/python/&3/' event_rpcgen.py Instale o "libevent" executando os seguintes comandos: ./configure --prefix=/usr --disable-static && make Se você tiver o "[5448]Doxygen-1.13.2" instalado e desejar construir a documentação da "API", [então] emita: doxygen Doxyfile Para testar os resultados, emita: make verify. Seis testes em cada suíte relacionados a regress_ssl.c e regress_http.c são conhecidos por falharem devido a incompatibilidades com o OpenSSL-3. Alguns testes que estão relacionados a regress_dns.c também são conhecidos por falharem intermitentemente devido a tempos limite de teste insuficientes. Agora, como o(a) usuário(a) "root": make install Se você construiu a documentação da "API", [então] instale-a emitindo os seguintes comandos como o(a) usuário(a) "root": install -v -m755 -d /usr/share/doc/libevent-2.1.12/api && cp -v -R doxygen/html/* \ /usr/share/doc/libevent-2.1.12/api Explicações do Comando --disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas. Conteúdo Aplicativo Instalado: event_rpcgen.py Bibliotecas Instaladas: libevent_core.so, libevent_extra.so, libevent_openssl.so, libevent_pthreads.so e libevent.so Diretório Instalado: /usr/include/event2 e /usr/share/doc/libevent-2.1.12 libmnl-1.0.5 Introdução ao libmnl A biblioteca "libmnl" fornece uma biblioteca minimalista de espaço de usuário(a) orientada para desenvolvedores(as) "Netlink". Existem muitas tarefas comuns na análise, validação e construção do cabeçalho "Netlink" e dos "TLVs" que são repetitivas e fáceis de errar. Essa biblioteca visa a fornecer ajudantes simples que te permitem reusar código e evitar a reinvenção da roda. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [5449]https://netfilter.org/projects/libmnl/files/libmnl-1.0.5.tar. bz2 * Transferência (FTP): * 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 Dependências do "libnma" Opcionais [5450]Doxygen-1.13.2 Instalação do libmnl Instale o "libmnl" executando os seguintes comandos: ./configure --prefix=/usr && make Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) "root": make install Conteúdo Biblioteca Instalada: libmnl.so Descrições Curtas libmnl.so fornece funções para análise, validação e construção do cabeçalho "Netlink" e "TLVs" libndp-1.9 Introdução ao libndp O pacote "libndp" fornece um envólucro para o "Neighbor Discovery Protocol" do "IPv6". Ele também fornece uma ferramenta chamada "ndptool" para enviar e receber mensagens "NDP". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [5451]http://libndp.org/files/libndp-1.9.tar.gz * Transferência (FTP): * Soma de verificação MD5 da transferência: 9d486750569e7025e5d0afdcc509b93c * Tamanho da transferência: 368 KB * Espaço em disco estimado exigido: 2,5 MB * Tempo de construção estimado: menos que 0,1 UPC Instalação do libndp Instale o "libndp" executando o seguinte comando: ./configure --prefix=/usr \ --sysconfdir=/etc \ --localstatedir=/var \ --disable-static && make Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) "root": make install Conteúdo Aplicativo Instalado: ndptool Biblioteca Instalada: libndp.so Diretório Instalado: Nenhum(a) Descrições Curtas ndptool é uma ferramenta para enviar e receber mensagens "NDP" libndp.so fornece um envólucro para o "Neighbor Discovery Protocol" do "IPv6" libnl-3.11.0 Introdução ao libnl A suíte "libnl" é uma coleção de bibliotecas que fornecem "APIs" para interfaces do núcleo Linux baseadas no protocolo "netlink". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [5452]https://github.com/thom311/libnl/releases/download/libnl3_11_ 0/libnl-3.11.0.tar.gz * Transferência (FTP): * 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 Opcional * Transferência (HTTP): [5453]https://github.com/thom311/libnl/releases/download/libnl3_11_ 0/libnl-doc-3.11.0.tar.gz * Transferência (FTP): * Soma de verificação MD5 da transferência: 5c74044c92f2eb08de69cce88714cd1b * Tamanho da transferência: 3,8 MB Instalação do libnl Instale o "libnl" executando os seguintes comandos: ./configure --prefix=/usr \ --sysconfdir=/etc \ --disable-static && make Nota Se o comando make foi executado com várias tarefas paralelas habilitadas, ele poderá interromper o modo de terminal e causar alguns efeitos visuais “divertidos”. Na pior das hipóteses, esse problema possivelmente cause entradas geradas de teclado não exibidas na tela (mas você ainda consegue executar qualquer comando se conseguir digitá-lo corretamente). Execute o comando reset para corrigir esse problema. Se desejar executar os testes, verifique se as seguintes opções estão habilitadas na configuração do núcleo e recompile o núcleo se necessário. Alguns deles possivelmente não sejam estritamente necessários, mas deveriam suportar uma cobertura completa de testes. General setup ---> -*- Namespaces support ---> [NAMESPACES] [*] User namespace [USER_NS] [*] Network namespace [NET_NS] [*] Networking support ---> [NET] Networking options ---> [*] TCP/IP networking [INET] [*] IP: advanced router [IP_ADVANCED_ROUTER] [*] IP: policy routing [IP_MULTIPLE_TABLES] <*/M> IP: tunneling [NET_IPIP] <*/M> IP: GRE demultiplexer [NET_IPGRE_DEMUX] <*/M> IP: GRE tunnels over IP [NET_IPGRE] <*/M> Virtual (secure) IP: tunneling [NET_IPVTI] <*> The IPv6 protocol ---> [IPV6] <*/M> IPv6: IPv6-in-IPv4 tunnel (SIT driver) [IPV6_SIT] <*/M> IPv6: IP-in-IPv6 tunnel (RFC2473) [IPV6_TUNNEL] [*] IPv6: Multiple Routing Tables [IPV6_MULTIPLE_TABLES] [*] Network packet filtering framework (Netfilter) ---> [NETFILTER] Core Netfilter Configuration ---> <*/M> Netfilter nf_tables support [NF_TABLES] [*] Netfilter nf_tables netdev tables support [NF_TABLES_NETDEV] {*/M} Netfilter packet duplication support [NF_DUP_NETDEV] <*/M> Netfilter nf_tables netdev packet forwarding support ... [NFT_FWD_NETDEV] <*/M> 802.1d Ethernet Bridging [BRIDGE] <*/M> 802.1Q/802.1ad VLAN Support [VLAN_8021Q] -*- L3 Master device support [NET_L3_MASTER_DEV] Device Drivers ---> [*] Network device support ---> [NETDEVICES] [*] Network core driver support [NET_CORE] <*/M> Bonding driver support [BONDING] <*/M> Dummy net driver support [DUMMY] <*/M> Intermediate Functional Block support [IFB] <*/M> MAC-VLAN support [MACVLAN] <*/M> MAC-VLAN based tap driver [MACVTAP] <*/M> IP-VLAN support [IPVLAN] <*/M> Virtual eXtensible Local Area Network (VXLAN) [VXLAN] <*/M> IEEE 802.1AE MAC-level encryption (MACsec) [MACSEC] <*/M> Virtual ethernet pair device [VETH] <*/M> Virtual Routing and Forwarding (Lite) [NET_VRF] Para testar os resultados, emita: make check. Agora, como o(a) usuário(a) "root": make install Se você desejar instalar a documentação da "API", [então] como o(a) usuário(a) "root": mkdir -vp /usr/share/doc/libnl-3.11.0 && tar -xf ../libnl-doc-3.11.0.tar.gz --strip-components=1 --no-same-owner \ -C /usr/share/doc/libnl-3.11.0 Explicações do Comando --disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas. --disable-cli: Use esse parâmetro se não quiser instalar ferramentas "CLI" fornecidas pelo pacote. Conteúdo Aplicativos Instalados: genl-ctrl-list, idiag-socket-details, nl-class-add, nl-class-delete, nl-classid-lookup, nl-class-list, nl-cls-add, nl-cls-delete, nl-cls-list, nl-link-list, nl-pktloc-lookup, nl-qdisc-add, nl-qdisc-delete, nl-qdisc-list e quarenta e oito (48) outros aplicativos auxiliares com prefixos "nl-" e "nf-" Bibliotecas Instaladas: libnl-3.so, libnl-cli-3.so, libnl-genl-3.so, libnl-idiag-3.so, libnl-nf-3.so, libnl-route-3.so, libnl-xfrm-3.so e módulos "CLI" sob a árvore "/usr/lib/libnl/cli" Diretórios Instalados: /etc/libnl, /usr/include/libnl3, /usr/lib/libnl e /usr/share/doc/libnl-3.11.0 Descrições Curtas genl-ctrl-list consulta o controlador "Generic Netlink" no núcleo e imprime uma lista de todas as famílias "Generic Netlink" registradas, incluindo a versão da interface que tenha sido registrada nl-class-add adiciona, atualiza ou substitui Classes de Tráfego nl-class-delete deleta Classes de Tráfego nl-classid-lookup é usado para resolver nomes de "qdisc"/classe para valores "classid" e vice-versa nl-class-list lista Classes de Tráfego nl-cls-add adiciona um classificador nl-cls-delete deleta um classificador nl-cls-list lista classificadores nl-link-list despeja atributos de link nl-pktloc-lookup permite a consulta de definições de localização de pacotes nl-qdisc-add adiciona disciplinas de filas ("qdiscs") no núcleo nl-qdisc-delete deleta disciplinas de filas ("qdiscs") no núcleo nl-qdisc-list lista disciplinas de filas ("qdiscs") no núcleo libnl*-3.so Essas bibliotecas contêm funções de "API" usadas para acessar interfaces "Netlink" no núcleo Linux libnma-1.10.6 Introdução ao libnma O pacote "libnma" contém uma implementação das funções "GUI" do "NetworkManager". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [5454]https://download.gnome.org/sources/libnma/1.10/libnma-1.10.6. tar.xz * Transferência (FTP): * Soma de verificação MD5 da transferência: 71c7ce674fea1fae8f1368a7fcb6ff43 * Tamanho da transferência: 688 KB * Espaço em disco estimado exigido: 15 MB * Tempo de construção estimado: 0,1 UPC (Usando paralelismo=4; com o teste) Dependências do "libnma" Exigidas [5455]Gcr-3.41.2, [5456]GTK-3.24.48, [5457]ISO Codes-4.17.0 e [5458]NetworkManager-1.50.0 Recomendadas [5459]GTK-4.16.12 e [5460]Vala-0.56.17 Opcionais [5461]mobile-broadband-provider-info Instalação do libnma Instale o "libnma" executando os seguintes comandos: mkdir build && cd build && meson setup .. \ --prefix=/usr \ --buildtype=release \ -D gtk_doc=false \ -D libnma_gtk4=true \ -D mobile_broadband_provider_info=false && ninja Para testar os resultados, emita: ninja test. Agora, como o(a) usuário(a) "root": ninja install Explicações do Comando --buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados. -D gtk_doc=false: Esse parâmetro desabilita gerar documentação da API usando gtk-doc. Se você tiver o [5462]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 [5463]gnome-control-center-47.4. -D mobile_broadband_provider_info=false: Essa chave desabilita o suporte a WWAN porque as informações do provedor de banda larga móvel não estão no BLFS. Omita essa chave se você a tiver instalada e desejar habilitar o suporte a WWAN. Conteúdo Aplicativos Instalados: Nenhum(a) Bibliotecas Instaladas: libnma.so e libnma-gtk4.so Diretórios Instalados: /usr/include/libnma Descrições Curtas libnma.so contém a biblioteca "GUI" do "NetworkManager" libnma-gtk4.so contém a versão "GTK-4" da biblioteca "GUI" do "NetworkManager" libnsl-2.0.1 Introdução ao libnsl O pacote "libnsl" contém a interface pública cliente para "NIS(YP)". Ele substitui a biblioteca "NIS" que costumava estar na "glibc". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [5464]https://github.com/thkukuk/libnsl/releases/download/v2.0.1/li bnsl-2.0.1.tar.xz * Transferência (FTP): * 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 Dependências do "libnsl" Exigidas [5465]libtirpc-1.3.6 Instalação do libnsl Instale o "libnsl" executando os seguintes comandos: ./configure --sysconfdir=/etc --disable-static && make Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) "root": make install Explicações do Comando --disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas. Conteúdo Aplicativos Instalados: Nenhum(a) Bibliotecas Instaladas: libnsl.so Diretórios Instalados: /usr/include/rpcsvc Descrições Curtas libnsl.so fornece as funções da "API" "NIS" ("YP") exigidas por outros aplicativos libpcap-1.10.5 Introdução ao libpcap "libpcap" fornece funções para captura de pacotes em nível de usuário(a), usadas no monitoramento de atividade de rede de intercomunicação de baixo nível. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [5466]https://www.tcpdump.org/release/libpcap-1.10.5.tar.gz * Transferência (FTP): * Soma de verificação MD5 da transferência: 0dc69ed81464e7a255715fa685daf134 * Tamanho da transferência: 952 KB * Espaço em disco estimado exigido: 10 MB * Tempo de construção estimado: menos que 0,1 UPC Dependências do "libpcap" Opcionais [5467]BlueZ-5.79, [5468]libnl-3.11.0, [5469]libusb-1.0.27, distribuição de logiciário para o [5470]DAG e a gama de placas passivas de monitoramento de atividade de rede de intercomunicação [5471]Septel. Instalação do libpcap Instale o "libpcap" executando os seguintes comandos: ./configure --prefix=/usr && make Esse pacote não vem com uma suíte de teste. Se você desejar desabilitar a instalação da biblioteca estática, [então] use este "sed": sed -i '/INSTALL_DATA.*libpcap.a\|RANLIB.*libpcap.a/ s/^/#/' Makefile Agora, como o(a) usuário(a) "root": make install Conteúdo Aplicativo Instalado: pcap-config Bibliotecas Instaladas: libpcap.so Diretório Instalado: /usr/include/pcap Descrições Curtas pcap-config fornece informações de configuração para a "libpcap" libpcap.{a,so} são bibliotecas usadas para captura de pacotes em nível de usuário(a) libpsl-0.21.5 Introdução ao libpsl O pacote "libpsl" fornece uma biblioteca para acessar e resolver informações originárias da "Public Suffix List" ("PSL"). O "PSL" é um conjunto de nomes de domínio além dos sufixos padrão, como ".com". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [5472]https://github.com/rockdaboot/libpsl/releases/download/0.21.5 /libpsl-0.21.5.tar.gz * Transferência (FTP): * 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) Dependências do "libpsl" Recomendadas [5473]libidn2-2.3.7 e [5474]libunistring-1.3 Opcionais [5475]GTK-Doc-1.34.0 (para documentação), [5476]ICU-76.1 (pode ser usado em vez de libidn2), [5477]libidn-1.42 (pode ser usado em vez de libidn2), [5478]Valgrind-3.24.0 (para testes) Instalação do libpsl Instale o "libpsl" executando os seguintes comandos: mkdir build && cd build && meson setup --prefix=/usr --buildtype=release && ninja Para testar os resultados, emita: ninja test. Agora, como o(a) usuário(a) "root": ninja install Explicações do Comando --buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados. Conteúdo Aplicativo Instalado: psl Biblioteca Instalada: libpsl.so Diretórios Instalados: Nenhum(a) Descrições Curtas psl consulta a Lista Pública de Sufixos libpsl.so contém uma biblioteca usada para acessar a Lista Pública de Sufixos libslirp-4.9.0 Introdução ao libslirp "Libslirp" é uma biblioteca de atividade em rede de intercomunicação em modo de usuário(a) usada por máquinas virtuais, contêineres ou diversas ferramentas. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [5479]https://gitlab.freedesktop.org/slirp/libslirp/-/archive/v4.9. 0/libslirp-v4.9.0.tar.bz2 * Transferência (FTP): * 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 Dependências do "libslirp" Exigidas [5480]GLib-2.82.5 Instalação do Libslirp Instale o "libslirp" executando os seguintes comandos: mkdir build && cd build && meson setup --prefix=/usr --buildtype=release .. && ninja Para testar os resultados, emita: ninja test Agora, como o(a) usuário(a) "root": ninja install Explicações do Comando --buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados. Conteúdo Aplicativo Instalado: Nenhum(a) Biblioteca Instalada: libslirp.so Diretório Instalado: /usr/include/slirp Descrições Curtas libclirp.so contém funções de emulação "TCP-IP" em modo de usuário(a) libsoup-2.74.3 Introdução ao libsoup A "libsoup" é uma biblioteca "HTTP" cliente/servidor para o "GNOME". Ela usa "GObject" e o "loop" principal "GLib" para integração com aplicativos "GNOME" e também tem uma "API" assíncrona para uso em aplicativos em camadas. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [5481]https://download.gnome.org/sources/libsoup/2.74/libsoup-2.74. 3.tar.xz * Transferência (FTP): * Soma de verificação MD5 da transferência: 8f657fd301a213629204b3320c35d75a * Tamanho da transferência: 1,4 MB * Espaço em disco estimado exigido: 17 MB (com testes) * Tempo de construção estimado: 0,3 UPC (Usando paralelismo=4; com testes) Dependências do "libsoup" Exigidas [5482]glib-networking-2.80.1, [5483]libpsl-0.21.5, [5484]libxml2-2.13.6 e [5485]SQLite-3.49.1 Recomendadas [5486]GLib-2.82.5 (com GObject Introspection) e [5487]Vala-0.56.17 Opcionais [5488]Apache-2.4.63 (exigido para executar a suíte de teste), [5489]Brotli-1.1.0, [5490]cURL-8.12.1 (exigido para executar a suíte de teste), [5491]MIT Kerberos V5-1.21.3 (exigido para executar a suíte de teste), [5492]GTK-Doc-1.34.0, [5493]PHP-8.4.4 compilado com suporte XMLRPC-EPI (usado somente para os testes de regressão XMLRPC), [5494]Samba-4.21.4 (ntlm_auth é exigido para executar a suíte de teste) e [5495]sysprof Instalação do libsoup Instale o "libsoup" executando os seguintes comandos: mkdir build && cd build && meson setup --prefix=/usr \ --buildtype=release \ -D vapi=enabled \ -D gssapi=disabled \ -D sysprof=disabled \ .. && ninja Para testar os resultados, emita: "ninja test". Um teste chamado "ssl-test" é conhecido por falhar. Agora, como o(a) usuário(a) "root": ninja install Explicações do Comando --buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados. -D vapi=disabled: Use isso se não tiver instalado o Vala, por exemplo, porque você não está construindo o GNOME. -D doc=enabled: Use essa opção se quiser construir a documentação. Observe que você precisa ter o [5496]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 [5497]sysprof se o git estiver disponível ou usará a versão instalada se estiver presente no sistema. Se você precisar de perfilamento, remova essa opção. Conteúdo Aplicativos Instalados: Nenhum(a) Bibliotecas Instaladas: libsoup-2.4.so e libsoup-gnome-2.4.so Diretórios Instalados: /usr/include/libsoup-2.4, /usr/include/libsoup-gnome-2.4 e /usr/share/gtk-doc/html/libsoup-2.4 Descrições Curtas libsoup-2.4.so fornece funções para conexões assíncronas "HTTP" libsoup-gnome-2.4.so fornece recursos específicos do "GNOME" libsoup-3.6.4 Introdução ao libsoup3 A "libsoup3" é uma biblioteca "HTTP" cliente/servidor para o "GNOME". Ela usa "GObject" e o "loop" principal "GLib" para integração com aplicativos "GNOME" e também tem uma "API" assíncrona para uso em aplicativos em camada. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [5498]https://download.gnome.org/sources/libsoup/3.6/libsoup-3.6.4. tar.xz * Transferência (FTP): * Soma de verificação MD5 da transferência: b42bfcd87a78b82272d2004976e10766 * Tamanho da transferência: 1,5 MB * Espaço em disco estimado exigido: 37 MB (com testes) * Tempo de construção estimado: 0,3 UPC (Usando paralelismo=4; com testes) Dependências do "libsoup3" Exigidas [5499]glib-networking-2.80.1, [5500]libpsl-0.21.5, [5501]libxml2-2.13.6, [5502]nghttp2-1.64.0 e [5503]SQLite-3.49.1 Recomendadas [5504]GLib-2.82.5 (com GObject Introspection) e [5505]Vala-0.56.17 Opcionais [5506]Apache-2.4.63 (exigido para executar a suíte de teste), [5507]Brotli-1.1.0, [5508]cURL-8.12.1 (exigido para executar a suíte de teste), [5509]Gi-DocGen-2025.3, [5510]MIT Kerberos V5-1.21.3 (exigido para executar a suíte de teste), [5511]PHP-8.4.4 compilado com suporte XMLRPC-EPI (usado somente para os testes de regressão XMLRPC), [5512]Samba-4.21.4 (ntlm_auth é exigido para executar a suíte de teste), [5513]sysprof e [5514]wstest Instalação do libsoup3 Corrija o caminho de instalação da documentação da "API": sed 's/apiversion/soup_version/' -i docs/reference/meson.build Instale o "libsoup3" executando os seguintes comandos: mkdir build && cd build && meson setup --prefix=/usr \ --buildtype=release \ --wrap-mode=nofallback \ .. && ninja Para testar os resultados, emita: ninja test. Agora, como o(a) usuário(a) "root": ninja install Explicações do Comando --buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados. --wrap-mode=nofallback: Essa chave impede meson de usar substitutos de subprojeto para quaisquer declarações de dependência nos arquivos de construção, impedindo-o de baixar quaisquer dependências opcionais que não estejam instaladas no sistema. -D docs=enabled: Se [5515]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 [5516]Gi-DocGen-2025.3 não estiver instalado. Conteúdo Aplicativos Instalados: Nenhum(a) Bibliotecas Instaladas: libsoup-3.0.so Diretórios Instalados: /usr/include/libsoup-3.0, /usr/share/doc/libsoup-3.6.4 (instalada somente se gi-docgen estiver disponível) Descrições Curtas libsoup-3.0.so fornece funções para conexões assíncronas "HTTP" libtirpc-1.3.6 Introdução ao libtirpc O pacote "libtirpc" contém bibliotecas que suportam aplicativos que usam a "API" "Remote Procedure Call" ("RPC"). Ele substitui o "RPC", mas não as entradas da biblioteca "NIS" que costumavam estar na "glibc". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [5517]https://downloads.sourceforge.net/libtirpc/libtirpc-1.3.6.tar .bz2 * Transferência (FTP): * 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 Dependências do "libtirpc" Opcionais [5518]MIT Kerberos V5-1.21.3 para a "GSSAPI" Instalação do libtirpc Nota Se atualizar esse pacote, [então] você também precisará atualizar qualquer versão existente de "[5519]rpcbind-1.2.7" ./configure --prefix=/usr \ --sysconfdir=/etc \ --disable-static \ --disable-gssapi && make Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) "root": make install Explicações do Comando --disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas. --disable-gssapi: Essa chave é necessária se nenhum "GSSAPI" estiver instalado. Remova essa chave se você tiver uma instalada (por exemplo "[5520]MIT Kerberos V5-1.21.3") e desejar usá-la. Conteúdo Aplicativos Instalados: Nenhum(a) Bibliotecas Instaladas: libtirpc.so Diretório Instalado: /usr/include/tirpc Descrições Curtas libtirpc.so fornece as funções da "API" "Remote Procedure Call" ("RPC") exigidas por outros aplicativos neon-0.34.0 Introdução ao neon "neon" é uma biblioteca cliente "HTTP" e "WebDAV", com uma interface "C". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [5521]https://notroj.github.io/neon/neon-0.34.0.tar.gz * Transferência (FTP): * Soma de verificação MD5 da transferência: 8796f3ef99998f21465f9135b26afd40 * Tamanho da transferência: 908 KB * Espaço em disco estimado exigido: 8,7 MB (adicionais 52 MB para testes) * Tempo de construção estimado: 0,1 UPC (adicionar 0,1 UPC para testes) Dependências do "neon" Opcionais [5522]GnuTLS-3.8.9, [5523]libxml2-2.13.6, [5524]MIT Kerberos V5-1.21.3, [5525]nss-3.108 (para alguns testes), [5526]xmlto-0.0.29 (para regenerar a documentação), [5527]libproxy e [5528]PaKChoiS Instalação do neon Instale o "neon" executando os seguintes comandos: ./configure --prefix=/usr \ --with-ssl \ --enable-shared \ --disable-static && make Para testar os resultados, emita: make check. Se você desejar regenerar a documentação, emita: make docs Agora, como o(a) usuário(a) "root": make install Explicações do Comando --with-ssl: Essa chave habilita o suporte "SSL" usando o "OpenSSL". O "GnuTLS" pode ser usado em vez disso, passando-se "--with-ssl=gnutls" e "--with-ca-bundle=/etc/pki/tls/certs/ca-bundle.crt" para o conjunto de comandos sequenciais "configure". --disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas. Conteúdo Aplicativo Instalado: neon-config Biblioteca Instalada: libneon.so Diretórios Instalados: /usr/include/neon e /usr/share/doc/neon-0.34.0 Descrições Curtas neon-config é um conjunto de comandos sequenciais que fornece informações relativas a uma cópia instalada da biblioteca "neon" libneon.so é usado como uma interface de alto nível para métodos comuns" HTTP" e "WebDAV" nghttp2-1.64.0 Introdução ao nghttp2 "nghttp2" é uma implementação de "HTTP/2" e do algoritmo de compressão de cabeçalho dele, "HPACK". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [5529]https://github.com/nghttp2/nghttp2/releases/download/v1.64.0/ nghttp2-1.64.0.tar.xz * Transferência (FTP): * 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 Dependências do "nghttp2" Recomendadas [5530]libxml2-2.13.6 Opcionais Os seguintes são usados somente se construir o pacote completo em vez de somente as bibliotecas principais: [5531]Boost-1.87.0, [5532]c-ares-1.34.4, [5533]cython-3.0.12, [5534]jansson-2.14, [5535]libevent-2.1.12, [5536]sphinx-8.2.1, [5537]jemalloc, [5538]libev, [5539]mruby e [5540]Spdylay. Instalação do nghttp2 Instale o "nghttp2" executando os seguintes comandos: ./configure --prefix=/usr \ --disable-static \ --enable-lib-only \ --docdir=/usr/share/doc/nghttp2-1.64.0 && make Para testar os resultados, emita: make check. Agora, como o(a) usuário(a) "root": make install Explicações do Comando --disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas. --enable-lib-only: constrói somente a "libnghttp2". Omita essa chave se você gostaria de construir os aplicativos de exemplo, as ligações "Python" ou a biblioteca "C++" "asio". Conteúdo Aplicativos Instalados: Nenhum(a) Bibliotecas Instaladas: libnghttp2.so Diretórios Instalados: /usr/include/nghttp2, /usr/share/nghttp2 e /usr/share/doc/nghttp2-1.64.0 Descrições Curtas libnghttp2.so uma implementação do "Hypertext Transfer Protocol" versão 2 em "C" rpcsvc-proto-1.4.4 Introdução ao rpcsvc-proto O pacote "rpcsvc-proto" contém os arquivos e cabeçalhos do protocolo "rcpsvc", anteriormente incluídos na "glibc", que não estão incluídos na substituição "[5541]libtirpc-1.3.6", junto com o aplicativo "rpcgen". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [5542]https://github.com/thkukuk/rpcsvc-proto/releases/download/v1. 4.4/rpcsvc-proto-1.4.4.tar.xz * Transferência (FTP): * 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 Instalação do rpcsvc-proto Instale o "rpcsvc-proto" executando os seguintes comandos: ./configure --sysconfdir=/etc && make Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) "root": make install Conteúdo Aplicativos Instalados: rpcgen Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /usr/include/rpcsvc Descrições Curtas rpcgen Gera código "C" para implementar o protocolo "RPC" Serf-1.3.10 Introdução ao Serf O pacote "Serf" contém uma biblioteca cliente "HTTP" baseada em "C" construída sobre a biblioteca "Apache Portable Runtime" ("APR"). Ela multiplexa conexões, executando a comunicação de leitura/escrita assincronamente. As cópias e transformações da memória são reduzidas ao mínimo para fornecer operação de alto desempenho. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [5543]https://archive.apache.org/dist/serf/serf-1.3.10.tar.bz2 * Transferência (FTP): * Soma de verificação MD5 da transferência: 5320087299084c297eff8e1dacfab1af * Tamanho da transferência: 148 KB * Espaço em disco estimado exigido: 2,4 MB * Tempo de construção estimado: menos que 0,1 UPC Dependências do "Serf" Exigidas [5544]Apr-Util-1.6.3 e [5545]SCons-4.8.1 Opcionais [5546]MIT Kerberos V5-1.21.3 (para suporte GSSAPI) Instalação do Serf Instale o "Serf" executando os seguintes comandos: sed -i "/Append/s:RPATH=libdir,::" SConstruct && sed -i "/Default/s:lib_static,::" SConstruct && sed -i "/Alias/s:install_static,::" SConstruct && scons PREFIX=/usr Esse pacote não vem com uma suíte de teste funcional. Agora, como o(a) usuário(a) "root": scons PREFIX=/usr install Explicações do Comando sed -i "...": O primeiro comando remove o caminho em tempo de execução de uma biblioteca compartilhada e os próximos dois comandos desabilitam a construção e instalação da biblioteca estática. GSSAPI=/usr: Use essa chave se você tiver instalado uma biblioteca "GSSAPI" e quiser que o "serf" a use. Conteúdo Aplicativos Instalados: Nenhum(a) Biblioteca Instalada: libserf-1.so Diretório Instalado: /usr/include/serf-1 Descrições Curtas libserf-1.so contém as funções da "API" do "Serf" uhttpmock-0.11.0 Introdução ao uhttpmock O pacote "uhttpmock" contém uma biblioteca para simular "APIs" de serviços da "web" que usem "HTTP" ou "HTTPS". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [5547]https://tecnocode.co.uk/downloads/uhttpmock/uhttpmock-0.11.0. tar.xz * Transferência (FTP): * 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) Dependências do "uhttpmock" Exigidas [5548]libsoup-3.6.4 Recomendadas [5549]GLib-2.82.5 (com GObject Introspection) e [5550]Vala-0.56.17 Opcionais [5551]GTK-Doc-1.34.0 Instalação do uhttpmock Instale o "uhttpmock" executando os seguintes comandos: mkdir build && cd build && meson setup .. \ --prefix=/usr \ --buildtype=release \ -D gtk_doc=false && ninja Para testar os resultados, emita: ninja test. Agora, como o(a) usuário(a) "root": ninja install Explicações do Comando --buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados. Conteúdo Aplicativos Instalados: Nenhum(a) Bibliotecas Instaladas: libuhttpmock-1.0.so Diretórios Instalados: /usr/include/libuhttpmock-1.0 e /usr/share/gtk-doc/html/libuhttpmock-1.0 Descrições Curtas libuhttpmock-1.0.so contém as funções da "API" do "uhttpmock" Capítulo 18. Navegadores da Web em Texto Pessoas que são novas em sistemas baseados em Unix tendem a fazer a pergunta "Por que diabos eu iria querer um navegador em modo texto? Vou compilar o X e usar o Firefox/Falkon/Tanto faz!". Aqueles(as) que já conhecem sistemas há algum tempo sabem que quando (não se) você consegue bagunçar tua instalação do navegador gráfico e precisa procurar algumas informações na web, um navegador baseado em console te salvará. Além disso, existem algumas pessoas que preferem usar um desses navegadores como método principal de navegação; seja para evitar a confusão e a largura de banda que acompanha as imagens ou porque eles podem usar um sintetizador de texto para fala que consegue ler a página para eles(as) (útil, por exemplo, para usuários(as) com deficiência visual ou cegos(as)). Neste capítulo você encontrará instruções de instalação para dois navegadores de console: Links-2.30 Introdução ao Links "Links" é um navegador "WWW" em modo texto e gráfico. Inclui suporte para renderização de tabelas e quadros, realça transferências em segundo plano, consegue exibir cores e tem muitos outros recursos. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [5552]http://links.twibright.com/download/links-2.30.tar.bz2 * Transferência (FTP): * Soma de verificação MD5 da transferência: dc56041551980c74dd354cd7c2882539 * Tamanho da transferência: 6,3 MB * Espaço em disco estimado exigido: 36 MB * Tempo de construção estimado: 0,2 UPC Dependências do "Links" Recomendadas [5553]libevent-2.1.12 Opcionais O modo gráfico exige pelo menos um de [5554]GPM-1.20.7 (suporte de mouse para ser usado com um console baseado em framebuffer), [5555]SVGAlib, [5556]DirectFB e [5557]um ambiente gráfico Para decodificar vários formatos de imagem, o Links consegue utilizar [5558]libavif-1.2.0, [5559]libpng-1.6.46, [5560]libjpeg-turbo-3.0.1, [5561]librsvg-2.59.2 e [5562]libtiff-4.7.0 Para descomprimir páginas da "web" que estejam comprimidas com o "Brotli", o "Links" consegue utilizar o "[5563]Brotli-1.1.0" Instalação do Links Instale o "Links" executando os seguintes comandos: ./configure --prefix=/usr --mandir=/usr/share/man && make Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) "root": make install && install -v -d -m755 /usr/share/doc/links-2.30 && install -v -m644 doc/links_cal/* KEYS BRAILLE_HOWTO \ /usr/share/doc/links-2.30 Explicações do Comando --enable-graphics: Essa chave habilita o suporte para modo gráfico. Configurando o Links Arquivos de Configuração ~/.links/* Informação de Configuração O "Links" armazena a configuração dele em arquivos por usuário(a) no diretório "~/.links". Esses arquivos são criados automaticamente quando o "links" for executado pela primeira vez. Conteúdo Aplicativo Instalado: links Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /usr/share/doc/links-2.30 Descrições Curtas links é um navegador "WWW" em modo texto e gráfico Lynx-2.9.2 Introdução ao Lynx "Lynx" é um navegador da "web" baseado em texto. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [5564]https://invisible-mirror.net/archives/lynx/tarballs/lynx2.9.2 .tar.bz2 * Transferência (FTP): * 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 Opcionais [5565]GnuTLS-3.8.9 (experimental, para substituir o openssl), [5566]libarchive-3.7.7, [5567]Zip-3.0, um [5568]MTA (que forneça um comando sendmail) e [5569]Sharutils-4.15.2 (para o programa uudecode) Instalação do Lynx Instale o "Lynx" executando os seguintes comandos: ./configure --prefix=/usr \ --sysconfdir=/etc/lynx \ --with-zlib \ --with-bzlib \ --with-ssl \ --with-screen=ncursesw \ --enable-locale-charset \ --datadir=/usr/share/doc/lynx-2.9.2 && make Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) "root": make install-full chgrp -v -R root /usr/share/doc/lynx-2.9.2/lynx_doc Explicações do Comando --sysconfdir=/etc/lynx: Esse parâmetro é usado para que os arquivos de configuração estejam localizados em /etc/lynx em vez de /usr/etc. --datadir=/usr/share/doc/lynx-2.9.2: Esse parâmetro é usado para que os arquivos da documentação sejam instalados em /usr/share/doc/lynx-2.9.2 em vez de /usr/share/lynx_{doc,help}. --with-zlib: Isso habilita o suporte para vincular a "libz" no "Lynx". --with-bzlib: Isso habilita o suporte para vincular a "libbz2" no "Lynx". --with-ssl: Isso habilita o suporte para vincular a "SSL" no "Lynx". --with-screen=ncursesw: Essa chave habilita o uso do suporte avançado a caracteres largos presente na biblioteca do sistema "NCurses". Isso é necessário para a exibição adequada de caracteres e quebra de linha em localidades multi byte. --enable-locale-charset: Essa chave permite que o "Lynx" deduza a codificação de caracteres adequada para a saída gerada de terminal a partir do local atual. Uma etapa de configuração ainda é necessária (veja-se abaixo), mas diferentemente da situação sem essa chave, a etapa de configuração se torna a mesma para todos(as) os(as) usuários(as) (sem a chave é preciso especificar explicitamente o conjunto de caracteres de exibição). Isso é importante para ambientes, como um "LiveCD", onde a quantidade de etapas específicas de configuração do sistema tem de ser reduzida ao mínimo. --enable-ipv6: Essa chave permite que o "Lynx" use "IPv6", juntamente com "IPv4". Use-a se o teu "ISP" fornecer uma configuração de "IPv6". --enable-nls: Essa chave permite que o "Lynx" imprima mensagens traduzidas (como perguntas relativas a "cookies" e certificados "SSL"). --with-gnutls: Isso habilita o suporte experimental para vincular o "GnuTLS" no "Lynx". Remova a chave "--with-ssl" se quiser usar o "GnuTLS". make install-full: Além da instalação padrão, esse alvo instala a documentação e os arquivos de ajuda. chgrp -v -R root /usr/share/doc/lynx-2.9.2/lynx_doc : Esse comando corrige a propriedade imprópria do grupo dos arquivos de documentação instalados. Configurando o Lynx Arquivos de Configuração /etc/lynx/lynx.cfg Informação de Configuração A maneira correta de obter o conjunto de caracteres de exibição é a de examinar a localidade atual. Entretanto, o "Lynx" não faz isso por padrão. Como o(a) usuário(a) "root", mude essa configuração: sed -e '/#LOCALE/ a LOCALE_CHARSET:TRUE' \ -i /etc/lynx/lynx.cfg O editor integrado no "Lynx" [5570]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 [5571]Vim-9.1.1166, configure essa opção como vi). Por padrão, o "Lynx" não salva "cookies" entre sessões. Novamente como o(a) usuário(a) "root", mude essa configuração: sed -e '/#PERSIST/ a PERSISTENT_COOKIES:TRUE' \ -i /etc/lynx/lynx.cfg Muitas outras configurações abrangentes a todo o sistema, como "proxies", também conseguem ser configuradas no arquivo "/etc/lynx/lynx.cfg". Conteúdo Aplicativo Instalado: lynx Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /etc/lynx e /usr/share/doc/lynx-2.9.2 Descrições Curtas lynx é um navegador de informações distribuído, baseado em texto e de uso geral para a "World Wide Web" Capítulo 19. Clientes de Mensagem/Notícias Os Clientes de Mensagem te ajudam a recuperar ("Fetchmail"), classificar ("Procmail"), ler e redigir respostas ("Heirloom mailx", "Mutt", "Pine", "Kmail", "Balsa", "Evolution", "SeaMonkey") para mensagem eletrônica. Os clientes de notícias também te ajudam a recuperar, classificar, ler e redigir respostas, mas essas mensagens viajam pela "USENET" (um sistema mundial de boletim informativo) usando o "Network News Transfer Protocol" ("NNTP"). Fetchmail-6.5.2 Introdução ao Fetchmail O pacote "Fetchmail" contém um aplicativo de recuperação de mensagem. Ele recupera mensagens a partir de servidores remotos de mensagem e as encaminha para o sistema de entrega da máquina local (cliente), de forma que então possam ser lidas por agentes normais usuários de mensagem. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [5572]https://downloads.sourceforge.net/fetchmail/fetchmail-6.5.2.t ar.xz * Transferência (FTP): * Soma de verificação MD5 da transferência: c2fa268271f44f4991e6a87804c90211 * Tamanho da transferência: 1,1 MB * Espaço em disco estimado exigido: 11 MB incluindo testes * Tempo de construção estimado: 0,1 UPC (incluindo testes) Dependências do "Fetchmail" Recomendadas um "MDA" local ([5573]Procmail-3.24) Opcionais [5574]MIT Kerberos V5-1.21.3 e [5575]libgssapi Opcional (para executar "fetchmailconf") [5576]Python-3.13.2, construído depois do [5577]Tk-8.6.16, com o pacote "[5578]py-future" Instalação do Fetchmail Crie um(a) usuário(a) dedicado(a) para o aplicativo "fetchmail". Emita os seguintes comandos como o(a) usuário(a) "root": useradd -c "Usuário(a) Fetchmail" -d /dev/null -g nogroup \ -s /bin/false -u 38 fetchmail Instale o "Fetchmail" executando os seguintes comandos: ./configure --prefix=/usr && make Para testar os resultados, emita: make check. Agora, como o(a) usuário(a) "root": make install && chown -v fetchmail:nogroup /usr/bin/fetchmail Configurando o Fetchmail Arquivos de Configuração ~/.fetchmailrc Informação de Configuração Nota Se você estiver se conectando a um servidor de mensagens que suporte "SSL"/"TLS" envolucrado ou modo "implícito" em uma porta dedicada (padrão 993), [então] você deveria usar "fetchmail --ssl" ou adicionar a opção "ssl" em um arquivo de controle de execução. cat > ~/.fetchmailrc << "EOF" # O arquivo de registro precisa existir quando o "fetchmail" for invocado, caso contrário ele # despejará os detalhes na tela. Como acontece com todos os registros, você prec isará 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 "postmast er" set postmaster poll SERVERNAME : user pass ; mda "/usr/bin/procmail -f %F -d %T"; EOF touch ~/fetchmail.log && chmod -v 0600 ~/.fetchmailrc Essa é uma configuração de exemplo que deveria ser suficiente para a maioria das pessoas. Você pode adicionar quantos(as) usuários(as) e servidores precisar usando a mesma sintaxe. man fetchmail: Procure a seção próxima ao final chamada "CONFIGURATION EXAMPLES". Ela dá alguns exemplos rápidos. Existem incontáveis outras opções de configuração quando você se acostumar. Se espera receber pouquíssimas mensagens, [então] você pode invocar o "fetchmail" quando desejar receber alguma mensagem. Mais comumente, ele é invocado ou no modo de processo de segundo plano, com a opção "-d", ou na linha de comando ou em ".fetchmailrc" (veja-se "DAEMON MODE" em "man fetchmailconf"), ou, alternativamente, é invocado a partir de uma tarefa do "cron". Conteúdo Aplicativos Instalados: fetchmail e fetchmailconf Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: Nenhum(a) Descrições Curtas fetchmail quando executado como um(a) usuário(a), isso carregará "~/.fetchmailrc" e baixará a mensagem apropriada fetchmailconf destina-se a ajudar você a configurar e a editar um arquivo de configuração ~/.fetchmailrc, usando uma interface GUI Tk. Ele foi escrito para Python e usa o módulo Tkinter mailx-12.5 Introdução ao Heirloom mailx O pacote "Heirloom mailx" (anteriormente conhecido como o pacote "Nail") contém o "mailx", um "Mail User Agent" de linha de comando derivado do "Berkeley Mail". Ele é destinado a fornecer a funcionalidade do comando "POSIX" "mailx" com suporte adicional para mensagens "MIME", "IMAP" (incluindo "cache"), "POP3", "SMTP", "S/MIME", encadeamento/classificação de mensagens, pontuação e filtragem. "Heirloom mailx" é especialmente útil para escrever conjuntos de comandos sequenciais e processamento em lote. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [5579]https://anduin.linuxfromscratch.org/BLFS/mailx/heirloom-mailx _12.5.orig.tar.gz * Transferência (FTP): * 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 Transferências Adicionais * Remendo exigido: [5580]https://www.linuxfromscratch.org/patches/blfs/12.3/heirloom-m ailx-12.5-fixes-1.patch Dependências do "Heirloom mailx" Opcionais [5581]nss-3.108, [5582]MIT Kerberos V5-1.21.3 (para autenticação "IMAP" "GSSAPI") e um [5583]MTA Instalação do Heirloom mailx Nota Esse pacote não suporta construção paralela. Instale o "Heirloom mailx" executando os seguintes comandos. patch -Np1 -i ../heirloom-mailx-12.5-fixes-1.patch && sed 's@" >> /etc/nail.rc ou individualmente para o(a) usuário(a) atual em "~/.mailrc": echo "set PAGER=" >> ~/.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=" >> /etc/nail.rc Dependendo de qual tipo de "[5584]MTA" esteja instalado, pode ser exigido configurar a variável "MAILDIR" de forma que o "mailx" esteja apto a encontrar as mensagens: echo "set MAILDIR=Maildir" >> /etc/nail.rc Conteúdo Aplicativos Instalados: mail, mailx e nail Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: Nenhum(a) Descrições Curtas mailx é um "Mail User Agent" de linha de comando compatível com o comando "mailx" encontrado em versões comerciais do Unix mail é um link simbólico para "mailx" nail é um link simbólico para "mailx" Mutt-2.2.14 Introdução ao Mutt O pacote "Mutt" contém um "Mail User Agent". Isso é útil para ler, escrever, responder, salvar e deletar tua mensagem eletrônica. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [5585]https://bitbucket.org/mutt/mutt/downloads/mutt-2.2.14.tar.gz * Transferência (FTP): * 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 Dependências do "Mutt" Recomendadas (para uma versão de texto do manual) [5586]Lynx-2.9.2 ou [5587]Links-2.30 (ou [5588]W3m ou [5589]ELinks) - por favor, leia-se a Observação. Opcionais [5590]Aspell-0.60.8.1, [5591]Cyrus SASL-2.1.28, [5592]DocBook-utils-0.6.14, [5593]GDB-16.2, [5594]GnuPG-2.4.7, [5595]GnuTLS-3.8.9, [5596]GPGME-1.24.2, [5597]libidn-1.42, [5598]MIT Kerberos V5-1.21.3, um [5599]MTA (que forneça um comando sendmail), [5600]slang-2.3.3, [5601]SQLite-3.49.1, [5602]libgssapi, [5603]Mixmaster, [5604]QDBM ou [5605]Tokyo Cabinet Observações de Editor(a): [5606]https://wiki.linuxfromscratch.org/blfs/wiki/mutt Instalação do Mutt Nota O "Mutt" vem com uma versão "HTML" do manual dele, mas a versão em texto não mais é fornecida porque diferenças na formatação de diferentes navegadores de texto em comparação com a versão enviada causaram reclamações. Para obter um arquivo de texto, os seguintes são usados em ordem de preferência: "lynx" com "overstriking" ("backspaces") para ênfase, "w3m" ou "elinks": os dois últimos aparentemente fornecem texto simples. O texto simples é geralmente preferido, a menos que se leia o manual "HTML", de forma que as instruções abaixo usam o "lynx" se disponível, ou então o "links" para produzir texto simples. Mutt exige um grupo chamado mail. Você pode adicionar esse grupo, se ele não existir, com este comando (como o(a) usuário(a) root): groupadd -g 34 mail Se não instalou um "[5607]MTA", [então] você precisa modificar a titularidade da propriedade de "/var/mail" com este comando: chgrp -v mail /var/mail Instale o "Mutt" executando os seguintes comandos: Para garantir que um manual de texto simples seja criado ao usar o "lynx" ou, caso contrário, para usar o "links" para produzi-lo (em vez do "elinks"), execute o seguinte comando: sed -e 's/ -with_backspaces//' \ -e 's/elinks/links/' \ -e 's/-no-numbering -no-references//' \ -i doc/Makefile.in Agora configure e construa o aplicativo: ./configure --prefix=/usr \ --sysconfdir=/etc \ --with-docdir=/usr/share/doc/mutt-2.2.14 \ --with-ssl \ --enable-external-dotlock \ --enable-pop \ --enable-imap \ --enable-hcache \ --enable-sidebar && make Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) "root": make install Nota Se usou um método "DESTDIR" para instalar somente em um local temporário como um(a) usuário(a) regular (como parte de um processo de gerenciamento de pacotes), [então] você precisará executar o seguinte como o(a) usuário(a) "root" depois de concluir a instalação real: chown root:mail /usr/bin/mutt_dotlock && chmod -v 2755 /usr/bin/mutt_dotlock Um arquivo "info" agora está instalado, de forma que você também precisará recriar o "/usr/share/info/dir" conforme descrito quando o "Texinfo" foi instalado no LFS. Explicações do Comando sed ... -e 's/ -with_backspaces//' ...: Isso desliga os backspaces usados para overstriking quando o lynx for usado, resultando em texto simples legível ao usar o view. sed ... -e 's/elinks/links/' ...: Isso permite que o links seja executado em vez do elinks que não está no livro. sed ... -e 's/-no-numbering -no-references//' ...: Isso remove chaves que não são entendidas pelo links. --enable-external-dotlock: Em algumas circunstâncias, o aplicativo "mutt-dotlock" não é criado. Essa chave garante que ele seja sempre criado. --enable-pop: Essa chave habilita o suporte a "POP3". --enable-imap: Essa chave habilita o suporte a "IMAP". --enable-hcache: Essa chave habilita o "caching" de cabeçalho. --enable-sidebar: Essa chave habilita o suporte para a barra lateral (uma lista de caixas de mensagens). Ela está desligado por padrão, mas pode ser ligado por ":set sidebar_visible" no "mutt" (e desligado novamente com ":unset"), ou pode ser habilitado em "~/.muttrc". --with-ssl: Esse parâmetro adiciona suporte a "SSL"/"TLS" a partir do "OpenSSL" em "POP3"/"IMAP"/"SMTP". --enable-autocrypt --with-sqlite3: Essas duas chaves adicionam suporte para proteção passiva contra coleta de dados, usando "gnupg" e "gpgme" ("gpgme" é habilitado por "autocrypt"). Veja-se [5608]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 "[5609]Cyrus SASL-2.1.28" em "POP3"/"IMAP"/"SMTP" se eles estiverem habilitados. Dependendo da configuração do servidor, isso possivelmente não seja necessário para "POP3" ou "IMAP". No entanto, é necessário para autenticação "SMTP". Configurando o Mutt Arquivos de Configuração /etc/Muttrc, ~/.muttrc, /etc/mime.types e ~/.mime.types Informação de Configuração Nenhuma mudança nesses arquivos é necessária para começar a usar o "Mutt". Quando você estiver pronto(a) para fazer mudanças, a página de manual do "muttrc" é um bom ponto de partida. Para a finalidade de utilizar o "GnuPG", use o seguinte comando: cat /usr/share/doc/mutt-2.2.14/samples/gpg.rc >> ~/.muttrc Conteúdo Aplicativos Instalados: flea, mutt, mutt_dotlock, muttbug, pgpewrap, mutt_pgpring e smime_keys Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: /usr/share/doc/mutt-2.2.14 Descrições Curtas flea é um conjunto de comandos sequenciais que mostra onde informar defeitos mutt é um "Mail User Agent" ("MUA") que te habilita ler, escrever e deletar teu mensagem eletrônica mutt_dotlock implementa o bloqueio de arquivo de "spool" de mensagem muttbug é um conjunto de comandos sequenciais idêntico ao "flea" pgpewrap prepara uma linha de comando para os utilitários do "[5610]GnuPG-2.4.7" pgpring é um despejador de chaveiro para o "[5611]PGP". Não é necessário para o "[5612]GnuPG-2.4.7" smime_keys gerencia um armazenamento de chaves para certificados "S/MIME" Procmail-3.24 Introdução ao Procmail O pacote "Procmail" contém um processador autônomo de mensagem. Isso é útil para filtrar e classificar as mensagens recebidas. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [5613]https://github.com/BuGlessRB/procmail/archive/v3.24/procmail- 3.24.tar.gz * Transferência (FTP): * 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 Transferências Adicionais * Remendo exigido: [5614]https://www.linuxfromscratch.org/patches/blfs/12.3/procmail-3 .24-consolidated_fixes-1.patch Dependências do "Procmail" Recomendadas Um "[5615]MTA" que instale "sendmail" Opcionais [5616]libnsl-2.0.1 Instalação do Procmail Esse pacote não vem com uma suíte de teste. Instale o "Procmail" executando os seguintes comandos como o(a) usuário(a) "root": patch -Np1 -i ../procmail-3.24-consolidated_fixes-1.patch && make LOCKINGTEST=/tmp MANDIR=/usr/share/man install && make install-suid Explicações do Comando make LOCKINGTEST=/tmp install: Isso evita que o "make" te pergunte onde testar os padrões de bloqueio de arquivos. make install-suid: Modifica as permissões dos arquivos instalados. Configurando Procmail Arquivos de Configuração /etc/procmailrc e ~/.procmailrc Informação de Configuração As receitas tem de ser escritas e colocadas em "~/.procmailrc" para execução. A página de manual do "procmailex" é o ponto de partida para aprender como escrever receitas. Para informações adicionais, veja-se também [5617]https://pm-doc.sourceforge.net/. Conteúdo Aplicativos Instalados: formail, lockfile, mailstat e procmail Bibliotecas Instaladas: Nenhum(a) Diretórios Instalados: Nenhum(a) Descrições Curtas formail é um filtro que consegue ser usado para formatar mensagens no formato "mailbox" lockfile é um utilitário que consegue bloquear um arquivo para uso único interativamente ou em um conjunto de comandos sequenciais mailstat imprime um informe resumido das mensagens que tenham sido filtradas pelo "procmail" desde a última vez que o "mailstat" foi executado procmail é um processador autônomo de mensagem. Desempenha todas as funções de um "Mail Delivery Agent" ("MDA") Outros Aplicativos de Mensagem e Notícias [5618]Balsa-2.6.4 é um cliente de mensagem baseado em "GTK2". [5619]seamonkey-2.53.20 inclui um cliente de mensagem e um leitor de notícias na instalação dele. [5620]Thunderbird-128.7.1esr é um cliente de mensagem/notícias baseado na base do código do "Mozilla". [5621]Evolution-3.54.3 é um cliente de mensagens e organizador originário da área de trabalho GNOME. Parte V. Servidores Capítulo 20. Servidores Principais Os servidores principais são os aplicativos que fornecem conteúdo ou serviços para os(as) usuários(as) ou outros aplicativos. Apache-2.4.63 Introdução ao Apache HTTPD O pacote "Apache HTTPD" contém um servidor "HTTP" de fonte aberto. Ele é útil para criar sítios "web" locais de intranet ou executar grandes operações de serviço "web". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [5622]https://archive.apache.org/dist/httpd/httpd-2.4.63.tar.bz2 * Transferência (FTP): * Soma de verificação MD5 da transferência: 8b5ee2a61d569a3eacec5778e7f20e13 * Tamanho da transferência: 7,2 MB * Espaço em disco estimado exigido: 88 MB * Tempo de construção estimado: 0,3 UPC (Usando paralelismo=4) Transferências Adicionais * Remendo exigido: [5623]https://www.linuxfromscratch.org/patches/blfs/12.3/httpd-2.4. 63-blfs_layout-1.patch Dependências do "Apache HTTPD" Exigidas [5624]Apr-Util-1.6.3 e [5625]pcre2-10.45 Opcionais [5626]Brotli-1.1.0, [5627]Doxygen-1.13.2, [5628]jansson-2.14, [5629]libxml2-2.13.6, [5630]Lua-5.4.7, [5631]Lynx-2.9.2 ou [5632]Links-2.30 ou [5633]ELinks, [5634]nghttp2-1.64.0, [5635]OpenLDAP-2.6.9 ([5636]Apr-Util-1.6.3 precisa ser instalado com suporte ldap), [5637]rsync-3.4.1, [5638]Berkeley DB (obsoleto) e [5639]Distcache Instalação do Apache HTTPD Por motivos de segurança, executar o servidor como um(a) usuário(a) e grupo sem privilégios é fortemente encorajado. Crie o seguinte grupo e usuário(a) usando os seguintes comandos como "root": groupadd -g 25 apache && useradd -c "Servidor Apache" -d /srv/www -g apache \ -s /bin/false -u 25 apache Construa e instale o "Apache HTTPD" executando os seguintes comandos: patch -Np1 -i ../httpd-2.4.63-blfs_layout-1.patch && sed '/dir.*CFG_PREFIX/s@^@#@' -i support/apxs.in && sed -e '/HTTPD_ROOT/s:${ap_prefix}:/etc/httpd:' \ -e '/SERVER_CONFIG_FILE/s:${rel_sysconfdir}/::' \ -e '/AP_TYPES_CONFIG_FILE/s:${rel_sysconfdir}/::' \ -i configure && sed -e '/encoding.h/a # include ' \ -i modules/filters/mod_xml2enc.c && ./configure --enable-authnz-fcgi \ --enable-layout=BLFS \ --enable-mods-shared="all cgi" \ --enable-mpms-shared=all \ --enable-suexec=shared \ --with-apr=/usr/bin/apr-1-config \ --with-apr-util=/usr/bin/apu-1-config \ --with-suexec-bin=/usr/lib/httpd/suexec \ --with-suexec-caller=apache \ --with-suexec-docroot=/srv/www \ --with-suexec-logfile=/var/log/httpd/suexec.log \ --with-suexec-uidmin=100 \ --with-suexec-userdir=public_html && make Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) "root": make install && mv -v /usr/sbin/suexec /usr/lib/httpd/suexec && chgrp apache /usr/lib/httpd/suexec && chmod 4754 /usr/lib/httpd/suexec && chown -v -R apache:apache /srv/www Explicações do Comando sed '/dir.*CFG_PREFIX/s@^@#@'...: Força o utilitário "apxs" a usar nomes absolutos de caminho para módulos, quando instruído a fazê-lo. sed -e '/HTTPD_ROOT/s ...: Corrige alguns caminhos. sed -e '/encoding.h/a ...; Corrigir construção contra a libxml-2.12.x. --enable-authnz-fcgi: Construa autenticação e autorização baseada no autorizador "FastCGI" (módulo CGI rápido "mod_authnz_fcgi.so"). --enable-mods-shared="all cgi": Os módulos deveriam ser compilados e usados como "Dynamic Shared Objects" ("DSOs") de forma que possam ser incluídos e excluídos a partir do servidor usando as diretivas de configuração de tempo de execução. --enable-mpms-shared=all: Essa chave garante que todos os "Multi Processing Modules" ("MPM") sejam construídos como "Dynamic Shared Objects" ("DSOs"), de forma que o(a) usuário(a) consiga escolher qual usar em tempo de execução. --enable-suexec: Essa chave habilita a construção do módulo "suEXEC" do "Apache" que pode ser usado para permitir que os(as) usuários(as) executem conjuntos de comandos sequenciais "CGI" e "SSI" sob "IDs" de usuário(a) diferentes do "ID" de usuário(a) do servidor web chamante. --with-suexec-*: Essas chaves controlam o comportamento do módulo "suEXEC", tais como a raiz padrão do documento, "UID" mínimo que pode ser usado para executar o conjunto de comandos sequenciais sob o "suEXEC". Por favor, observe que, com "UID" mínimo de 100, você não consegue executar conjuntos de comandos sequenciais "CGI" ou "SSI" sob o s"uEXEC" como o(a) usuário(a) "apache". ... /usr/lib/httpd/suexec: Esses comandos colocam o envólucro "suexec" no local apropriado, já que ele não se destina a ser executado diretamente. Eles também ajustam as permissões adequadas do binário, tornando-o "setgid" do "apache". chown -R apache:apache /srv/www: Por padrão, o processo de instalação instala arquivos (documentação, mensagens de erro, ícones padrão, etc.) com a titularidade de propriedade do(a) usuário(a) que extraiu os arquivos a partir do arquivo "tar". Se quiser mudar a titularidade de propriedade para outro(a) usuário(a), [então] você deveria fazê-lo neste ponto. O único requisito é o de que os diretórios de documentos precisam ser acessíveis pelo processo "httpd" com permissões ("r-x") e os arquivos precisam ser legíveis ("r--") pelo(a) usuário(a) "apache". Configurando o Apache Arquivos de Configuração /etc/httpd/httpd.conf e /etc/httpd/extra/* Informação de Configuração Veja-se [5640]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 [5641]https://wiki.linuxfromscratch.org/blfs/wiki/Securing_a_website para criar certificados aceitos mundialmente e renová-los regularmente. Conjunto de Comandos Sequenciais de Inicialização Se você quiser que o servidor "Apache" inicie automaticamente quando o sistema for inicializado, [então] instale o conjunto de comandos sequenciais de inicialização "/etc/rc.d/init.d/httpd" incluído no pacote "[5642]blfs-bootscripts-20250225" "": make install-httpd Conteúdo Aplicativos Instalados: ab, apachectl, apxs, checkgid, dbmmanage, fcgistarter, htcacheclean, htdbm, htdigest, htpasswd, httpd, httxt2dbm, logresolve e rotatelogs Bibliotecas Instaladas: Várias bibliotecas sob "/usr/lib/httpd/modules/" Diretórios Instalados: /etc/httpd, /srv/www, /usr/include/httpd, /usr/lib/httpd, /usr/share/httpd, /var/log/httpd e /var/run/httpd Descrições Curtas ab é uma ferramenta para avaliar comparativamente o teu servidor de "HTTP" "Apache" apachectl é uma estrutura de interação direta com o(a) usuário(a) para o servidor de "HTTP" "Apache" o qual foi projetado para ajudar o(a) administrador(a) a controlar o funcionamento do processo de segundo plano "httpd" do "Apache" apxs é uma ferramenta para construir e instalar módulos de extensão para o servidor de "HTTP" "Apache" checkgid é um aplicativo que verifica se pode "setgid" para o grupo especificado. Isso é para ver se é um grupo válido para o "Apache2" usar em tempo de execução. Se o(a) usuário(a) (deveria ser executado como superusuário(a)) estiver nesse grupo, ou puder "setgid" para ele, [então] ele retornará 0 dbmmanage é usado para criar e atualizar os arquivos no formato "DBM" usados para armazenar nomes de usuário(a) e senhas para autenticação básica de usuários(as) "HTTP" fcgistarter é uma ferramenta para iniciar um aplicativo "FastCGI" htcacheclean é usado para limpar o "cache" do disco htdbm é usado para manipular as bases de dados de senha "DBM" htdigest é usado para criar e atualizar os arquivos simples usados para armazenar nomes de usuário(a), domínios e senhas para autenticação de resumo dos(as) usuários(as) "HTTP" htpasswd é usado para criar e atualizar os arquivos simples usados para armazenar nomes de usuários(as) e senhas para autenticação básica dos(as) usuários(as) "HTTP" httpd é o aplicativo servidor de "HTTP" "Apache" httxt2dbm é usado para gerar arquivos "DBM" a partir de texto, para uso no "RewriteMap" logresolve é um aplicativo de pós-processamento para resolver endereços "IP" nos arquivos de registro de acesso do "Apache" rotatelogs é um aplicativo simples para uso em conjunto com o recurso de arquivo de registro canalizado do "Apache" suexec permite que os(as) usuários(as) executem aplicativos "CGI" e "SSI" como um(a) usuário(a) diferente BIND-9.20.6 Introdução ao BIND O pacote BIND fornece um servidor DNS e utilitários clientes. Se você estiver interessado(a) somente nos utilitários, [então] consulte [5643]Utilitários BIND-9.20.6. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [5644]https://ftp.isc.org/isc/bind9/9.20.6/bind-9.20.6.tar.xz * Transferência (FTP): * Soma de verificação MD5 da transferência: 193d9dad97f1fee3127eed7ccd93153f * Tamanho da transferência: 5,4 MB * Espaço em disco estimado exigido: 137 MB (22 MB instalado) * Tempo de construção estimado: 0,4 UPC (com paralelismo=4; cerca de 40 minutos, um tanto independente do processador, para executar a suíte completa de teste) Dependências do "BIND" Exigidas [5645]liburcu-0.15.1 e [5646]libuv-1.50.0 Recomendadas [5647]JSON-C-0.18, [5648]libcap-2.73 com PAM e [5649]nghttp2-1.64.0 Opcionais [5650]cURL-8.12.1, [5651]libidn2-2.3.7, [5652]libxml2-2.13.6, [5653]lmdb-0.9.31, [5654]MIT Kerberos V5-1.21.3, [5655]pytest-8.3.4, [5656]sphinx-8.2.1 (exigido para construir documentação), [5657]cmocka, [5658]geoip, [5659]jemalloc, [5660]w3m Opcional (para executar a suíte de teste) [5661]Net-DNS-1.50 e [5662]hypothesis Observações de Editor(a): [5663]https://wiki.linuxfromscratch.org/blfs/wiki/bind Instalação do BIND Instale o "BIND" executando os seguintes comandos: ./configure --prefix=/usr \ --sysconfdir=/etc \ --localstatedir=/var \ --mandir=/usr/share/man \ --disable-static && make Emita os seguintes comandos para executar a suíte completa de teste. Primeiro, como o(a) usuário(a) "root", configure algumas interfaces de teste: Nota Se o "IPv6" não estiver habilitado no núcleo, [então] existirão diversas mensagens de erro: "RTNETLINK answers: Operation not permitted". Essas mensagens não afetam os testes. bin/tests/system/ifconfig.sh up A suíte de teste pode indicar alguns testes ignorados, dependendo de quais opções de configuração forem usadas. Alguns testes são marcados com “UNTESTED” ou até mesmo falham se [5664]Net-DNS-1.50 não estiver instalado. Um teste, dnssec, é conhecido por falhar. Os testes exigem o módulo Python [5665]hypothesis, que não está no BLFS. Para contornar isso, as instruções abaixo criam um ambiente virtual Python e, em seguida, instalam o módulo nele antes de executar os testes. Para executar os testes, como um(a) usuário(a) sem privilégios, execute: python3 -m venv --system-site-packages testenv && source testenv/bin/activate && pip3 install hypothesis && make -k check && deactivate Novamente como "root", limpe as interfaces de teste: bin/tests/system/ifconfig.sh down Finalmente, instale o pacote como o(a) usuário(a) "root": make install Explicações do Comando --sysconfdir=/etc: Esse parâmetro força o "BIND" a procurar arquivos de configuração em "/etc" em vez de "/usr/etc". --with-libidn2: Esse parâmetro habilita o suporte a "Internationalized Domain Names in Applications" ("IDNA2008"). --enable-fetchlimit: Use essa opção se você quiser estar apto(a) a limitar a taxa de consultas recursivas do cliente. Isso possivelmente seja útil em servidores que recebem um grande número de consultas. --disable-doh: Use essa opção se você não tiver [5666]nghttp2-1.64.0 instalado e não precisar de suporte para DNS sobre HTTPS. --disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas. Configurando o BIND Arquivos de Configuração named.conf, root.hints, 127.0.0, rndc.conf e resolv.conf Informação de Configuração O BIND será configurado para executar em uma jaula chroot como um(a) usuário(a) sem privilégios (named). Essa configuração é mais segura naquilo que um comprometimento do DNS consegue afetar somente uns poucos arquivos no diretório HOME do(a) usuário(a) named. Crie o(a) usuário(a) sem privilégios e grupo "named": groupadd -g 20 named && useradd -c "Proprietário(a) do BIND" -g named -s /bin/false -u 20 named && install -d -m770 -o named -g named /srv/named Configure alguns arquivos, diretórios e dispositivos necessários ao "BIND": mkdir -p /srv/named && cd /srv/named && mkdir -p dev etc/named/{slave,pz} usr/lib/engines var/run/named && mknod /srv/named/dev/null c 1 3 && mknod /srv/named/dev/urandom c 1 9 && chmod 666 /srv/named/dev/{null,urandom} && cp /etc/localtime etc O arquivo "rndc.conf" contém informações para controlar as operações do "named" com o utilitário "rndc". Gere uma chave para uso no "named.conf" e "rndc.conf" com o comando "rndc-confgen": rndc-confgen -a -b 512 -t /srv/named Crie o arquivo named.conf a partir do qual o named lerá o local dos arquivos de zona, servidores raiz de nomes e chaves seguras DNS: cat >> /srv/named/etc/named.conf << "EOF" options { directory "/etc/named"; pid-file "/var/run/named.pid"; statistics-file "/var/run/named.stats"; }; zone "." { type hint; file "root.hints"; }; zone "0.0.127.in-addr.arpa" { type master; file "pz/127.0.0"; }; // O "Bind" 9 agora registra por padrão por intermédio do "syslog" (exceto depur açã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ár ias // 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ár ias // e superiores }; channel null { null; // Descarta tudo enviado para // esse canal }; }; EOF Crie um arquivo de zona com o seguinte conteúdo: cat > /srv/named/etc/named/pz/127.0.0 << "EOF" $TTL 3D @ IN SOA ns.local.domain. hostmaster.local.domain. ( 1 ; Serial 8H ; Refresh 2H ; Retry 4W ; Expire 1D) ; Minimum TTL NS ns.local.domain. 1 PTR localhost. EOF Crie o arquivo "root.hints" com os seguintes comandos: Nota Deve-se ter cuidado para garantir que não existam espaços iniciais neste arquivo. cat > /srv/named/etc/named/root.hints << "EOF" . 6D IN NS A.ROOT-SERVERS.NET. . 6D IN NS B.ROOT-SERVERS.NET. . 6D IN NS C.ROOT-SERVERS.NET. . 6D IN NS D.ROOT-SERVERS.NET. . 6D IN NS E.ROOT-SERVERS.NET. . 6D IN NS F.ROOT-SERVERS.NET. . 6D IN NS G.ROOT-SERVERS.NET. . 6D IN NS H.ROOT-SERVERS.NET. . 6D IN NS I.ROOT-SERVERS.NET. . 6D IN NS J.ROOT-SERVERS.NET. . 6D IN NS K.ROOT-SERVERS.NET. . 6D IN NS L.ROOT-SERVERS.NET. . 6D IN NS M.ROOT-SERVERS.NET. A.ROOT-SERVERS.NET. 6D IN A 198.41.0.4 A.ROOT-SERVERS.NET. 6D IN AAAA 2001:503:ba3e::2:30 B.ROOT-SERVERS.NET. 6D IN A 170.247.170.2 B.ROOT-SERVERS.NET. 6D IN AAAA 2801:1b8:10::b C.ROOT-SERVERS.NET. 6D IN A 192.33.4.12 C.ROOT-SERVERS.NET. 6D IN AAAA 2001:500:2::c D.ROOT-SERVERS.NET. 6D IN A 199.7.91.13 D.ROOT-SERVERS.NET. 6D IN AAAA 2001:500:2d::d E.ROOT-SERVERS.NET. 6D IN A 192.203.230.10 E.ROOT-SERVERS.NET. 6D IN AAAA 2001:500:a8::e F.ROOT-SERVERS.NET. 6D IN A 192.5.5.241 F.ROOT-SERVERS.NET. 6D IN AAAA 2001:500:2f::f G.ROOT-SERVERS.NET. 6D IN A 192.112.36.4 G.ROOT-SERVERS.NET. 6D IN AAAA 2001:500:12::d0d H.ROOT-SERVERS.NET. 6D IN A 198.97.190.53 H.ROOT-SERVERS.NET. 6D IN AAAA 2001:500:1::53 I.ROOT-SERVERS.NET. 6D IN A 192.36.148.17 I.ROOT-SERVERS.NET. 6D IN AAAA 2001:7fe::53 J.ROOT-SERVERS.NET. 6D IN A 192.58.128.30 J.ROOT-SERVERS.NET. 6D IN AAAA 2001:503:c27::2:30 K.ROOT-SERVERS.NET. 6D IN A 193.0.14.129 K.ROOT-SERVERS.NET. 6D IN AAAA 2001:7fd::1 L.ROOT-SERVERS.NET. 6D IN A 199.7.83.42 L.ROOT-SERVERS.NET. 6D IN AAAA 2001:500:9f::42 M.ROOT-SERVERS.NET. 6D IN A 202.12.27.33 M.ROOT-SERVERS.NET. 6D IN AAAA 2001:dc3::35 EOF O arquivo "root.hints" é uma lista de servidores raiz de nomes. Esse arquivo precisa ser atualizado periodicamente com o utilitário "dig". Uma cópia atual do "root.hints" pode ser obtida a partir de [5667]https://www.internic.net/domain/named.root. Para detalhes, consulte-se o "Manual de Referência do(a) Administrador(a) do BIND 9". Crie ou modifique o "resolv.conf" para usar o novo servidor de nomes com os seguintes comandos: Nota Substitua pelo teu próprio nome de domínio válido. cp /etc/resolv.conf /etc/resolv.conf.bak && cat > /etc/resolv.conf << "EOF" search nameserver 127.0.0.1 EOF Configure as permissões relativas à jaula "chroot" com o seguinte comando: chown -R named:named /srv/named Conjunto de Comandos Sequenciais de Inicialização Para iniciar o servidor "DNS" na inicialização, instale o conjunto de comandos sequenciais de inicialização "/etc/rc.d/init.d/bind" incluso no pacote "[5668]blfs-bootscripts-20250225" "": make install-bind Agora inicie o "BIND" com o seguinte comando: /etc/rc.d/init.d/bind start Testando o BIND Teste a nova instalação do "BIND" 9. Primeiro consulte o endereço local do dispositivo com o "dig": dig -x 127.0.0.1 Agora tente uma pesquisa externa de nome, observando a diferença de velocidade em pesquisas repetidas devido ao cache. Execute o comando "dig" duas vezes relativo ao mesmo endereço: dig www.linuxfromscratch.org && dig www.linuxfromscratch.org Você pode ver resultados quase instantâneos com as pesquisas de cache do "named". Consulte-se o Manual de Referência do(a) Administrador(a) do "BIND" (veja-se abaixo) para mais opções de configuração. Manual de Referência do(a) Administrador(a) (MRA) A documentação ARM (não confunda com a arquitetura do processador) está incluída no pacote do fonte. A documentação está no formato .rst, o que significa que ela pode ser convertida em formatos legíveis por humanos se o [5669]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 [5670]https://downloads.isc.org/isc/bind9/9.20.6/doc/arm/. Conteúdo Aplicativos Instalados: arpaname, ddns-confgen, delv, dig, dnssec-cds, dnssec-dsfromkey, dnssec-importkey, dnssec-keyfromlabel, dnssec-keygen, dnssec-ksr, dnssec-revoke, dnssec-settime, dnssec-signzone, dnssec-verify, host, mdig, named, named-checkconf, named-checkzone, named-compilezone, named-journalprint, named-nzd2nzf, named-rrchecker, nsec3hash, nslookup, nsupdate, rndc, rndc-confgen e tsig-keygen (link simbólico) Bibliotecas Instaladas: libdns.so, libisc.so, libisccc.so, libisccfg.so e libns.so Diretórios Instalados: /usr/include/{dns,dst,irs,isc,isccc,isccfg,ns}, /usr/lib/bind e /srv/named Descrições Curtas arpaname traduz endereços "IP" para os nomes "ARPA" correspondentes ddns-confgen gera uma chave para uso pelo "nsupdate" e pelo "named" delv é uma nova ferramenta de depuração que é uma sucessora do "dig" dig interroga servidores "DNS" dnssec-cds muda os registros "DS" para uma zona filha baseado em "CDS"/"CDNSKEY" dnssec-dsfromkey gera o Registro de Recurso ("RR") do "Delegation Signer" ("DS") dnssec-importkey lê um registro público "DNSKEY" e gera um par de arquivos ".key"/".private" dnssec-keyfromlabel obtém chaves com o rótulo dado a partir de um dispositivo de "hardware" de criptografia e constrói arquivos de chave para "DNSSEC" dnssec-keymgr garante a cobertura correta "DNSKEY" baseada em uma política definida dnssec-ksr cria arquivos de resposta de chave assinada (SKR) para configurações KSK offline dnssec-revoke configura o bit "REVOKED" em uma chave "DNSSEC" dnssec-settime configura os metadados de hora da chave para uma chave "DNSSEC" dnssec-signzone gera versões assinadas de arquivos de zona dnssec-verify verifica se uma zona está totalmente assinada para cada algoritmo encontrado no conjunto "RR" do "DNSKEY" para a zona e se as cadeias "NSEC"/"NSEC3" estão completas host é um utilitário para pesquisas de "DNS" mdig é uma versão do "dig" que permite múltiplas consultas ao mesmo tempo named é o processo de segundo plano do servidor de nomes named-checkconf verifica a sintaxe dos arquivos "named.conf" named-checkzone verifica a validade do arquivo de zona named-compilezone é semelhante ao "named-checkzone", mas sempre despeja o conteúdo da zona em um arquivo especificado em um formato especificado named-journalprint imprime o diário da zona em formato legível por humanos(as) named-rrchecker lê um registro individual de recurso "DNS" a partir da entrada padrão e verifica se ele está sintaticamente correto named-nzd2nzf converte uma base de dados "NZD" para o formato de texto "NZF" nsec3hash gera um resumo "NSEC3" baseado em um conjunto de parâmetros "NSEC3" nslookup é um aplicativo usado para consultar servidores de nomes de domínio da Internet nsupdate é usado para submeter solicitações de atualização de "DNS" rndc controla a operação do "BIND" rndc-confgen gera arquivos "rndc.conf" tsig-keygen é um link simbólico para o "ddns-confgen" Servidor DHCP Kea 2.6.1 Introdução ao Servidor DHCP Kea do ISC O pacote ISC Kea contém os aplicativos de servidor para DHCP. É o sucessor do antigo servidor DHCP do ISC, que está em fim de vida desde dezembro de 2022. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [5671]https://downloads.isc.org/isc/kea/2.6.1/kea-2.6.1.tar.gz * Transferência (FTP): * Soma de verificação MD5 da transferência: 5f4fe79ed29f5ff2802e2961d1827b25 * Tamanho da transferência: 9,9 MB * Espaço em disco estimado exigido: 1,5 GB (332 MB instalado; adicionar 4 GB para testes) * Tempo de construção estimado: 4,1 UPC (com paralelismo=4; adicionar 12 UPC para testes) Transferências Adicionais * Remendo exigido: [5672]https://www.linuxfromscratch.org/patches/blfs/12.3/kea-2.6.1- fix_boost_1_87-1.patch Dependências do Kea Exigidas [5673]Boost-1.87.0 e [5674]log4cplus-2.1.2 Opcionais [5675]MIT Kerberos V5-1.21.3, [5676]Valgrind-3.24.0; para documentação: [5677]Doxygen-1.13.2, [5678]Graphviz-12.2.1 e [5679]sphinx_rtd_theme-3.0.2; para testes: [5680]GoogleTest Estruturas opcionais de retaguarda de base de dados [5681]MariaDB-11.4.5 ou [5682]MySQL e [5683]PostgreSQL-17.4 Configuração do Núcleo Você precisa ter suporte a Packet Socket. Suporte a IPv6 é opcional. [*] Networking support ---> [NET] Networking options ---> <*/M> Packet socket [PACKET] [*] TCP/IP networking [INET] <*> The IPv6 protocol ---> [IPV6] Instalação do Servidor DHCP Kea do ISC Primeiro, aplique um remendo que corrige um problema com a versão mais recente do boost: patch -Np1 -i ../kea-2.6.1-fix_boost_1_87-1.patch Instale o Servidor DHCP Kea do ISC executando os seguintes comandos: ./configure --prefix=/usr \ --sysconfdir=/etc \ --localstatedir=/var \ --enable-shell \ --with-openssl \ --disable-static \ --docdir=/usr/share/doc/kea-2.6.1 && make Para testar os resultados, você precisa ter instalado o GoogleTest e mantido o fonte dele. Você também deveria ter passado --with-gtest-source=/caminho/para/diretório_fonte/googletest para configure acima. Execute os testes com make check. Três testes na suíte TLSTest são conhecidos por falharem. Para instalar a suíte Servidor DHCP Kea do ISC, emita os seguintes comandos como o(a) usuário(a) root: make -j1 install Explicações do Comando --enable-shell: Permite construir kea-shell, uma interface de linha de comando para o agente de controle. --with-openssl: Permite usar OpenSSL para comunicação com o agente de controle e para atualizações de DNS. --disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas. --with-pgsql ou --with-mysql: Kea do ISC consegue armazenar as concessões em uma base de dados. Isso pode ser útil em ambientes grandes executando um cluster de servidores DHCP. Usar a estrutura de retaguarda memfile (que é um arquivo CSV armazenado localmente) é possível de qualquer maneira. --enable-generate-docs: Se a documentação for para ser reconstruída, adicione essa opção. Diversas dependências precisam estar instaladas para gerar a documentação. make -j1 install: O ISC não recomenda nenhuma forma de paralelismo ou opções de tarefa de servidor ao fazer a instalação. Configurando o Servidor DHCP Kea do ISC O suporte de IPv4, IPv6 e DDNS foi dividido em servidores separados que executam independentemente um do outro. Cada um deles tem o próprio arquivo dele de configuração. Arquivos adicionais de configuração vem oriundos do agente keactrl, que é usado para controlar os servidores de maneira fácil. Consulte-se o [5684]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 [5685]Stork do ISC, que é um painel de gerenciamento para o Kea do ISC. Se você quiser iniciar o Servidor DHCP na inicialização, instale o conjunto de comandos sequenciais de inicialização /etc/rc.d/init.d/kea-dhcpd incluído no pacote [5686]blfs-bootscripts-20250225 : make install-kea-dhcpd Arquivos de Configuração /etc/kea/keactrl.conf, /etc/kea/kea-ctrl-agent.conf, /etc/kea/kea-dhcp4.conf, /etc/kea/kea-dhcp6.conf e /etc/kea/kea-dhcp-ddns.conf Configuração do Controle do Kea keactrl é usado para controlar os servidores independentes (IPv4, IPv6, DDNS). O arquivo de configuração dele, /etc/kea/keactrl.conf, é instalado por padrão e inclui muitas configurações de caminho que são definidas devido ao configure ao tempo da construção. Também inclui configurações para especificar qual dos servidores deveria ser iniciado. * Agente de Controle O Agente de Controle é um processo de segundo plano que permite a (re)configuração do serviço DHCP do Kea via API REST. Configure ctrl_agent=yes para iniciar o agente de controle (serviço que fornece uma API REST); configure ctrl_agent=no caso o agente de controle não seja necessário. * Servidor DHCP de IPv4 Esse processo de segundo plano lida com solicitações de endereços IPv4. Configure dhcp4=yes para iniciá-lo; configure dhcp4=no caso o serviço DHCP para IPv4 não seja desejado. * Servidor DHCP de IPv6 Esse processo de segundo plano lida com solicitações de endereços IPv6. Configure dhcp6=yes para iniciá-lo; configure dhcp6=no caso o serviço DHCP para IPv6 não seja desejado. * DNS Dinâmico Esse processo de segundo plano é usado para atualizar um servidor DNS dinamicamente quando Kea atribui um endereço IP a um dispositivo. Configure dhcp_ddns=yes para habilitá-lo; configure dhcp_ddns=no caso as atualizações dinâmicas de DNS não sejam desejadas. O serviço Netconf não é instalado porque as dependências exigidas não são abrangidas pelo atual livro do BLFS. . Com o seguinte comando, o Kea será configurado para iniciar o serviço DHCP para IPv4 e a atualização dinâmica do DNS, enquanto o agente de controle e o serviço DHCP para IPv6 permanecerão inativos. Ajuste o comando para atender às tuas necessidades nos serviços iniciados e execute como o(a) usuário(a) root: sed -e "s/^dhcp4=.*/dhcp4=yes/" \ -e "s/^dhcp6=.*/dhcp6=no/" \ -e "s/^dhcp_ddns=.*/dhcp_ddns=yes/" \ -e "s/^ctrl_agent=.*/ctrl_agent=no/" \ -i /etc/kea/keactrl.conf Configuração do Agente de Controle A configuração fornecida poderia ser usada sem mudanças, mas, no BLFS, objetos como soquetes são armazenados em /run em vez de em /tmp. cat > /etc/kea/kea-ctrl-agent.conf << "EOF" // Inicia /etc/kea/kea-ctrl-agent.conf { // Esta é uma configuração básica para o Agente de Controle do Kea. // Interface RESTful para estar disponível em http://127.0.0.1:8000/ "Control-agent": { "http-host": "127.0.0.1", "http-port": 8000, "control-sockets": { "dhcp4": { "socket-type": "unix", "socket-name": "/run/kea4-ctrl-socket" }, "dhcp6": { "socket-type": "unix", "socket-name": "/run/kea6-ctrl-socket" }, "d2": { "socket-type": "unix", "socket-name": "/run/kea-ddns-ctrl-socket" } }, "loggers": [ { "name": "kea-ctrl-agent", "output_options": [ { "output": "/var/log/kea-ctrl-agent.log", "pattern": "%D{%Y-%m-%d %H:%M:%S.%q} %-5p %m\n" } ], "severity": "INFO", "debuglevel": 0 } ] } } // Termina /etc/kea/kea-ctrl-agent.conf EOF Configuração do Servidor DHCP de IPv4 Um arquivo de configuração de amostra é criado em /etc/kea/kea-dhcp4.conf. Ajuste o arquivo para atender às tuas necessidades ou sobrescreva-o executando o seguinte comando como o(a) usuário(a) root (você precisará editar esse arquivo de qualquer maneira: pelo menos o campo interfaces, o campo ddns-qualifying-suffix e quase todos os campos em Subnet4: cat > /etc/kea/kea-dhcp4.conf << "EOF" // Begin /etc/kea/kea-dhcp4.conf { "Dhcp4": { // Add names of your network interfaces to listen on. "interfaces-config": { "interfaces": [ "eth0", "eth2" ] }, "control-socket": { "socket-type": "unix", "socket-name": "/run/kea4-ctrl-socket" }, "lease-database": { "type": "memfile", "lfc-interval": 3600 }, "expired-leases-processing": { "reclaim-timer-wait-time": 10, "flush-reclaimed-timer-wait-time": 25, "hold-reclaimed-time": 3600, "max-reclaim-leases": 100, "max-reclaim-time": 250, "unwarned-reclaim-cycles": 5 }, "renew-timer": 900, "rebind-timer": 1800, "valid-lifetime": 3600, // Enable DDNS - Kea will dynamically update the DNS "ddns-send-updates" : true, "ddns-qualifying-suffix": "your.domain.tld", "dhcp-ddns" : { "enable-updates": true }, "subnet4": [ { "id": 1001, // Each subnet requires a unique numeric id "subnet": "192.168.56.0/24", "pools": [ { "pool": "192.168.56.16 - 192.168.56.254" } ], "option-data": [ { "name": "domain-name", "data": "your.domain.tld" }, { "name": "domain-name-servers", "data": "192.168.56.2, 192.168.3.7" }, { "name": "domain-search", "data": "your.domain.tld" }, { "name": "routers", "data": "192.168.56.2" } ] } ], "loggers": [ { "name": "kea-dhcp4", "output_options": [ { "output": "/var/log/kea-dhcp4.log", "pattern": "%D{%Y-%m-%d %H:%M:%S.%q} %-5p %m\n" } ], "severity": "INFO", "debuglevel": 0 } ] } } // End /etc/kea/kea-dhcp4.conf EOF Configuração do Servidor DHCP de IPv6 A configuração para IPv6 é semelhante à configuração do IPv4. O arquivo de configuração é /etc/kea/kea-dhcp6.conf. Configuração do DNS Dinâmico Se existir um servidor [5687]BIND-9.20.6 executando, o Kea do ISC poderá atualizar o DNS quando fornecer um endereço IP para um cliente. Um arquivo de configuração de amostra é criado em /etc/kea/kea-dhcp-ddns.conf. Ajuste o arquivo para atender às tuas necessidades ou sobrescreva-o executando o seguinte comando como o(a) usuário(a) root: cat > /etc/kea/kea-dhcp-ddns.conf << "EOF" // Inicia /etc/kea/kea-dhcp-ddns.conf { "DhcpDdns": { "ip-address": "127.0.0.1", "port": 53001, "control-socket": { "socket-type": "unix", "socket-name": "/run/kea-ddns-ctrl-socket" }, "tsig-keys": [ { "name" : "rndc-key", "algorithm" : "hmac-sha256", "secret" : "1FU5hD7faYaajQCjSdA54JkTPQxbbPrRnzOKqHcD9cM=" } ], "forward-ddns" : { "ddns-domains" : [ { "name" : "your.domain.tld.", "key-name": "rndc-key", "dns-servers" : [ { "ip-address" : "127.0.0.1", "port" : 53 } ] } ] }, "reverse-ddns" : { "ddns-domains" : [ { "name" : "56.168.192.in-addr.arpa.", "key-name": "rndc-key", "dns-servers" : [ { "ip-address" : "127.0.0.1", "port" : 53 } ] } ] }, "loggers": [ { "name": "kea-dhcp-ddns", "output_options": [ { "output": "/var/log/kea-ddns.log", "pattern": "%D{%Y-%m-%d %H:%M:%S.%q} %-5p %m\n" } ], "severity": "INFO", "debuglevel": 0 } ] } } // Termina /etc/kea/kea-dhcp-ddns.conf EOF Nota O valor de secret é apenas um exemplo. Gere a chave para tua instalação usando o comando rndc-confgen -a ou o comando tsig-keygen, ambos fornecidos por [5688]BIND-9.20.6. Nessa configuração de exemplo, é presumido que o servidor DNS executa na mesma máquina que o Kea (acessível via 127.0.0.1) e que essa máquina tenha o IP 192.168.56.2. Conteúdo Aplicativos Instalados: keactrl, kea-admin, kea-ctrl-agent, kea-dhcp4, kea-dhcp6, kea-dhcp-ddns, kea-lfc, kea-shell Bibliotecas Instaladas: libkea-asiodns.so, libkea-asiolink.so, libkea-cc.so, libkea-cgfclient.so, libkea-cryptolink.so, libkea-d2srv.so, libkea-database.so, libkea-dhcp_ddns.so, libkea-dhcp++.so, libkea-dhcpsrv.so, libkea-dns++.so, libkea-eval.so, libkea-exceptions.so, libkea-hooks.so, libkea-http.so, libkea-log.so, libkea-process.so, libkea-stats.so, libkea-tcp.so, libkea-util.so e libkea-util-io.so Diretórios Instalados: /etc/kea, /usr/include/kea, /usr/lib/kea, /usr/lib/python3.13/site-packages/kea, /usr/share/kea, /usr/share/doc/kea-2.6.1 e /var/lib/kea Descrições Curtas keactrl Ferramenta para controlar (iniciar/parar) os processos do servidor. kea-admin kea-admin é um conjunto de comandos sequenciais de shell que oferece manutenção de base de dados. kea-ctrl-agent Processo de segundo plano que expõe uma interface de controle RESTful para gerenciar servidores Kea. kea-dhcp4 O processo de segundo plano do servidor que fornece endereços IPv4. kea-dhcp6 O processo de segundo plano do servidor que fornece endereços IPv6. kea-dhcp-ddns O processo de segundo plano do servidor que realiza as atualizações dinâmicas de DNS. kea-lfc O processo de serviço kea-lfc remove informações redundantes dos arquivos usados para fornecer armazenamento persistente para a estrutura de retaguarda de base de dados memfile. Ele é executado pelo servidor DHCP do Kea. keashell Cliente RESTful para os serviços do Kea do ISC. ProFTPD-1.3.8b Introdução ao ProFTPD O pacote "ProFTPD" contém um processo de segundo plano "FTP" seguro e altamente configurável. Isso é útil para servir arquivamentos grandes de arquivos em uma rede de intercomunicação. Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [5689]https://github.com/proftpd/proftpd/archive/v1.3.8b/proftpd-1. 3.8b.tar.gz * Transferência (FTP): * 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 Dependências do "ProFTPD" Opcionais [5690]libcap-2.73 com PAM, [5691]libssh2-1.11.1, [5692]Linux-PAM-1.7.0, [5693]MariaDB-11.4.5 ou [5694]MySQL, [5695]pcre2-10.45, [5696]PostgreSQL-17.4 e [5697]Net::SSH2 Instalação do ProFTPD Por motivos de segurança, você deveria instalar o "ProFTPD" usando um(a) usuário(a) e grupo sem privilégios. Como o(a) usuário(a) "root": groupadd -g 46 proftpd && useradd -c proftpd -d /srv/ftp -g proftpd \ -s /usr/bin/proftpdshell -u 46 proftpd && install -v -d -m775 -o proftpd -g proftpd /srv/ftp && ln -v -s /usr/bin/false /usr/bin/proftpdshell && echo /usr/bin/proftpdshell >> /etc/shells Instale o "ProFTPD" como um(a) usuário(a) sem privilégios executando os seguintes comandos: ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/run && make Esses pacotes não vem com uma suíte de teste usável. Agora, como o(a) usuário(a) root: make install && install -d -m755 /usr/share/doc/proftpd-1.3.8b && cp -Rv doc/* /usr/share/doc/proftpd-1.3.8b Explicações do Comando install -v -d -m775 -o proftpd -g proftpd /srv/ftp: Crie o diretório lar para o "ProFTPD". ln -v -s /usr/bin/false /usr/bin/proftpdshell: Configure o "shell" padrão como um link para um "shell" inválido. echo /usr/bin/proftpdshell >> /etc/shells: Falsifique um "shell" válido para fins de compatibilidade. Nota Os dois comandos acima podem ser omitidos se a seguinte diretiva for colocada no arquivo de configuração: RequireValidShell off Por padrão, o "proftpd" exigirá que os(as) usuários(as) se logando tenham "shells" válidos. A diretiva "RequireValidShell" desliga esse requisito. Isso é recomendado somente se você estiver configurando o teu servidor "FTP" exclusivamente para transferências anônimas. Nota O suporte para a maioria dos pacotes de dependências exige usar opções passadas para o conjunto de comandos sequenciais configure. Veja-se a saída gerada a partir de ./configure --help para informações completas relativas a habilitar pacotes de dependências. Configurando o ProFTPD Arquivos de Configuração /etc/proftpd.conf Informação de Configuração Esta é uma configuração de amostra simples, somente para baixar. Veja-se a documentação do "ProFTPD" em "/usr/share/doc/proftpd" e consulte o sítio da "web" em [5698]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âne as, # [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 permit a # 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") n o # diretório inicial dele(a), descomente esta linha. #DefaultRoot ~ # Normalmente, os arquivos deveriam ser sobrescrevíveis. AllowOverwrite on # Uma configuração básica anônima, sem diretórios de "upload". 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. DenyAll EOF Conjunto de Comandos Sequenciais de Inicialização Instale o conjunto de comandos sequenciais de inicialização "/etc/rc.d/init.d/proftpd" incluso no pacote "[5699]blfs-bootscripts-20250225" "": make install-proftpd Conteúdo Aplicativos Instalados: ftpasswd, ftpcount, ftpdctl, ftpmail, ftpquota, ftpscrub, ftpshut, ftptop, ftpwho, in.proftpd (link simbólico para "proftpd"), proftpd e prxs Bibliotecas Instaladas: Nenhum(a) Diretório Instalado: /usr/{include,lib}/proftpd, /usr/share/doc/proftpd-1.3.8b e /srv/ftp Descrições Curtas proftpd é o processo de segundo plano de "FTP" ftpcount mostra o número atual de conexões ftpdctl é usado para controlar o processo de segundo plano "proftpd" enquanto ele está em execução ftpasswd é um conjunto de comandos sequenciais "Perl" projetado para criar e gerenciar "AuthUserFiles" e "AuthGroupFiles" no formato correto para o "proftpd" ftpmail é um conjunto de comandos sequenciais "Perl" para envio de mensagens eletrônicas baseado no "TransferLog" do "proftpd" ftpquota é um conjunto de comandos sequenciais "Perl" projetado para criar e gerenciar limites e arquivos de contagem para a combinação de módulos "mod_quotatab" + "mod_quotatab_file" para o "proftpd" ftpscrub fornece uma maneira de limpar o arquivo do placar sob demanda ftpshut desliga todos os servidores "proftpd" em uma dada hora ftptop exibe a situação de execução relativa às conexões ftpwho mostra informações atuais do processo para cada sessão prxs é um conjunto de comandos sequenciais "Perl" projetado para compilar e instalar módulos de terceiros(as), a partir do fonte, como módulos "DSO" para o "proftpd" instalado Capítulo 21. Logiciário de Servidor de Mensagens "MTAs" são os aplicativos que transportam mensagens de uma máquina para outra. O "MTA" tradicional é o "Sendmail", porém existem várias outras escolhas. Em adição aos servidores SMTP, também existe um servidor POP/IMAP (Dovecot). Dovecot-2.4.0 Introdução ao Dovecot O "Dovecot" é um servidor "Internet Message Access Protocol" ("IMAP") e "Post Office Protocol" ("POP"), escrito principalmente com a segurança em mente. "Dovecot" pretende ser leve, rápido e fácil de configurar, bem como altamente configurável e facilmente extensível com "plug-ins". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [5700]https://www.dovecot.org/releases/2.4/dovecot-2.4.0.tar.gz * Transferência (FTP): * Soma de verificação MD5 da transferência: 5a0b3aaaf0adc1278d2611ff5f1593cd * Tamanho da transferência: 7,5 MB * Espaço em disco estimado exigido: 253 MB * Tempo de construção estimado: 4,8 UPC Dependências do "Dovecot" Exigidas [5701]libtirpc-1.3.6 e [5702]Linux-PAM-1.7.0 Opcionais [5703]Cyrus SASL-2.1.28, [5704]ICU-76.1, [5705]libcap-2.73 com PAM, [5706]libunwind-1.8.1, [5707]Lua-5.4.7, [5708]MariaDB-11.4.5 ou [5709]MySQL, [5710]OpenLDAP-2.6.9, [5711]PostgreSQL-17.4, [5712]SQLite-3.49.1, [5713]Valgrind-3.24.0, [5714]xapian-1.4.27, [5715]xfsprogs-6.13.0, [5716]Cassandra, [5717]stemmer e [5718]libsodium Instalação do Dovecot Atenção Existem mudanças significativas na configuração deste pacote que são exigidas ao atualizar para o Dovecot 2.4.0. Por favor, revise a documentação em [5719]Dovecot Upgrade Guide antes de continuar se você estiver atualizando este pacote a partir de uma versão anterior. Deveria existir usuários(as) e grupos dedicados(as) para processos sem privilégios do "Dovecot" e para processamento de "logins" de usuários(as). Emita os seguintes comandos como o(a) usuário(a) "root": groupadd -g 42 dovecot && useradd -c "Usuário(a) sem privilégios do Dovecot" -d /dev/null -u 42 \ -g dovecot -s /bin/false dovecot && groupadd -g 43 dovenull && useradd -c "Usuário(a) de login do Dovecot" -d /dev/null -u 43 \ -g dovenull -s /bin/false dovenull Instale o "Dovecot" executando os seguintes comandos: ./configure --prefix=/usr \ --sysconfdir=/etc \ --localstatedir=/var \ --with-systemd=no \ --with-lua=no \ --docdir=/usr/share/doc/dovecot-2.4.0 \ --disable-static && make Para testar os resultados, emita "make -k check". Agora, como o(a) usuário(a) "root": make install Explicações do Comando --disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas. --with-ldap: Essa chave habilita o suporte a autenticação "OpenLDAP". --with-pgsql: Essa chave habilita o suporte a base de dados "PostgreSQL". --with-mysql: Essa chave habilita o suporte a base de dados "MySQL". --with-sqlite: Essa chave habilita o suporte a base de dados "SQLite". --with-lua=no: Essa chave habilita o suporte ao plugin Lua. Isso inclui um plugin de notificação de mensagem e envio. O suporte atualmente está quebrado com Lua 5.4. Configurando o Dovecot Arquivos de Configuração /etc/dovecot/dovecot.conf Informação de Configuração A configuração a seguir é uma prova de conceito simples com serviço IMAP usando usuários(as) locais para autenticação e localização de caixa de correio. mv -v /etc/dovecot/dovecot.conf{,.orig} && chmod -v 1777 /var/mail && cat > /etc/dovecot/dovecot.conf << "EOF" # The dovecot configuration requires a minimum version to be set. The server # will refuse to start if the version set here is older than the version of # Dovecot installed. This option allows the Dovecot server to set reasonable # default values based on what version is set here. dovecot_config_version = 2.4.0 # This option sets the minimum version that is able to read data files from # the Dovecot server. This is primarily for a cluster which may have several # different versions of Dovecot installed, but is required for the server to # run. dovecot_storage_version = 2.4.0 protocols = imap ssl = no # The next line is only needed if you have no IPv6 network interfaces listen = * mail_inbox_path = /var/mail/%{user} mail_driver = mbox mail_path = ~/Mail userdb users { driver = passwd } passdb passwords { driver = pam } EOF A configuração acima também exige que um arquivo de configuração seja instalado para Linux-PAM para que o dovecot consiga autenticar usuários(as). Emita o seguinte comando como o(a) usuário(a) root para criar o arquivo de configuração para Linux-PAM: cat > /etc/pam.d/dovecot << "EOF" # Begin /etc/pam.d/dovecot auth include system-auth account include system-account password include system-password # End /etc/pam.d/dovecot EOF Você definitivamente vai querer ler a documentação oficial em [5720]https://doc.dovecot.org/2.4.0/ se planeja usar o Dovecot em um ambiente de produção. Conjunto de Comandos Sequenciais de Inicialização Se você quer que o servidor "Dovecot" inicie automaticamente quando o sistema for inicializado, [então] instale o conjunto de comandos sequenciais de iniciação "/etc/rc.d/init.d/dovecot" incluso no pacote "[5721]blfs-bootscripts-20250225". make install-dovecot Conteúdo Aplicativos Instalados: doveadm, doveconf, dovecot e dovecot-sysreport Bibliotecas Instaladas: vários "plugins" internos em "/usr/lib/dovecot" Diretórios Instalados: /etc/dovecot, /usr/{include,lib,libexec,share}/dovecot e /usr/share/doc/dovecot-2.4.0 Descrições Curtas doveadm é a ferramenta de administração do "Dovecot" doveconf é o utilitário de despejo da configuração do "Dovecot" dovecot é o servidor "IMAP" e "POP" dovecot-sysreport imprime informações do sistema que são úteis para os(as) desenvolvedores(as) do "Dovecot" ao submeter informes de defeitos Exim-4.98.1 Introdução ao Exim O pacote "Exim" contém um "Mail Transport Agent" escrito pela Universidade de Cambridge, lançado sob a Licença Pública "GNU". Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.3. Informação do Pacote * Transferência (HTTP): [5722]https://ftp.exim.org/pub/exim/exim4/exim-4.98.1.tar.xz * Transferência (FTP): * Soma de verificação MD5 da transferência: 7465a700b17ce3c01d59d7e0d59be5a1 * Tamanho da transferência: 1,9 MB * Espaço em disco estimado exigido: 19 MB * Tempo de construção estimado: 0,1 UPC Transferências Adicionais * Formatos adicionais da documentação (documentos baseados em texto são enviados com os fontes) podem ser baixados seguindo-se os links mostrados em [5723]https://exim.org/docs.html. Dependências do "Exim" Exigidas [5724]libnsl-2.0.1, [5725]File-FcntlLock-0.22 e [5726]pcre2-10.45 Opcionais [5727]TDB (alternativa ao GDBM, construído no LFS), [5728]Cyrus SASL-2.1.28, [5729]libidn-1.42, [5730]Linux-PAM-1.7.0, [5731]MariaDB-11.4.5 ou [5732]MySQL, [5733]OpenLDAP-2.6.9, [5734]GnuTLS-3.8.9, [5735]PostgreSQL-17.4, [5736]SQLite-3.49.1, [5737]um ambiente gráfico, [5738]Heimdal GSSAPI, [5739]libspf2 e [5740]OpenDMARC Instalação do Exim Antes de construir o "Exim", como o(a) usuário(a) "root", você deveria criar o grupo e o(a) usuário(a) "exim" os quais executarão o processo de segundo plano "exim": groupadd -g 31 exim && useradd -d /dev/null -c "Processo de Segundo Plano Exim" -g exim -s /bin/false - u 31 exim Configure o "Exim" com os seguintes comandos: sed -e 's,^BIN_DIR.*$,BIN_DIRECTORY=/usr/sbin,' \ -e 's,^CONF.*$,CONFIGURE_FILE=/etc/exim.conf,' \ -e 's,^EXIM_USER.*$,EXIM_USER=exim,' \ -e '/# USE_OPENSSL/s,^#,,' src/EDITME > Local/Makefile && printf "USE_GDBM = yes\nDBMLIB = -lgdbm\n" >> Local/Makefile Se você quiser adicionar suporte ao "Linux PAM", [então] execute também os seguintes comandos: sed -i '/# SUPPORT_PAM=yes/s,^#,,' Local/Makefile echo "EXTRALIBS=-lpam" >> Local/Makefile Construa o "Exim" com o seguinte comando: make Esse pacote não vem com uma suíte de teste. Agora, como o(a) usuário(a) "root": make install && install -v -m644 doc/exim.8 /usr/share/man/man8 && install -vdm 755 /usr/share/doc/exim-4.98.1 && cp -Rv doc/* /usr/share/doc/exim-4.98.1 && ln -sfv exim /usr/sbin/sendmail && install -v -d -m750 -o exim -g exim /var/spool/exim Explicações do Comando sed -e ... > Local/Makefile: A maioria das opções de configuração do "Exim" é definida no "Local/Makefile", que é criado a partir do arquivo "src/EDITME". Esse comando especifica o conjunto mínimo de opções. As descrições das opções estão listadas abaixo. printf ... > Local/Makefile: Configurar essas variáveis permite usar GDBM em vez do padrão Berkeley DB. Remova esse comando se você tiver instalado [5741]Berkeley DB (obsoleto). BIN_DIRECTORY=/usr/sbin: Isso instala todos os binários e conjuntos de comandos sequenciais do "Exim" em "/usr/sbin". CONFIGURE_FILE=/etc/exim.conf: Isso instala o principal arquivo de configuração do "Exim" em "/etc". EXIM_USER=exim: Isso informa ao "Exim" que, depois que o processo de segundo plano não mais precisar de privilégios de "root", o processo precisa transferir o processo de segundo plano para o(a) usuário(a) "exim". USE_OPENSSL: descomentar USE_OPENSSL=yes e USE_OPNSSL_PC=yes informa ao sistema de construção para usar OpenSSL e encontrar o bibliotecas necessárias com pkg-config. Descomentar EXIM_MONITOR: Isso permite construir o aplicativo monitor do Exim, o qual exige suporte X Window System e é comentado por padrão. ln -sfv exim /usr/sbin/sendmail: Cria um link para "sendmail" para aplicativos que precisam dele. O "Exim" aceitará a maioria das opções de linha de comando do "Sendmail". install -v -m750 -o exim -g exim /var/spool/exim: Como "/var/spool" é propriedade do "root" e essa versão do "exim" elimina os privilégios de "root" antecipadamente, para executar como usuário(a) "exim", ele não consegue criar o diretório "/var/spool/exim". Como solução alternativa, ele é criado manualmente. Adicionando Funcionalidade Adicional Para utilizar alguns ou todos os pacotes de dependências, você precisará modificar "Local/Makefile" para incluir as diretivas e parâmetros apropriadas para vincular bibliotecas adicionais antes de construir o "Exim". O "Local/Makefile" é bastante comentado com instruções relativas a como fazer isso. Listadas abaixo estão informações adicionais para te ajudar a vincular esses pacotes de dependências ou adicionar funcionalidades adicionais. Se você deseja construir e instalar a documentação ".info", [então] consulte [5742]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 [5743]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 [5744]https://exim.org/exim-html-4.98.1/doc/html/spec_html/ch04.html#SE CTdb. Para funcionalidade "SSL", vejam-se as instruções em [5745]https://exim.org/exim-html-4.98.1/doc/html/spec_html/ch04.html#SE CTinctlsssl e [5746]https://exim.org/exim-html-4.98.1/doc/html/spec_html/ch42.html. Para a funcionalidade "tcpwrappers", vejam-se as instruções em [5747]https://exim.org/exim-html-4.98.1/doc/html/spec_html/ch04.html#SE CID27. Para informações relativas a adicionar mecanismos de autenticação para a construção, vejam-se os capítulos 33—41 de [5748]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 [5749]https://exim.org/exim-html-4.98.1/doc/html/spec_html/ch11.html#SE CTexpcond. 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 [5750]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 [5751]https://exim.org/exim-html-4.98.1/doc/html/spec_html/ch05.html#id 2525974 . 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 [5752]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 [5753]Wiki do Exim. Configurando o Exim Arquivos de Configuração /etc/exim.conf e /etc/aliases Informação de Configuração Revise o arquivo "/etc/exim.conf" e modifique quaisquer configurações para atender às suas necessidades. Observe que a configuração padrão assume que o diretório "/var/mail" é escrevível mundialmente, mas tem o bit "sticky" configurado. Se você quiser usar a configuração padrão, [então] emita como o(a) usuário(a) "root": chmod -v a+wt /var/mail Um arquivo "/etc/aliases" padrão (nada além de comentários) é instalado durante a instalação do pacote se esse arquivo não existir em seu sistema. Crie os apelidos necessários e inicie o processo de segundo plano "Exim" usando os seguintes comandos: cat >> /etc/aliases << "EOF" postmaster: root MAILER-DAEMON: root EOF /usr/sbin/exim -bd -q15m Nota Para proteger um arquivo "/etc/aliases" existente, o comando acima anexa esses apelidos a ele. Esse arquivo deveria ser verificado e os apelidos duplicados removidos, se presentes. O comando "/usr/sbin/exim -bd -q15m" inicia o processo de segundo plano "Exim" com um intervalo de quinze (15) minutos no processamento da fila de mensagens. Ajuste esse parâmetro para atender aos teus desejos. Configuração do Linux PAM Se tiver construído o "Exim" com suporte ao "Linux PAM", [então] você precisa criar um arquivo de configuração "PAM" para fazê-lo funcionar corretamente com o BLFS. Emita o seguinte comando como o(a) usuário(a) root para criar o arquivo de configuração para Linux PAM: cat > /etc/pam.d/exim << "EOF" # Inicia /etc/pam.d/exim auth include system-auth account include system-account session include system-session # Termina /etc/pam.d/exim EOF Conjunto de Comandos Sequenciais de Inicialização Para iniciar automaticamente o "exim" na inicialização, instale o conjunto de comandos sequenciais de iniciação "/etc/rc.d/init.d/exim" incluso no pacote "[5754]blfs-bootscripts-20250225" "": make install-exim O script de inicialização também inicia o processo de segundo plano "Exim" e despacha um processo executor de fila a cada quinze (15) minutos. Modifique o parâmetro "-q