Compilando o p7zip-desktop no Ubuntu e Linux Mint

O grande interesse de ensinar a compilar o p7zip-desktop e gerar o pacote deb é o fato do p7zip ser uma ferramenta com alto nível de compressão e de não ter muitos pacotes pré-compilados para a interface gráfica dele. Por isso, estou disponibilizando a oportunidade para quem se interessar em trabalhar com a ferramenta, tendo acesso aos recursos com a interface gráfica.

[ Hits: 5.383 ]

Por: Mauricio Ferrari em 23/06/2020 | Blog: https://www.youtube.com/@LinuxDicasPro


Gerando os pacotes e Finalizando



Ainda não acabou. Alguns ajustes ainda devem ser feitos antes de gerar o pacote. Começando com os arquivos dentro dos diretórios dos projetos criados.

Existem arquivos duplicados dentro dos projetos que devem ser eliminados. Outros precisam ser modificados e adicionados. Em p7zip, abra o terminal e rode esses comandos:

mkdir -p ./usr/share/man/man1
$ cp ./usr/man/man1/7zr.1 ./usr/share/man/man1/
$ rm -r ./usr/man ./usr/share/doc
$ cp /home/$USER/p7zip_16.02/contrib/gzip-like_CLI_wrapper_for_7z/p7zip ./usr/bin


O primeiro pacote está pronto. Em p7zip-full, abra o terminal e rode esses comandos:

mkdir -p ./usr/share/man/man1
$ cp ./usr/man/man1/7z.1 ./usr/share/man/man1/
$ cp ./usr/man/man1/7za.1 ./usr/share/man/man1/
$ rm -r ./usr/man ./usr/share/doc


Está quase pronto, só falta corrigir os scripts em ./usr/bin pois estão direcionando para o local errado. Edite-os com o editor de sua preferência:

vim ./usr/bin/7z

Deixe-o dessa maneira:

#! /bin/sh
"/usr/lib/p7zip/7z" "$@"

vim ./usr/bin/7za

Deixe-o dessa maneira:

#! /bin/sh
"/usr/lib/p7zip/7za" "$@"

Agora tá pronto. Vamos para o último pacote. Em p7zip-desktop, abra o terminal e rode esses comandos:

