https://wiki.archlinux.org/api.php?action=feedcontributions&user=Fvguilherme&feedformat=atomArchWiki - User contributions [en]2024-03-29T01:08:31ZUser contributionsMediaWiki 1.41.0https://wiki.archlinux.org/index.php?title=Installation_guide_(Portugu%C3%AAs)&diff=587111Installation guide (Português)2019-10-24T12:28:27Z<p>Fvguilherme: Grammatical corrections to make the translation as similar as possible to the original text.</p>
<hr />
<div>[[Category:Installation process (Português)]]<br />
[[ar:Installation guide]]<br />
[[bg:Installation guide]]<br />
[[bs:Installation guide]]<br />
[[cs:Installation guide]]<br />
[[da:Installation guide]]<br />
[[de:Arch Install Scripts]]<br />
[[el:Installation guide]]<br />
[[en:Installation guide]]<br />
[[es:Installation guide]]<br />
[[fi:Installation guide]]<br />
[[fr:Arch install scripts]]<br />
[[hr:Installation guide]]<br />
[[hu:Installation guide]]<br />
[[id:Installation guide]]<br />
[[it:Installation guide]]<br />
[[ja:インストールガイド]]<br />
[[ko:Installation guide]]<br />
[[lt:Installation guide]]<br />
[[nl:Installation guide]]<br />
[[pl:Installation guide]]<br />
[[ru:Installation guide]]<br />
[[sk:Installation guide]]<br />
[[sr:Installation guide]]<br />
[[sv:Installation guide]]<br />
[[th:Installation guide]]<br />
[[tr:Installation guide]]<br />
[[zh-hans:Installation guide]]<br />
[[zh-hant:Installation guide]]<br />
{{StatusTradução|Installation guide|2019-10-15|585451}}<br />
Este documento irá guiá-lo no processo de instalação do [[Arch Linux (Português)|Arch Linux]] usando o [https://projects.archlinux.org/arch-install-scripts.git/ Arch Install Scripts]. Antes de instalar, é recomendável ler rapidamente o [[FAQ (Português)|FAQ]]. Para convenções usadas neste documento, veja [[Help:Leitura]]. Em especial, exemplos de código podem conter objetos reservados (formatados em {{ic|''italics''}}) que devem ser substituídos manualmente.<br />
<br />
Para instruções mais detalhadas, veja os respectivos artigos [[ArchWiki (Português)|ArchWiki]] ou as [[páginas man]] dos vários programas, ambos relacionados neste guia. Para uma ajuda interativa, o [[canal IRC]] e os [https://bbs.archlinux.org/ fóruns] também estão disponíveis.<br />
<br />
Arch Linux deve funcionar em qualquer máquina compatível com [[Wikipedia:pt:AMD64|x86_64]] com um mínimo de 512 MB de RAM. Uma instalação básica deve ocupar menos de 800 MB de espaço em disco. Como o processo de instalação precisa obter pacotes de repositório remoto, esse guia presume que uma conexão com a Internet esteja disponível.<br />
<br />
== Pré-instalação ==<br />
<br />
A mídia de instalação e suas assinaturas [[GnuPG]] podem ser obtidas a partir da página de [https://archlinux.org/download/ Download].<br />
<br />
=== Verificar a assinatura ===<br />
<br />
É recomendável verificar a assinatura da imagem antes de usá-la, especialmente ao fazer o download de um ''espelho HTTP'', no qual os downloads geralmente são propensos a serem interceptados para [http://www.cs.arizona.edu/stork/packagemanagersecurity/attacks-on-package-managers.html#explanation servir imagens maliciosas].<br />
<br />
Em um sistema com [[GnuPG]] instalado, faça isso baixando a ''assinatura PGP'' (sob ''Checksums'') para o diretório da ISO e [[GnuPG#Verify a signature|verificando-a]] com: <br />
<br />
$ gpg --keyserver-options auto-key-retrieve --verify archlinux-''versão''-x86_64.iso.sig<br />
<br />
Alternativamente, de uma instalação existente de Arch Linux, execute:<br />
<br />
$ pacman-key -v archlinux-''versão''-x86_64.iso.sig<br />
<br />
{{Nota|<br />
* A assinatura em si pode ser manipulada se for baixada de um site espelho, ao invés de [https://archlinux.org/download/ archlinux.org] como acima. Nesse caso, certifique-se de que a chave pública, que é usada para decodificar a assinatura, seja assinada por outra chave confiável. O comando {{ic|gpg}} produzirá a impressão digital da chave pública.<br />
* Outro método para verificar a autenticidade da assinatura é garantir que a impressão digital da chave pública seja idêntica à impressão digital da chave do [https://www.archlinux.org/people/developers/ desenvolvedor do Arch Linux] que assinou o arquivo ISO. Veja [[Wikipedia:pt:Criptografia de chave pública]] para mais informações sobre o processo de chave pública para autenticar chaves.<br />
}}<br />
<br />
=== Inicializar o ambiente live ===<br />
<br />
O ambiente ''live'' pode ser inicializado a partir de uma [[Mídia de instalação em flash USB|unidade flash USB]], um [[Optical disc drive#Burning|disco óptico]] ou uma rede com [[PXE]]. Para meios alternativos de instalação, consulte [[:Category:Installation process (Português)]].<br />
<br />
* O apontamento do dispositivo de inicialização atual para uma unidade que contém a mídia de instalação do Arch normalmente pode ser alcançado pressionando-se uma tecla durante a fase [[Wikipedia:pt:Power-on self-test|POST]], conforme indicado na tela inicial. Consulte o manual da sua placa-mãe para obter detalhes.<br />
* Quando o menu do Arch aparecer, selecione ''Boot Arch Linux'' e pressione {{ic|Enter}} para entrar no ambiente de instalação.<br />
* Consulte [https://projects.archlinux.org/archiso.git/tree/docs/README.bootparams README.bootparams] para uma lista de [[Parâmetros do kernel#Configuração|parâmetros de inicialização]] e [https://git.archlinux.org/archiso.git/tree/configs/releng/packages.x86_64 packages.x86_64] para uma lista de pacotes incluídos.<br />
* Você será autenticado no primeiro [[Wikipedia:Virtual console|console virtual]] como o usuário ''root'' sob um prompt de shell [[Zsh]].<br />
<br />
Para trocar para um console diferente — por exemplo, para ver esse guia com [[ELinks]] junto com a instalação — use o [[Keyboard shortcuts|atalho]] {{ic|Alt+''seta''}}. Para [[edição de texto|editar]] arquivos de configuração, [[nano#Usage|nano]], [[Wikipedia:vi|vi]] e [[vim#Usage|vim]] estão disponíveis.<br />
<br />
=== Definir o layout do teclado ===<br />
<br />
O [[mapa de teclas de console]] padrão é [[Wikipedia:File:KB United States-NoAltGr.svg|US]]. Layouts disponíveis podem ser listados com:<br />
<br />
# ls /usr/share/kbd/keymaps/**/*.map.gz<br />
<br />
Para modificar o layout, acrescente um nome de arquivo ao {{man|1|loadkeys}}, omitindo caminho e extensão de arquivo. Por exemplo, para definir um layout de teclado [[Wikipedia:File:KB_Portuguese_Brazil.svg|ABNT (brasileiro)]]:<br />
<br />
# loadkeys br-abnt2 <!-- Nota do tradutor: o artigo original usou layout alemão (de), mas usei um layout brasileiro por presumir ser mais útil para o leitor deste artigo traduzido --><br />
<br />
Ou para definir para um layout de teclado de português de Portugal:<br />
<br />
# loadkeys pt-latin1 <!-- Nota do tradutor: acrescentei este para facilitar para facilitar leitores de Portugal --><br />
<br />
[[Fontes de console]] estão localizadas em {{ic|/usr/share/kbd/consolefonts/}} e, de forma semelhante, podem ser definidas com {{man|8|setfont}}.<br />
<br />
=== Definir o idioma do ambiente live ===<br />
<!-- Nota do tradutor: essa é uma seção original deste artigo traduzido, não existindo no artigo original em inglês (veja: https://wiki.archlinux.org/index.php?title=Talk:Installation_guide&diff=572522&oldid=572403)--><br />
{{Nota|Isso se aplica '''apenas''' ao ambiente live. A definição do idioma do sistema instalado é explicado em [[#Localização]]}}<br />
<br />
O ambiente ''live'' vem em inglês (locale {{ic|en_US.UTF-8}}) por padrão, mas você pode alterá-lo para executar as etapas de instalação usando o idioma desejado.<br />
<br />
Para português brasileiro, descomente {{ic|pt_BR.UTF-8 UTF-8}} e qualquer outro locale desejado em {{ic|/etc/locale.gen}} e gere-os com:<br />
<br />
# locale-gen<br />
<br />
Então, exporte a variável {{ic|LANG}} acrescentando o idioma e codificação desejados. Por exemplo, para português brasileiro seria:<br />
<br />
# export LANG=pt_BR.UTF-8<br />
<br />
Para português de Portugal, use {{ic|pt_PT.UTF-8 UTF-8}} em vez do "pt_BR".<br />
<br />
=== Verificar o modo de inicialização ===<br />
<br />
Se o modo UEFI estiver disponível em uma placa-mãe [[UEFI]], [[Archiso (Português)|Archiso]] vai [[inicializar]] o Arch Linux adequadamente via [[systemd-boot]]. Para verificar isso, liste o diretório [[UEFI#UEFI variables|efivars]]:<br />
<br />
# ls /sys/firmware/efi/efivars<br />
<br />
Se o diretório não existir, o sistema pode ser inicializado no modo [[Wikipedia:BIOS|BIOS]] ou CSM. Veja o manual da sua placa-mãe para detalhes.<br />
<br />
=== Conectar à internet ===<br />
<br />
Para configurar uma conexão de rede, siga as etapas abaixo:<br />
<br />
* Certifique-se que sua [[interface de rede]] esteja listada e ativada, por exemplo, com {{man|8|ip-link}}: {{bc|# ip link}}<br />
* Conecte-se à rede. Conecte o cabo Ethernet ou [[Configuração de rede sem fio|conecte a uma rede sem fio]].<br />
* Configure sua conexão de rede:<br />
** [[Configuração de rede#Endereço IP estático|Endereço IP estático]]<br />
** Endereço IP dinâmico: use [[DHCP]].<br />
*: {{Nota|A imagem de instalação habilita [[dhcpcd]] ({{ic|dhcpcd@''interface''.service}}) para [https://git.archlinux.org/archiso.git/tree/configs/releng/airootfs/etc/udev/rules.d/81-dhcpcd.rules dispositivos de rede com fio] na inicialização.}}<br />
* A conexão pode ser verificada com [[Wikipedia:pt:ping|ping]]: {{bc|# ping archlinux.org}}<br />
<br />
=== Atualizar o relógio do sistema ===<br />
<br />
Use {{man|1|timedatectl}} para garantir que o relógio do sistema está certo:<br />
<br />
# timedatectl set-ntp true<br />
<br />
Para verificar o status do serviço, use {{ic|timedatectl status}}.<br />
<br />
=== Partição dos discos ===<br />
<br />
Quando reconhecido pelo sistema ''live'', discos são atribuídos a um [[dispositivo de bloco]] tal como {{ic|/dev/sda}} ou {{ic|/dev/nvme0n1}}.. Para identificar esses dispositivos, use [[lsblk (Português)|lsblk]] ou ''fdisk''.<br />
<br />
# fdisk -l<br />
<br />
Resultados terminando em {{ic|rom}}, {{ic|loop}} ou {{ic|airoot}} podem ser ignorados.<br />
<br />
As seguintes [[partition|partições]] são '''exigidas''' para um dispositivo escolhido:<br />
<br />
* Uma partição para o diretório raiz {{ic|/}}.<br />
* Se [[UEFI]] estiver habilitado, uma [[partição de sistema EFI]].<br />
<br />
Se você quiser criar algum dispositivo de bloco empilhado para [[LVM]], [[dm-crypt|criptografia de sistema]] ou [[RAID]], faça isso agora.<br />
<br />
==== Exemplos de layouts ====<br />
<br />
{| class="wikitable"<br />
!colspan="5" | BIOS com [[MBR]]<br />
|-<br />
! Ponto de montagem<br />
! Partição<br />
! [[Wikipedia:pt:Tipo de partição|Tipo de partição]]<br />
! Tamanho sugerido<br />
|-<br />
| {{ic|/mnt}}<br />
| {{ic|/dev/sd''X''1}}<br />
| Linux<br />
| Restante do dispositivo<br />
|-<br />
| [SWAP]<br />
| {{ic|/dev/sd''X''2}}<br />
| Swap Linux<br />
| Mais que 512 MiB<br />
|-<br />
!colspan="5" | UEFI com [[GPT]]<br />
|-<br />
! Ponto de montagem<br />
! Partição<br />
! [[Wikipedia:pt:Tabela de Partição GUID#Tipos de partição GUID|Tipo de partição]]<br />
! Tamanho sugerido<br />
|-<br />
| {{ic|/mnt/boot}} ou {{ic|/mnt/efi}}<br />
| {{ic|/dev/sd''X''1}}<br />
| [[Partição de sistema EFI]]<br />
| 260–512 MiB<br />
|-<br />
| {{ic|/mnt}}<br />
| {{ic|/dev/sd''X''2}}<br />
| Linux x86-64 root (/)<br />
| Restante do dispositivo<br />
|-<br />
| [SWAP]<br />
| {{ic|/dev/sd''X''3}}<br />
| Linux swap<br />
| Mais que 512 MiB<br />
|-<br />
|}<br />
<br />
Veja também [[Partitioning#Example layouts]].<br />
<br />
{{Nota|<br />
* Use [[fdisk]] ou [[parted]] para modificar as tabelas de partição, por exemplo {{ic|fdisk /dev/sd''X''}}.<br />
* Um espaço [[swap (Português)|swap]] pode ser definido em um [[Arquivo swap]] para sistemas de arquivos que possuem suporte a file systems supporting it.<br />
}}<br />
<br />
=== Formatar as partições ===<br />
<br />
Assim que as partições tenham sido criadas, cada uma deve ser formatada com um [[file system|sistema de arquivos]] adequado. Por exemplo, se a partição raiz está em {{ic|/dev/sd''X''1}} e receberá o sistema de arquivos {{ic|''ext4''}}, execute:<br />
<br />
# mkfs.''ext4'' /dev/sd''X1''<br />
<br />
Se você criou uma partição para swap (por exemplo, {{ic|/dev/''sda3''}}), inicialize-a com ''mkswap'':<br />
<br />
# mkswap /dev/sd''X2''<br />
# swapon /dev/sd''X2''<br />
<br />
Veja [[File systems#Create a file system]] para detalhes.<br />
<br />
=== Montar os sistemas de arquivos ===<br />
<br />
[[Mount|Monte]] o sistema de arquivos da partição raiz em {{ic|/mnt}}, por exemplo:<br />
<br />
# mount /dev/sd''X1'' /mnt<br />
<br />
Crie quaisquer pontos de montagem restantes (tal como {{ic|/mnt/efi}}) e monte suas partições correspondentes.<br />
<br />
[https://git.archlinux.org/arch-install-scripts.git/tree/genfstab.in genfstab] vai detectar os sistemas de arquivos montados e espaços swap.<br />
<br />
== Instalação ==<br />
<br />
=== Selecionar os espelhos ===<br />
<br />
Pacotes a serem instalados devem ser baixados de [[espelhos]] ''(mirrors)'', que são definidos na {{ic|/etc/pacman.d/mirrorlist}}. No sistema ''live'', todos os espelhos estão habilitados e ordenados por seu status e velocidade de sincronização à época em que a imagem de instalação foi criada.<br />
<br />
Quanto mais alto um espelho está posicionado na lista, mais prioritário ele será ao baixar um pacote. Você pode querer editar o arquivo e mover espelhos geograficamente mais pertos para o topo da lista, apesar de que outros critérios devem ser levados em consideração.<br />
<br />
Esse arquivo será posteriormente copiado para o novo sistema por ''pacstrap'', então é melhor fazer direito.<br />
<br />
=== Instalar os pacotes essenciais ===<br />
<br />
Use o script [https://projects.archlinux.org/arch-install-scripts.git/tree/pacstrap.in pacstrap] para instalar o pacote {{Pkg|base}}, um [[kernel (Português)|kernel]] Linux e um firmware para hardwares comuns:<br />
<br />
# pacstrap /mnt base linux linux-firmware<br />
<br />
{{Dica|Você pode substituir {{Pkg|linux}} pelo pacote de [[kernel (Português)|kernel]] de sua escolh. Você pode não instalar um kernel, se souber o que está fazendo.}}<br />
<br />
O pacote {{pkg|base}} não inclui todas as ferramentas da instalação ''live''. Então a instalação de outros pacotes pode ser necessário para um sistema base completamente funcional. Em especial, considere instalar:<br />
<br />
* utilitários para acessar partições [[RAID]] ou [[LVM]],<br />
* firmwares específicos para outros dispositivos não incluídos em {{pkg|linux-firmware}},<br />
* softwares necessários para [[rede]],<br />
* um editor de [[text editor|editores de arquivos]<br />
* pacotes necessários para acessar documentação em páginas [[man (Português)|man]] e [[info (Português)|info]]: {{Pkg|man-db}}, {{Pkg|man-pages}} and {{Pkg|texinfo}}.<br />
<br />
Para [[instala]]r outros pacotes ou grupos de pacotes, acrescente os nomes ao comando ''pacstrap'' acima (separados por espaço) ou use o [[pacman (Português)|pacman]] após a etapa de [[#Chroot|chroot]]. Para uma caomparação, pacotes disponíveis no sistema ''live'' podem ser encontrados em [https://projects.archlinux.org/archiso.git/tree/configs/releng/packages.x86_64 packages.x86_64].<br />
<br />
== Configurar o sistema ==<br />
<br />
=== Fstab ===<br />
<br />
Gerar um arquivo [[fstab]] (use {{ic|-U}} ou {{ic|-L}} para definir por [[UUID (Português)|UUID]] ou rótulos, respectivamente):<br />
<br />
# genfstab -p /mnt >> /mnt/etc/fstab<br />
<br />
Verifique o arquivo {{ic|/mnt/etc/fstab}} resultante e edite-o caso haja erros.<br />
<br />
=== Chroot ===<br />
<br />
[[Change root (Português)|Mude a raiz]] para novo sistema:<br />
<br />
# arch-chroot /mnt<br />
<br />
=== Fuso horário ===<br />
<br />
Defina o [[time zone|fuso horário]]:<br />
<br />
# ln -sf /usr/share/zoneinfo/''Região''/''Cidade'' /etc/localtime<br />
<br />
Por exemplo, para definir para o fuso horário de Brasília (''BRT'' ou ''BRST''), execute:<br />
# ln -sf /usr/share/zoneinfo/America/Sao_Paulo /etc/localtime<br />
<br />
Execute {{man|8|hwclock}} para gerar {{ic|/etc/adjtime}}:<br />
<br />
# hwclock --systohc<br />
<br />
Esse comando presume que o relógio de hardware está definido para [[Wikipedia:UTC|UTC]]. Veja [[System time#Time standard]] para mais detalhes.<br />
<br />
=== Localização ===<br />
<br />
Descomente {{ic|pt_BR.UTF-8 UTF-8}} e qualquer outro [[locale (Português)|locale]] em {{ic|/etc/locale.gen}}, e gere-os com:<br />
<br />
# locale-gen<br />
<br />
Crie o arquivo {{man|5|locale.conf}} e defina a [[variável]] {{ic|LANG}} adequadamente:<br />
<br />
{{hc|1=/etc/locale.conf|2=<br />
LANG=''pt_BR.UTF-8''<br />
}}<br />
<br />
Se você [[#Definir o layout do teclado|definir o layout do teclado]], torne as alterações persistentes em {{man|5|vconsole.conf}}:<br />
<br />
{{hc|1=/etc/vconsole.conf|2=<br />
KEYMAP=''br-abnt2''<br />
}}<br />
<br />
=== Configuração de rede ===<br />
<br />
Crie o arquivo [[hostname (Português)|hostname]]:<br />
<br />
{{hc|/etc/hostname|<br />
''meuhostname''<br />
}}<br />
<br />
Adicione entradas correspondentes ao {{man|5|hosts}}:<br />
<br />
{{hc|/etc/hosts|<br />
127.0.0.1 localhost.localdomain localhost<br />
::1 localhost.localdomain localhost<br />
'''127.0.1.1 ''meuhostname''.localdomain ''meuhostname'''''<br />
}}<br />
<br />
Se o sistema tem um endereço IP permanente, ele deve ser usado em vez de {{ic|127.0.1.1}}.<br />
<br />
Conclua a [[configuração de rede]] para o ambiente recém-instalado, que inclua [[instala]]ção de pacotes como {{Pkg|iputils}} e seu software [[gerenciador de rede]] preferido.<br />
<br />
=== Initramfs ===<br />
<br />
Criar um novo ''initramfs'' geralmente não é necessário, porque [[mkinitcpio]] foi executado na instalação do pacote de [[kernel (Português)|kernel]] com ''pacstrap''.<br />
<br />
Para [[LVM#Configure_mkinitcpio|LVM]], [[dm-crypt|criptografia de sistema]] or [[RAID#Configure_mkinitcpio|RAID]], modifique o {{man|5|mkinitcpio.conf}} e recrie a imagem initramfs:<br />
<br />
# mkinitcpio -P<br />
<br />
=== Senha do root ===<br />
<br />
Defina a [[senha]] do ''root'' (também conhecido como "superusuário"):<br />
<br />
# passwd<br />
<br />
=== Gerenciador de boot ===<br />
<br />
Escolha e instale um [[gerenciador de boot]] compatível com Linux. Se você tiver um CPU Intel ou AMD, habilite atualizações de [[microcode|microcódigo]] também.<br />
<br />
== Reiniciar ==<br />
<br />
Saia de ambiente ''chroot'' digitando {{ic|exit}} ou pressionando {{ic|Ctrl+D}}.<br />
<br />
Opcionalmente, desmonte todas as partições com {{ic|umount -R /mnt}}: isso permite noticiar quaisquer partições "ocupadas" e localizar a causa com o {{man|1|fuser}}.<br />
<br />
Finalmente, reinicie a máquina digitando {{ic|reboot}}: quaisquer partições que ainda estejam montadas serão desmontadas automaticamente por ''systemd''. Lembre-se de remover a mídia de instalação e, então, se autenticando no novo sistema com a conta de root.<br />
<br />
== Pós-instalação ==<br />
<br />
Veja [[Recomendações gerais]] por instruções de gerenciamento de sistema e tutoriais pós-instalação (como instalar uma interface gráfica de usuário, som ou um touchpad).<br />
<br />
Para uma lista de aplicativos que podem ser de seu interesse, veja [[List of applications|Lista de aplicativos]].</div>Fvguilhermehttps://wiki.archlinux.org/index.php?title=Flatpak_(Portugu%C3%AAs)&diff=582813Flatpak (Português)2019-09-18T13:58:23Z<p>Fvguilherme: Minor edit.</p>
<hr />
<div>[[Category:Development (Português)]]<br />
[[en:Flatpak]]<br />
[[es:Flatpak]]<br />
[[ja:Flatpak]]<br />
{{StatusTradução|Flatpak|2019-08-09|23769}}<br />
{{Related articles start (Português)}}<br />
{{Related|Snapd}}<br />
{{Related|bubblewrap}}<br />
{{Related articles end}}<br />
Do projeto [https://github.com/flatpak/flatpak/blob/master/README.md README]: "''[http://flatpak.org Flatpak] é um sistema para construção, distribuição e execução de aplicações desktop sandboxed no Linux.''"<br />
<br />
De {{man|1|flatpak}}:<br />
<br />
:''Flatpak é uma ferramenta para gerenciar aplicações e os runtimes que elas usam. No modelo Flatpak, aplicações podem ser construídas e distribuídas independentemente do sistema hospedeiro em que elas estão usando, e elas são isoladas do sistema hospedeiro (‘sandboxed’) em algum grau, no runtime.''<br />
:''Flatpak usa [https://ostree.readthedocs.io/en/latest/ OSTree] para distribuir e implantar dados. Os repositórios que ele usa são repositórios OSTree epodem ser manipulados com a ferramenta ostree. Runtimes instalados e aplicações são checkouts do OSTree.''<br />
<br />
== Instalação ==<br />
<br />
[[Instale]] o pacote {{pkg|flatpak}}.<br />
<br />
{{Nota|Se você quer construir flatpaks com o {{ic|flatpak-builder}}, você precisará instalar as dependências opcionais {{pkg|elfutils}} e {{pkg|patch}}.}}<br />
<br />
== Gerenciar repositórios ==<br />
<br />
=== Adicionar um repositório ===<br />
<br />
Para adicionar um repositório flatpak remoto faça:<br />
<br />
$ flatpak remote-add ''nome'' ''localização''<br />
<br />
onde ''nome'' é o nome do novo remoto e ''localização'' é o caminho ou a URL do repositório. <br />
<br />
Por exemplo, para adicionar o [https://flathub.org/ repositório oficial Flathub]:<br />
<br />
$ flatpak remote-add --if-not-exists flathub <nowiki>https://dl.flathub.org/repo/flathub.flatpakrepo</nowiki><br />
<br />
=== Deletar repositórios ===<br />
<br />
Para deletar um repositório flatpak remoto faça:<br />
<br />
$ flatpak remote-delete ''nome''<br />
<br />
onde ''nome'' é o nome do repositório remoto a ser deletado.<br />
<br />
=== Listar repositórios ===<br />
<br />
Para listar todos os repositórios adicionados faça:<br />
<br />
$ flatpak remotes<br />
<br />
== Gerenciar runtimes e aplicações ==<br />
<br />
=== Procurar por um runtime ou aplicação ===<br />
<br />
Antes de estar pronto para procurar por um runtime ou aplicação em um novo repositório remoto adicionado, nós precisamos recuperar os dados appstream. Para isso:<br />
<br />
{{hc|$ flatpak update|<br />
Procurando por atualizações...<br />
Atualizando dados appstream para remote ''nome''<br />
}}<br />
<br />
Então nós podemos proceder para procurar por um pacote com {{ic|flatpak search ''nomedopacote''}}, ''e.g.'' para procurar pelo pacote {{ic|libreoffice}} com o {{ic|flathub}} remoto configurado:<br />
<br />
<br />
{{hc|$ flatpak search libreoffice|<br />
ID de aplicativo Versão Ramo Remotos Descrição <br />
org.libreoffice.LibreOffice stable flathub The LibreOffice productivity suite<br />
}}<br />
<br />
=== Listar todos os runtime ou aplicações disponíveis ===<br />
<br />
Para listar todos os runtimes e aplicações disponíveis em um repositório remoto nomeado como ''remoto'' faça: <br />
<br />
$ flatpak remote-ls ''remoto''<br />
<br />
=== Instalar um runtine ou aplicação ===<br />
<br />
Para instalar umruntime ou aplicação faça:<br />
<br />
$ flatpak install ''remoto'' ''nome''<br />
<br />
onde ''remoto'' é o nome do repositório remoto e ''nome'' é o nome da aplicação ou runtime a ser instalado.<br />
<br />
{{Dica|Você pode usar identificadores parciais {{ic|flatpak install ''nome-parcial''}} (por exemplo {{ic|flatpak install libreoffice}}).}}<br />
<br />
=== Listar os runtimes e aplicações instalados ===<br />
<br />
Para listar os runtimes e aplicações instaladas faça:<br />
<br />
$ flatpak list<br />
<br />
=== Rodar aplicações ===<br />
<br />
Aplicações Flatpak também podem ser executadas por linha de comando:<br />
<br />
$ flatpak run ''nome''<br />
<br />
=== Atualizar um runtime ou aplicação ===<br />
<br />
Para atualizar um runtime ou aplicação nomeada como ''nome'' faça:<br />
<br />
$ flatpak update ''name''<br />
<br />
=== Desinstalar um runtime ou aplicação ===<br />
<br />
Para desinstalar um runtime ou aplicação nomeado(a) como nome faça:<br />
<br />
$ flatpak uninstall ''name''<br />
<br />
{{Dica|Você pode desinstalar flatpak “refs” não utilizado (também conhecido como orfãos sem aplicação/runtime) com {{ic|flatpak unsinstall --unused}}.}}<br />
<br />
=== Adicionando arquivos .desktop Flatpak ao seu menu ===<br />
Flatpak espera que o gerenciador de janelas respeite a variável de ambiente XDG_DATA_DIRS para descobrir aplicações. Isso pode requerer que a sessão seja reiniciada ou o lançador pode não suportar isso. Nesse caso, onde você pode editar a lista de diretórios escaneados, adicionar isso a ela:<br />
<br />
~/.local/share/flatpak/exports/share/applications<br />
/var/lib/flatpak/exports/share/applications<br />
<br />
Isso é sabidamente necessário no Awesome.<br />
<br />
=== Vendo as permissões sandbox da aplicação ===<br />
Aplicações Flatpak vêm com regras sandbox pré-definidas que definem quais os recursos e os caminhos do sistema de arquivos a aplicação tem permissão para acessar. <br />
Para ver as permissões de uma aplicação específica faça:<br />
<br />
$ flatpak info --show-permissions ''name''<br />
A referência para os nomes das permissões sandbox podem ser encontradas na [https://docs.flatpak.org/en/latest/sandbox-permissions-reference.html/ documentação oficial do Flatpak.]<br />
<br />
=== Sobrescrevendo permissões sandbox de aplicações ===<br />
Se você acha que as permissões pré-definidas da aplicação é muito permissiva ou muito restritiva, você pode mudar para qualquer uma que quiser usando o comando {{ic|flatpak override}}.<br />
Por exemplo:<br />
$ flatpak override --nofilesystem=home ''name''<br />
Isso irá prevenir que a aplicação acesse a sua pasta home.<br />
<br />
Todo tipo de permissão como dispositivo, sistema de arquivo ou soquete tem um uma linha de comando que permite aquela permissão em particular e uma opção separada que nega. Por exemplo, no caso de acesso ao dispositivo {{ic|1=--device=device_''nome''}} permite o acesso, {{ic|1=--no-device=device_''nome''}} nega a permissão para acessar o dispositivo.<br />
<br />
Para todos os tipos de comandos de permissão consulte a página de manual: {{man|1|flatpak-override}}.<br />
<br />
Substituições de permissão podem ser resetadas para o padrão com o comando:<br />
$ flatpak override --reset ''nome''<br />
<br />
== Criar uma base de runtime customizada ==<br />
<br />
{{Expansion|Isso certamente pode ser melhorado. Também há problemas com D-Bus para apps do GNOME.}}<br />
<br />
{{Atenção|Se você quer lançar o seu software para o público como Flatpak, um runtime Arch-based é inadequado. Nesse caso, você precisará seguir a [http://docs.flatpak.org/ documentação oficial] para integrar seu software ao ecossistema adequado do Flatpak usando os [http://flatpak.org/runtimes.html/ runtimes comuns].}}<br />
<br />
{{Nota|Você pode querer usar uma conta não confiável e desprivilegiadas para construir software não confiável porque o software não é sandboxed durante a criação do app e do runtime.}}<br />
<br />
{{Nota|Quando distribuindo pacotes para outros, você pode ser legalmente obrigado a fornecer o código fonte de alguns dos softwares empacotados mediante solicitação. Vocẽ ode querer usar [[ABS_(Português)|ABS]] para construir tais pacotes a partir da fonte.}}<br />
<br />
Você pode criar uma base runtime Arch-based customizada e uma base SDK para Flatpak usando o pacman. Você pode, então, usá-las para criação e empacotamento de aplicações. Isso é uma alternativa para uso pessoal para o padrão {{ic|org.freedesktop.BasePlatform}} e {{ic|org.freedesktop.BaseSdk runtimes}}.<br />
<br />
Em adição ao {{Pkg|flatpak}}, você precisa ter instalado {{Pkg|fakeroot}} e {{Pkg|fakechroot}}, para suportar o pacman hooks.<br />
<br />
Primeiro, comece criando um diretório para criação do runtime e, possivelmente, aplicações.<br />
<br />
$ mkdir ''minhapastadecriacaoflatpak''<br />
$ cd ''minhapastadecriacaoflatpak''<br />
<br />
Você pode, então, preparar o diretório para a criação da plataforma base do runtime. Os arquivos do sub-diretório irão conter o que depois será o diretório {{ic|/usr}} no sandbox. Portanto, você precisará criar links simbólicos para o padrão {{ic|/etc/share}} etc. do Arch ainda possa ser acessado no caminho usual.<br />
<br />
$ mkdir -p ''meuruntime''/files/var/lib/pacman<br />
$ touch ''meuruntime''/files/.ref<br />
$ ln -s /usr/usr/share ''meuruntime''/files/share<br />
$ ln -s /usr/usr/include ''meuruntime''/files/include<br />
$ ln -s /usr/usr/local ''meuruntime''/files/local<br />
<br />
Certifique-se que as fontes disponíveis pelo seu SO host para o runtime do Arch:<br />
<br />
$ mkdir -p ''meuruntime''/files/usr/share/fonts<br />
$ ln -s /run/host/fonts ''meuruntime''/files/usr/share/fonts/flatpakhostfonts<br />
<br />
Você precisa e talvez queira adaptar o seu {{ic|pacman.conf}} antes de instalar pacotes no runtime. Copie o {{ic|/etc/pacman.conf}} para o seu diretório de criação e então faça as seguintes mudanças:<br />
<br />
* Remova a opção {{ic|CheckSpace}} e então o pacman não reclamará sobre erros ao encontrar a raíz do sistema de arquivo para checar o espaço de disco.<br />
* Remova quaisquer repositórios customizados indesejados e as configurações {{ic|IgnorePkg}}, {{ic|IgnoreGroup}}, {{ic|NoUpgrade}} e {{ic|NoExtract}}, que são necessárias somente para o sistema hospedeiro.<br />
<br />
Agora instale os pacotes para o runtime.<br />
<br />
$ fakechroot fakeroot pacman -Syu --root ''meuruntime''/files --dbpath ''meuruntime''/files/var/lib/pacman --config pacman.conf base<br />
$ mv pacman.conf ''meuruntime''/files/etc/pacman.conf<br />
<br />
Configure os [[Locale_(Português)|locales]] a serem usados editando {{ic|''meuruntime''/files/etc/locale.gen}}. Então, regenere os locales do runtime.<br />
<br />
$ fakechroot chroot ''meuruntime''/files locale-gen<br />
<br />
A base SDK pode ser criada a partir da base runtime com adição de aplicações necessárias para a criação de pacotes e executar o pacman.<br />
<br />
$ cp -r ''meuruntime'' mysdk<br />
$ fakechroot fakeroot pacman -S --root mysdk/files --dbpath mysdk/files/var/lib/pacman --config meusdk/files/etc/pacman.conf base-devel fakeroot fakechroot --needed<br />
<br />
Insira metadados sobre runtime e SDK.<br />
<br />
{{hc|''meuruntime''/metadados|2=<br />
[Runtime]<br />
name=org.mydomain.BasePlatform<br />
runtime=org.mydomain.BasePlatform/x86_64/2016-06-26<br />
sdk=org.mydomain.BaseSdk/x86_64/2016-06-26<br />
}}<br />
<br />
{{hc|meusdk/metadados|2=<br />
[Runtime]<br />
name=org.mydomain.BaseSdk<br />
runtime=org.mydomain.BasePlatform/x86_64/2016-06-26<br />
sdk=org.mydomain.BaseSdk/x86_64/2016-06-26<br />
}}<br />
<br />
Adicione as bases runtime e SDK para um repositório local no diretório atual. Você pode querer dar para eles mensagens commit apropriadas como, por exemplo, “Minha base runtime Arch” e “Minha base SDK Arch”.<br />
<br />
$ ostree init --mode archive-z2 --repo=.<br />
$ EDITOR="nano -w" ostree commit -b runtime/org.mydomain.BasePlatform/x86_64/2016-06-26 --tree=dir=''meuruntime''<br />
$ EDITOR="nano -w" ostree commit -b runtime/org.mydomain.BaseSdk/x86_64/2016-06-26 --tree=dir=meusdk<br />
$ ostree summary -u<br />
<br />
Instale o runtime e o SDK.<br />
<br />
$ flatpak remote-add --user --no-gpg-verify myarchos file://$(pwd)<br />
$ flatpak install --user myarchos org.mydomain.BasePlatform 2016-06-26<br />
$ flatpak install --user myarchos org.mydomain.BaseSdk 2016-06-26<br />
<br />
=== Criar apps com o pacman ===<br />
<br />
Como uma alternativa para a criação de aplicação da [http://flatpak.org/developer.html forma comum], nós podemos usar o pacman para criar uma versão em contêiner dos pacotes comuns do Arch. Note que {{ic|/usr}} é somente-leitura quando criando apps, então nós não podemos usar os pacotes do Arch quando da criação de um app. Para criar um app real com o pacman, nós podemos também:<br />
<br />
* Usar o pacman para criar um runtime contendos todas as dependẽncias<br />
* e compilar os apps [http://flatpak.org/developer.html como sempre] ou talvez usando o pacman para criar um [[PKGBUILD_(Português)|PKGBUILD]] customizado e adaptado ao Flatpak, o qual usa {{ic|1=--prefix=/app}} para o script {{ic|configure}},<br />
<br />
ou nós podemos<br />
* usar o pacman para criar o runtime contendo o app instalado com o pacman<br />
* e criar um app dummy para executá-lo.<br />
<br />
Por último, primeiro crie um runtime usando o pacman como esse para o {{Pkg|gedit}}. O runtime é primeiramente inicializado e preparado para uso com o pacman.<br />
<br />
$ flatpak build-init -w geditruntime org.mydomain.geditruntime org.mydomain.BaseSdk org.mydomain.BasePlatform 2016-06-26<br />
$ flatpak build geditruntime sed -i "s/^#Server/Server/g" /etc/pacman.d/mirrorlist<br />
$ flatpak build geditruntime ln -s /usr/var/lib /var/lib<br />
$ flatpak build geditruntime fakeroot pacman-key --init<br />
$ flatpak build geditruntime fakeroot pacman-key --populate archlinux<br />
<br />
Então o pacote está instalado. A conexão da rede hospedeira deve estar disponível para o pacman.<br />
<br />
$ flatpak build --share=network geditruntime fakechroot fakeroot pacman --root /usr -S gedit<br />
<br />
Você pode testar a aplicação antes de finalizar o runtime (sem o sandboxing apropriado).<br />
<br />
$ flatpak build --socket=x11 geditruntime gedit<br />
<br />
Agora termine criando o runtime e exporte-o para um novo repositório local. As chaves GnuPG do pacman têm permissões que podem interferir e precisam ser removidas primeiro.<br />
<br />
$ flatpak build geditruntime rm -r /etc/pacman.d/gnupg<br />
$ flatpak build-finish geditruntime<br />
$ sed -i "s/\[Application\]/\[Runtime\]/;s/runtime=org.mydomain.BasePlatform/runtime=org.mydomain.geditruntime/" geditruntime/metadata<br />
$ flatpak build-export -r geditrepo geditruntime<br />
<br />
Então crie o app dummy.<br />
<br />
$ flatpak build-init geditapp org.gnome.gedit org.mydomain.BaseSdk org.mydomain.geditruntime<br />
<br />
Agora termine criando o app dummy. Você pode ajustar as permissões de acesso quando sandboxed dando opções adicionais ao terminar de criar. Para possíveis opções veja a [[#Veja também|documentação do Flatpak]] e os [https://gitlab.gnome.org/GNOME/gnome-apps-nightly/tree/master/ arquivos de manifesto do GNOME]. Alternativamente, adapte {{ic|geditapp/metadata}} para as suas necessidades após terminar de criar, mas antes de exportar. Quando os arquivos de metadados estiver concluído, exporte o app para o repositório.<br />
<br />
$ flatpak build-finish geditapp --socket=x11 ''[possibly other options]'' --command=gedit<br />
$ flatpak build-export geditrepo geditapp<br />
<br />
Instale-o junto com o runtime.<br />
<br />
$ flatpak --user remote-add --no-gpg-verify geditrepo geditrepo<br />
$ flatpak install --user geditrepo org.mydomain.geditruntime<br />
$ flatpak install --user geditrepo org.gnome.gedit<br />
$ flatpak run org.gnome.gedit<br />
<br />
== Veja também ==<br />
<br />
* [http://flatpak.org Official website]<br />
* [https://github.com/flatpak/flatpak/wiki Official Github wiki]<br />
* [[Wikipedia::Flatpak|Wikipedia page]]<br />
* [https://wiki.gnome.org/Projects/SandboxedApps Gnome SandboxedApps]<br />
* [https://community.kde.org/Guidelines_and_HOWTOs/Flatpak KDE Testing Runtime and Applications]</div>Fvguilhermehttps://wiki.archlinux.org/index.php?title=Flatpak_(Portugu%C3%AAs)&diff=582442Flatpak (Português)2019-09-15T19:17:37Z<p>Fvguilherme: minor edit</p>
<hr />
<div>[[Category:Development (Português)]]<br />
[[en:Flatpak]]<br />
[[es:Flatpak]]<br />
[[ja:Flatpak]]<br />
{{StatusTradução|Flatpak|2019-08-09|23769}}<br />
{{Related articles start (Português)}}<br />
{{Related|Snapd}}<br />
{{Related|bubblewrap}}<br />
{{Related articles end}}<br />
Do projeto [https://github.com/flatpak/flatpak/blob/master/README.md README]: "''[http://flatpak.org Flatpak] é um sistema para construção, distribuição e execução de aplicações desktop sandboxed no Linux.''"<br />
<br />
De {{man|1|flatpak}}:<br />
<br />
:''Flatpak é uma ferramenta para gerenciar aplicações e os runtimes que elas usam. No modelo Flatpak, aplicações podem ser construídas e distribuídas independentemente do sistema hospedeiro em que elas estão usando, e elas são isoladas do sistema hospedeiro (‘sandboxed’) em algum grau, no runtime.''<br />
:''Flatpak usa [https://ostree.readthedocs.io/en/latest/ OSTree] para distribuir e implantar dados. Os repositórios que ele usa são repositórios OSTree epodem ser manipulados com a ferramenta ostree. Runtimes instalados e aplicações são checkouts do OSTree.''<br />
<br />
== Instalação ==<br />
<br />
[[Instale]] o pacote {{pkg|flatpak}}.<br />
<br />
{{Nota|Se você quer construir flatpaks com o {{ic|flatpak-builder}}, você precisará instalar as dependências opcionais {{pkg|elfutils}} e {{pkg|patch}}.}}<br />
<br />
== Gerenciar repositórios ==<br />
<br />
=== Adicionar um repositório ===<br />
<br />
Para adicionar um repositório flatpak remoto faça:<br />
<br />
$ flatpak remote-add ''nome'' ''localização''<br />
<br />
onde ''nome'' é o nome do novo remoto e ''localização'' é o caminho ou a URL do repositório. <br />
<br />
Por exemplo, para adicionar o [https://flathub.org/ repositório oficial Flathub]:<br />
<br />
$ flatpak remote-add --if-not-exists flathub <nowiki>https://dl.flathub.org/repo/flathub.flatpakrepo</nowiki><br />
<br />
=== Deletar repositórios ===<br />
<br />
Para deletar um repositório flatpak remoto faça:<br />
<br />
$ flatpak remote-delete ''nome''<br />
<br />
onde ''nome'' é o nome do repositório remoto a ser deletado.<br />
<br />
=== Listar repositórios ===<br />
<br />
Para listar todos os repositórios adicionados faça:<br />
<br />
$ flatpak remotes<br />
<br />
== Gerenciar runtimes e aplicações ==<br />
<br />
=== Procurar por um runtime ou aplicação ===<br />
<br />
Antes de estar pronto para procurar por um runtime ou aplicação em um novo repositório remoto adicionado, nós precisamos recuperar os dados appstream. Para isso:<br />
<br />
{{hc|$ flatpak update|<br />
Procurando por atualizações...<br />
Atualizando dados appstream para remote ''nome''<br />
}}<br />
<br />
Então nós podemos proceder para procurar por um pacote com {{ic|flatpak search ''nomedopacote''}}, ''e.g.'' para procurar pelo pacote {{ic|libreoffice}} com o {{ic|flathub}} remoto configurado:<br />
<br />
<br />
{{hc|$ flatpak search libreoffice|<br />
ID de aplicativo Versão Ramo Remotos Descrição <br />
org.libreoffice.LibreOffice stable flathub The LibreOffice productivity suite<br />
}}<br />
<br />
=== Listar todos os runtime ou aplicações disponíveis ===<br />
<br />
Para listar todos os runtimes e aplicações disponíveis em um repositório remoto nomeado como ''remoto'' faça: <br />
<br />
$ flatpak remote-ls ''remoto''<br />
<br />
=== Instalar um runtine ou aplicação ===<br />
<br />
Para instalar umruntime ou aplicação faça:<br />
<br />
$ flatpak install ''remoto'' ''nome''<br />
<br />
onde ''remoto'' é o nome do repositório remoto e ''nome'' é o nome da aplicação ou runtime a ser instalado.<br />
<br />
{{Dica|Você pode usar identificadores parciais {{ic|flatpak install ''nome-parcial''}} (por exemplo {{ic|flatpak install libreoffice}}).}}<br />
<br />
=== Listar os runtimes e aplicações instalados ===<br />
<br />
Para listar os runtimes e aplicações instaladas faça:<br />
<br />
$ flatpak list<br />
<br />
=== Rodar aplicações ===<br />
<br />
Aplicações Flatpak também podem ser executadas por linha de comando:<br />
<br />
$ flatpak run ''nome''<br />
<br />
=== Atualizar um runtime ou aplicação ===<br />
<br />
Para atualizar um runtime ou aplicação nomeada como ''nome'' faça:<br />
<br />
$ flatpak update ''name''<br />
<br />
=== Desinstalar um runtime ou aplicação ===<br />
<br />
Para desinstalar um runtime ou aplicação nomeado(a) como nome faça:<br />
<br />
$ flatpak uninstall ''name''<br />
<br />
{{Dica|Você pode desinstalar flatpak “refs” não utilizado (também conhecido como orfãos sem aplicação/runtime) com {{ic|flatpak unsinstall --unused}}.}}<br />
<br />
=== Adicionando arquivos .desktop Flatpak ao seu menu ===<br />
Flatpak espera que o gerenciador de janelas respeite a variável de ambiente XDG_DATA_DIRS para descobrir aplicações. Isso pode requerer que a sessão seja reiniciada ou o lançador pode não suportar isso. Nesse caso, onde você pode editar a lista de diretórios escaneados, adicionar isso a ela:<br />
<br />
~/.local/share/flatpak/exports/share/applications<br />
/var/lib/flatpak/exports/share/applications<br />
<br />
Isso é sabidamente necessário no Awesome.<br />
<br />
=== Vendo as permissões sandbox da aplicação ===<br />
Aplicações Flatpak vêm com regras sandbox pré-definidas que definem quais os recursos e os caminhos do sistema de arquivos a aplicação tem permissão para acessar. <br />
Para ver as permissões de uma aplicação específica faça:<br />
<br />
$ flatpak info --show-permissions ''name''<br />
A referência para os nomes das permissões sandbox podem ser encontradas na [https://docs.flatpak.org/en/latest/sandbox-permissions-reference.html/ documentação oficial do Flatpak.]<br />
<br />
=== Sobrescrevendo permissões sandbox de aplicações ===<br />
Se você acha que as permissões pré-definidas da aplicação é muito permissiva ou muito restritiva, você pode mudar para qualquer uma que quiser usando o comando {{ic|flatpak override}}.<br />
Por exemplo:<br />
$ flatpak override --nofilesystem=home ''name''<br />
Isso irá prevenir que a aplicação acesse a sua pasta home.<br />
<br />
Todo tipo de permissão como dispositivo, sistema de arquivo ou soquete tem um uma linha de comando que permite aquela permissão em particular e uma opção separada que nega. Por exemplo, no caso de acesso ao dispositivo {{ic|1=--device=device_''nome''}} permite o acesso, {{ic|1=--no-device=device_''nome''}} nega a permissão para acessar o dispositivo.<br />
<br />
Para todos os tipos de comandos de permissão consulte a página de manual: {{man|1|flatpak-override(1)}}.<br />
<br />
Substituições de permissão podem ser resetadas para o padrão com o comando:<br />
$ flatpak override --reset ''nome''<br />
<br />
== Criar uma base de runtime customizada ==<br />
<br />
{{Expansion|Isso certamente pode ser melhorado. Também há problemas com D-Bus para apps do GNOME.}}<br />
<br />
{{Atenção|Se você quer lançar o seu software para o público como Flatpak, um runtime Arch-based é inadequado. Nesse caso, você precisará seguir a [http://docs.flatpak.org/ documentação oficial] para integrar seu software ao ecossistema adequado do Flatpak usando os [http://flatpak.org/runtimes.html/ runtimes comuns].}}<br />
<br />
{{Nota|Você pode querer usar uma conta não confiável e desprivilegiadas para construir software não confiável porque o software não é sandboxed durante a criação do app e do runtime.}}<br />
<br />
{{Nota|Quando distribuindo pacotes para outros, você pode ser legalmente obrigado a fornecer o código fonte de alguns dos softwares empacotados mediante solicitação. Vocẽ ode querer usar [[ABS_(Português)|ABS]] para construir tais pacotes a partir da fonte.}}<br />
<br />
Você pode criar uma base runtime Arch-based customizada e uma base SDK para Flatpak usando o pacman. Você pode, então, usá-las para criação e empacotamento de aplicações. Isso é uma alternativa para uso pessoal para o padrão {{ic|org.freedesktop.BasePlatform}} e {{ic|org.freedesktop.BaseSdk runtimes}}.<br />
<br />
Em adição ao {{Pkg|flatpak}}, você precisa ter instalado {{Pkg|fakeroot}} e {{Pkg|fakechroot}}, para suportar o pacman hooks.<br />
<br />
Primeiro, comece criando um diretório para criação do runtime e, possivelmente, aplicações.<br />
<br />
$ mkdir ''minhapastadecriacaoflatpak''<br />
$ cd ''minhapastadecriacaoflatpak''<br />
<br />
Você pode, então, preparar o diretório para a criação da plataforma base do runtime. Os arquivos do sub-diretório irão conter o que depois será o diretório {{ic|/usr}} no sandbox. Portanto, você precisará criar links simbólicos para o padrão {{ic|/etc/share}} etc. do Arch ainda possa ser acessado no caminho usual.<br />
<br />
$ mkdir -p ''meuruntime''/files/var/lib/pacman<br />
$ touch ''meuruntime''/files/.ref<br />
$ ln -s /usr/usr/share ''meuruntime''/files/share<br />
$ ln -s /usr/usr/include ''meuruntime''/files/include<br />
$ ln -s /usr/usr/local ''meuruntime''/files/local<br />
<br />
Certifique-se que as fontes disponíveis pelo seu SO host para o runtime do Arch:<br />
<br />
$ mkdir -p ''meuruntime''/files/usr/share/fonts<br />
$ ln -s /run/host/fonts ''meuruntime''/files/usr/share/fonts/flatpakhostfonts<br />
<br />
Você precisa e talvez queira adaptar o seu {{ic|pacman.conf}} antes de instalar pacotes no runtime. Copie o {{ic|/etc/pacman.conf}} para o seu diretório de criação e então faça as seguintes mudanças:<br />
<br />
* Remova a opção {{ic|CheckSpace}} e então o pacman não reclamará sobre erros ao encontrar a raíz do sistema de arquivo para checar o espaço de disco.<br />
* Remova quaisquer repositórios customizados indesejados e as configurações {{ic|IgnorePkg}}, {{ic|IgnoreGroup}}, {{ic|NoUpgrade}} e {{ic|NoExtract}}, que são necessárias somente para o sistema hospedeiro.<br />
<br />
Agora instale os pacotes para o runtime.<br />
<br />
$ fakechroot fakeroot pacman -Syu --root ''meuruntime''/files --dbpath ''meuruntime''/files/var/lib/pacman --config pacman.conf base<br />
$ mv pacman.conf ''meuruntime''/files/etc/pacman.conf<br />
<br />
Configure os [[Locale_(Português)|locales]] a serem usados editando {{ic|''meuruntime''/files/etc/locale.gen}}. Então, regenere os locales do runtime.<br />
<br />
$ fakechroot chroot ''meuruntime''/files locale-gen<br />
<br />
A base SDK pode ser criada a partir da base runtime com adição de aplicações necessárias para a criação de pacotes e executar o pacman.<br />
<br />
$ cp -r ''meuruntime'' mysdk<br />
$ fakechroot fakeroot pacman -S --root mysdk/files --dbpath mysdk/files/var/lib/pacman --config meusdk/files/etc/pacman.conf base-devel fakeroot fakechroot --needed<br />
<br />
Insira metadados sobre runtime e SDK.<br />
<br />
{{hc|''meuruntime''/metadados|2=<br />
[Runtime]<br />
name=org.mydomain.BasePlatform<br />
runtime=org.mydomain.BasePlatform/x86_64/2016-06-26<br />
sdk=org.mydomain.BaseSdk/x86_64/2016-06-26<br />
}}<br />
<br />
{{hc|meusdk/metadados|2=<br />
[Runtime]<br />
name=org.mydomain.BaseSdk<br />
runtime=org.mydomain.BasePlatform/x86_64/2016-06-26<br />
sdk=org.mydomain.BaseSdk/x86_64/2016-06-26<br />
}}<br />
<br />
Adicione as bases runtime e SDK para um repositório local no diretório atual. Você pode querer dar para eles mensagens commit apropriadas como, por exemplo, “Minha base runtime Arch” e “Minha base SDK Arch”.<br />
<br />
$ ostree init --mode archive-z2 --repo=.<br />
$ EDITOR="nano -w" ostree commit -b runtime/org.mydomain.BasePlatform/x86_64/2016-06-26 --tree=dir=''meuruntime''<br />
$ EDITOR="nano -w" ostree commit -b runtime/org.mydomain.BaseSdk/x86_64/2016-06-26 --tree=dir=meusdk<br />
$ ostree summary -u<br />
<br />
Instale o runtime e o SDK.<br />
<br />
$ flatpak remote-add --user --no-gpg-verify myarchos file://$(pwd)<br />
$ flatpak install --user myarchos org.mydomain.BasePlatform 2016-06-26<br />
$ flatpak install --user myarchos org.mydomain.BaseSdk 2016-06-26<br />
<br />
=== Criar apps com o pacman ===<br />
<br />
Como uma alternativa para a criação de aplicação da [http://flatpak.org/developer.html forma comum], nós podemos usar o pacman para criar uma versão em contêiner dos pacotes comuns do Arch. Note que {{ic|/usr}} é somente-leitura quando criando apps, então nós não podemos usar os pacotes do Arch quando da criação de um app. Para criar um app real com o pacman, nós podemos também:<br />
<br />
* Usar o pacman para criar um runtime contendos todas as dependẽncias<br />
* e compilar os apps [http://flatpak.org/developer.html como sempre] ou talvez usando o pacman para criar um [[PKGBUILD_(Português)|PKGBUILD]] customizado e adaptado ao Flatpak, o qual usa {{ic|1=--prefix=/app}} para o script {{ic|configure}},<br />
<br />
ou nós podemos<br />
* usar o pacman para criar o runtime contendo o app instalado com o pacman<br />
* e criar um app dummy para executá-lo.<br />
<br />
Por último, primeiro crie um runtime usando o pacman como esse para o {{Pkg|gedit}}. O runtime é primeiramente inicializado e preparado para uso com o pacman.<br />
<br />
$ flatpak build-init -w geditruntime org.mydomain.geditruntime org.mydomain.BaseSdk org.mydomain.BasePlatform 2016-06-26<br />
$ flatpak build geditruntime sed -i "s/^#Server/Server/g" /etc/pacman.d/mirrorlist<br />
$ flatpak build geditruntime ln -s /usr/var/lib /var/lib<br />
$ flatpak build geditruntime fakeroot pacman-key --init<br />
$ flatpak build geditruntime fakeroot pacman-key --populate archlinux<br />
<br />
Então o pacote está instalado. A conexão da rede hospedeira deve estar disponível para o pacman.<br />
<br />
$ flatpak build --share=network geditruntime fakechroot fakeroot pacman --root /usr -S gedit<br />
<br />
Você pode testar a aplicação antes de finalizar o runtime (sem o sandboxing apropriado).<br />
<br />
$ flatpak build --socket=x11 geditruntime gedit<br />
<br />
Agora termine criando o runtime e exporte-o para um novo repositório local. As chaves GnuPG do pacman têm permissões que podem interferir e precisam ser removidas primeiro.<br />
<br />
$ flatpak build geditruntime rm -r /etc/pacman.d/gnupg<br />
$ flatpak build-finish geditruntime<br />
$ sed -i "s/\[Application\]/\[Runtime\]/;s/runtime=org.mydomain.BasePlatform/runtime=org.mydomain.geditruntime/" geditruntime/metadata<br />
$ flatpak build-export -r geditrepo geditruntime<br />
<br />
Então crie o app dummy.<br />
<br />
$ flatpak build-init geditapp org.gnome.gedit org.mydomain.BaseSdk org.mydomain.geditruntime<br />
<br />
Agora termine criando o app dummy. Você pode ajustar as permissões de acesso quando sandboxed dando opções adicionais ao terminar de criar. Para possíveis opções veja a [[#Veja também|documentação do Flatpak]] e os [https://gitlab.gnome.org/GNOME/gnome-apps-nightly/tree/master/ arquivos de manifesto do GNOME]. Alternativamente, adapte {{ic|geditapp/metadata}} para as suas necessidades após terminar de criar, mas antes de exportar. Quando os arquivos de metadados estiver concluído, exporte o app para o repositório.<br />
<br />
$ flatpak build-finish geditapp --socket=x11 ''[possibly other options]'' --command=gedit<br />
$ flatpak build-export geditrepo geditapp<br />
<br />
Instale-o junto com o runtime.<br />
<br />
$ flatpak --user remote-add --no-gpg-verify geditrepo geditrepo<br />
$ flatpak install --user geditrepo org.mydomain.geditruntime<br />
$ flatpak install --user geditrepo org.gnome.gedit<br />
$ flatpak run org.gnome.gedit<br />
<br />
== Veja também ==<br />
<br />
* [http://flatpak.org Official website]<br />
* [https://github.com/flatpak/flatpak/wiki Official Github wiki]<br />
* [[Wikipedia::Flatpak|Wikipedia page]]<br />
* [https://wiki.gnome.org/Projects/SandboxedApps Gnome SandboxedApps]<br />
* [https://community.kde.org/Guidelines_and_HOWTOs/Flatpak KDE Testing Runtime and Applications]</div>Fvguilhermehttps://wiki.archlinux.org/index.php?title=Pacman_(Portugu%C3%AAs)/Tips_and_tricks_(Portugu%C3%AAs)&diff=581838Pacman (Português)/Tips and tricks (Português)2019-09-08T21:27:58Z<p>Fvguilherme: /* Gráficos */ add the link to Flatpak translated page in Portuguese.</p>
<hr />
<div>{{Lowercase title}}<br />
[[Category:Package management (Português)]]<br />
[[en:Pacman/Tips and tricks]]<br />
[[es:Pacman/Tips and tricks]]<br />
[[fa:Pacman tips]]<br />
[[fr:Pacman/Trucs et Astuces]]<br />
[[it:Pacman/Tips and tricks]]<br />
[[ja:Pacman ヒント]]<br />
[[ru:Pacman (Русский)/Tips and tricks]]<br />
[[zh-hans:Pacman/Tips and tricks]]<br />
{{StatusTradução|Pacman/Tips and tricks|2019-08-16|578802}}<br />
{{Related articles start (Português)}}<br />
{{Related|Espelhos}}<br />
{{Related|Criando pacotes}}<br />
{{Related articles end}}<br />
Para métodos gerais para melhorar a flexibilidade das dicas fornecidas ou do ''pacman'' em si, veja [[Utilitários principais]] e [[Bash]].<br />
<br />
== Manutenção ==<br />
<br />
{{Nota|Em vez de usar ''comm'' (que requer entradas ordenadas com ''sort'') na seção abaixo, você também pode usar {{ic|grep -Fxf}} ou {{ic|grep -Fxvf}}.}}<br />
<br />
Veja também [[Manutenção do sistema]].<br />
<br />
=== Listando pacotes ===<br />
<br />
Você pode querer obter a lista de pacotes instalados com sua versão, o que é útil ao relatar erros ou discutir pacotes instalados.<br />
<br />
* Listar todos os pacotes instalados explicitamente: {{ic|pacman -Qe}}.<br />
* Listar todos os pacotes no grupo de nome {{ic|grupo}}: {{ic|pacman -Sg grupo}}<br />
* Listar todos pacotes nativos (ou seja, presente na base de dados de sincronização) instalados explicitamente que não são dependências diretas ou opcional: {{ic|pacman -Qent}}.<br />
* Listar todos os pacotes externos (geralmente baixados e instalados manualmente ou removidos do repositório): {{ic|pacman -Qm}}.<br />
* Listar todos os pacotes nativos (instalados a partir de base(s) de dados de sincronização): {{ic|pacman -Qn}}.<br />
* Listar pacotes por expressão regular: {{ic|pacman -Qs ''regex''}}.<br />
* Listar pacotes por expressão regular com formato de saída personalizada: {{ic|expac -s "%-30n %v" ''regex''}} (precisa de {{Pkg|expac}}).<br />
<br />
==== Com tamanho ====<br />
<br />
Descobrir quais pacotes são maiores pode ser útil ao tentar liberar espaço em seu disco rígido. Existem duas opções aqui: obter o tamanho de pacotes individuais ou obter o tamanho dos pacotes e suas dependências.<br />
<br />
===== Pacotes individuais =====<br />
<br />
O comando a seguir listará todos os pacotes instalados e seus tamanhos individuais:<br />
<br />
$ pacman -Qi | awk '/^Name/{name=$3} /^Installed Size/{print $4$5, name}' | sort -h<br />
<br />
===== Pacotes e dependências =====<br />
<br />
Para listar tamanhos com suas dependências,<br />
<br />
* Instale {{Pkg|expac}} e execute {{ic|<nowiki>expac -H M '%m\t%n' | sort -h</nowiki>}}.<br />
* Execute {{Pkg|pacgraph}} com a opção {{ic|-c}}.<br />
<br />
Para listas o tamanho baixado de vários pacotes (deixe {{ic|''pacotes''}} em branco para listar todos os pacotes):<br />
<br />
$ expac -S -H M '%k\t%n' ''pacotes''<br />
<br />
Para listar pacotes instalados explicitamente que não estejam em {{Grp|base}} nem {{Grp|base-devel}} com tamanho e descrição:<br />
<br />
$ expac -H M "%011m\t%-20n\t%10d" $(comm -23 <(pacman -Qqen | sort) <(pacman -Qqg base base-devel | sort)) | sort -n<br />
<br />
Para listar os pacotes marcados para atualização com seu tamanho de download<br />
<br />
$ pacman -Quq|xargs expac -S -H M '%k\t%n' | sort -sh<br />
<br />
==== Por data ====<br />
<br />
Para listar os últimos 20 pacotes instalados com {{Pkg|expac}}, execute:<br />
<br />
$ expac --timefmt='%Y-%m-%d %T' '%l\t%n' | sort | tail -n 20<br />
<br />
ou com segundos desde o ''epoch'' (1970-01-01 UTC):<br />
<br />
$ expac --timefmt=%s '%l\t%n' | sort -n | tail -n 20<br />
<br />
==== Que não estejam em um grupo ou repositório especificado ====<br />
<br />
{{Nota|Para obter uma lista de pacotes instalados como dependências, mas não mais exigidos para qualquer pacote instalado, veja [[#Removendo pacotes não usados (órfãos)]].}}<br />
<br />
Listar explicitamente os pacotes instalados explicitamente que não estejam no grupo {{Grp|base}} nem no {{Grp|base-devel}}:<br />
<br />
$ comm -23 <(pacman -Qeq | sort) <(pacman -Qgq base base-devel | sort)<br />
<br />
Listar todos os pacotes instalados não necessários para outros pacotes, e que não estejam no grupo {{Grp|base}} nem no {{Grp|base-devel}}:<br />
<br />
$ comm -23 <(pacman -Qqt | sort) <(pacman -Sqg base base-devel | sort)<br />
<br />
Mesmo que o acima, mas com descrições:<br />
<br />
$ expac -HM '%-20n\t%10d' $(comm -23 <(pacman -Qqt | sort) <(pacman -Qqg base base-devel | sort))<br />
<br />
Listar todos os pacotes instalados que ''não'' estão no repositório especificado ''nome_repo''<br />
<br />
$ comm -23 <(pacman -Qq | sort) <(pacman -Slq ''nome_repo'' | sort)<br />
<br />
Listar todos os pacotes instalados que estão no repositório ''nome_repo'':<br />
<br />
$ comm -12 <(pacman -Qq | sort) <(pacman -Slq ''nome_repo'' | sort)<br />
<br />
Listar todos os pacotes na ISO do Arch Linux que não estão no grupo base:<br />
<br />
<nowiki>$ comm -23 <(curl https://git.archlinux.org/archiso.git/tree/configs/releng/packages.x86_64) <(pacman -Qqg base | sort)</nowiki><br />
<br />
==== Pacotes de desenvolvimento ====<br />
<br />
Para listar todos os pacotes de desenvolvimento/instáveis, execute:<br />
<br />
$ pacman -Qq | grep -Ee '-(bzr|cvs|darcs|git|hg|svn)$'<br />
<br />
=== Navegando por pacotes ===<br />
<br />
Para navegador por todos os pacotes instalados com uma visualização instantânea de cada pacote:<br />
<br />
$ pacman -Qq | fzf --preview 'pacman -Qil {}' --layout=reverse --bind 'enter:execute(pacman -Qil {} | less)'<br />
<br />
Isso usa [[fzf]] para apresentar uma visão de dois painéis listando todos os pacotes com informações de pacotes mostradas na direita.<br />
<br />
Insira letras para filtrar a lista de pacotes; use teclas de setas (ou {{ic|Ctrl-j}}/{{ic|Ctrl-k}}) para navegar; pressione {{ic|Enter}} para ver informações de pacote sob ''less''.<br />
<br />
=== Listando arquivos pertencentes a um pacote com tamanho ===<br />
<br />
Este pode ser útil se você descobriu que um pacote específico usa uma enorme quantidade de espaço e você quer descobrir quais arquivos usam mais desse espaço.<br />
<br />
$ pacman -Qlq ''pacote'' | grep -v '/$' | xargs du -h | sort -h<br />
<br />
=== Identificar arquivos que pertençam a nenhum pacote ===<br />
<br />
Se seu arquivo possui arquivos não pertencentes a qualquer pacote (um caso comum se você não [[Manutenção do sistema#Use o gerenciador de pacotes para instalar softwares|usa o gerenciador de pacotes para instalar softwares]]), você pode querer descobrir quais são esses arquivos para limpá-los. O processo geral para fazer isso:<br />
<br />
Um método é usar {{ic|# pacreport --unowned-files}} do {{Pkg|pacutils}}, o qual vai listar arquivos sem dono entre outros detalhes.<br />
<br />
Outro é listar todos os arquivos de seu interesse e verificá-los com o pacman:<br />
<br />
# find /etc /usr /opt /var | LC_ALL=C pacman -Qqo - 2>&1 > /dev/null | cut -d ' ' -f 5-<br />
<br />
{{Dica|O script {{Pkg|lostfiles}} realizar etapas similares, mas também inclui uma lista negra extensa para remover falso-positivos comuns da saída. [https://github.com/CyberShadow/aconfmgr aconfmgr] ({{AUR|aconfmgr-git}}) permite rastrear arquivos órfãos usando um script de configuração.}}<br />
<br />
=== Rastreando arquivos sem donos criados criados por pacotes ===<br />
<br />
A maioria dos sistemas vão aos poucos coletando diversos arquivos [http://ftp.rpm.org/max-rpm/s1-rpm-inside-files-list-directives.html#S3-RPM-INSIDE-FLIST-GHOST-DIRECTIVE fantasmas] tal como arquivos de estado, logs, índices, etc. pelo curso de operação comum.<br />
<br />
{{ic|pacreport}} do {{Pkg|pacutils}} pode ser usado para rastrear esses arquivos e suas associações via {{ic|/etc/pacreport.conf}} (veja {{man|1|pacreport|FILES}}).<br />
<br />
Um exemplo pode se parecer com algo como isso (resumido):<br />
<br />
{{hc|/etc/pacreport.conf|<nowiki><br />
[Options]<br />
IgnoreUnowned = usr/share/applications/mimeinfo.cache<br />
<br />
[PkgIgnoreUnowned]<br />
alsa-utils = var/lib/alsa/asound.state<br />
bluez = var/lib/bluetooth<br />
ca-certificates = etc/ca-certificates/trust-source/*<br />
dbus = var/lib/dbus/machine-id<br />
glibc = etc/ld.so.cache<br />
grub = boot/grub/*<br />
linux = boot/initramfs-linux.img<br />
pacman = var/lib/pacman/local<br />
update-mime-database = usr/share/mime/magic<br />
</nowiki>}}<br />
<br />
Então, ao usar {{ic|# pacreport --unowned-files}}, todos os arquivos sem dono serão listados se o pacote associado não estiver mais instalado (ou se algum arquivo novo tiver sido criado).<br />
<br />
Adicionalmente, [https://github.com/CyberShadow/aconfmgr aconfmgr] ({{AUR|aconfmgr-git}}) permite rastrear arquivos modificados e órfãos usando um script de configuração.<br />
<br />
=== Removendo pacotes não usados (órfãos) ===<br />
<br />
Para remover recursivamente ófãos e seus arquivos de configuração:<br />
<br />
# pacman -Rns $(pacman -Qtdq)<br />
<br />
Se nenhum órfão for encontrado, o ''pacman'' emite {{ic|erro: nenhum alvo especificado}}. É esperado que nenhum tenha sido passado para {{ic|pacman -Rns}}.<br />
<br />
{{Nota|Os argumentos {{ic|-Qt}} listam somente verdadeiros órfãos. Para incluir pacotes que são ''opcionalmente'' exigidos por outro pacote, passe a opção {{ic|-t}} duas vezes, ou seja, {{ic|-Qtt}}.}}<br />
<br />
=== Removendo tudo exceto o grupo base ===<br />
<br />
Se for necessário remover todos os pacotes, exceto o grupo base, experimente esta linha (exige {{Pkg|pacman-contrib}}):<br />
<br />
# pacman -R $(comm -23 <(pacman -Qq | sort) <((for i in $(pacman -Qqg base); do pactree -ul "$i"; done) | sort -u))<br />
<br />
Essa linha foi originalmente aconselhada [https://bbs.archlinux.org/viewtopic.php?id=130176 nesta discussão] e posteriormente melhorada neste artigo.<br />
<br />
=== Obtendo a lista de dependências de vários pacotes ===<br />
<br />
As dependências são ordenadas alfabeticamente e as duplas são removidas.<br />
<br />
{{Nota|Para só mostrar a árvore de pacotes instalados, use {{ic|pacman -Qi}}.}}<br />
<br />
$ pacman -Si ''pacotes'' | awk -F'[:<=>]' '/^Depends/ {print $2}' | xargs -n1 | sort -u<br />
<br />
Alternativamente, com {{Pkg|expac}}: <br />
<br />
$ expac -l '\n' %E -S ''pacotes'' | sort -u<br />
<br />
=== Listando arquivos backup modificados ===<br />
<br />
Se você quiser fazer backup dos arquivos de configuração do seu sistema, você pode copiar todos os arquivos em {{ic|/etc/}}, mas normalmente você só estaria interessado nos arquivos que você alterou. Os [[Arquivos Pacnew e Pacsave#Arquivos backup do pacote|arquivos backup]] modificados podem ser vistos com o seguinte comando:<br />
<br />
# pacman -Qii | awk '/^MODIFIED/ {print $2}'<br />
<br />
Executar esse comando com permissões de ''root'' vai garantir que os arquivos legíveis apenas pelo ''root'' (como o {{ic|/etc/sudoers}}) sejam incluídos na saída.<br />
<br />
{{Dica|Veja [[#Listando todos os arquivos alterados de pacotes]] para listar os arquivos alterados que o ''pacman'' conhece, e não apenas arquivos backup.}}<br />
<br />
=== Fazer backup da base de dados do pacman ===<br />
<br />
O seguinte comando pode ser usado para fazer backup da base de dados local do ''pacman'':<br />
<br />
$ tar -cjf pacman_database.tar.bz2 /var/lib/pacman/local<br />
<br />
Armazene o arquivo de base de dados backup do ''pacman'' em uma ou mais mídias offline, tal como um pendrive, disco rígido externo ou um CD-R.<br />
<br />
A base de dados pode ser restaurada movendo o arquivo {{ic|pacman_database.tar.bz2}} para o diretório {{ic|/}} e execução o comando a seguir:<br />
<br />
# tar -xjvf pacman_database.tar.bz2<br />
<br />
{{Nota|Se os arquivos de base de dados do ''pacman'' estiverem corrompidos e não houver um arquivo backup disponível, há alguma esperança de recompilar a base de dados do ''pacman''. Consulte [[#Restaurar a base de dados local do pacman]].}}<br />
<br />
{{Dica|O pacote {{AUR|pakbak-git}} fornece um script e um serviço [[systemd (Português)|systemd]] para automatizar a tarefa. A configuração é possível em {{ic|/etc/pakbak.conf}}.}}<br />
<br />
=== Verificar changelogs facilmente ===<br />
<br />
Quando os mantenedores atualizam os pacotes, os commits geralmente são comentados de forma útil. Os usuários podem verificá-los rapidamente a partir da linha de comando instalando {{AUR|pacolog}}. Este utilitário lista mensagens de commit recentes para pacotes dos repositórios oficiais ou do AUR, usando {{ic|pacolog <pacote>}}.<br />
<br />
== Instalação e recuperação ==<br />
<br />
Meios alternativos de obter e restaurar pacotes.<br />
<br />
=== Instalando pacotes a partir de um CD/DVD ou pendrive ===<br />
<br />
Para baixar pacotes ou grupos de pacotes:<br />
<br />
# cd ~/Packages<br />
# pacman -Syw base base-devel grub-bios xorg gimp --cachedir .<br />
# repo-add ./custom.db.tar.gz ./*<br />
<br />
Então, você pode gravar a pasta "Packages" para um CD/DVD ou transferi-la para um pendrive, HDD externo, etc.<br />
<br />
Para instalar:<br />
<br />
'''1.''' Monte a mídia:<br />
<br />
# mkdir /mnt/repo<br />
# mount /dev/sr0 /mnt/repo #Para um CD/DVD.<br />
# mount /dev/sdxY /mnt/repo #Para um pendrive.<br />
<br />
'''2.''' Edite {{ic|pacman.conf}} e adicione esse repositório ''antes'' dos outros (ex.: extra, core, etc.). Isso é importante. Não apenas descomente aquele na parte de baixo. Essa forma garante que os arquivos do CD/DVD/pendrive tenham precedência sobre aqueles nos repositórios padrões:<br />
<br />
{{hc|/etc/pacman.conf|2=<br />
[custom]<br />
SigLevel = PackageRequired<br />
Server = file:///mnt/repo/Packages}}<br />
<br />
'''3.''' Finalmente, sincronize a base de dados do ''pacman'' para habilitar o uso do novo repositório:<br />
<br />
# pacman -Syu<br />
<br />
=== Repositório local personalizado ===<br />
<br />
Use o script ''repo-add'', incluído no ''pacman'', para gerar uma base de dados para um repositório pessoal. Use {{ic|repo-add --help}} para obter mais detalhes sobre seu uso.<br />
<br />
Uma base de dados de pacote é um arquivo tar, opcionalmente comprimida. Extensões válidas são ''.db'' ou ''.files'' seguido por uma extensão de arquivamento de ''.tar'', ''.tar.gz'', ''.tar.bz2'', ''.tar.xz'' ou''.tar.Z''. O arquivo não precisa existir, mas todos os diretórios pais devem existir.<br />
<br />
Para adicionar um novo pacote à base de dados, ou para substituir a versão antiga de um pacote existente na base de dados, execute:<br />
<br />
$ repo-add ''/caminho/para/repo.db.tar.gz /caminho/para/pacote-1.0-1-x86_64.pkg.tar.xz''<br />
<br />
A base de dados e os pacotes não precisam estar no diretório ao usar ''repo-add'', mas tenha em mente que ao usar ''pacman'' com aquela base de dados, eles devem estar juntos. Armazenar todos os pacotes compilados para serem incluídos no repositório em um diretório também permite usar a expansão shell glob para adicionar ou atualizar vários pacotes ao mesmo tempo.<br />
<br />
$ repo-add ''/caminho/para/repo.db.tar.gz /caminho/para/*.pkg.tar.xz''<br />
<br />
{{Atenção|''repo-add'' adiciona as entradas na base de dados na mesma ordem que foi passada na linha de comando. Se várias versões do mesmo pacote estiverem envolvidas, deve-se ter cuidado para garantir que a versão correta seja adicionada por último. Em particular, observe que a ordem lexical usada pelo shell depende do locale e difere do pedido de [https://www.archlinux.org/pacman/vercmp.8.html vercmp] usado pelo ''pacman''.}}<br />
<br />
Se você deseja oferecer suporte a várias arquiteturas, deve-se tomar precauções para evitar erros. Cada arquitetura deve ter sua própria árvore de diretórios:<br />
<br />
{{hc|$ tree ~/repopersonalizado/ {{!}} sed "s/$(uname -m)/<arch>/g"|<br />
/home/archie/repopersonalizado/<br />
└── <arch><br />
├── repopersonalizado.db -> repopersonalizado.db.tar.xz<br />
├── repopersonalizado.db.tar.xz<br />
├── repopersonalizado.files -> repopersonalizado.files.tar.xz<br />
├── repopersonalizado.files.tar.xz<br />
└── site-pessoal-git-b99cce0-1-<arch>.pkg.tar.xz<br />
<br />
1 directory, 5 files<br />
}}<br />
<br />
O executável ''repo-add'' verifica se o pacote é apropriado. Se esse não for o caso, você encontrará mensagens de erro semelhantes a esta:<br />
<br />
==> ERRO: '/home/archie/repopersonalizado/<arch>/foo-<arch>.pkg.tar.xz' não tem uma extensão válida para arquivo de base de dados.<br />
<br />
''repo-remove'' é usado para remover pacotes da base de dados de pacotes, exceto que somente nomes de pacotes são especificados na linha de comando.<br />
<br />
$ repo-remove ''/caminho/para/repo.db.tar.gz pkgname''<br />
<br />
Uma vez que a base de dados local do repositório tenha sido criado, adicione o repositório a {{ic|pacman.conf}} para cada sistema que seja para usar o repositório. Um exemplo de um repositório personalizado está em {{ic|pacman.conf}}. O nome do repositório é o nome do arquivo da base de dados com a extensão do arquivo omitida. No caso do exemplo acima, o nome do repositório simplesmente seria ''repo''. Consulte a localização do repositório usando um URL {{ic|file://}}, ou via FTP usando o diretório ftp://localhost/caminho/para/diretório.<br />
<br />
Se quiser, adicione um repositório personalizado à [[Unofficial user repositories|lista de repositórios de usuário não oficiais]], de forma que a comunidade possa se beneficiar dele.<br />
<br />
=== Cache do pacman compartilhado na rede ===<br />
<br />
Se você tiver várias máquinas com Arch na sua rede local, você pode compartilhar pacotes para que você possa diminuir significativamente os tempos de download. Tenha em mente que você não deve compartilhar entre arquiteturas diferentes (isto é, i686 e x86_64) ou você terá problemas.<br />
<br />
==== Cache de somente leitura ====<br />
<br />
Se você está procurando uma solução rápida, você pode simplesmente executar um servidor web autônomo que outros computadores possam usar como um primeiro espelho:<br />
<br />
# ln -s /var/lib/pacman/sync/*.db /var/cache/pacman/pkg<br />
$ sudo -u http darkhttpd /var/cache/pacman/pkg --no-server-id<br />
Você também poderia executar darkhttpd como um serviço systemd por conveniência. Basta adicionar esse servidor no topo de seu {{ic|/etc/pacman.d/mirrorlist}} em máquinas clientes com {{ic|1=Server = http&#58;//meuespelho:8080}}. Certifique-se de manter seu espelho atualizado.<br />
<br />
Se você já está executando um servidor web para alguma outra finalidade, você pode querer reutilizá-lo como seu servidor de repo local em vez de darkhttpd. Por exemplo, se você já serve um site com [[nginx]], você pode adicionar um bloco de servidor nginx na porta 8080:<br />
<br />
{{hc|/etc/nginx/nginx.conf|<br />
server {<br />
listen 8080;<br />
root /var/cache/pacman/pkg;<br />
server_name meurepoarch.localdomain;<br />
try_files $uri $uri/;<br />
}<br />
}}<br />
<br />
Lembre-se de reiniciar o nginx após fazer essa alteração.<br />
<br />
Seja qual for o servidor web que você usa, lembre-se de abrir a porta 8080 para o tráfego local (e provavelmente você quer negar qualquer coisa que não seja local), então adicione uma regra como a seguinte para [[iptables]]:<br />
<br />
{{hc|/etc/iptables/iptables.rules|<br />
-A TCP -s 192.168.0.0/16 -p tcp -m tcp --dport 8080 -j ACCEPT<br />
}}<br />
<br />
Lembre-se de reiniciar o iptables após fazer essa alteração.<br />
<br />
==== Cache somente leitura distribuído ====<br />
<br />
Existem ferramentas específicas do Arch para descobrir automaticamente outros computadores em sua rede oferecendo um cache de pacote. Tente {{Pkg|pacredir}}, [[pacserve (Português)|pacserve]], {{AUR|pkgdistcache}} ou {{AUR|paclan}}. O pkgdistcache usa Avahi em vez de UDP simples, que pode funcionar melhor em determinadas redes domésticas que roteiam em vez de ponte entre WiFi e Ethernet.<br />
<br />
Historicamente, havia [https://bbs.archlinux.org/viewtopic.php?id=64391 PkgD] e [https://github.com/toofishes/multipkg multipkg], mas eles não são mais mantidos.<br />
<br />
==== Cache de leitura-escrita ====<br />
<br />
Para compartilhar pacotes entre vários computadores, simplesmente compartilhe {{ic|/var/cache/pacman/}} usando qualquer protocolo de montagem em rede. Esta seção mostra como usar [[shfs]] ou [[SSHFS]] para compartilhar um cache de pacotes mais os diretórios de biblioteca relacionados entre vários computadores na mesma rede local. Tenha em mente que um cache compartilhado em rede pode ser lento dependendo da escolha do sistema de arquivos, entre outros fatores.<br />
<br />
Primeiro, instale qualquer sistema de arquivos que tenha suporte a rede: {{pkg|shfs-utils}}, {{pkg|sshfs}}, {{pkg|curlftpfs}}, {{pkg|samba}} ou {{pkg|nfs-utils}}.<br />
<br />
{{Dica|<br />
* Para usar ''sshfs'' ou ''shfs'', considere ler [[Using SSH Keys]].<br />
* Por padrão, ''smbfs'' não fornece nomes de arquivos que contenham dois pontos, o que resulta no cliente baixar o pacote problemática novamente. Para evitar isso, use a opção de montagem {{ic|mapchars}} no cliente.<br />
}}<br />
<br />
Então, para compartilhar os pacotes, monte {{ic|/var/cache/pacman/pkg}} do servidor em {{ic|/var/cache/pacman/pkg}} para toda máquina cliente.<br />
<br />
{{Atenção|Não torne {{ic|/var/cache/pacman/pkg}} ou qualquer um de seus antecessores (ex., {{ic|/var}}) um link simbólico. ''Pacman'' espera que esses sejam diretórios. Quando o ''pacman'' reinstala ou atualiza a si próprio, ele vai remover os links simbólicos e vai criar diretórios vazios no lugar. Porém, durante a transação, o ''pacman'' depende de alguns pacotes estarem lá, resultando em quebrar o processo de atualização. Veja {{bug|50298}} para mais detalhes.}}<br />
<br />
==== Duas vias com rsync ====<br />
<br />
Outra abordagem em um ambiente local é [[rsync]]. Escolha um servidor para armazenamento em cache e ative o [[Rsync#rsync daemon]]. Nos clientes, sincronize em duas vias com este compartilhamento via protocolo rsync. Os nomes dos arquivos que contêm dois pontos não são um problema para o protocolo rsync.<br />
<br />
Um exemplo de rascunho para um cliente, usando {{ic|uname -m}} dentro de nome de compartilhamento garante uma sincronização dependente da arquitetura:<br />
# rsync rsync://servidor/share_$(uname -m)/ /var/cache/pacman/pkg/ ...<br />
# pacman ...<br />
# paccache ...<br />
# rsync /var/cache/pacman/pkg/ rsync://servidor/share_$(uname -m)/ ...<br />
<br />
==== Cache dinâmico de proxy reverso usando nginx ====<br />
<br />
[[nginx]] pode ser usado para intermediar solicitações de pacotes para espelhos oficiais de ''upstream'' e armazenar em cache os resultados para o disco local. Todas as solicitações subsequentes para esse pacote serão atendidas diretamente do cache local, minimizando a quantidade de tráfego de internet necessária para atualizar um grande número de computadores.<br />
<br />
Neste exemplo, o servidor de cache será executado em {{ic|<nowiki>http://cache.domain.example:8080/</nowiki>}} e armazenará os pacotes em {{ic|/srv/http/pacman-cache/}}. <br />
<br />
Instale o [[nginx]] no computador que vai hospedar o cache. Crie o diretório para o cache e ajuste as permissões de forma que o nginx possa escrever os arquivos para ele:<br />
<br />
# mkdir /srv/http/pacman-cache<br />
# chown http:http /srv/http/pacman-cache<br />
<br />
Use a [https://github.com/nastasie-octavian/nginx_pacman_cache_config/blob/87d4897b8fa37e70da4238d7074c639c041daf39/nginx.conf configuração de cache nginx do pacman] como ponto de partida para {{ic|/etc/nginx/nginx.conf}}. Verifique se a diretiva {{ic|resolver}} funciona de acordo com suas necessidades. Nos blocos de servidores upstream, configure as diretivas {{ic|proxy_pass}} com endereços de espelhos oficiais, veja exemplos no arquivo de configuração sobre o formato esperado. Quando estiver satisfeito com o arquivo de configuração, [[Nginx#Running|inicie e habilite o nginx]].<br />
<br />
Para usar o cache, cada computador Arch Linux (incluindo o que está hospedando o cache) deve ter a seguinte linha no topo do arquivo {{ic|mirrorlist}}:<br />
<br />
{{hc|/etc/pacman.d/mirrorlist|<nowiki><br />
Server = http://cache.domain.example:8080/$repo/os/$arch<br />
...<br />
</nowiki>}}<br />
<br />
{{Nota|Você precisará criar um método para limpar pacotes antigos, pois o diretório do cache continuará a crescer ao longo do tempo. {{ic|paccache}} (que é fornecido por {{pkg|pacman-contrib}}) pode ser usado para automatizar isso usando os critérios de retenção de sua escolha. Por exemplo, {{ic|find /srv/http/pacman-cache/ -type d -exec paccache -v -r -k 2 -c {} \;}} manterá as últimas 2 versões de pacotes no seu diretório de cache.}}<br />
<br />
==== Sincronizar cache de pacotes do pacman usando programas de sincronização ====<br />
<br />
Use [[Syncthing]] ou [[Resilio Sync]] para sincronizar as pastas de cache do ''pacman'' (ou seja, {{ic|/var/cache/pacman/pkg}}).<br />
<br />
==== Prevenção de purgas de cache indesejadas ====<br />
<br />
Por padrão, {{Ic|pacman -Sc}} remove tarballs de pacotes do cache que correspondem a pacotes que não estão instalados na máquina em que o comando foi emitido. Porque o ''pacman'' não pode prever quais pacotes estão instalados em todas as máquinas que compartilham o cache, ele acabará excluindo arquivos que não deveriam ser excluídos.<br />
<br />
Para limpar o cache de forma que apenas tarballs ''desatualizados'' seja excluídos, adicione essa entrada na seção {{ic|[options]}} do {{ic|/etc/pacman.conf}}:<br />
<br />
CleanMethod = KeepCurrent<br />
<br />
=== Recriar um pacote do sistema de arquivos ===<br />
<br />
Para recriar um pacote do sistema de arquivos, use {{AUR|fakepkg}}. Os arquivos do sistema são aceitos como estão, portanto, quaisquer modificações estarão presentes no pacote montado. Distribuir o pacote recriado é, portanto, desencorajado; veja [[ABS (Português)|ABS]] e [[Arch Linux Archive (Português)]] para obter alternativas.<br />
<br />
=== Lista de pacotes instalados ===<br />
<br />
Manter uma lista de todos os pacotes instalados explicitamente pode ser útil para, por exemplo, servidor de backup de um sistema ou acelerar a instalação em um novo sistema:<br />
<br />
$ pacman -Qqe > pkglist.txt<br />
<br />
{{Nota|<br />
* Com a opção {{ic|-t}}, os pacotes já necessários para outros pacotes explicitamente instalados não são mencionados. Se estiver reinstalando a partir desta lista, eles serão instalados, mas apenas como dependências.<br />
* Com uma opção {{ic|-n}}, pacotes externos (p. ex., do [[AUR (Português)|AUR]]) são omitidos da lista.<br />
* Use {{ic|comm -13 <(pacman -Qqdt {{!}} sort) <(pacman -Qqdtt {{!}} sort) > optdeplist.txt}} para também criar uma lista das dependências opcionais instaladas que pode ser reinstalada com {{ic | --asdeps}}.<br />
* Use {{ic|pacman -Qqem > foreignpkglist.txt}} para criar a lista de AUR e outros pacotes externos que foram explicitamente instalados.}}<br />
<br />
Para manter uma lista atualizada de pacotes explicitamente instalados (p. ex., em combinação com um {{ic|/etc/}} versionado), você pode configurar um [[Pacman (Português)#Hooks|hook]]. Exemplo:<br />
<br />
[Trigger]<br />
Operation = Install<br />
Operation = Remove<br />
Type = Package<br />
Target = *<br />
<br />
[Action]<br />
When = PostTransaction<br />
Exec = /bin/sh -c '/usr/bin/pacman -Qqe > /etc/pkglist.txt'<br />
<br />
=== Instalar pacotes de uma lista ===<br />
<br />
Para instalar pacotes de uma lista salva anteriormente de pacotes, sem reinstalar pacotes já instalados que já estão atualizados, execute:<br />
<br />
# pacman -S --needed - < pkglist.txt<br />
<br />
No entanto, é provável que pacotes externos, como os do AUR ou instalados localmente, estejam presentes na lista. Para filtrar da lista os pacotes externos, a linha de comandos anterior pode ser enriquecida da seguinte forma:<br />
<br />
# pacman -S --needed $(comm -12 <(pacman -Slq | sort) <(sort pkglist.txt))<br />
<br />
Eventualmente, para garantir que os pacotes instalados do seu sistema correspondam à lista e remova todos os pacotes que não são mencionados nela:<br />
<br />
# pacman -Rsu $(comm -23 <(pacman -Qq | sort) <(sort pkglist.txt))<br />
<br />
{{Dica|Essas tarefas podem ser automatizadas. Veja {{AUR|bacpac}}, {{AUR|packup}}, {{AUR|pacmanity}} e {{AUR|pug}} para exemplos.}}<br />
<br />
=== Listando todos os arquivos alterados de pacotes ===<br />
<br />
Se você suspeitar de corrompimento de arquivos (por exemplo, por falha de software/hardware), mas não tem certeza se os arquivos foram corrompidos, você pode querer comparar com as somas de hash nos pacotes. Isso pode ser feito com {{Pkg|pacutils}}:<br />
<br />
# paccheck --md5sum --quiet<br />
<br />
Para recuperação da base de dados, veja [[#Restaurar a base de dados local do pacman]]. Os arquivos {{ic|mtree}} também pode ser [[#Vendo um único arquivo dentro de um arquivo .pkg|extraído como {{ic|.MTREE}} a partir dos respectivos arquivos de pacote]].<br />
<br />
{{Nota|Isso '''não''' deve ser usado assim quando se suspeita de mudanças maliciosas! Neste caso, são recomendadas precauções de segurança, como o uso de uma mídia ''Live'' e uma fonte independente para as somas de hash.}}<br />
<br />
=== Reinstalando todos pacotes ===<br />
Para reinstalar todos os pacotes nativos, use:<br />
<br />
# pacman -Qqn | pacman -S -<br />
<br />
Pacotes externos (do AUR) devem ser reinstalados separadamente; você pode listá-los com {{ic|pacman -Qqm}}.<br />
<br />
''Pacman'' preserva o [[motivo de instalação]] por padrão.<br />
<br />
=== Restaurar a base de dados local do pacman ===<br />
<br />
Veja [[Pacman/Restaurar base de dados local]].<br />
<br />
=== Recuperando um pendrive a partir de uma instalação existente ===<br />
<br />
Se você possui o Arch instalado em um pendrive e conseguir arruiná-lo (por exemplo, removê-lo enquanto ainda está sendo gravado), é possível reinstalar todos os pacotes e, com esperança, recuperá-lo e trabalhar novamente (presumindo que o pendrive esteja montado em {{ic|/novoarch}})<br />
<br />
# pacman -S $(pacman -Qq --dbpath /novoarch/var/lib/pacman) --root /novoarch --dbpath /novoarch/var/lib/pacman<br />
<br />
=== Vendo um único arquivo dentro de um arquivo .pkg ===<br />
<br />
Por exemplo, se você deseja ver o conteúdo de {{ic|/etc/systemd/logind.conf}} fornecido no pacote {{Pkg|systemd}}:<br />
<br />
$ bsdtar -xOf /var/cache/pacman/pkg/systemd-204-3-x86_64.pkg.tar.xz etc/systemd/logind.conf<br />
<br />
Ou você pode usar {{pkg|vim}} para navegar no pacote:<br />
<br />
$ vim /var/cache/pacman/pkg/systemd-204-3-x86_64.pkg.tar.xz<br />
<br />
=== Localizar aplicativos que usam bibliotecas de pacotes mais antigos ===<br />
<br />
Mesmo se você instalou um pacote, os programas existentes de longa duração (como daemons e servidores) continuam usando código de bibliotecas de pacotes antigos. E é uma má ideia deixar esses programas em execução se a biblioteca antiga contiver um erro de segurança.<br />
<br />
Aqui está uma maneira de encontrar todos os programas que usam código de pacotes antigo:<br />
<br />
# lsof +c 0 | grep -w DEL | awk '1 { print $1 ": " $NF }' | sort -u<br />
Ele imprimirá o nome do programa em execução e a biblioteca antiga que foi removida ou substituída por conteúdo mais novo.<br />
<br />
=== Instalando apenas conteúdo nos idiomas necessários ===<br />
<br />
Muitos pacotes tentam instalar documentação e traduções em vários idiomas. Alguns programas são projetados para remover esses arquivos desnecessários, como {{AUR|localepurge}}, que é executado após a instalação de um pacote para excluir os arquivos de localidade desnecessários. Uma abordagem mais direta é fornecida através da diretiva {{ic|NoExtract}} em {{ic|pacman.conf}}, que impede que esses arquivos sejam instalados. O exemplo abaixo instala arquivos em inglês (EUA) ou nenhum:<br />
<br />
{{hc|/etc/pacman.conf|2=<br />
NoExtract = usr/share/help/* !usr/share/help/en*<br />
NoExtract = usr/share/gtk-doc/html/*<br />
NoExtract = usr/share/locale/* usr/share/X11/locale/* usr/share/i18n/* opt/google/chrome/locales/*<br />
NoExtract = !*locale*/en*/* !usr/share/i18n/charmaps/UTF-8.gz !usr/share/*locale*/locale.*<br />
NoExtract = !usr/share/*locales/en_?? !usr/share/*locales/i18n !usr/share/*locales/iso*<br />
NoExtract = !usr/share/*locales/trans*<br />
NoExtract = usr/share/qt4/translations/*<br />
NoExtract = usr/share/man/* !usr/share/man/man*<br />
NoExtract = usr/share/vim/vim*/lang/*<br />
NoExtract = usr/lib/libreoffice/help/en-US/*<br />
}}<br />
<br />
Alguns usuários notaram que remover localidades resultou em [https://wiki.archlinux.org/index.php?title=Talk:Pacman&oldid=460285#Dangerous_NoExtract_example consequências não planejadas].<br />
<br />
== Desempenho ==<br />
<br />
=== Velocidades de download ===<br />
<br />
{{Nota|Se suas velocidades de download foram reduzidas a uma lesma, certifique-se de usar um dos muitos [[espelhos]] e não o ftp.archlinux.org, cuja [https://www.archlinux.org/news/302/ velocidade é limitada desde março de 2007].}}<br />
<br />
Ao baixar pacotes, o ''pacman'' usa os espelhos na ordem em que estão no {{ic|/etc/pacman.d/mirrorlist}}. O espelho que está no topo da lista por padrão, no entanto, pode não ser o mais rápido para você. Para selecionar um espelho mais rápido, veja [[Espelhos]].<br />
<br />
A velocidade do ''pacman'' ao baixar pacotes também pode ser melhorada usando um aplicativo diferente para baixar pacotes, em vez baixador de arquivos embutido do ''pacman''.<br />
<br />
Em todos os casos, certifique-se de ter o ''pacman'' mais recente antes de fazer quaisquer modificações.<br />
<br />
# pacman -Syu<br />
<br />
==== Powerpill ====<br />
<br />
[[Powerpill (Português)|Powerpill]] é um wrapper do ''pacman'' que faz uso de download paralelo e segmentado para tentar acelerar os downloads para o ''pacman''.<br />
<br />
==== wget ====<br />
<br />
Esse também é muito útil se você precisar de configurações de proxy mais poderosas que as capacidades incorporadas no ''pacman''. <br />
<br />
Para usar o {{ic|wget}}, primeiro [[instale]] o pacote {{Pkg|wget}} e, após, modifique o {{ic|/etc/pacman.conf}} descomentando a seguinte linha na seção {{ic|[options]}}:<br />
<br />
XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u<br />
<br />
Em vez de descomentar os parâmetros de {{ic|wget}} no {{ic|/etc/pacman.conf}}, você também pode modificar o arquivo de configuração do {{ic|wget}} diretamente (o arquivo de todo o sistema é {{ic|/etc/wgetrc}}, enquanto arquivos por usuário são {{ic|$HOME/.wgetrc}}.<br />
<br />
==== aria2 ====<br />
<br />
O [[aria2]] é um utilitário de download leve com suporte a downloads resumíveis e segmentados via HTTP/HTTPS e FTP. O aria2 permite conexões múltiplas e simultâneas de HTTP/HTTPS e FTP para um espelho do Arch, o que deve resultar em um aumento na velocidade de download para a obtenção de arquivos e pacotes.<br />
<br />
{{Nota|O uso do aria2c no XferCommand do ''pacman'' '''não''' vai resultar em downloads paralelos de múltiplos pacotes. O ''pacman'' chama o XferCommand com um único pacote por vez e aguarda por ele concluir antes de chamar o próximo. Para baixar múltiplos pacotes em paralelo, veja [[Powerpill (Português)|Powerpill]].}}<br />
<br />
Instale o {{Pkg|aria2}} e, após, edite o {{ic|/etc/pacman.conf}} adicionando a seguinte linha à seção {{ic|[options]}}:<br />
<br />
XferCommand = /usr/bin/aria2c --allow-overwrite=true --continue=true --file-allocation=none --log-level=error --max-tries=2 --max-connection-per-server=2 --max-file-not-found=5 --min-split-size=5M --no-conf --remote-time=true --summary-interval=60 --timeout=5 --dir=/ --out %o %u<br />
<br />
{{Dica|1=[https://bbs.archlinux.org/viewtopic.php?pid=1491879#p1491879 Essa configuração alternativa para usar o ''pacman'' com aria2] tenta simplificar a configuração e adiciona mais opções de configuração.}}<br />
<br />
Veja [http://aria2.sourceforge.net/manual/en/html/aria2c.html#options OPTIONS] em {{man|1|aria2c}} para opções do aria2c usadas.<br />
<br />
* {{ic|-d, --dir}}: O diretório para armazenar o arquivos baixados, conforme especificado pelo ''pacman''.<br />
* {{ic|-o, --out}}: Os nomes de arquivo dos arquivos baixados. <br />
* {{ic|%o}}: A variável que representa os nomes de arquivos locais, conforme especificado pelo ''pacman''.<br />
* {{ic|%u}}: A variável que representa a URL de download, conforme especificado pelo ''pacman''.<br />
<br />
==== Outros aplicativos ====<br />
<br />
Existem outros aplicativos de download que você pode usar com ''pacman''. Aqui estão, e as configurações associadas de XferCommand:<br />
<br />
* {{ic|snarf}}: {{ic|1=XferCommand = /usr/bin/snarf -N %u}}<br />
* {{ic|lftp}}: {{ic|1=XferCommand = /usr/bin/lftp -c pget %u}}<br />
* {{ic|axel}}: {{ic|1=XferCommand = /usr/bin/axel -n 2 -v -a -o %o %u}}<br />
* {{ic|hget}}: {{ic|1=XferCommand = /usr/bin/hget %u -n 2 -skip-tls false}} (por favor, leia a [https://github.com/huydx/hget documentação na página de projeto no Github] para mais informações)<br />
<br />
== Utilitários ==<br />
<br />
* {{App|Lostfiles|Script que identifica arquivos que não pertencem a nenhum pacote.|https://github.com/graysky2/lostfiles|{{Pkg|lostfiles}}}}<br />
* {{App|Pacmatic|Wrapper do ''pacman'' para verificar o Arch News antes de atualizar, evitar atualizações parciais e avisar sobre alterações de arquivo de configuração.|http://kmkeen.com/pacmatic|{{Pkg|pacmatic}}}}<br />
* {{App|pacutils|Biblioteca auxiliar para programas baseados no libalpm.|https://github.com/andrewgregory/pacutils|{{Pkg|pacutils}}}}<br />
* {{App|[[pkgfile (Português)|pkgfile]]|Ferramenta que descobre qual pacote é dono de um arquivo.|http://github.com/falconindy/pkgfile|{{Pkg|pkgfile}}}}<br />
* {{App|pkgtools|Coleção de scripts para pacotes do Arch Linux.|https://github.com/Daenyth/pkgtools|{{AUR|pkgtools}}}}<br />
* {{App|[[Powerpill (Português)|Powerpill]]|Usa download paralelo e segmentado por meio do [[aria2]] e do [[Reflector]] para tentar acelerar downloads para o ''pacman''.|https://xyne.archlinux.ca/projects/powerpill/|{{AUR|powerpill}}}}<br />
<br />
* {{App|repoctl|Ferramenta para ajudar a gerenciar repositórios locais.|https://github.com/cassava/repoctl|{{AUR|repoctl}}}}<br />
* {{App|repose|Uma ferramenta para construção de repositório do Arch Linux.|https://github.com/vodik/repose|{{Pkg|repose}}}}<br />
* {{App|[[Snapper#Wrapping_pacman_transactions_in_snapshots|snap-pac]]|Faz o ''pacman'' usar automaticamente o snapper para criar snapshots pré/pós como o YaST do openSUSE.|https://github.com/wesbarnett/snap-pac|{{pkg|snap-pac}}}}<br />
* {{App|vrms-arch|Um Richard M. Stallman virtual para lhe dizer quis pacotes não livres estão instalados.|https://github.com/orospakr/vrms-arch|{{AUR|vrms-arch}}}}<br />
<br />
=== Gráficos ===<br />
<br />
{{Atenção|PackageKit abre permissões do sistema por padrão e, do contrário, não é recomendado para uso geral. Veja {{Bug|50459}} e {{Bug|57943}}.}}<br />
<br />
* {{App|Apper|Aplicativo Qt 5 e gerenciador de pacotes usando o PackageKit escrito em C++. Tem suporte a [https://www.freedesktop.org/wiki/Distributions/AppStream/ metadados de AppStream].|https://userbase.kde.org/Apper|{{Pkg|apper}}}}<br />
* {{App|Discover|Gerenciador de aplicativos do Qt 5 usando o PackageKit escrito em C++/QML. Tem suporte a [https://www.freedesktop.org/wiki/Distributions/AppStream/ metadados de AppStream], [[Flatpak_(Português)|Flatpak]] e [[fwupd|atualizações de firmware]]. |https://userbase.kde.org/Discover|{{Pkg|discover}}}}<br />
* {{App|GNOME PackageKit|Gerenciador de pacotes GTK 3 usando o PackageKit escrito em C.|https://freedesktop.org/software/PackageKit/|{{Pkg|gnome-packagekit}}}}<br />
* {{App|GNOME Software|Gerenciador de aplicativos GTK 3 usando PackageKit escrito em C. Tem suporte a [https://www.freedesktop.org/wiki/Distributions/AppStream/ metadados de AppStream], [[Flatpak_(Português)|Flatpak]] e [[fwupd|atualizações de firmware]]. |https://wiki.gnome.org/Apps/Software|{{pkg|gnome-software}}}}<br />
* {{App|pcurses|Wrapper TUI curses para o pacman escrito em C++.|https://github.com/schuay/pcurses|{{Pkg|pcurses}}}}<br />
* {{App|tkPacman|Wrapper Tk para o pacman escrito em Tcl.|https://sourceforge.net/projects/tkpacman|{{AUR|tkpacman}}}}</div>Fvguilhermehttps://wiki.archlinux.org/index.php?title=Flatpak_(Portugu%C3%AAs)&diff=581837Flatpak (Português)2019-09-08T21:14:39Z<p>Fvguilherme: /* Criar uma base de runtime customizada */ fix "Expansion"</p>
<hr />
<div>[[Category:Development (Português)]]<br />
[[es:Flatpak]]<br />
[[ja:Flatpak]]<br />
[[pt:Flatpak]]<br />
{{StatusTradução|Flatpak|2019-08-09|23769}}<br />
{{Related articles start (Português)}}<br />
{{Related|Snapd}}<br />
{{Related|bubblewrap}}<br />
{{Related articles end}}<br />
Do projeto [https://github.com/flatpak/flatpak/blob/master/README.md README]: "''[http://flatpak.org Flatpak] é um sistema para construção, distribuição e execução de aplicações desktop sandboxed no Linux.''"<br />
<br />
De {{man|1|flatpak}}:<br />
<br />
:''Flatpak é uma ferramenta para gerenciar aplicações e os runtimes que elas usam. No modelo Flatpak, aplicações podem ser construídas e distribuídas independentemente do sistema hospedeiro em que elas estão usando, e elas são isoladas do sistema hospedeiro (‘sandboxed’) em algum grau, no runtime.''<br />
:''Flatpak usa [https://ostree.readthedocs.io/en/latest/ OSTree] para distribuir e implantar dados. Os repositórios que ele usa são repositórios OSTree epodem ser manipulados com a ferramenta ostree. Runtimes instalados e aplicações são checkouts do OSTree.''<br />
<br />
== Instalação ==<br />
<br />
[[Instale]] o pacote {{pkg|flatpak}}.<br />
<br />
{{Nota|Se você quer construir flatpaks com o {{ic|flatpak-builder}}, você precisará instalar as dependências opcionais {{pkg|elfutils}} e {{pkg|patch}}.}}<br />
<br />
== Gerenciar repositórios ==<br />
<br />
=== Adicionar um repositório ===<br />
<br />
Para adicionar um repositório flatpak remoto faça:<br />
<br />
$ flatpak remote-add ''nome'' ''localização''<br />
<br />
onde ''nome'' é o nome do novo remoto e ''localizaçã'' o é o caminho ou a URL do repositório. <br />
<br />
Por exemplo, para adicionar o [https://flathub.org/ repositório oficial Flathub]:<br />
<br />
$ flatpak remote-add --if-not-exists flathub <nowiki>https://dl.flathub.org/repo/flathub.flatpakrepo</nowiki><br />
<br />
=== Deletar repositórios ===<br />
<br />
Para deletar um repositório flatpak remoto faça:<br />
<br />
$ flatpak remote-delete ''nome''<br />
<br />
onde ''nome'' é o nome do repositório remoto a ser deletado.<br />
<br />
=== Listar repositórios ===<br />
<br />
Para listar todos os repositórios adicionados faça:<br />
<br />
$ flatpak remotes<br />
<br />
== Gerenciar runtimes e aplicações ==<br />
<br />
=== Procurar por um runtime ou aplicação ===<br />
<br />
Antes de estar pronto para procurar por um runtime ou aplicação em um novo repositório remoto adicionado, nós precisamos recuperar os dados appstream. Para isso:<br />
<br />
{{hc|$ flatpak update|<br />
Procurando por atualizações...<br />
Atualizando dados appstream para remote ''nome''<br />
}}<br />
<br />
Então nós podemos proceder para procurar por um pacote com {{ic|flatpak search ''nomedopacote''}}, ''e.g.'' para procurar pelo pacote {{ic|libreoffice}} com o {{ic|flathub}} remoto configurado:<br />
<br />
<br />
{{hc|$ flatpak search libreoffice|<br />
ID de aplicativo Versão Ramo Remotos Descrição <br />
org.libreoffice.LibreOffice stable flathub The LibreOffice productivity suite<br />
}}<br />
<br />
=== Listar todos os runtime ou aplicações disponíveis ===<br />
<br />
Para listar todos os runtimes e aplicações disponíveis em um repositório remoto nomeado como ''remoto'' faça: <br />
<br />
$ flatpak remote-ls ''remoto''<br />
<br />
=== Instalar um runtine ou aplicação ===<br />
<br />
Para instalar umruntime ou aplicação faça:<br />
<br />
$ flatpak install ''remoto'' ''nome''<br />
<br />
onde ''remoto'' é o nome do repositório remoto e ''nome'' é o nome da aplicação ou runtime a ser instalado.<br />
<br />
{{Dica|Você pode usar identificadores parciais {{ic|flatpak install ''nome-parcial''}} (por exemplo {{ic|flatpak install libreoffice}}).}}<br />
<br />
=== Listar os runtimes e aplicações instalados ===<br />
<br />
Para listar os runtimes e aplicações instaladas faça:<br />
<br />
$ flatpak list<br />
<br />
=== Rodar aplicações ===<br />
<br />
Aplicações Flatpak também podem ser executadas por linha de comando:<br />
<br />
$ flatpak run ''nome''<br />
<br />
=== Atualizar um runtime ou aplicação ===<br />
<br />
Para atualizar um runtime ou aplicação nomeada como ''nome'' faça:<br />
<br />
$ flatpak update ''name''<br />
<br />
=== Desinstalar um runtime ou aplicação ===<br />
<br />
Para desinstalar um runtime ou aplicação nomeado(a) como nome faça:<br />
<br />
$ flatpak uninstall ''name''<br />
<br />
{{Dica|Você pode desinstalar flatpak “refs” não utilizado (também conhecido como orfãos sem aplicação/runtime) com {{ic|flatpak unsinstall --unused}}.}}<br />
<br />
=== Adicionando arquivos .desktop Flatpak ao seu menu ===<br />
Flatpak espera que o gerenciador de janelas respeite a variável de ambiente XDG_DATA_DIRS para descobrir aplicações. Isso pode requerer que a sessão seja reiniciada ou o lançador pode não suportar isso. Nesse caso, onde você pode editar a lista de diretórios escaneados, adicionar isso a ela:<br />
<br />
~/.local/share/flatpak/exports/share/applications<br />
/var/lib/flatpak/exports/share/applications<br />
<br />
Isso é sabidamente necessário no Awesome.<br />
<br />
=== Vendo as permissões sandbox da aplicação ===<br />
Aplicações Flatpak vêm com regras sandbox pré-definidas que definem quais os recursos e os caminhos do sistema de arquivos a aplicação tem permissão para acessar. <br />
Para ver as permissões de uma aplicação específica faça:<br />
<br />
$ flatpak info --show-permissions ''name''<br />
A referência para os nomes das permissões sandbox podem ser encontradas na [https://docs.flatpak.org/en/latest/sandbox-permissions-reference.html/ documentação oficial do Flatpak.]<br />
<br />
=== Sobrescrevendo permissões sandbox de aplicações ===<br />
Se você acha que as permissões pré-definidas da aplicação é muito permissiva ou muito restritiva, você pode mudar para qualquer uma que quiser usando o comando {{ic|flatpak override}}.<br />
Por exemplo:<br />
$ flatpak override --nofilesystem=home ''name''<br />
Isso irá prevenir que a aplicação acesse a sua pasta home.<br />
<br />
Todo tipo de permissão como dispositivo, sistema de arquivo ou soquete tem um uma linha de comando que permite aquela permissão em particular e uma opção separada que nega. Por exemplo, no caso de acesso ao dispositivo {{ic|1=--device=device_''nome''}} permite o acesso, {{ic|1=--no-device=device_''nome''}} nega a permissão para acessar o dispositivo.<br />
<br />
Para todos os tipos de comandos de permissão consulte a página de manual: {{man|1|flatpak-override(1)}}.<br />
<br />
Substituições de permissão podem ser resetadas para o padrão com o comando:<br />
$ flatpak override --reset ''nome''<br />
<br />
== Criar uma base de runtime customizada ==<br />
<br />
{{Expansion|Isso certamente pode ser melhorado. Também há problemas com D-Bus para apps do GNOME.}}<br />
<br />
{{Atenção|Se você quer lançar o seu software para o público como Flatpak, um runtime Arch-based é inadequado. Nesse caso, você precisará seguir a [http://docs.flatpak.org/ documentação oficial] para integrar seu software ao ecossistema adequado do Flatpak usando os [http://flatpak.org/runtimes.html/ runtimes comuns].}}<br />
<br />
{{Nota|Você pode querer usar uma conta não confiável e desprivilegiadas para construir software não confiável porque o software não é sandboxed durante a criação do app e do runtime.}}<br />
<br />
{{Nota|Quando distribuindo pacotes para outros, você pode ser legalmente obrigado a fornecer o código fonte de alguns dos softwares empacotados mediante solicitação. Vocẽ ode querer usar [[ABS_(Português)|ABS]] para construir tais pacotes a partir da fonte.}}<br />
<br />
Você pode criar uma base runtime Arch-based customizada e uma base SDK para Flatpak usando o pacman. Você pode, então, usá-las para criação e empacotamento de aplicações. Isso é uma alternativa para uso pessoal para o padrão {{ic|org.freedesktop.BasePlatform}} e {{ic|org.freedesktop.BaseSdk runtimes}}.<br />
<br />
Em adição ao {{Pkg|flatpak}}, você precisa ter instalado {{Pkg|fakeroot}} e {{Pkg|fakechroot}}, para suportar o pacman hooks.<br />
<br />
Primeiro, comece criando um diretório para criação do runtime e, possivelmente, aplicações.<br />
<br />
$ mkdir ''minhapastadecriacaoflatpak''<br />
$ cd ''minhapastadecriacaoflatpak''<br />
<br />
Você pode, então, preparar o diretório para a criação da plataforma base do runtime. Os arquivos do sub-diretório irão conter o que depois será o diretório {{ic|/usr}} no sandbox. Portanto, você precisará criar links simbólicos para o padrão {{ic|/etc/share}} etc. do Arch ainda possa ser acessado no caminho usual.<br />
<br />
$ mkdir -p ''meuruntime''/files/var/lib/pacman<br />
$ touch ''meuruntime''/files/.ref<br />
$ ln -s /usr/usr/share ''meuruntime''/files/share<br />
$ ln -s /usr/usr/include ''meuruntime''/files/include<br />
$ ln -s /usr/usr/local ''meuruntime''/files/local<br />
<br />
Certifique-se que as fontes disponíveis pelo seu SO host para o runtime do Arch:<br />
<br />
$ mkdir -p ''meuruntime''/files/usr/share/fonts<br />
$ ln -s /run/host/fonts ''meuruntime''/files/usr/share/fonts/flatpakhostfonts<br />
<br />
Você precisa e talvez queira adaptar o seu {{ic|pacman.conf}} antes de instalar pacotes no runtime. Copie o {{ic|/etc/pacman.conf}} para o seu diretório de criação e então faça as seguintes mudanças:<br />
<br />
* Remova a opção {{ic|CheckSpace}} e então o pacman não reclamará sobre erros ao encontrar a raíz do sistema de arquivo para checar o espaço de disco.<br />
* Remova quaisquer repositórios customizados indesejados e as configurações {{ic|IgnorePkg}}, {{ic|IgnoreGroup}}, {{ic|NoUpgrade}} e {{ic|NoExtract}}, que são necessárias somente para o sistema hospedeiro.<br />
<br />
Agora instale os pacotes para o runtime.<br />
<br />
$ fakechroot fakeroot pacman -Syu --root ''meuruntime''/files --dbpath ''meuruntime''/files/var/lib/pacman --config pacman.conf base<br />
$ mv pacman.conf ''meuruntime''/files/etc/pacman.conf<br />
<br />
Configure os [[Locale_(Português)|locales]] a serem usados editando {{ic|''meuruntime''/files/etc/locale.gen}}. Então, regenere os locales do runtime.<br />
<br />
$ fakechroot chroot ''meuruntime''/files locale-gen<br />
<br />
A base SDK pode ser criada a partir da base runtime com adição de aplicações necessárias para a criação de pacotes e executar o pacman.<br />
<br />
$ cp -r ''meuruntime'' mysdk<br />
$ fakechroot fakeroot pacman -S --root mysdk/files --dbpath mysdk/files/var/lib/pacman --config meusdk/files/etc/pacman.conf base-devel fakeroot fakechroot --needed<br />
<br />
Insira metadados sobre runtime e SDK.<br />
<br />
{{hc|''meuruntime''/metadados|2=<br />
[Runtime]<br />
name=org.mydomain.BasePlatform<br />
runtime=org.mydomain.BasePlatform/x86_64/2016-06-26<br />
sdk=org.mydomain.BaseSdk/x86_64/2016-06-26<br />
}}<br />
<br />
{{hc|meusdk/metadados|2=<br />
[Runtime]<br />
name=org.mydomain.BaseSdk<br />
runtime=org.mydomain.BasePlatform/x86_64/2016-06-26<br />
sdk=org.mydomain.BaseSdk/x86_64/2016-06-26<br />
}}<br />
<br />
Adicione as bases runtime e SDK para um repositório local no diretório atual. Você pode querer dar para eles mensagens commit apropriadas como, por exemplo, “Minha base runtime Arch” e “Minha base SDK Arch”.<br />
<br />
$ ostree init --mode archive-z2 --repo=.<br />
$ EDITOR="nano -w" ostree commit -b runtime/org.mydomain.BasePlatform/x86_64/2016-06-26 --tree=dir=''meuruntime''<br />
$ EDITOR="nano -w" ostree commit -b runtime/org.mydomain.BaseSdk/x86_64/2016-06-26 --tree=dir=meusdk<br />
$ ostree summary -u<br />
<br />
Instale o runtime e o SDK.<br />
<br />
$ flatpak remote-add --user --no-gpg-verify myarchos file://$(pwd)<br />
$ flatpak install --user myarchos org.mydomain.BasePlatform 2016-06-26<br />
$ flatpak install --user myarchos org.mydomain.BaseSdk 2016-06-26<br />
<br />
=== Criar apps com o pacman ===<br />
<br />
Como uma alternativa para a criação de aplicação da [http://flatpak.org/developer.html forma comum], nós podemos usar o pacman para criar uma versão em contêiner dos pacotes comuns do Arch. Note que {{ic|/usr}} é somente-leitura quando criando apps, então nós não podemos usar os pacotes do Arch quando da criação de um app. Para criar um app real com o pacman, nós podemos também:<br />
<br />
* Usar o pacman para criar um runtime contendos todas as dependẽncias<br />
* e compilar os apps [http://flatpak.org/developer.html como sempre] ou talvez usando o pacman para criar um [[PKGBUILD_(Português)|PKGBUILD]] customizado e adaptado ao Flatpak, o qual usa {{ic|1=--prefix=/app}} para o script {{ic|configure}},<br />
<br />
ou nós podemos<br />
* usar o pacman para criar o runtime contendo o app instalado com o pacman<br />
* e criar um app dummy para executá-lo.<br />
<br />
Por último, primeiro crie um runtime usando o pacman como esse para o {{Pkg|gedit}}. O runtime é primeiramente inicializado e preparado para uso com o pacman.<br />
<br />
$ flatpak build-init -w geditruntime org.mydomain.geditruntime org.mydomain.BaseSdk org.mydomain.BasePlatform 2016-06-26<br />
$ flatpak build geditruntime sed -i "s/^#Server/Server/g" /etc/pacman.d/mirrorlist<br />
$ flatpak build geditruntime ln -s /usr/var/lib /var/lib<br />
$ flatpak build geditruntime fakeroot pacman-key --init<br />
$ flatpak build geditruntime fakeroot pacman-key --populate archlinux<br />
<br />
Então o pacote está instalado. A conexão da rede hospedeira deve estar disponível para o pacman.<br />
<br />
$ flatpak build --share=network geditruntime fakechroot fakeroot pacman --root /usr -S gedit<br />
<br />
Você pode testar a aplicação antes de finalizar o runtime (sem o sandboxing apropriado).<br />
<br />
$ flatpak build --socket=x11 geditruntime gedit<br />
<br />
Agora termine criando o runtime e exporte-o para um novo repositório local. As chaves GnuPG do pacman têm permissões que podem interferir e precisam ser removidas primeiro.<br />
<br />
$ flatpak build geditruntime rm -r /etc/pacman.d/gnupg<br />
$ flatpak build-finish geditruntime<br />
$ sed -i "s/\[Application\]/\[Runtime\]/;s/runtime=org.mydomain.BasePlatform/runtime=org.mydomain.geditruntime/" geditruntime/metadata<br />
$ flatpak build-export -r geditrepo geditruntime<br />
<br />
Então crie o app dummy.<br />
<br />
$ flatpak build-init geditapp org.gnome.gedit org.mydomain.BaseSdk org.mydomain.geditruntime<br />
<br />
Agora termine criando o app dummy. Você pode ajustar as permissões de acesso quando sandboxed dando opções adicionais ao terminar de criar. Para possíveis opções veja a [[#Veja também|documentação do Flatpak]] e os [https://gitlab.gnome.org/GNOME/gnome-apps-nightly/tree/master/ arquivos de manifesto do GNOME]. Alternativamente, adapte {{ic|geditapp/metadata}} para as suas necessidades após terminar de criar, mas antes de exportar. Quando os arquivos de metadados estiver concluído, exporte o app para o repositório.<br />
<br />
$ flatpak build-finish geditapp --socket=x11 ''[possibly other options]'' --command=gedit<br />
$ flatpak build-export geditrepo geditapp<br />
<br />
Instale-o junto com o runtime.<br />
<br />
$ flatpak --user remote-add --no-gpg-verify geditrepo geditrepo<br />
$ flatpak install --user geditrepo org.mydomain.geditruntime<br />
$ flatpak install --user geditrepo org.gnome.gedit<br />
$ flatpak run org.gnome.gedit<br />
<br />
== Veja também ==<br />
<br />
* [http://flatpak.org Official website]<br />
* [https://github.com/flatpak/flatpak/wiki Official Github wiki]<br />
* [[Wikipedia::Flatpak|Wikipedia page]]<br />
* [https://wiki.gnome.org/Projects/SandboxedApps Gnome SandboxedApps]<br />
* [https://community.kde.org/Guidelines_and_HOWTOs/Flatpak KDE Testing Runtime and Applications]</div>Fvguilhermehttps://wiki.archlinux.org/index.php?title=Flatpak_(Portugu%C3%AAs)&diff=581835Flatpak (Português)2019-09-08T20:41:31Z<p>Fvguilherme: minor edit</p>
<hr />
<div>[[Category:Development (Português)]]<br />
[[es:Flatpak]]<br />
[[ja:Flatpak]]<br />
[[pt:Flatpak]]<br />
{{StatusTradução|Flatpak|2019-08-09|23769}}<br />
{{Related articles start (Português)}}<br />
{{Related|Snapd}}<br />
{{Related|bubblewrap}}<br />
{{Related articles end}}<br />
Do projeto [https://github.com/flatpak/flatpak/blob/master/README.md README]: "''[http://flatpak.org Flatpak] é um sistema para construção, distribuição e execução de aplicações desktop sandboxed no Linux.''"<br />
<br />
De {{man|1|flatpak}}:<br />
<br />
:''Flatpak é uma ferramenta para gerenciar aplicações e os runtimes que elas usam. No modelo Flatpak, aplicações podem ser construídas e distribuídas independentemente do sistema hospedeiro em que elas estão usando, e elas são isoladas do sistema hospedeiro (‘sandboxed’) em algum grau, no runtime.''<br />
:''Flatpak usa [https://ostree.readthedocs.io/en/latest/ OSTree] para distribuir e implantar dados. Os repositórios que ele usa são repositórios OSTree epodem ser manipulados com a ferramenta ostree. Runtimes instalados e aplicações são checkouts do OSTree.''<br />
<br />
== Instalação ==<br />
<br />
[[Instale]] o pacote {{pkg|flatpak}}.<br />
<br />
{{Nota|Se você quer construir flatpaks com o {{ic|flatpak-builder}}, você precisará instalar as dependências opcionais {{pkg|elfutils}} e {{pkg|patch}}.}}<br />
<br />
== Gerenciar repositórios ==<br />
<br />
=== Adicionar um repositório ===<br />
<br />
Para adicionar um repositório flatpak remoto faça:<br />
<br />
$ flatpak remote-add ''nome'' ''localização''<br />
<br />
onde ''nome'' é o nome do novo remoto e ''localizaçã'' o é o caminho ou a URL do repositório. <br />
<br />
Por exemplo, para adicionar o [https://flathub.org/ repositório oficial Flathub]:<br />
<br />
$ flatpak remote-add --if-not-exists flathub <nowiki>https://dl.flathub.org/repo/flathub.flatpakrepo</nowiki><br />
<br />
=== Deletar repositórios ===<br />
<br />
Para deletar um repositório flatpak remoto faça:<br />
<br />
$ flatpak remote-delete ''nome''<br />
<br />
onde ''nome'' é o nome do repositório remoto a ser deletado.<br />
<br />
=== Listar repositórios ===<br />
<br />
Para listar todos os repositórios adicionados faça:<br />
<br />
$ flatpak remotes<br />
<br />
== Gerenciar runtimes e aplicações ==<br />
<br />
=== Procurar por um runtime ou aplicação ===<br />
<br />
Antes de estar pronto para procurar por um runtime ou aplicação em um novo repositório remoto adicionado, nós precisamos recuperar os dados appstream. Para isso:<br />
<br />
{{hc|$ flatpak update|<br />
Procurando por atualizações...<br />
Atualizando dados appstream para remote ''nome''<br />
}}<br />
<br />
Então nós podemos proceder para procurar por um pacote com {{ic|flatpak search ''nomedopacote''}}, ''e.g.'' para procurar pelo pacote {{ic|libreoffice}} com o {{ic|flathub}} remoto configurado:<br />
<br />
<br />
{{hc|$ flatpak search libreoffice|<br />
ID de aplicativo Versão Ramo Remotos Descrição <br />
org.libreoffice.LibreOffice stable flathub The LibreOffice productivity suite<br />
}}<br />
<br />
=== Listar todos os runtime ou aplicações disponíveis ===<br />
<br />
Para listar todos os runtimes e aplicações disponíveis em um repositório remoto nomeado como ''remoto'' faça: <br />
<br />
$ flatpak remote-ls ''remoto''<br />
<br />
=== Instalar um runtine ou aplicação ===<br />
<br />
Para instalar umruntime ou aplicação faça:<br />
<br />
$ flatpak install ''remoto'' ''nome''<br />
<br />
onde ''remoto'' é o nome do repositório remoto e ''nome'' é o nome da aplicação ou runtime a ser instalado.<br />
<br />
{{Dica|Você pode usar identificadores parciais {{ic|flatpak install ''nome-parcial''}} (por exemplo {{ic|flatpak install libreoffice}}).}}<br />
<br />
=== Listar os runtimes e aplicações instalados ===<br />
<br />
Para listar os runtimes e aplicações instaladas faça:<br />
<br />
$ flatpak list<br />
<br />
=== Rodar aplicações ===<br />
<br />
Aplicações Flatpak também podem ser executadas por linha de comando:<br />
<br />
$ flatpak run ''nome''<br />
<br />
=== Atualizar um runtime ou aplicação ===<br />
<br />
Para atualizar um runtime ou aplicação nomeada como ''nome'' faça:<br />
<br />
$ flatpak update ''name''<br />
<br />
=== Desinstalar um runtime ou aplicação ===<br />
<br />
Para desinstalar um runtime ou aplicação nomeado(a) como nome faça:<br />
<br />
$ flatpak uninstall ''name''<br />
<br />
{{Dica|Você pode desinstalar flatpak “refs” não utilizado (também conhecido como orfãos sem aplicação/runtime) com {{ic|flatpak unsinstall --unused}}.}}<br />
<br />
=== Adicionando arquivos .desktop Flatpak ao seu menu ===<br />
Flatpak espera que o gerenciador de janelas respeite a variável de ambiente XDG_DATA_DIRS para descobrir aplicações. Isso pode requerer que a sessão seja reiniciada ou o lançador pode não suportar isso. Nesse caso, onde você pode editar a lista de diretórios escaneados, adicionar isso a ela:<br />
<br />
~/.local/share/flatpak/exports/share/applications<br />
/var/lib/flatpak/exports/share/applications<br />
<br />
Isso é sabidamente necessário no Awesome.<br />
<br />
=== Vendo as permissões sandbox da aplicação ===<br />
Aplicações Flatpak vêm com regras sandbox pré-definidas que definem quais os recursos e os caminhos do sistema de arquivos a aplicação tem permissão para acessar. <br />
Para ver as permissões de uma aplicação específica faça:<br />
<br />
$ flatpak info --show-permissions ''name''<br />
A referência para os nomes das permissões sandbox podem ser encontradas na [https://docs.flatpak.org/en/latest/sandbox-permissions-reference.html/ documentação oficial do Flatpak.]<br />
<br />
=== Sobrescrevendo permissões sandbox de aplicações ===<br />
Se você acha que as permissões pré-definidas da aplicação é muito permissiva ou muito restritiva, você pode mudar para qualquer uma que quiser usando o comando {{ic|flatpak override}}.<br />
Por exemplo:<br />
$ flatpak override --nofilesystem=home ''name''<br />
Isso irá prevenir que a aplicação acesse a sua pasta home.<br />
<br />
Todo tipo de permissão como dispositivo, sistema de arquivo ou soquete tem um uma linha de comando que permite aquela permissão em particular e uma opção separada que nega. Por exemplo, no caso de acesso ao dispositivo {{ic|1=--device=device_''nome''}} permite o acesso, {{ic|1=--no-device=device_''nome''}} nega a permissão para acessar o dispositivo.<br />
<br />
Para todos os tipos de comandos de permissão consulte a página de manual: {{man|1|flatpak-override(1)}}.<br />
<br />
Substituições de permissão podem ser resetadas para o padrão com o comando:<br />
$ flatpak override --reset ''nome''<br />
<br />
== Criar uma base de runtime customizada ==<br />
<br />
{{Expansion|Isso certamente pode ser melhorado. Isso também tem problemas com D-Bus para apps do GNOME. (Discussão em [https://wiki.archlinux.org/index.php/Talk:Flatpak/ Talk:Flatpak#].}}<br />
<br />
{{Atenção|Se você quer lançar o seu software para o público como Flatpak, um runtime Arch-based é inadequado. Nesse caso, você precisará seguir a [http://docs.flatpak.org/ documentação oficial] para integrar seu software ao ecossistema adequado do Flatpak usando os [http://flatpak.org/runtimes.html/ runtimes comuns].}}<br />
<br />
{{Nota|Você pode querer usar uma conta não confiável e desprivilegiadas para construir software não confiável porque o software não é sandboxed durante a criação do app e do runtime.}}<br />
<br />
{{Nota|Quando distribuindo pacotes para outros, você pode ser legalmente obrigado a fornecer o código fonte de alguns dos softwares empacotados mediante solicitação. Vocẽ ode querer usar [[ABS_(Português)|ABS]] para construir tais pacotes a partir da fonte.}}<br />
<br />
Você pode criar uma base runtime Arch-based customizada e uma base SDK para Flatpak usando o pacman. Você pode, então, usá-las para criação e empacotamento de aplicações. Isso é uma alternativa para uso pessoal para o padrão {{ic|org.freedesktop.BasePlatform}} e {{ic|org.freedesktop.BaseSdk runtimes}}.<br />
<br />
Em adição ao {{Pkg|flatpak}}, você precisa ter instalado {{Pkg|fakeroot}} e {{Pkg|fakechroot}}, para suportar o pacman hooks.<br />
<br />
Primeiro, comece criando um diretório para criação do runtime e, possivelmente, aplicações.<br />
<br />
$ mkdir ''minhapastadecriacaoflatpak''<br />
$ cd ''minhapastadecriacaoflatpak''<br />
<br />
Você pode, então, preparar o diretório para a criação da plataforma base do runtime. Os arquivos do sub-diretório irão conter o que depois será o diretório {{ic|/usr}} no sandbox. Portanto, você precisará criar links simbólicos para o padrão {{ic|/etc/share}} etc. do Arch ainda possa ser acessado no caminho usual.<br />
<br />
$ mkdir -p ''meuruntime''/files/var/lib/pacman<br />
$ touch ''meuruntime''/files/.ref<br />
$ ln -s /usr/usr/share ''meuruntime''/files/share<br />
$ ln -s /usr/usr/include ''meuruntime''/files/include<br />
$ ln -s /usr/usr/local ''meuruntime''/files/local<br />
<br />
Certifique-se que as fontes disponíveis pelo seu SO host para o runtime do Arch:<br />
<br />
$ mkdir -p ''meuruntime''/files/usr/share/fonts<br />
$ ln -s /run/host/fonts ''meuruntime''/files/usr/share/fonts/flatpakhostfonts<br />
<br />
Você precisa e talvez queira adaptar o seu {{ic|pacman.conf}} antes de instalar pacotes no runtime. Copie o {{ic|/etc/pacman.conf}} para o seu diretório de criação e então faça as seguintes mudanças:<br />
<br />
* Remova a opção {{ic|CheckSpace}} e então o pacman não reclamará sobre erros ao encontrar a raíz do sistema de arquivo para checar o espaço de disco.<br />
* Remova quaisquer repositórios customizados indesejados e as configurações {{ic|IgnorePkg}}, {{ic|IgnoreGroup}}, {{ic|NoUpgrade}} e {{ic|NoExtract}}, que são necessárias somente para o sistema hospedeiro.<br />
<br />
Agora instale os pacotes para o runtime.<br />
<br />
$ fakechroot fakeroot pacman -Syu --root ''meuruntime''/files --dbpath ''meuruntime''/files/var/lib/pacman --config pacman.conf base<br />
$ mv pacman.conf ''meuruntime''/files/etc/pacman.conf<br />
<br />
Configure os [[Locale_(Português)|locales]] a serem usados editando {{ic|''meuruntime''/files/etc/locale.gen}}. Então, regenere os locales do runtime.<br />
<br />
$ fakechroot chroot ''meuruntime''/files locale-gen<br />
<br />
A base SDK pode ser criada a partir da base runtime com adição de aplicações necessárias para a criação de pacotes e executar o pacman.<br />
<br />
$ cp -r ''meuruntime'' mysdk<br />
$ fakechroot fakeroot pacman -S --root mysdk/files --dbpath mysdk/files/var/lib/pacman --config meusdk/files/etc/pacman.conf base-devel fakeroot fakechroot --needed<br />
<br />
Insira metadados sobre runtime e SDK.<br />
<br />
{{hc|''meuruntime''/metadados|2=<br />
[Runtime]<br />
name=org.mydomain.BasePlatform<br />
runtime=org.mydomain.BasePlatform/x86_64/2016-06-26<br />
sdk=org.mydomain.BaseSdk/x86_64/2016-06-26<br />
}}<br />
<br />
{{hc|meusdk/metadados|2=<br />
[Runtime]<br />
name=org.mydomain.BaseSdk<br />
runtime=org.mydomain.BasePlatform/x86_64/2016-06-26<br />
sdk=org.mydomain.BaseSdk/x86_64/2016-06-26<br />
}}<br />
<br />
Adicione as bases runtime e SDK para um repositório local no diretório atual. Você pode querer dar para eles mensagens commit apropriadas como, por exemplo, “Minha base runtime Arch” e “Minha base SDK Arch”.<br />
<br />
$ ostree init --mode archive-z2 --repo=.<br />
$ EDITOR="nano -w" ostree commit -b runtime/org.mydomain.BasePlatform/x86_64/2016-06-26 --tree=dir=''meuruntime''<br />
$ EDITOR="nano -w" ostree commit -b runtime/org.mydomain.BaseSdk/x86_64/2016-06-26 --tree=dir=meusdk<br />
$ ostree summary -u<br />
<br />
Instale o runtime e o SDK.<br />
<br />
$ flatpak remote-add --user --no-gpg-verify myarchos file://$(pwd)<br />
$ flatpak install --user myarchos org.mydomain.BasePlatform 2016-06-26<br />
$ flatpak install --user myarchos org.mydomain.BaseSdk 2016-06-26<br />
<br />
=== Criar apps com o pacman ===<br />
<br />
Como uma alternativa para a criação de aplicação da [http://flatpak.org/developer.html forma comum], nós podemos usar o pacman para criar uma versão em contêiner dos pacotes comuns do Arch. Note que {{ic|/usr}} é somente-leitura quando criando apps, então nós não podemos usar os pacotes do Arch quando da criação de um app. Para criar um app real com o pacman, nós podemos também:<br />
<br />
* Usar o pacman para criar um runtime contendos todas as dependẽncias<br />
* e compilar os apps [http://flatpak.org/developer.html como sempre] ou talvez usando o pacman para criar um [[PKGBUILD_(Português)|PKGBUILD]] customizado e adaptado ao Flatpak, o qual usa {{ic|1=--prefix=/app}} para o script {{ic|configure}},<br />
<br />
ou nós podemos<br />
* usar o pacman para criar o runtime contendo o app instalado com o pacman<br />
* e criar um app dummy para executá-lo.<br />
<br />
Por último, primeiro crie um runtime usando o pacman como esse para o {{Pkg|gedit}}. O runtime é primeiramente inicializado e preparado para uso com o pacman.<br />
<br />
$ flatpak build-init -w geditruntime org.mydomain.geditruntime org.mydomain.BaseSdk org.mydomain.BasePlatform 2016-06-26<br />
$ flatpak build geditruntime sed -i "s/^#Server/Server/g" /etc/pacman.d/mirrorlist<br />
$ flatpak build geditruntime ln -s /usr/var/lib /var/lib<br />
$ flatpak build geditruntime fakeroot pacman-key --init<br />
$ flatpak build geditruntime fakeroot pacman-key --populate archlinux<br />
<br />
Então o pacote está instalado. A conexão da rede hospedeira deve estar disponível para o pacman.<br />
<br />
$ flatpak build --share=network geditruntime fakechroot fakeroot pacman --root /usr -S gedit<br />
<br />
Você pode testar a aplicação antes de finalizar o runtime (sem o sandboxing apropriado).<br />
<br />
$ flatpak build --socket=x11 geditruntime gedit<br />
<br />
Agora termine criando o runtime e exporte-o para um novo repositório local. As chaves GnuPG do pacman têm permissões que podem interferir e precisam ser removidas primeiro.<br />
<br />
$ flatpak build geditruntime rm -r /etc/pacman.d/gnupg<br />
$ flatpak build-finish geditruntime<br />
$ sed -i "s/\[Application\]/\[Runtime\]/;s/runtime=org.mydomain.BasePlatform/runtime=org.mydomain.geditruntime/" geditruntime/metadata<br />
$ flatpak build-export -r geditrepo geditruntime<br />
<br />
Então crie o app dummy.<br />
<br />
$ flatpak build-init geditapp org.gnome.gedit org.mydomain.BaseSdk org.mydomain.geditruntime<br />
<br />
Agora termine criando o app dummy. Você pode ajustar as permissões de acesso quando sandboxed dando opções adicionais ao terminar de criar. Para possíveis opções veja a [[#Veja também|documentação do Flatpak]] e os [https://gitlab.gnome.org/GNOME/gnome-apps-nightly/tree/master/ arquivos de manifesto do GNOME]. Alternativamente, adapte {{ic|geditapp/metadata}} para as suas necessidades após terminar de criar, mas antes de exportar. Quando os arquivos de metadados estiver concluído, exporte o app para o repositório.<br />
<br />
$ flatpak build-finish geditapp --socket=x11 ''[possibly other options]'' --command=gedit<br />
$ flatpak build-export geditrepo geditapp<br />
<br />
Instale-o junto com o runtime.<br />
<br />
$ flatpak --user remote-add --no-gpg-verify geditrepo geditrepo<br />
$ flatpak install --user geditrepo org.mydomain.geditruntime<br />
$ flatpak install --user geditrepo org.gnome.gedit<br />
$ flatpak run org.gnome.gedit<br />
<br />
== Veja também ==<br />
<br />
* [http://flatpak.org Official website]<br />
* [https://github.com/flatpak/flatpak/wiki Official Github wiki]<br />
* [[Wikipedia::Flatpak|Wikipedia page]]<br />
* [https://wiki.gnome.org/Projects/SandboxedApps Gnome SandboxedApps]<br />
* [https://community.kde.org/Guidelines_and_HOWTOs/Flatpak KDE Testing Runtime and Applications]</div>Fvguilhermehttps://wiki.archlinux.org/index.php?title=Flatpak_(Portugu%C3%AAs)&diff=581834Flatpak (Português)2019-09-08T20:33:07Z<p>Fvguilherme: minor fix</p>
<hr />
<div>[[Category:Package development (Português)]]<br />
[[es:Flatpak]]<br />
[[ja:Flatpak]]<br />
[[pt:Flatpak]]<br />
{{StatusTradução|Flatpak|2019-08-09|23769}}<br />
{{Related articles start (Português)}}<br />
{{Related|Snapd}}<br />
{{Related|bubblewrap}}<br />
{{Related articles end}}<br />
Do projeto [https://github.com/flatpak/flatpak/blob/master/README.md README]: "''[http://flatpak.org Flatpak] é um sistema para construção, distribuição e execução de aplicações desktop sandboxed no Linux.''"<br />
<br />
De {{man|1|flatpak}}:<br />
<br />
:''Flatpak é uma ferramenta para gerenciar aplicações e os runtimes que elas usam. No modelo Flatpak, aplicações podem ser construídas e distribuídas independentemente do sistema hospedeiro em que elas estão usando, e elas são isoladas do sistema hospedeiro (‘sandboxed’) em algum grau, no runtime.''<br />
:''Flatpak usa [https://ostree.readthedocs.io/en/latest/ OSTree] para distribuir e implantar dados. Os repositórios que ele usa são repositórios OSTree epodem ser manipulados com a ferramenta ostree. Runtimes instalados e aplicações são checkouts do OSTree.''<br />
<br />
== Instalação ==<br />
<br />
[[Instale]] o pacote {{pkg|flatpak}}.<br />
<br />
{{Nota|Se você quer construir flatpaks com o {{ic|flatpak-builder}}, você precisará instalar as dependências opcionais {{pkg|elfutils}} e {{pkg|patch}}.}}<br />
<br />
== Gerenciar repositórios ==<br />
<br />
=== Adicionar um repositório ===<br />
<br />
Para adicionar um repositório flatpak remoto faça:<br />
<br />
$ flatpak remote-add ''nome'' ''localização''<br />
<br />
onde ''nome'' é o nome do novo remoto e ''localizaçã'' o é o caminho ou a URL do repositório. <br />
<br />
Por exemplo, para adicionar o [https://flathub.org/ repositório oficial Flathub]:<br />
<br />
$ flatpak remote-add --if-not-exists flathub <nowiki>https://dl.flathub.org/repo/flathub.flatpakrepo</nowiki><br />
<br />
=== Deletar repositórios ===<br />
<br />
Para deletar um repositório flatpak remoto faça:<br />
<br />
$ flatpak remote-delete ''nome''<br />
<br />
onde ''nome'' é o nome do repositório remoto a ser deletado.<br />
<br />
=== Listar repositórios ===<br />
<br />
Para listar todos os repositórios adicionados faça:<br />
<br />
$ flatpak remotes<br />
<br />
== Gerenciar runtimes e aplicações ==<br />
<br />
=== Procurar por um runtime ou aplicação ===<br />
<br />
Antes de estar pronto para procurar por um runtime ou aplicação em um novo repositório remoto adicionado, nós precisamos recuperar os dados appstream. Para isso:<br />
<br />
{{hc|$ flatpak update|<br />
Procurando por atualizações...<br />
Atualizando dados appstream para remote ''nome''<br />
}}<br />
<br />
Então nós podemos proceder para procurar por um pacote com {{ic|flatpak search ''nomedopacote''}}, ''e.g.'' para procurar pelo pacote {{ic|libreoffice}} com o {{ic|flathub}} remoto configurado:<br />
<br />
<br />
{{hc|$ flatpak search libreoffice|<br />
ID de aplicativo Versão Ramo Remotos Descrição <br />
org.libreoffice.LibreOffice stable flathub The LibreOffice productivity suite<br />
}}<br />
<br />
=== Listar todos os runtime ou aplicações disponíveis ===<br />
<br />
Para listar todos os runtimes e aplicações disponíveis em um repositório remoto nomeado como ''remoto'' faça: <br />
<br />
$ flatpak remote-ls ''remoto''<br />
<br />
=== Instalar um runtine ou aplicação ===<br />
<br />
Para instalar umruntime ou aplicação faça:<br />
<br />
$ flatpak install ''remoto'' ''nome''<br />
<br />
onde ''remoto'' é o nome do repositório remoto e ''nome'' é o nome da aplicação ou runtime a ser instalado.<br />
<br />
{{Dica|Você pode usar identificadores parciais {{ic|flatpak install ''nome-parcial''}} (por exemplo {{ic|flatpak install libreoffice}}).}}<br />
<br />
=== Listar os runtimes e aplicações instalados ===<br />
<br />
Para listar os runtimes e aplicações instaladas faça:<br />
<br />
$ flatpak list<br />
<br />
=== Rodar aplicações ===<br />
<br />
Aplicações Flatpak também podem ser executadas por linha de comando:<br />
<br />
$ flatpak run ''nome''<br />
<br />
=== Atualizar um runtime ou aplicação ===<br />
<br />
Para atualizar um runtime ou aplicação nomeada como ''nome'' faça:<br />
<br />
$ flatpak update ''name''<br />
<br />
=== Desinstalar um runtime ou aplicação ===<br />
<br />
Para desinstalar um runtime ou aplicação nomeado(a) como nome faça:<br />
<br />
$ flatpak uninstall ''name''<br />
<br />
{{Dica|Você pode desinstalar flatpak “refs” não utilizado (também conhecido como orfãos sem aplicação/runtime) com {{ic|flatpak unsinstall --unused}}.}}<br />
<br />
=== Adicionando arquivos .desktop Flatpak ao seu menu ===<br />
Flatpak espera que o gerenciador de janelas respeite a variável de ambiente XDG_DATA_DIRS para descobrir aplicações. Isso pode requerer que a sessão seja reiniciada ou o lançador pode não suportar isso. Nesse caso, onde você pode editar a lista de diretórios escaneados, adicionar isso a ela:<br />
<br />
~/.local/share/flatpak/exports/share/applications<br />
/var/lib/flatpak/exports/share/applications<br />
<br />
Isso é sabidamente necessário no Awesome.<br />
<br />
=== Vendo as permissões sandbox da aplicação ===<br />
Aplicações Flatpak vêm com regras sandbox pré-definidas que definem quais os recursos e os caminhos do sistema de arquivos a aplicação tem permissão para acessar. <br />
Para ver as permissões de uma aplicação específica faça:<br />
<br />
$ flatpak info --show-permissions ''name''<br />
A referência para os nomes das permissões sandbox podem ser encontradas na [https://docs.flatpak.org/en/latest/sandbox-permissions-reference.html/ documentação oficial do Flatpak.]<br />
<br />
=== Sobrescrevendo permissões sandbox de aplicações ===<br />
Se você acha que as permissões pré-definidas da aplicação é muito permissiva ou muito restritiva, você pode mudar para qualquer uma que quiser usando o comando {{ic|flatpak override}}.<br />
Por exemplo:<br />
$ flatpak override --nofilesystem=home ''name''<br />
Isso irá prevenir que a aplicação acesse a sua pasta home.<br />
<br />
Todo tipo de permissão como dispositivo, sistema de arquivo ou soquete tem um uma linha de comando que permite aquela permissão em particular e uma opção separada que nega. Por exemplo, no caso de acesso ao dispositivo {{ic|1=--device=device_''nome''}} permite o acesso, {{ic|1=--no-device=device_''nome''}} nega a permissão para acessar o dispositivo.<br />
<br />
Para todos os tipos de comandos de permissão consulte a página de manual: {{man|1|flatpak-override(1)}}.<br />
<br />
Substituições de permissão podem ser resetadas para o padrão com o comando:<br />
$ flatpak override --reset ''nome''<br />
<br />
== Criar uma base de runtime customizada ==<br />
<br />
{{Expansion|Isso certamente pode ser melhorado. Isso também tem problemas com D-Bus para apps do GNOME. (Discussão em [https://wiki.archlinux.org/index.php/Talk:Flatpak/ Talk:Flatpak#].}}<br />
<br />
{{Atenção|Se você quer lançar o seu software para o público como Flatpak, um runtime Arch-based é inadequado. Nesse caso, você precisará seguir a [http://docs.flatpak.org/ documentação oficial] para integrar seu software ao ecossistema adequado do Flatpak usando os [http://flatpak.org/runtimes.html/ runtimes comuns].}}<br />
<br />
{{Nota|Você pode querer usar uma conta não confiável e desprivilegiadas para construir software não confiável porque o software não é sandboxed durante a criação do app e do runtime.}}<br />
<br />
{{Nota|Quando distribuindo pacotes para outros, você pode ser legalmente obrigado a fornecer o código fonte de alguns dos softwares empacotados mediante solicitação. Vocẽ ode querer usar [[ABS_(Português)|ABS]] para construir tais pacotes a partir da fonte.}}<br />
<br />
Você pode criar uma base runtime Arch-based customizada e uma base SDK para Flatpak usando o pacman. Você pode, então, usá-las para criação e empacotamento de aplicações. Isso é uma alternativa para uso pessoal para o padrão {{ic|org.freedesktop.BasePlatform}} e {{ic|org.freedesktop.BaseSdk runtimes}}.<br />
<br />
Em adição ao {{Pkg|flatpak}}, você precisa ter instalado {{Pkg|fakeroot}} e {{Pkg|fakechroot}}, para suportar o pacman hooks.<br />
<br />
Primeiro, comece criando um diretório para criação do runtime e, possivelmente, aplicações.<br />
<br />
$ mkdir ''minhapastadecriacaoflatpak''<br />
$ cd ''minhapastadecriacaoflatpak''<br />
<br />
Você pode, então, preparar o diretório para a criação da plataforma base do runtime. Os arquivos do sub-diretório irão conter o que depois será o diretório {{ic|/usr}} no sandbox. Portanto, você precisará criar links simbólicos para o padrão {{ic|/etc/share}} etc. do Arch ainda possa ser acessado no caminho usual.<br />
<br />
$ mkdir -p ''meuruntime''/files/var/lib/pacman<br />
$ touch ''meuruntime''/files/.ref<br />
$ ln -s /usr/usr/share ''meuruntime''/files/share<br />
$ ln -s /usr/usr/include ''meuruntime''/files/include<br />
$ ln -s /usr/usr/local ''meuruntime''/files/local<br />
<br />
Certifique-se que as fontes disponíveis pelo seu SO host para o runtime do Arch:<br />
<br />
$ mkdir -p ''meuruntime''/files/usr/share/fonts<br />
$ ln -s /run/host/fonts ''meuruntime''/files/usr/share/fonts/flatpakhostfonts<br />
<br />
Você precisa e talvez queira adaptar o seu {{ic|pacman.conf}} antes de instalar pacotes no runtime. Copie o {{ic|/etc/pacman.conf}} para o seu diretório de criação e então faça as seguintes mudanças:<br />
<br />
* Remova a opção {{ic|CheckSpace}} e então o pacman não reclamará sobre erros ao encontrar a raíz do sistema de arquivo para checar o espaço de disco.<br />
* Remova quaisquer repositórios customizados indesejados e as configurações {{ic|IgnorePkg}}, {{ic|IgnoreGroup}}, {{ic|NoUpgrade}} e {{ic|NoExtract}}, que são necessárias somente para o sistema hospedeiro.<br />
<br />
Agora instale os pacotes para o runtime.<br />
<br />
$ fakechroot fakeroot pacman -Syu --root ''meuruntime''/files --dbpath ''meuruntime''/files/var/lib/pacman --config pacman.conf base<br />
$ mv pacman.conf ''meuruntime''/files/etc/pacman.conf<br />
<br />
Configure os [[Locale_(Português)|locales]] a serem usados editando {{ic|''meuruntime''/files/etc/locale.gen}}. Então, regenere os locales do runtime.<br />
<br />
$ fakechroot chroot ''meuruntime''/files locale-gen<br />
<br />
A base SDK pode ser criada a partir da base runtime com adição de aplicações necessárias para a criação de pacotes e executar o pacman.<br />
<br />
$ cp -r ''meuruntime'' mysdk<br />
$ fakechroot fakeroot pacman -S --root mysdk/files --dbpath mysdk/files/var/lib/pacman --config meusdk/files/etc/pacman.conf base-devel fakeroot fakechroot --needed<br />
<br />
Insira metadados sobre runtime e SDK.<br />
<br />
{{hc|''meuruntime''/metadados|2=<br />
[Runtime]<br />
name=org.mydomain.BasePlatform<br />
runtime=org.mydomain.BasePlatform/x86_64/2016-06-26<br />
sdk=org.mydomain.BaseSdk/x86_64/2016-06-26<br />
}}<br />
<br />
{{hc|meusdk/metadados|2=<br />
[Runtime]<br />
name=org.mydomain.BaseSdk<br />
runtime=org.mydomain.BasePlatform/x86_64/2016-06-26<br />
sdk=org.mydomain.BaseSdk/x86_64/2016-06-26<br />
}}<br />
<br />
Adicione as bases runtime e SDK para um repositório local no diretório atual. Você pode querer dar para eles mensagens commit apropriadas como, por exemplo, “Minha base runtime Arch” e “Minha base SDK Arch”.<br />
<br />
$ ostree init --mode archive-z2 --repo=.<br />
$ EDITOR="nano -w" ostree commit -b runtime/org.mydomain.BasePlatform/x86_64/2016-06-26 --tree=dir=''meuruntime''<br />
$ EDITOR="nano -w" ostree commit -b runtime/org.mydomain.BaseSdk/x86_64/2016-06-26 --tree=dir=meusdk<br />
$ ostree summary -u<br />
<br />
Instale o runtime e o SDK.<br />
<br />
$ flatpak remote-add --user --no-gpg-verify myarchos file://$(pwd)<br />
$ flatpak install --user myarchos org.mydomain.BasePlatform 2016-06-26<br />
$ flatpak install --user myarchos org.mydomain.BaseSdk 2016-06-26<br />
<br />
=== Criar apps com o pacman ===<br />
<br />
Como uma alternativa para a criação de aplicação da [http://flatpak.org/developer.html forma comum], nós podemos usar o pacman para criar uma versão em contêiner dos pacotes comuns do Arch. Note que {{ic|/usr}} é somente-leitura quando criando apps, então nós não podemos usar os pacotes do Arch quando da criação de um app. Para criar um app real com o pacman, nós podemos também:<br />
<br />
* Usar o pacman para criar um runtime contendos todas as dependẽncias<br />
* e compilar os apps [http://flatpak.org/developer.html como sempre] ou talvez usando o pacman para criar um [[PKGBUILD_(Português)|PKGBUILD]] customizado e adaptado ao Flatpak, o qual usa {{ic|1=--prefix=/app}} para o script {{ic|configure}},<br />
<br />
ou nós podemos<br />
* usar o pacman para criar o runtime contendo o app instalado com o pacman<br />
* e criar um app dummy para executá-lo.<br />
<br />
Por último, primeiro crie um runtime usando o pacman como esse para o {{Pkg|gedit}}. O runtime é primeiramente inicializado e preparado para uso com o pacman.<br />
<br />
$ flatpak build-init -w geditruntime org.mydomain.geditruntime org.mydomain.BaseSdk org.mydomain.BasePlatform 2016-06-26<br />
$ flatpak build geditruntime sed -i "s/^#Server/Server/g" /etc/pacman.d/mirrorlist<br />
$ flatpak build geditruntime ln -s /usr/var/lib /var/lib<br />
$ flatpak build geditruntime fakeroot pacman-key --init<br />
$ flatpak build geditruntime fakeroot pacman-key --populate archlinux<br />
<br />
Então o pacote está instalado. A conexão da rede hospedeira deve estar disponível para o pacman.<br />
<br />
$ flatpak build --share=network geditruntime fakechroot fakeroot pacman --root /usr -S gedit<br />
<br />
Você pode testar a aplicação antes de finalizar o runtime (sem o sandboxing apropriado).<br />
<br />
$ flatpak build --socket=x11 geditruntime gedit<br />
<br />
Agora termine criando o runtime e exporte-o para um novo repositório local. As chaves GnuPG do pacman têm permissões que podem interferir e precisam ser removidas primeiro.<br />
<br />
$ flatpak build geditruntime rm -r /etc/pacman.d/gnupg<br />
$ flatpak build-finish geditruntime<br />
$ sed -i "s/\[Application\]/\[Runtime\]/;s/runtime=org.mydomain.BasePlatform/runtime=org.mydomain.geditruntime/" geditruntime/metadata<br />
$ flatpak build-export -r geditrepo geditruntime<br />
<br />
Então crie o app dummy.<br />
<br />
$ flatpak build-init geditapp org.gnome.gedit org.mydomain.BaseSdk org.mydomain.geditruntime<br />
<br />
Agora termine criando o app dummy. Você pode ajustar as permissões de acesso quando sandboxed dando opções adicionais ao terminar de criar. Para possíveis opções veja a [[#Veja também|documentação do Flatpak]] e os [https://gitlab.gnome.org/GNOME/gnome-apps-nightly/tree/master/ arquivos de manifesto do GNOME]. Alternativamente, adapte {{ic|geditapp/metadata}} para as suas necessidades após terminar de criar, mas antes de exportar. Quando os arquivos de metadados estiver concluído, exporte o app para o repositório.<br />
<br />
$ flatpak build-finish geditapp --socket=x11 ''[possibly other options]'' --command=gedit<br />
$ flatpak build-export geditrepo geditapp<br />
<br />
Instale-o junto com o runtime.<br />
<br />
$ flatpak --user remote-add --no-gpg-verify geditrepo geditrepo<br />
$ flatpak install --user geditrepo org.mydomain.geditruntime<br />
$ flatpak install --user geditrepo org.gnome.gedit<br />
$ flatpak run org.gnome.gedit<br />
<br />
== Veja também ==<br />
<br />
* [http://flatpak.org Official website]<br />
* [https://github.com/flatpak/flatpak/wiki Official Github wiki]<br />
* [[Wikipedia::Flatpak|Wikipedia page]]<br />
* [https://wiki.gnome.org/Projects/SandboxedApps Gnome SandboxedApps]<br />
* [https://community.kde.org/Guidelines_and_HOWTOs/Flatpak KDE Testing Runtime and Applications]</div>Fvguilhermehttps://wiki.archlinux.org/index.php?title=Flatpak_(Portugu%C3%AAs)&diff=581832Flatpak (Português)2019-09-08T19:42:37Z<p>Fvguilherme: title edited.</p>
<hr />
<div>[[Category:Package development (Português)]]<br />
[[es:Flatpak]]<br />
[[ja:Flatpak]]<br />
[[pt:Flatpak]]<br />
{{StatusTradução|Flatpak|2019-08-09|23769}}<br />
{{Related articles start (Português)}}<br />
{{Related|Snapd}}<br />
{{Related|bubblewrap}}<br />
{{Related articles end}}<br />
Do projeto [https://github.com/flatpak/flatpak/blob/master/README.md README]: "''[http://flatpak.org Flatpak] é um sistema para construção, distribuição e execução de aplicações desktop sandboxed no Linux.''"<br />
<br />
De {{man|1|flatpak}}:<br />
<br />
:''Flatpak é uma ferramenta para gerenciar aplicações e os runtimes que elas usam. No modelo Flatpak, aplicações podem ser construídas e distribuídas independentemente do sistema hospedeiro em que elas estão usando, e elas são isoladas do sistema hospedeiro (‘sandboxed’) em algum grau, no runtime.''<br />
:''Flatpak usa [https://ostree.readthedocs.io/en/latest/ OSTree] para distribuir e implantar dados. Os repositórios que ele usa são repositórios OSTree epodem ser manipulados com a ferramenta ostree. Runtimes instalados e aplicações são checkouts do OSTree.''<br />
<br />
== Instalação ==<br />
<br />
[[Instale]] o pacote {{pkg|flatpak}}.<br />
<br />
{{Nota|Se você quer construir flatpaks com o {{ic|flatpak-builder}}, você precisará instalar as dependências opcionais {{pkg|elfutils}} e {{pkg|patch}}.}}<br />
<br />
== Gerenciar repositórios ==<br />
<br />
=== Adicionar um repositório ===<br />
<br />
Para adicionar um repositório flatpak remoto faça:<br />
<br />
$ flatpak remote-add ''nome'' ''localização''<br />
<br />
onde ''nome'' é o nome do novo remoto e ''localizaçã'' o é o caminho ou a URL do repositório. <br />
<br />
Por exemplo, para adicionar o [https://flathub.org/ repositório oficial Flathub]:<br />
<br />
$ flatpak remote-add --if-not-exists flathub <nowiki>https://dl.flathub.org/repo/flathub.flatpakrepo</nowiki><br />
<br />
=== Deletar repositórios ===<br />
<br />
Para deletar um repositório flatpak remoto faça:<br />
<br />
$ flatpak remote-delete ''nome''<br />
<br />
onde ''nome'' é o nome do repositório remoto a ser deletado.<br />
<br />
=== Listar repositórios ===<br />
<br />
Para listar todos os repositórios adicionados faça:<br />
<br />
$ flatpak remotes<br />
<br />
== Gerenciar runtimes e aplicações ==<br />
<br />
=== Procurar por um runtime ou aplicação ===<br />
<br />
Antes de estar pronto para procurar por um runtime ou aplicação em um novo repositório remoto adicionado, nós precisamos recuperar os dados appstream. Para isso:<br />
<br />
{{hc|$ flatpak update|<br />
Procurando por atualizações...<br />
Atualizando dados appstream para remote ''nome''<br />
}}<br />
<br />
Então nós podemos proceder para procurar por um pacote com {{ic|flatpak search ''nomedopacote''}}, ''e.g.'' para procurar pelo pacote {{ic|libreoffice}} com o {{ic|flathub}} remoto configurado:<br />
<br />
<br />
{{hc|$ flatpak search libreoffice|<br />
ID de aplicativo Versão Ramo Remotos Descrição <br />
org.libreoffice.LibreOffice stable flathub The LibreOffice productivity suite<br />
}}<br />
<br />
=== Listar todos os runtime ou aplicações disponíveis ===<br />
<br />
Para listar todos os runtimes e aplicações disponíveis em um repositório remoto nomeado como ''remoto'' faça: <br />
<br />
$ flatpak remote-ls ''remoto''<br />
<br />
=== Instalar um runtine ou aplicação ===<br />
<br />
Para instalar umruntime ou aplicação faça:<br />
<br />
$ flatpak install ''remoto'' ''nome''<br />
<br />
onde ''remoto'' é o nome do repositório remoto e ''nome'' é o nome da aplicação ou runtime a ser instalado.<br />
<br />
{{Dica|Você pode usar identificadores parciais {{ic|flatpak install ''nome-parcial''}} (por exemplo {{ic|flatpak install libreoffice}}).}}<br />
<br />
=== Listar os runtimes e aplicações instalados ===<br />
<br />
Para listar os runtimes e aplicações instaladas faça:<br />
<br />
$ flatpak list<br />
<br />
=== Rodar aplicações ===<br />
<br />
Aplicações Flatpak também podem ser executadas por linha de comando:<br />
<br />
$ flatpak run ''nome''<br />
<br />
=== Atualizar um runtime ou aplicação ===<br />
<br />
Para atualizar um runtime ou aplicação nomeada como ''nome'' faça:<br />
<br />
$ flatpak update ''name''<br />
<br />
=== Desinstalar um runtime ou aplicação ===<br />
<br />
Para desinstalar um runtime ou aplicação nomeado(a) como nome faça:<br />
<br />
$ flatpak uninstall ''name''<br />
<br />
{{Dica|Você pode desinstalar flatpak “refs” não utilizado (também conhecido como orfãos sem aplicação/runtime) com {{ic|flatpak unsinstall --unused}}.}}<br />
<br />
=== Adicionando arquivos .desktop Flatpak ao seu menu ===<br />
Flatpak espera que o gerenciador de janelas respeite a variável de ambiente XDG_DATA_DIRS para descobrir aplicações. Isso pode requerer que a sessão seja reiniciada ou o lançador pode não suportar isso. Nesse caso, onde você pode editar a lista de diretórios escaneados, adicionar isso a ela:<br />
<br />
~/.local/share/flatpak/exports/share/applications<br />
/var/lib/flatpak/exports/share/applications<br />
<br />
Isso é sabidamente necessário no Awesome.<br />
<br />
=== Vendo as permissões sandbox da aplicação ===<br />
Aplicações Flatpak vêm com regras sandbox pré-definidas que definem quais os recursos e os caminhos do sistema de arquivos a aplicação tem permissão para acessar. <br />
Para ver as permissões de uma aplicação específica faça:<br />
<br />
$ flatpak info --show-permissions ''name''<br />
A referência para os nomes das permissões sandbox podem ser encontradas na [https://docs.flatpak.org/en/latest/sandbox-permissions-reference.html/ documentação oficial do Flatpak.]<br />
<br />
=== Sobrescrevendo permissões sandbox de aplicações ===<br />
Se você acha que as permissões pré-definidas da aplicação é muito permissiva ou muito restritiva, você pode mudar para qualquer uma que quiser usando o comando {{ic|flatpak override}}.<br />
Por exemplo:<br />
$ flatpak override --nofilesystem=home ''name''<br />
Isso irá prevenir que a aplicação acesse a sua pasta home.<br />
<br />
Todo tipo de permissão como dispositivo, sistema de arquivo ou soquete tem um uma linha de comando que permite aquela permissão em particular e uma opção separada que nega. Por exemplo, no caso de acesso ao dispositivo {{ic|1=--device=device_''nome''}} permite o acesso, {{ic|1=--no-device=device_''nome''}} nega a permissão para acessar o dispositivo.<br />
<br />
Para todos os tipos de comandos de permissão consulte a página de manual: {{man|1|flatpak-override(1)}}.<br />
<br />
Substituições de permissão podem ser resetadas para o padrão com o comando:<br />
$ flatpak override --reset ''nome''<br />
<br />
== Criar uma base de runtime customizada ==<br />
<br />
{{Expansion|Isso certamente pode ser melhorado. Isso também tem problemas com D-Bus para apps do GNOME. (Discussão em [https://wiki.archlinux.org/index.php/Talk:Flatpak/ Talk:Flatpak#].}}<br />
<br />
{{Atenção|Se você quer lançar o seu software para o público como Flatpak, um runtime Arch-based é inadequado. Nesse caso, você precisará seguir a [http://docs.flatpak.org/ documentação oficial] para integrar seu software ao ecossistema adequado do Flatpak usando os [http://flatpak.org/runtimes.html/ runtimes comuns].}}<br />
<br />
{{Nota|Você pode querer usar uma conta não confiável e desprivilegiadas para construir software não confiável porque o software não é sandboxed durante a criação do app e do runtime.}}<br />
<br />
{{Nota|Quando distribuindo pacotes para outros, você pode ser legalmente obrigado a fornecer o código fonte de alguns dos softwares empacotados mediante solicitação. Vocẽ ode querer usar [[ABS_(Português)|ABS]] para construir tais pacotes a partir da fonte.}}<br />
<br />
Você pode criar uma base runtime Arch-based customizada e uma base SDK para Flatpak usando o pacman. Você pode, então, usá-las para criação e empacotamento de aplicações. Isso é uma alternativa para uso pessoal para o padrão {{ic|org.freedesktop.BasePlatform}} e {{ic|org.freedesktop.BaseSdk runtimes}}.<br />
<br />
Em adição ao {{Pkg|flatpak}}, você precisa ter instalado {{Pkg|fakeroot}} e {{Pkg|fakechroot}}, para suportar o pacman hooks.<br />
<br />
Primeiro, comece criando um diretório para criação do runtime e, possivelmente, aplicações.<br />
<br />
$ mkdir ''minhapastadecriacaoflatpak''<br />
$ cd ''minhapastadecriacaoflatpak''<br />
<br />
Você pode, então, preparar o diretório para a criação da plataforma base do runtime. Os arquivos do sub-diretório irão conter o que depois será o diretório {{ic|/usr}} no sandbox. Portanto, você precisará criar links simbólicos para o padrão {{ic|/etc/share}} etc. do Arch ainda possa ser acessado no caminho usual.<br />
<br />
$ mkdir -p ''meuruntime''/files/var/lib/pacman<br />
$ touch ''meuruntime''/files/.ref<br />
$ ln -s /usr/usr/share ''meuruntime''/files/share<br />
$ ln -s /usr/usr/include ''meuruntime''/files/include<br />
$ ln -s /usr/usr/local ''meuruntime''/files/local<br />
<br />
Certifique-se que as fontes disponíveis pelo seu SO host para o runtime do Arch:<br />
<br />
$ mkdir -p ''meuruntime''/files/usr/share/fonts<br />
$ ln -s /run/host/fonts ''meuruntime''/files/usr/share/fonts/flatpakhostfonts<br />
<br />
Você precisa e talvez queira adaptar o seu {{ic|pacman.conf}} antes de instalar pacotes no runtime. Copie o {{ic|/etc/pacman.conf}} para o seu diretório de criação e então faça as seguintes mudanças:<br />
<br />
* Remova a opção {{ic|CheckSpace}} e então o pacman não reclamará sobre erros ao encontrar a raíz do sistema de arquivo para checar o espaço de disco.<br />
* Remova quaisquer repositórios customizados indesejados e as configurações {{ic|IgnorePkg}}, {{ic|IgnoreGroup}}, {{ic|NoUpgrade}} e {{ic|NoExtract}}, que são necessárias somente para o sistema hospedeiro.<br />
<br />
<br />
Agora instale os pacotes para o runtime.<br />
<br />
$ fakechroot fakeroot pacman -Syu --root ''meuruntime''/files --dbpath ''meuruntime''/files/var/lib/pacman --config pacman.conf base<br />
$ mv pacman.conf ''meuruntime''/files/etc/pacman.conf<br />
<br />
Configure os [[Locale_(Português)|locales]] a serem usados editando {{ic|''meuruntime''/files/etc/locale.gen}}. Então, regenere os locales do runtime.<br />
<br />
$ fakechroot chroot ''meuruntime''/files locale-gen<br />
<br />
A base SDK pode ser criada a partir da base runtime com adição de aplicações necessárias para a criação de pacotes e executar o pacman.<br />
<br />
$ cp -r ''meuruntime'' mysdk<br />
$ fakechroot fakeroot pacman -S --root mysdk/files --dbpath mysdk/files/var/lib/pacman --config meusdk/files/etc/pacman.conf base-devel fakeroot fakechroot --needed<br />
<br />
Insira metadados sobre runtime e SDK.<br />
<br />
{{hc|''meuruntime''/metadados|2=<br />
[Runtime]<br />
name=org.mydomain.BasePlatform<br />
runtime=org.mydomain.BasePlatform/x86_64/2016-06-26<br />
sdk=org.mydomain.BaseSdk/x86_64/2016-06-26<br />
}}<br />
<br />
{{hc|meusdk/metadados|2=<br />
[Runtime]<br />
name=org.mydomain.BaseSdk<br />
runtime=org.mydomain.BasePlatform/x86_64/2016-06-26<br />
sdk=org.mydomain.BaseSdk/x86_64/2016-06-26<br />
}}<br />
<br />
Adicione as bases runtime e SDK para um repositório local no diretório atual. Você pode querer dar para eles mensagens commit apropriadas como, por exemplo, “Minha base runtime Arch” e “Minha base SDK Arch”.<br />
<br />
$ ostree init --mode archive-z2 --repo=.<br />
$ EDITOR="nano -w" ostree commit -b runtime/org.mydomain.BasePlatform/x86_64/2016-06-26 --tree=dir=''meuruntime''<br />
$ EDITOR="nano -w" ostree commit -b runtime/org.mydomain.BaseSdk/x86_64/2016-06-26 --tree=dir=meusdk<br />
$ ostree summary -u<br />
<br />
Instale o runtime e o SDK.<br />
<br />
$ flatpak remote-add --user --no-gpg-verify myarchos file://$(pwd)<br />
$ flatpak install --user myarchos org.mydomain.BasePlatform 2016-06-26<br />
$ flatpak install --user myarchos org.mydomain.BaseSdk 2016-06-26<br />
<br />
=== Criar apps com o pacman ===<br />
<br />
Como uma alternativa para a criação de aplicação da [http://flatpak.org/developer.html forma comum], nós podemos usar o pacman para criar uma versão em contêiner dos pacotes comuns do Arch. Note que {{ic|/usr}} é somente-leitura quando criando apps, então nós não podemos usar os pacotes do Arch quando da criação de um app. Para criar um app real com o pacman, nós podemos também:<br />
<br />
* Usar o pacman para criar um runtime contendos todas as dependẽncias<br />
* e compilar os apps [http://flatpak.org/developer.html como sempre] ou talvez usando o pacman para criar um [[PKGBUILD_(Português)|PKGBUILD]] customizado e adaptado ao Flatpak, o qual usa {{ic|1=--prefix=/app}} para o script {{ic|configure}},<br />
<br />
ou nós podemos<br />
* usar o pacman para criar o runtime contendo o app instalado com o pacman<br />
* e criar um app dummy para executá-lo.<br />
<br />
Por último, primeiro crie um runtime usando o pacman como esse para o {{Pkg|gedit}}. O runtime é primeiramente inicializado e preparado para uso com o pacman.<br />
<br />
$ flatpak build-init -w geditruntime org.mydomain.geditruntime org.mydomain.BaseSdk org.mydomain.BasePlatform 2016-06-26<br />
$ flatpak build geditruntime sed -i "s/^#Server/Server/g" /etc/pacman.d/mirrorlist<br />
$ flatpak build geditruntime ln -s /usr/var/lib /var/lib<br />
$ flatpak build geditruntime fakeroot pacman-key --init<br />
$ flatpak build geditruntime fakeroot pacman-key --populate archlinux<br />
<br />
Então o pacote está instalado. A conexão da rede hospedeira deve estar disponível para o pacman.<br />
<br />
$ flatpak build --share=network geditruntime fakechroot fakeroot pacman --root /usr -S gedit<br />
<br />
Você pode testar a aplicação antes de finalizar o runtime (sem o sandboxing apropriado).<br />
<br />
$ flatpak build --socket=x11 geditruntime gedit<br />
<br />
Agora termine criando o runtime e exporte-o para um novo repositório local. As chaves GnuPG do pacman têm permissões que podem interferir e precisam ser removidas primeiro.<br />
<br />
$ flatpak build geditruntime rm -r /etc/pacman.d/gnupg<br />
$ flatpak build-finish geditruntime<br />
$ sed -i "s/\[Application\]/\[Runtime\]/;s/runtime=org.mydomain.BasePlatform/runtime=org.mydomain.geditruntime/" geditruntime/metadata<br />
$ flatpak build-export -r geditrepo geditruntime<br />
<br />
Então crie o app dummy.<br />
<br />
$ flatpak build-init geditapp org.gnome.gedit org.mydomain.BaseSdk org.mydomain.geditruntime<br />
<br />
Agora termine criando o app dummy. Você pode ajustar as permissões de acesso quando sandboxed dando opções adicionais ao terminar de criar. Para possíveis opções veja a [[#Veja também|documentação do Flatpak]] e os [https://gitlab.gnome.org/GNOME/gnome-apps-nightly/tree/master/ arquivos de manifesto do GNOME]. Alternativamente, adapte {{ic|geditapp/metadata}} para as suas necessidades após terminar de criar, mas antes de exportar. Quando os arquivos de metadados estiver concluído, exporte o app para o repositório.<br />
<br />
$ flatpak build-finish geditapp --socket=x11 ''[possibly other options]'' --command=gedit<br />
$ flatpak build-export geditrepo geditapp<br />
<br />
Instale-o junto com o runtime.<br />
<br />
$ flatpak --user remote-add --no-gpg-verify geditrepo geditrepo<br />
$ flatpak install --user geditrepo org.mydomain.geditruntime<br />
$ flatpak install --user geditrepo org.gnome.gedit<br />
$ flatpak run org.gnome.gedit<br />
<br />
== Veja também ==<br />
<br />
* [http://flatpak.org Official website]<br />
* [https://github.com/flatpak/flatpak/wiki Official Github wiki]<br />
* [[Wikipedia::Flatpak|Wikipedia page]]<br />
* [https://wiki.gnome.org/Projects/SandboxedApps Gnome SandboxedApps]<br />
* [https://community.kde.org/Guidelines_and_HOWTOs/Flatpak KDE Testing Runtime and Applications]</div>Fvguilhermehttps://wiki.archlinux.org/index.php?title=Flatpak_(Portugu%C3%AAs)&diff=581831Flatpak (Português)2019-09-08T19:41:35Z<p>Fvguilherme: /* Criar uma base de runtime customizada */ minor fix</p>
<hr />
<div>[[Categoria:Desenvolvimento]]<br />
[[es:Flatpak]]<br />
[[ja:Flatpak]]<br />
[[pt:Flatpak]]<br />
{{StatusTradução|Flatpak|2019-08-09|23769}}<br />
{{Related articles start (Português)}}<br />
{{Related|Snapd}}<br />
{{Related|bubblewrap}}<br />
{{Related articles end}}<br />
Do projeto [https://github.com/flatpak/flatpak/blob/master/README.md README]: "''[http://flatpak.org Flatpak] é um sistema para construção, distribuição e execução de aplicações desktop sandboxed no Linux.''"<br />
<br />
De {{man|1|flatpak}}:<br />
<br />
:''Flatpak é uma ferramenta para gerenciar aplicações e os runtimes que elas usam. No modelo Flatpak, aplicações podem ser construídas e distribuídas independentemente do sistema hospedeiro em que elas estão usando, e elas são isoladas do sistema hospedeiro (‘sandboxed’) em algum grau, no runtime.''<br />
:''Flatpak usa [https://ostree.readthedocs.io/en/latest/ OSTree] para distribuir e implantar dados. Os repositórios que ele usa são repositórios OSTree epodem ser manipulados com a ferramenta ostree. Runtimes instalados e aplicações são checkouts do OSTree.''<br />
<br />
== Instalação ==<br />
<br />
[[Instale]] o pacote {{pkg|flatpak}}.<br />
<br />
{{Nota|Se você quer construir flatpaks com o {{ic|flatpak-builder}}, você precisará instalar as dependências opcionais {{pkg|elfutils}} e {{pkg|patch}}.}}<br />
<br />
== Gerenciar repositórios ==<br />
<br />
=== Adicionar um repositório ===<br />
<br />
Para adicionar um repositório flatpak remoto faça:<br />
<br />
$ flatpak remote-add ''nome'' ''localização''<br />
<br />
onde ''nome'' é o nome do novo remoto e ''localizaçã'' o é o caminho ou a URL do repositório. <br />
<br />
Por exemplo, para adicionar o [https://flathub.org/ repositório oficial Flathub]:<br />
<br />
$ flatpak remote-add --if-not-exists flathub <nowiki>https://dl.flathub.org/repo/flathub.flatpakrepo</nowiki><br />
<br />
=== Deletar repositórios ===<br />
<br />
Para deletar um repositório flatpak remoto faça:<br />
<br />
$ flatpak remote-delete ''nome''<br />
<br />
onde ''nome'' é o nome do repositório remoto a ser deletado.<br />
<br />
=== Listar repositórios ===<br />
<br />
Para listar todos os repositórios adicionados faça:<br />
<br />
$ flatpak remotes<br />
<br />
== Gerenciar runtimes e aplicações ==<br />
<br />
=== Procurar por um runtime ou aplicação ===<br />
<br />
Antes de estar pronto para procurar por um runtime ou aplicação em um novo repositório remoto adicionado, nós precisamos recuperar os dados appstream. Para isso:<br />
<br />
{{hc|$ flatpak update|<br />
Procurando por atualizações...<br />
Atualizando dados appstream para remote ''nome''<br />
}}<br />
<br />
Então nós podemos proceder para procurar por um pacote com {{ic|flatpak search ''nomedopacote''}}, ''e.g.'' para procurar pelo pacote {{ic|libreoffice}} com o {{ic|flathub}} remoto configurado:<br />
<br />
<br />
{{hc|$ flatpak search libreoffice|<br />
ID de aplicativo Versão Ramo Remotos Descrição <br />
org.libreoffice.LibreOffice stable flathub The LibreOffice productivity suite<br />
}}<br />
<br />
=== Listar todos os runtime ou aplicações disponíveis ===<br />
<br />
Para listar todos os runtimes e aplicações disponíveis em um repositório remoto nomeado como ''remoto'' faça: <br />
<br />
$ flatpak remote-ls ''remoto''<br />
<br />
=== Instalar um runtine ou aplicação ===<br />
<br />
Para instalar umruntime ou aplicação faça:<br />
<br />
$ flatpak install ''remoto'' ''nome''<br />
<br />
onde ''remoto'' é o nome do repositório remoto e ''nome'' é o nome da aplicação ou runtime a ser instalado.<br />
<br />
{{Dica|Você pode usar identificadores parciais {{ic|flatpak install ''nome-parcial''}} (por exemplo {{ic|flatpak install libreoffice}}).}}<br />
<br />
=== Listar os runtimes e aplicações instalados ===<br />
<br />
Para listar os runtimes e aplicações instaladas faça:<br />
<br />
$ flatpak list<br />
<br />
=== Rodar aplicações ===<br />
<br />
Aplicações Flatpak também podem ser executadas por linha de comando:<br />
<br />
$ flatpak run ''nome''<br />
<br />
=== Atualizar um runtime ou aplicação ===<br />
<br />
Para atualizar um runtime ou aplicação nomeada como ''nome'' faça:<br />
<br />
$ flatpak update ''name''<br />
<br />
=== Desinstalar um runtime ou aplicação ===<br />
<br />
Para desinstalar um runtime ou aplicação nomeado(a) como nome faça:<br />
<br />
$ flatpak uninstall ''name''<br />
<br />
{{Dica|Você pode desinstalar flatpak “refs” não utilizado (também conhecido como orfãos sem aplicação/runtime) com {{ic|flatpak unsinstall --unused}}.}}<br />
<br />
=== Adicionando arquivos .desktop Flatpak ao seu menu ===<br />
Flatpak espera que o gerenciador de janelas respeite a variável de ambiente XDG_DATA_DIRS para descobrir aplicações. Isso pode requerer que a sessão seja reiniciada ou o lançador pode não suportar isso. Nesse caso, onde você pode editar a lista de diretórios escaneados, adicionar isso a ela:<br />
<br />
~/.local/share/flatpak/exports/share/applications<br />
/var/lib/flatpak/exports/share/applications<br />
<br />
Isso é sabidamente necessário no Awesome.<br />
<br />
=== Vendo as permissões sandbox da aplicação ===<br />
Aplicações Flatpak vêm com regras sandbox pré-definidas que definem quais os recursos e os caminhos do sistema de arquivos a aplicação tem permissão para acessar. <br />
Para ver as permissões de uma aplicação específica faça:<br />
<br />
$ flatpak info --show-permissions ''name''<br />
A referência para os nomes das permissões sandbox podem ser encontradas na [https://docs.flatpak.org/en/latest/sandbox-permissions-reference.html/ documentação oficial do Flatpak.]<br />
<br />
=== Sobrescrevendo permissões sandbox de aplicações ===<br />
Se você acha que as permissões pré-definidas da aplicação é muito permissiva ou muito restritiva, você pode mudar para qualquer uma que quiser usando o comando {{ic|flatpak override}}.<br />
Por exemplo:<br />
$ flatpak override --nofilesystem=home ''name''<br />
Isso irá prevenir que a aplicação acesse a sua pasta home.<br />
<br />
Todo tipo de permissão como dispositivo, sistema de arquivo ou soquete tem um uma linha de comando que permite aquela permissão em particular e uma opção separada que nega. Por exemplo, no caso de acesso ao dispositivo {{ic|1=--device=device_''nome''}} permite o acesso, {{ic|1=--no-device=device_''nome''}} nega a permissão para acessar o dispositivo.<br />
<br />
Para todos os tipos de comandos de permissão consulte a página de manual: {{man|1|flatpak-override(1)}}.<br />
<br />
Substituições de permissão podem ser resetadas para o padrão com o comando:<br />
$ flatpak override --reset ''nome''<br />
<br />
== Criar uma base de runtime customizada ==<br />
<br />
{{Expansion|Isso certamente pode ser melhorado. Isso também tem problemas com D-Bus para apps do GNOME. (Discussão em [https://wiki.archlinux.org/index.php/Talk:Flatpak/ Talk:Flatpak#].}}<br />
<br />
{{Atenção|Se você quer lançar o seu software para o público como Flatpak, um runtime Arch-based é inadequado. Nesse caso, você precisará seguir a [http://docs.flatpak.org/ documentação oficial] para integrar seu software ao ecossistema adequado do Flatpak usando os [http://flatpak.org/runtimes.html/ runtimes comuns].}}<br />
<br />
{{Nota|Você pode querer usar uma conta não confiável e desprivilegiadas para construir software não confiável porque o software não é sandboxed durante a criação do app e do runtime.}}<br />
<br />
{{Nota|Quando distribuindo pacotes para outros, você pode ser legalmente obrigado a fornecer o código fonte de alguns dos softwares empacotados mediante solicitação. Vocẽ ode querer usar [[ABS_(Português)|ABS]] para construir tais pacotes a partir da fonte.}}<br />
<br />
Você pode criar uma base runtime Arch-based customizada e uma base SDK para Flatpak usando o pacman. Você pode, então, usá-las para criação e empacotamento de aplicações. Isso é uma alternativa para uso pessoal para o padrão {{ic|org.freedesktop.BasePlatform}} e {{ic|org.freedesktop.BaseSdk runtimes}}.<br />
<br />
Em adição ao {{Pkg|flatpak}}, você precisa ter instalado {{Pkg|fakeroot}} e {{Pkg|fakechroot}}, para suportar o pacman hooks.<br />
<br />
Primeiro, comece criando um diretório para criação do runtime e, possivelmente, aplicações.<br />
<br />
$ mkdir ''minhapastadecriacaoflatpak''<br />
$ cd ''minhapastadecriacaoflatpak''<br />
<br />
Você pode, então, preparar o diretório para a criação da plataforma base do runtime. Os arquivos do sub-diretório irão conter o que depois será o diretório {{ic|/usr}} no sandbox. Portanto, você precisará criar links simbólicos para o padrão {{ic|/etc/share}} etc. do Arch ainda possa ser acessado no caminho usual.<br />
<br />
$ mkdir -p ''meuruntime''/files/var/lib/pacman<br />
$ touch ''meuruntime''/files/.ref<br />
$ ln -s /usr/usr/share ''meuruntime''/files/share<br />
$ ln -s /usr/usr/include ''meuruntime''/files/include<br />
$ ln -s /usr/usr/local ''meuruntime''/files/local<br />
<br />
Certifique-se que as fontes disponíveis pelo seu SO host para o runtime do Arch:<br />
<br />
$ mkdir -p ''meuruntime''/files/usr/share/fonts<br />
$ ln -s /run/host/fonts ''meuruntime''/files/usr/share/fonts/flatpakhostfonts<br />
<br />
Você precisa e talvez queira adaptar o seu {{ic|pacman.conf}} antes de instalar pacotes no runtime. Copie o {{ic|/etc/pacman.conf}} para o seu diretório de criação e então faça as seguintes mudanças:<br />
<br />
* Remova a opção {{ic|CheckSpace}} e então o pacman não reclamará sobre erros ao encontrar a raíz do sistema de arquivo para checar o espaço de disco.<br />
* Remova quaisquer repositórios customizados indesejados e as configurações {{ic|IgnorePkg}}, {{ic|IgnoreGroup}}, {{ic|NoUpgrade}} e {{ic|NoExtract}}, que são necessárias somente para o sistema hospedeiro.<br />
<br />
<br />
Agora instale os pacotes para o runtime.<br />
<br />
$ fakechroot fakeroot pacman -Syu --root ''meuruntime''/files --dbpath ''meuruntime''/files/var/lib/pacman --config pacman.conf base<br />
$ mv pacman.conf ''meuruntime''/files/etc/pacman.conf<br />
<br />
Configure os [[Locale_(Português)|locales]] a serem usados editando {{ic|''meuruntime''/files/etc/locale.gen}}. Então, regenere os locales do runtime.<br />
<br />
$ fakechroot chroot ''meuruntime''/files locale-gen<br />
<br />
A base SDK pode ser criada a partir da base runtime com adição de aplicações necessárias para a criação de pacotes e executar o pacman.<br />
<br />
$ cp -r ''meuruntime'' mysdk<br />
$ fakechroot fakeroot pacman -S --root mysdk/files --dbpath mysdk/files/var/lib/pacman --config meusdk/files/etc/pacman.conf base-devel fakeroot fakechroot --needed<br />
<br />
Insira metadados sobre runtime e SDK.<br />
<br />
{{hc|''meuruntime''/metadados|2=<br />
[Runtime]<br />
name=org.mydomain.BasePlatform<br />
runtime=org.mydomain.BasePlatform/x86_64/2016-06-26<br />
sdk=org.mydomain.BaseSdk/x86_64/2016-06-26<br />
}}<br />
<br />
{{hc|meusdk/metadados|2=<br />
[Runtime]<br />
name=org.mydomain.BaseSdk<br />
runtime=org.mydomain.BasePlatform/x86_64/2016-06-26<br />
sdk=org.mydomain.BaseSdk/x86_64/2016-06-26<br />
}}<br />
<br />
Adicione as bases runtime e SDK para um repositório local no diretório atual. Você pode querer dar para eles mensagens commit apropriadas como, por exemplo, “Minha base runtime Arch” e “Minha base SDK Arch”.<br />
<br />
$ ostree init --mode archive-z2 --repo=.<br />
$ EDITOR="nano -w" ostree commit -b runtime/org.mydomain.BasePlatform/x86_64/2016-06-26 --tree=dir=''meuruntime''<br />
$ EDITOR="nano -w" ostree commit -b runtime/org.mydomain.BaseSdk/x86_64/2016-06-26 --tree=dir=meusdk<br />
$ ostree summary -u<br />
<br />
Instale o runtime e o SDK.<br />
<br />
$ flatpak remote-add --user --no-gpg-verify myarchos file://$(pwd)<br />
$ flatpak install --user myarchos org.mydomain.BasePlatform 2016-06-26<br />
$ flatpak install --user myarchos org.mydomain.BaseSdk 2016-06-26<br />
<br />
=== Criar apps com o pacman ===<br />
<br />
Como uma alternativa para a criação de aplicação da [http://flatpak.org/developer.html forma comum], nós podemos usar o pacman para criar uma versão em contêiner dos pacotes comuns do Arch. Note que {{ic|/usr}} é somente-leitura quando criando apps, então nós não podemos usar os pacotes do Arch quando da criação de um app. Para criar um app real com o pacman, nós podemos também:<br />
<br />
* Usar o pacman para criar um runtime contendos todas as dependẽncias<br />
* e compilar os apps [http://flatpak.org/developer.html como sempre] ou talvez usando o pacman para criar um [[PKGBUILD_(Português)|PKGBUILD]] customizado e adaptado ao Flatpak, o qual usa {{ic|1=--prefix=/app}} para o script {{ic|configure}},<br />
<br />
ou nós podemos<br />
* usar o pacman para criar o runtime contendo o app instalado com o pacman<br />
* e criar um app dummy para executá-lo.<br />
<br />
Por último, primeiro crie um runtime usando o pacman como esse para o {{Pkg|gedit}}. O runtime é primeiramente inicializado e preparado para uso com o pacman.<br />
<br />
$ flatpak build-init -w geditruntime org.mydomain.geditruntime org.mydomain.BaseSdk org.mydomain.BasePlatform 2016-06-26<br />
$ flatpak build geditruntime sed -i "s/^#Server/Server/g" /etc/pacman.d/mirrorlist<br />
$ flatpak build geditruntime ln -s /usr/var/lib /var/lib<br />
$ flatpak build geditruntime fakeroot pacman-key --init<br />
$ flatpak build geditruntime fakeroot pacman-key --populate archlinux<br />
<br />
Então o pacote está instalado. A conexão da rede hospedeira deve estar disponível para o pacman.<br />
<br />
$ flatpak build --share=network geditruntime fakechroot fakeroot pacman --root /usr -S gedit<br />
<br />
Você pode testar a aplicação antes de finalizar o runtime (sem o sandboxing apropriado).<br />
<br />
$ flatpak build --socket=x11 geditruntime gedit<br />
<br />
Agora termine criando o runtime e exporte-o para um novo repositório local. As chaves GnuPG do pacman têm permissões que podem interferir e precisam ser removidas primeiro.<br />
<br />
$ flatpak build geditruntime rm -r /etc/pacman.d/gnupg<br />
$ flatpak build-finish geditruntime<br />
$ sed -i "s/\[Application\]/\[Runtime\]/;s/runtime=org.mydomain.BasePlatform/runtime=org.mydomain.geditruntime/" geditruntime/metadata<br />
$ flatpak build-export -r geditrepo geditruntime<br />
<br />
Então crie o app dummy.<br />
<br />
$ flatpak build-init geditapp org.gnome.gedit org.mydomain.BaseSdk org.mydomain.geditruntime<br />
<br />
Agora termine criando o app dummy. Você pode ajustar as permissões de acesso quando sandboxed dando opções adicionais ao terminar de criar. Para possíveis opções veja a [[#Veja também|documentação do Flatpak]] e os [https://gitlab.gnome.org/GNOME/gnome-apps-nightly/tree/master/ arquivos de manifesto do GNOME]. Alternativamente, adapte {{ic|geditapp/metadata}} para as suas necessidades após terminar de criar, mas antes de exportar. Quando os arquivos de metadados estiver concluído, exporte o app para o repositório.<br />
<br />
$ flatpak build-finish geditapp --socket=x11 ''[possibly other options]'' --command=gedit<br />
$ flatpak build-export geditrepo geditapp<br />
<br />
Instale-o junto com o runtime.<br />
<br />
$ flatpak --user remote-add --no-gpg-verify geditrepo geditrepo<br />
$ flatpak install --user geditrepo org.mydomain.geditruntime<br />
$ flatpak install --user geditrepo org.gnome.gedit<br />
$ flatpak run org.gnome.gedit<br />
<br />
== Veja também ==<br />
<br />
* [http://flatpak.org Official website]<br />
* [https://github.com/flatpak/flatpak/wiki Official Github wiki]<br />
* [[Wikipedia::Flatpak|Wikipedia page]]<br />
* [https://wiki.gnome.org/Projects/SandboxedApps Gnome SandboxedApps]<br />
* [https://community.kde.org/Guidelines_and_HOWTOs/Flatpak KDE Testing Runtime and Applications]</div>Fvguilhermehttps://wiki.archlinux.org/index.php?title=Flatpak_(Portugu%C3%AAs)&diff=581830Flatpak (Português)2019-09-08T19:41:09Z<p>Fvguilherme: /* Criar uma base de runtime customizada */ minor fix</p>
<hr />
<div>[[Categoria:Desenvolvimento]]<br />
[[es:Flatpak]]<br />
[[ja:Flatpak]]<br />
[[pt:Flatpak]]<br />
{{StatusTradução|Flatpak|2019-08-09|23769}}<br />
{{Related articles start (Português)}}<br />
{{Related|Snapd}}<br />
{{Related|bubblewrap}}<br />
{{Related articles end}}<br />
Do projeto [https://github.com/flatpak/flatpak/blob/master/README.md README]: "''[http://flatpak.org Flatpak] é um sistema para construção, distribuição e execução de aplicações desktop sandboxed no Linux.''"<br />
<br />
De {{man|1|flatpak}}:<br />
<br />
:''Flatpak é uma ferramenta para gerenciar aplicações e os runtimes que elas usam. No modelo Flatpak, aplicações podem ser construídas e distribuídas independentemente do sistema hospedeiro em que elas estão usando, e elas são isoladas do sistema hospedeiro (‘sandboxed’) em algum grau, no runtime.''<br />
:''Flatpak usa [https://ostree.readthedocs.io/en/latest/ OSTree] para distribuir e implantar dados. Os repositórios que ele usa são repositórios OSTree epodem ser manipulados com a ferramenta ostree. Runtimes instalados e aplicações são checkouts do OSTree.''<br />
<br />
== Instalação ==<br />
<br />
[[Instale]] o pacote {{pkg|flatpak}}.<br />
<br />
{{Nota|Se você quer construir flatpaks com o {{ic|flatpak-builder}}, você precisará instalar as dependências opcionais {{pkg|elfutils}} e {{pkg|patch}}.}}<br />
<br />
== Gerenciar repositórios ==<br />
<br />
=== Adicionar um repositório ===<br />
<br />
Para adicionar um repositório flatpak remoto faça:<br />
<br />
$ flatpak remote-add ''nome'' ''localização''<br />
<br />
onde ''nome'' é o nome do novo remoto e ''localizaçã'' o é o caminho ou a URL do repositório. <br />
<br />
Por exemplo, para adicionar o [https://flathub.org/ repositório oficial Flathub]:<br />
<br />
$ flatpak remote-add --if-not-exists flathub <nowiki>https://dl.flathub.org/repo/flathub.flatpakrepo</nowiki><br />
<br />
=== Deletar repositórios ===<br />
<br />
Para deletar um repositório flatpak remoto faça:<br />
<br />
$ flatpak remote-delete ''nome''<br />
<br />
onde ''nome'' é o nome do repositório remoto a ser deletado.<br />
<br />
=== Listar repositórios ===<br />
<br />
Para listar todos os repositórios adicionados faça:<br />
<br />
$ flatpak remotes<br />
<br />
== Gerenciar runtimes e aplicações ==<br />
<br />
=== Procurar por um runtime ou aplicação ===<br />
<br />
Antes de estar pronto para procurar por um runtime ou aplicação em um novo repositório remoto adicionado, nós precisamos recuperar os dados appstream. Para isso:<br />
<br />
{{hc|$ flatpak update|<br />
Procurando por atualizações...<br />
Atualizando dados appstream para remote ''nome''<br />
}}<br />
<br />
Então nós podemos proceder para procurar por um pacote com {{ic|flatpak search ''nomedopacote''}}, ''e.g.'' para procurar pelo pacote {{ic|libreoffice}} com o {{ic|flathub}} remoto configurado:<br />
<br />
<br />
{{hc|$ flatpak search libreoffice|<br />
ID de aplicativo Versão Ramo Remotos Descrição <br />
org.libreoffice.LibreOffice stable flathub The LibreOffice productivity suite<br />
}}<br />
<br />
=== Listar todos os runtime ou aplicações disponíveis ===<br />
<br />
Para listar todos os runtimes e aplicações disponíveis em um repositório remoto nomeado como ''remoto'' faça: <br />
<br />
$ flatpak remote-ls ''remoto''<br />
<br />
=== Instalar um runtine ou aplicação ===<br />
<br />
Para instalar umruntime ou aplicação faça:<br />
<br />
$ flatpak install ''remoto'' ''nome''<br />
<br />
onde ''remoto'' é o nome do repositório remoto e ''nome'' é o nome da aplicação ou runtime a ser instalado.<br />
<br />
{{Dica|Você pode usar identificadores parciais {{ic|flatpak install ''nome-parcial''}} (por exemplo {{ic|flatpak install libreoffice}}).}}<br />
<br />
=== Listar os runtimes e aplicações instalados ===<br />
<br />
Para listar os runtimes e aplicações instaladas faça:<br />
<br />
$ flatpak list<br />
<br />
=== Rodar aplicações ===<br />
<br />
Aplicações Flatpak também podem ser executadas por linha de comando:<br />
<br />
$ flatpak run ''nome''<br />
<br />
=== Atualizar um runtime ou aplicação ===<br />
<br />
Para atualizar um runtime ou aplicação nomeada como ''nome'' faça:<br />
<br />
$ flatpak update ''name''<br />
<br />
=== Desinstalar um runtime ou aplicação ===<br />
<br />
Para desinstalar um runtime ou aplicação nomeado(a) como nome faça:<br />
<br />
$ flatpak uninstall ''name''<br />
<br />
{{Dica|Você pode desinstalar flatpak “refs” não utilizado (também conhecido como orfãos sem aplicação/runtime) com {{ic|flatpak unsinstall --unused}}.}}<br />
<br />
=== Adicionando arquivos .desktop Flatpak ao seu menu ===<br />
Flatpak espera que o gerenciador de janelas respeite a variável de ambiente XDG_DATA_DIRS para descobrir aplicações. Isso pode requerer que a sessão seja reiniciada ou o lançador pode não suportar isso. Nesse caso, onde você pode editar a lista de diretórios escaneados, adicionar isso a ela:<br />
<br />
~/.local/share/flatpak/exports/share/applications<br />
/var/lib/flatpak/exports/share/applications<br />
<br />
Isso é sabidamente necessário no Awesome.<br />
<br />
=== Vendo as permissões sandbox da aplicação ===<br />
Aplicações Flatpak vêm com regras sandbox pré-definidas que definem quais os recursos e os caminhos do sistema de arquivos a aplicação tem permissão para acessar. <br />
Para ver as permissões de uma aplicação específica faça:<br />
<br />
$ flatpak info --show-permissions ''name''<br />
A referência para os nomes das permissões sandbox podem ser encontradas na [https://docs.flatpak.org/en/latest/sandbox-permissions-reference.html/ documentação oficial do Flatpak.]<br />
<br />
=== Sobrescrevendo permissões sandbox de aplicações ===<br />
Se você acha que as permissões pré-definidas da aplicação é muito permissiva ou muito restritiva, você pode mudar para qualquer uma que quiser usando o comando {{ic|flatpak override}}.<br />
Por exemplo:<br />
$ flatpak override --nofilesystem=home ''name''<br />
Isso irá prevenir que a aplicação acesse a sua pasta home.<br />
<br />
Todo tipo de permissão como dispositivo, sistema de arquivo ou soquete tem um uma linha de comando que permite aquela permissão em particular e uma opção separada que nega. Por exemplo, no caso de acesso ao dispositivo {{ic|1=--device=device_''nome''}} permite o acesso, {{ic|1=--no-device=device_''nome''}} nega a permissão para acessar o dispositivo.<br />
<br />
Para todos os tipos de comandos de permissão consulte a página de manual: {{man|1|flatpak-override(1)}}.<br />
<br />
Substituições de permissão podem ser resetadas para o padrão com o comando:<br />
$ flatpak override --reset ''nome''<br />
<br />
== Criar uma base de runtime customizada ==<br />
<br />
{{Expansion|Isso certamente pode ser melhorado. Isso também tem problemas com D-Bus para apps do GNOME. (Discussão em [https://wiki.archlinux.org/index.php/Talk:Flatpak/ Talk:Flatpak#].}}<br />
<br />
{{Atenção|Se você quer lançar o seu software para o público como Flatpak, um runtime Arch-based é inadequada. Nesse caso, você precisará seguir a [http://docs.flatpak.org/ documentação oficial] para integrar seu software ao ecossistema adequado do Flatpak usando os [http://flatpak.org/runtimes.html/ runtimes comuns].}}<br />
<br />
{{Nota|Você pode querer usar uma conta não confiável e desprivilegiadas para construir software não confiável porque o software não é sandboxed durante a criação do app e do runtime.}}<br />
<br />
{{Nota|Quando distribuindo pacotes para outros, você pode ser legalmente obrigado a fornecer o código fonte de alguns dos softwares empacotados mediante solicitação. Vocẽ ode querer usar [[ABS_(Português)|ABS]] para construir tais pacotes a partir da fonte.}}<br />
<br />
Você pode criar uma base runtime Arch-based customizada e uma base SDK para Flatpak usando o pacman. Você pode, então, usá-las para criação e empacotamento de aplicações. Isso é uma alternativa para uso pessoal para o padrão {{ic|org.freedesktop.BasePlatform}} e {{ic|org.freedesktop.BaseSdk runtimes}}.<br />
<br />
Em adição ao {{Pkg|flatpak}}, você precisa ter instalado {{Pkg|fakeroot}} e {{Pkg|fakechroot}}, para suportar o pacman hooks.<br />
<br />
Primeiro, comece criando um diretório para criação do runtime e, possivelmente, aplicações.<br />
<br />
$ mkdir ''minhapastadecriacaoflatpak''<br />
$ cd ''minhapastadecriacaoflatpak''<br />
<br />
Você pode, então, preparar o diretório para a criação da plataforma base do runtime. Os arquivos do sub-diretório irão conter o que depois será o diretório {{ic|/usr}} no sandbox. Portanto, você precisará criar links simbólicos para o padrão {{ic|/etc/share}} etc. do Arch ainda possa ser acessado no caminho usual.<br />
<br />
$ mkdir -p ''meuruntime''/files/var/lib/pacman<br />
$ touch ''meuruntime''/files/.ref<br />
$ ln -s /usr/usr/share ''meuruntime''/files/share<br />
$ ln -s /usr/usr/include ''meuruntime''/files/include<br />
$ ln -s /usr/usr/local ''meuruntime''/files/local<br />
<br />
Certifique-se que as fontes disponíveis pelo seu SO host para o runtime do Arch:<br />
<br />
$ mkdir -p ''meuruntime''/files/usr/share/fonts<br />
$ ln -s /run/host/fonts ''meuruntime''/files/usr/share/fonts/flatpakhostfonts<br />
<br />
Você precisa e talvez queira adaptar o seu {{ic|pacman.conf}} antes de instalar pacotes no runtime. Copie o {{ic|/etc/pacman.conf}} para o seu diretório de criação e então faça as seguintes mudanças:<br />
<br />
* Remova a opção {{ic|CheckSpace}} e então o pacman não reclamará sobre erros ao encontrar a raíz do sistema de arquivo para checar o espaço de disco.<br />
* Remova quaisquer repositórios customizados indesejados e as configurações {{ic|IgnorePkg}}, {{ic|IgnoreGroup}}, {{ic|NoUpgrade}} e {{ic|NoExtract}}, que são necessárias somente para o sistema hospedeiro.<br />
<br />
<br />
Agora instale os pacotes para o runtime.<br />
<br />
$ fakechroot fakeroot pacman -Syu --root ''meuruntime''/files --dbpath ''meuruntime''/files/var/lib/pacman --config pacman.conf base<br />
$ mv pacman.conf ''meuruntime''/files/etc/pacman.conf<br />
<br />
Configure os [[Locale_(Português)|locales]] a serem usados editando {{ic|''meuruntime''/files/etc/locale.gen}}. Então, regenere os locales do runtime.<br />
<br />
$ fakechroot chroot ''meuruntime''/files locale-gen<br />
<br />
A base SDK pode ser criada a partir da base runtime com adição de aplicações necessárias para a criação de pacotes e executar o pacman.<br />
<br />
$ cp -r ''meuruntime'' mysdk<br />
$ fakechroot fakeroot pacman -S --root mysdk/files --dbpath mysdk/files/var/lib/pacman --config meusdk/files/etc/pacman.conf base-devel fakeroot fakechroot --needed<br />
<br />
Insira metadados sobre runtime e SDK.<br />
<br />
{{hc|''meuruntime''/metadados|2=<br />
[Runtime]<br />
name=org.mydomain.BasePlatform<br />
runtime=org.mydomain.BasePlatform/x86_64/2016-06-26<br />
sdk=org.mydomain.BaseSdk/x86_64/2016-06-26<br />
}}<br />
<br />
{{hc|meusdk/metadados|2=<br />
[Runtime]<br />
name=org.mydomain.BaseSdk<br />
runtime=org.mydomain.BasePlatform/x86_64/2016-06-26<br />
sdk=org.mydomain.BaseSdk/x86_64/2016-06-26<br />
}}<br />
<br />
Adicione as bases runtime e SDK para um repositório local no diretório atual. Você pode querer dar para eles mensagens commit apropriadas como, por exemplo, “Minha base runtime Arch” e “Minha base SDK Arch”.<br />
<br />
$ ostree init --mode archive-z2 --repo=.<br />
$ EDITOR="nano -w" ostree commit -b runtime/org.mydomain.BasePlatform/x86_64/2016-06-26 --tree=dir=''meuruntime''<br />
$ EDITOR="nano -w" ostree commit -b runtime/org.mydomain.BaseSdk/x86_64/2016-06-26 --tree=dir=meusdk<br />
$ ostree summary -u<br />
<br />
Instale o runtime e o SDK.<br />
<br />
$ flatpak remote-add --user --no-gpg-verify myarchos file://$(pwd)<br />
$ flatpak install --user myarchos org.mydomain.BasePlatform 2016-06-26<br />
$ flatpak install --user myarchos org.mydomain.BaseSdk 2016-06-26<br />
<br />
=== Criar apps com o pacman ===<br />
<br />
Como uma alternativa para a criação de aplicação da [http://flatpak.org/developer.html forma comum], nós podemos usar o pacman para criar uma versão em contêiner dos pacotes comuns do Arch. Note que {{ic|/usr}} é somente-leitura quando criando apps, então nós não podemos usar os pacotes do Arch quando da criação de um app. Para criar um app real com o pacman, nós podemos também:<br />
<br />
* Usar o pacman para criar um runtime contendos todas as dependẽncias<br />
* e compilar os apps [http://flatpak.org/developer.html como sempre] ou talvez usando o pacman para criar um [[PKGBUILD_(Português)|PKGBUILD]] customizado e adaptado ao Flatpak, o qual usa {{ic|1=--prefix=/app}} para o script {{ic|configure}},<br />
<br />
ou nós podemos<br />
* usar o pacman para criar o runtime contendo o app instalado com o pacman<br />
* e criar um app dummy para executá-lo.<br />
<br />
Por último, primeiro crie um runtime usando o pacman como esse para o {{Pkg|gedit}}. O runtime é primeiramente inicializado e preparado para uso com o pacman.<br />
<br />
$ flatpak build-init -w geditruntime org.mydomain.geditruntime org.mydomain.BaseSdk org.mydomain.BasePlatform 2016-06-26<br />
$ flatpak build geditruntime sed -i "s/^#Server/Server/g" /etc/pacman.d/mirrorlist<br />
$ flatpak build geditruntime ln -s /usr/var/lib /var/lib<br />
$ flatpak build geditruntime fakeroot pacman-key --init<br />
$ flatpak build geditruntime fakeroot pacman-key --populate archlinux<br />
<br />
Então o pacote está instalado. A conexão da rede hospedeira deve estar disponível para o pacman.<br />
<br />
$ flatpak build --share=network geditruntime fakechroot fakeroot pacman --root /usr -S gedit<br />
<br />
Você pode testar a aplicação antes de finalizar o runtime (sem o sandboxing apropriado).<br />
<br />
$ flatpak build --socket=x11 geditruntime gedit<br />
<br />
Agora termine criando o runtime e exporte-o para um novo repositório local. As chaves GnuPG do pacman têm permissões que podem interferir e precisam ser removidas primeiro.<br />
<br />
$ flatpak build geditruntime rm -r /etc/pacman.d/gnupg<br />
$ flatpak build-finish geditruntime<br />
$ sed -i "s/\[Application\]/\[Runtime\]/;s/runtime=org.mydomain.BasePlatform/runtime=org.mydomain.geditruntime/" geditruntime/metadata<br />
$ flatpak build-export -r geditrepo geditruntime<br />
<br />
Então crie o app dummy.<br />
<br />
$ flatpak build-init geditapp org.gnome.gedit org.mydomain.BaseSdk org.mydomain.geditruntime<br />
<br />
Agora termine criando o app dummy. Você pode ajustar as permissões de acesso quando sandboxed dando opções adicionais ao terminar de criar. Para possíveis opções veja a [[#Veja também|documentação do Flatpak]] e os [https://gitlab.gnome.org/GNOME/gnome-apps-nightly/tree/master/ arquivos de manifesto do GNOME]. Alternativamente, adapte {{ic|geditapp/metadata}} para as suas necessidades após terminar de criar, mas antes de exportar. Quando os arquivos de metadados estiver concluído, exporte o app para o repositório.<br />
<br />
$ flatpak build-finish geditapp --socket=x11 ''[possibly other options]'' --command=gedit<br />
$ flatpak build-export geditrepo geditapp<br />
<br />
Instale-o junto com o runtime.<br />
<br />
$ flatpak --user remote-add --no-gpg-verify geditrepo geditrepo<br />
$ flatpak install --user geditrepo org.mydomain.geditruntime<br />
$ flatpak install --user geditrepo org.gnome.gedit<br />
$ flatpak run org.gnome.gedit<br />
<br />
== Veja também ==<br />
<br />
* [http://flatpak.org Official website]<br />
* [https://github.com/flatpak/flatpak/wiki Official Github wiki]<br />
* [[Wikipedia::Flatpak|Wikipedia page]]<br />
* [https://wiki.gnome.org/Projects/SandboxedApps Gnome SandboxedApps]<br />
* [https://community.kde.org/Guidelines_and_HOWTOs/Flatpak KDE Testing Runtime and Applications]</div>Fvguilhermehttps://wiki.archlinux.org/index.php?title=Flatpak_(Portugu%C3%AAs)&diff=581829Flatpak (Português)2019-09-08T19:39:41Z<p>Fvguilherme: /* Criar uma base de runtime customizada */ minor fixes</p>
<hr />
<div>[[Categoria:Desenvolvimento]]<br />
[[es:Flatpak]]<br />
[[ja:Flatpak]]<br />
[[pt:Flatpak]]<br />
{{StatusTradução|Flatpak|2019-08-09|23769}}<br />
{{Related articles start (Português)}}<br />
{{Related|Snapd}}<br />
{{Related|bubblewrap}}<br />
{{Related articles end}}<br />
Do projeto [https://github.com/flatpak/flatpak/blob/master/README.md README]: "''[http://flatpak.org Flatpak] é um sistema para construção, distribuição e execução de aplicações desktop sandboxed no Linux.''"<br />
<br />
De {{man|1|flatpak}}:<br />
<br />
:''Flatpak é uma ferramenta para gerenciar aplicações e os runtimes que elas usam. No modelo Flatpak, aplicações podem ser construídas e distribuídas independentemente do sistema hospedeiro em que elas estão usando, e elas são isoladas do sistema hospedeiro (‘sandboxed’) em algum grau, no runtime.''<br />
:''Flatpak usa [https://ostree.readthedocs.io/en/latest/ OSTree] para distribuir e implantar dados. Os repositórios que ele usa são repositórios OSTree epodem ser manipulados com a ferramenta ostree. Runtimes instalados e aplicações são checkouts do OSTree.''<br />
<br />
== Instalação ==<br />
<br />
[[Instale]] o pacote {{pkg|flatpak}}.<br />
<br />
{{Nota|Se você quer construir flatpaks com o {{ic|flatpak-builder}}, você precisará instalar as dependências opcionais {{pkg|elfutils}} e {{pkg|patch}}.}}<br />
<br />
== Gerenciar repositórios ==<br />
<br />
=== Adicionar um repositório ===<br />
<br />
Para adicionar um repositório flatpak remoto faça:<br />
<br />
$ flatpak remote-add ''nome'' ''localização''<br />
<br />
onde ''nome'' é o nome do novo remoto e ''localizaçã'' o é o caminho ou a URL do repositório. <br />
<br />
Por exemplo, para adicionar o [https://flathub.org/ repositório oficial Flathub]:<br />
<br />
$ flatpak remote-add --if-not-exists flathub <nowiki>https://dl.flathub.org/repo/flathub.flatpakrepo</nowiki><br />
<br />
=== Deletar repositórios ===<br />
<br />
Para deletar um repositório flatpak remoto faça:<br />
<br />
$ flatpak remote-delete ''nome''<br />
<br />
onde ''nome'' é o nome do repositório remoto a ser deletado.<br />
<br />
=== Listar repositórios ===<br />
<br />
Para listar todos os repositórios adicionados faça:<br />
<br />
$ flatpak remotes<br />
<br />
== Gerenciar runtimes e aplicações ==<br />
<br />
=== Procurar por um runtime ou aplicação ===<br />
<br />
Antes de estar pronto para procurar por um runtime ou aplicação em um novo repositório remoto adicionado, nós precisamos recuperar os dados appstream. Para isso:<br />
<br />
{{hc|$ flatpak update|<br />
Procurando por atualizações...<br />
Atualizando dados appstream para remote ''nome''<br />
}}<br />
<br />
Então nós podemos proceder para procurar por um pacote com {{ic|flatpak search ''nomedopacote''}}, ''e.g.'' para procurar pelo pacote {{ic|libreoffice}} com o {{ic|flathub}} remoto configurado:<br />
<br />
<br />
{{hc|$ flatpak search libreoffice|<br />
ID de aplicativo Versão Ramo Remotos Descrição <br />
org.libreoffice.LibreOffice stable flathub The LibreOffice productivity suite<br />
}}<br />
<br />
=== Listar todos os runtime ou aplicações disponíveis ===<br />
<br />
Para listar todos os runtimes e aplicações disponíveis em um repositório remoto nomeado como ''remoto'' faça: <br />
<br />
$ flatpak remote-ls ''remoto''<br />
<br />
=== Instalar um runtine ou aplicação ===<br />
<br />
Para instalar umruntime ou aplicação faça:<br />
<br />
$ flatpak install ''remoto'' ''nome''<br />
<br />
onde ''remoto'' é o nome do repositório remoto e ''nome'' é o nome da aplicação ou runtime a ser instalado.<br />
<br />
{{Dica|Você pode usar identificadores parciais {{ic|flatpak install ''nome-parcial''}} (por exemplo {{ic|flatpak install libreoffice}}).}}<br />
<br />
=== Listar os runtimes e aplicações instalados ===<br />
<br />
Para listar os runtimes e aplicações instaladas faça:<br />
<br />
$ flatpak list<br />
<br />
=== Rodar aplicações ===<br />
<br />
Aplicações Flatpak também podem ser executadas por linha de comando:<br />
<br />
$ flatpak run ''nome''<br />
<br />
=== Atualizar um runtime ou aplicação ===<br />
<br />
Para atualizar um runtime ou aplicação nomeada como ''nome'' faça:<br />
<br />
$ flatpak update ''name''<br />
<br />
=== Desinstalar um runtime ou aplicação ===<br />
<br />
Para desinstalar um runtime ou aplicação nomeado(a) como nome faça:<br />
<br />
$ flatpak uninstall ''name''<br />
<br />
{{Dica|Você pode desinstalar flatpak “refs” não utilizado (também conhecido como orfãos sem aplicação/runtime) com {{ic|flatpak unsinstall --unused}}.}}<br />
<br />
=== Adicionando arquivos .desktop Flatpak ao seu menu ===<br />
Flatpak espera que o gerenciador de janelas respeite a variável de ambiente XDG_DATA_DIRS para descobrir aplicações. Isso pode requerer que a sessão seja reiniciada ou o lançador pode não suportar isso. Nesse caso, onde você pode editar a lista de diretórios escaneados, adicionar isso a ela:<br />
<br />
~/.local/share/flatpak/exports/share/applications<br />
/var/lib/flatpak/exports/share/applications<br />
<br />
Isso é sabidamente necessário no Awesome.<br />
<br />
=== Vendo as permissões sandbox da aplicação ===<br />
Aplicações Flatpak vêm com regras sandbox pré-definidas que definem quais os recursos e os caminhos do sistema de arquivos a aplicação tem permissão para acessar. <br />
Para ver as permissões de uma aplicação específica faça:<br />
<br />
$ flatpak info --show-permissions ''name''<br />
A referência para os nomes das permissões sandbox podem ser encontradas na [https://docs.flatpak.org/en/latest/sandbox-permissions-reference.html/ documentação oficial do Flatpak.]<br />
<br />
=== Sobrescrevendo permissões sandbox de aplicações ===<br />
Se você acha que as permissões pré-definidas da aplicação é muito permissiva ou muito restritiva, você pode mudar para qualquer uma que quiser usando o comando {{ic|flatpak override}}.<br />
Por exemplo:<br />
$ flatpak override --nofilesystem=home ''name''<br />
Isso irá prevenir que a aplicação acesse a sua pasta home.<br />
<br />
Todo tipo de permissão como dispositivo, sistema de arquivo ou soquete tem um uma linha de comando que permite aquela permissão em particular e uma opção separada que nega. Por exemplo, no caso de acesso ao dispositivo {{ic|1=--device=device_''nome''}} permite o acesso, {{ic|1=--no-device=device_''nome''}} nega a permissão para acessar o dispositivo.<br />
<br />
Para todos os tipos de comandos de permissão consulte a página de manual: {{man|1|flatpak-override(1)}}.<br />
<br />
Substituições de permissão podem ser resetadas para o padrão com o comando:<br />
$ flatpak override --reset ''nome''<br />
<br />
== Criar uma base de runtime customizada ==<br />
<br />
{{Expansion|Isso certamente pode ser melhorado. Isso também tem problemas com D-Bus para apps do GNOME. (Discussão em [https://wiki.archlinux.org/index.php/Talk:Flatpak/ Talk:Flatpak#].}}<br />
<br />
{{Aviso|Se você quer lançar o seu software para o público como Flatpak, um runtime Arch-based é inadequada. Nesse caso, você precisará seguir a [http://docs.flatpak.org/ documentação oficial] para integrar seu software ao ecossistema adequado do Flatpak usando os [http://flatpak.org/runtimes.html/ runtimes comuns].}}<br />
<br />
{{Nota|Você pode querer usar uma conta não confiável e desprivilegiadas para construir software não confiável porque o software não é sandboxed durante a criação do app e do runtime.}}<br />
<br />
{{Nota|Quando distribuindo pacotes para outros, você pode ser legalmente obrigado a fornecer o código fonte de alguns dos softwares empacotados mediante solicitação. Vocẽ ode querer usar [[ABS_(Português)|ABS]] para construir tais pacotes a partir da fonte.}}<br />
<br />
Você pode criar uma base runtime Arch-based customizada e uma base SDK para Flatpak usando o pacman. Você pode, então, usá-las para criação e empacotamento de aplicações. Isso é uma alternativa para uso pessoal para o padrão {{ic|org.freedesktop.BasePlatform}} e {{ic|org.freedesktop.BaseSdk runtimes}}.<br />
<br />
Em adição ao {{Pkg|flatpak}}, você precisa ter instalado {{Pkg|fakeroot}} e {{Pkg|fakechroot}}, para suportar o pacman hooks.<br />
<br />
Primeiro, comece criando um diretório para criação do runtime e, possivelmente, aplicações.<br />
<br />
$ mkdir ''minhapastadecriacaoflatpak''<br />
$ cd ''minhapastadecriacaoflatpak''<br />
<br />
Você pode, então, preparar o diretório para a criação da plataforma base do runtime. Os arquivos do sub-diretório irão conter o que depois será o diretório {{ic|/usr}} no sandbox. Portanto, você precisará criar links simbólicos para o padrão {{ic|/etc/share}} etc. do Arch ainda possa ser acessado no caminho usual.<br />
<br />
$ mkdir -p ''meuruntime''/files/var/lib/pacman<br />
$ touch ''meuruntime''/files/.ref<br />
$ ln -s /usr/usr/share ''meuruntime''/files/share<br />
$ ln -s /usr/usr/include ''meuruntime''/files/include<br />
$ ln -s /usr/usr/local ''meuruntime''/files/local<br />
<br />
Certifique-se que as fontes disponíveis pelo seu SO host para o runtime do Arch:<br />
<br />
$ mkdir -p ''meuruntime''/files/usr/share/fonts<br />
$ ln -s /run/host/fonts ''meuruntime''/files/usr/share/fonts/flatpakhostfonts<br />
<br />
Você precisa e talvez queira adaptar o seu {{ic|pacman.conf}} antes de instalar pacotes no runtime. Copie o {{ic|/etc/pacman.conf}} para o seu diretório de criação e então faça as seguintes mudanças:<br />
<br />
* Remova a opção {{ic|CheckSpace}} e então o pacman não reclamará sobre erros ao encontrar a raíz do sistema de arquivo para checar o espaço de disco.<br />
* Remova quaisquer repositórios customizados indesejados e as configurações {{ic|IgnorePkg}}, {{ic|IgnoreGroup}}, {{ic|NoUpgrade}} e {{ic|NoExtract}}, que são necessárias somente para o sistema hospedeiro.<br />
<br />
<br />
Agora instale os pacotes para o runtime.<br />
<br />
$ fakechroot fakeroot pacman -Syu --root ''meuruntime''/files --dbpath ''meuruntime''/files/var/lib/pacman --config pacman.conf base<br />
$ mv pacman.conf ''meuruntime''/files/etc/pacman.conf<br />
<br />
Configure os [[Locale_(Português)|locales]] a serem usados editando {{ic|''meuruntime''/files/etc/locale.gen}}. Então, regenere os locales do runtime.<br />
<br />
$ fakechroot chroot ''meuruntime''/files locale-gen<br />
<br />
A base SDK pode ser criada a partir da base runtime com adição de aplicações necessárias para a criação de pacotes e executar o pacman.<br />
<br />
$ cp -r ''meuruntime'' mysdk<br />
$ fakechroot fakeroot pacman -S --root mysdk/files --dbpath mysdk/files/var/lib/pacman --config meusdk/files/etc/pacman.conf base-devel fakeroot fakechroot --needed<br />
<br />
Insira metadados sobre runtime e SDK.<br />
<br />
{{hc|''meuruntime''/metadados|2=<br />
[Runtime]<br />
name=org.mydomain.BasePlatform<br />
runtime=org.mydomain.BasePlatform/x86_64/2016-06-26<br />
sdk=org.mydomain.BaseSdk/x86_64/2016-06-26<br />
}}<br />
<br />
{{hc|meusdk/metadados|2=<br />
[Runtime]<br />
name=org.mydomain.BaseSdk<br />
runtime=org.mydomain.BasePlatform/x86_64/2016-06-26<br />
sdk=org.mydomain.BaseSdk/x86_64/2016-06-26<br />
}}<br />
<br />
Adicione as bases runtime e SDK para um repositório local no diretório atual. Você pode querer dar para eles mensagens commit apropriadas como, por exemplo, “Minha base runtime Arch” e “Minha base SDK Arch”.<br />
<br />
$ ostree init --mode archive-z2 --repo=.<br />
$ EDITOR="nano -w" ostree commit -b runtime/org.mydomain.BasePlatform/x86_64/2016-06-26 --tree=dir=''meuruntime''<br />
$ EDITOR="nano -w" ostree commit -b runtime/org.mydomain.BaseSdk/x86_64/2016-06-26 --tree=dir=meusdk<br />
$ ostree summary -u<br />
<br />
Instale o runtime e o SDK.<br />
<br />
$ flatpak remote-add --user --no-gpg-verify myarchos file://$(pwd)<br />
$ flatpak install --user myarchos org.mydomain.BasePlatform 2016-06-26<br />
$ flatpak install --user myarchos org.mydomain.BaseSdk 2016-06-26<br />
<br />
=== Criar apps com o pacman ===<br />
<br />
Como uma alternativa para a criação de aplicação da [http://flatpak.org/developer.html forma comum], nós podemos usar o pacman para criar uma versão em contêiner dos pacotes comuns do Arch. Note que {{ic|/usr}} é somente-leitura quando criando apps, então nós não podemos usar os pacotes do Arch quando da criação de um app. Para criar um app real com o pacman, nós podemos também:<br />
<br />
* Usar o pacman para criar um runtime contendos todas as dependẽncias<br />
* e compilar os apps [http://flatpak.org/developer.html como sempre] ou talvez usando o pacman para criar um [[PKGBUILD_(Português)|PKGBUILD]] customizado e adaptado ao Flatpak, o qual usa {{ic|1=--prefix=/app}} para o script {{ic|configure}},<br />
<br />
ou nós podemos<br />
* usar o pacman para criar o runtime contendo o app instalado com o pacman<br />
* e criar um app dummy para executá-lo.<br />
<br />
Por último, primeiro crie um runtime usando o pacman como esse para o {{Pkg|gedit}}. O runtime é primeiramente inicializado e preparado para uso com o pacman.<br />
<br />
$ flatpak build-init -w geditruntime org.mydomain.geditruntime org.mydomain.BaseSdk org.mydomain.BasePlatform 2016-06-26<br />
$ flatpak build geditruntime sed -i "s/^#Server/Server/g" /etc/pacman.d/mirrorlist<br />
$ flatpak build geditruntime ln -s /usr/var/lib /var/lib<br />
$ flatpak build geditruntime fakeroot pacman-key --init<br />
$ flatpak build geditruntime fakeroot pacman-key --populate archlinux<br />
<br />
Então o pacote está instalado. A conexão da rede hospedeira deve estar disponível para o pacman.<br />
<br />
$ flatpak build --share=network geditruntime fakechroot fakeroot pacman --root /usr -S gedit<br />
<br />
Você pode testar a aplicação antes de finalizar o runtime (sem o sandboxing apropriado).<br />
<br />
$ flatpak build --socket=x11 geditruntime gedit<br />
<br />
Agora termine criando o runtime e exporte-o para um novo repositório local. As chaves GnuPG do pacman têm permissões que podem interferir e precisam ser removidas primeiro.<br />
<br />
$ flatpak build geditruntime rm -r /etc/pacman.d/gnupg<br />
$ flatpak build-finish geditruntime<br />
$ sed -i "s/\[Application\]/\[Runtime\]/;s/runtime=org.mydomain.BasePlatform/runtime=org.mydomain.geditruntime/" geditruntime/metadata<br />
$ flatpak build-export -r geditrepo geditruntime<br />
<br />
Então crie o app dummy.<br />
<br />
$ flatpak build-init geditapp org.gnome.gedit org.mydomain.BaseSdk org.mydomain.geditruntime<br />
<br />
Agora termine criando o app dummy. Você pode ajustar as permissões de acesso quando sandboxed dando opções adicionais ao terminar de criar. Para possíveis opções veja a [[#Veja também|documentação do Flatpak]] e os [https://gitlab.gnome.org/GNOME/gnome-apps-nightly/tree/master/ arquivos de manifesto do GNOME]. Alternativamente, adapte {{ic|geditapp/metadata}} para as suas necessidades após terminar de criar, mas antes de exportar. Quando os arquivos de metadados estiver concluído, exporte o app para o repositório.<br />
<br />
$ flatpak build-finish geditapp --socket=x11 ''[possibly other options]'' --command=gedit<br />
$ flatpak build-export geditrepo geditapp<br />
<br />
Instale-o junto com o runtime.<br />
<br />
$ flatpak --user remote-add --no-gpg-verify geditrepo geditrepo<br />
$ flatpak install --user geditrepo org.mydomain.geditruntime<br />
$ flatpak install --user geditrepo org.gnome.gedit<br />
$ flatpak run org.gnome.gedit<br />
<br />
== Veja também ==<br />
<br />
* [http://flatpak.org Official website]<br />
* [https://github.com/flatpak/flatpak/wiki Official Github wiki]<br />
* [[Wikipedia::Flatpak|Wikipedia page]]<br />
* [https://wiki.gnome.org/Projects/SandboxedApps Gnome SandboxedApps]<br />
* [https://community.kde.org/Guidelines_and_HOWTOs/Flatpak KDE Testing Runtime and Applications]</div>Fvguilhermehttps://wiki.archlinux.org/index.php?title=Flatpak_(Portugu%C3%AAs)&diff=581827Flatpak (Português)2019-09-08T19:37:33Z<p>Fvguilherme: /* Criar uma base de runtime customizada */ minor fix</p>
<hr />
<div>[[Categoria:Desenvolvimento]]<br />
[[es:Flatpak]]<br />
[[ja:Flatpak]]<br />
[[pt:Flatpak]]<br />
{{StatusTradução|Flatpak|2019-08-09|23769}}<br />
{{Related articles start (Português)}}<br />
{{Related|Snapd}}<br />
{{Related|bubblewrap}}<br />
{{Related articles end}}<br />
Do projeto [https://github.com/flatpak/flatpak/blob/master/README.md README]: "''[http://flatpak.org Flatpak] é um sistema para construção, distribuição e execução de aplicações desktop sandboxed no Linux.''"<br />
<br />
De {{man|1|flatpak}}:<br />
<br />
:''Flatpak é uma ferramenta para gerenciar aplicações e os runtimes que elas usam. No modelo Flatpak, aplicações podem ser construídas e distribuídas independentemente do sistema hospedeiro em que elas estão usando, e elas são isoladas do sistema hospedeiro (‘sandboxed’) em algum grau, no runtime.''<br />
:''Flatpak usa [https://ostree.readthedocs.io/en/latest/ OSTree] para distribuir e implantar dados. Os repositórios que ele usa são repositórios OSTree epodem ser manipulados com a ferramenta ostree. Runtimes instalados e aplicações são checkouts do OSTree.''<br />
<br />
== Instalação ==<br />
<br />
[[Instale]] o pacote {{pkg|flatpak}}.<br />
<br />
{{Nota|Se você quer construir flatpaks com o {{ic|flatpak-builder}}, você precisará instalar as dependências opcionais {{pkg|elfutils}} e {{pkg|patch}}.}}<br />
<br />
== Gerenciar repositórios ==<br />
<br />
=== Adicionar um repositório ===<br />
<br />
Para adicionar um repositório flatpak remoto faça:<br />
<br />
$ flatpak remote-add ''nome'' ''localização''<br />
<br />
onde ''nome'' é o nome do novo remoto e ''localizaçã'' o é o caminho ou a URL do repositório. <br />
<br />
Por exemplo, para adicionar o [https://flathub.org/ repositório oficial Flathub]:<br />
<br />
$ flatpak remote-add --if-not-exists flathub <nowiki>https://dl.flathub.org/repo/flathub.flatpakrepo</nowiki><br />
<br />
=== Deletar repositórios ===<br />
<br />
Para deletar um repositório flatpak remoto faça:<br />
<br />
$ flatpak remote-delete ''nome''<br />
<br />
onde ''nome'' é o nome do repositório remoto a ser deletado.<br />
<br />
=== Listar repositórios ===<br />
<br />
Para listar todos os repositórios adicionados faça:<br />
<br />
$ flatpak remotes<br />
<br />
== Gerenciar runtimes e aplicações ==<br />
<br />
=== Procurar por um runtime ou aplicação ===<br />
<br />
Antes de estar pronto para procurar por um runtime ou aplicação em um novo repositório remoto adicionado, nós precisamos recuperar os dados appstream. Para isso:<br />
<br />
{{hc|$ flatpak update|<br />
Procurando por atualizações...<br />
Atualizando dados appstream para remote ''nome''<br />
}}<br />
<br />
Então nós podemos proceder para procurar por um pacote com {{ic|flatpak search ''nomedopacote''}}, ''e.g.'' para procurar pelo pacote {{ic|libreoffice}} com o {{ic|flathub}} remoto configurado:<br />
<br />
<br />
{{hc|$ flatpak search libreoffice|<br />
ID de aplicativo Versão Ramo Remotos Descrição <br />
org.libreoffice.LibreOffice stable flathub The LibreOffice productivity suite<br />
}}<br />
<br />
=== Listar todos os runtime ou aplicações disponíveis ===<br />
<br />
Para listar todos os runtimes e aplicações disponíveis em um repositório remoto nomeado como ''remoto'' faça: <br />
<br />
$ flatpak remote-ls ''remoto''<br />
<br />
=== Instalar um runtine ou aplicação ===<br />
<br />
Para instalar umruntime ou aplicação faça:<br />
<br />
$ flatpak install ''remoto'' ''nome''<br />
<br />
onde ''remoto'' é o nome do repositório remoto e ''nome'' é o nome da aplicação ou runtime a ser instalado.<br />
<br />
{{Dica|Você pode usar identificadores parciais {{ic|flatpak install ''nome-parcial''}} (por exemplo {{ic|flatpak install libreoffice}}).}}<br />
<br />
=== Listar os runtimes e aplicações instalados ===<br />
<br />
Para listar os runtimes e aplicações instaladas faça:<br />
<br />
$ flatpak list<br />
<br />
=== Rodar aplicações ===<br />
<br />
Aplicações Flatpak também podem ser executadas por linha de comando:<br />
<br />
$ flatpak run ''nome''<br />
<br />
=== Atualizar um runtime ou aplicação ===<br />
<br />
Para atualizar um runtime ou aplicação nomeada como ''nome'' faça:<br />
<br />
$ flatpak update ''name''<br />
<br />
=== Desinstalar um runtime ou aplicação ===<br />
<br />
Para desinstalar um runtime ou aplicação nomeado(a) como nome faça:<br />
<br />
$ flatpak uninstall ''name''<br />
<br />
{{Dica|Você pode desinstalar flatpak “refs” não utilizado (também conhecido como orfãos sem aplicação/runtime) com {{ic|flatpak unsinstall --unused}}.}}<br />
<br />
=== Adicionando arquivos .desktop Flatpak ao seu menu ===<br />
Flatpak espera que o gerenciador de janelas respeite a variável de ambiente XDG_DATA_DIRS para descobrir aplicações. Isso pode requerer que a sessão seja reiniciada ou o lançador pode não suportar isso. Nesse caso, onde você pode editar a lista de diretórios escaneados, adicionar isso a ela:<br />
<br />
~/.local/share/flatpak/exports/share/applications<br />
/var/lib/flatpak/exports/share/applications<br />
<br />
Isso é sabidamente necessário no Awesome.<br />
<br />
=== Vendo as permissões sandbox da aplicação ===<br />
Aplicações Flatpak vêm com regras sandbox pré-definidas que definem quais os recursos e os caminhos do sistema de arquivos a aplicação tem permissão para acessar. <br />
Para ver as permissões de uma aplicação específica faça:<br />
<br />
$ flatpak info --show-permissions ''name''<br />
A referência para os nomes das permissões sandbox podem ser encontradas na [https://docs.flatpak.org/en/latest/sandbox-permissions-reference.html/ documentação oficial do Flatpak.]<br />
<br />
=== Sobrescrevendo permissões sandbox de aplicações ===<br />
Se você acha que as permissões pré-definidas da aplicação é muito permissiva ou muito restritiva, você pode mudar para qualquer uma que quiser usando o comando {{ic|flatpak override}}.<br />
Por exemplo:<br />
$ flatpak override --nofilesystem=home ''name''<br />
Isso irá prevenir que a aplicação acesse a sua pasta home.<br />
<br />
Todo tipo de permissão como dispositivo, sistema de arquivo ou soquete tem um uma linha de comando que permite aquela permissão em particular e uma opção separada que nega. Por exemplo, no caso de acesso ao dispositivo {{ic|1=--device=device_''nome''}} permite o acesso, {{ic|1=--no-device=device_''nome''}} nega a permissão para acessar o dispositivo.<br />
<br />
Para todos os tipos de comandos de permissão consulte a página de manual: {{man|1|flatpak-override(1)}}.<br />
<br />
Substituições de permissão podem ser resetadas para o padrão com o comando:<br />
$ flatpak override --reset ''nome''<br />
<br />
== Criar uma base de runtime customizada ==<br />
<br />
{{Expansão|Isso certamente pode ser melhorado. Isso também tem problemas com D-Bus para apps do GNOME. (Discussão em [https://wiki.archlinux.org/index.php/Talk:Flatpak/ Talk:Flatpak#].}}<br />
<br />
{{Aviso|Se você quer lançar o seu software para o público como Flatpak, um runtime Arch-based é inadequada. Nesse caso, você precisará seguir a [http://docs.flatpak.org/ documentação oficial] para integrar seu software ao ecossistema adequado do Flatpak usando os [http://flatpak.org/runtimes.html/ runtimes comuns].}}<br />
<br />
{{Nota|Você pode querer usar uma conta não confiável e desprivilegiadas para construir software não confiável porque o software não é sandboxed durante a criação do app e do runtime.}}<br />
<br />
{{Nota|Quando distribuindo pacotes para outros, você pode ser legalmente obrigado a fornecer o código fonte de alguns dos softwares empacotados mediante solicitação. Vocẽ ode querer usar [[ABS_(Português)|ABS]] para construir tais pacotes a partir da fonte.}}<br />
<br />
Você pode criar uma base runtime Arch-based customizada e uma base SDK para Flatpak usando o pacman. Você pode, então, usá-las para criação e empacotamento de aplicações. Isso é uma alternativa para uso pessoal para o padrão {{ic|org.freedesktop.BasePlatform}} e {{ic|org.freedesktop.BaseSdk runtimes}}.<br />
<br />
Em adição ao {{Pkg|flatpak}}, você precisa ter instalado {{Pkg|fakeroot}} e {{Pkg|fakechroot}}, para suportar o pacman hooks.<br />
<br />
Primeiro, comece criando um diretório para criação do runtime e, possivelmente, aplicações.<br />
<br />
$ mkdir ''minhapastadecriacaoflatpak''<br />
$ cd ''minhapastadecriacaoflatpak''<br />
<br />
Você pode, então, preparar o diretório para a criação da plataforma base do runtime. Os arquivos do sub-diretório irão conter o que depois será o diretório {{ic|/usr}} no sandbox. Portanto, você precisará criar links simbólicos para o padrão {{ic|/etc/share}} etc. do Arch ainda possa ser acessado no caminho usual.<br />
<br />
$ mkdir -p ''meuruntime''/files/var/lib/pacman<br />
$ touch ''meuruntime''/files/.ref<br />
$ ln -s /usr/usr/share ''meuruntime''/files/share<br />
$ ln -s /usr/usr/include ''meuruntime''/files/include<br />
$ ln -s /usr/usr/local ''meuruntime''/files/local<br />
<br />
Certifique-se que as fontes disponíveis pelo seu SO host para o runtime do Arch:<br />
<br />
$ mkdir -p ''meuruntime''/files/usr/share/fonts<br />
$ ln -s /run/host/fonts ''meuruntime''/files/usr/share/fonts/flatpakhostfonts<br />
<br />
Você precisa e talvez queira adaptar o seu {{ic|pacman.conf}} antes de instalar pacotes no runtime. Copie o {{ic|/etc/pacman.conf}} para o seu diretório de criação e então faça as seguintes mudanças:<br />
<br />
* Remova a opção {{ic|CheckSpace}} e então o pacman não reclamará sobre erros ao encontrar a raíz do sistema de arquivo para checar o espaço de disco.<br />
* Remova quaisquer repositórios customizados indesejados e as configurações {{ic|IgnorePkg}}, {{ic|IgnoreGroup}}, {{ic|NoUpgrade}} e {{ic|NoExtract}}, que são necessárias somente para o sistema hospedeiro.<br />
<br />
<br />
Agora instale os pacotes para o runtime.<br />
<br />
$ fakechroot fakeroot pacman -Syu --root ''meuruntime''/files --dbpath ''meuruntime''/files/var/lib/pacman --config pacman.conf base<br />
$ mv pacman.conf ''meuruntime''/files/etc/pacman.conf<br />
<br />
Configure os [[Locale_(Português)|locales]] a serem usados editando {{ic|''meuruntime''/files/etc/locale.gen}}. Então, regenere os locales do runtime.<br />
<br />
$ fakechroot chroot ''meuruntime''/files locale-gen<br />
<br />
A base SDK pode ser criada a partir da base runtime com adição de aplicações necessárias para a criação de pacotes e executar o pacman.<br />
<br />
$ cp -r ''meuruntime'' mysdk<br />
$ fakechroot fakeroot pacman -S --root mysdk/files --dbpath mysdk/files/var/lib/pacman --config meusdk/files/etc/pacman.conf base-devel fakeroot fakechroot --needed<br />
<br />
Insira metadados sobre runtime e SDK.<br />
<br />
{{hc|''meuruntime''/metadados|2=<br />
[Runtime]<br />
name=org.mydomain.BasePlatform<br />
runtime=org.mydomain.BasePlatform/x86_64/2016-06-26<br />
sdk=org.mydomain.BaseSdk/x86_64/2016-06-26<br />
}}<br />
<br />
{{hc|meusdk/metadados|2=<br />
[Runtime]<br />
name=org.mydomain.BaseSdk<br />
runtime=org.mydomain.BasePlatform/x86_64/2016-06-26<br />
sdk=org.mydomain.BaseSdk/x86_64/2016-06-26<br />
}}<br />
<br />
Adicione as bases runtime e SDK para um repositório local no diretório atual. Você pode querer dar para eles mensagens commit apropriadas como, por exemplo, “Minha base runtime Arch” e “Minha base SDK Arch”.<br />
<br />
$ ostree init --mode archive-z2 --repo=.<br />
$ EDITOR="nano -w" ostree commit -b runtime/org.mydomain.BasePlatform/x86_64/2016-06-26 --tree=dir=''meuruntime''<br />
$ EDITOR="nano -w" ostree commit -b runtime/org.mydomain.BaseSdk/x86_64/2016-06-26 --tree=dir=meusdk<br />
$ ostree summary -u<br />
<br />
Instale o runtime e o SDK.<br />
<br />
$ flatpak remote-add --user --no-gpg-verify myarchos file://$(pwd)<br />
$ flatpak install --user myarchos org.mydomain.BasePlatform 2016-06-26<br />
$ flatpak install --user myarchos org.mydomain.BaseSdk 2016-06-26<br />
<br />
=== Criar apps com o pacman ===<br />
<br />
Como uma alternativa para a criação de aplicação da [http://flatpak.org/developer.html forma comum], nós podemos usar o pacman para criar uma versão em contêiner dos pacotes comuns do Arch. Note que {{ic|/usr}} é somente-leitura quando criando apps, então nós não podemos usar os pacotes do Arch quando da criação de um app. Para criar um app real com o pacman, nós podemos também:<br />
<br />
* Usar o pacman para criar um runtime contendos todas as dependẽncias<br />
* e compilar os apps [http://flatpak.org/developer.html como sempre] ou talvez usando o pacman para criar um [[PKGBUILD_(Português)|PKGBUILD]] customizado e adaptado ao Flatpak, o qual usa {{ic|1=--prefix=/app}} para o script {{ic|configure}},<br />
<br />
ou nós podemos<br />
* usar o pacman para criar o runtime contendo o app instalado com o pacman<br />
* e criar um app dummy para executá-lo.<br />
<br />
Por último, primeiro crie um runtime usando o pacman como esse para o {{Pkg|gedit}}. O runtime é primeiramente inicializado e preparado para uso com o pacman.<br />
<br />
$ flatpak build-init -w geditruntime org.mydomain.geditruntime org.mydomain.BaseSdk org.mydomain.BasePlatform 2016-06-26<br />
$ flatpak build geditruntime sed -i "s/^#Server/Server/g" /etc/pacman.d/mirrorlist<br />
$ flatpak build geditruntime ln -s /usr/var/lib /var/lib<br />
$ flatpak build geditruntime fakeroot pacman-key --init<br />
$ flatpak build geditruntime fakeroot pacman-key --populate archlinux<br />
<br />
Então o pacote está instalado. A conexão da rede hospedeira deve estar disponível para o pacman.<br />
<br />
$ flatpak build --share=network geditruntime fakechroot fakeroot pacman --root /usr -S gedit<br />
<br />
Você pode testar a aplicação antes de finalizar o runtime (sem o sandboxing apropriado).<br />
<br />
$ flatpak build --socket=x11 geditruntime gedit<br />
<br />
Agora termine criando o runtime e exporte-o para um novo repositório local. As chaves GnuPG do pacman têm permissões que podem interferir e precisam ser removidas primeiro.<br />
<br />
$ flatpak build geditruntime rm -r /etc/pacman.d/gnupg<br />
$ flatpak build-finish geditruntime<br />
$ sed -i "s/\[Application\]/\[Runtime\]/;s/runtime=org.mydomain.BasePlatform/runtime=org.mydomain.geditruntime/" geditruntime/metadata<br />
$ flatpak build-export -r geditrepo geditruntime<br />
<br />
Então crie o app dummy.<br />
<br />
$ flatpak build-init geditapp org.gnome.gedit org.mydomain.BaseSdk org.mydomain.geditruntime<br />
<br />
Agora termine criando o app dummy. Você pode ajustar as permissões de acesso quando sandboxed dando opções adicionais ao terminar de criar. Para possíveis opções veja a [[#Veja também|documentação do Flatpak]] e os [https://gitlab.gnome.org/GNOME/gnome-apps-nightly/tree/master/ arquivos de manifesto do GNOME]. Alternativamente, adapte {{ic|geditapp/metadata}} para as suas necessidades após terminar de criar, mas antes de exportar. Quando os arquivos de metadados estiver concluído, exporte o app para o repositório.<br />
<br />
$ flatpak build-finish geditapp --socket=x11 ''[possibly other options]'' --command=gedit<br />
$ flatpak build-export geditrepo geditapp<br />
<br />
Instale-o junto com o runtime.<br />
<br />
$ flatpak --user remote-add --no-gpg-verify geditrepo geditrepo<br />
$ flatpak install --user geditrepo org.mydomain.geditruntime<br />
$ flatpak install --user geditrepo org.gnome.gedit<br />
$ flatpak run org.gnome.gedit<br />
<br />
== Veja também ==<br />
<br />
* [http://flatpak.org Official website]<br />
* [https://github.com/flatpak/flatpak/wiki Official Github wiki]<br />
* [[Wikipedia::Flatpak|Wikipedia page]]<br />
* [https://wiki.gnome.org/Projects/SandboxedApps Gnome SandboxedApps]<br />
* [https://community.kde.org/Guidelines_and_HOWTOs/Flatpak KDE Testing Runtime and Applications]</div>Fvguilhermehttps://wiki.archlinux.org/index.php?title=Flatpak_(Portugu%C3%AAs)&diff=581825Flatpak (Português)2019-09-08T19:36:43Z<p>Fvguilherme: /* Criar uma base de runtime customizada */ minor fix</p>
<hr />
<div>[[Categoria:Desenvolvimento]]<br />
[[es:Flatpak]]<br />
[[ja:Flatpak]]<br />
[[pt:Flatpak]]<br />
{{StatusTradução|Flatpak|2019-08-09|23769}}<br />
{{Related articles start (Português)}}<br />
{{Related|Snapd}}<br />
{{Related|bubblewrap}}<br />
{{Related articles end}}<br />
Do projeto [https://github.com/flatpak/flatpak/blob/master/README.md README]: "''[http://flatpak.org Flatpak] é um sistema para construção, distribuição e execução de aplicações desktop sandboxed no Linux.''"<br />
<br />
De {{man|1|flatpak}}:<br />
<br />
:''Flatpak é uma ferramenta para gerenciar aplicações e os runtimes que elas usam. No modelo Flatpak, aplicações podem ser construídas e distribuídas independentemente do sistema hospedeiro em que elas estão usando, e elas são isoladas do sistema hospedeiro (‘sandboxed’) em algum grau, no runtime.''<br />
:''Flatpak usa [https://ostree.readthedocs.io/en/latest/ OSTree] para distribuir e implantar dados. Os repositórios que ele usa são repositórios OSTree epodem ser manipulados com a ferramenta ostree. Runtimes instalados e aplicações são checkouts do OSTree.''<br />
<br />
== Instalação ==<br />
<br />
[[Instale]] o pacote {{pkg|flatpak}}.<br />
<br />
{{Nota|Se você quer construir flatpaks com o {{ic|flatpak-builder}}, você precisará instalar as dependências opcionais {{pkg|elfutils}} e {{pkg|patch}}.}}<br />
<br />
== Gerenciar repositórios ==<br />
<br />
=== Adicionar um repositório ===<br />
<br />
Para adicionar um repositório flatpak remoto faça:<br />
<br />
$ flatpak remote-add ''nome'' ''localização''<br />
<br />
onde ''nome'' é o nome do novo remoto e ''localizaçã'' o é o caminho ou a URL do repositório. <br />
<br />
Por exemplo, para adicionar o [https://flathub.org/ repositório oficial Flathub]:<br />
<br />
$ flatpak remote-add --if-not-exists flathub <nowiki>https://dl.flathub.org/repo/flathub.flatpakrepo</nowiki><br />
<br />
=== Deletar repositórios ===<br />
<br />
Para deletar um repositório flatpak remoto faça:<br />
<br />
$ flatpak remote-delete ''nome''<br />
<br />
onde ''nome'' é o nome do repositório remoto a ser deletado.<br />
<br />
=== Listar repositórios ===<br />
<br />
Para listar todos os repositórios adicionados faça:<br />
<br />
$ flatpak remotes<br />
<br />
== Gerenciar runtimes e aplicações ==<br />
<br />
=== Procurar por um runtime ou aplicação ===<br />
<br />
Antes de estar pronto para procurar por um runtime ou aplicação em um novo repositório remoto adicionado, nós precisamos recuperar os dados appstream. Para isso:<br />
<br />
{{hc|$ flatpak update|<br />
Procurando por atualizações...<br />
Atualizando dados appstream para remote ''nome''<br />
}}<br />
<br />
Então nós podemos proceder para procurar por um pacote com {{ic|flatpak search ''nomedopacote''}}, ''e.g.'' para procurar pelo pacote {{ic|libreoffice}} com o {{ic|flathub}} remoto configurado:<br />
<br />
<br />
{{hc|$ flatpak search libreoffice|<br />
ID de aplicativo Versão Ramo Remotos Descrição <br />
org.libreoffice.LibreOffice stable flathub The LibreOffice productivity suite<br />
}}<br />
<br />
=== Listar todos os runtime ou aplicações disponíveis ===<br />
<br />
Para listar todos os runtimes e aplicações disponíveis em um repositório remoto nomeado como ''remoto'' faça: <br />
<br />
$ flatpak remote-ls ''remoto''<br />
<br />
=== Instalar um runtine ou aplicação ===<br />
<br />
Para instalar umruntime ou aplicação faça:<br />
<br />
$ flatpak install ''remoto'' ''nome''<br />
<br />
onde ''remoto'' é o nome do repositório remoto e ''nome'' é o nome da aplicação ou runtime a ser instalado.<br />
<br />
{{Dica|Você pode usar identificadores parciais {{ic|flatpak install ''nome-parcial''}} (por exemplo {{ic|flatpak install libreoffice}}).}}<br />
<br />
=== Listar os runtimes e aplicações instalados ===<br />
<br />
Para listar os runtimes e aplicações instaladas faça:<br />
<br />
$ flatpak list<br />
<br />
=== Rodar aplicações ===<br />
<br />
Aplicações Flatpak também podem ser executadas por linha de comando:<br />
<br />
$ flatpak run ''nome''<br />
<br />
=== Atualizar um runtime ou aplicação ===<br />
<br />
Para atualizar um runtime ou aplicação nomeada como ''nome'' faça:<br />
<br />
$ flatpak update ''name''<br />
<br />
=== Desinstalar um runtime ou aplicação ===<br />
<br />
Para desinstalar um runtime ou aplicação nomeado(a) como nome faça:<br />
<br />
$ flatpak uninstall ''name''<br />
<br />
{{Dica|Você pode desinstalar flatpak “refs” não utilizado (também conhecido como orfãos sem aplicação/runtime) com {{ic|flatpak unsinstall --unused}}.}}<br />
<br />
=== Adicionando arquivos .desktop Flatpak ao seu menu ===<br />
Flatpak espera que o gerenciador de janelas respeite a variável de ambiente XDG_DATA_DIRS para descobrir aplicações. Isso pode requerer que a sessão seja reiniciada ou o lançador pode não suportar isso. Nesse caso, onde você pode editar a lista de diretórios escaneados, adicionar isso a ela:<br />
<br />
~/.local/share/flatpak/exports/share/applications<br />
/var/lib/flatpak/exports/share/applications<br />
<br />
Isso é sabidamente necessário no Awesome.<br />
<br />
=== Vendo as permissões sandbox da aplicação ===<br />
Aplicações Flatpak vêm com regras sandbox pré-definidas que definem quais os recursos e os caminhos do sistema de arquivos a aplicação tem permissão para acessar. <br />
Para ver as permissões de uma aplicação específica faça:<br />
<br />
$ flatpak info --show-permissions ''name''<br />
A referência para os nomes das permissões sandbox podem ser encontradas na [https://docs.flatpak.org/en/latest/sandbox-permissions-reference.html/ documentação oficial do Flatpak.]<br />
<br />
=== Sobrescrevendo permissões sandbox de aplicações ===<br />
Se você acha que as permissões pré-definidas da aplicação é muito permissiva ou muito restritiva, você pode mudar para qualquer uma que quiser usando o comando {{ic|flatpak override}}.<br />
Por exemplo:<br />
$ flatpak override --nofilesystem=home ''name''<br />
Isso irá prevenir que a aplicação acesse a sua pasta home.<br />
<br />
Todo tipo de permissão como dispositivo, sistema de arquivo ou soquete tem um uma linha de comando que permite aquela permissão em particular e uma opção separada que nega. Por exemplo, no caso de acesso ao dispositivo {{ic|1=--device=device_''nome''}} permite o acesso, {{ic|1=--no-device=device_''nome''}} nega a permissão para acessar o dispositivo.<br />
<br />
Para todos os tipos de comandos de permissão consulte a página de manual: {{man|1|flatpak-override(1)}}.<br />
<br />
Substituições de permissão podem ser resetadas para o padrão com o comando:<br />
$ flatpak override --reset ''nome''<br />
<br />
== Criar uma base de runtime customizada ==<br />
<br />
{{Expansão|Isso certamente pode ser melhorado. Isso também tem problemas com D-Bus para apps do GNOME. (Discussão em [https://wiki.archlinux.org/index.php/Talk:Flatpak/ Talk:Flatpak#].}}<br />
<br />
{{Aviso|Se você quer lançar o seu software para o público como Flatpak, um runtime Arch-based é inadequada. Nesse caso, você precisará seguir a [http://docs.flatpak.org/ documentação oficial] para integrar seu software ao ecossistema adequado do Flatpak usando os [http://flatpak.org/runtimes.html/ runtimes comuns].}}<br />
<br />
{{Nota|Você pode querer usar uma conta não confiável e desprivilegiadas para construir software não confiável porque o software não é sandboxed durante a criação do app e do runtime.}}<br />
<br />
{{Nota|Quando distribuindo pacotes para outros,você pode ser legalmente obrigado a fornecer o código fonte de alguns dos softwares empacotados mediante solicitação. Vocẽ ode querer usar [[ABS_(Português)|ABS]] para construir tais pacotes a partir da fonte.}}<br />
<br />
Você pode criar uma base runtime Arch-based customizada e uma base SDK para Flatpak usando o pacman. Você pode, então, usá-las para criação e empacotamento de aplicações. Isso é uma alternativa para uso pessoal para o padrão {{ic|org.freedesktop.BasePlatform}} e {{ic|org.freedesktop.BaseSdk runtimes}}.<br />
<br />
Em adição ao {{Pkg|flatpak}}, você precisa ter instalado {{Pkg|fakeroot}} e {{Pkg|fakechroot}}, para suportar o pacman hooks.<br />
<br />
Primeiro, comece criando um diretório para criação do runtime e, possivelmente, aplicações.<br />
<br />
$ mkdir ''minhapastadecriacaoflatpak''<br />
$ cd ''minhapastadecriacaoflatpak''<br />
<br />
Você pode, então, preparar o diretório para a criação da plataforma base do runtime. Os arquivos do sub-diretório irão conter o que depois será o diretório {{ic|/usr}} no sandbox. Portanto, você precisará criar links simbólicos para o padrão {{ic|/etc/share}} etc. do Arch ainda possa ser acessado no caminho usual.<br />
<br />
$ mkdir -p ''meuruntime''/files/var/lib/pacman<br />
$ touch ''meuruntime''/files/.ref<br />
$ ln -s /usr/usr/share ''meuruntime''/files/share<br />
$ ln -s /usr/usr/include ''meuruntime''/files/include<br />
$ ln -s /usr/usr/local ''meuruntime''/files/local<br />
<br />
Certifique-se que as fontes disponíveis pelo seu SO host para o runtime do Arch:<br />
<br />
$ mkdir -p ''meuruntime''/files/usr/share/fonts<br />
$ ln -s /run/host/fonts ''meuruntime''/files/usr/share/fonts/flatpakhostfonts<br />
<br />
Você precisa e talvez queira adaptar o seu {{ic|pacman.conf}} antes de instalar pacotes no runtime. Copie o {{ic|/etc/pacman.conf}} para o seu diretório de criação e então faça as seguintes mudanças:<br />
<br />
* Remova a opção {{ic|CheckSpace}} e então o pacman não reclamará sobre erros ao encontrar a raíz do sistema de arquivo para checar o espaço de disco.<br />
* Remova quaisquer repositórios customizados indesejados e as configurações {{ic|IgnorePkg}}, {{ic|IgnoreGroup}}, {{ic|NoUpgrade}} e {{ic|NoExtract}}, que são necessárias somente para o sistema hospedeiro.<br />
<br />
<br />
Agora instale os pacotes para o runtime.<br />
<br />
$ fakechroot fakeroot pacman -Syu --root ''meuruntime''/files --dbpath ''meuruntime''/files/var/lib/pacman --config pacman.conf base<br />
$ mv pacman.conf ''meuruntime''/files/etc/pacman.conf<br />
<br />
Configure os [[Locale_(Português)|locales]] a serem usados editando {{ic|''meuruntime''/files/etc/locale.gen}}. Então, regenere os locales do runtime.<br />
<br />
$ fakechroot chroot ''meuruntime''/files locale-gen<br />
<br />
A base SDK pode ser criada a partir da base runtime com adição de aplicações necessárias para a criação de pacotes e executar o pacman.<br />
<br />
$ cp -r ''meuruntime'' mysdk<br />
$ fakechroot fakeroot pacman -S --root mysdk/files --dbpath mysdk/files/var/lib/pacman --config meusdk/files/etc/pacman.conf base-devel fakeroot fakechroot --needed<br />
<br />
Insira metadados sobre runtime e SDK.<br />
<br />
{{hc|''meuruntime''/metadados|2=<br />
[Runtime]<br />
name=org.mydomain.BasePlatform<br />
runtime=org.mydomain.BasePlatform/x86_64/2016-06-26<br />
sdk=org.mydomain.BaseSdk/x86_64/2016-06-26<br />
}}<br />
<br />
{{hc|meusdk/metadados|2=<br />
[Runtime]<br />
name=org.mydomain.BaseSdk<br />
runtime=org.mydomain.BasePlatform/x86_64/2016-06-26<br />
sdk=org.mydomain.BaseSdk/x86_64/2016-06-26<br />
}}<br />
<br />
Adicione as bases runtime e SDK para um repositório local no diretório atual. Você pode querer dar para eles mensagens commit apropriadas como, por exemplo, “Minha base runtime Arch” e “Minha base SDK Arch”.<br />
<br />
$ ostree init --mode archive-z2 --repo=.<br />
$ EDITOR="nano -w" ostree commit -b runtime/org.mydomain.BasePlatform/x86_64/2016-06-26 --tree=dir=''meuruntime''<br />
$ EDITOR="nano -w" ostree commit -b runtime/org.mydomain.BaseSdk/x86_64/2016-06-26 --tree=dir=meusdk<br />
$ ostree summary -u<br />
<br />
Instale o runtime e o SDK.<br />
<br />
$ flatpak remote-add --user --no-gpg-verify myarchos file://$(pwd)<br />
$ flatpak install --user myarchos org.mydomain.BasePlatform 2016-06-26<br />
$ flatpak install --user myarchos org.mydomain.BaseSdk 2016-06-26<br />
<br />
=== Criar apps com o pacman ===<br />
<br />
Como uma alternativa para a criação de aplicação da [http://flatpak.org/developer.html forma comum], nós podemos usar o pacman para criar uma versão em contêiner dos pacotes comuns do Arch. Note que {{ic|/usr}} é somente-leitura quando criando apps, então nós não podemos usar os pacotes do Arch quando da criação de um app. Para criar um app real com o pacman, nós podemos também:<br />
<br />
* Usar o pacman para criar um runtime contendos todas as dependẽncias<br />
* e compilar os apps [http://flatpak.org/developer.html como sempre] ou talvez usando o pacman para criar um [[PKGBUILD_(Português)|PKGBUILD]] customizado e adaptado ao Flatpak, o qual usa {{ic|1=--prefix=/app}} para o script {{ic|configure}},<br />
<br />
ou nós podemos<br />
* usar o pacman para criar o runtime contendo o app instalado com o pacman<br />
* e criar um app dummy para executá-lo.<br />
<br />
Por último, primeiro crie um runtime usando o pacman como esse para o {{Pkg|gedit}}. O runtime é primeiramente inicializado e preparado para uso com o pacman.<br />
<br />
$ flatpak build-init -w geditruntime org.mydomain.geditruntime org.mydomain.BaseSdk org.mydomain.BasePlatform 2016-06-26<br />
$ flatpak build geditruntime sed -i "s/^#Server/Server/g" /etc/pacman.d/mirrorlist<br />
$ flatpak build geditruntime ln -s /usr/var/lib /var/lib<br />
$ flatpak build geditruntime fakeroot pacman-key --init<br />
$ flatpak build geditruntime fakeroot pacman-key --populate archlinux<br />
<br />
Então o pacote está instalado. A conexão da rede hospedeira deve estar disponível para o pacman.<br />
<br />
$ flatpak build --share=network geditruntime fakechroot fakeroot pacman --root /usr -S gedit<br />
<br />
Você pode testar a aplicação antes de finalizar o runtime (sem o sandboxing apropriado).<br />
<br />
$ flatpak build --socket=x11 geditruntime gedit<br />
<br />
Agora termine criando o runtime e exporte-o para um novo repositório local. As chaves GnuPG do pacman têm permissões que podem interferir e precisam ser removidas primeiro.<br />
<br />
$ flatpak build geditruntime rm -r /etc/pacman.d/gnupg<br />
$ flatpak build-finish geditruntime<br />
$ sed -i "s/\[Application\]/\[Runtime\]/;s/runtime=org.mydomain.BasePlatform/runtime=org.mydomain.geditruntime/" geditruntime/metadata<br />
$ flatpak build-export -r geditrepo geditruntime<br />
<br />
Então crie o app dummy.<br />
<br />
$ flatpak build-init geditapp org.gnome.gedit org.mydomain.BaseSdk org.mydomain.geditruntime<br />
<br />
Agora termine criando o app dummy. Você pode ajustar as permissões de acesso quando sandboxed dando opções adicionais ao terminar de criar. Para possíveis opções veja a [[#Veja também|documentação do Flatpak]] e os [https://gitlab.gnome.org/GNOME/gnome-apps-nightly/tree/master/ arquivos de manifesto do GNOME]. Alternativamente, adapte {{ic|geditapp/metadata}} para as suas necessidades após terminar de criar, mas antes de exportar. Quando os arquivos de metadados estiver concluído, exporte o app para o repositório.<br />
<br />
$ flatpak build-finish geditapp --socket=x11 ''[possibly other options]'' --command=gedit<br />
$ flatpak build-export geditrepo geditapp<br />
<br />
Instale-o junto com o runtime.<br />
<br />
$ flatpak --user remote-add --no-gpg-verify geditrepo geditrepo<br />
$ flatpak install --user geditrepo org.mydomain.geditruntime<br />
$ flatpak install --user geditrepo org.gnome.gedit<br />
$ flatpak run org.gnome.gedit<br />
<br />
== Veja também ==<br />
<br />
* [http://flatpak.org Official website]<br />
* [https://github.com/flatpak/flatpak/wiki Official Github wiki]<br />
* [[Wikipedia::Flatpak|Wikipedia page]]<br />
* [https://wiki.gnome.org/Projects/SandboxedApps Gnome SandboxedApps]<br />
* [https://community.kde.org/Guidelines_and_HOWTOs/Flatpak KDE Testing Runtime and Applications]</div>Fvguilhermehttps://wiki.archlinux.org/index.php?title=Flatpak_(Portugu%C3%AAs)&diff=581824Flatpak (Português)2019-09-08T19:36:20Z<p>Fvguilherme: /* Criar uma base de runtime customizada */ minor fixes</p>
<hr />
<div>[[Categoria:Desenvolvimento]]<br />
[[es:Flatpak]]<br />
[[ja:Flatpak]]<br />
[[pt:Flatpak]]<br />
{{StatusTradução|Flatpak|2019-08-09|23769}}<br />
{{Related articles start (Português)}}<br />
{{Related|Snapd}}<br />
{{Related|bubblewrap}}<br />
{{Related articles end}}<br />
Do projeto [https://github.com/flatpak/flatpak/blob/master/README.md README]: "''[http://flatpak.org Flatpak] é um sistema para construção, distribuição e execução de aplicações desktop sandboxed no Linux.''"<br />
<br />
De {{man|1|flatpak}}:<br />
<br />
:''Flatpak é uma ferramenta para gerenciar aplicações e os runtimes que elas usam. No modelo Flatpak, aplicações podem ser construídas e distribuídas independentemente do sistema hospedeiro em que elas estão usando, e elas são isoladas do sistema hospedeiro (‘sandboxed’) em algum grau, no runtime.''<br />
:''Flatpak usa [https://ostree.readthedocs.io/en/latest/ OSTree] para distribuir e implantar dados. Os repositórios que ele usa são repositórios OSTree epodem ser manipulados com a ferramenta ostree. Runtimes instalados e aplicações são checkouts do OSTree.''<br />
<br />
== Instalação ==<br />
<br />
[[Instale]] o pacote {{pkg|flatpak}}.<br />
<br />
{{Nota|Se você quer construir flatpaks com o {{ic|flatpak-builder}}, você precisará instalar as dependências opcionais {{pkg|elfutils}} e {{pkg|patch}}.}}<br />
<br />
== Gerenciar repositórios ==<br />
<br />
=== Adicionar um repositório ===<br />
<br />
Para adicionar um repositório flatpak remoto faça:<br />
<br />
$ flatpak remote-add ''nome'' ''localização''<br />
<br />
onde ''nome'' é o nome do novo remoto e ''localizaçã'' o é o caminho ou a URL do repositório. <br />
<br />
Por exemplo, para adicionar o [https://flathub.org/ repositório oficial Flathub]:<br />
<br />
$ flatpak remote-add --if-not-exists flathub <nowiki>https://dl.flathub.org/repo/flathub.flatpakrepo</nowiki><br />
<br />
=== Deletar repositórios ===<br />
<br />
Para deletar um repositório flatpak remoto faça:<br />
<br />
$ flatpak remote-delete ''nome''<br />
<br />
onde ''nome'' é o nome do repositório remoto a ser deletado.<br />
<br />
=== Listar repositórios ===<br />
<br />
Para listar todos os repositórios adicionados faça:<br />
<br />
$ flatpak remotes<br />
<br />
== Gerenciar runtimes e aplicações ==<br />
<br />
=== Procurar por um runtime ou aplicação ===<br />
<br />
Antes de estar pronto para procurar por um runtime ou aplicação em um novo repositório remoto adicionado, nós precisamos recuperar os dados appstream. Para isso:<br />
<br />
{{hc|$ flatpak update|<br />
Procurando por atualizações...<br />
Atualizando dados appstream para remote ''nome''<br />
}}<br />
<br />
Então nós podemos proceder para procurar por um pacote com {{ic|flatpak search ''nomedopacote''}}, ''e.g.'' para procurar pelo pacote {{ic|libreoffice}} com o {{ic|flathub}} remoto configurado:<br />
<br />
<br />
{{hc|$ flatpak search libreoffice|<br />
ID de aplicativo Versão Ramo Remotos Descrição <br />
org.libreoffice.LibreOffice stable flathub The LibreOffice productivity suite<br />
}}<br />
<br />
=== Listar todos os runtime ou aplicações disponíveis ===<br />
<br />
Para listar todos os runtimes e aplicações disponíveis em um repositório remoto nomeado como ''remoto'' faça: <br />
<br />
$ flatpak remote-ls ''remoto''<br />
<br />
=== Instalar um runtine ou aplicação ===<br />
<br />
Para instalar umruntime ou aplicação faça:<br />
<br />
$ flatpak install ''remoto'' ''nome''<br />
<br />
onde ''remoto'' é o nome do repositório remoto e ''nome'' é o nome da aplicação ou runtime a ser instalado.<br />
<br />
{{Dica|Você pode usar identificadores parciais {{ic|flatpak install ''nome-parcial''}} (por exemplo {{ic|flatpak install libreoffice}}).}}<br />
<br />
=== Listar os runtimes e aplicações instalados ===<br />
<br />
Para listar os runtimes e aplicações instaladas faça:<br />
<br />
$ flatpak list<br />
<br />
=== Rodar aplicações ===<br />
<br />
Aplicações Flatpak também podem ser executadas por linha de comando:<br />
<br />
$ flatpak run ''nome''<br />
<br />
=== Atualizar um runtime ou aplicação ===<br />
<br />
Para atualizar um runtime ou aplicação nomeada como ''nome'' faça:<br />
<br />
$ flatpak update ''name''<br />
<br />
=== Desinstalar um runtime ou aplicação ===<br />
<br />
Para desinstalar um runtime ou aplicação nomeado(a) como nome faça:<br />
<br />
$ flatpak uninstall ''name''<br />
<br />
{{Dica|Você pode desinstalar flatpak “refs” não utilizado (também conhecido como orfãos sem aplicação/runtime) com {{ic|flatpak unsinstall --unused}}.}}<br />
<br />
=== Adicionando arquivos .desktop Flatpak ao seu menu ===<br />
Flatpak espera que o gerenciador de janelas respeite a variável de ambiente XDG_DATA_DIRS para descobrir aplicações. Isso pode requerer que a sessão seja reiniciada ou o lançador pode não suportar isso. Nesse caso, onde você pode editar a lista de diretórios escaneados, adicionar isso a ela:<br />
<br />
~/.local/share/flatpak/exports/share/applications<br />
/var/lib/flatpak/exports/share/applications<br />
<br />
Isso é sabidamente necessário no Awesome.<br />
<br />
=== Vendo as permissões sandbox da aplicação ===<br />
Aplicações Flatpak vêm com regras sandbox pré-definidas que definem quais os recursos e os caminhos do sistema de arquivos a aplicação tem permissão para acessar. <br />
Para ver as permissões de uma aplicação específica faça:<br />
<br />
$ flatpak info --show-permissions ''name''<br />
A referência para os nomes das permissões sandbox podem ser encontradas na [https://docs.flatpak.org/en/latest/sandbox-permissions-reference.html/ documentação oficial do Flatpak.]<br />
<br />
=== Sobrescrevendo permissões sandbox de aplicações ===<br />
Se você acha que as permissões pré-definidas da aplicação é muito permissiva ou muito restritiva, você pode mudar para qualquer uma que quiser usando o comando {{ic|flatpak override}}.<br />
Por exemplo:<br />
$ flatpak override --nofilesystem=home ''name''<br />
Isso irá prevenir que a aplicação acesse a sua pasta home.<br />
<br />
Todo tipo de permissão como dispositivo, sistema de arquivo ou soquete tem um uma linha de comando que permite aquela permissão em particular e uma opção separada que nega. Por exemplo, no caso de acesso ao dispositivo {{ic|1=--device=device_''nome''}} permite o acesso, {{ic|1=--no-device=device_''nome''}} nega a permissão para acessar o dispositivo.<br />
<br />
Para todos os tipos de comandos de permissão consulte a página de manual: {{man|1|flatpak-override(1)}}.<br />
<br />
Substituições de permissão podem ser resetadas para o padrão com o comando:<br />
$ flatpak override --reset ''nome''<br />
<br />
== Criar uma base de runtime customizada ==<br />
<br />
{{Expansão|Isso certamente pode ser melhorado. Isso também tem problemas com D-Bus para apps do GNOME. (Discussão em [https://wiki.archlinux.org/index.php/Talk:Flatpak/ Talk:Flatpak#].}}<br />
<br />
{{Aviso|Se você quer lançar o seu software para o público como Flatpak, um runtime Arch-based é inadequada. Nesse caso, você precisará seguir a [http://docs.flatpak.org/ documentação oficial] para integrar seu software ao ecossistema adequado do Flatpak usando os [http://flatpak.org/runtimes.html/ runtimes comuns].}}<br />
<br />
{{Nota|Você pode querer usar uma conta não confiável e desprivilegiadas para construir software não confiável porque o software não é sandboxed durante a criação do app e do runtime.}}<br />
<br />
{{Nota|Quando distribuindo pacotes para outros,você pode ser legalmente obrigado a fornecer o código fonte de alguns dos softwares empacotados mediante solicitação. Vocẽ ode querer usar [[ABS_(Português)]] para construir tais pacotes a partir da fonte.}}<br />
<br />
Você pode criar uma base runtime Arch-based customizada e uma base SDK para Flatpak usando o pacman. Você pode, então, usá-las para criação e empacotamento de aplicações. Isso é uma alternativa para uso pessoal para o padrão {{ic|org.freedesktop.BasePlatform}} e {{ic|org.freedesktop.BaseSdk runtimes}}.<br />
<br />
Em adição ao {{Pkg|flatpak}}, você precisa ter instalado {{Pkg|fakeroot}} e {{Pkg|fakechroot}}, para suportar o pacman hooks.<br />
<br />
Primeiro, comece criando um diretório para criação do runtime e, possivelmente, aplicações.<br />
<br />
$ mkdir ''minhapastadecriacaoflatpak''<br />
$ cd ''minhapastadecriacaoflatpak''<br />
<br />
Você pode, então, preparar o diretório para a criação da plataforma base do runtime. Os arquivos do sub-diretório irão conter o que depois será o diretório {{ic|/usr}} no sandbox. Portanto, você precisará criar links simbólicos para o padrão {{ic|/etc/share}} etc. do Arch ainda possa ser acessado no caminho usual.<br />
<br />
$ mkdir -p ''meuruntime''/files/var/lib/pacman<br />
$ touch ''meuruntime''/files/.ref<br />
$ ln -s /usr/usr/share ''meuruntime''/files/share<br />
$ ln -s /usr/usr/include ''meuruntime''/files/include<br />
$ ln -s /usr/usr/local ''meuruntime''/files/local<br />
<br />
Certifique-se que as fontes disponíveis pelo seu SO host para o runtime do Arch:<br />
<br />
$ mkdir -p ''meuruntime''/files/usr/share/fonts<br />
$ ln -s /run/host/fonts ''meuruntime''/files/usr/share/fonts/flatpakhostfonts<br />
<br />
Você precisa e talvez queira adaptar o seu {{ic|pacman.conf}} antes de instalar pacotes no runtime. Copie o {{ic|/etc/pacman.conf}} para o seu diretório de criação e então faça as seguintes mudanças:<br />
<br />
* Remova a opção {{ic|CheckSpace}} e então o pacman não reclamará sobre erros ao encontrar a raíz do sistema de arquivo para checar o espaço de disco.<br />
* Remova quaisquer repositórios customizados indesejados e as configurações {{ic|IgnorePkg}}, {{ic|IgnoreGroup}}, {{ic|NoUpgrade}} e {{ic|NoExtract}}, que são necessárias somente para o sistema hospedeiro.<br />
<br />
<br />
Agora instale os pacotes para o runtime.<br />
<br />
$ fakechroot fakeroot pacman -Syu --root ''meuruntime''/files --dbpath ''meuruntime''/files/var/lib/pacman --config pacman.conf base<br />
$ mv pacman.conf ''meuruntime''/files/etc/pacman.conf<br />
<br />
Configure os [[Locale_(Português)|locales]] a serem usados editando {{ic|''meuruntime''/files/etc/locale.gen}}. Então, regenere os locales do runtime.<br />
<br />
$ fakechroot chroot ''meuruntime''/files locale-gen<br />
<br />
A base SDK pode ser criada a partir da base runtime com adição de aplicações necessárias para a criação de pacotes e executar o pacman.<br />
<br />
$ cp -r ''meuruntime'' mysdk<br />
$ fakechroot fakeroot pacman -S --root mysdk/files --dbpath mysdk/files/var/lib/pacman --config meusdk/files/etc/pacman.conf base-devel fakeroot fakechroot --needed<br />
<br />
Insira metadados sobre runtime e SDK.<br />
<br />
{{hc|''meuruntime''/metadados|2=<br />
[Runtime]<br />
name=org.mydomain.BasePlatform<br />
runtime=org.mydomain.BasePlatform/x86_64/2016-06-26<br />
sdk=org.mydomain.BaseSdk/x86_64/2016-06-26<br />
}}<br />
<br />
{{hc|meusdk/metadados|2=<br />
[Runtime]<br />
name=org.mydomain.BaseSdk<br />
runtime=org.mydomain.BasePlatform/x86_64/2016-06-26<br />
sdk=org.mydomain.BaseSdk/x86_64/2016-06-26<br />
}}<br />
<br />
Adicione as bases runtime e SDK para um repositório local no diretório atual. Você pode querer dar para eles mensagens commit apropriadas como, por exemplo, “Minha base runtime Arch” e “Minha base SDK Arch”.<br />
<br />
$ ostree init --mode archive-z2 --repo=.<br />
$ EDITOR="nano -w" ostree commit -b runtime/org.mydomain.BasePlatform/x86_64/2016-06-26 --tree=dir=''meuruntime''<br />
$ EDITOR="nano -w" ostree commit -b runtime/org.mydomain.BaseSdk/x86_64/2016-06-26 --tree=dir=meusdk<br />
$ ostree summary -u<br />
<br />
Instale o runtime e o SDK.<br />
<br />
$ flatpak remote-add --user --no-gpg-verify myarchos file://$(pwd)<br />
$ flatpak install --user myarchos org.mydomain.BasePlatform 2016-06-26<br />
$ flatpak install --user myarchos org.mydomain.BaseSdk 2016-06-26<br />
<br />
=== Criar apps com o pacman ===<br />
<br />
Como uma alternativa para a criação de aplicação da [http://flatpak.org/developer.html forma comum], nós podemos usar o pacman para criar uma versão em contêiner dos pacotes comuns do Arch. Note que {{ic|/usr}} é somente-leitura quando criando apps, então nós não podemos usar os pacotes do Arch quando da criação de um app. Para criar um app real com o pacman, nós podemos também:<br />
<br />
* Usar o pacman para criar um runtime contendos todas as dependẽncias<br />
* e compilar os apps [http://flatpak.org/developer.html como sempre] ou talvez usando o pacman para criar um [[PKGBUILD_(Português)|PKGBUILD]] customizado e adaptado ao Flatpak, o qual usa {{ic|1=--prefix=/app}} para o script {{ic|configure}},<br />
<br />
ou nós podemos<br />
* usar o pacman para criar o runtime contendo o app instalado com o pacman<br />
* e criar um app dummy para executá-lo.<br />
<br />
Por último, primeiro crie um runtime usando o pacman como esse para o {{Pkg|gedit}}. O runtime é primeiramente inicializado e preparado para uso com o pacman.<br />
<br />
$ flatpak build-init -w geditruntime org.mydomain.geditruntime org.mydomain.BaseSdk org.mydomain.BasePlatform 2016-06-26<br />
$ flatpak build geditruntime sed -i "s/^#Server/Server/g" /etc/pacman.d/mirrorlist<br />
$ flatpak build geditruntime ln -s /usr/var/lib /var/lib<br />
$ flatpak build geditruntime fakeroot pacman-key --init<br />
$ flatpak build geditruntime fakeroot pacman-key --populate archlinux<br />
<br />
Então o pacote está instalado. A conexão da rede hospedeira deve estar disponível para o pacman.<br />
<br />
$ flatpak build --share=network geditruntime fakechroot fakeroot pacman --root /usr -S gedit<br />
<br />
Você pode testar a aplicação antes de finalizar o runtime (sem o sandboxing apropriado).<br />
<br />
$ flatpak build --socket=x11 geditruntime gedit<br />
<br />
Agora termine criando o runtime e exporte-o para um novo repositório local. As chaves GnuPG do pacman têm permissões que podem interferir e precisam ser removidas primeiro.<br />
<br />
$ flatpak build geditruntime rm -r /etc/pacman.d/gnupg<br />
$ flatpak build-finish geditruntime<br />
$ sed -i "s/\[Application\]/\[Runtime\]/;s/runtime=org.mydomain.BasePlatform/runtime=org.mydomain.geditruntime/" geditruntime/metadata<br />
$ flatpak build-export -r geditrepo geditruntime<br />
<br />
Então crie o app dummy.<br />
<br />
$ flatpak build-init geditapp org.gnome.gedit org.mydomain.BaseSdk org.mydomain.geditruntime<br />
<br />
Agora termine criando o app dummy. Você pode ajustar as permissões de acesso quando sandboxed dando opções adicionais ao terminar de criar. Para possíveis opções veja a [[#Veja também|documentação do Flatpak]] e os [https://gitlab.gnome.org/GNOME/gnome-apps-nightly/tree/master/ arquivos de manifesto do GNOME]. Alternativamente, adapte {{ic|geditapp/metadata}} para as suas necessidades após terminar de criar, mas antes de exportar. Quando os arquivos de metadados estiver concluído, exporte o app para o repositório.<br />
<br />
$ flatpak build-finish geditapp --socket=x11 ''[possibly other options]'' --command=gedit<br />
$ flatpak build-export geditrepo geditapp<br />
<br />
Instale-o junto com o runtime.<br />
<br />
$ flatpak --user remote-add --no-gpg-verify geditrepo geditrepo<br />
$ flatpak install --user geditrepo org.mydomain.geditruntime<br />
$ flatpak install --user geditrepo org.gnome.gedit<br />
$ flatpak run org.gnome.gedit<br />
<br />
== Veja também ==<br />
<br />
* [http://flatpak.org Official website]<br />
* [https://github.com/flatpak/flatpak/wiki Official Github wiki]<br />
* [[Wikipedia::Flatpak|Wikipedia page]]<br />
* [https://wiki.gnome.org/Projects/SandboxedApps Gnome SandboxedApps]<br />
* [https://community.kde.org/Guidelines_and_HOWTOs/Flatpak KDE Testing Runtime and Applications]</div>Fvguilhermehttps://wiki.archlinux.org/index.php?title=Flatpak_(Portugu%C3%AAs)&diff=581823Flatpak (Português)2019-09-08T19:33:09Z<p>Fvguilherme: Add "Translate Status".</p>
<hr />
<div>[[Categoria:Desenvolvimento]]<br />
[[es:Flatpak]]<br />
[[ja:Flatpak]]<br />
[[pt:Flatpak]]<br />
{{StatusTradução|Flatpak|2019-08-09|23769}}<br />
{{Related articles start (Português)}}<br />
{{Related|Snapd}}<br />
{{Related|bubblewrap}}<br />
{{Related articles end}}<br />
Do projeto [https://github.com/flatpak/flatpak/blob/master/README.md README]: "''[http://flatpak.org Flatpak] é um sistema para construção, distribuição e execução de aplicações desktop sandboxed no Linux.''"<br />
<br />
De {{man|1|flatpak}}:<br />
<br />
:''Flatpak é uma ferramenta para gerenciar aplicações e os runtimes que elas usam. No modelo Flatpak, aplicações podem ser construídas e distribuídas independentemente do sistema hospedeiro em que elas estão usando, e elas são isoladas do sistema hospedeiro (‘sandboxed’) em algum grau, no runtime.''<br />
:''Flatpak usa [https://ostree.readthedocs.io/en/latest/ OSTree] para distribuir e implantar dados. Os repositórios que ele usa são repositórios OSTree epodem ser manipulados com a ferramenta ostree. Runtimes instalados e aplicações são checkouts do OSTree.''<br />
<br />
== Instalação ==<br />
<br />
[[Instale]] o pacote {{pkg|flatpak}}.<br />
<br />
{{Nota|Se você quer construir flatpaks com o {{ic|flatpak-builder}}, você precisará instalar as dependências opcionais {{pkg|elfutils}} e {{pkg|patch}}.}}<br />
<br />
== Gerenciar repositórios ==<br />
<br />
=== Adicionar um repositório ===<br />
<br />
Para adicionar um repositório flatpak remoto faça:<br />
<br />
$ flatpak remote-add ''nome'' ''localização''<br />
<br />
onde ''nome'' é o nome do novo remoto e ''localizaçã'' o é o caminho ou a URL do repositório. <br />
<br />
Por exemplo, para adicionar o [https://flathub.org/ repositório oficial Flathub]:<br />
<br />
$ flatpak remote-add --if-not-exists flathub <nowiki>https://dl.flathub.org/repo/flathub.flatpakrepo</nowiki><br />
<br />
=== Deletar repositórios ===<br />
<br />
Para deletar um repositório flatpak remoto faça:<br />
<br />
$ flatpak remote-delete ''nome''<br />
<br />
onde ''nome'' é o nome do repositório remoto a ser deletado.<br />
<br />
=== Listar repositórios ===<br />
<br />
Para listar todos os repositórios adicionados faça:<br />
<br />
$ flatpak remotes<br />
<br />
== Gerenciar runtimes e aplicações ==<br />
<br />
=== Procurar por um runtime ou aplicação ===<br />
<br />
Antes de estar pronto para procurar por um runtime ou aplicação em um novo repositório remoto adicionado, nós precisamos recuperar os dados appstream. Para isso:<br />
<br />
{{hc|$ flatpak update|<br />
Procurando por atualizações...<br />
Atualizando dados appstream para remote ''nome''<br />
}}<br />
<br />
Então nós podemos proceder para procurar por um pacote com {{ic|flatpak search ''nomedopacote''}}, ''e.g.'' para procurar pelo pacote {{ic|libreoffice}} com o {{ic|flathub}} remoto configurado:<br />
<br />
<br />
{{hc|$ flatpak search libreoffice|<br />
ID de aplicativo Versão Ramo Remotos Descrição <br />
org.libreoffice.LibreOffice stable flathub The LibreOffice productivity suite<br />
}}<br />
<br />
=== Listar todos os runtime ou aplicações disponíveis ===<br />
<br />
Para listar todos os runtimes e aplicações disponíveis em um repositório remoto nomeado como ''remoto'' faça: <br />
<br />
$ flatpak remote-ls ''remoto''<br />
<br />
=== Instalar um runtine ou aplicação ===<br />
<br />
Para instalar umruntime ou aplicação faça:<br />
<br />
$ flatpak install ''remoto'' ''nome''<br />
<br />
onde ''remoto'' é o nome do repositório remoto e ''nome'' é o nome da aplicação ou runtime a ser instalado.<br />
<br />
{{Dica|Você pode usar identificadores parciais {{ic|flatpak install ''nome-parcial''}} (por exemplo {{ic|flatpak install libreoffice}}).}}<br />
<br />
=== Listar os runtimes e aplicações instalados ===<br />
<br />
Para listar os runtimes e aplicações instaladas faça:<br />
<br />
$ flatpak list<br />
<br />
=== Rodar aplicações ===<br />
<br />
Aplicações Flatpak também podem ser executadas por linha de comando:<br />
<br />
$ flatpak run ''nome''<br />
<br />
=== Atualizar um runtime ou aplicação ===<br />
<br />
Para atualizar um runtime ou aplicação nomeada como ''nome'' faça:<br />
<br />
$ flatpak update ''name''<br />
<br />
=== Desinstalar um runtime ou aplicação ===<br />
<br />
Para desinstalar um runtime ou aplicação nomeado(a) como nome faça:<br />
<br />
$ flatpak uninstall ''name''<br />
<br />
{{Dica|Você pode desinstalar flatpak “refs” não utilizado (também conhecido como orfãos sem aplicação/runtime) com {{ic|flatpak unsinstall --unused}}.}}<br />
<br />
=== Adicionando arquivos .desktop Flatpak ao seu menu ===<br />
Flatpak espera que o gerenciador de janelas respeite a variável de ambiente XDG_DATA_DIRS para descobrir aplicações. Isso pode requerer que a sessão seja reiniciada ou o lançador pode não suportar isso. Nesse caso, onde você pode editar a lista de diretórios escaneados, adicionar isso a ela:<br />
<br />
~/.local/share/flatpak/exports/share/applications<br />
/var/lib/flatpak/exports/share/applications<br />
<br />
Isso é sabidamente necessário no Awesome.<br />
<br />
=== Vendo as permissões sandbox da aplicação ===<br />
Aplicações Flatpak vêm com regras sandbox pré-definidas que definem quais os recursos e os caminhos do sistema de arquivos a aplicação tem permissão para acessar. <br />
Para ver as permissões de uma aplicação específica faça:<br />
<br />
$ flatpak info --show-permissions ''name''<br />
A referência para os nomes das permissões sandbox podem ser encontradas na [https://docs.flatpak.org/en/latest/sandbox-permissions-reference.html/ documentação oficial do Flatpak.]<br />
<br />
=== Sobrescrevendo permissões sandbox de aplicações ===<br />
Se você acha que as permissões pré-definidas da aplicação é muito permissiva ou muito restritiva, você pode mudar para qualquer uma que quiser usando o comando {{ic|flatpak override}}.<br />
Por exemplo:<br />
$ flatpak override --nofilesystem=home ''name''<br />
Isso irá prevenir que a aplicação acesse a sua pasta home.<br />
<br />
Todo tipo de permissão como dispositivo, sistema de arquivo ou soquete tem um uma linha de comando que permite aquela permissão em particular e uma opção separada que nega. Por exemplo, no caso de acesso ao dispositivo {{ic|1=--device=device_''nome''}} permite o acesso, {{ic|1=--no-device=device_''nome''}} nega a permissão para acessar o dispositivo.<br />
<br />
Para todos os tipos de comandos de permissão consulte a página de manual: {{man|1|flatpak-override(1)}}.<br />
<br />
Substituições de permissão podem ser resetadas para o padrão com o comando:<br />
$ flatpak override --reset ''nome''<br />
<br />
== Criar uma base de runtime customizada ==<br />
<br />
{{Expansão|Isso certamente pode ser melhorado. Isso também tem problemas com D-Bus para apps do GNOME. (Discussão em [https://wiki.archlinux.org/index.php/Talk:Flatpak/ Talk:Flatpak#]}}<br />
<br />
{{Aviso|Se você quer lançar o seu software para o público como Flatpak, um runtime Arch-based é inadequada. Nesse caso, você precisará seguir a [http://docs.flatpak.org/ documentação oficial] para integrar seu software ao ecossistema adequado do Flatpak usando os [http://flatpak.org/runtimes.html/ runtimes comuns].}}<br />
<br />
{{Nota|Você pode querer usar uma conta não confiável e desprivilegiadas para construir software não confiável porque o software não é sandboxed durante a criação do app e do runtime.}}<br />
<br />
{{Nota|Quando distribuindo pacotes para outros,você pode ser legalmente obrigado a fornecer o código fonte de alguns dos softwares empacotados mediante solicitação. Vocẽ ode querer usar [[ABS_(Português)]] para construir tais pacotes a partir da fonte.}}<br />
<br />
Você pode criar uma base runtime Arch-based customizada e uma base SDK para Flatpak usando o pacman. Você pode, então, usá-las para criação e empacotamento de aplicações. Isso é uma alternativa para uso pessoal para o padrão {{ic|org.freedesktop.BasePlatform}} e {{ic|org.freedesktop.BaseSdk runtimes}}.<br />
<br />
Em adição ao {{Pkg|flatpak}}, você precisa ter instalado {{Pkg|fakeroot}} e {{Pkg|fakechroot}}, para suportar o pacman hooks.<br />
<br />
Primeiro, comece criando um diretório para criação do runtime e, possivelmente, aplicações.<br />
<br />
$ mkdir ''minhapastadecriacaoflatpak''<br />
$ cd ''minhapastadecriacaoflatpak''<br />
<br />
Você pode, então, preparar o diretório para a criação da plataforma base do runtime. Os arquivos do sub-diretório irão conter o que depois será o diretório {{ic/usr}} no sandbox. Portanto, você precisará criar links simbólicos para o padrão {{ic|/etc/share}} etc. do Arch ainda possa ser acessado no caminho usual.<br />
<br />
$ mkdir -p ''meuruntime''/files/var/lib/pacman<br />
$ touch ''meuruntime''/files/.ref<br />
$ ln -s /usr/usr/share ''meuruntime''/files/share<br />
$ ln -s /usr/usr/include ''meuruntime''/files/include<br />
$ ln -s /usr/usr/local ''meuruntime''/files/local<br />
<br />
Certifique-se que as fontes disponíveis pelo seu SO host para o runtime do Arch:<br />
<br />
$ mkdir -p ''meuruntime''/files/usr/share/fonts<br />
$ ln -s /run/host/fonts ''meuruntime''/files/usr/share/fonts/flatpakhostfonts<br />
<br />
Você precisa e talvez queira adaptar o seu {{ic|pacman.conf}} antes de instalar pacotes no runtime. Copie o {{ic|/etc/pacman.conf}} para o seu diretório de criação e então faça as seguintes mudanças:<br />
<br />
* Remova a opção {{ic|CheckSpace}} e então o pacman não reclamará sobre erros ao encontrar a raíz do sistema de arquivo para checar o espaço de disco.<br />
* Remova quaisquer repositórios customizados indesejados e as configurações {{ic|IgnorePkg}}, {{ic|IgnoreGroup}}, {{ic|NoUpgrade}} e {{ic|NoExtract}}, que são necessárias somente para o sistema hospedeiro.<br />
<br />
<br />
Agora instale os pacotes para o runtime.<br />
<br />
$ fakechroot fakeroot pacman -Syu --root ''meuruntime''/files --dbpath ''meuruntime''/files/var/lib/pacman --config pacman.conf base<br />
$ mv pacman.conf ''meuruntime''/files/etc/pacman.conf<br />
<br />
Configure os [[Locale_(Português)|locales]] a serem usados editando {{ic|''meuruntime''/files/etc/locale.gen}}. Então, regenere os locales do runtime.<br />
<br />
$ fakechroot chroot ''meuruntime''/files locale-gen<br />
<br />
A base SDK pode ser criada a partir da base runtime com adição de aplicações necessárias para a criação de pacotes e executar o pacman.<br />
<br />
$ cp -r ''meuruntime'' mysdk<br />
$ fakechroot fakeroot pacman -S --root mysdk/files --dbpath mysdk/files/var/lib/pacman --config meusdk/files/etc/pacman.conf base-devel fakeroot fakechroot --needed<br />
<br />
Insira metadados sobre runtime e SDK.<br />
<br />
{{hc|''meuruntime''/metadados|2=<br />
[Runtime]<br />
name=org.mydomain.BasePlatform<br />
runtime=org.mydomain.BasePlatform/x86_64/2016-06-26<br />
sdk=org.mydomain.BaseSdk/x86_64/2016-06-26<br />
}}<br />
<br />
{{hc|meusdk/metadados|2=<br />
[Runtime]<br />
name=org.mydomain.BaseSdk<br />
runtime=org.mydomain.BasePlatform/x86_64/2016-06-26<br />
sdk=org.mydomain.BaseSdk/x86_64/2016-06-26<br />
}}<br />
<br />
Adicione as bases runtime e SDK para um repositório local no diretório atual. Você pode querer dar para eles mensagens commit apropriadas como, por exemplo, “Minha base runtime Arch” e “Minha base SDK Arch”.<br />
<br />
$ ostree init --mode archive-z2 --repo=.<br />
$ EDITOR="nano -w" ostree commit -b runtime/org.mydomain.BasePlatform/x86_64/2016-06-26 --tree=dir=''meuruntime''<br />
$ EDITOR="nano -w" ostree commit -b runtime/org.mydomain.BaseSdk/x86_64/2016-06-26 --tree=dir=meusdk<br />
$ ostree summary -u<br />
<br />
Instale o runtime e o SDK.<br />
<br />
$ flatpak remote-add --user --no-gpg-verify myarchos file://$(pwd)<br />
$ flatpak install --user myarchos org.mydomain.BasePlatform 2016-06-26<br />
$ flatpak install --user myarchos org.mydomain.BaseSdk 2016-06-26<br />
<br />
=== Criar apps com o pacman ===<br />
<br />
Como uma alternativa para a criação de aplicação da [http://flatpak.org/developer.html forma comum], nós podemos usar o pacman para criar uma versão em contêiner dos pacotes comuns do Arch. Note que {{ic|/usr}} é somente-leitura quando criando apps, então nós não podemos usar os pacotes do Arch quando da criação de um app. Para criar um app real com o pacman, nós podemos também:<br />
<br />
* Usar o pacman para criar um runtime contendos todas as dependẽncias<br />
* e compilar os apps [http://flatpak.org/developer.html como sempre] ou talvez usando o pacman para criar um [[PKGBUILD_(Português)|PKGBUILD]] customizado e adaptado ao Flatpak, o qual usa {{ic|1=--prefix=/app}} para o script {{ic|configure}},<br />
<br />
ou nós podemos<br />
* usar o pacman para criar o runtime contendo o app instalado com o pacman<br />
* e criar um app dummy para executá-lo.<br />
<br />
Por último, primeiro crie um runtime usando o pacman como esse para o {{Pkg|gedit}}. O runtime é primeiramente inicializado e preparado para uso com o pacman.<br />
<br />
$ flatpak build-init -w geditruntime org.mydomain.geditruntime org.mydomain.BaseSdk org.mydomain.BasePlatform 2016-06-26<br />
$ flatpak build geditruntime sed -i "s/^#Server/Server/g" /etc/pacman.d/mirrorlist<br />
$ flatpak build geditruntime ln -s /usr/var/lib /var/lib<br />
$ flatpak build geditruntime fakeroot pacman-key --init<br />
$ flatpak build geditruntime fakeroot pacman-key --populate archlinux<br />
<br />
Então o pacote está instalado. A conexão da rede hospedeira deve estar disponível para o pacman.<br />
<br />
$ flatpak build --share=network geditruntime fakechroot fakeroot pacman --root /usr -S gedit<br />
<br />
Você pode testar a aplicação antes de finalizar o runtime (sem o sandboxing apropriado).<br />
<br />
$ flatpak build --socket=x11 geditruntime gedit<br />
<br />
Agora termine criando o runtime e exporte-o para um novo repositório local. As chaves GnuPG do pacman têm permissões que podem interferir e precisam ser removidas primeiro.<br />
<br />
$ flatpak build geditruntime rm -r /etc/pacman.d/gnupg<br />
$ flatpak build-finish geditruntime<br />
$ sed -i "s/\[Application\]/\[Runtime\]/;s/runtime=org.mydomain.BasePlatform/runtime=org.mydomain.geditruntime/" geditruntime/metadata<br />
$ flatpak build-export -r geditrepo geditruntime<br />
<br />
Então crie o app dummy.<br />
<br />
$ flatpak build-init geditapp org.gnome.gedit org.mydomain.BaseSdk org.mydomain.geditruntime<br />
<br />
Agora termine criando o app dummy. Você pode ajustar as permissões de acesso quando sandboxed dando opções adicionais ao terminar de criar. Para possíveis opções veja a [[#Veja também|documentação do Flatpak]] e os [https://gitlab.gnome.org/GNOME/gnome-apps-nightly/tree/master/ arquivos de manifesto do GNOME]. Alternativamente, adapte {{ic|geditapp/metadata}} para as suas necessidades após terminar de criar, mas antes de exportar. Quando os arquivos de metadados estiver concluído, exporte o app para o repositório.<br />
<br />
$ flatpak build-finish geditapp --socket=x11 ''[possibly other options]'' --command=gedit<br />
$ flatpak build-export geditrepo geditapp<br />
<br />
Instale-o junto com o runtime.<br />
<br />
$ flatpak --user remote-add --no-gpg-verify geditrepo geditrepo<br />
$ flatpak install --user geditrepo org.mydomain.geditruntime<br />
$ flatpak install --user geditrepo org.gnome.gedit<br />
$ flatpak run org.gnome.gedit<br />
<br />
== Veja também ==<br />
<br />
* [http://flatpak.org Official website]<br />
* [https://github.com/flatpak/flatpak/wiki Official Github wiki]<br />
* [[Wikipedia::Flatpak|Wikipedia page]]<br />
* [https://wiki.gnome.org/Projects/SandboxedApps Gnome SandboxedApps]<br />
* [https://community.kde.org/Guidelines_and_HOWTOs/Flatpak KDE Testing Runtime and Applications]</div>Fvguilhermehttps://wiki.archlinux.org/index.php?title=Flatpak_(Portugu%C3%AAs)&diff=581822Flatpak (Português)2019-09-08T19:32:26Z<p>Fvguilherme: </p>
<hr />
<div>[[Categoria:Desenvolvimento]]<br />
[[es:Flatpak]]<br />
[[ja:Flatpak]]<br />
[[pt:Flatpak]]<br />
{{StatusTradução|PKGBUILD|2019-08-09|23769}}<br />
{{Related articles start (Português)}}<br />
{{Related|Snapd}}<br />
{{Related|bubblewrap}}<br />
{{Related articles end}}<br />
Do projeto [https://github.com/flatpak/flatpak/blob/master/README.md README]: "''[http://flatpak.org Flatpak] é um sistema para construção, distribuição e execução de aplicações desktop sandboxed no Linux.''"<br />
<br />
De {{man|1|flatpak}}:<br />
<br />
:''Flatpak é uma ferramenta para gerenciar aplicações e os runtimes que elas usam. No modelo Flatpak, aplicações podem ser construídas e distribuídas independentemente do sistema hospedeiro em que elas estão usando, e elas são isoladas do sistema hospedeiro (‘sandboxed’) em algum grau, no runtime.''<br />
:''Flatpak usa [https://ostree.readthedocs.io/en/latest/ OSTree] para distribuir e implantar dados. Os repositórios que ele usa são repositórios OSTree epodem ser manipulados com a ferramenta ostree. Runtimes instalados e aplicações são checkouts do OSTree.''<br />
<br />
== Instalação ==<br />
<br />
[[Instale]] o pacote {{pkg|flatpak}}.<br />
<br />
{{Nota|Se você quer construir flatpaks com o {{ic|flatpak-builder}}, você precisará instalar as dependências opcionais {{pkg|elfutils}} e {{pkg|patch}}.}}<br />
<br />
== Gerenciar repositórios ==<br />
<br />
=== Adicionar um repositório ===<br />
<br />
Para adicionar um repositório flatpak remoto faça:<br />
<br />
$ flatpak remote-add ''nome'' ''localização''<br />
<br />
onde ''nome'' é o nome do novo remoto e ''localizaçã'' o é o caminho ou a URL do repositório. <br />
<br />
Por exemplo, para adicionar o [https://flathub.org/ repositório oficial Flathub]:<br />
<br />
$ flatpak remote-add --if-not-exists flathub <nowiki>https://dl.flathub.org/repo/flathub.flatpakrepo</nowiki><br />
<br />
=== Deletar repositórios ===<br />
<br />
Para deletar um repositório flatpak remoto faça:<br />
<br />
$ flatpak remote-delete ''nome''<br />
<br />
onde ''nome'' é o nome do repositório remoto a ser deletado.<br />
<br />
=== Listar repositórios ===<br />
<br />
Para listar todos os repositórios adicionados faça:<br />
<br />
$ flatpak remotes<br />
<br />
== Gerenciar runtimes e aplicações ==<br />
<br />
=== Procurar por um runtime ou aplicação ===<br />
<br />
Antes de estar pronto para procurar por um runtime ou aplicação em um novo repositório remoto adicionado, nós precisamos recuperar os dados appstream. Para isso:<br />
<br />
{{hc|$ flatpak update|<br />
Procurando por atualizações...<br />
Atualizando dados appstream para remote ''nome''<br />
}}<br />
<br />
Então nós podemos proceder para procurar por um pacote com {{ic|flatpak search ''nomedopacote''}}, ''e.g.'' para procurar pelo pacote {{ic|libreoffice}} com o {{ic|flathub}} remoto configurado:<br />
<br />
<br />
{{hc|$ flatpak search libreoffice|<br />
ID de aplicativo Versão Ramo Remotos Descrição <br />
org.libreoffice.LibreOffice stable flathub The LibreOffice productivity suite<br />
}}<br />
<br />
=== Listar todos os runtime ou aplicações disponíveis ===<br />
<br />
Para listar todos os runtimes e aplicações disponíveis em um repositório remoto nomeado como ''remoto'' faça: <br />
<br />
$ flatpak remote-ls ''remoto''<br />
<br />
=== Instalar um runtine ou aplicação ===<br />
<br />
Para instalar umruntime ou aplicação faça:<br />
<br />
$ flatpak install ''remoto'' ''nome''<br />
<br />
onde ''remoto'' é o nome do repositório remoto e ''nome'' é o nome da aplicação ou runtime a ser instalado.<br />
<br />
{{Dica|Você pode usar identificadores parciais {{ic|flatpak install ''nome-parcial''}} (por exemplo {{ic|flatpak install libreoffice}}).}}<br />
<br />
=== Listar os runtimes e aplicações instalados ===<br />
<br />
Para listar os runtimes e aplicações instaladas faça:<br />
<br />
$ flatpak list<br />
<br />
=== Rodar aplicações ===<br />
<br />
Aplicações Flatpak também podem ser executadas por linha de comando:<br />
<br />
$ flatpak run ''nome''<br />
<br />
=== Atualizar um runtime ou aplicação ===<br />
<br />
Para atualizar um runtime ou aplicação nomeada como ''nome'' faça:<br />
<br />
$ flatpak update ''name''<br />
<br />
=== Desinstalar um runtime ou aplicação ===<br />
<br />
Para desinstalar um runtime ou aplicação nomeado(a) como nome faça:<br />
<br />
$ flatpak uninstall ''name''<br />
<br />
{{Dica|Você pode desinstalar flatpak “refs” não utilizado (também conhecido como orfãos sem aplicação/runtime) com {{ic|flatpak unsinstall --unused}}.}}<br />
<br />
=== Adicionando arquivos .desktop Flatpak ao seu menu ===<br />
Flatpak espera que o gerenciador de janelas respeite a variável de ambiente XDG_DATA_DIRS para descobrir aplicações. Isso pode requerer que a sessão seja reiniciada ou o lançador pode não suportar isso. Nesse caso, onde você pode editar a lista de diretórios escaneados, adicionar isso a ela:<br />
<br />
~/.local/share/flatpak/exports/share/applications<br />
/var/lib/flatpak/exports/share/applications<br />
<br />
Isso é sabidamente necessário no Awesome.<br />
<br />
=== Vendo as permissões sandbox da aplicação ===<br />
Aplicações Flatpak vêm com regras sandbox pré-definidas que definem quais os recursos e os caminhos do sistema de arquivos a aplicação tem permissão para acessar. <br />
Para ver as permissões de uma aplicação específica faça:<br />
<br />
$ flatpak info --show-permissions ''name''<br />
A referência para os nomes das permissões sandbox podem ser encontradas na [https://docs.flatpak.org/en/latest/sandbox-permissions-reference.html/ documentação oficial do Flatpak.]<br />
<br />
=== Sobrescrevendo permissões sandbox de aplicações ===<br />
Se você acha que as permissões pré-definidas da aplicação é muito permissiva ou muito restritiva, você pode mudar para qualquer uma que quiser usando o comando {{ic|flatpak override}}.<br />
Por exemplo:<br />
$ flatpak override --nofilesystem=home ''name''<br />
Isso irá prevenir que a aplicação acesse a sua pasta home.<br />
<br />
Todo tipo de permissão como dispositivo, sistema de arquivo ou soquete tem um uma linha de comando que permite aquela permissão em particular e uma opção separada que nega. Por exemplo, no caso de acesso ao dispositivo {{ic|1=--device=device_''nome''}} permite o acesso, {{ic|1=--no-device=device_''nome''}} nega a permissão para acessar o dispositivo.<br />
<br />
Para todos os tipos de comandos de permissão consulte a página de manual: {{man|1|flatpak-override(1)}}.<br />
<br />
Substituições de permissão podem ser resetadas para o padrão com o comando:<br />
$ flatpak override --reset ''nome''<br />
<br />
== Criar uma base de runtime customizada ==<br />
<br />
{{Expansão|Isso certamente pode ser melhorado. Isso também tem problemas com D-Bus para apps do GNOME. (Discussão em [https://wiki.archlinux.org/index.php/Talk:Flatpak/ Talk:Flatpak#]}}<br />
<br />
{{Aviso|Se você quer lançar o seu software para o público como Flatpak, um runtime Arch-based é inadequada. Nesse caso, você precisará seguir a [http://docs.flatpak.org/ documentação oficial] para integrar seu software ao ecossistema adequado do Flatpak usando os [http://flatpak.org/runtimes.html/ runtimes comuns].}}<br />
<br />
{{Nota|Você pode querer usar uma conta não confiável e desprivilegiadas para construir software não confiável porque o software não é sandboxed durante a criação do app e do runtime.}}<br />
<br />
{{Nota|Quando distribuindo pacotes para outros,você pode ser legalmente obrigado a fornecer o código fonte de alguns dos softwares empacotados mediante solicitação. Vocẽ ode querer usar [[ABS_(Português)]] para construir tais pacotes a partir da fonte.}}<br />
<br />
Você pode criar uma base runtime Arch-based customizada e uma base SDK para Flatpak usando o pacman. Você pode, então, usá-las para criação e empacotamento de aplicações. Isso é uma alternativa para uso pessoal para o padrão {{ic|org.freedesktop.BasePlatform}} e {{ic|org.freedesktop.BaseSdk runtimes}}.<br />
<br />
Em adição ao {{Pkg|flatpak}}, você precisa ter instalado {{Pkg|fakeroot}} e {{Pkg|fakechroot}}, para suportar o pacman hooks.<br />
<br />
Primeiro, comece criando um diretório para criação do runtime e, possivelmente, aplicações.<br />
<br />
$ mkdir ''minhapastadecriacaoflatpak''<br />
$ cd ''minhapastadecriacaoflatpak''<br />
<br />
Você pode, então, preparar o diretório para a criação da plataforma base do runtime. Os arquivos do sub-diretório irão conter o que depois será o diretório {{ic/usr}} no sandbox. Portanto, você precisará criar links simbólicos para o padrão {{ic|/etc/share}} etc. do Arch ainda possa ser acessado no caminho usual.<br />
<br />
$ mkdir -p ''meuruntime''/files/var/lib/pacman<br />
$ touch ''meuruntime''/files/.ref<br />
$ ln -s /usr/usr/share ''meuruntime''/files/share<br />
$ ln -s /usr/usr/include ''meuruntime''/files/include<br />
$ ln -s /usr/usr/local ''meuruntime''/files/local<br />
<br />
Certifique-se que as fontes disponíveis pelo seu SO host para o runtime do Arch:<br />
<br />
$ mkdir -p ''meuruntime''/files/usr/share/fonts<br />
$ ln -s /run/host/fonts ''meuruntime''/files/usr/share/fonts/flatpakhostfonts<br />
<br />
Você precisa e talvez queira adaptar o seu {{ic|pacman.conf}} antes de instalar pacotes no runtime. Copie o {{ic|/etc/pacman.conf}} para o seu diretório de criação e então faça as seguintes mudanças:<br />
<br />
* Remova a opção {{ic|CheckSpace}} e então o pacman não reclamará sobre erros ao encontrar a raíz do sistema de arquivo para checar o espaço de disco.<br />
* Remova quaisquer repositórios customizados indesejados e as configurações {{ic|IgnorePkg}}, {{ic|IgnoreGroup}}, {{ic|NoUpgrade}} e {{ic|NoExtract}}, que são necessárias somente para o sistema hospedeiro.<br />
<br />
<br />
Agora instale os pacotes para o runtime.<br />
<br />
$ fakechroot fakeroot pacman -Syu --root ''meuruntime''/files --dbpath ''meuruntime''/files/var/lib/pacman --config pacman.conf base<br />
$ mv pacman.conf ''meuruntime''/files/etc/pacman.conf<br />
<br />
Configure os [[Locale_(Português)|locales]] a serem usados editando {{ic|''meuruntime''/files/etc/locale.gen}}. Então, regenere os locales do runtime.<br />
<br />
$ fakechroot chroot ''meuruntime''/files locale-gen<br />
<br />
A base SDK pode ser criada a partir da base runtime com adição de aplicações necessárias para a criação de pacotes e executar o pacman.<br />
<br />
$ cp -r ''meuruntime'' mysdk<br />
$ fakechroot fakeroot pacman -S --root mysdk/files --dbpath mysdk/files/var/lib/pacman --config meusdk/files/etc/pacman.conf base-devel fakeroot fakechroot --needed<br />
<br />
Insira metadados sobre runtime e SDK.<br />
<br />
{{hc|''meuruntime''/metadados|2=<br />
[Runtime]<br />
name=org.mydomain.BasePlatform<br />
runtime=org.mydomain.BasePlatform/x86_64/2016-06-26<br />
sdk=org.mydomain.BaseSdk/x86_64/2016-06-26<br />
}}<br />
<br />
{{hc|meusdk/metadados|2=<br />
[Runtime]<br />
name=org.mydomain.BaseSdk<br />
runtime=org.mydomain.BasePlatform/x86_64/2016-06-26<br />
sdk=org.mydomain.BaseSdk/x86_64/2016-06-26<br />
}}<br />
<br />
Adicione as bases runtime e SDK para um repositório local no diretório atual. Você pode querer dar para eles mensagens commit apropriadas como, por exemplo, “Minha base runtime Arch” e “Minha base SDK Arch”.<br />
<br />
$ ostree init --mode archive-z2 --repo=.<br />
$ EDITOR="nano -w" ostree commit -b runtime/org.mydomain.BasePlatform/x86_64/2016-06-26 --tree=dir=''meuruntime''<br />
$ EDITOR="nano -w" ostree commit -b runtime/org.mydomain.BaseSdk/x86_64/2016-06-26 --tree=dir=meusdk<br />
$ ostree summary -u<br />
<br />
Instale o runtime e o SDK.<br />
<br />
$ flatpak remote-add --user --no-gpg-verify myarchos file://$(pwd)<br />
$ flatpak install --user myarchos org.mydomain.BasePlatform 2016-06-26<br />
$ flatpak install --user myarchos org.mydomain.BaseSdk 2016-06-26<br />
<br />
=== Criar apps com o pacman ===<br />
<br />
Como uma alternativa para a criação de aplicação da [http://flatpak.org/developer.html forma comum], nós podemos usar o pacman para criar uma versão em contêiner dos pacotes comuns do Arch. Note que {{ic|/usr}} é somente-leitura quando criando apps, então nós não podemos usar os pacotes do Arch quando da criação de um app. Para criar um app real com o pacman, nós podemos também:<br />
<br />
* Usar o pacman para criar um runtime contendos todas as dependẽncias<br />
* e compilar os apps [http://flatpak.org/developer.html como sempre] ou talvez usando o pacman para criar um [[PKGBUILD_(Português)|PKGBUILD]] customizado e adaptado ao Flatpak, o qual usa {{ic|1=--prefix=/app}} para o script {{ic|configure}},<br />
<br />
ou nós podemos<br />
* usar o pacman para criar o runtime contendo o app instalado com o pacman<br />
* e criar um app dummy para executá-lo.<br />
<br />
Por último, primeiro crie um runtime usando o pacman como esse para o {{Pkg|gedit}}. O runtime é primeiramente inicializado e preparado para uso com o pacman.<br />
<br />
$ flatpak build-init -w geditruntime org.mydomain.geditruntime org.mydomain.BaseSdk org.mydomain.BasePlatform 2016-06-26<br />
$ flatpak build geditruntime sed -i "s/^#Server/Server/g" /etc/pacman.d/mirrorlist<br />
$ flatpak build geditruntime ln -s /usr/var/lib /var/lib<br />
$ flatpak build geditruntime fakeroot pacman-key --init<br />
$ flatpak build geditruntime fakeroot pacman-key --populate archlinux<br />
<br />
Então o pacote está instalado. A conexão da rede hospedeira deve estar disponível para o pacman.<br />
<br />
$ flatpak build --share=network geditruntime fakechroot fakeroot pacman --root /usr -S gedit<br />
<br />
Você pode testar a aplicação antes de finalizar o runtime (sem o sandboxing apropriado).<br />
<br />
$ flatpak build --socket=x11 geditruntime gedit<br />
<br />
Agora termine criando o runtime e exporte-o para um novo repositório local. As chaves GnuPG do pacman têm permissões que podem interferir e precisam ser removidas primeiro.<br />
<br />
$ flatpak build geditruntime rm -r /etc/pacman.d/gnupg<br />
$ flatpak build-finish geditruntime<br />
$ sed -i "s/\[Application\]/\[Runtime\]/;s/runtime=org.mydomain.BasePlatform/runtime=org.mydomain.geditruntime/" geditruntime/metadata<br />
$ flatpak build-export -r geditrepo geditruntime<br />
<br />
Então crie o app dummy.<br />
<br />
$ flatpak build-init geditapp org.gnome.gedit org.mydomain.BaseSdk org.mydomain.geditruntime<br />
<br />
Agora termine criando o app dummy. Você pode ajustar as permissões de acesso quando sandboxed dando opções adicionais ao terminar de criar. Para possíveis opções veja a [[#Veja também|documentação do Flatpak]] e os [https://gitlab.gnome.org/GNOME/gnome-apps-nightly/tree/master/ arquivos de manifesto do GNOME]. Alternativamente, adapte {{ic|geditapp/metadata}} para as suas necessidades após terminar de criar, mas antes de exportar. Quando os arquivos de metadados estiver concluído, exporte o app para o repositório.<br />
<br />
$ flatpak build-finish geditapp --socket=x11 ''[possibly other options]'' --command=gedit<br />
$ flatpak build-export geditrepo geditapp<br />
<br />
Instale-o junto com o runtime.<br />
<br />
$ flatpak --user remote-add --no-gpg-verify geditrepo geditrepo<br />
$ flatpak install --user geditrepo org.mydomain.geditruntime<br />
$ flatpak install --user geditrepo org.gnome.gedit<br />
$ flatpak run org.gnome.gedit<br />
<br />
== Veja também ==<br />
<br />
* [http://flatpak.org Official website]<br />
* [https://github.com/flatpak/flatpak/wiki Official Github wiki]<br />
* [[Wikipedia::Flatpak|Wikipedia page]]<br />
* [https://wiki.gnome.org/Projects/SandboxedApps Gnome SandboxedApps]<br />
* [https://community.kde.org/Guidelines_and_HOWTOs/Flatpak KDE Testing Runtime and Applications]</div>Fvguilhermehttps://wiki.archlinux.org/index.php?title=Flatpak_(Portugu%C3%AAs)&diff=581821Flatpak (Português)2019-09-08T19:26:35Z<p>Fvguilherme: Translate the Flatpak's wiki page.</p>
<hr />
<div>[[Categoria:Desenvolvimento]]<br />
[[es:Flatpak]]<br />
[[ja:Flatpak]]<br />
[[pt:Flatpak]]<br />
{{Related articles start}}<br />
{{Relacionado|Snapd}}<br />
{{Relacionado|bubblewrap}}<br />
{{Related articles end}}<br />
Do projeto [https://github.com/flatpak/flatpak/blob/master/README.md README]: "''[http://flatpak.org Flatpak] é um sistema para construção, distribuição e execução de aplicações desktop sandboxed no Linux.''"<br />
<br />
De {{man|1|flatpak}}:<br />
<br />
:''Flatpak é uma ferramenta para gerenciar aplicações e os runtimes que elas usam. No modelo Flatpak, aplicações podem ser construídas e distribuídas independentemente do sistema hospedeiro em que elas estão usando, e elas são isoladas do sistema hospedeiro (‘sandboxed’) em algum grau, no runtime.''<br />
:''Flatpak usa [https://ostree.readthedocs.io/en/latest/ OSTree] para distribuir e implantar dados. Os repositórios que ele usa são repositórios OSTree epodem ser manipulados com a ferramenta ostree. Runtimes instalados e aplicações são checkouts do OSTree.''<br />
<br />
== Instalação ==<br />
<br />
[[Instale]] o pacote {{pkg|flatpak}}.<br />
<br />
{{Nota|Se você quer construir flatpaks com o {{ic|flatpak-builder}}, você precisará instalar as dependências opcionais {{pkg|elfutils}} e {{pkg|patch}}.}}<br />
<br />
== Gerenciar repositórios ==<br />
<br />
=== Adicionar um repositório ===<br />
<br />
Para adicionar um repositório flatpak remoto faça:<br />
<br />
$ flatpak remote-add ''nome'' ''localização''<br />
<br />
onde ''nome'' é o nome do novo remoto e ''localizaçã'' o é o caminho ou a URL do repositório. <br />
<br />
Por exemplo, para adicionar o [https://flathub.org/ repositório oficial Flathub]:<br />
<br />
$ flatpak remote-add --if-not-exists flathub <nowiki>https://dl.flathub.org/repo/flathub.flatpakrepo</nowiki><br />
<br />
=== Deletar repositórios ===<br />
<br />
Para deletar um repositório flatpak remoto faça:<br />
<br />
$ flatpak remote-delete ''nome''<br />
<br />
onde ''nome'' é o nome do repositório remoto a ser deletado.<br />
<br />
=== Listar repositórios ===<br />
<br />
Para listar todos os repositórios adicionados faça:<br />
<br />
$ flatpak remotes<br />
<br />
== Gerenciar runtimes e aplicações ==<br />
<br />
=== Procurar por um runtime ou aplicação ===<br />
<br />
Antes de estar pronto para procurar por um runtime ou aplicação em um novo repositório remoto adicionado, nós precisamos recuperar os dados appstream. Para isso:<br />
<br />
{{hc|$ flatpak update|<br />
Procurando por atualizações...<br />
Atualizando dados appstream para remote ''nome''<br />
}}<br />
<br />
Então nós podemos proceder para procurar por um pacote com {{ic|flatpak search ''nomedopacote''}}, ''e.g.'' para procurar pelo pacote {{ic|libreoffice}} com o {{ic|flathub}} remoto configurado:<br />
<br />
<br />
{{hc|$ flatpak search libreoffice|<br />
ID de aplicativo Versão Ramo Remotos Descrição <br />
org.libreoffice.LibreOffice stable flathub The LibreOffice productivity suite<br />
}}<br />
<br />
=== Listar todos os runtime ou aplicações disponíveis ===<br />
<br />
Para listar todos os runtimes e aplicações disponíveis em um repositório remoto nomeado como ''remoto'' faça: <br />
<br />
$ flatpak remote-ls ''remoto''<br />
<br />
=== Instalar um runtine ou aplicação ===<br />
<br />
Para instalar umruntime ou aplicação faça:<br />
<br />
$ flatpak install ''remoto'' ''nome''<br />
<br />
onde ''remoto'' é o nome do repositório remoto e ''nome'' é o nome da aplicação ou runtime a ser instalado.<br />
<br />
{{Dica|Você pode usar identificadores parciais {{ic|flatpak install ''nome-parcial''}} (por exemplo {{ic|flatpak install libreoffice}}).}}<br />
<br />
=== Listar os runtimes e aplicações instalados ===<br />
<br />
Para listar os runtimes e aplicações instaladas faça:<br />
<br />
$ flatpak list<br />
<br />
=== Rodar aplicações ===<br />
<br />
Aplicações Flatpak também podem ser executadas por linha de comando:<br />
<br />
$ flatpak run ''nome''<br />
<br />
=== Atualizar um runtime ou aplicação ===<br />
<br />
Para atualizar um runtime ou aplicação nomeada como ''nome'' faça:<br />
<br />
$ flatpak update ''name''<br />
<br />
=== Desinstalar um runtime ou aplicação ===<br />
<br />
Para desinstalar um runtime ou aplicação nomeado(a) como nome faça:<br />
<br />
$ flatpak uninstall ''name''<br />
<br />
{{Dica|Você pode desinstalar flatpak “refs” não utilizado (também conhecido como orfãos sem aplicação/runtime) com {{ic|flatpak unsinstall --unused}}.}}<br />
<br />
=== Adicionando arquivos .desktop Flatpak ao seu menu ===<br />
Flatpak espera que o gerenciador de janelas respeite a variável de ambiente XDG_DATA_DIRS para descobrir aplicações. Isso pode requerer que a sessão seja reiniciada ou o lançador pode não suportar isso. Nesse caso, onde você pode editar a lista de diretórios escaneados, adicionar isso a ela:<br />
<br />
~/.local/share/flatpak/exports/share/applications<br />
/var/lib/flatpak/exports/share/applications<br />
<br />
Isso é sabidamente necessário no Awesome.<br />
<br />
=== Vendo as permissões sandbox da aplicação ===<br />
Aplicações Flatpak vêm com regras sandbox pré-definidas que definem quais os recursos e os caminhos do sistema de arquivos a aplicação tem permissão para acessar. <br />
Para ver as permissões de uma aplicação específica faça:<br />
<br />
$ flatpak info --show-permissions ''name''<br />
A referência para os nomes das permissões sandbox podem ser encontradas na [https://docs.flatpak.org/en/latest/sandbox-permissions-reference.html/ documentação oficial do Flatpak.]<br />
<br />
=== Sobrescrevendo permissões sandbox de aplicações ===<br />
Se você acha que as permissões pré-definidas da aplicação é muito permissiva ou muito restritiva, você pode mudar para qualquer uma que quiser usando o comando {{ic|flatpak override}}.<br />
Por exemplo:<br />
$ flatpak override --nofilesystem=home ''name''<br />
Isso irá prevenir que a aplicação acesse a sua pasta home.<br />
<br />
Todo tipo de permissão como dispositivo, sistema de arquivo ou soquete tem um uma linha de comando que permite aquela permissão em particular e uma opção separada que nega. Por exemplo, no caso de acesso ao dispositivo {{ic|1=--device=device_''nome''}} permite o acesso, {{ic|1=--no-device=device_''nome''}} nega a permissão para acessar o dispositivo.<br />
<br />
Para todos os tipos de comandos de permissão consulte a página de manual: {{man|1|flatpak-override(1)}}.<br />
<br />
Substituições de permissão podem ser resetadas para o padrão com o comando:<br />
$ flatpak override --reset ''nome''<br />
<br />
== Criar uma base de runtime customizada ==<br />
<br />
{{Expansão|Isso certamente pode ser melhorado. Isso também tem problemas com D-Bus para apps do GNOME. (Discussão em [https://wiki.archlinux.org/index.php/Talk:Flatpak/ Talk:Flatpak#]}}<br />
<br />
{{Aviso|Se você quer lançar o seu software para o público como Flatpak, um runtime Arch-based é inadequada. Nesse caso, você precisará seguir a [http://docs.flatpak.org/ documentação oficial] para integrar seu software ao ecossistema adequado do Flatpak usando os [http://flatpak.org/runtimes.html/ runtimes comuns].}}<br />
<br />
{{Nota|Você pode querer usar uma conta não confiável e desprivilegiadas para construir software não confiável porque o software não é sandboxed durante a criação do app e do runtime.}}<br />
<br />
{{Nota|Quando distribuindo pacotes para outros,você pode ser legalmente obrigado a fornecer o código fonte de alguns dos softwares empacotados mediante solicitação. Vocẽ ode querer usar [[ABS_(Português)]] para construir tais pacotes a partir da fonte.}}<br />
<br />
Você pode criar uma base runtime Arch-based customizada e uma base SDK para Flatpak usando o pacman. Você pode, então, usá-las para criação e empacotamento de aplicações. Isso é uma alternativa para uso pessoal para o padrão {{ic|org.freedesktop.BasePlatform}} e {{ic|org.freedesktop.BaseSdk runtimes}}.<br />
<br />
Em adição ao {{Pkg|flatpak}}, você precisa ter instalado {{Pkg|fakeroot}} e {{Pkg|fakechroot}}, para suportar o pacman hooks.<br />
<br />
Primeiro, comece criando um diretório para criação do runtime e, possivelmente, aplicações.<br />
<br />
$ mkdir ''minhapastadecriacaoflatpak''<br />
$ cd ''minhapastadecriacaoflatpak''<br />
<br />
Você pode, então, preparar o diretório para a criação da plataforma base do runtime. Os arquivos do sub-diretório irão conter o que depois será o diretório {{ic/usr}} no sandbox. Portanto, você precisará criar links simbólicos para o padrão {{ic|/etc/share}} etc. do Arch ainda possa ser acessado no caminho usual.<br />
<br />
$ mkdir -p ''meuruntime''/files/var/lib/pacman<br />
$ touch ''meuruntime''/files/.ref<br />
$ ln -s /usr/usr/share ''meuruntime''/files/share<br />
$ ln -s /usr/usr/include ''meuruntime''/files/include<br />
$ ln -s /usr/usr/local ''meuruntime''/files/local<br />
<br />
Certifique-se que as fontes disponíveis pelo seu SO host para o runtime do Arch:<br />
<br />
$ mkdir -p ''meuruntime''/files/usr/share/fonts<br />
$ ln -s /run/host/fonts ''meuruntime''/files/usr/share/fonts/flatpakhostfonts<br />
<br />
Você precisa e talvez queira adaptar o seu {{ic|pacman.conf}} antes de instalar pacotes no runtime. Copie o {{ic|/etc/pacman.conf}} para o seu diretório de criação e então faça as seguintes mudanças:<br />
<br />
* Remova a opção {{ic|CheckSpace}} e então o pacman não reclamará sobre erros ao encontrar a raíz do sistema de arquivo para checar o espaço de disco.<br />
* Remova quaisquer repositórios customizados indesejados e as configurações {{ic|IgnorePkg}}, {{ic|IgnoreGroup}}, {{ic|NoUpgrade}} e {{ic|NoExtract}}, que são necessárias somente para o sistema hospedeiro.<br />
<br />
<br />
Agora instale os pacotes para o runtime.<br />
<br />
$ fakechroot fakeroot pacman -Syu --root ''meuruntime''/files --dbpath ''meuruntime''/files/var/lib/pacman --config pacman.conf base<br />
$ mv pacman.conf ''meuruntime''/files/etc/pacman.conf<br />
<br />
Configure os [[Locale_(Português)|locales]] a serem usados editando {{ic|''meuruntime''/files/etc/locale.gen}}. Então, regenere os locales do runtime.<br />
<br />
$ fakechroot chroot ''meuruntime''/files locale-gen<br />
<br />
A base SDK pode ser criada a partir da base runtime com adição de aplicações necessárias para a criação de pacotes e executar o pacman.<br />
<br />
$ cp -r ''meuruntime'' mysdk<br />
$ fakechroot fakeroot pacman -S --root mysdk/files --dbpath mysdk/files/var/lib/pacman --config meusdk/files/etc/pacman.conf base-devel fakeroot fakechroot --needed<br />
<br />
Insira metadados sobre runtime e SDK.<br />
<br />
{{hc|''meuruntime''/metadados|2=<br />
[Runtime]<br />
name=org.mydomain.BasePlatform<br />
runtime=org.mydomain.BasePlatform/x86_64/2016-06-26<br />
sdk=org.mydomain.BaseSdk/x86_64/2016-06-26<br />
}}<br />
<br />
{{hc|meusdk/metadados|2=<br />
[Runtime]<br />
name=org.mydomain.BaseSdk<br />
runtime=org.mydomain.BasePlatform/x86_64/2016-06-26<br />
sdk=org.mydomain.BaseSdk/x86_64/2016-06-26<br />
}}<br />
<br />
Adicione as bases runtime e SDK para um repositório local no diretório atual. Você pode querer dar para eles mensagens commit apropriadas como, por exemplo, “Minha base runtime Arch” e “Minha base SDK Arch”.<br />
<br />
$ ostree init --mode archive-z2 --repo=.<br />
$ EDITOR="nano -w" ostree commit -b runtime/org.mydomain.BasePlatform/x86_64/2016-06-26 --tree=dir=''meuruntime''<br />
$ EDITOR="nano -w" ostree commit -b runtime/org.mydomain.BaseSdk/x86_64/2016-06-26 --tree=dir=meusdk<br />
$ ostree summary -u<br />
<br />
Instale o runtime e o SDK.<br />
<br />
$ flatpak remote-add --user --no-gpg-verify myarchos file://$(pwd)<br />
$ flatpak install --user myarchos org.mydomain.BasePlatform 2016-06-26<br />
$ flatpak install --user myarchos org.mydomain.BaseSdk 2016-06-26<br />
<br />
=== Criar apps com o pacman ===<br />
<br />
Como uma alternativa para a criação de aplicação da [http://flatpak.org/developer.html forma comum], nós podemos usar o pacman para criar uma versão em contêiner dos pacotes comuns do Arch. Note que {{ic|/usr}} é somente-leitura quando criando apps, então nós não podemos usar os pacotes do Arch quando da criação de um app. Para criar um app real com o pacman, nós podemos também:<br />
<br />
* Usar o pacman para criar um runtime contendos todas as dependẽncias<br />
* e compilar os apps [http://flatpak.org/developer.html como sempre] ou talvez usando o pacman para criar um [[PKGBUILD_(Português)|PKGBUILD]] customizado e adaptado ao Flatpak, o qual usa {{ic|1=--prefix=/app}} para o script {{ic|configure}},<br />
<br />
ou nós podemos<br />
* usar o pacman para criar o runtime contendo o app instalado com o pacman<br />
* e criar um app dummy para executá-lo.<br />
<br />
Por último, primeiro crie um runtime usando o pacman como esse para o {{Pkg|gedit}}. O runtime é primeiramente inicializado e preparado para uso com o pacman.<br />
<br />
$ flatpak build-init -w geditruntime org.mydomain.geditruntime org.mydomain.BaseSdk org.mydomain.BasePlatform 2016-06-26<br />
$ flatpak build geditruntime sed -i "s/^#Server/Server/g" /etc/pacman.d/mirrorlist<br />
$ flatpak build geditruntime ln -s /usr/var/lib /var/lib<br />
$ flatpak build geditruntime fakeroot pacman-key --init<br />
$ flatpak build geditruntime fakeroot pacman-key --populate archlinux<br />
<br />
Então o pacote está instalado. A conexão da rede hospedeira deve estar disponível para o pacman.<br />
<br />
$ flatpak build --share=network geditruntime fakechroot fakeroot pacman --root /usr -S gedit<br />
<br />
Você pode testar a aplicação antes de finalizar o runtime (sem o sandboxing apropriado).<br />
<br />
$ flatpak build --socket=x11 geditruntime gedit<br />
<br />
Agora termine criando o runtime e exporte-o para um novo repositório local. As chaves GnuPG do pacman têm permissões que podem interferir e precisam ser removidas primeiro.<br />
<br />
$ flatpak build geditruntime rm -r /etc/pacman.d/gnupg<br />
$ flatpak build-finish geditruntime<br />
$ sed -i "s/\[Application\]/\[Runtime\]/;s/runtime=org.mydomain.BasePlatform/runtime=org.mydomain.geditruntime/" geditruntime/metadata<br />
$ flatpak build-export -r geditrepo geditruntime<br />
<br />
Então crie o app dummy.<br />
<br />
$ flatpak build-init geditapp org.gnome.gedit org.mydomain.BaseSdk org.mydomain.geditruntime<br />
<br />
Agora termine criando o app dummy. Você pode ajustar as permissões de acesso quando sandboxed dando opções adicionais ao terminar de criar. Para possíveis opções veja a [[#Veja também|documentação do Flatpak]] e os [https://gitlab.gnome.org/GNOME/gnome-apps-nightly/tree/master/ arquivos de manifesto do GNOME]. Alternativamente, adapte {{ic|geditapp/metadata}} para as suas necessidades após terminar de criar, mas antes de exportar. Quando os arquivos de metadados estiver concluído, exporte o app para o repositório.<br />
<br />
$ flatpak build-finish geditapp --socket=x11 ''[possibly other options]'' --command=gedit<br />
$ flatpak build-export geditrepo geditapp<br />
<br />
Instale-o junto com o runtime.<br />
<br />
$ flatpak --user remote-add --no-gpg-verify geditrepo geditrepo<br />
$ flatpak install --user geditrepo org.mydomain.geditruntime<br />
$ flatpak install --user geditrepo org.gnome.gedit<br />
$ flatpak run org.gnome.gedit<br />
<br />
== Veja também ==<br />
<br />
* [http://flatpak.org Official website]<br />
* [https://github.com/flatpak/flatpak/wiki Official Github wiki]<br />
* [[Wikipedia::Flatpak|Wikipedia page]]<br />
* [https://wiki.gnome.org/Projects/SandboxedApps Gnome SandboxedApps]<br />
* [https://community.kde.org/Guidelines_and_HOWTOs/Flatpak KDE Testing Runtime and Applications]</div>Fvguilhermehttps://wiki.archlinux.org/index.php?title=Flatpak&diff=581812Flatpak2019-09-08T17:42:22Z<p>Fvguilherme: Add interlanguage link to PT (Brazil) to begin the translation of Flatpak's wiki page.</p>
<hr />
<div>[[Category:Development]]<br />
[[es:Flatpak]]<br />
[[ja:Flatpak]]<br />
[[pt:Flatpak]]<br />
{{Related articles start}}<br />
{{Related|Snapd}}<br />
{{Related|bubblewrap}}<br />
{{Related articles end}}<br />
From the project [https://github.com/flatpak/flatpak/blob/master/README.md README]: "''[http://flatpak.org Flatpak] is a system for building, distributing and running sandboxed desktop applications on Linux.''"<br />
<br />
From {{man|1|flatpak}}:<br />
<br />
:''Flatpak is a tool for managing applications and the runtimes they use. In the Flatpak model, applications can be built and distributed independently from the host system they are used on, and they are isolated from the host system ('sandboxed') to some degree, at runtime.''<br />
:''Flatpak uses [https://ostree.readthedocs.io/en/latest/ OSTree] to distribute and deploy data. The repositories it uses are OSTree repositories and can be manipulated with the ostree utility. Installed runtimes and applications are OSTree checkouts.''<br />
<br />
== Installation ==<br />
<br />
[[Install]] the {{pkg|flatpak}} package.<br />
<br />
{{Note|If you want to build flatpaks with {{ic|flatpak-builder}} you will need to install the optional dependencies of {{pkg|elfutils}} and {{pkg|patch}}.}}<br />
<br />
== Managing repositories ==<br />
<br />
=== Add a repository ===<br />
<br />
To add a remote flatpak repository do:<br />
<br />
$ flatpak remote-add ''name'' ''location''<br />
<br />
where ''name'' is the name for the new remote, and ''location'' is the path or URL for the repository.<br />
<br />
For example to add the official [https://flathub.org/ Flathub repository]:<br />
<br />
$ flatpak remote-add --if-not-exists flathub <nowiki>https://dl.flathub.org/repo/flathub.flatpakrepo</nowiki><br />
<br />
=== Delete a repository ===<br />
<br />
To delete a remote flatpak repository do:<br />
<br />
$ flatpak remote-delete ''name''<br />
<br />
where ''name'' is the name of the remote repository to be deleted.<br />
<br />
=== List repositories ===<br />
<br />
To list all the added repositories do:<br />
<br />
$ flatpak remotes<br />
<br />
== Managing runtimes and applications ==<br />
<br />
=== Search for a remote runtime or application ===<br />
<br />
Before being able to search for a runtime or application in a newly added remote repository, we need to retrieve the appstream data for it:<br />
<br />
{{hc|$ flatpak update|<br />
Looking for updates...<br />
Updating appstream data for remote ''name''<br />
}}<br />
<br />
Then we can proceed to search for a package with {{ic|flatpak search ''packagename''}}, ''e.g.'' to look for the package {{ic|libreoffice}} with the {{ic|flathub}} remote configured:<br />
<br />
{{hc|$ flatpak search libreoffice|<br />
Application ID Version Branch Remotes Description <br />
org.libreoffice.LibreOffice stable flathub The LibreOffice productivity suite<br />
}}<br />
<br />
=== List all available runtimes and applications ===<br />
<br />
To list all available runtimes and applications in a remote repository named ''remote'' do:<br />
<br />
$ flatpak remote-ls ''remote''<br />
<br />
=== Install a runtime or application ===<br />
<br />
To install a runtime or application do:<br />
<br />
$ flatpak install ''remote'' ''name''<br />
<br />
where ''remote'' is the name of the remote repository, and ''name'' is the name of the application or runtime to install.<br />
<br />
{{Tip|You can use partial identifiers {{ic|flatpak install ''partial-name''}} (for example {{ic|flatpak install libreoffice}}).}}<br />
<br />
=== List installed runtimes and applications ===<br />
<br />
To list installed runtimes and applications do:<br />
<br />
$ flatpak list<br />
<br />
=== Run applications ===<br />
<br />
Flatpak applications can also be run from the command line:<br />
<br />
$ flatpak run ''name''<br />
<br />
=== Update a runtime or application ===<br />
<br />
To update a runtime or application named ''name'' do:<br />
<br />
$ flatpak update ''name''<br />
<br />
=== Uninstall a runtime or application ===<br />
<br />
To uninstall a runtime or application named ''name'' do:<br />
<br />
$ flatpak uninstall ''name''<br />
<br />
{{Tip|You can uninstall unused flatpak "refs" (aka orphans with no application/runtime) with {{ic|flatpak uninstall --unused}}.}}<br />
<br />
=== Adding Flatpak .desktop files to your menu ===<br />
Flatpak expects window managers to respect the XDG_DATA_DIRS environment variable to discover applications. This may require restarting the session or the launcher may not support this. In such a case where you can edit the list of directories scanned, add these to it:<br />
<br />
~/.local/share/flatpak/exports/share/applications<br />
/var/lib/flatpak/exports/share/applications<br />
<br />
This is known to be necessary in Awesome.<br />
<br />
=== Viewing sandbox permissions of application ===<br />
Flatpak applications come with predefined sandbox rules which defines the resources and file system paths the application is allowed to access.<br />
To view the specific application permissions do:<br />
$ flatpak info --show-permissions ''name''<br />
The reference of the sandbox permission names can be found on [https://docs.flatpak.org/en/latest/sandbox-permissions-reference.html official flatpak documentation].<br />
<br />
=== Overriding sandbox permissions of applications ===<br />
If you find the predefined permissions of the application too lax or too restrictive you can change to anything you want using {{ic|flatpak override}} command.<br />
For example:<br />
flatpak override --nofilesystem=home ''name''<br />
This will prevent the application access to your home folder.<br />
<br />
Every type of permission such as device, filesystem or socket has an command line option that allows that particular permission and a separated option that denies. For example, in case of device access {{ic|1=--device=''device_name''}} allows access, {{ic|1=--nodevice=''device_name''}} denies the permission to access device.<br />
<br />
For all permission types commands consult the manual page: {{man|1|flatpak-override}}<br />
<br />
Permission overrides can be reset to defaults with command:<br />
$ flatpak override --reset ''name''<br />
<br />
== Creating a custom base runtime ==<br />
<br />
{{Expansion|This can certainly be improved. It also has problems with D-Bus for GNOME apps.}}<br />
<br />
{{Warning|If you want to release your software to the public as a Flatpak, an Arch-based runtime is unsuitable. In this case, you will want to follow [http://docs.flatpak.org official documentation] to integrate your software into the proper Flatpak ecosystem using the [http://flatpak.org/runtimes.html common runtimes].}}<br />
<br />
{{Note|You may want to use an untrusted, unprivileged user account for bundling untrusted software because the software is not sandboxed during app and runtime creation.}}<br />
<br />
{{Note|When distributing bundles to others, you may be legally obliged to provide the source code of some of the bundled software upon request. You may want to use [[ABS]] to build these packages from source.}}<br />
<br />
You can create a custom Arch-based base runtime and base SDK for Flatpak using pacman. You can then use it for building and packaging applications. This is an alternative for personal use to the default {{ic|org.freedesktop.BasePlatform}} and {{ic|org.freedesktop.BaseSdk}} runtimes.<br />
<br />
In addition to {{Pkg|flatpak}}, you need to have installed {{Pkg|fakeroot}} and for pacman hooks support also {{Pkg|fakechroot}}.<br />
<br />
First, start by creating a directory for building the runtime and possibly applications.<br />
<br />
$ mkdir ''myflatpakbuilddir''<br />
$ cd ''myflatpakbuilddir''<br />
<br />
You can then prepare a directory for building the runtime base platform. The files subdirectory will contain what will later be the {{ic|/usr}} directory in the sandbox. Therefore you will need to create symbolic links so the default {{ic|/usr/share}} etc. from Arch can still be accessed at the usual path.<br />
<br />
$ mkdir -p ''myruntime''/files/var/lib/pacman<br />
$ touch ''myruntime''/files/.ref<br />
$ ln -s /usr/usr/share ''myruntime''/files/share<br />
$ ln -s /usr/usr/include ''myruntime''/files/include<br />
$ ln -s /usr/usr/local ''myruntime''/files/local<br />
<br />
Make your host OS fonts available to the Arch runtime:<br />
<br />
$ mkdir -p ''myruntime''/files/usr/share/fonts<br />
$ ln -s /run/host/fonts ''myruntime''/files/usr/share/fonts/flatpakhostfonts<br />
<br />
You need and may want to adapt your {{ic|pacman.conf}} before installing packages to the runtime. Copy {{ic|/etc/pacman.conf}} to your build directory and then make the following changes:<br />
<br />
* Remove the {{ic|CheckSpace}} option so pacman will not complain about errors finding the root filesystem for checking disk space.<br />
* Remove any undesired custom repositories and {{ic|IgnorePkg}}, {{ic|IgnoreGroup}}, {{ic|NoUpgrade}} and {{ic|NoExtract}} settings that are needed only for the host system.<br />
<br />
Now install the packages for the runtime.<br />
<br />
$ fakechroot fakeroot pacman -Syu --root ''myruntime''/files --dbpath ''myruntime''/files/var/lib/pacman --config pacman.conf base<br />
$ mv pacman.conf ''myruntime''/files/etc/pacman.conf<br />
<br />
Set up the [[Locale|locales]] to be used by editing {{ic|''myruntime''/files/etc/locale.gen}}. Then regenerate the runtime’s locales.<br />
<br />
$ fakechroot chroot ''myruntime''/files locale-gen<br />
<br />
The base SDK can be created from the base runtime with added applications needed for building packages and running pacman.<br />
<br />
$ cp -r ''myruntime'' mysdk<br />
$ fakechroot fakeroot pacman -S --root mysdk/files --dbpath mysdk/files/var/lib/pacman --config mysdk/files/etc/pacman.conf base-devel fakeroot fakechroot --needed<br />
<br />
Insert metadata about runtime and SDK.<br />
<br />
{{hc|''myruntime''/metadata|2=<br />
[Runtime]<br />
name=org.mydomain.BasePlatform<br />
runtime=org.mydomain.BasePlatform/x86_64/2016-06-26<br />
sdk=org.mydomain.BaseSdk/x86_64/2016-06-26<br />
}}<br />
<br />
{{hc|mysdk/metadata|2=<br />
[Runtime]<br />
name=org.mydomain.BaseSdk<br />
runtime=org.mydomain.BasePlatform/x86_64/2016-06-26<br />
sdk=org.mydomain.BaseSdk/x86_64/2016-06-26<br />
}}<br />
<br />
Add base runtime and SDK to a local repository in the current directory. You may want to give them appropriate commit messages such as “My Arch base runtime” and “My Arch base SDK”.<br />
<br />
$ ostree init --mode archive-z2 --repo=.<br />
$ EDITOR="nano -w" ostree commit -b runtime/org.mydomain.BasePlatform/x86_64/2016-06-26 --tree=dir=''myruntime''<br />
$ EDITOR="nano -w" ostree commit -b runtime/org.mydomain.BaseSdk/x86_64/2016-06-26 --tree=dir=mysdk<br />
$ ostree summary -u<br />
<br />
Install the runtime and SDK.<br />
<br />
$ flatpak remote-add --user --no-gpg-verify myarchos file://$(pwd)<br />
$ flatpak install --user myarchos org.mydomain.BasePlatform 2016-06-26<br />
$ flatpak install --user myarchos org.mydomain.BaseSdk 2016-06-26<br />
<br />
=== Creating apps with pacman ===<br />
<br />
As an alternative to building applications [http://flatpak.org/developer.html the usual way], we can use pacman to create a containerized version of the regular Arch packages. Note that {{ic|/usr}} is read-only when creating apps, so we can not use Arch’s packages when building an app. To create a real app with pacman, we can either<br />
<br />
* use pacman to create a runtime containing all dependencies<br />
* and compile the app ourselves [http://flatpak.org/developer.html as usual] or perhaps using pacman with a custom [[PKGBUILD]] tailored to Flatpak which uses {{ic|1=--prefix=/app}} for the {{ic|configure}} script,<br />
<br />
or we can<br />
* use pacman to create a runtime containing the app installed with pacman<br />
* and create a dummy app to launch it.<br />
<br />
For doing the latter, first create a runtime using pacman such as this one for {{Pkg|gedit}}. The runtime is first initialized and prepared for use with pacman.<br />
<br />
$ flatpak build-init -w geditruntime org.mydomain.geditruntime org.mydomain.BaseSdk org.mydomain.BasePlatform 2016-06-26<br />
$ flatpak build geditruntime sed -i "s/^#Server/Server/g" /etc/pacman.d/mirrorlist<br />
$ flatpak build geditruntime ln -s /usr/var/lib /var/lib<br />
$ flatpak build geditruntime fakeroot pacman-key --init<br />
$ flatpak build geditruntime fakeroot pacman-key --populate archlinux<br />
<br />
Then the package is installed. The host’s network connection must be made available to pacman.<br />
<br />
$ flatpak build --share=network geditruntime fakechroot fakeroot pacman --root /usr -S gedit<br />
<br />
You can test the installation before finishing the runtime (without proper sandboxing).<br />
<br />
$ flatpak build --socket=x11 geditruntime gedit<br />
<br />
Now finish building the runtime and export it to a new local repository. pacman’s GnuPG keys have permissions that may interfere and need to be removed first.<br />
<br />
$ flatpak build geditruntime rm -r /etc/pacman.d/gnupg<br />
$ flatpak build-finish geditruntime<br />
$ sed -i "s/\[Application\]/\[Runtime\]/;s/runtime=org.mydomain.BasePlatform/runtime=org.mydomain.geditruntime/" geditruntime/metadata<br />
$ flatpak build-export -r geditrepo geditruntime<br />
<br />
Then create a dummy app.<br />
<br />
$ flatpak build-init geditapp org.gnome.gedit org.mydomain.BaseSdk org.mydomain.geditruntime<br />
<br />
Now finish the dummy app. You can fine-tune the app’s access permissions when sandboxed by giving additional options when finishing the build. For possible options see the [[#See also|Flatpak documentation]] and the [https://gitlab.gnome.org/GNOME/gnome-apps-nightly/tree/master GNOME manifest files]. Alternatively, adapt {{ic|geditapp/metadata}} to your needs after finishing the build but before exporting. When the metadata file is complete, export the app to the repository.<br />
<br />
$ flatpak build-finish geditapp --socket=x11 ''[possibly other options]'' --command=gedit<br />
$ flatpak build-export geditrepo geditapp<br />
<br />
Install it along with the runtime.<br />
<br />
$ flatpak --user remote-add --no-gpg-verify geditrepo geditrepo<br />
$ flatpak install --user geditrepo org.mydomain.geditruntime<br />
$ flatpak install --user geditrepo org.gnome.gedit<br />
$ flatpak run org.gnome.gedit<br />
<br />
== See also ==<br />
<br />
* [http://flatpak.org Official website]<br />
* [https://github.com/flatpak/flatpak/wiki Official Github wiki]<br />
* [[Wikipedia::Flatpak|Wikipedia page]]<br />
* [https://wiki.gnome.org/Projects/SandboxedApps Gnome SandboxedApps]<br />
* [https://community.kde.org/Guidelines_and_HOWTOs/Flatpak KDE Testing Runtime and Applications]</div>Fvguilhermehttps://wiki.archlinux.org/index.php?title=Pacman_(Portugu%C3%AAs)&diff=579017Pacman (Português)2019-08-05T23:11:47Z<p>Fvguilherme: /* Limpando o cache de pacotes */ Small correction of nominal agreement (on the English version, the author is reffering to the database) and other.</p>
<hr />
<div>{{Lowercase title}}<br />
[[Category:Package management (Português)]]<br />
[[Category:Arch projects (Português)]]<br />
[[Category:Commands (Português)]]<br />
[[ar:Pacman]]<br />
[[cs:Pacman]]<br />
[[da:Pacman]]<br />
[[de:Pacman]]<br />
[[el:Pacman]]<br />
[[en:Pacman]]<br />
[[es:Pacman]]<br />
[[fa:Pacman]]<br />
[[fr:Pacman]]<br />
[[id:Pacman]]<br />
[[it:Pacman]]<br />
[[ja:Pacman]]<br />
[[ko:Pacman]]<br />
[[nl:Pacman]]<br />
[[pl:Pacman]]<br />
[[ru:Pacman]]<br />
[[sr:Pacman]]<br />
[[sv:Pacman]]<br />
[[zh-hans:Pacman]]<br />
[[zh-hant:Pacman]]<br />
{{StatusTradução|Pacman|2019-07-07|576411}}<br />
{{Related articles start (Português)}}<br />
{{Related|Criando pacotes}}<br />
{{Related|Fazendo downgrade de pacotes}}<br />
{{Related|pacman/Assinatura de pacote}}<br />
{{Related|pacman/Pacnew e Pacsave}}<br />
{{Related|pacman/Restaurar base de dados local}}<br />
{{Related|pacman/Rosetta}}<br />
{{Related|pacman/Dicas e truques}}<br />
{{Related|FAQ (Português)#Gerenciamento de pacote}}<br />
{{Related|Manutenção do sistema}}<br />
{{Related2|Arch Build System (Português)|Arch Build System}}<br />
{{Related|Repositórios oficiais}}<br />
{{Related2|Arch User Repository (Português)|Arch User Repository}}<br />
{{Related articles end}}<br />
<br />
O [[Wikipedia:Package management system|gerenciador de pacote]] '''[https://www.archlinux.org/pacman/ pacman]''' é uma das grandes vantagens do Arch Linux. Combina um simples pacote no formato binário, com um fácil uso de [[Arch Build System (Português)|sistema de compilação]]. A meta do pacman é tornar o mais fácil possível gerenciar pacotes, sejam eles dos [[repositórios oficiais]] ou das próprias compilações do usuário.<br />
<br />
O ''pacman'' mantém o sistema atualizado, listas de pacotes de sincronização com o servidor mestre. Este modelo servidor/cliente também permite o usuário baixar/instalar pacotes com um simples comando, completo com todas as dependências requeridas.<br />
<br />
O ''pacman'' é escrito na linguagem de programação [[C]] e usa o formato [[w:pt:TAR|tar]] do {{man|1|bsdtar}} para empacotamento.<br />
<br />
{{Dica|1=O pacote {{Pkg|pacman}} contém ferramentas tal como [[makepkg (Português)|makepkg]] e ''vercmp''. Outras ferramentas úteis como o [[#Pactree|pactree]] e [[checkupdates (Português)|checkupdates]] estão localizados em {{Pkg|pacman-contrib}} ([https://git.archlinux.org/pacman.git/commit/?id=0c99eabd50752310f42ec808c8734a338122ec86 anteriormente] parte do pacman). Execute {{ic|pacman -Ql pacman pacman-contrib {{!}} grep -E 'bin/.+'}} para ver a lista completa.}}<br />
<br />
== Uso ==<br />
<br />
O que se segue é apenas uma pequena amostra das operações que o ''pacman'' pode executar. Para ler mais exemplos, consulte {{man|8|pacman}}.<br />
<br />
{{Dica|Para usuários que utilizaram outras distribuições linux antes, ver o artigo [[Pacman Rosetta]] será útil.}}<br />
<br />
=== Instalando pacotes ===<br />
<br />
{{Nota|<br />
* Alguns pacotes muitas vezes têm [[PKGBUILD (Português)#optdepends|dependências opcionais]] de pacotes que fornecem funcionalidades adicionais para o aplicativo, apesar de não serem estritamente necessárias para executá-lo. Ao instalar um pacote, o ''pacman'' irá listar as dependências opcionais do pacote, porém elas não serão encontradas no arquivo {{ic|pacman.log}}. Utilize o comando [[#Consultando base de dados de pacotes]] para visualizar as dependências opcionais de um pacote.<br />
* Ao instalar um pacote que requer apenas uma dependência (opcional) de algum outro pacote (isto é, necessário por você), é recomendado usar a opção {{ic|--asdeps}}. Para detalhes, veja a seção [[#Motivo de instalação]].}}<br />
<br />
{{Atenção|1=Ao instalar pacotes no Arch, evite atualizar a lista de pacotes sem [[#Atualizando pacotes|atualizar o sistema]] (por exemplo, quando um [[#Pacotes não podem ser obtidos na instalação|pacote não é encontrado]] nos repositórios oficiais). Na prática, '''não''' execute o comando {{ic|pacman -Sy ''nome_pacote''}}, pois isso poderia levar para problemas de dependências. Veja [[Manutenção do sistema#Sem suporte a atualizações parciais]] e [https://bbs.archlinux.org/viewtopic.php?id=89328 BBS#89328].}}<br />
<br />
==== Instalando pacotes específicos ====<br />
<br />
Para instalar um único pacote ou lista de pacotes, incluindo dependências, execute o seguinte comando:<br />
<br />
# pacman -S ''nome_pacote1'' ''nome_pacote2'' ...<br />
<br />
Para instalar uma lista de pacotes com expressão regular (veja [https://bbs.archlinux.org/viewtopic.php?id=7179 esse tópico do fórum]):<br />
<br />
# pacman -S $(pacman -Ssq ''regexp_pacote'')<br />
<br />
Às vezes, há várias versões de um pacote nos diferentes repositórios, por exemplo ''extra'' e ''testing''. Para instalar a versão do repositório ''extra'' neste exemplo, o repositório deve ser definido na frente do nome do pacote:<br />
<br />
# pacman -S extra/''nome_pacote''<br />
<br />
Para instalar um número de pacotes que compartilham padrões em sua nomenclatura pode-se usar expansão com chaves:<br />
<br />
# pacman -S plasma-{desktop,mediacenter,nm}<br />
<br />
Isso pode ser expandido para quaisquer níveis sejam necessários:<br />
<br />
# pacman -S plasma-{workspace{,-wallpapers},pa}<br />
<br />
==== Instalando grupos de pacotes ====<br />
<br />
Alguns pacotes pertencem a um [[grupo de pacotes]] que podem ser instalados simultaneamente. Por exemplo, o comando:<br />
<br />
# pacman -S gnome<br />
<br />
solicitará que você selecione os pacotes do grupo {{Grp|gnome}} que você deseja instalar.<br />
<br />
Às vezes, um grupo de pacote conterá uma grande quantidade de pacotes, e pode haver só alguns que você quer ou não instalar. Em vez de digitar todos os números, exceto aqueles que você não quer, pode ser mais conveniente selecionar ou excluir pacotes ou intervalos de pacotes com a seguinte sintaxe:<br />
<br />
Digite uma seleção (padrão=todos): 1-10 15<br />
<br />
que vai selecionar pacotes 1 até 10 e 15 para a instalação, ou:<br />
<br />
Digite uma seleção (padrão=todos):: ^5-8 ^2<br />
<br />
vai selecionar todos os pacotes, exceto 5 até 8 e 2 para a instalação.<br />
<br />
Para ver quais pacotes pertencem ao grupo gnome, execute:<br />
<br />
# pacman -Sg gnome<br />
<br />
Também visite https://www.archlinux.org/groups/ para saber quais os grupos de pacotes disponíveis.<br />
<br />
{{Nota|Se um pacote na lista já está instalado no sistema, ele será reinstalado mesmo se já estiver atualizado. Este comportamento pode ser substituído com a opção {{ic|--needed}}.}}<br />
<br />
=== Removendo pacotes ===<br />
<br />
Para remover um único pacote, deixando todas as suas dependências instaladas:<br />
<br />
# pacman -R ''nome_pacote''<br />
<br />
Para remover um pacote e suas dependências que não são exigidas por qualquer outro pacote instalado:<br />
<br />
# pacman -Rs ''nome_pacote''<br />
<br />
Para remover um pacote, suas dependências e todos os pacotes que dependem deste pacote:<br />
<br />
{{Atenção|Esta operação é recursiva, e deve ser usada com cuidado, pois pode remover muitos pacotes potencialmente necessários.}}<br />
<br />
# pacman -Rsc ''nome_pacote''<br />
<br />
Para remover um pacote, o qual é exigido por outro pacote, sem remover o pacote dependente:<br />
<br />
{{Atenção|A operação a seguir pode quebrar um sistema e deve ser evitada. Veja [[Manutenção do sistema#Evite certos comandos do pacman]].}}<br />
<br />
# pacman -Rdd ''nome_pacote''<br />
<br />
O ''pacman'' salva arquivos de configuração importantes ao remover certos aplicativos e os nomes com a extensão: ''.pacsave''. Para prevenir a criação desses arquivos de backup use a opção {{ic|-n}}:<br />
<br />
# pacman -Rn ''nome_pacote''<br />
<br />
{{Nota|O ''pacman'' não removerá as configurações que o próprio aplicativo cria (por exemplo, "dotfiles" na pasta home).}}<br />
<br />
=== Atualizando pacotes ===<br />
<br />
{{Atenção|<br />
*Os usuários devem seguir as orientações em [[Manutenção do sistema#Atualizando o sistema]] para atualizar os seus sistemas regularmente e nao executar o seguinte comando as cegas.<br />
*Arch suporta apenas atualizações completa de sistema. Veja [[Manutenção do sistema#Sem suporte a atualizações parciais]] e [[#Instalando pacotes]] para mais detalhes.}}<br />
<br />
O ''pacman'' pode atualizar todos os pacotes no sistema com apenas um comando. Isso pode demorar um pouco dependendo de como anda a atualização do sistema. Este comando pode sincronizar as bases de dados do repositório ''e'' atualizar os pacotes do sistema (excluindo pacotes "locais" que não estão nos repositórios configurados):<br />
<br />
# pacman -Syu<br />
<br />
=== Consultando base de dados de pacotes ===<br />
<br />
O ''pacman'' consulta a base de dados do pacote local com a opção {{ic|-Q}}, a base de dados de sincronização com a opção {{ic|-S}} e a base de dados de arquivos com a opção {{ic|-F}}. Veja {{ic|pacman -Q --help}}, {{ic|pacman -S --help}} e {{ic|pacman -F --help}} para as respectivas subopções de cada opção.<br />
<br />
O ''pacman'' pode pesquisar por pacotes na base de dados, pesquisando nomes e descrições dos pacotes:<br />
<br />
$ pacman -Ss ''string1'' ''string2'' ...<br />
<br />
Algumas vezes, ERE (Extended Regular Expressions) incorporadas no {{Ic|-s}} podem causar muitos dos resultados indesejados, então têm que ser limitadas a corresponder ao nome de pacote apenas; não a descrição nem qualquer outro campo:<br />
<br />
$ pacman -Ss '^vim-'<br />
<br />
Para procurar os pacotes já instalados:<br />
<br />
$ pacman -Qs ''string1'' ''string2'' ...<br />
<br />
Para procurar nomes de pacotes em pacotes remotos:<br />
<br />
$ pacman -Fs ''string1'' ''string2'' ...<br />
<br />
Para exibir informações detalhadas sobre um determinado pacote:<br />
<br />
$ pacman -Si ''nome_pacote''<br />
<br />
Para os pacotes instalados localmente:<br />
<br />
$ pacman -Qi ''nome_pacote''<br />
<br />
Inserindo duas opções {{ic |-i}} também exibirá a lista de arquivos de backup e seus estados de alterações:<br />
<br />
$ pacman -Qii ''nome_pacote''<br />
<br />
Para obter uma lista dos arquivos instalados por um pacote:<br />
<br />
$ pacman -Ql ''nome_pacote''<br />
<br />
Para obter uma lista dos arquivos instalados por um pacote remoto:<br />
<br />
$ pacman -Fl ''nome_pacote''<br />
<br />
Para verificar a presença dos arquivos instalados por um pacote:<br />
<br />
$ pacman -Qk ''nome_pacote''<br />
<br />
Passando a opção {{ic|k}} duas vezes, irá ser realizado uma verificação mais aprofundada.<br />
<br />
Pode-se também consultar a base de dados para saber qual pacote um arquivo no arquivo do sistema pertence:<br />
<br />
$ pacman -Qo ''/caminho/para/nome_de_arquivo''<br />
<br />
Para consultar o banco de dados para saber de qual pacote remoto um arquivo pertence:<br />
<br />
$ pacman -Fo ''/caminho/para/nome_de_arquivo''<br />
<br />
Para listar todos os pacotes que não são exigidos como dependências (órfãos):<br />
<br />
$ pacman -Qdt<br />
<br />
{{Dica|Adicione o comando acima para um [[#Hooks|hook]] pós-transação do pacman para ser notificado se uma transação tornou um pacote órfão. Isso pode ser útil para ser notificado quando um pacote foi retirado de um repositório, desde que qualquer pacote retirado também seja tornado órfão em uma instalação local (a menos que tenha sido instalado explicitamente). Para evitar quaisquer erros "falha ao executar o comando" quando nenhum órfão é encontrado, use o seguinte comando para {{ic|Exec}} em seu hook: {{ic|<nowiki>/usr/bin/bash -c "/usr/bin/pacman -Qtd || /usr/bin/echo '=> Nenhum encontrado.'"</nowiki>}}}}<br />
<br />
Para listar todos os pacotes explicitamente instalados e que não são necessários como dependências:<br />
<br />
$ pacman -Qet<br />
<br />
Veja [[Pacman/Dicas e truques]] para mais exemplos.<br />
<br />
==== Pactree ====<br />
{{Nota|{{man|8|pactree}} não é mais parte do pacote {{Pkg|pacman}}. Agora ele pode ser encontrado no {{Pkg|pacman-contrib}}.}}<br />
<br />
Para visualizar a árvore de dependência de um pacote:<br />
<br />
$ pactree ''nome_pacote''<br />
<br />
Para ver uma área dependente de um pacote, passe a opção reversa {{ic|-r}} ao ''pactree'', ou use ''whoneeds'' de {{AUR|pkgtools}}.<br />
<br />
==== Estrutura da base de dados ====<br />
<br />
As bases de dados do ''pacman'' estão normalmente localizadas em {{ic|/var/lib/pacman/sync}}. Para cada repositório especificado em {{ic|/etc/pacman.conf}} haverá um arquivo de base de dados correspondente localizado lá. Os arquivos das bases de dados são arquivos tar-gzipped contendo um diretório para cada pacote, por exemplo, para o pacote {{Pkg|which}}:<br />
<br />
{{bc|<br />
% tree which-2.20-6 <br />
which-2.20-6<nowiki><br />
|-- depends<br />
`-- desc</nowiki><br />
}}<br />
<br />
O arquivo {{ic|depends}} lista os pacotes que este pacote depende, enquanto a {{ic|desc}} possui uma descrição do pacote, como o tamanho do arquivo e o hash do MD5.<br />
<br />
=== Limpando o cache de pacotes ===<br />
<br />
O ''pacman'' armazena seus pacotes baixados em {{ic|/var/cache/pacman/pkg/}} e não remove as versões antigas ou desinstaladas automaticamente. Isso tem algumas vantagens:<br />
# Isso permite fazer [[downgrade (Português)|downgrade]] de um pacote sem a necessidade de obter a versão anterior por outros meios, tal como o [[Arch Linux Archive (Português)|Arch Linux Archive]].<br />
# Um pacote que tenha sido desinstalado pode ser facilmente reinstalado diretamente da pasta cache, não exigindo um novo download do repositório.<br />
<br />
Portanto, é necessário limpar deliberadamente essa pasta periodicamente para evitar que essa pasta cresça indefinidamente em tamanho.<br />
<br />
O script ''paccache'', fornecido no pacote {{Pkg|pacman-contrib}}, exclui todas as versões em cache de pacotes instalados e desinstalados, excepto para os 3 mais recentes, por padrão:<br />
<br />
# paccache -r<br />
<br />
[[Habilite]] e [[inicie]] {{ic|paccache.timer}} para descartar pacotes não usados semanalmente.<br />
<br />
{{Dica|1=Você pode criar [[#Hooks]] para executar isso automaticamente após cada transação do pacman, [https://bbs.archlinux.org/viewtopic.php?pid=1694743#p1694743 veja exemplos].}}<br />
<br />
Você também pode definir quantas versões mais recentes você deseja manter. Para reter apenas a uma versão anterior, use:<br />
<br />
# paccache -rk1<br />
<br />
Adicione a opção {{ic|u}} para limitar a ação do ''paccache'' a pacotes desinstalados. Por exemplo, para remover todas as versões em cache de pacotes desinstalados, use o seguinte:<br />
<br />
# paccache -ruk0<br />
<br />
Veja {{ic|paccache -h}} para mais opções.<br />
<br />
O ''pacman'' também tem algumas opções embutidas para limpar o cache e os arquivos de base de dados restantes dos repositórios que não estão mais listados no arquivo de configuração {{ic|/etc/pacman.conf}}. No entanto, o ''pacman'' não oferece a possibilidade de manter um número de versões anteriores e, portanto, é mais agressivo do que as opções padrão do ''paccache''.<br />
<br />
Para remover todos os pacotes em cache que não estão instalados atualmente e a base de dados de sincronização não utilizada, execute:<br />
<br />
# pacman -Sc<br />
<br />
Para remover todos os arquivos do cache, use a opção de limpeza duas vezes, sendo essa a abordagem mais agressiva e que vai deixar nada na pasta de cache:<br />
<br />
# pacman -Scc<br />
<br />
{{Atenção|Deve-se evitar apagar do cache todas as versões anteriores dos pacotes instalados e todos os pacotes desinstalados, a menos que se necessita desesperadamente liberar algum espaço em disco. Isso impedirá o downgrade ou a reinstalação de pacotes sem baixá-los novamente.}}<br />
<br />
{{AUR|pkgcacheclean}} e {{AUR|pacleaner}} são duas alternativas para limpar o cache.<br />
<br />
=== Comandos adicionais ===<br />
<br />
Faça o download de um pacote sem instalá-lo:<br />
<br />
# pacman -Sw ''nome_pacote''<br />
<br />
Instale um pacote "local" que não seja de um repositório remoto (ex., o pacote é do [[AUR (Português)|AUR]]):<br />
<br />
# pacman -U ''/caminho/para/pacote/nome_pacote-versão.pkg.tar.xz''<br />
<br />
Para manter uma cópia do pacote local no cache do ''pacman'', use:<br />
<br />
# pacman -U file:///''caminho/para/pacote/nome_pacote-versão.pkg.tar.xz''<br />
<br />
Instale um pacote "remoto" (não de um repositório indicado nos arquivos de configuração do pacman):<br />
<br />
# pacman -U ''<nowiki>http://www.exemplo.com/repo/exemplo.pkg.tar.xz</nowiki>''<br />
<br />
Para inibir as ações {{ic|-S}}, {{ic|-U}} e {{ic|-R}}, a opção {{ic|-p}} pode ser usada.<br />
<br />
O ''pacman'' sempre lista os pacotes a serem instalados ou removidos e pede permissão antes de executar.<br />
<br />
=== Motivo de instalação ===<br />
<br />
A base de dados do ''pacman'' distingue os pacotes instalados em dois grupos de acordo com o motivo pelo qual eles foram instalados:<br />
<br />
* '''instalados explicitamente''': os pacotes foram passados literalmente para um comando genérico ''pacman'' {{ic|-S}} ou {{ic|-U}};<br />
* '''dependências''': os pacotes que, apesar de nunca (em geral) terem sido passados para um comando de instalação do ''pacman'', foram instalados implicitamente porque é [[dependência|exigido]] por outro pacote que foi instalado explicitamente.<br />
<br />
Ao instalar um pacote, é possível forçar o motivo da instalação da ''dependência'' com:<br />
<br />
# pacman -S --asdeps ''nome_pacote''<br />
<br />
{{Dica|A instalação de dependências opcionais com {{ic|--asdeps}} fará com que, se você [[Pacman/Dicas e truques#Removendo pacotes não usados (órfãos)|remover pacotes órfãos]], o ''pacman'' também removerá as dependências opcionais.}}<br />
<br />
Ao '''re'''instalar um pacote, o motivo dessa instalação atual é preservado por padrão.<br />
<br />
A lista de pacotes instalados explicitamente pode ser vista com {{ic|pacman -Qe}}, enquanto a lista de dependências instaladas pode ser vista com {{ic|pacman -Qd}}.<br />
<br />
Para alterar o motivo da instalação de um pacote já instalado, execute:<br />
<br />
# pacman -D -asdeps ''nome_pacote''<br />
<br />
Use {{ic|--asexplicit}} para a operação oposta.<br />
<br />
{{Nota|O uso das opções {{ic|--asdeps}} e {{ic|--asexplicit}} na atualização, como com {{ic|pacman -Syu ''nome_pacote'' --asdeps}}, não é recomendado. Isso alteraria o motivo da instalação não apenas do pacote que está sendo instalado, mas também dos pacotes que estão sendo atualizados.}}<br />
<br />
=== Pesquisar por um pacote que contenha um arquivo específico ===<br />
<br />
Sincronize a base de dados de arquivos:<br />
<br />
# pacman -Fy<br />
<br />
Pesquise por um pacote contendo um arquivo, p.ex.:<br />
<br />
$ pacman -Fs pacman<br />
core/pacman 5.0.1-4<br />
usr/bin/pacman<br />
usr/share/bash-completion/completions/pacman<br />
extra/xscreensaver 5.36-1<br />
usr/lib/xscreensaver/pacman<br />
<br />
{{Dica|Você pode definir um trabalho cron ou um temporizador do systemd para sincronizar a base de dados de arquivos regularmente.}}<br />
<br />
Para funcionalidade avançada, instale o [[pkgfile (Português)|pkgfile]], que usa uma base de dados separada com todos os arquivos e seus pacotes associados.<br />
<br />
== Configuração ==<br />
<br />
As configurações do ''pacman'' estão localizados em {{ic|/etc/pacman.conf}}: este é o local onde o usuário configura o programa para funcionar da forma desejada. Informações detalhadas sobre o arquivo de configuração pode ser encontrada em {{man|5|pacman.conf}}.<br />
<br />
=== Opções gerais ===<br />
<br />
Opções gerais estão na seção {{ic|[options]}}. Leia {{man|5|pacman.conf}} ou olhe no {{ic|pacman.conf}} padrão para obter informações sobre o que pode ser feito aqui.<br />
<br />
==== Comparando versões antes de atualizar ====<br />
<br />
Para ver versões antigas e novas dos pacotes disponíveis, descomente a linha "VerbosePkgLists" em {{ic|/etc/pacman.conf}}. A saída de {{ic|pacman -Syu}} será algo como:<br />
<br />
Pacote (6) Versão antiga Versão nova Alteração Tamanho de download<br />
<br />
extra/libmariadbclient 10.1.9-4 10.1.10-1 0.03 MiB 4.35 MiB<br />
extra/libpng 1.6.19-1 1.6.20-1 0.00 MiB 0.23 MiB<br />
extra/mariadb 10.1.9-4 10.1.10-1 0.26 MiB 13.80 MiB<br />
<br />
==== Pular pacotes para não serem atualizados ====<br />
<br />
{{Atenção|Tenha cuidado ao pular pacotes, já que não há suporte a [[atualizações parciais]].}}<br />
<br />
Para pular a atualização de um pacote específico quando estiver [[#Atualizando pacotes|atualizando]] o sistema, faça:<br />
<br />
IgnorePkg=linux<br />
<br />
Para vários pacotes use uma lista separada por espaço, ou use adicionais linhas {{ic|IgnorePkg}}. Além disso, padrões de ''glob'' podem ser usados. Se você deseja pular pacotes apenas uma vez, você também pode usar a opção {{ic|--ignore}} na linha de comando - dessa vez com uma lista separada por vírgula.<br />
<br />
Ainda será possível atualizar pacotes ignorados usando {{ic|pacman -S}}: neste caso, ''pacman'' lhe lembrará de que os pacotes têm incluídos em uma declaração de {{ic|IgnorePkg}}.<br />
<br />
==== Pular um grupos de pacotes para não serem atualizados ====<br />
<br />
{{Atenção|Tenha cuidado ao pular grupos de pacotes, já que não há suporte a [[atualizações parciais]].}}<br />
<br />
Tal como acontece com os pacotes, pular um grupo de pacote inteiro também é possível:<br />
<br />
IgnoreGroup=gnome<br />
<br />
==== Pular arquivos para não serem instalados ====<br />
<br />
Todos os arquivos listados com uma diretiva {{Ic|NoUpgrade}} nunca serão tocados durante uma instalação/atualização de pacote, e os novos arquivos serão instalados com uma extensão ''.pacnew''.<br />
<br />
NoUpgrade=''caminho/para/arquivo''<br />
<br />
{{Nota|O caminho se refere aos arquivos no arquivo do pacote. Portanto, não inclua a barra inicial.}}<br />
<br />
==== Pular arquivos para não serem instalados no sistema ====<br />
<br />
Para pular sempre a instalação de lista de diretórios sob {{Ic|NoExtract}}. Por exemplo, para evitar a instalação de units de [[systemd (Português)|systemd]] use:<br />
<br />
NoExtract=usr/lib/systemd/system/*<br />
<br />
Regras posteriores sobrescrevem as anteriores e podem negar uma regra adicionando antes {{ic|!}}.<br />
<br />
{{Dica|O ''pacman'' emite mensagens de avisos sobre locales faltando ao atualizar um pacote para os quais os locales foram limpados com ''localepurge'' ou ''bleachbit''. Comentando a opção {{ic|CheckSpace}} em {{ic|pacman.conf}} suprime aviso, mas considera que a funcionalidade de verificação de espaço será desabilitada para todos os pacotes.}}<br />
<br />
==== Manter vários arquivos de configuração ====<br />
<br />
Se você tiver vários arquivos de configuração (ex.: configuração principal e configuração com repositório [[testing (Português)|testing]] habilitado) e você gostaria de compartilhar opções entre configurações, você pode usar a opção {{ic|Include}} declarada nos arquivos de configuração, ex.:<br />
<br />
Include = ''/caminho/para/configurações/comuns''<br />
<br />
sendo que arquivo {{ic|''/caminho/para/configurações/comuns''}} contém as mesmas opções para ambas configurações.<br />
<br />
==== Hooks ====<br />
<br />
''pacman'' pode executar hooks de pré- e pós-transação do diretório {{ic|/usr/share/libalpm/hooks/}}; mais diretórios podem ser especificados com a opção {{ic|HookDir}} no {{ic|pacman.conf}}, que tem como padrão {{ic|/etc/pacman.d/hooks}}. Nomes de arquivo hook devem ser sufixados com ''.hook''.<br />
<br />
Hooks do ''pacman'' são usados, por exemplo, em combinação com {{ic|systemd-sysusers}} e {{ic|systemd-tmpfiles}} para criar automaticamente arquivos e usuários de sistema durante a isntalação dos pacotes. Por exemplo, o pacote {{ic|tomcat8}} especifica que ele deseja um usuário de sistema chamado {{ic|tomcat8}} e certos diretórios pertencentes a este usuário. Os hooks do ''pacman'' {{ic|systemd-sysusers.hook}} e {{ic|systemd-tmpfiles.hook}} chamam {{ic|systemd-sysusers}} e {{ic|systemd-tmpfiles}} quando o ''pacman'' determina que o pacote {{ic|tomcat8}} contém arquivos especificando usuários e arquivos tmp.<br />
<br />
Para mais informações sobre hooks do alpm, veja {{man|5|alpm-hooks}}.<br />
<br />
=== Repositórios e espelhos ===<br />
<br />
Além da seção especial [[#Opções gerais|[options]]], cada outra {{ic|[section]}} no {{ic|pacman.conf}} define um repositório de pacote a ser usado. Um ''repositório'' é uma coleção ''lógica'' de pacotes, que são armazenados ''fisicamente'' em um ou mais servidores: por esse motivo, cada servidor é chamado de um ''espelho'' para o repositório.<br />
<br />
Repositórios são distinguidos entre [[Repositórios oficiais|oficial]] e [[Unofficial user repositories|não oficiais]]. A ordem de repositórios no arquivo de configuração importa; repositórios listados primeiro terão precedências sobre os listados posteriormente quando pacotes nos dois repositórios tiverem nomes idênticos, independentemente do número da versão. Para usar um repositório após adicioná-lo, você precisará [[#Atualizando pacotes|atualizar]] todo o sistema primeiro.<br />
<br />
Cada seção de repositório permite definir a lista de seus espelhos diretamente ou em um arquivo externo por meio da diretiva {{ic|Include}}: por exemplo, os espelhos para os repositórios oficiais são incluídos no {{ic|/etc/pacman.d/mirrorlist}}. Veja o artigo [[Espelhos]] para configuração de espelho.<br />
<br />
==== Segurança de pacote ====<br />
<br />
O ''pacman'' oferece suporte a assinaturas de pacotes, que adiciona uma camada extra de segurança para os pacotes. A configuração padrão, {{ic|1=SigLevel = Required DatabaseOptional}}, habilita verificação de assinatura para todos os pacotes em um nível global: isso pode ser sobrescrito por linhas {{ic|SigLevel}} para cada repositório. Para mais detalhes sobre assinatura de pacote e verificação de assinatura, dê uma olhada em [[pacman-key (Português)|pacman-key]].<br />
<br />
== Solução de problemas ==<br />
<br />
=== Erro "falha em submeter a transação (arquivos conflitantes)" ===<br />
<br />
Se você vir o erro: [https://bbs.archlinux.org/viewtopic.php?id=56373]<br />
<br />
erro: não foi possível preparar transação<br />
erro: falha ao submeter transação (arquivos conflitantes)<br />
''pacote'': ''/caminho/para/arquivo'' existe no sistema de arquivos<br />
Ocorreram erros e, portanto, nenhum pacote foi atualizado.<br />
<br />
Isso aconteceu porque o ''pacman'' detectou um conflito de arquivo e, por design, não vai sobrescrever arquivos para você. Este é por design, e não uma falha.<br />
<br />
O problema geralmente é trivial de resolver. Uma maneira segura é primeiro verificar se outro pacote possui o arquivo ({{ic|pacman -Qo ''/caminho/para/arquivo''}}). Se o arquivo for de propriedade de outro pacote, [[Diretrizes de relatórios de erro|preencha um relatório de erro]]. Se o arquivo não for de outro pacote, renomeie o arquivo que "existe no sistema de arquivos" e execute novamente o comando de atualização. Se tudo correr bem, o arquivo pode então ser removido.<br />
<br />
Se você instalou um programa manualmente sem usar o ''pacman'', (p.ex.: por meio de {{ic|make install}}), você tem que remover/instalar esse programa com seus arquivos. Veja também [[Pacman/Dicas e truques#Identificar arquivos que pertençam a nenhum pacote]].<br />
<br />
Todo pacote instalado fornece um arquivo {{ic|/var/lib/pacman/local/''$pacote-$versão''/files}} que contém metadados sobre esse pacote. Se o arquivo ficar corrompido, vazio ou desaparecer, ele resulta em erros de {{ic|existe no sistema de arquivos}} ao tentar atualizar o pacote. Tal erro geralmente está relacionado a um pacote. Em vez de renomear manualmente e posteriormente remover todos os arquivos que pertencem ao pacote em questão, você pode tentar executar explicitamente {{ic|pacman -S --overwrite ''glob'' ''pacote''}} para forçar o ''pacman'' a sobrescrever arquivos que correspondem a {{ic|''glob''}}.<br />
<br />
{{Atenção|Via de regra, evite usar a opção {{ic|--overwrite}}. Veja [[Manutenção do sistema#Evite certos comandos do pacman]].}}<br />
<br />
=== Erro "falha em submeter a transação (pacote inválido ou corrompido)" ===<br />
<br />
Procure por arquivos ''.part'' (pacotes baixados parcialmente) em {{ic|/var/cache/pacman/pkg}} e remove-os (muitas vezes causado pelo uso da opção {{ic|XferCommand}} em {{ic|pacman.conf}}).<br />
<br />
# find /var/cache/pacman/pkg/ -iname "*.part" -exec rm {} \;<br />
<br />
=== Erro "falha ao iniciar a transação (não foi possível travar a base de dados)" ===<br />
<br />
Quando o ''pacman'' vai alterar a base de dados de pacotes, por exemplo instalar um pacote, ele cria um arquivo de trava em {{ic|/var/lib/pacman/db.lck}}. Isso evita que uma outra instância do ''pacman'' tente alterar a base de dados de pacotes ao mesmo tempo.<br />
<br />
Se o ''pacman'' for interrompido enquanto altera a base de dados, esse arquivo de trava obsoleto pode permanecer. Se você tem certeza que nenhuma outra instância do ''pacman'' está em execução, então exclua o arquivo de trava:<br />
<br />
# rm /var/lib/pacman/db.lck<br />
<br />
=== Pacotes não podem ser obtidos na instalação ===<br />
<br />
Esse erro se manifesta como {{ic|não encontrado na base de dados de sincronização}}, {{ic|alvo não encontrado}} ou {{ic|falha ao obter o arquivo}}.<br />
<br />
Primeiramente, assegure-se de que o pacote realmente existe. Se você tem certeza que o pacote existe, sua lista de pacote pode estar desatualizada. Tente execute {{ic|pacman -Syu}} para forçar uma atualização de todas as listas de pacote e atualize. Também certifique-se que os [[espelhos]] selecionados estejam atualizados e [[#Repositórios e espelhos|repositórios]] são configurados corretamente.<br />
<br />
Pode ser também que aquele repositório contendo o pacote não está habilidade no seu sistema. Por exemplo, o pacote pode estar no repositório [[multilib (Português)|multilib]], mas o ''multilib'' não está habilitado em seu {{ic|pacman.conf}}.<br />
<br />
Veja também [[FAQ (Português)#Por que há uma única versão de cada biblioteca compartilhada nos repositórios oficiais?]].<br />
<br />
=== Reinstalação manual do pacman ===<br />
<br />
{{Atenção|É extremamente fácil quebrar seu sistema ainda mais, usando essa abordagem. Use isso apenas como um último recurso se o método do [[#pacman trava durante uma atualização]] não for uma opção.}}<br />
<br />
Mesmo se o ''pacman'' estiver terrivelmente quebrado, você pode corrigi-lo manualmente baixando os últimos pacotes e extraindo-os para os locais corretos. Os passos difíceis a se executar são:<br />
<br />
# Determinar dependências do {{pkg|pacman}} para instalar<br />
# Baixar cada pacote de um [[espelho]] de sua escolha<br />
# Extrair cada pacote para a raiz<br />
# Reinstalar esses pacotes com {{ic|pacman -S --overwrite}} para atualizar a base de dados de pacote<br />
# Fazer uma atualização completa do sistema<br />
<br />
Se você tem um sistema do Arch saudável disponível, você pode ver a lista completa de dependências com:<br />
<br />
$ pacman -Q $(pactree -u pacman)<br />
<br />
Mas você pode precisar atualizar algumas delas, dependendo do seu problema. Um exemplo de extração de um pacote é<br />
<br />
# tar -xvpwf ''pacote.tar.xz'' -C / --exclude .PKGINFO --exclude .INSTALL --exclude .MTREE --exclude .BUILDINFO<br />
<br />
Note que o uso da opção {{ic|w}} para modo interativo. Executar não interativamente é muito arriscado já que você pode acabar sobrescrevendo um arquivo importante. Também tenha cuidado ao extrair pacotes na ordem correta (i.e. dependências primeiro). [https://bbs.archlinux.org/viewtopic.php?id=95007 Essa publicação no fórum] contém um exemplo deste processo no qual apenas duas dependências do ''pacman'' estava quebradas.<br />
<br />
=== pacman trava durante uma atualização ===<br />
<br />
No caso do ''pacman'' travar com um erro de "escrita da base de dados" enquanto remove pacotes, e a reinstalação ou atualização de pacotes falha a partir daí, faça o seguinte:<br />
<br />
# Inicialize usando a mídia de instalação do Arch. Preferivelmente use uma mídia recente, para que a versão do ''pacman'' seja igual ou mais nova do que a do sistema.<br />
# Monte o sistema de arquivos raiz do sistema (ex.: {{ic|mount /dev/sdaX /mnt}}) como root e verifique se a montagem tem espaço suficiente com {{ic|df -h}}<br />
# Monte os sistemas de arquivos proc e sysfs também: {{ic|mount -t proc proc /mnt/proc; mount --rbind /sys /mnt/sys; mount --rbind /dev /mnt/dev }}<br />
# Se o sistema usa locais padrão de base de dados e diretório, você pode agora atualizar a base de dados do ''pacman'' do sistema e atualizá-lo via {{ic|1=pacman --sysroot /mnt -Syu}} como root. <br />
# Após a atualização, uma forma de verificar se pacotes não atualizados, mas ainda quebrados: {{ic|find /mnt/usr/lib -size 0}} <br />
# Seguido pela reinstalação de qualquer pacote ainda quebrado via {{ic|1=pacman --sysroot /mnt -S ''pacote''}}.<br />
<br />
=== Erro "Unable to find root device" após a reinicialização ===<br />
<br />
Muito provavelmente o [[initramfs (Português)|initramfs]] acabou corrompido durante uma atualização do [[kernel]] (uso indevido da opção {{ic|--force}} do ''pacman'' pode ser uma causa). Há duas opções; primeiro, tente a entrada ''Fallback''.<br />
<br />
{{Dica|No caso de você ter removido o ''Fallback'', você pode sempre pressionar a tecla {{ic|Tab}} quando o gerenciador de boot aparecer (para Syslinux) ou {{ic|e}} (para GRUB), renomear {{ic|initramfs-linux-fallback.img}} e pressione {{ic|Enter}} ou {{ic|b}} (dependendo do seu [[gerenciador de boot]]) para inicializar com os novos parâmetros.}}<br />
<br />
Quando o sistema iniciar, execute este comando (para o Kernel {{Pkg|linux}} padrão) através do console ou de um terminal para reconstruir a imagem initramfs:<br />
<br />
# mkinitcpio -p linux<br />
<br />
Se isso não funcionar, de uma versão atual do Arch (CD/DVD ou pendrive USB), [[mount|monte]] as partições ''root'' e ''boot''. Então, faça um [[chroot (Português)|chroot]] usando o ''arch-chroot'':<br />
<br />
# arch-chroot /mnt<br />
# pacman -Syu mkinitcpio systemd linux<br />
<br />
{{Nota|<br />
* Se você não tem uma versão atual ou se tem apenas alguma outra distribuição Linux "live", você pode fazer [[chroot (Português)|chroot]] usando o jeito antigo. Obviamente, terá que digitar mais do que simplesmente executar o script {{ic|arch-chroot}}.<br />
* Se ''pacman'' falhar com {{ic|não foi possível resolver máquina}}, por favor [[Configuração de rede#Verificar a conexão|verifique sua conexão com a Internet]].<br />
* Se você não conseguir entrar no ambiente do arch-chroot ou chroot, mas precisa reinstalar os pacotes, você pode usar o comando {{ic|pacman --sysroot /mnt -Syu foo bar}} para usar o ''pacman'' em sua partição raiz.}}<br />
<br />
A reinstalação do kernel (o pacote {{Pkg|linux}}) vai gerar automaticamente a imagem com {{ic|mkinitcpio -p linux}}. Não precisa fazer separadamente.<br />
<br />
Após, recomenda-se que você execute {{ic|exit}}, {{ic|umount /mnt/{boot,} }} e {{ic|reboot}}.<br />
<br />
=== Assinatura de "<email@exemplo.org>" tem confiança desconhecida, falha na instalação ===<br />
<br />
Soluções potenciais:<br />
* Atualizar as chaves conhecidas, executando {{ic|pacman-key --refresh-keys}}<br />
* Atualizar manualmente o pacote {{Pkg|archlinux-keyring}} primeiro, i.e. {{ic|pacman -Sy archlinux-keyring && pacman -Su}}<br />
* Siga [[pacman-key (Português)#Redefinindo todas as chaves]]<br />
<br />
=== Solicitação de importação de chaves PGP ===<br />
<br />
Se estiver instalando o Arch com uma ISO desatualizado, você provavelmente terá que importar chaves PGP. Concorde com baixar a chave para proceder. Se você não consegue adicionar a chave PGP com sucesso, atualizar o chaveiro ou atualizar {{Pkg|archlinux-keyring}} (veja [[#Assinatura de "<email@exemplo.org>" tem confiança desconhecida, falha na instalação|acima]]).<br />
<br />
=== Erro: chave "0123456789ABCDEF" não pôde ser procurado remotamente ===<br />
<br />
Se pacotes forem assinados com novas chaves, que foram adicionadas apenas recentemente ao {{Pkg|archlinux-keyring}}, essas chaves não estão disponível localmente durante a atualização (problema [[w:pt:o ovo ou a galinha|ovo ou galinha]]). O {{Pkg|archlinux-keyring}} instalado não contém a chave até estar atualizado. Pacman tenta contornar isso procurando em um servidor de chaves, o que pode não ser possível, por exemplo, atrás de proxys ou firewall e resulta no erro informado. Atualize o {{Pkg|archlinux-keyring}} primeiro como mostrado [[#Assinatura de "<email@exemplo.org>" tem confiança desconhecida, falha na instalação|acima]].<br />
<br />
=== Assinatura de "Usuário <email@archlinux.org>" é inválida, falha na instalação ===<br />
<br />
Quando a hora do sistema está errado, as chaves de assinatura são considerados como expiradas (ou inválidas) e verificações de assinatura em pacotes vão falhar com o erro a seguir:<br />
<br />
erro: ''pacote'': assinatura de "Usuário <email@archlinux.org>" é inválida<br />
erro: falha ao submeter transação (pacote inválido ou corrompido (assinatura PGP))<br />
Ocorreram erros e, portanto, nenhum pacote foi atualizado.<br />
<br />
Certifique-se de corrigir o [[System time|tempo]], por exemplo com {{ic|ntpd -qg}} executado como root, e execute {{ic|hwclock -w}} como root antes de instalações ou atualizações subsequentes.<br />
<br />
=== Erro 'aviso: locale atual é inválida; usando locale padrão "C"' ===<br />
<br />
Como a própria mensagem de erro diz, sua locale está configurada incorretamente. Consulte [[Locale (Português)|Locale]].<br />
<br />
=== pacman não respeita as configurações de proxy ===<br />
<br />
Certifique-se que as variáveis de ambiente relevantes ({{ic|$http_proxy}}, {{ic|$ftp_proxy}} etc.) estão configuradas. Se você usa o ''pacman'' com [[sudo]], você precisa configurar o sudo para [[sudo#Environment variables|passar essas variáveis de ambiente para o pacman]].<br />
<br />
=== Como faço para reinstalar todos os pacotes, mantendo informações sobre se algo foi explicitamente instalado ou como uma dependência? ===<br />
<br />
Para reinstalar todos os pacotes nativos: {{ic|<nowiki>pacman -Qnq | pacman -S -</nowiki>}} (a opção {{ic|-S}} preserva a razão de instalação por padrão).<br />
<br />
Então você terá que reinstalar todos os pacotes externos, que podem ser listados com {{ic|pacman -Qmq}}.<br />
<br />
=== Erro "cannot open shared object file" ===<br />
<br />
Parece que uma transição anterior do ''pacman'' removeu ou corrompeu as bibliotecas compartilhadas necessárias para o ''pacman'' em si.<br />
<br />
Para recuperar dessa situação, você precisa desempacotar manualmente as bibliotecas necessárias para seu sistema. Primeiro descubra qual pacote contém a biblioteca em falta e, então, localize-o no cache do ''pacman'' ({{ic|/var/cache/pacman/pkg/}}). Desempacote a biblioteca compartilhada necessária no sistema de arquivos. Isso vai permitir executar o ''pacman''.<br />
<br />
Agora, você precisa [[#Instalando pacotes específicos|reinstalar]] o pacote quebrado. Note que você precisa usar a opção {{ic|--overwrite}}, pois você acabou de desempacotar arquivos de sistema e o''pacman'' não tem conhecimento deles. O ''pacman'' vai substituir corretamente nosso arquivo de biblioteca compartilhada com o do pacote.<br />
<br />
É isso. Atualize o resto do sistema.<br />
<br />
=== Congelamento de downloads de pacote ===<br />
<br />
Houve alguns relatos a cerca de problemas de rede que impedem o ''pacman'' de atualizar/sincronizar repositórios. [https://bbs.archlinux.org/viewtopic.php?id&#61;68944] [https://bbs.archlinux.org/viewtopic.php?id&#61;65728] Ao instalar o Arch Linux nativamente, essas questões foram resolvidas substituindo o gerenciador de download de arquivos padrão do ''pacman'' com um alternativo (veja [[Melhorar desempenho do pacman]] para mais detalhes). Ao instalar o Arch Linux como um SO hospedeiro no [[VirtualBox (Português)|Virtualbox]], essa questão também foi resolvido usando ''Host interface'' em vez de ''NAT'' nas propriedades da máquina.<br />
<br />
=== Falha ao obter arquivo 'core.db' do espelho ===<br />
<br />
Se você receber essa mensagem de erro com os [[espelhos]] (''mirrors'') corretos, tente configurar um [[Resolv.conf (Português)|servidor de nomes]] diferente.<br />
<br />
== Entendendo ==<br />
<br />
=== O que acontece durante a instalação/atualização/remoção de pacote ===<br />
<br />
Ao concluir com êxito uma transação de pacote, o ''pacman'' executa as seguintes etapas de alto nível:<br />
<br />
# O ''pacman'' obtém o arquivo do pacote a ser instalado para todos os pacotes enfileirados em uma transação.<br />
# O ''pacman'' executa várias verificações de que os pacotes provavelmente podem ser instalados.<br />
# Se hooks {{ic|PreTransaction}} pré-existentes do ''pacman'' se aplicarem, eles serão executados.<br />
# Cada pacote é instalado/atualizado/removido por vez.<br />
## Se o pacote tiver um script de instalação, sua função {{ic|pre_install}} é executada (ou {{ic|pre_upgrade}} ou {{ic|pre_remove}} no caso de um pacote atualizado ou removido).<br />
## O ''pacman'' exclui todos os arquivos de uma versão pré-existente do pacote (no caso de um pacote atualizado ou removido). Porém, arquivos que foram marcados como arquivos de configuração no pacote são mantidos (veja [[Pacman/Pacnew e Pacsave]]).<br />
## O ''pacman'' descompacta o pacote e despeja seus arquivos no sistema de arquivos (no caso de um pacote instalado ou atualizado). Arquivos que sobrescreveriam os arquivos de configuração mantidos, e modificados manualmente (veja a etapa anterior), são armazenados com um novo nome (.pacnew).<br />
## Se o pacote tiver um script de instalação, sua função {{ic|post_install}} será executada (ou {{ic|post_upgrade}} ou {{ic|post_remove}} no caso de um pacote atualizado ou removido).<br />
# Se hooks do ''pacman'' {{ic|PostTransaction}} que existem no final da transação se aplicarem, eles serão executados.h<br />
<br />
== Veja também ==<br />
<br />
* [https://www.archlinux.org/pacman/ Página inicial do pacman]<br />
* {{man|3|libalpm}}<br />
* {{man|8|pacman}}<br />
* {{man|5|pacman.conf}}<br />
* {{man|8|repo-add}}</div>Fvguilhermehttps://wiki.archlinux.org/index.php?title=Installation_guide_(Portugu%C3%AAs)&diff=576249Installation guide (Português)2019-06-23T17:45:49Z<p>Fvguilherme: I have made grammatical changes in lines 28 and 51 to make you more understanding.</p>
<hr />
<div>[[Category:Installation process (Português)]]<br />
[[ar:Installation guide]]<br />
[[bg:Installation guide]]<br />
[[cs:Installation guide]]<br />
[[da:Installation guide]]<br />
[[de:Arch Install Scripts]]<br />
[[el:Installation guide]]<br />
[[en:Installation guide]]<br />
[[es:Installation guide]]<br />
[[fi:Installation guide]]<br />
[[fr:Arch install scripts]]<br />
[[hr:Installation guide]]<br />
[[hu:Installation guide]]<br />
[[id:Installation guide]]<br />
[[it:Installation guide]]<br />
[[ja:インストールガイド]]<br />
[[ko:Installation guide]]<br />
[[lt:Installation guide]]<br />
[[nl:Installation guide]]<br />
[[pl:Installation guide]]<br />
[[ru:Installation guide]]<br />
[[sk:Installation guide]]<br />
[[sr:Installation guide]]<br />
[[sv:Installation guide]]<br />
[[th:Installation guide]]<br />
[[tr:Installation guide]]<br />
[[zh-hans:Installation guide]]<br />
[[zh-hant:Installation guide]]<br />
{{StatusTradução|Installation guide|2019-05-06|571705}}<br />
Este documento irá guiá-lo no processo de instalação do [[Arch Linux (Português)|Arch Linux]] usando o [https://projects.archlinux.org/arch-install-scripts.git/ Arch Install Scripts]. Antes de instalar, é recomendável ler rapidamente o [[FAQ (Português)|FAQ]]. Para convenções usadas neste documento, veja [[Help:Reading (Português)]]. Em especial, exemplos de código podem conter objetos reservados (formatados em {{ic|''italics''}}) que devem ser substituídos manualmente.<br />
<br />
Para instruções mais detalhadas, veja os respectivos artigos [[ArchWiki (Português)|ArchWiki]] ou as [[páginas man]] dos vários programas, ambos relacionados neste guia. Para uma ajuda interativa, o [[canal IRC]] e os [https://bbs.archlinux.org/ fóruns] também estão disponíveis.<br />
<br />
Arch Linux deve funcionar em qualquer máquina compatível com [[Wikipedia:pt:AMD64|x86_64]] com um mínimo de 512 MB de RAM. Uma instalação básica com todos os pacotes do grupo {{Grp|base}} deve ocupar menos de 800 MB de espaço em disco. Como o processo de instalação precisa obter pacotes de repositório remoto, esse guia presume que uma conexão com a Internet esteja disponível.<br />
<br />
== Pré-instalação ==<br />
<br />
A mídia de instalação e suas assinaturas [[GnuPG]] podem ser obtidas a partir da página de [https://archlinux.org/download/ Download].<br />
<br />
=== Verificar a assinatura ===<br />
<br />
É recomendável verificar a assinatura da imagem antes de usá-la, especialmente ao fazer o download de um ''espelho HTTP'', no qual os downloads geralmente são propensos a serem interceptados para [http://www.cs.arizona.edu/stork/packagemanagersecurity/attacks-on-package-managers.html#explanation servir imagens maliciosas].<br />
<br />
Em um sistema com [[GnuPG]] instalado, faça isso baixando a ''assinatura PGP'' (sob ''Checksums'') para o diretório da ISO e [[GnuPG#Verify a signature|verificando-a]] com: <br />
<br />
$ gpg --keyserver-options auto-key-retrieve --verify archlinux-''versão''-x86_64.iso.sig<br />
<br />
Alternativamente, de uma instalação existente de Arch Linux, execute:<br />
<br />
$ pacman-key -v archlinux-''versão''-x86_64.iso.sig<br />
<br />
{{Nota|<br />
* A assinatura em si pode ser manipulada se for baixada de um site espelho, ao invés de [https://archlinux.org/download/ archlinux.org] como acima. Nesse caso, certifique-se de que a chave pública, que é usada para decodificar a assinatura, seja assinada por outra chave confiável. O comando {{ic|gpg}} produzirá a impressão digital da chave pública.<br />
* Outro método para verificar a autenticidade da assinatura é garantir que a impressão digital da chave pública seja idêntica à impressão digital da chave do [https://www.archlinux.org/people/developers/ desenvolvedor do Arch Linux] que assinou o arquivo ISO. Veja [[Wikipedia:pt:Criptografia de chave pública]] para mais informações sobre o processo de chave pública para autenticar chaves.<br />
}}<br />
<br />
=== Inicializar o ambiente live ===<br />
<br />
O ambiente ''live'' pode ser inicializado a partir de uma [[Mídia de instalação em flash USB|unidade flash USB]], um [[Optical disc drive#Burning|disco óptico]] ou uma rede com [[PXE]]. Para meios alternativos de instalação, consulte [[:Category:Installation process (Português)]].<br />
<br />
* O apontamento do dispositivo de inicialização atual para uma unidade que contém a mídia de instalação do Arch normalmente pode ser alcançado pressionando-se uma tecla durante a fase [[Wikipedia:pt:Power-on self-test|POST]], conforme indicado na tela inicial. Consulte o manual da sua placa-mãe para obter detalhes.<br />
* Quando o menu do Arch aparecer, selecione ''Boot Arch Linux'' e pressione {{ic|Enter}} para entrar no ambiente de instalação.<br />
* Consulte [https://projects.archlinux.org/archiso.git/tree/docs/README.bootparams README.bootparams] para uma lista de [[Kernel parameters#Configuration|parâmetros de inicialização]] e [https://git.archlinux.org/archiso.git/tree/configs/releng/packages.x86_64 packages.x86_64] para uma lista de pacotes incluídos.<br />
* Você será autenticado no primeiro [[Wikipedia:Virtual console|console virtual]] como o usuário ''root'' sob um prompt de shell [[Zsh]].<br />
<br />
Para trocar para um console diferente — por exemplo, para ver esse guia com [[ELinks]] junto com a instalação — use o [[Keyboard shortcuts|atalho]] {{ic|Alt+''seta''}}. Para [[edição de texto|editar]] arquivos de configuração, [[nano#Usage|nano]], [[Wikipedia:vi|vi]] e [[vim#Usage|vim]] estão disponíveis.<br />
<br />
=== Definir o layout do teclado ===<br />
<br />
O [[mapa de teclas de console]] padrão é [[Wikipedia:File:KB United States-NoAltGr.svg|US]]. Layouts disponíveis podem ser listados com:<br />
<br />
# ls /usr/share/kbd/keymaps/**/*.map.gz<br />
<br />
Para modificar o layout, acrescente um nome de arquivo ao {{man|1|loadkeys}}, omitindo caminho e extensão de arquivo. Por exemplo, para definir um layout de teclado [[Wikipedia:File:KB_Portuguese_Brazil.svg|ABNT (brasileiro)]]:<br />
<br />
# loadkeys br-abnt2 <!-- Nota do tradutor: o artigo original usou layout alemão (de), mas usei um layout brasileiro por presumir ser mais útil para o leitor deste artigo traduzido --><br />
<br />
[[Fontes de console]] estão localizadas em {{ic|/usr/share/kbd/consolefonts/}} e, de forma semelhante, podem ser definidas com {{man|8|setfont}}.<br />
<br />
=== Definir o idioma do ambiente live ===<br />
<!-- Nota do tradutor: essa é uma seção original deste artigo traduzido, não existindo no artigo original em inglês (veja: https://wiki.archlinux.org/index.php?title=Talk:Installation_guide&diff=572522&oldid=572403)--><br />
{{Nota|Isso se aplica '''apenas''' ao ambiente live. A definição do idioma do sistema instalado é explicado em [[#Localização]]}}<br />
<br />
O ambiente ''live'' vem em inglês (locale {{ic|en_US.UTF-8}}) por padrão, mas você pode alterá-lo para executar as etapas de instalação usando o idioma desejado.<br />
<br />
Descomente {{ic|pt_BR.UTF-8 UTF-8}} e qualquer outro locale desejado em {{ic|/etc/locale.gen}} e gere-os com:<br />
<br />
# locale-gen<br />
<br />
Então, exporte a variável {{ic|LANG}} acrescentando o idioma e codificação desejados. Por exemplo, para pt_BR seria:<br />
<br />
# export LANG=pt_BR.UTF-8<br />
<br />
=== Verificar o modo de inicialização ===<br />
<br />
Se o modo UEFI estiver disponível em uma placa-mãe [[UEFI]], [[Archiso (Português)|Archiso]] vai [[inicializar]] o Arch Linux adequadamente via [[systemd-boot]]. Para verificar isso, liste o diretório [[UEFI#UEFI variables|efivars]]:<br />
<br />
# ls /sys/firmware/efi/efivars<br />
<br />
Se o diretório não existir, o sistema pode ser inicializado no modo [[Wikipedia:BIOS|BIOS]] ou CSM. Veja o manual da sua placa-mãe para detalhes.<br />
<br />
=== Conectar à internet ===<br />
<br />
Para configurar uma conexão de rede, siga as etapas abaixo:<br />
<br />
# Certifique-se que sua [[interface de rede]] esteja listada e ativada, por exemplo, com {{man|8|ip-link}}: {{bc|# ip link}}<br />
# Conecte-se à rede. Conecte o cabo Ethernet ou [[Configuração de rede sem fio|conecte a uma rede sem fio]].<br />
# Configure sua conexão de rede:<br />
#* [[Configuração de rede#Endereço IP estático|Endereço IP estático]]<br />
#* Endereço IP dinâmico: use [[DHCP]].<br />
#: {{Nota|A imagem de instalação habilita [[dhcpcd]] ({{ic|dhcpcd@''interface''.service}}) para [https://git.archlinux.org/archiso.git/tree/configs/releng/airootfs/etc/udev/rules.d/81-dhcpcd.rules dispositivos de rede com fio] na inicialização.}}<br />
# A conexão pode ser verificada com [[Wikipedia:pt:ping|ping]]: {{bc|# ping archlinux.org}}<br />
<br />
=== Atualizar o relógio do sistema ===<br />
<br />
Use {{man|1|timedatectl}} para garantir que o relógio do sistema está certo:<br />
<br />
# timedatectl set-ntp true<br />
<br />
Para verificar o status do serviço, use {{ic|timedatectl status}}.<br />
<br />
=== Partição dos discos ===<br />
<br />
Quando reconhecido pelo sistema ''live'', discos são atribuídos a um [[Wikipedia:Device_file#Naming_conventions|dispositivo de bloco]] tal como {{ic|/dev/sda}} ou {{ic|/dev/nvme0n1}}.. Para identificar esses dispositivos, use [[lsblk (Português)|lsblk]] ou ''fdisk''.<br />
<br />
# fdisk -l<br />
<br />
Resultados terminando em {{ic|rom}}, {{ic|loop}} ou {{ic|airoot}} podem ser ignorados.<br />
<br />
As seguintes [[partition|partições]] são '''exigidas''' para um dispositivo escolhido:<br />
<br />
* Uma partição para o diretório raiz {{ic|/}}.<br />
* Se [[UEFI]] estiver habilitado, uma [[EFI system partition|partição de sistema EFI]].<br />
<br />
Se você quiser criar algum dispositivo de bloco empilhado para [[LVM]], [[dm-crypt|criptografia de sistema]] ou [[RAID]], faça isso agora.<br />
<br />
==== Exemplos de layouts ====<br />
<br />
{| class="wikitable"<br />
!colspan="5" | BIOS com [[MBR]]<br />
|-<br />
! Ponto de montagem<br />
! Partição<br />
! [[Wikipedia:pt:Tipo de partição|Tipo de partição]]<br />
! Tamanho sugerido<br />
|-<br />
| {{ic|/mnt}}<br />
| {{ic|/dev/sd''X''1}}<br />
| Linux<br />
| Restante do dispositivo<br />
|-<br />
| [SWAP]<br />
| {{ic|/dev/sd''X''2}}<br />
| Swap Linux<br />
| Mais que 512 MiB<br />
|-<br />
!colspan="5" | UEFI com [[GPT]]<br />
|-<br />
! Ponto de montagem<br />
! Partição<br />
! [[Wikipedia:pt:Tabela de Partição GUID#Tipos de partição GUID|Tipo de partição]]<br />
! Tamanho sugerido<br />
|-<br />
| {{ic|/mnt/boot}} ou {{ic|/mnt/efi}}<br />
| {{ic|/dev/sd''X''1}}<br />
| [[EFI system partition|Partição de sistema EFI]]<br />
| 260–512 MiB<br />
|-<br />
| {{ic|/mnt}}<br />
| {{ic|/dev/sd''X''2}}<br />
| Linux x86-64 root (/)<br />
| Restante do dispositivo<br />
|-<br />
| [SWAP]<br />
| {{ic|/dev/sd''X''3}}<br />
| Linux swap<br />
| Mais que 512 MiB<br />
|-<br />
|}<br />
<br />
Veja também [[Partitioning#Example layouts]].<br />
<br />
{{Nota|<br />
* Use [[fdisk]] ou [[parted]] para modificar as tabelas de partição, por exemplo {{ic|fdisk /dev/sd''X''}}.<br />
* Um espaço [[swap (Português)|swap]] pode ser definido em um [[Arquivo swap]] para sistemas de arquivos que possuem suporte a file systems supporting it.<br />
}}<br />
<br />
=== Formatar as partições ===<br />
<br />
Assim que as partições tenham sido criadas, cada uma deve ser formatada com um [[file system|sistema de arquivos]] adequado. Por exemplo, se a partição raiz está em {{ic|/dev/sd''X''1}} e receberá o sistema de arquivos {{ic|''ext4''}}, execute:<br />
<br />
# mkfs.''ext4'' /dev/sd''X1''<br />
<br />
Se você criou uma partição para swap (por exemplo, {{ic|/dev/''sda3''}}), inicialize-a com ''mkswap'':<br />
<br />
# mkswap /dev/sd''X2''<br />
# swapon /dev/sd''X2''<br />
<br />
Veja [[File systems#Create a file system]] para detalhes.<br />
<br />
=== Montar os sistemas de arquivos ===<br />
<br />
[[Mount|Monte]] o sistema de arquivos da partição raiz em {{ic|/mnt}}, por exemplo:<br />
<br />
# mount /dev/sd''X1'' /mnt<br />
<br />
Crie quaisquer pontos de montagem restantes (tal como {{ic|/mnt/efi}}) e monte suas partições correspondentes.<br />
<br />
[https://git.archlinux.org/arch-install-scripts.git/tree/genfstab.in genfstab] vai detectar os sistemas de arquivos montados e espaços swap.<br />
<br />
== Instalação ==<br />
<br />
=== Selecionar os espelhos ===<br />
<br />
Pacotes a serem instalados devem ser baixados de [[espelhos]] ''(mirrors)'', que são definidos na {{ic|/etc/pacman.d/mirrorlist}}. No sistema ''live'', todos os espelhos estão habilitados e ordenados por seu status e velocidade de sincronização à época em que a imagem de instalação foi criada.<br />
<br />
Quanto mais alto um espelho está posicionado na lista, mais prioritário ele será ao baixar um pacote. Você pode querer editar o arquivo e mover espelhos geograficamente mais pertos para o topo da lista, apesar de que outros critérios devem ser levados em consideração.<br />
<br />
Esse arquivo será posteriormente copiado para o novo sistema por ''pacstrap'', então é melhor fazer direito.<br />
<br />
=== Instalar os pacotes base ===<br />
<br />
Use o script [https://projects.archlinux.org/arch-install-scripts.git/tree/pacstrap.in pacstrap] para instalar o grupo de pacotes {{Grp|base}}:<br />
<br />
# pacstrap /mnt base<br />
<br />
Esse grupo não inclui todas as ferramentas da instalação ''live'', tal como {{Pkg|btrfs-progs}} ou firmware de rede sem fio específico; veja [https://projects.archlinux.org/archiso.git/tree/configs/releng/packages.x86_64 packages.x86_64] para comparação.<br />
<br />
Para [[instalar]] pacotes e outros grupos, tal como {{Grp|base-devel}}, anexe os nomes ao ''pacstrap'' (separados por espaço) ou a comandos [[pacman (Português)|pacman]] após a etapa do [[#Chroot]].<br />
<br />
== Configurar o sistema ==<br />
<br />
=== Fstab ===<br />
<br />
Gerar um arquivo [[fstab]] (use {{ic|-U}} ou {{ic|-L}} para definir por [[UUID]] ou rótulos, respectivamente):<br />
<br />
# genfstab -p /mnt >> /mnt/etc/fstab<br />
<br />
Verifique o arquivo resultante em {{ic|/mnt/etc/fstab}} em seguida e edite-o caso haja erros.<br />
<br />
=== Chroot ===<br />
<br />
[[Change root (Português)|Mude a raiz]] para novo sistema:<br />
<br />
# arch-chroot /mnt<br />
<br />
=== Fuso horário ===<br />
<br />
Defina o [[time zone|fuso horário]]:<br />
<br />
# ln -sf /usr/share/zoneinfo/''Região''/''Cidade'' /etc/localtime<br />
<br />
Por exemplo, para definir para o fuso horário de Brasília (''BRT'' ou ''BRST''), execute:<br />
# ln -sf /usr/share/zoneinfo/America/Sao_Paulo /etc/localtime<br />
<br />
Execute {{man|8|hwclock}} para gerar {{ic|/etc/adjtime}}:<br />
<br />
# hwclock --systohc<br />
<br />
Esse comando presume que o relógio de hardware está definido para [[Wikipedia:UTC|UTC]]. Veja [[System time#Time standard]] para mais detalhes.<br />
<br />
=== Localização ===<br />
<br />
Descomente {{ic|pt_BR.UTF-8 UTF-8}} e qualquer outro [[locale (Português)|locale]] em {{ic|/etc/locale.gen}}, e gere-os com:<br />
<br />
# locale-gen<br />
<br />
Crie o arquivo {{man|5|locale.conf}} e defina a [[variável]] {{ic|LANG}} adequadamente:<br />
<br />
{{hc|1=/etc/locale.conf|2=<br />
LANG=''pt_BR.UTF-8''<br />
}}<br />
<br />
Se você [[#Definir o layout do teclado|definir o layout do teclado]], torne as alterações persistentes em {{man|5|vconsole.conf}}:<br />
<br />
{{hc|1=/etc/vconsole.conf|2=<br />
KEYMAP=''br-abnt2''<br />
}}<br />
<br />
=== Configuração de rede ===<br />
<br />
Crie o arquivo [[hostname (Português)|hostname]]:<br />
<br />
{{hc|/etc/hostname|<br />
''meuhostname''<br />
}}<br />
<br />
Adicione entradas correspondentes ao {{man|5|hosts}}:<br />
<br />
{{hc|/etc/hosts|<br />
127.0.0.1 localhost.localdomain localhost<br />
::1 localhost.localdomain localhost<br />
'''127.0.1.1 ''meuhostname''.localdomain ''meuhostname'''''<br />
}}<br />
<br />
Se o sistema tem um endereço IP permanente, ele deve ser usado em vez de {{ic|127.0.1.1}}.<br />
<br />
Complete a [[configuração de rede]] para o ambiente recém-instalado.<br />
<br />
=== Initramfs ===<br />
<br />
Criar um novo ''initramfs'' geralmente não é necessário, porque [[mkinitcpio]] foi executado na instalação do pacote {{Pkg|linux}} com ''pacstrap''.<br />
<br />
Para [[LVM#Configure_mkinitcpio|LVM]], [[dm-crypt|criptografia de sistema]] or [[RAID#Configure_mkinitcpio|RAID]], modifique o {{man|5|mkinitcpio.conf}} e recrie a imagem initramfs:<br />
<br />
# mkinitcpio -p linux<br />
<br />
=== Senha do root ===<br />
<br />
Defina a [[senha]] do ''root'' (também conhecido como "superusuário"):<br />
<br />
# passwd<br />
<br />
=== Gerenciador de boot ===<br />
<br />
Veja [[Processo de inicialização do Arch#Gerenciador de boot]] para uma lista de gerenciadores de boot com suporte a Linux.<br />
<br />
{{Nota|Se você tiver um CPU Intel ou AMD, habilite atualizações de [[microcode|microcódigo]].}}<br />
<br />
== Reiniciar ==<br />
<br />
Saia de ambiente ''chroot'' digitando {{ic|exit}} ou pressionando {{ic|Ctrl+D}}.<br />
<br />
Opcionalmente, desmonte todas as partições com {{ic|umount -R /mnt}}: isso permite noticiar quaisquer partições "ocupadas" e localizar a causa com o {{man|1|fuser}}.<br />
<br />
Finalmente, reinicie a máquina digitando {{ic|reboot}}: quaisquer partições que ainda estejam montadas serão desmontadas automaticamente por ''systemd''. Lembre-se de remover a mídia de instalação e, então, se autenticando no novo sistema com a conta de root.<br />
<br />
== Pós-instalação ==<br />
<br />
Veja [[Recomendações gerais]] por instruções de gerenciamento de sistema e tutoriais pós-instalação (como instalar uma interface gráfica de usuário, som ou um touchpad).<br />
<br />
Para uma lista de aplicativos que podem ser de seu interesse, veja [[List of applications|Lista de aplicativos]].</div>Fvguilherme