Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Tópicos - Sampayu

Páginas: [1] 2
1
Recentemente criei um script que usa o comando xrandr no terminal do shell para corrigir o brilho e o contraste do monitor do meu laptop. Pus um atalho para esse script no painel do Xfce, e daí eu o aciono como se fosse o botão de um aplicativo, exceto que quando eu clico nele, surge uma janela do terminal pedindo que eu digite um número para o brilho e outro para o contraste que desejo aplicar ao monitor.

  • Caso alguém tenha interesse em usar isso, o primeiro passo é abrir uma janela do emulador de terminal do shell (por exemplo pressionando a combinação de teclas Ctrl Alt T) e então executar o comando abaixo, para criar uma pasta scripts dentro da sua pasta pessoal (você pode selecionar o comando abaixo e então usar a combinação de teclas Ctrl C para copiá-lo. Em seguida, clique na janela do emulador de terminal e então pressione a combinação de teclas Ctrl Shift V para colá-lo, daí basta pressionar Enter. Pule esta etapa caso você já possua uma pasta desse tipo)
Código: [Selecionar]
mkdir ~/scripts
  • O segundo passo é usar o editor de textos Nano para criar o arquivo de script xrandr.sh dentro da pasta scripts (caso você já possua uma pasta scripts em outro local, ajuste o comando abaixo para que aponte para o local dessa sua pasta):
Código: [Selecionar]
nano ~/scripts/xrandr.sh
  • O terceiro passo consiste em copiar o código abaixo e então colá-lo (Ctrl Shift V) dentro da tela do Nano:
Código: [Selecionar]
#!/bin/bash
# Corrige o brilho e o contraste do monitor.

# Define uma função calc() capaz de informar quociente decimal.
calc() { awk "BEGIN{ printf \"%.1f\n\", $* }" | tr "," "."; }

export monitor=`xrandr --listactivemonitors |tail -c 7`

export brilho="0"

while [[ $brilho != [1-9] ]]
do
echo Digite um BRILHO válido\:
echo \(n\º inteiro entre 1 e 9\; quanto maior o n\º, MAIOR o brilho\)
read brilho
echo ""
done

export brilho="`calc $brilho/10`"

export gamma="0"

while [[ $gamma -lt 1 ]] || [[ $gamma -gt 20 ]]
do
echo Digite um CONTRASTE válido\:
echo \(n\º inteiro entre 1 e 20\; quanto maior o n\º, MENOR o contraste\)
read gamma
echo ""
done

export gamma="`calc $gamma/10`"

xrandr --output $monitor --gamma $gamma:$gamma:$gamma --brightness $brilho

PS: caso seu computador possua mais de um monitor, é recomendável primeiro testar se o comando export monitor=`xrandr --listactivemonitors |tail -c 7` de fato seleciona o monitor correto. Para fazer isso, execute este comando, no terminal do shell:
Código: [Selecionar]
export monitor=`xrandr --listactivemonitors |tail -c 7` ; clear ; echo $monitor...e então veja se o nome que aparece é a identificação do monitor que você de fato está usando como monitor principal.

  • O quarto passo consiste em pressionar a combinação de teclas Ctrl O e pressionar Enter para salvar essa alteração, e em seguida pressionar a combinação de teclas Ctrl X para sair do Nano.
  • O quinto passo consiste em executar o comando abaixo, para tornar esse script executável:
Código: [Selecionar]
chmod +x ~/scripts/xrandr.sh
  • O sexto passo consiste em adicionar sua pasta scripts à variável PATH do arquivo de configuração do seu shell Bash (arquivo .bashrc dentro da sua pasta pessoal), para que os scripts que você puser na sua pasta de scripts sejam reconhecidos sempre que você digitar o nome deles no emulador de terminal. Para fazer isso, use o Nano para abrir o arquivo de configuração do seu Bash:
Código: [Selecionar]
nano ~/.bashrcCaso o Nano mostre para você que dentro desse arquivo existe uma linha começando com PATH=, então adicione o endereço da sua pasta de scripts. Por exemplo, se dentro do arquivo .bashrc existir uma linha assim:
Citar
PATH=$PATH:/opt/java/jre/bin

...então adicione o código :~/scripts ao final daquele código. Assim:

Citar
PATH=$PATH:/opt/java/jre/bin:~/scripts

Caso o arquivo .bashrc aberto pelo Nano não tenha nenhuma referência à variável PATH, então adicione esta linha ao final do arquivo:

Citar
PATH=$PATH:~/scripts
  • O sétimo passo consiste em executar o quarto passo novamente, para salvar as alterações feitas (Ctrl O + Enter) e então sair do editor de texto Nano (Ctrl X).
  • O oitavo passo consiste em executar o seguinte comando, que fará o shell inicializar as configurações que você adicionou:
Código: [Selecionar]
source ~/.bashrc

    Pronto: daqui para a frente, bastará executar o comando xrandr.sh que o script lhe solicitará que informe um número inteiro entre 1 e 9 (quanto maior o número informado, maior o brilho que será atribuído ao monitor) e em seguida um número inteiro entre 1 e 20 (quanto menor o número informado, maior o contraste do monitor). Uma vez informados esses 2 números, o programa xrandr modificará o brilho e o contraste do monitor. Sugestão de números para testar o script: brilho = 9 e contraste = 7.

    Pelo menos no XUbuntu (que eu utilizo), é fácil usar um botão para acionar esse script: basta clicar com o botão direito sobre o painel ("barra de tarefas" ou taskbar, onde aparece o ícone de rede, o ícone do controle de volume etc.), em seguida selecionar o menu Painel => Adicionar novos itens..., clicar em Lançador, em seguida clicar em Adicionar e então em Fechar. Surgirá um novo ícone no painel, então clique sobre ele com o botão direito e clique na opção Propriedades, clique no botão Adicionar um novo item vazio e daí preencha assim os campos da janela que surgirá:

    Nome: Especificar o brilho e o contraste do monitor
    Comando: /home/nome-da-sua-pasta-pessoal/scripts/xrandr.sh
    Ícone: Clique sobre o botão Nenhum ícone, selecione um ícone (procure a palavra display) e clique em OK
    Marque a caixa Executar no terminal, então clique em Salvar e em seguida clique em Fechar.

    No Ubuntu é possível fazer algo parecido, embora seja mais trabalhoso. O primeiro passo consiste em criar um arquivo .desktop dentro de ~/.local/share/applications/ (sua pasta pessoal de aplicativos). O comando é este:
    Código: [Selecionar]
    nano ~/.local/share/applications/xrandr.desktop
    Em seguida, selecione o código abaixo, copie-o (Ctrl C) e então cole-o (Ctrl Shift V) dentro da janela do Nano:

    Código: [Selecionar]
    [Desktop Entry]
    Name=Especificar o brilho e o contraste do monitor
    Exec=/home/nome-da-sua-pasta-pessoal/scripts/xrandr.sh
    Icon=/usr/share/icons/gnome/256x256/devices/display.png
    Terminal=true
    Type=Application
    StartupNotify=true

    Substitua /home/nome-da-sua-pasta-pessoal/scripts/xrandr.sh pelo caminho correto para o script e então use Ctrl O para gravar a alteração e Ctrl X para sair do Nano. Em seguida, reinicie o computador. Se antes disso quiser testar o novo item de menu, execute este comando:
    Código: [Selecionar]
    xdg-open ~/.local/share/applications/...para fazer o seu gerenciador de arquivos (Nautilus, Thunar etc.) acessar sua pasta ~/.local/share/applications. Quando ela for aberta, execute (com um clique duplo, por exemplo) o arquivo xrandr.desktop que estará dentro dessa pasta. Se o Ubuntu lhe perguntar em qual painel deseja instalar o atalho de aplicativo, deixe selecionado o painel 0 (que é o padrão) e clique em OK, daí procure o ícone no painel ou no menu de aplicativos/programas e execute-o.

    2
    Há alguns dias, precisei usar o comando ffmpeg no terminal do shell para gerar um arquivo1.mp3 a partir do respectivo arquivo1.m4a (arquivo-fonte de áudio em formato MPEG-4).

    Passados alguns dias, também tive de gerar arquivo2.mp3, arquivo3.mp3, arquivo4.mp3 e arquivo5.mp3 respectivamente a partir de arquivo2.m4a, arquivo3.m4a, arquivo4.m4a e arquivo5.m4a.

    Resolvi então fazer um script do shell Bash, bem simples (sem recursão, sem opções de compressão nem nada), só para encurtar o comando. Ele usa o ffmpeg para extrair a faixa de áudio, convertê-la do formato MPEG-4 para o formato MPEG-3 e então salvá-la dentro de um arquivo .mp3.

    Por isto, se eu atualmente quiser gerar um arquivo .mp3 a partir de um arquivo .m4a, eu só preciso digitar o nome do script e o caminho completo para o arquivo .m4a. Por exemplo, o comando:

    Código: [Selecionar]
    m4amp3.sh /music/rock/faixa1.m4a
    ...criará o seguinte arquivo:

    Código: [Selecionar]
    /music/rock/faixa1.mp3
    Além disso, caso o arquivo contenha vídeo MPEG-4 (i.e. possua uma extensão-container tal como .mp4 ou .m4v), com o script também é possível executar um comando como por exemplo (fictício) este:

    Código: [Selecionar]
    m4amp3.sh /videos/filmes/filme1.mp4...ou
    Código: [Selecionar]
    m4amp3.sh /videos/filmes/filme1.m4v...e então o script usará o ffmpeg para extrair uma cópia da faixa de áudio .m4a que está dentro do arquivo .mp4/.m4v, converter essa cópia para o formato de áudio MPEG-3 e então gerar o seguinte arquivo de áudio:
    Código: [Selecionar]
    /videos/filmes/filme1.mp3
    • Caso alguém tenha interesse em usar isso, o primeiro passo é abrir uma janela do emulador de terminal do shell (por exemplo pressionando a combinação de teclas Ctrl Alt T) e então executar o comando abaixo, para instalar o ffmpeg:
    Código: [Selecionar]
    sudo snap install ffmpeg
    • O segundo passo é executar o comando abaixo, para criar uma pasta scripts dentro da sua pasta pessoal.
      (você pode selecionar o comando abaixo e então usar a combinação de teclas Ctrl C para copiá-lo. Em seguida, clique na janela do emulador de terminal e então pressione a combinação de teclas Ctrl Shift V para colá-lo, daí basta pressionar Enter. Pule esta etapa caso você já possua uma pasta desse tipo)
    Código: [Selecionar]
    mkdir ~/scripts
    • O terceiro passo é usar o editor de textos Nano para criar o arquivo de script m4amp3.sh dentro da pasta scripts (caso você já possua uma pasta scripts em outro local, ajuste o comando abaixo para que aponte para o local dessa sua pasta):
    Código: [Selecionar]
    nano ~/scripts/m4amp3.sh
    • O quarto passo consiste em copiar o código abaixo e então colá-lo (Ctrl Shift V) dentro da tela do Nano:
    Código: [Selecionar]
    #!/bin/bash
    # Este script usa o ffmpeg para gerar um arquivo de áudio MPEG-3 (extensão .mp3) a partir de um arquivo
    # de áudio (ou de vídeo) que esteja no formato MPEG-4 (extensão .mp4, .m4v, .m4a etc.).

    export font=$1
    echo Uso: m4amp3.sh /caminho/para/o/arquivo.m4a
    echo ""

    if ! command -v ffmpeg &> /dev/null
    then
    echo O bash não encontrou o executável do ffmpeg!
    echo ""
    echo Saindo...
    sleep 3
    exit
    fi

    while [[ $font = "" ]]
    do
    echo Informe o caminho completo para o arquivo m4a!
    echo ""
    echo Saindo...
    sleep 3
    exit
    done

    export name=${font%.???}
    if [ -f "$font" ]
    then
    ffmpeg -i "$font" -c:a libmp3lame "$name.mp3"
    else
    echo $font
    echo NÃO é um caminho válido para um arquivo m4a!
    echo ""
    echo Saindo...
    sleep 3
    exit
    fi

    exit
    • O quinto passo consiste em pressionar a combinação de teclas Ctrl O e pressionar Enter para salvar essa alteração, e em seguida pressionar a combinação de teclas Ctrl X para sair do Nano.
    • O sexto passo consiste em executar o comando abaixo, para tornar esse script executável:
    Código: [Selecionar]
    chmod +x ~/scripts/m4amp3.sh
    • O sétimo passo consiste em adicionar sua pasta scripts à variável PATH do arquivo de configuração do seu shell Bash (arquivo .bashrc dentro da sua pasta pessoal), para que os scripts que você puser na sua pasta de scripts sejam reconhecidos sempre que você digitar o nome deles no emulador de terminal. Para fazer isso, use o Nano para abrir o arquivo de configuração do seu Bash:
    Código: [Selecionar]
    nano ~/.bashrcCaso o Nano mostre para você que dentro desse arquivo existe uma linha começando com PATH=, então adicione o endereço da sua pasta de scripts. Por exemplo, se dentro do arquivo .bashrc existir uma linha assim:
    Citar
    PATH=$PATH:/opt/java/jre/bin

    ...então adicione o código :~/scripts ao final daquele código. Assim:

    Citar
    PATH=$PATH:/opt/java/jre/bin:~/scripts

    Caso o arquivo .bashrc aberto pelo Nano não tenha nenhuma referência à variável PATH, então adicione esta linha ao final do arquivo:

    Citar
    PATH=$PATH:~/scripts
    • O oitavo passo consiste em executar o quinto passo novamente, para salvar as alterações feitas (Ctrl O + Enter) e então sair do editor de texto Nano (Ctrl X).
    • O nono passo consiste em executar o seguinte comando, que fará o shell inicializar as configurações que você adicionou:
    Código: [Selecionar]
    source ~/.bashrc

      Pronto: daqui para a frente, bastará executar o comando m4amp3.sh /caminho/para/o/arquivo.m4a que um arquivo mp3 com o mesmo nome será criado dentro da mesma pasta.  ;)

      PS: o ffmpeg instalado como snap requer que o arquivo (de áudio ou vídeo) MPEG-4 NÃO esteja dentro de nenhuma pasta do sistema (como por exemplo /tmp, /usr ou /opt). Consequentemente, caso o ffmpeg instalado por você realmente seja um snap, coloque o arquivo de áudio/vídeo MPEG-4 dentro da sua pasta pessoal que está em /home e somente então use o script.

      3
      Dicas e Truques / Erro no comando info.
      « Online: 26 de Janeiro de 2023, 18:14 »
      Hoje fui executar o comando info mkdir na janela do emulador de terminal, para ler a documentação (manpage) do comando mkdir, mas o shell me devolveu a seguinte mensagem de erro:

      Citar
      Abortado (imagem do núcleo gravada)

      Após pesquisar um pouco, vi que o problema está no seguinte arquivo de documentação (escrito em linguagem TeX):

      /usr/share/locale-langpack/pt_BR/LC_MESSAGES/texinfo.mo

      Dentro desse arquivo há uma função com o nome get-inffo-help-node, mas o nome correto dela é get-info-help-node

      Para corrigir esse problema, basta executar o comando abaixo, que acessará aquele arquivo e então substituirá inffo por info:

      Código: [Selecionar]
      sudo sed -i -e 's|inffo|info|' /usr/share/locale-langpack/pt_BR/LC_MESSAGES/texinfo.mo


      Fonte/crédito: https://bugs.launchpad.net/ubuntu/+source/texinfo/+bug/1964627/comments/3

      4

      INTRODUÇÃO
      Recentemente comprei (via Internet) uma certidão digital num cartório e o arquivo da certidão veio assim: certidao.pdf.p7s  :o Essa extensão dupla (.pdf.p7s) indica que se trata de um arquivo no formato PDF que em seguida foi "empacotado" para um arquivo-pacote no formato P7S. Tentei abrir esse arquivo P7S com diferentes aplicativos visualizadores de arquivos PDF, mas nenhum deles foi capaz de ler esse arquivo PDF com extensão P7S. E na Internet eu também não encontrei nenhum visualizador online para esse tipo de arquivo.

      Essa extensão P7S é pouco conhecida, mas imagine o seguinte: digamos que você pegue um arquivo PDF e o "empacote" como um arquivo TAR (ou ZIP, se preferir). Embora esse arquivo-pacote não requeira uma senha para ser aberto, o "empacotamento" que você aplicou fará com que esse arquivo PDF "empacotado" se torne ilegível para aplicativos visualizadores de arquivos PDF, não é mesmo? Por exemplo: se você tentar abrir um tal de arquivo.pdf.tar ou arquivo.pdf.zip com um visualizador de arquivos PDF, o visualizador retornará um erro.

      Pois é, um arquivo P7S é essencialmente isso: ele é um arquivo (não necessariamente PDF...) que foi criptografado ("empacotado" para um formato criptográfico) e, por causa disso, o aplicativo visualizador do arquivo em sua forma original (como por exemplo um visualizador de arquivos PDF) não conseguirá mais ler o código-fonte desse arquivo e exibir para você as informações dele, justamente devido à aplicação dessa criptografia que deixou o arquivo PDF com formato P7S.

      O que ocorre é que existe um formato de assinatura eletrônica – denominado CAdES¹ – que é largamente aceito pelo mercado por ser um formato capaz de assinar digitalmente qualquer tipo de arquivo: DOC, ODT, DOCX, XLS, TXT, PPT, OTT etc. – inclusive arquivos PDF. No entanto, esse padrão de assinatura produz um arquivo de extensão P7S que não é nem um pouco fácil de se conseguir visualizar.

      A razão por que não é fácil visualizar arquivos P7S é que um visualizador desses teria de ser um aplicativo capaz de não apenas descriptografar (interpretar e descodificar) o conteúdo do arquivo P7S, mas também teria de ser capaz de mostrar o conteúdo do arquivo P7S descriptografado. O problema é que esse arquivo descriptografado pode ser um arquivo PDF, um arquivo TXT, um DOC, um ODS, um XLS, um PPT, um arquivo de imagem JPG etc., portanto o visualizador teria de ser capaz não apenas de ler o código P7S e descriptografá-lo, mas ainda por cima mostrar para você o conteúdo do arquivo independentemente do formato original dele (PDF, TXT, DOC, ODS, XLS, PPT, JPG etc.). Percebe a complexidade disso? Se já é necessário um programa específico para abrir arquivos DOC e DOCX, outro programa específico para abrir arquivos PDF, outro para arquivos XLS etc., imagine um programa capaz de abrir e exibir o conteúdo de todos eles!

      É por isso que geralmente as pessoas "desempacotam" o arquivo P7S e então abrem o arquivo "desempacotado" no aplicativo visualizador específico. Se você desempacotar o arquivo P7S e o resultado for um arquivo ODS, por exemplo, você abre esse ODS no LibreOffice Calc; se o resultado for um arquivo PDF, você abre o PDF num visualizador de arquivos PDF; e assim por diante.

      Apesar de ser difícil um visualizador "universal" para arquivos P7S, existe um modo relativamente simples de conseguir "extrair" o conteúdo do arquivo P7S: basta instalar o pacote openssl e utilizá-lo, no terminal do shell do Linux, para executar um comando que criará um arquivo-clone do arquivo P7S, em seguida lerá o conteúdo criptografado desse arquivo-clone, descriptografará esse conteúdo do arquivo-clone e então salvará esse arquivo-clone (para que ele se torne um arquivo legível, visualizável). O resultado será então o seu arquivo P7S original intacto e, além disso, um arquivo-clone que conterá o conteúdo descriptografado e fácil de visualizar.


      EXTRAINDO O CONTEÚDO DO ARQUIVO P7S
      Meu sistema Linux (XUbuntu 16.04 de 64 bits) já estava com o openssl instalado, mas se esse não for o seu caso basta abrir uma janela do terminal do shell (a combinação de teclas Ctrl Alt T normalmente faz isso) e então executar no terminal este comando de instalação do openssl:
      Código: [Selecionar]
      sudo apt-get install openssl -y
      Uma vez que o pacote openssl esteja instalado, use o comando cd para acessar a pasta em que o arquivo P7S se encontra. A título de exemplo, suponha que o arquivo certidao.pdf.p7s esteja em /tmp e eu queira descriptografar o conteúdo dele para um arquivo certidao.pdf que também quero que fique na pasta /tmp. Em tal caso, primeiro eu entro na pasta com este comando:
      Código: [Selecionar]
      cd /tmp
      ...e em seguida executo este comando para criar o arquivo descriptografado certidao.pdf a partir do original certidao.pdf.p7s:
      Código: [Selecionar]
      openssl smime -inform DER -verify -noverify -in certidao.pdf.p7s -out certidao.pdf
      O resultado será então o arquivo certidao.pdf, que você poderá abrir com qualquer visualizador de arquivos PDF.  8)

      Caso (por exemplo) o arquivo original seja um DOC ao invés de PDF, como por exemplo arquivo.doc.p7s, execute o comando assim:
      Código: [Selecionar]
      openssl smime -inform DER -verify -noverify -in arquivo.doc.p7s -out arquivo.doc
      Se o arquivo não tiver a extensão original dele, como por exemplo arquivo.p7s, e além disso você não souber qual é o formato original do arquivo, execute o comando assim:
      Código: [Selecionar]
      openssl smime -inform DER -verify -noverify -in arquivo.p7s -out arquivo
      ...e depois tente abrir o arquivo simplesmente clicando duas vezes sobre ele (ou clicando uma vez e pressionando a tecla Enter). O Linux é inteligente o bastante para ler o cabeçalho do código-fonte do arquivo, identificar o formato dele e selecionar o visualizador adequado (caso seu sistema possua). Mas se você fizer isso e não funcionar, tente abrir arquivo com diferentes visualizadores, como por exemplo visualizador (e/ou editor) de arquivos PDF, visualizador (e/ou editor) de arquivos DOC, DOCX, ODT, XLS, XLSX, PPT etc.

      Ainda no terminal, este comando:
      Código: [Selecionar]
      cat arquivo | grep -i pdf
      ...retornará a mensagem "Arquivo binário (entrada padrão) coincide com o padrão" caso arquivo seja um arquivo PDF. Se não for PDF, o comando acima não retornará mensagem nenhuma (resposta vazia). Para arquivos DOC e DOCX você deve substituir pdf por doc, no comando acima (ali logo depois do grep -i), e para arquivos XLS e XLSX use excel no lugar de pdf.

      Os navegadores mais populares, como por exemplo Google Chrome e Mozilla Firefox, conseguem visualizar arquivos PDF, TXT, RTF etc. dentro da própria janela deles (além, obviamente, de arquivos HTM, HTML e alguns em formato PHP), então se por exemplo você abrir uma janela do Google Chrome e abrir este endereço:

      Citar
      file:///tmp/arquivo

      ...o Google Chrome mostrará para você uma visualização do arquivo, caso arquivo esteja em um formato que o Google Chrome é capaz de reconhecer e exibir para visualização (se não estiver, o navegador fará download do arquivo ao invés de exibi-lo na própria janela).


      VISUALIZANDO A ASSINATURA DO ARQUIVO P7S

      Agora que você já extraiu o conteúdo de arquivo.p7s e o visualizou, digamos que você queira ver o certificado da assinatura criptográfica dele, ou seja, queira saber quem assinou o arquivo, quando assinou, qual a chave criptográfica do certificado usado nessa assinatura etc. E aí, como fazer isso?

      Em tal caso, basta retornar ao terminal e executar este comando:

      Código: [Selecionar]
      openssl smime -inform DER -verify -in arquivo.p7s -noverify -signer cert.pem
      O resultado desse comando será o arquivo cert.pem que conterá o certificado usado na assinatura do arquivo. Para visualizá-lo, basta executá-lo (com um clique duplo, ou ainda selecionando o arquivo e em seguida pressionando a tecla Enter). No terminal você pode abrir esse arquivo com este comando:

      Código: [Selecionar]
      mimeopen cert.pem
      Caso sua distribuição Linux não possua um visualizador para arquivos PEM, e por isto nenhum dos métodos de visualização anteriormente citados funcione, retorne ao terminal e execute este comando mais completo:

      Código: [Selecionar]
      openssl smime -inform DER -verify -in arquivo.p7s -noverify -signer cert.pem ; keytool -printcert -file cert.pem > cert.txt
      O comando acima produzirá o mesmo arquivo cert.pem mas o usará para gerar o arquivo cert.txt que conterá os dados do certificado em formato de texto puro, que você poderá então abrir com qualquer visualizador e/ou editor de textos, ou até mesmo no seu navegador, abrindo este endereço ali na barra de endereços (supondo que o arquivo esteja em /tmp/cert.txt):

      Citar
      file:///tmp/cert.txt

      É isso.  ;D

      EDIT: existe uma aplicação, denominada XCA, que é capaz de ler arquivos de certificado. Para instalar a aplicação XCA, basta executar este comando:

      Código: [Selecionar]
      sudo apt-get install xca -y
      ...e em seguida executar o XCA, criar um novo banco de dados² e então, na aba Certificates, clicar no botão Import, selecionar o arquivo cert.pem e clicar em Abrir. Uma vez feito isso, o certificado aparecerá na janela. Basta efetuar um clique duplo sobre a linha que contém as informações resumidas do certificado (ou então clicar uma vez nele e em seguida clicar no botão Show Details) que as informações completas do certificado serão exibidas.

      Elaborei também uma pequena apresentação de diapositivos (slides) no Google Slides. A apresentação explica o mesmo que o tutorial acima, só que de maneira gráfica e um pouco mais resumida. Quem quiser ver, basta clicar aqui.

      Se quiser utilizar um visualizador gráfico de arquivos P7S, veja este meu tutorial (ele também está em formato de apresentação de slides do Google Slides). Importante: será necessário possuir o JRE (Ambiente de Execução Java) instalado no sistema.

      Notas de rodapé
      ¹ A abreviatura CAdES significa CMS Advanced Electronic Signature, ou seja: "Assinatura Eletrônica CMS Avançada". E a abreviatura CMS significa Cryptographic Message Syntax, ou seja: "Sintaxe de Mensagem Criptográfica". Portanto, CAdES é um formato avançado de assinatura eletrônica em que essa assinatura é construída utilizando-se uma sintaxe de mensagens criptográficas.

      ² Na janela do aplicativo XCA, use a combinação de teclas Ctrl N (ou então clique em File e depois em New Database), então selecione uma pasta na qual deseja guardar o banco de dados, digite um nome para o banco de dados e confirme clicando em Salvar.

      5
      Dicas e Truques / [DICA] Como converter arquivo SWF para MP4
      « Online: 21 de Novembro de 2019, 12:34 »
      Recentemente precisei converter um arquivo SWF (Shockwave Flash) para o formato MP4 (MPEG-4) mas não consegui encontrar nenhum programa do Linux que fizesse isso. Os conversores online também não funcionaram (o resultado sempre contém somente a faixa de áudio: a faixa de vídeo é eliminada do arquivo resultado da conversão) e aqui no fórum não encontrei nenhum tutorial ensinando a fazer esse tipo de conversão com as versões atuais do Ubuntu. Eventualmente acabei encontrando esta dica que funcionou, porém elá está bastante incompleta e nada clara para o linuxista iniciante, por isto resolvi escrever este pequeno tutorial que explica, em português, como fazer a conversão explicada naquela dica, já incorporando todas as melhorias que desenvolvi para tornar o processo de conversão mais fácil e inteligível. Os passos são os que seguem.

      PS: este método só funciona com arquivos SWF que não sejam interativos (não possuam menu, botão em que você tenha de clicar para que a animação em Flash seja executada etc.).

      PASSO 1 - PRÉ-INSTALE OS PROGRAMAS NECESSÁRIOS.

      Abra uma janela do terminal (shell) do Linux e execute o comando abaixo, que então instalará o programa FFMPEG (programa capaz de pegar um arquivo que contenha somente uma trilha de vídeo, pegar também um segundo arquivo que contenha somente uma trilha de áudio, e então combinar os dois arquivos para gerar um novo arquivo, por exemplo com extensão MP4, que contenha as duas trilhas - a de vídeo e a de áudio), o programa GEDIT (um editor de textos simples), o programa GNASH (aplicativo multimídia da GNU capaz de ler e executar arquivos Shockwave Flash / SWF, assim como também capaz de extrair a trilha de áudio dele para um novo arquivo de áudio e separadamente extrair a trilha de vídeo dele também para um novo arquivo de vídeo) e o programa MPLAYER (necessário por ser capaz de executar arquivo binário de dados de vídeo em formato RAW e também capaz de durante essa execução exportar esse conteúdo convertendo-o para algum formato de vídeo codificado que pode ser posteriormente usado pelo FFMPEG):

      Código: [Selecionar]
      sudo apt-get install ffmpeg gedit gnash mplayer -y
      PASSO 2 - EXECUTE O GEDIT E COLE DENTRO DELE O CÓDIGO DO SCRIPT CONVERSOR.

      Digamos que sua conta de usuário seja bogus, que portanto sua pasta de usuário fique em /home/bogus/ e que você queira criar o script dentro de uma nova pasta, intitulada scripts, que ficará em /home/bogus/. Em tal caso, você quer gravar o script dentro de /home/bogus/scripts/. No Linux, um atalho para a pasta pessoal do usuário que está conectado no momento é o caractere ~ ("til"), portanto ~/scripts/ é o mesmo que /home/bogus/scripts/. Agora que você aprendeu isso (se é que já não sabia...), execute o comando abaixo para criar a pasta scripts dentro de sua pasta pessoal:

      Código: [Selecionar]
      mkdir ~/scripts
      ...e em seguida execute o comando abaixo, para fazer o GEDIT criar o arquivo de script swfpramp4.sh dentro da pasta scripts que você acabou de criar:

      Código: [Selecionar]
      gedit ~/scripts/swfpramp4.sh
      Feito isso, copie o código abaixo e cole-o dentro da janela do GEDIT:

      Código: [Selecionar]
      #!/bin/bash
      clear
      pwd=`pwd`
      echo Você no momento está na pasta $pwd.
      echo O arquivo SWF que você deseja converter em MP4 está nessa pasta $pwd? [S + Enter = "sim" / Qualquer outra tecla + Enter = "não"]
      read resposta
      if [ $resposta != s -a $resposta != S ]
       then echo >&2 "Ok, então vou sair deste script. Use o comando 'cd' para entrar na pasta em que o arquivo SWF se encontra e em seguida execute este script a partir daquela pasta."
            sleep 3
            exit 1
      fi
      clear
      contador=0
      while [[ $resposta = s ]] || [[ $resposta = S ]]
      do
       echo Ok, então digite o nome completo \do arquivo SWF \(exemplo\: MeuArquivo.swf\), respeitando as maiúsculas e minúsculas \do nome \do arquivo, e em seguida pressione Enter.
       read SHOCKWAVE
       contador=$((contador+1))
       if [ $contador = 3 ]
        then clear
             contador=0
       fi
       echo Você informou o seguinte nome de arquivo: $SHOCKWAVE
       echo Esse nome de arquivo \(inclusive extensão\) está correto?
       echo [S + Enter = "sim" / Q + Enter = "quero sair deste script" / Qualquer outra tecla + Enter = "não"]
       read correto
       if [ $correto = q -o $correto = Q ]
        then echo >&2 "Ok, vou sair deste script."
             sleep 3
             exit 1
        else if [ $correto = s -o $correto = S ]
              then resposta=n
             fi
       fi
      done
      echo Ok, então vamos em frente...
      RESULTADO=${SHOCKWAVE%.*}.mp4
      NOMEDOIDO=`cat /dev/urandom | tr -dc 'a-zA-Z' | fold -w 32 | head -n 1`
      BINARIO=$NOMEDOIDO.bin
      AUDIO=$NOMEDOIDO.wav
      VIDEO=$NOMEDOIDO.mp4
      LOG=/tmp/gnash.log
      sleep 3

      # Cria um arquivo binário e um arquivo de áudio a partir das respectivas trilhas binária e de áudio do arquivo SWF.
      echo Iniciando o processo de extração de vídeo e áudio a partir \do arquivo SWF. Esse processo demora um tempo...
      GNASH=`dump-gnash -1 -r 3 -v -D $BINARIO -A $AUDIO $SHOCKWAVE > $LOG`
      echo Extração concluída.

      # Coleta os parâmetros do vídeo.
      LARGURA=`cat $LOG | grep -o 'WIDTH=[^, }]*' | sed 's/^.*=//'`
      ALTURA=`cat $LOG | grep -o 'HEIGHT=[^, }]*' | sed 's/^.*=//'`
      QUADROS=`cat $LOG | grep -o 'FPS_ACTUAL=[^, }]*' | sed 's/^.*=//'`

      # Cria o arquivo MP4 sem compressão e sem trilha de áudio a partir dos "dados brutos" (RAW) do vídeo armazenado em $BINARIO.
      mplayer $BINARIO -vo yuv4mpeg:file=$VIDEO -demuxer rawvideo -rawvideo fps=$QUADROS:w=$LARGURA:h=$ALTURA:format=bgra

      # Usa o FFMPEG para embutir a trilha de áudio no arquivo MP4 sem compressão e em seguida comprimir o resultado (criar um MP4 completo, de vídeo + áudio, e compacto).
      ffmpeg -i $VIDEO -i $AUDIO $RESULTADO

      echo Você deseja que a data e a hora de criação \do seu arquivo SWF sejam gravadas no seu arquivo MP4, para que fique parecendo que o MP4 foi criado no mesmo dia e horário \do arquivo SWF? [S + Enter = "sim" / Qualquer outra tecla + Enter = "não"]
      read datahora
      if [ $datahora = s -o $datahora = S ]
      #     Copia para o arquivo MP4 as informações originais de data e hora de criação do arquivo SWF.
       then touch -r $SHOCKWAVE $RESULTADO
      fi

      echo Você deseja gravar no seu arquivo MP4 as mesmas permissões de leitura, escrita/gravação e execução que foram atribuídas ao proprietário, ao grupo e aos demais usuários \do arquivo SWF? [S + Enter = "sim" / Qualquer outra tecla + Enter = "não"]
      read perms
      if [ $perms = s -o $perms = S ]
      #     Copia para o arquivo MP4 as permissões originais de leitura, escrita/gravação e execução atribuídas ao proprietário, ao grupo e aos demais usuários do arquivo SWF.
       then chmod --reference=$SHOCKWAVE $RESULTADO
      fi

      # Hora da faxina!
      rm -f $BINARIO
      rm -f $AUDIO
      rm -f $VIDEO

      echo Script finalizado!
      sleep 3
      exit 0

      Em seguida clique no botão "Salvar" e então feche o GEDIT.

      PASSO 3 - TORNE O SCRIPT EXECUTÁVEL E EXECUTE-O DENTRO DA PASTA DO ARQUIVO SWF.

      Agora que você tem esse script conversor armazenado lá em sua pasta ~/scripts/swfpramp4.sh, ainda no terminal do shell execute o seguinte comando para tornar o script executável:

      Código: [Selecionar]
      chmod +x ~/scripts/swfpramp4.sh
      Agora que o script está executável, é só utilizá-lo.  ;D

      Vamos supor que em /home/bogus/Vídeos/ exista o arquivo XiaoXiao.swf que você gostaria de assistir novamente mas não consegue porque a Adobe descontinuou o Shockwave Player e os navegadores web também não reconhecem nem executam mais arquivos com extensão e formato SWF. Bem, o comando lá do PASSO 1 já instalou o GNASH pra você. Esse programa permite que você execute arquivos SWF dentro do ambiente gráfico do Linux: experimente abrir seu gerenciador de arquivos, ir até a pasta em que o arquivo SWF se encontra, executar um "clique" direito sobre o arquivo XiaoXiao.swf, selecionar "Abrir com..." e então selecionar o programa GNASH. Se não conseguir fazer isso (porque o programa GNASH não está na lista de programas, ou por qualquer outro motivo), retorne ao terminal do shell e execute este comando:

      Código: [Selecionar]
      gnash ~/Vídeos/XiaoXiao.swf
      ...que a mágica acontecerá.

      Agora que você já viu do que o GNASH é capaz, você talvez se dê por satisfeito/satisfeita, mas hey!  :P O formato SWF está obsoleto e no futuro talvez até o GNASH seja descontinuado. Você vai arriscar?  ??? Que tal, por garantia, converter esse arquivo SWF para um formato mais moderno, como é o caso do formato MPEG-4 (contêiner MP4)?  ;D O script que você salvou aí no seu sistema serve pra isso.

      Ainda no terminal do shell, acesse a pasta do seu arquivo SWF:

      Código: [Selecionar]
      cd ~/Vídeos
      ...e então execute o script a partir da pasta desse arquivo SWF (informe o caminho completo para o script):

      Código: [Selecionar]
      ~/scripts/swfpramp4.sh
      O script lhe fará algumas solicitações: primeiro solicitará que você confirme estar mesmo na pasta / no diretório em que o arquivo SWF se encontra presente, em seguida solicitará que você informe o nome correto e completo do arquivo (cuidado com maiúsculas e minúsculas e não deixe de informar a extensão do arquivo), em seguida terá início um longo processo de conversão que irá temporariamente usar MUITOS GIGABYTES DE DADOS do seu computador, porque o processo de conversão requer a extração de dados brutos/binários (formato RAW) do arquivo SWF durante a execução dele pelo GNASH, o que gera um volume gigantesco de dados. AGUARDE e se certifique de que seu computador possui espaço de armazenamento suficiente: são recomendados cerca de 10GB para cada 1MB que o arquivo SWF tiver (mas isso varia - para mais ou para menos - de acordo com as dimensões dos quadros de vídeo do arquivo SWF e outras coisas).

      Concluído o longo e volumoso processo de extração RAW, o script converterá o vídeo RAW em MP4 sem som e em seguida combinará esse MP4 sem som com a faixa de áudio anteriormente extraída pelo GNASH. O resultado será um arquivo MP4 constituído por uma trilha de vídeo e uma trilha de áudio, como tem de ser mesmo.  8)

      PASSO 4 - SEU MP4 É UMA MARCA DO PRESENTE OU UMA PRESERVAÇÃO DO PASSADO?  ;D

      Se você está convertendo pra MP4 um arquivo SWF que você tem guardado aí há muitos anos e gostaria de se lembrar de quando foi (data e hora) que você gravou esse arquivo SWF no seu computador, preste atenção na próxima pergunta que o script irá lhe fazer após criar o MP4 com a faixa de som: ele perguntará se você quer modificar o timestamp do arquivo MP4 para que fique igual ao do SWF. O timestamp é exatamente a informação, armazenada dentro do arquivo, a respeito da data e hora em que o arquivo foi criado. Enfim: se o arquivo SWF foi gravado aí no seu computador em (por exemplo) 1º de abril de 2000 e você quer continuar se lembrando disso sempre que for executar esse arquivo MP4, basta confirmar isso pro script que o script lerá o timestamp do arquivo SWF e gravará uma cópia dele por cima do timestamp do respectivo arquivo MP4.  ;)

      Após essa etapa, o script por fim lhe perguntará se você deseja copiar pro arquivo MP4 também as permissões originais do arquivo SWF: essas são as permissões de leitura (R), escrita/gravação (W) e execução (X) atribuídas ao proprietário (UID), ao grupo (GID) e aos demais usuários do sistema. Por exemplo: talvez o arquivo SWF original possua permissões RW-RW-R-- (em octal: 664) mas o MP4 gerado esteja com permissões R--R--R-- (em octal: 444) e você queira corrigir isso, deixando as permissões do arquivo MP4 iguais às do SWF. O próximo comando modifica essas permissões (embora não modifique o proprietário nem o grupo do arquivo).

      Regra geral, é besteira colocar essas opções de timestamp e permissões em scripts simples como este, mas como se trata de um contexto no qual é bem provável que algumas pessoas usem o script para "salvar" arquivos SWF que contêm materiais saudosos, é maior a possibilidade de algumas pessoas quererem preservar principalmente o timestamp do arquivo SWF no respectivo arquivo MP4.

      Após essa última etapa, o script excluirá os arquivos temporários que criou e finalizará a execução dele.

      6
      Internet afora há "trocentos" artigos (como este, por exemplo) explicando que as pastas padrão do Ubuntu são denominadas "pastas XDG". Essa abreviatura "XDG" vem de X Desktop Group, que foi o nome inicialmente usado pela organização Free Desktop antes de ela obviamente mudar o próprio nome. Conforme consta nesses tantos artigos, a configuração padrão das pastas XDG é esta:

      Código: [Selecionar]
      XDG_DESKTOP_DIR="$HOME/Área de trabalho"
      XDG_DOWNLOAD_DIR="$HOME/Downloads"
      XDG_TEMPLATES_DIR="$HOME/Modelos"
      XDG_PUBLICSHARE_DIR="$HOME/Público"
      XDG_DOCUMENTS_DIR="$HOME/Documentos"
      XDG_MUSIC_DIR="$HOME/Música"
      XDG_PICTURES_DIR="$HOME/Imagens"
      XDG_VIDEOS_DIR="$HOME/Vídeos"

      ...e é essa configuração padrão que faz com que na pasta da sua conta de usuário existam as pastas Área de trabalho, Downloads, Modelos, Público, Documentos, Música, Imagens e Vídeos.

      Esses artigos normalmente ensinam que, para customizar as suas pastas XDG, basta editar o arquivo abaixo indicado (o caractere ~ é um atalho para a pasta do usuário que está conectado no momento, portanto enquanto a pasta pessoal do usuário for /home/bogus/, por exemplo, o caractere ~ será sinônimo de /home/bogus):

      Código: [Selecionar]
      ~/.config/user-dirs.dirs
      O arquivo acima pode ser aberto para edição por intermédio de um comando como, por exemplo, este:

      Código: [Selecionar]
      gedit ~/.config/user-dirs.dirs
      ...ou este:

      Código: [Selecionar]
      nano ~/.config/user-dirs.dirs
      ...que lhe possibilitará usar um editor de textos simples (como o GEDIT ou o NANO) para modificar o texto que define a localização de cada uma dessas pastas.

      Após modificar o que você quiser no arquivo e salvar as alterações, é só sair do editor de textos e então executar este comando:

      Código: [Selecionar]
      xdg-user-dirs-update
      ...que as alterações efetuadas por você no arquivo de configuração entrarão em vigor.

      Um exemplo: eu recentemente resolvi criar uma pasta Desktop dentro da minha pasta /home/sampayu/ (nome fictício ;D), portanto ficou assim: /home/sampayu/Desktop/
      No gerenciador de arquivos (que no meu caso é o Thunar) já aparecia a pasta XDG /home/sampayu/Área de trabalho/, e ao clicar nela eu via mesmo os arquivos que deixo na área de trabalho, mas eu queria que o conteúdo mostrado na minha área de trabalho passasse a ser aquele que está dentro da pasta /home/sampayu/Desktop/. Por causa disso, após criar a tal da pasta Desktop eu fui lá na área de trabalho e movi todos os arquivos de /home/sampayu/Área de trabalho/ para /home/sampayu/Desktop/. Em seguida, eu excluí a pasta Área de trabalho (já que ela agora estava vazia e sem uso). Resultado: na área de trabalho do meu computador os arquivos desapareceram. Isso é normal e ocorreu porque, embora esses arquivos tenham passado a estar sãos e salvos dentro da pasta Desktop, o sistema Linux "não sabia" disso e, por isto, continuou tentando mostrar na minha área de trabalho os arquivos que o Linux ainda esperava que estivessem armazenados dentro daquela pasta /home/sampayu/Área de trabalho/:P

      Após isso, o próximo passo foi informar ao Linux que minha "pasta XDG de área de trabalho" não era mais /home/sampayu/Área de trabalho/ mas sim /home/sampayu/Desktop/, por isto abri o arquivo ~/.config/user-dirs.dirs no editor de textos e mudei o código para este (observe a diferença na primeira linha do código):

      Código: [Selecionar]
      XDG_DESKTOP_DIR="$HOME/Desktop"
      XDG_DOWNLOAD_DIR="$HOME/Downloads"
      XDG_TEMPLATES_DIR="$HOME/Modelos"
      XDG_PUBLICSHARE_DIR="$HOME/Público"
      XDG_DOCUMENTS_DIR="$HOME/Documentos"
      XDG_MUSIC_DIR="$HOME/Música"
      XDG_PICTURES_DIR="$HOME/Imagens"
      XDG_VIDEOS_DIR="$HOME/Vídeos"

      Após realizar essa modificação, salvei o arquivo e fechei o editor de textos, então executei este comando:

      Código: [Selecionar]
      xdg-user-dirs-update
      ...e, de fato, após isso os arquivos armazenados em /home/sampayu/Desktop/ passaram a ser exibidos na área de trabalho do meu computador.  ;D

      A propósito, a palavra $HOME é uma variável de sistema que representa o caminho para a pasta do usuário que está conectado no momento, portanto é a mesma coisa que o caractere ~. No meu exemplo fictício, o valor dessa variável $HOME é /home/sampayu, portanto aquele código XDG_DESKTOP_DIR="$HOME/Desktop", por exemplo, significa que minha "pasta XDG de área de trabalho" (XDG_DESKTOP_DIR) vem a ser $HOME/Desktop, o que corresponde a /home/sampayu/Desktop;)

      Eu também poderia ter modificado aquele arquivo de configuração sem abri-lo em um editor de textos. Bastaria eu executar o seguinte comando de atualização de pasta XDG:

      Código: [Selecionar]
      xdg-user-dirs-update --set DESKTOP /home/sampayu/Desktop
      O comando acima significa "defina" (set) "a pasta da área de trabalho" (DESKTOP) "como sendo /home/sampayu/Desktop".



      Mas e quando você quer que alguma dessas pastas fique em outra partição ou até mesmo em outro disco rígido?

      Pois é, isso aconteceu comigo e não encontrei nenhum artigo explicando como fazer isso...  ::)

      Eu tenho um segundo disco rígido e ele é automaticamente montado na pasta /biblioteca/de/filmes/ (nome fictício ataca novamente ;D). Como eu uso esse segundo disco rígido exclusivamente para guardar nele os meus arquivos de vídeo (filmes), eu voltei lá no arquivo ~/.config/user-dirs.dirs e mudei o conteúdo para isto:

      Código: [Selecionar]
      XDG_DESKTOP_DIR="$HOME/Desktop"
      XDG_DOWNLOAD_DIR="$HOME/Downloads"
      XDG_TEMPLATES_DIR="$HOME/Modelos"
      XDG_PUBLICSHARE_DIR="$HOME/Público"
      XDG_DOCUMENTS_DIR="$HOME/Documentos"
      XDG_MUSIC_DIR="$HOME/Música"
      XDG_PICTURES_DIR="$HOME/Imagens"
      XDG_VIDEOS_DIR="/biblioteca/de/filmes"

      ...e então salvei o arquivo, fechei o editor de textos, executei este comando de atualização:

      Código: [Selecionar]
      xdg-user-dirs-update
      ...e quebrei a cara, porque não funcionou.  :o

      Após realizar essa modificação, eu esperava não apenas clicar lá em /biblioteca/de/filmes/ e ver meus arquivos de vídeo (como de fato continuou ocorrendo como de costume), mas eu também esperava que ao clicar lá naquela pasta /home/sampayu/Vídeos/ eu também veria exatamente os mesmos arquivos de vídeo, ou seja: o conteúdo do segundo disco rígido seria exibido tanto em /biblioteca/de/filmes/ (ponto de montagem) quanto em /home/sampayu/Vídeos/ (pasta XDG de vídeos). No entanto, não foi isso que ocorreu: a pasta /home/sampayu/Vídeos/ continuou não mostrando nada exceto o vazio mesmo.  :'(

      Foi aí que tive a ideia de apagar a pasta /home/sampayu/Vídeos/ (lembre-se: ela estava vazia) e, no lugar dela, colocar um link simbólico /home/sampayu/Vídeos apontando para /biblioteca/de/filmes/. O comando para fazer isso (após deletar a pasta Vídeos vazia) é este:

      Código: [Selecionar]
      ln -s -T /biblioteca/de/filmes /home/sampayu/Vídeos
      Se o comando acima não funcionar com você, experimente executá-lo como superusuário ("root"):

      Código: [Selecionar]
      sudo ln -s -T /biblioteca/de/filmes /home/sampayu/Vídeos
      Como no caso da pasta situada em outro disco rígido não adiantou nada editar o arquivo ~/.config/user-dirs.dirs, eu devolvi pra dentro desse arquivo a configuração padrão da pasta XDG de vídeos, ou seja: lá onde eu havia mudado o texto para XDG_VIDEOS_DIR="/biblioteca/de/filmes" eu mudei o código de volta para XDG_VIDEOS_DIR="$HOME/Vídeos" e, após salvar o arquivo e fechar o editor de textos, executei o comando:

      Código: [Selecionar]
      xdg-user-dirs-update
      Conforme explicado anteriormente, outro modo de restituir essa configuração é executar o seguinte comando, diretamente no terminal (shell) do Linux:

      Código: [Selecionar]
      xdg-user-dirs-update --set VIDEOS $HOME/Vídeos
      Depois que efetuei esses ajustes, toda vez em que eu clico em /home/sampayu/Vídeos/ o que eu vejo é o conteúdo (filmes) do segundo disco rígido que está montado em /biblioteca/de/filmes/, e quando salvo algum arquivo na área de trabalho do computador ele aparece dentro de /home/sampayu/Desktop/. Problema resolvido!  ;D

      7
      Originalmente desenvolvido para a distribuição Debian e posteriormente portado para distribuições *Ubuntu, o pacote dwww (abreviação de "Debian WWW") possibilita acessar as páginas manuais (os manuais que compõem a documentação do sistema Linux e que, em inglês, são denominados manpages) diretamente no navegador web (browser), bastando para tanto acessar http://localhost/dwww/index.html - e isso torna o acesso e a leitura das manpages muito mais fácil, rápida, prática, versátil e confortável.

      No entanto, pelo menos na versão 1.13.1, dois problemas ocorrem durante a instalação do dwww:
      1) O módulo CGI do servidor web Apache não é ativado, embora a ativação dele seja necessária para o correto funcionamento do dwww, tendo em vista que o dwww essencialmente cria um website baseado em CGI (páginas dinamicamente geradas a partir de scripts) e necessita do servidor web Apache instalado, ativo (em execução) e com suporte a CGI ativado, para que o Apache possa executar esse website do dwww a partir de um servidor virtual; e
      2) Contém um erro de grafia no parâmetro Last modified do script dwww-convert, o que impossibilita o funcionamento do módulo CGI do Apache, quando esse módulo está ativado.

      É graças ao problema 1 que qualquer tentativa de acesso ao dwww fará com que o navegador web mostre a seguinte mensagem de erro:

      Citar
      Not Found

      The requested URL /cgi-bin/dwww was not found on this server.

      ...e é graças ao problema 2 que, quando o problema 1 for resolvido (e, portanto, o dwww estiver funcionando), qualquer tentativa de acessar uma página manual via dwww fará o navegador web mostrar uma mensagem de erro que começa assim:

      Citar
      Internal Server Error

      The server encountered an internal error or misconfiguration and was unable to complete your request.

      Para resolver o problema 1, abra uma janela do emulador de terminal do shell Linux e execute este supercomando:

      Código: [Selecionar]
      sudo a2enmod cgid ; sudo service apache2 restart
      ...que instruirá o servidor Apache a ativar o cgid, que é o daemon (serviço de ativação automática) do módulo CGI, e em seguida reiniciar a si mesmo, de modo que essa ativação do CGI surta efeito no servidor Apache.

      Para resolver o problema 2, retorne à janela do emulador de terminal do shell Linux e execute este supercomando:

      Código: [Selecionar]
      sudo sed -i -e 's|Last modified: |Last-modified: |' "/usr/sbin/dwww-convert" ; sudo service apache2 restart
      ...que renomeará o parâmetro Last modified para Last-modified, dentro do script dwww-convert, e em seguida reiniciará o servidor Apache, para que essa modificação surta efeito. Por incrível que pareça, essa pequena diferença de grafia do parâmetro é a culpada pelo problema 2. :o

      Uma vez sanados os dois problemas acima, o dwww deverá funcionar normalmente. :D


      Nota de rodapé:
      Caso os comandos da dica acima não tenham resolvido o problema, certifique-se de que o Apache esteja instalado e em execução. Você pode desinstalar o Apache e o dwww, em seguida instalá-los novamente e então colocá-los em execução por intermédio deste supercomando, a ser executado no terminal do shell:

      Código: [Selecionar]
      sudo apt-get purge apache2 dwww -y ; sudo apt-get update ; sudo apt-get check ; sudo apt-get autoremove -y ; sudo apt-get clean ; sudo apt-get install apache2 dwww --reinstall -y ; sudo service apache2 stop; sudo service apache2 start
      ...e então experimente repetir os comandos da dica acima, para se certificar de que os problemas 1 e 2 não ocorram após o Apache e o dwww serem reinstalados.  ;)

      8
      A quatro dias do término do prazo para apresentação das declarações do imposto de renda 2017 (exercício 2016), mais de 11 milhões de brasileiros ainda não entregaram a declaração. Caso você seja uma dessas pessoas e só não entregou ainda sua declaração porque está vivenciando dificuldades para instalar o programa IRPF 2017 no *Ubuntu Linux, siga a dica a seguir.
       

      COMO INSTALAR O IRPF 2017

      Para instalar (e depois executar) o IRPF 2017 de modo praticamente automático, abra uma janela do terminal do shell (não execute o terminal em modo root / superusuário) e então execute este supercomando:

      Código: [Selecionar]
      if [ -d ~/ProgramasRFB/IRPF2017 ]; then sudo rm -rf ~/ProgramasRFB/IRPF2017; fi; if [ -d /opt/java ]; then sudo rm -rf /opt/java; sudo mkdir /opt/java; else sudo mkdir /opt/java; fi; if [ `getconf LONG_BIT` == 64 ]; then sudo wget http://javadl.oracle.com/webapps/download/AutoDL?BundleId=220305_d54c1d3a095b4ff2b6607d096fa80163 -O /opt/java/jre.tar.gz; wget http://downloadirpf.receita.fazenda.gov.br/irpf/2017/irpf/arquivos/IRPF2017Linux-x86_64v1.1.bin -O /tmp/irpf.bin; else sudo wget http://javadl.oracle.com/webapps/download/AutoDL?BundleId=220303_d54c1d3a095b4ff2b6607d096fa80163 -O /opt/java/jre.tar.gz; wget http://downloadirpf.receita.fazenda.gov.br/irpf/2017/irpf/arquivos/IRPF2017Linux-x86v1.1.bin -O /tmp/irpf.bin; fi; cd /opt/java; sudo tar -xvf jre.tar.gz; sudo mv ./jre1* ./jre; sudo rm -f ./jre*.tar.gz; sudo update-alternatives --install /usr/bin/java java /opt/java/jre/bin/java 10; sudo update-alternatives --set java /opt/java/jre/bin/java; sudo chmod +x /tmp/irpf.bin; /tmp/irpf.bin
      Nota: após selecionar e copiar o supercomando acima, você pode usar a combinação de teclas Ctrl Shift V para colar o supercomando dentro da janela do terminal.  ;)

      Quando o supercomando acima chegar ao final, a janela do programa de instalação do IRPF surgirá na sua tela, daí você deverá:

      1) Clicar em Sim;
      2) Em seguida, clicar em Avançar;
      3) Em seguida, clicar novamente em Avançar, pois o instalador estará mostrando, no campo "Pasta de destino", o endereço /home/sua-conta/ProgramasRFB/IRPF2017 e é aí mesmo que o IRPF 2017 tem de ser instalado. Portanto, não altere o local de instalação (observe que sua-conta representa sua pasta de usuário);
      4) Em seguida, clicar mais uma vez em Avançar, para confirmar o local de instalação; e
      5) Por fim, certificar-se de que a caixa "Criar atalho na Área de Trabalho" está marcada com um X, e daí clicar em Concluir.

      Após a instalação estar concluída, o executável do IRPF 2017 deverá aparecer no menu do seu sistema, assim como um atalho para o IRPF 2017 deverá estar presente na Área de Trabalho ("desktop") do seu sistema. Caso nada disso ocorra e, por isto, você não consiga iniciar o programa IRPF 2017, volte ao terminal do shell e execute este comando:

      Código: [Selecionar]
      java -jar ~/ProgramasRFB/IRPF2017/irpf.jar

      COMO DESINSTALAR O IRPF 2017
      Para desinstalar o IRPF 2017, basta retornar ao terminal do shell e executar este comando:
      Código: [Selecionar]
      ~/ProgramasRFB/IRPF2017/uninstall
      A janela do desinstalador surgirá, daí você deverá:

      1) Clicar em Sim;
      2) Em seguida, selecionar a opção "Desinstalação Padrão", pois se você selecionar "Desinstalação Completa" não apenas o programa será desinstalado, mas além disso todas as declarações de imposto de renda serão deletadas; e
      3) Por fim, clicar em Concluir.

      Pronto.  :)

      9
      [TUTORIAL - PARTE 1 DE 3]

      Seguindo os "passos" de outros navegadores, como por exemplo o Opera Browser e o Google Chrome, após a versão 51 o navegador Firefox deixou de dar suporte ao plugin NPAPI do Sun/Oracle JRE, popularmente conhecido como "plugin Java". Como geralmente o Firefox dos sistemas Linux está ou configurado para se atualizar automaticamente ou atualizar-se durante a atualização da distribuição Linux, a grande maioria dos usuários atualmente já está com uma versão do Firefox posterior à 51. Isso significa que, mesmo que o usuário ainda tenha o plugin Java instalado, esse plugin não funcionará em nenhum navegador que o usuário possua instalado.

      Porém, alguns usuários ainda precisam executar um navegador em que o plugin Java funcione, o que os tem levado a instalar manualmente o Firefox 51. Ocorre que o Firefox do sistema geralmente está pré-configurado para se autoatualizar e o Firefox 51, quando executado, utiliza essas pré-configurações, o que pode fazer com que o Firefox 51, após instalado e posto em execução, atualize-se automaticamente e daí passe a também ser da versão mais atual, que não dá suporte ao plugin Java.

      Para contornar esse problema, elaborei este tutorial explicando:
      (i) Como instalar o Firefox 51 manualmente, coexistindo / em paralelo com o Firefox padrão (atual) que já estiver instalado em seu sistema Linux.
      (ii) Desabilitar a autoatualização do Firefox 51.
      (iii) Não impedir a autoatualização do Firefox padrão (atual) do sistema.


      VERIFICAÇÕES PRELIMINARES

      Antes de iniciar o procedimento de instalação e configuração explicado neste tutorial, você deverá primeiramente verificar o seguinte:

      A] Você está com o Firefox 51 instalado manualmente em algum lugar aí do seu sistema Linux? Em caso negativo, ignore o restante deste parágrafo. Mas, em caso afirmativo, delete (exclua) a pasta desse Firefox 51 que você instalou. Isso evitará conflitos com os procedimentos deste tutorial.

      B] Você está com a versão mais atual do Firefox instalada em seu sistema (pode não ser a versão mais atual disponibilizada pela Fundação Mozilla, mas é a versão mais atual disponível para a sua distribuição Linux)? Em caso afirmativo, ignore o restante deste parágrafo. Mas, em caso negativo, instale o Firefox mais recente que estiver disponível para a sua distribuição. Para instalá-lo, abra uma janela do terminal do shell e execute este comando:

      Código: [Selecionar]
      sudo apt-get install firefox -y
      Dica: após selecionar qualquer comando desta página e usar a combinação de teclas Ctrl C para copiar o comando, você pode usar a combinação de teclas Ctrl Shift V para COLAR, no terminal do shell, o comando previamente copiado. ;)

      C] Você já está com o Sun Java (JRE) mais atual instalado no seu sistema Linux? Em caso afirmativo, ignore o restante deste parágrafo. Mas, em caso negativo, acesse este tutorial e instale o JRE, pois ele é pré-requisito para o funcionamento do plugin Sun Java.

      PRONTO!!! Agora que você NÃO tem o Firefox 51 instalado no seu Linux, TEM o Firefox mais atual da sua distribuição Linux instalado no seu Linux, e TEM o JRE mais atual da Sun/Oracle instalado no seu Linux, siga os passos a seguir, na exata sequência em que aparecem (de cima para baixo), para instalar o Firefox 51 no seu sistema sem que isso gere conflito com a instalação do Firefox atual.


      PROCEDIMENTO DE INSTALAÇÃO E CONFIGURAÇÃO

      1] Abra uma janela do terminal do shell e execute este comando, para criar uma pasta "programas" dentro da sua pasta pessoal:

      Código: [Selecionar]
      mkdir ~/programas
      2] Agora execute o comando abaixo, para fazer download do tarball (arquivo .tar.bz2) que será usado para instalação do Firefox 51 no seu sistema (o comando abaixo já verifica se o seu sistema é de 32 bits ou de 64 bits e pega o instalador correto):

      Código: [Selecionar]
      if [ `getconf LONG_BIT` == 64 ]; then wget https://ftp.mozilla.org/pub/firefox/releases/51.0/linux-x86_64/pt-BR/firefox-51.0.tar.bz2 -O ~/programas/ff51.tar.bz2; else wget https://ftp.mozilla.org/pub/firefox/releases/51.0/linux-i686/pt-BR/firefox-51.0.tar.bz2 -O ~/programas/ff51.tar.bz2; fi
      3] Após o download acima ser concluído, retorne ao terminal do shell e execute o comando abaixo, para acessar sua recentemente criada pasta de programas e descompactar o conteúdo do tarball dentro dela (no final desse comando, o tarball será excluído, já que deixará de ser necessário):

      Código: [Selecionar]
      cd ~/programas ; tar -xvf ~/programas/ff51.tar.bz2 ; rm ~/programas/ff51.tar.bz2
      4] Agora sua pasta pessoal (que é algo do tipo /home/seu-nome-de-usuário) terá dentro dela uma pasta intitulada "programas". E, dentro dessa pasta, existirá uma pasta intitulada firefox, que por sua vez contém um arquivo intitulado firefox (assim mesmo, sem extensão nenhuma). Esse arquivo é o que se denomina binário executável. Ou seja: ele é um programa. De fato, se você executar um clique duplo sobre ele, o Firefox 51 será executado. Mas, ei, NÃO faça isso, pois se você fizer isso o Firefox 51 irá automaticamente atualizar-se para a versão mais recente. Você não quer isso, né? Você quer que o Firefox 51 continue na versão 51, para você poder usar o plugin NPAPI do JRE ("Sun Java") nele...

      Enfim: para evitar que o Firefox 51 execute a atualização automática, é preciso tomar algumas precauções. A primeira delas consiste em excluir o atualizador do Firefox 51 (isso não afetará em nada o seu Firefox mais atual, que está instalado em outro local do sistema). No caso, retorne ao terminal do shell e execute este comando, para excluir o atualizador do Firefox 51:

      Código: [Selecionar]
      rm ~/programas/firefox/updater*
      5] Agora que você excluiu o atualizador do Firefox 51, vamos criar a pasta de plugins do seu Firefox 51. Basta executar este comando, no terminal dos shell:

      Código: [Selecionar]
      if [ ! -d ~/.mozilla ]; then mkdir ~/.mozilla; fi; if [ ! -d ~/.mozilla/plugins ]; then mkdir ~/.mozilla/plugins; fi; chmod -R 770 ~/.mozilla
      6] Como você instalou o JRE (Ambiente de Execução Java / Java da Oracle / Sun Java) tal como explicado lá no meu outro tutorial, o JRE está instalado em /opt/java/jre. E agora o próximo passo consiste em criar um link simbólico (um "atalho") do plugin desse JRE para a pasta de plugins do seu Firefox 51. Execute o comando abaixo (ele já verifica se seu sistema é de 32 bits ou de 64 bits e cria o link simbólico específico):

      Código: [Selecionar]
      if [ `getconf LONG_BIT` == 64 ]; then sudo ln -sf /opt/java/jre/lib/amd64/libnpjp2.so ~/.mozilla/plugins/sunjava; else sudo ln -sf /opt/java/jre/lib/i386/libnpjp2.so ~/.mozilla/plugins/sunjava; fi
      7] Agora vamos criar um link simbólico para o Firefox 51 dentro da pasta /usr/bin. Isso fará com que seu sistema Linux "fique sabendo" onde o Firefox 51 está instalado e então possibilitará executar o Firefox 51 simplesmente com o comando firefox51. Execute este comando, no terminal:

      Código: [Selecionar]
      sudo ln -sf ~/programas/firefox/firefox /usr/bin/firefox51
      [continua...]

      10
      IMPORTANTE
      Atualmente (pelo menos até 19/01/2018), o método mais prático, fácil e confiável de se instalar o Adobe Flash no Linux - tanto para Google Chrome quanto para Mozilla Firefox - consiste em se executar este comando, no terminal do shell:

      Código: [Selecionar]
      sudo apt-get install adobe-flashplugin -y
      Se (e somente se) o método acima não estiver atendendo você, prossiga com a leitura e execução dos passos do tutorial abaixo. Talvez a instalação manual funcione com seu(s) navegador(es) que porventura ainda suportem o plugin NPAPI do Adobe Flash. Talvez não. Se não funcionar, o tutorial explica como também desinstalar o Adobe Flash.


      Os navegadores Google Chrome e Google Chromium utilizam um plugin flash padrão PPAPI denominado Pepper Flash. Esse plugin substituiu o plugin flash padrão NPAPI desenvolvido pela empresa Adobe. No entanto, nos navegadores que utilizam o motor Gecko - como é o caso do Mozilla Firefox, Iceweasel e SeaMonkey, por exemplo - ainda não há suporte para plugins PPAPI: somente para plugins NPAPI. Por essa razão, é necessário ter instalado o plugin Adobe Flash padrão NPAPI: somente assim o navegador que use motor Gecko conseguirá executar e exibir conteúdo escrito em flash.

      O tutorial a seguir explica o passo-a-passo que pode ser seguido para executar uma instalação manual do plugin flash NPAPI da Adobe:

      1. Identifique a arquitetura do seu sistema operacional.
      Abra uma janela do terminal do shell (na maioria das distribuições da família *Ubuntu, a combinação de teclas Ctrl Alt T pode ser usada para iniciar uma nova janela do terminal do shell do Linux) e daí execute este comando, dentro do terminal:
      Código: [Selecionar]
      uname -i
      Se o resultado do comando acima contiver o número 64 (exemplo: x86_64), então seu sistema é de 64 bits. Caso contrário, seu sistema é de 32 bits.

      Nota: NÃO FECHE A JANELA DO TERMINAL DO SHELL. Deixe-a aberta, pois você a utilizará ainda algumas vezes, ao longo deste tutorial.

      2. Acesse o website da Adobe e informe qual é a arquitetura do seu sistema operacional.
      Uma vez que você saiba qual é a arquitetura do seu sistema operacional, acesse https://get.adobe.com/flashplayer/otherversions/ e, no campo Etapa 1, selecione a arquitetura do seu sistema operacional: Linux (32-bit) ou Linux (64-bit).

      3. Selecione o plugin NPAPI e baixe o tarball dele.
      No Linux, é possível usar o programa tar para selecionar diversos arquivos e/ou pastas e guardar uma cópia deles dentro de um único arquivo não comprimido, que terá a extensão .tar. No entanto, como arquivos .tar não são comprimidos, é comum o usuário Linux pegar o arquivo .tar e então comprimi-lo usando um programa de compactação, de modo que o resultado seja um arquivo .tar compactado que os linuxistas (usuários de Linux) chamam de tarball. Portanto, um tarball nada mais é que um arquivo .tar comprimido, e que por isto possui extensão do tipo .tar.xxx, em que xxx é uma extensão de arquivo compactado como por exemplo zip, gz, bz2, 7z etc. Arquivos como, por exemplo, tarball1.tar.gz, tarball2.tar.zip, tarball3.tar.7z e tarball4.tar.bz2 são todos considerados tarballs.

      Agora que você sabe o que é um tarball: de volta à página de download do Adobe Flash, siga para o campo Etapa 2 e selecione a opção que se refere ao tarball NPAPI. Ou seja: selecione a opção cujo nome termina com (.tar.gz) - NPAPI. Em seguida, clique no botão Baixe agora e salve o tarball dentro da pasta /tmp com o nome flash.tar.gz (caso seu navegador automaticamente salve o arquivo dentro de sua pasta pessoal de Downloads, como por exemplo /home/meu-nome-de-usuário/Downloads/flash_player_npapi_linux.x86_64.tar.gz, abra seu gerenciador de arquivos, vá até essa sua pasta de downloads, renomeie o tarball para flash.tar.gz e então mova o tarball para /tmp).

      4. Acesse a pasta /tmp e extraia todo o conteúdo do tarball.
      De volta ao terminal do shell, execute este comando:
      Código: [Selecionar]
      cd /tmp ; tar -xvf flash.tar.gz
      5. Crie a pasta do plugin flash NPAPI da Adobe.
      Execute o comando abaixo, dentro do terminal do shell, para que o diretório do plugin seja criado:
      Código: [Selecionar]
      if [ -d /usr/lib/adobe-flashplugin ]; then sudo rm -r /usr/lib/adobe-flashplugin; fi ; sudo mkdir /usr/lib/adobe-flashplugin
      6. Copie o plugin para dentro da pasta do plugin flash NPAPI da Adobe.
      Execute o comando abaixo, dentro do terminal do shell, para copiar o plugin para dentro da nova pasta que você acabou de criar:
      Código: [Selecionar]
      sudo cp -f libflashplayer.so /usr/lib/adobe-flashplugin/
      7. Crie o link simbólico do instalador automatizado.
      Uma vez que o plugin haja sido copiado, execute o comando abaixo, dentro do terminal do shell, para criar um link simbólico que vincule o plugin ao instalador automatizado do plugin flash NPAPI da Adobe. Isso é importante para a integridade do sistema operacional.
      Código: [Selecionar]
      sudo ln -sf /usr/lib/adobe-flashplugin/libflashplayer.so /usr/lib/flashplugin-installer/libflashplayer.so
      Nota: nem todos os sistemas Linux têm o instalador automatizado. No entanto, o comando acima é inofensivo: caso o seu sistema tenha o instalador, o comando acima preservará a integridade do sistema; caso o seu sistema não tenha o instalador, o comando acima não fará nada, não fará mal nenhum ao seu sistema (não surtirá efeito nenhum).

      8. Copie os demais componentes do Adobe Flash para dentro da árvore do seu sistema operacional.
      Execute este comando, no terminal do shell, para que os componentes do Adobe Flash sejam copiados para o seu sistema (o plugin necessita desses componentes, para poder funcionar):
      Código: [Selecionar]
      sudo cp -rf /tmp/usr /
      9. Verifique se o procedimento funcionou.
      Feche seu navegador que utilizará o plugin NPAPI (exemplo: Firefox) e então execute-o novamente. Em seguida, acesse o endereço about:plugins para verificar se o navegador detectou o plugin flash NPAPI que agora se encontra localizado em /usr/lib/adobe-flashplugin/libflashplayer.so (esse plugin também tem de aparecer quando você acessa o endereço about:addons e então clica na seção Plugins). Se o seu navegador realmente detectou o plugin, então tanto em about:plugins quanto na seção Plugins de about:addons você verá diversas informações a respeito do plugin, inclusive um texto como este:

      Shockwave Flash 24.0 r0

      Caso seu navegador haja mesmo detectado o plugin, acesse http://www.adobe.com/software/flash/about/ para verificar a versão completa do flash que seu navegador está usando e verificar se essa versão está desatualizada ou se é a mais recente disponível. Caso esteja tudo certo (flash instalado, detectado pelo navegador, detectado pelo website e funcionando), na página http://www.adobe.com/software/flash/about/ você verá uma mensagem parecida com esta:

      Version information
      You have version
      24,0,0,186 installed

      ...que, em português, significa isto:

      Informação da versão
      Você possui a versão
      24,0,0,186 instalada

      Notas:
      • Caso seu sistema operacional possua o instalador automatizado e você haja criado o link simbólico, é possível que seu navegador mostre que o plugin está em /usr/lib/flashplugin-installer/libflashplayer.so ao invés de em /usr/lib/adobe-flashplugin/libflashplayer.so. Isso é normal.
      • Caso você esteja usando o navegador Mozilla SeaMonkey de 32 bits dentro de um sistema Linux de 64 bits, o navegador SeaMonkey não "enxergará" o plugin. Neste caso, use outro navegador (Firefox, por exemplo) para poder usar o plugin flash NPAPI da Adobe.
      • Caso atualmente o Adobe Flash esteja em uma versão mais recente do que na última vez em que este tutorial foi atualizado, então tanto em about:plugins quanto na seção Plugins de about:addons o número 24.0 r0 será diferente (maior) do que o mostrado neste tutorial, e na página http://www.adobe.com/software/flash/about/ o número 24,0,0,186 também será diferente (maior) do que o mostrado neste tutorial. O importante é que você esteja com a última (a mais nova) versão do Adobe Flash instalada.

      10. Reinicie o computador.
      Reinicie o seu computador, apenas para se certificar de que o menu de aplicações do seu sistema mostrará o painel de controle Adobe Flash Player. Se quiser reiniciar o sistema via terminal do shell, basta executar este comando:
      Código: [Selecionar]
      sudo telinit 6
      Uma vez reiniciado o sistema, o item Adobe Flash Player deverá estar presente no menu de aplicativos da interface gráfica do seu sistema (devido à existência do arquivo flash-player-properties.desktop dentro de /usr/share/applications/). Mas, se acontecer de o item do Adobe Flash não estar visível no menu, você pode abrir uma janela do terminal do shell e então executar o seguinte comando, para abrir o painel de controle do Adode Flash:
      Código: [Selecionar]
      /usr/bin/flash-player-properties
      Como desinstalar o Adobe Flash.
      Se você instalou o Adobe Flash manualmente, exatamente como ensinado neste tutorial, a desinstalação é bem simples. Basta executar este supercomando, no terminal do shell:
      Código: [Selecionar]
      sudo rm -r /usr/lib/adobe-flashplugin /usr/lib/flashplugin-installer/libflashplayer.so /usr/bin/flash-player-properties /usr/lib/kde4/kcm_adobe_flash_player.so /usr/lib64/kde4/kcm_adobe_flash_player.so /usr/share/applications/flash-player-properties.desktop /usr/share/kde4/services/kcm_adobe_flash_player.desktop /usr/share/pixmaps/flash-player-properties.png ; cd /usr/share/icons/hicolor ; sudo find . -name "flash-player-properties.png" -delete
      Como atualizar o Adobe Flash.
      Basta executar a desinstalação do Adobe Flash, como explicado acima, e então executar novamente os 10 passos de instalação. ;)

      11
      Recentemente instalei o XUbuntu 16.04 e em pouco tempo percebi um bug no Thunar 1.6.10 que vem pré-instalado: quando movo ou renomeio um arquivo, às vezes o Thunar simplesmente trava / congela e em seguida fecha, subitamente, assim, do nada.

      Após investigar na Internet, descobri que um desenvolvedor já havia criado um patch para corrigir o programa, porém o patch ainda não foi incorporado pelos desenvolvedores do Thunar e parece que ainda vai demorar um tempo até que isso ocorra. Como eu tenho pressa em me livrar desse problema, resolvi baixar o código-fonte do Thunar, aplicar o patch e reconstruir o código-fonte com essa correção aplicada. Então aproveitei para criar meu primeiro repositório PPA e hospedar nele os pacotes de instalação.

      Caso você que me lê esteja passando pelo mesmo problema com o Thunar, basta adicionar meu repositório. Eu pus nele umas instruções em português, explicando como adicionar meu repositório e em seguida atualizar seu sistema, para que o APT baixe os pacotes corrigidos e os instale por cima do seu Thunar "bugado":

      https://launchpad.net/~yuri-sucupira/+archive/ubuntu/thunar1.6.10-fix

      12

      Notas preliminares:
      i) A abreviatura GPU significa Graphics Processing Unit, que significa "Unidade de Processamento Gráfico". Trata-se de uma expressão genérica: pode referir-se a uma placa de vídeo PCI, ou a uma placa de vídeo AGP, ou a uma placa de vídeo ISA, ou a uma placa de vídeo PCI Express, ou referir-se a algum chip gráfico instalado diretamente na placa-mãe (motherboard) do seu computador, ou mesmo referir-se a um pequeno circuito integrado, de processamento gráfico, que se encontre embutido no processador (CPU) do seu computador. Muitos dos recentes processadores da Intel possuem uma GPU embutida.
      ii) O computador que possui duas ou mais GPU é denominado "computador híbrido" ou "computador com gráficos híbridos". Os computadores híbridos geralmente têm uma GPU Intel no processador, mas além disso têm uma GPU (da marca AMD/ATI ou então da marca Nvidia) instalada na placa-mãe, o que pode ser ou um chip de uma GPU onboard ou então uma placa GPU conectada a algum slot da placa-mãe.
      iii) Utilizarei a palavra *Ubuntu para me referir a todas as (ou a qualquer uma das) versões do sistema operacional suportado pela empresa Canonical: Ubuntu, XUbuntu, KUbuntu etc.
      iv) O kernel é o núcleo do Linux. Sem o kernel, não existe sistema operacional. Durante o boot (a inicialização do sistema operacional), o kernel Linux inicializa diversos módulos do kernel (abreviadamente chamados de módulos). Os módulos do kernel são essencialmente pequenos arquivos com extensão .ko (abreviatura de kernel object, que significa "objeto do kernel"). Os módulos que são ligados ao kernel complementam o kernel, tornando-o capaz de executar mais funções. Atualmente, muitos drivers de dispositivo são módulos do kernel: esses drivers são vinculados ao kernel durante o boot, de modo que cada dispositivo do seu computador encontre o driver necessário para poder funcionar (cada driver possibilita a interação de um dispositivo com o kernel Linux).


      A quem este pequeno tutorial pode interessar:
      Este tutorial provavelmente interessará a quem possua computador com ao menos uma GPU da fabricante AMD e esteja se deparando com um cenário no qual o *Ubuntu "congela" durante o processamento de gráficos 3D. Esse tipo de problema tem sido bastante recorrente em computadores híbridos em que a GPU embutida no processador é da fabricante Intel mas a GPU externa é da fabricante AMD.

      O lançamento dos *Ubuntu 16.04, por exemplo, trouxe muitas novidades, inclusive a ausência de suporte dos kernels versão 4.4.X ao driver gráfico proprietário fglrx, desenvolvido pela AMD.  Por causa disso, nos *Ubuntu 16.04 iniciais (versão 16.04.1) o proprietário de um computador que possua ao menos uma GPU da AMD terá de utilizar um destes dois drivers gráficos de código aberto: amdgpu e radeon. Esses drivers são automaticamente instalados e ativados quando você instala o *Ubuntu 16.04 num computador que possua alguma GPU da AMD: durante o boot, o kernel Linux automaticamente identifica qual GPU AMD seu computador possui e então seleciona o módulo que deve ser inicializado (o kernel inicializa somente um dos dois drivers: ou o driver radeon, que foi desenvolvido para alguns modelos de GPU da AMD, ou então o driver amdgpu, que foi desenvolvido para os demais modelos). No meu notebook, por exemplo (um Dell Inspiron 5548 com XUbuntu 16.04 de 64 bits), o módulo em execução é o arquivo amdgpu.ko.


      O problema:
      Embora o *Ubuntu 16.04.1 venha com kernel versão 4.4.X, que não dá suporte ao driver fglrx (o que nos obriga a usar o módulo amdgpu/radeon, automaticamente instalado pelo *Ubuntu 16.04.1), os kernels das séries 4.4.X e 4.5.X possuem um bug que faz com que o driver amdgpu/radeon seja inicializado de maneira errada: o kernel acaba apontando para um ponteiro inválido (porque não foi ainda criado) e daí surge um kernel panic ("pânico do kernel") que provoca o completo travamento / congelamento do sistema operacional, e aí o jeito é desligar o computador "no dedo" (pressionando o botão power / "liga-desliga").

      Inclusive, há tópicos relacionados a este assunto em que usuários indicam ativar a função nomodeset, no GRUB. No entanto, isso é contraindicado porque tornará o desempenho gráfico em 3D extremamente lento, além de geralmente inutilizar as saídas HDMI. Há também quem proponha adicionar os drivers amdgpu e radeon à blacklist ("lista negra" de módulos do kernel), o que fará com que esses drivers não sejam inicializados pelo kernel, mas isso também é contraindicado porque o driver fglrx não funciona com esses kernels mais novos. Consequentemente, se o usuário desativar aqueles dois drivers o sistema operacional ficará sem driver para a GPU da AMD, o que resultará em "tela preta" e impossibilidade de usar o computador, além de que o problema não está nos drivers amdgpu/radeon, mas sim nos kernels 4.4.X e 4.5.X.

      Alguns benchmarks (testes de desempenho) realizados com 5 diferentes GPU da AMD, para comparar a diferença de desempenho gráfico entre o *Ubuntu 14.04 com driver fglrx e o *Ubuntu 16.04 com driver amdgpu/radeon, indicaram que no uso cotidiano da interface gráfica do Linux os drivers amdgpu/radeon apresentaram desempenho superior ao do driver fglrx (fonte: http://www.phoronix.com/scan.php?page=article&item=ubuntu-1604-amd&num=2), portanto não fique triste por ter de usar um driver de código aberto no lugar do driver proprietário. ;)


      A solução:
      A solução recomendada para acabar com os congelamentos / travamentos / kernel panics consiste em instalar um kernel estável¹ da série 4.6.X ou posterior, pois os kernels dessas séries não possuem esse bug. Neste tutorial, explicarei como instalar o kernel 4.14.14 (versão posterior à 4.6.X) , que é o que eu utilizo desde 15/12/2017 e recomendo por atualmente ser a mais recente versão estável do kernel Linux que eu já testei por várias semanas, no meu próprio computador, sem detectar problema nenhum. Além disso, neste tutorial eu também explico como instalar o kernel 4.7.10, já que ele é superestável e eu o usei por 14 meses, sem vivenciar problema nenhum. Se o kernel 4.14.14 não ajudar você, experimente o kernel 4.7.10.

      IMPORTANTE: SEU SISTEMA TRAVA/CONGELA ANTES QUE VOCÊ POSSA USAR ESTE TUTORIAL? Então primeiro desabilite o KMS (e depois volte para cá). ;)

      Passo-a-passo para instalação do kernel 4.7.14:

      1) O primeiro passo consiste em executar o supercomando abaixo. Esse supercomando² automaticamente identificará a arquitetura do seu sistema operacional (32 bits ou 64 bits) e o tipo de kernel atualmente utilizado pelo seu sistema (generic/"genérico" ou lowlatency/"baixa latência") e, com base nessas duas informações, obterá os arquivos do kernel 4.14.14 apropriados para seu computador e os instalarão, e em seguida reiniciará o seu computador, portanto não se assuste quando seu computador reiniciar. ;D Enfim: abra uma janela do emulador de terminal do shell e execute este supercomando:

      Código: [Selecionar]
      if [ `uname -a |grep -io generic` = "generic" ]; then meukernel=generic; else meukernel=lowlatency; fi; wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.14.14/linux-headers-4.14.14-041414_4.14.14-041414.201801201219_all.deb -O /tmp/41414all.deb; if [ `getconf LONG_BIT` == 64 ]; then sudo wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.14.14/linux-headers-4.14.14-041414-`echo $meukernel`_4.14.14-041414.201801201219_amd64.deb -O /tmp/41414headers.deb; sudo wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.14.14/linux-image-4.14.14-041414-`echo $meukernel`_4.14.14-041414.201801201219_amd64.deb -O /tmp/41414image.deb; else sudo wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.14.14/linux-headers-4.14.14-041414-`echo $meukernel`_4.14.14-041414.201801201219_i386.deb -O /tmp/41414headers.deb; sudo wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.14.14/linux-image-4.14.14-041414-`echo $meukernel`_4.14.14-041414.201801201219_i386.deb -O /tmp/41414image.deb; fi; sudo dpkg -i /tmp/41414*.deb; sudo update-grub ; sudo telinit 6
      2) Agora que seu computador obteve e instalou o kernel 4.14.14, atualizou o GRUB (gerenciador de boot do Linux) e reiniciou o sistema, é hora de executar o comando abaixo para confirmar que seu sistema está executando o kernel 4.14.14:
      Código: [Selecionar]
      uname -r
      Caso o resultado do comando acima inicie com 4.14.14, parabéns: seu sistema está executando o kernel versão 4.14.14 e o GRUB está inicializando esse kernel por padrão. 8)

      Se o comando acima informar que seu sistema Linux continua, por padrão, executando um kernel cuja versão é posterior à do kernel que você instalou com ajuda deste tutorial, leia este post para aprender a definir temporariamente o kernel deste tutorial como sendo o kernel que deverá ser usado pelo seu sistema. Após seu sistema executar ("boot" / inicializar) o kernel que foi instalado com auxílio deste tutorial, execute os testes explicados no item 3 deste tutorial para verificar se o kernel que você instalou resolveu seu problema. Se o tal kernel não resolveu o problema, ok: basta reiniciar o computador que o sistema voltará a usar o kernel padrão, ao invés de usar o kernel que você instalou manualmente seguindo este tutorial...

      ...mas, caso o kernel instalado com ajuda deste tutorial resolva o seu problema, então leia este outro post para saber como fazer para definir esse "kernel bom" como sendo o kernel padrão do seu sistema (kernel padrão = kernel que o seu sistema sempre inicializará, automaticamente). ;)

      3) Depois que você conseguir inicializar o Linux com o kernel que você instalou com ajuda deste tutorial, retorne ao emulador de terminal do shell e execute o comando abaixo:
      Código: [Selecionar]
      DRI_PRIME=1 glxgears
      Esse comando executa um programa que testa o processamento gráfico 3D. Se as engrenagens surgirem e ficarem girando, e se mesmo assim seu sistema não "congelar", eis aí uma confirmação de que o bug não está mais presente. Mas você pode fazer outros testes: deixe as engrenagens girando lá e, enquanto isso, execute algum jogo que use gráficos em 3D, ou algum descanso de tela (alguma proteção de tela) que use gráficos em 3D. Observe o comportamento do seu computador e repare que o desempenho gráfico melhorou significativamente.

      CASO VOCÊ PREFIRA INSTALAR O KERNEL 4.7.10...

      ...então não execute o supercomando do item 1 e, no lugar dele, execute este supercomando:

      Código: [Selecionar]
      if [ `uname -a |grep -io generic` = "generic" ]; then meukernel=generic; else meukernel=lowlatency; fi; wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.7.10/linux-headers-4.7.10-040710_4.7.10-040710.201610220847_all.deb -O /tmp/4710all.deb; if [ `getconf LONG_BIT` == 64 ]; then sudo wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.7.10/linux-headers-4.7.10-040710-`echo $meukernel`_4.7.10-040710.201610220847_amd64.deb -O /tmp/4710headers.deb; sudo wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.7.10/linux-image-4.7.10-040710-`echo $meukernel`_4.7.10-040710.201610220847_amd64.deb -O /tmp/4710image.deb; else sudo wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.7.10/linux-headers-4.7.10-040710-`echo $meukernel`_4.7.10-040710.201610220847_i386.deb -O /tmp/4710headers.deb; sudo wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.7.10/linux-image-4.7.10-040710-`echo $meukernel`_4.7.10-040710.201610220847_i386.deb -O /tmp/4710image.deb; fi; sudo dpkg -i /tmp/4710*.deb; sudo update-grub ; sudo telinit 6
      ...e, após seu computador reiniciar, execute as orientações dos itens 2 e 3;)

      Quando você se convencer de que está livre do bug, feche a janela do emulador de terminal e retome sua rotina. 8)


      COMO DESINSTALAR O KERNEL:
      IMPORTANTE: seu sistema precisa ter ao menos um kernel instalado. Conforme explicado lá no início do tutorial, o kernel é o núcleo do sistema. Portanto, caso você desinstale todos os kernels do seu sistema, não haverá mais sistema operacional! Enfim: certifique-se de deixar ao menos um kernel instalado, para você poder continuar conseguindo inicializar o Linux do seu computador.
      Caso queira ver quais são todos os kernels atualmente instalados em seu sistema, execute este comando, no terminal do shell:
      Código: [Selecionar]
      ls -lx /lib/modules/
      Ok: agora que o aviso foi dado, caso queira desinstalar um dos (ou mais) kernels que você instalou com ajuda deste tutorial, retorne ao terminal do shell e execute o(s) comando(s) abaixo, conforme sua necessidade:

      D1) Para desinstalar o kernel versão 4.7.10, execute este comando:
      Código: [Selecionar]
      sudo apt-get purge linux-*-4.7.10* -y
      D2) Para desinstalar o kernel versão 4.14.14, execute este comando:
      Código: [Selecionar]
      sudo apt-get purge linux-*-4.14.14* -y
      D3) Regra geral, para desinstalar um kernel qualquer, da versão A.B.C, execute este comando:
      Código: [Selecionar]
      sudo apt-get purge linux-*-A.B.C* -y
      ...sendo que, no comando acima (mencionado no item D3), você obviamente deverá substituir as letras A, B e C pelos respectivos algarismos que compõem o número de versão do kernel que você deseja desinstalar.

      Restou alguma dúvida? Publique um comentário neste tópico.  :D


      Notas de rodapé:

      ¹ Por kernel estável da série 4.6.X entenda isto: qualquer kernel do repositório Mainline cuja numeração de versão inicie com 4.6 e não possua o texto rc (abreviação de release candidate ou "candidato ao lançamento", que significa que o kernel não é estável mas está em fase final de testes para o próximo lançamento). De acordo com o repositório Mainline, os kernels estáveis da versão 4.6 são estes: 4.6.7, 4.6.6, 4.6.5, 4.6.4, 4.6.3-yakkety, 4.6.2-yakkety, 4.6.1-yakkety e 4.6-yakkety.

      ² Um supercomando é uma concatenação (combinação) de vários comandos do shell em uma única linha de comando. Embora sejam "compridos", os supercomandos têm a vantagem de fazer "tudo de uma vez", deste modo economizando a execução de comandos individualmente, ao longo de diversas etapas que eventualmente podem acabar sendo cansativas. Um supercomando também é útil para automatizar algumas tarefas, e esse é o caso do supercomando utilizado neste tutorial: ele automaticamente identifica a arquitetura do seu sistema operacional e o tipo de kernel padrão em uso pelo seu sistema para, a partir daí, definir qual deverá ser o tipo e a arquitetura do kernel a ser obtido e instalado. ;)

      13
      Dicas e Truques / [Tutorial] Instalar o Mozilla SeaMonkey no Linux
      « Online: 16 de Janeiro de 2015, 17:09 »
      INTRODUÇÃO

      Como eu comentei neste post, um bug de vazamento de memória (memory leak) no navegador Mozilla Firefox acabou me levando a desinstalar o Firefox e instalar o Mozilla SeaMonkey, que também é mantido pela Fundação Mozilla porém não tem esse bug, além de ser mais leve, mais rápido, mais feio :P, ter um visual retrô que lembra o Netscape Communicator e ser mais do que um navegador: o Mozilla SeaMonkey é uma suíte de aplicativos que inclui o navegador SeaMonkey (também há um cliente de e-mail, um cliente de bate-papo IRC etc.).

      Como uma das filosofias da comunidade GNU/Linux é o compartilhamento de conhecimentos, resolvi elaborar este tutorial, de modo que os interessados em instalar e desinstalar o Mozilla SeaMonkey consigam fazê-lo usando linhas de comando, ou seja, executando comandos no terminal do shell.

      Este tutorial foi dividido nas seguintes seções:
      0 - INTRODUÇÃO
      1 - INSTALAR
      2 - EXECUTAR
      3 - DESINSTALAR
      4 - ATUALIZAR
      5 - TROUBLESHOOTING (RESOLUÇÃO DE PROBLEMAS)



      Por que eu uso linhas de comando?

      Ah, está curioso para saber por que bulhufas eu sempre prefiro usar terminal do shell em todo tutorial que eu crio? É porque existe uma infinidade de distribuições Linux e interfaces de usuário (mesmo entre as distribuições *Ubuntu, como por exemplo Ubuntu, XUbuntu, LUbuntu, KUbuntu etc.). Essas distribuições possuem diferentes interfaces gráficas (GNOME, KDE, Xfce, LXDE...) e diferentes gerenciadores de arquivos (Nautilus, Konqueror, Thunar...), por isto podem ter procedimentos diferentes a serem usados com o mouse e o teclado, seja para criar, mover ou excluir uma pasta, seja para descompactar ou mudar as permissões de um arquivo etc.

      Você realmente acha que este tutorial seria eficaz em ensinar a instalação do SeaMonkey para todo mundo, caso o texto aqui fosse baseado em alguma distribuição, interface gráfica e gerenciador de arquivos que eu estivesse utilizando? É óbvio que não. :P Mas via terminal do shell a coisa muda: atualmente, a graaaaaande maioria das distribuições Ubuntu e derivadas (como Linux Mint), assim como várias distribuições baseadas no Debian, usam o shell bash. Mesmo quando existem vários shells no sistema, como por exemplo bsh, csh, tcsh, ksh, zsh etc., normalmente o bash é o shell padrão do sistema, portanto quando você executar um comando no sistema ele por padrão usará o bash para tentar interpretar o comando.

      Um shell é mais do que um mero interpretador de comandos, e é por isto que eu escrevo shell ao invés de "interpretador". De qualquer modo, uma das funções de qualquer shell é interpretar comandos, portanto o fato de o bash ser um tipo de shell significa que o bash também é um interpretador de comandos. Consequentemente, já que o bash é um shell e o bash está presente na maioria dos sistemas Linux do planeta, os comandos mostrados neste tutorial, que são todos comandos para o shell bash, vão funcionar em um número de casos absurdamente maior do que caso este tutorial fosse baseado em alguma interface gráfica. 8)

      ...além de que qualquer linuxista que se preze tem que aprender no mínimo o básico de comandos do shell bash (comandos tais como cd, cp, grep, ls, ln, locate, mkdir, mv, rm, rmdir etc.). Deixe de preguiça e use esse shell aí, ô! ;D No Linux, quando algum problema ocorrer e a sua interface não lhe fornecer nenhum recurso para resolvê-lo (ou o problema estiver na própria interface), o shell será o seu refúgio, sua última chance de conseguir consertar o problema sem ter de formatar tudo ou tomar alguma outra atitude drástica. Por isto, é muito interessante saber mexer no sistema por intermédio do shell. Seja esperto e familiarize-se com o shell. Não tenha medo! Você só tem a ganhar.

      Se você estiver usando alguma distribuição *Ubuntu ou alguma outra baseada no Debian ou no Ubuntu, é praticamente impossível que seu shell não seja o bash. E é por isto que este tutorial há de funcionar em "99,9%" dos casos. :)

      14
      Boas! 8) Cá estou eu novamente, desta vez para apresentar uma dica que na verdade é uma tradução e adaptação desta dica que foi postada pelo linuxista canadense ToZ, moderador do fórum do projeto Xfce (em inglês).

      Eu já tive XUbuntu 11.04, XUbuntu 12.04, e daí "pulei" para o XUbuntu 14.04 - todos de 32 bits. O que eles têm em comum é que alguns meses após a instalação de cada um deles o plugin "atualização meteorológica" (nome oficial dele, em inglês: xfce4-weather-plugin) para de apresentar a previsão do tempo.

      Esse problema ocorre porque o desenvolvedor do plugin está constantemente atualizando-o, muitas vezes porque o servidor de dados meteorológicos usado pelo plugin saiu do ar (ou então não saiu do ar mas parou de reconhecer coordenadas geográficas e/ou outros parâmetros inseridos manualmente por você na configuração do plugin), e isso obriga o desenvolvedor a lançar uma nova versão do plugin (que utilize um servidor meteorológico diferente, ou que reconheça parâmetros inseridos manualmente por você, nas configurações do plugin), porém os mantenedores do repositório do projeto Xfce, responsáveis por manter o repositório do plugin, não acompanham o ritmo dessas atualizações, por isto às vezes demora um (às vezes bom...) tempo até que a equipe do projeto Xfce lance um pacote DEB que contenha a versão mais recente desse plugin. :-\

      Bom, existem duas soluções para esse problema:
      1) A primeira, que eu chamo de solução trivial, consiste em você aguardar pacientemente até que os desenvolvedores do projeto Xfce lancem um novo pacote DEB desse plugin e daí ele seja atualizado via "atualização de software" do seu XUbuntu e volte a funcionar.
      2) A segunda, que eu chamo de solução pragmática, consiste em você desinstalar o pacote DEB oficial desse plugin e em seguida compilar e instalar a versão mais nova dele, obtida do repositório GIT oficial do desenvolvedor. 8)

      Caso decida adotar a solução pragmática, continue lendo...

      PASSO-A-PASSO PARA ATUALIZAÇÃO DO PLUGIN A PARTIR DO REPOSITÓRIO GIT

      1.1 - Interrompa o plugin
      O primeiro passo para começar a resolver essa "pane" consiste em interromper o funcionamento do seu plugin: vá até o painel em que o plugin está aparecendo, clique com o botão direito sobre o plugin e selecione a opção "Remover"

      1.2 - Desinstale o pacote DEB do plugin
      Entre no emulador de terminal do shell e execute o seguinte comando:
      Código: [Selecionar]
      sudo apt-get remove xfce4-weather-plugin -y
      1.3 - Instale as ferramentas de download de arquivos-fonte e montagem de códigos-fonte oriundos de repositórios GIT
      A instalação dessas ferramentas permitirá que você posteriormente obtenha os arquivos-fonte da mais recente versão do plugin diretamente a partir do repositório GIT que é mantido pelo desenvolvedor do plugin, e também que construa o código-fonte desses arquivos-fonte. Para obter essas importantes ferramentas, execute este comando, no emulador de terminal do shell:
      Código: [Selecionar]
      sudo apt-get install build-essential git
      1.4 - Construa a árvore de dependências (pacotes DEB requeridos) para o plugin
      Comando a ser executado para que a árvore de dependências seja construída em seu sistema:
      Código: [Selecionar]
      sudo apt-get build-dep xfce4-weather-plugin
      1.5 - Entre no diretório em que ficam os arquivos-fonte usados pelo usuário
      O comando é este:
      Código: [Selecionar]
      cd /usr/src
      1.6 - Efetue download dos arquivos-fonte
      Execute o comando abaixo e o aplicativo GIT efetuará download de todos os arquivos-fonte da mais recente versão disponibilizada pelo desenvolvedor do plugin:
      Código: [Selecionar]
      sudo git clone git://git.xfce.org/panel-plugins/xfce4-weather-plugin
      1.7 - Entre no diretório em que ficam os arquivos-fonte do plugin
      O comando é este:
      Código: [Selecionar]
      cd xfce4-weather-plugin
      1.8 - Configure os arquivos-fonte, compile-os e então instale
      O supercomando abaixo executará as três ações acima, na sequência em que foram mencionadas:
      Código: [Selecionar]
      sudo ./autogen.sh --prefix=/usr --disable-static --disable-debug && sudo make && sudo make install
      1.9 - Reinicie o painel do Xfce
      Execute este comando para que o painel seja reiniciado e daí você possa carregar o novo plugin:
      Código: [Selecionar]
      xfce4-panel -r
      1.10 - Adicione o novo plugin ao seu painel
      Clique com o botão direito do mouse sobre o painel em que deseja adicionar o plugin. Agora selecione a opção Painel, clique em Adicionar novos itens..., daí clique em Atualização meteorológica, então clique em Adicionar e por fim clique em Fechar. Pronto! Agora a mais recente versão do xfce4-weather-plugin está adicionada ao painel do seu ambiente Xfce! ;D

      1.11 - Posicione e configure o plugin
      Clique com o botão direito do mouse sobre o plugin que você acabou de adicionar ao painel, daí clique em -> Mover e movimente o plugin até que ele fique na posição que você prefere.

      Feito isso, clique novamente com o botão direito do mouse sobre o plugin, selecione a opção Propriedades e configure o plugin. Caso esteja conectado à internet, espere um tempo que o plugin tentará descobrir sozinho sua localização geográfica e com base nisso escolher os dados meteorológicos a consultar. Também é recomendável que você clique na aba Caixa de rolagem e adicione o parâmetro Umidade (H). Enfim: divirta-se! ;)

      Notas:
      • É altamente recomendável deixar intacto o diretório /usr/src/xfce4-weather-plugin, pois você necessitará dele quando for / quiser / necessitar desinstalar o plugin.
      • Caso queira confirmar a versão do plugin, clique com o botão direito do mouse sobre o plugin no painel e então clique em Sobre. Deverá aparecer algo mais ou menos assim:
        xfce4-weather-plugin 0.8.3git-a4f61c7
      • A presença da sequência de caracteres git indica que o plugin que você está usando foi compilado a partir do repositório GIT do desenvolvedor do plugin. Então está tudo certo! 8) Ah, e o código a4f61c7 é o número de série da última atualização que o desenvolvedor aplicou ao plugin. Se aí no seu sistema aparecer um código diferente, não se preocupe, isso quer dizer apenas que depois que eu publiquei esta dica você instalou uma versão mais atualizada, que por isto tem um número de série diferente (mais atual). ;)

      15
      Após atualizar meu XUbuntu 32 bits da versão 12.04 para a 14.04, descobri que o aplicativo Gnome Subtitles parou de executar vídeos corretamente. Por exemplo: ao abrir um arquivo AVI, ele executa o áudio mas não executa o vídeo.

      Esse problema ocorreu até 15/10/2014, porque o Gnome Subtitles presente nos repositórios oficiais da versão 14.04 do Ubuntu e variantes (XUbuntu, KUbuntu etc.) adotam o Gnome Subtitles versão 1.2, que depende do plugin ffmpeg para o GStreamer (pacote gstreamer0.10-ffmpeg), que no entanto não está presente nos repositórios da versão 14.04 do *Ubuntu.

      No entanto, em 16/10/2014 o Pedro Castro (desenvolvedor do Gnome Subtitles) adicionou ao PPA oficial dele um pacote DEB do Gnome Subtitles versão 1.3 para sistemas GNU/Linux *Ubuntu 14.04. Eu já testei essa nova versão e ela está funcionando perfeitamente. :D

      Segue o passo-a-passo para desinstalar o Gnome Subtitles que você porventura tenha instalado em seu sistema e em seguida adicionar o repositório oficial e instalar a versão mais nova desse aplicativo:

      1) Entre no terminal ou (emulador de terminal) do shell e execute o comando abaixo, para desinstalar a versão antiga do Gnome Subtitles:
      Código: [Selecionar]
      sudo apt-get remove gnome-subtitles gstreamer0.10-ffmpeg
      2) Adicione ao seu sistema o repositório PPA do Pedro Castro:
      Código: [Selecionar]
      sudo apt-add-repository ppa:pedrocastro/ppa
      3) Agora atualize o cache do sistema de pacotes e instale a versão mais recente do Gnome Subtitles para *Ubuntu 14.04:
      Código: [Selecionar]
      sudo apt-get update && sudo apt-get check && sudo apt-get install gnome-subtitles
      O PROCEDIMENTO ACABA AQUI. Só continue lendo caso queira tentar fazer funcionar o Gnome Subtitles "velho" que veio no repositório oficial da sua distribuição Linux!

      >>>Nota: se por qualquer motivo você preferir usar a versão 1.2 (ou anterior) do Gnome Subtitles que consta no repositório oficial do seu sistema GNU/Linux, não siga os procedimentos acima. Ao invés disso, siga os procedimentos abaixo para tentar fazer o Gnome Subtitles funcionar com o ffmpeg para GStreamer:

      1) Caso ainda não tenha instalado o Gnome Subtitles, instale-o com este comando:
      Código: [Selecionar]
      sudo apt-get update && sudo apt-get check && sudo apt-get install gnome-subtitles
      2) Acesse este URL e faça download do arquivo gstreamer0.10-ffmpeg_0.10.13-5ubuntu1~trusty2_i386.deb (caso o seu sistema seja de 32 bits) ou então faça download do arquivo gstreamer0.10-ffmpeg_0.10.13-5ubuntu1~trusty2_amd64.deb (caso o seu sistema seja de 64 bits).

      PS: um repositório alternativo é este, mantido pelo Jon Severinsson, um dos desenvolvedores que contribuem para os projetos Ubuntu e ffmpeg. Nesse repositório você verá os pacotes gstreamer0.10-ffmpeg_0.10.13-5~precise1_i386.deb (para sistemas de 32 bits) e gstreamer0.10-ffmpeg_0.10.13-5~precise1_amd64.deb (para sistemas de 64 bits). O primeiro repositório que informei está mais atualizado, mas este segundo tem maior reputação. Fica a seu critério ;)

      3) Após o download, instale aquele pacote .DEB por intermédio do aplicativo GDebi: execute o GDebi, então clique em File (Arquivo), daí clique em Open (Abrir), selecione o arquivo .DEB que você acabou de obter, clique no botão Open (Abrir) e então clique no botão Install Package (Instalar Pacote). O GDebi irá pedir a senha do superusuário. Informe a senha e dê Enter: pronto, o pacote será instalado.

      4) Agora feche o Gnome Subtitles (caso ele esteja aberto) e execute-o novamente. Tente abrir e executar um vídeo. Se tanto o áudio quanto o vídeo forem executados corretamente, o procedimento funcionou.

      Caso você não possua o aplicativo GDebi instalado, execute este comando no terminal do shell e o GDebi será instalado:
      Código: [Selecionar]
      sudo apt-get install gdebi
      Caso você não queria instalar o GDebi e/ou prefira instalar o pacote .DEB diretamente via terminal do shell, tudo o que você precisa fazer é executar o dpkg. Exemplo: digamos que você tenha feito download do pacote DEB para sistemas de 32 bits e que esse arquivo-pacote haja sido gravado em /home/bogus/Download/gstreamer0.10-ffmpeg_0.10.13-5ubuntu1~trusty2_i386.deb. Neste caso, para instalar esse pacote basta executar este comando, no terminal do shell:

      Código: [Selecionar]
      sudo dpkg -i /home/bogus/Download/gstreamer0.10-ffmpeg_0.10.13-5ubuntu1~trusty2_i386.deb
      Agora feche o Gnome Subtitles (caso ele esteja aberto) e execute-o novamente. Tente abrir e executar um vídeo. Se tanto o áudio quanto o vídeo forem executados corretamente, o procedimento funcionou.

      CASO A DICA ACIMA NÃO FUNCIONE

      Se a dica acima não funcionar, uma alternativa é ver se este comando dá certo, no terminal do shell:

      Código: [Selecionar]
      sudo apt-get build-dep gnome-subtitles
      O comando acima verificará todos os pacotes .DEB cuja instalação é indicada juntamente com o Gnome Subtitles. Quando o APT perguntar se deseja efetuar download e instalar todos os pacotes indicados, informe que sim (S). Espere o procedimento ser concluído e então veja se funcionou.

      Se nada do que foi aqui exposto funcionar, é provável que haja alguma inconsistência dentro da sua distribuição Linux: talvez a versão do Gnome Subtitles requeira arquivos que não estão todos disponíveis nos repositórios da sua distribuição. Será necessário você investigar as versões dos arquivos. Por exemplo: acesse o website oficial do Gnome Subtitles, veja qual é a mais recente versão do aplicativo e confronte-a com a versão que está instalada no seu sistema.

      O Gnome Subtitles depende do GStreamer para funcionar. Caso queira investigar se algum plugin ou biblioteca ffmpeg necessário para o GStreamer está faltando, execute este comando no terminal do shell:

      Código: [Selecionar]
      sudo apt-get build-dep gstreamer0.10 gstreamer1.0 --assume-no |grep ffmpeg
      Se esse comando retornar alguma linha contendo a palavra ffmpeg, anote o nome do pacote .DEB que tem aquela palavra e instale-o. Exemplo fictício: digamos que no resultado do comando acima apareça o pacote gstreamer-plugin-ffmpeg. Neste caso, instale-o com este comando:

      Código: [Selecionar]
      sudo apt-get install gstreamer-plugin-ffmpeg
      Caso o comando

      Código: [Selecionar]
      sudo apt-get build-dep gstreamer0.10 gstreamer1.0 --assume-no |grep ffmpeg
      ...não retorne resultado nenhum, mas seu Gnome Subtitles continue não executando vídeos e por isto você queira mesmo assim instalar todas as dependências indicadas para o GStreamer, retorne ao terminal do shell e execute este comando:

      Código: [Selecionar]
      sudo apt-get build-dep gstreamer0.10 gstreamer1.0 -y
      Se isso também não funcionou, reinstale o gnome-subtitles:

      Código: [Selecionar]
      sudo apt-get install gnome-subtitles --reinstall
      SE O PROCEDIMENTO ACIMA TAMBÉM NÃO FUNCIONOU

      Ok, vamos ser um pouco mais radicais: adicione o repositório ffmpeg mantido pelo Jon Severinsson e atualize (ou instale) o ffmpeg em seu sistema. Primeiro execute este comando para adicionar o repositório PPA:

      Código: [Selecionar]
      sudo add-apt-repository ppa:jon-severinsson/ffmpeg -y
      Agora execute este supercomando para atualizar o cache de repositórios e então verificar e atualizar seu sistema:

      Código: [Selecionar]
      sudo apt-get update && sudo apt-get check && sudo apt-get upgrade -y && sudo apt-get dist-upgrade -y
      O ffmpeg será atualizado. Pronto, agora finalize com este supercomando de limpeza:

      Código: [Selecionar]
      sudo apt-get autoremove && sudo apt-get clean
      Por fim, tente novamente fazer o Gnome Subtitles funcionar com o seu arquivo de vídeo. 8)

      Se nada disso adiantou, :'( o problema que você está enfrentando não é tão trivial, por isto será necessário investigá-lo mais a fundo. Você pode usar o Synaptic (sudo apt-get install synaptic) para investigar a versão do seu pacote gnome-subtitles, os arquivos que esse pacote instalou e quais são as dependências desse pacote.

      Enquanto faz isso, considere a possibilidade de instalar a versão mais recente do Gnome Subtitles, conforme eu explico no topo desta página. Lembre-se de que se você está usando um sistema GNU/Linux *Ubuntu 14.04 Trusty Tahr, portanto pode usar o procedimento do topo desta página para remover a versão velha do Gnome Subtitles e instalar a mais recente, que está disponível no repositório PPA mantido pelo desenvolvedor do aplicativo. ;)

      Páginas: [1] 2