rm -r ./usr/man ./usr/share/doc ./usr/lib/p7zip/Codecs
$ rm ./usr/lib/p7zip/7z.so
$ mkdir -p ./usr/share/icons/hicolor/16x16/apps
$ mkdir -p ./usr/share/icons/hicolor/32x32/apps
$ mkdir -p ./usr/share/kservices5/ServiceMenus/
$ cp /home/$USER/p7zip_16.02/GUI/kde4/*desktop ./usr/share/kservices5/ServiceMenus/
$ cp /home/$USER/p7zip_16.02/GUI/p7zip_16.png ./usr/share/icons/hicolor/16x16/apps/p7zip.png
$ cp /home/$USER/p7zip_16.02/GUI/p7zip_32.png ./usr/share/icons/hicolor/32x32/apps/p7zip.png


Está quase pronto, só falta corrigir os scripts em ./usr/bin pois estão direcionando para o local errado. Edite-os com o editor de sua preferência:

vim ./usr/bin/7zG

Deixe-o dessa maneira:

#! /bin/sh
"/usr/lib/p7zip/7zG" "$@"

vim ./usr/bin/7zFM

Deixe-o dessa maneira:

#! /bin/sh
"/usr/lib/p7zip/7zFM" "$@"

Por fim, falta o ícone do menu de aplicativos. Vamos criar um local para o arquivo desktop:

mkdir -p ./usr/share/applications

Crie o arquivo 7zFM.desktop e insira essas informações com um editor de sua preferência:

[Desktop Entry]
Encoding=UTF-8
Name=7-Zip FM
GenericName=7-Zip File Manager
Type=Application
Categories=GTK;Utility;Archiving;Compression;
Terminal=false
Icon=p7zip
Exec=7zFM

Agora só está faltando o arquivo control nos diretórios DEBIAN. Crie os arquivos control nos diretórios DEBIAN e insira o conteúdo a seguir em seus respectivos projetos.

Para o p7zip:

Package: p7zip
Version: 16.02-1
Architecture: amd64
Maintainer: m10ferrari1200
Original-Maintainer: Mohammed Adnène Trojette
Installed-Size: 806
Depends: libc6 (>= 2.14), libgcc1 (>= 1:4.1.1), libstdc++6 (>= 4.1.1)
Suggests: p7zip-full
Section: utils
Priority: optional
Homepage: http://p7zip.sourceforge.net/
Description: 7z file archiver with high compression ratio
p7zip is the Unix command-line port of 7-Zip, a file archiver that
archives with high compression ratios.
.
p7zip provides:
  - /usr/bin/7zr
    a standalone minimal version of the 7-zip tool that only handles
    7z archives. 7z compression is 30-50% better than ZIP compression.
  - /usr/bin/p7zip
    a gzip-like wrapper around 7zr.
.
p7zip can be used with popular compression interfaces (such as File
Roller or Nautilus).
.
p7zip-full provides 7z and 7za which support more compression formats.

Para o p7zip-full:

Package: p7zip-full
Source: p7zip
Version: 16.02-1
Architecture: amd64
Maintainer: m10ferrari1200
Original-Maintainer: Mohammed Adnène Trojette
Installed-Size: 4506
Depends: libc6 (>= 2.14), libgcc1 (>= 1:4.1.1), libstdc++6 (>= 4.1.1)
Conflicts: p7zip (<< 4.39-1)
Replaces: p7zip (<< 4.39-1)
Section: utils
Priority: optional
Homepage: http://p7zip.sourceforge.net/
Description: 7z and 7za file archivers with high compression ratio
p7zip is the Unix command-line port of 7-Zip, a file archiver that
archives with high compression ratios.
.
p7zip-full provides utilities to pack and unpack 7z archives within
a shell or using a GUI (such as Ark, File Roller or Nautilus).
.
Installing p7zip-full allows File Roller to use the very efficient 7z
compression format for packing and unpacking files and directories.
Additionally, it provides the 7z and 7za commands.
.
List of supported formats:
   - Packing / unpacking: 7z, ZIP, GZIP, BZIP2, XZ and TAR
   - Unpacking only: APM, ARJ, CAB, CHM, CPIO, CramFS, DEB, DMG, FAT,
     HFS, ISO, LZH, LZMA, LZMA2, MBR, MSI, MSLZ, NSIS, NTFS, RAR (only
     if non-free p7zip-rar package is installed), RPM, SquashFS, UDF,
     VHD, WIM, XAR and Z.
.
p7zip provides 7zr, a light version of 7za, and p7zip, a gzip-like
wrapper around 7zr.

Para o p7zip-desktop:

Package: p7zip-desktop
Source: p7zip
Version: 16.02-1
Architecture: amd64
Maintainer: m10ferrari1200
Installed-Size: 2765
Depends: libc6 (>= 2.4), libgcc1 (>= 1:4.1.1), libstdc++6 (>= 4.1.1), p7zip, p7zip-full, libwxgtk3.0-dev
Conflicts: p7zip (<< 4.39-1)
Section: utils
Priority: optional
Homepage: http://p7zip.sourceforge.net/
Description: 7zG provides a standalone GUI 7zFM and a KDE ServiceMenu.

Em seguida, vamos corrigir as permissões. No local dos projetos, em um terminal, digite:

chmod -R 755 p7zip*
$ chmod -x p7zip/usr/share/man/man1/7zr.1
$ chmod -x p7zip-full/usr/share/man/man1/*
$ chmod -x p7zip-full/usr/lib/p7zip/7z.so
$ chmod -x p7zip-full/usr/lib/p7zip/Codecs/Rar.so
$ chmod -x p7zip-desktop/usr/lib/p7zip/Lang/*
$ chmod -x p7zip-desktop/usr/share/kservices5/ServiceMenus/*
$ chmod -x p7zip-desktop/usr/share/icons/hicolor/16x16/apps/p7zip.png
$ chmod -x p7zip-desktop/usr/share/icons/hicolor/32x32/apps/p7zip.png


Agora é só gerar os pacotes:

dpkg-deb -b p7zip/ p7zip_16.02-1_amd64.deb
$ dpkg-deb -b p7zip-full/ p7zip-full_16.02-1_amd64.deb
$ dpkg-deb -b p7zip-desktop/ p7zip-desktop_16.02-1_amd64.deb


ou se for o seu caso:

dpkg-deb -b p7zip/ p7zip_16.02-1_i386.deb
$ dpkg-deb -b p7zip-full/ p7zip-full_16.02-1_i386.deb
$ dpkg-deb -b p7zip-desktop/ p7zip-desktop_16.02-1_i386.deb


CONCLUSÃO

Compilar um pacote pode ser tarefa fácil se no final não precisar de nenhum ajuste adicional ou se o programa não está separado por vários pacotes que é o caso do p7zip. Dá um certo trabalho, mas no fim vale a experiência. Fiz vários ajustes para deixar os pacotes mais perto possível das versões anteriores pré-compiladas e por opção deixei de fora a documentação. Mas eles podem ser mantidos.

Não sei se os ajustes nas permissões se faz válido, mas fiz os ajustes por garantia. A documentação se fez muito importante para o processo de compilação e o script install.sh que veio junto ajudou muito. Quem quiser compilar em outras distribuições para fazer o teste, é só adaptar o método a distribuição que irá usar. Enfim, espero que tenham gostado.
Linux: Compilando o p7zip-desktop no Ubuntu e Linux Mint

Referências


Página anterior    

Páginas do artigo
   1. Introdução
   2. Analisando a Estrutura dos Pacotes
   3. Compilando o p7zip
   4. Gerando os pacotes e Finalizando
Outros artigos deste autor

Criando acima de quatro partições no HD

LXQT Desktop no Slackware

Pendrive MultiBoot com o Ventoy Não Funcionou? Tem Solução!

Gerando Pacote do QMPlay2 20.12.16 no Slackware Current Facilmente

Variáveis padrão para usar em seus scripts em shell

Leitura recomendada

VirtualBox

Produzindo um "reality show" com seu Linux

Seu Slackware atualizado com SWARET

Nagios e Cacti no CentOS 6.x - Instalação, configuração e integração das ferramentas

Introdução à Solus Linux - Distro Independente

  
Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts