✅ Notícias, temas e plug-ins da WEB e do WordPress. Aqui compartilhamos dicas e as melhores soluções para sites.

Uma cartilha em Bash para desenvolvedores WordPress

4

De vez em quando, acabo instalando um software via Composer ou que coloca alguns de seus binários em diretórios diferentes dos locais usuais em que o macOS espera encontrá-los.

Ou seja, se você estiver executando um aplicativo de dentro do Terminal ou se um aplicativo com uma GUI espera estar em um determinado local no disco, é provável que o espere em um dos cinco lugares:

  1. /usr/bin
  2. /bin
  3. /usr/sbin
  4. /sbin
  5. /usr/local/bin

Mas, como eu disse, com o tempo acabamos instalando coisas usando ferramentas de terceiros, ou acabamos instalando coisas que colocam binários fora de um desses diretórios.

Caso em questão: O que acontece se você quiser instalar o WP-CLI globalmente? Ou se você quiser usar uma versão do MySQL que vem com MAMP?

Nesses casos, esses binários não serão incluídos em nenhum dos diretórios mencionados. Quando isso acontece, você precisa modificar seu perfil. Se você nunca fez isso, pode ser assustador. E pode ficar confuso se você não fizer isso metodicamente ao longo do tempo.

Então, aqui está uma cartilha sobre Bash para desenvolvedores do WordPress sobre o que é seu bash_profile e como gerenciar software de terceiros com ele.

Bash para desenvolvedores do WordPress

Antes de entrar na configuração de caminhos, para outros softwares e similares, é importante observar que você pode não ter um bash_profile. Ou seja, se você usa um terminal, então você pode usar um tipo diferente de shell, e se for o caso, você já está muito à frente deste post.

Se, por outro lado, você usar o shell do terminal sem alterações fornecidas com o macOS. Mas primeiro, o que é uma concha?

Na computação, um shell é uma interface de usuário para acesso aos serviços de um sistema operacional. Em geral, os shells do sistema operacional usam uma interface de linha de comando (CLI) ou uma interface gráfica do usuário (GUI), dependendo da função de um computador e da operação específica.

E se você estiver usando o Terminal sem modificações, provavelmente está usando o Bash.

Finalmente, todas as configurações para cada vez que você inicia o Terminal são armazenadas no arquivo de perfil relevante do shell. Nesse caso, tudo é armazenado em .bash_profile.

Para obter tudo configurado exatamente como precisamos, precisamos fazer algumas alterações (ou até inicializá-lo) para que as coisas funcionem.

Observe  que após cada alteração feita em .bash_profile você pode querer executar:

$ source ~/.bash_profile

Portanto, todas as novas alterações introduzidas são carregadas para sua sessão de terminal atual.

O perfil inicial

Sempre que configuro meu perfil inicial, ele sempre parece o mesmo. Ou seja, inclui os cinco diretórios que listei acima :

PATH="/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:$PATH" export PATH

Você notará no final da  variável PATH, porém, que há algo que se parece com outra variável. Especificamente, estou falando de $PATH. E é importante entender isso porque afeta a forma como os programas são encontrados no terminal.

O que é $PATH?

Primeiro, pense que era uma maneira do shell ou do sistema operacional procurar binários. Portanto, se você tiver todos os cinco caminhos definidos acima, o sistema operacional procurará nesses diretórios por determinados binários.

Uma cartilha em Bash para desenvolvedores WordPress

Para experimentar, inicie o terminal e digite:

$ which clear

E isso mostrará onde está encontrando o  executável clear em seu sistema (onde clear apenas limpa a tela do terminal 🙂).

Em seguida, observe que $PATH  é definido no final da string no exemplo acima. Conforme você modifica seu perfil, você vai gostar de trabalhar com ele. Em suma, define a ordem em que os diretórios devem ser pesquisados.

Portanto, na essência acima, o Terminal procurará um binário que corresponda ao que você deseja executar começando em /usr/bin e terminando em /usr/local/bin.

O que significa "Exportar"?

Se você não estiver usando o Bash, não posso comentar sobre o equivalente, mas dentro do contexto do Bash, a exportação é uma maneira de atribuir explicitamente o valor à  variável PATH definida na essência acima.

Ou seja, na programação estamos usando para criar uma variável e atribuir um valor a ela. Isso é semelhante a isso. No entanto, somos um pouco mais explícitos. Simplificando, estamos definindo uma variável do lado esquerdo para o valor do lado direito. E isso é definido usando exportação.

Então, se você quiser ver o que $PATH contém, digite isso no seu terminal:

$ echo $PATH

Então você veria o valor dos cinco caminhos definidos até agora.

Uma cartilha em Bash para desenvolvedores WordPress

Com o tempo, porém, naturalmente queremos adicionar mais a isso.

Pacotes do Composer

Já falei sobre como instalar o Composer e como instalar pacotes usando-o em posts anteriores globalmente. Mas digamos que, por uma questão de argumento, queremos instalar o WP-CLI e adicioná-lo de forma que possa ser acessado pelo terminal em qualquer lugar do sistema. E tudo isso pode ser feito usando as informações de perfil acima.

Supondo que você instalou o composer e seu composer.json se parece com isso (junto com algumas outras coisas, mas ignore-as por enquanto):

{ "require": { "squizlabs/php_codesniffer": "2.9.1", "wp-cli/wp-cli": "~1.2.1", "psy/psysh": "~0.8.6" } }

E você executou:

$ composer update

Então o WP-CLI foi instalado. Mas quando você tenta executá-lo do terminal fora do diretório de instalação, ele não funciona. Então o que dá?

Uma cartilha em Bash para desenvolvedores WordPress

O caminho para os binários instalados via composer não está definido em nosso .bash_profile. Para corrigir isso, adicione uma nova linha ao .bash_profile, mas certifique-se de não redefinir algo que já existe.

Isso é como PATH existe, então podemos simplesmente definir $PATH no final de nossa nova linha e anexar nosso diretório Composer a ela. Desta forma, não estamos duplicando diretórios ou valores na variável sempre que os exportamos e estamos definindo a prioridade de quais diretórios são pesquisados.

Por exemplo :

PATH="/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin" PATH="$HOME/.composer/vendor/bin:$PATH" export PATH

Então, quando você tentar executar o wp de qualquer lugar na linha de comando, ele deverá funcionar e você poderá digitar:

$ which wp

E veja que está vindo do diretório composer/vendor/bin. Ah – e observe que $HOME é uma variável que faz referência ao diretório inicial do usuário atual. Isso pode ser alterado, mas está fora do escopo deste post.

Software MAMP

Neste ponto, a versão do PHP, MySQL ou quaisquer linguagens e ferramentas que você optar por usar serão alteradas. Eu forneci alguns posts diferentes sobre MAMP (1, 2, 3 ), então é isso que estou optando por usar um exemplo.

Especificamente, eu quero usar a versão do PHP e MySQL do MAMP – não o que é fornecido com o sistema. Mas, neste ponto, você pode executar:

$ which php

E:

$ which mysql

E veja que ambos são provenientes de diretórios do sistema. Isso precisa ser alterado para que nosso acesso à linha de comando esteja usando a mesma versão do software que nosso aplicativo está usando.

Para fazer isso, podemos adicionar as seguintes linhas ao nosso .bash_profile :

PATH="/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin" PATH="$PATH:$HOME/.composer/vendor/bin" PATH="/Applications/MAMP/bin/php/php7.1.0/bin:$PATH" export PATH

No entanto, há algo a ser importado aqui: eu coloquei o diretório binário PHP do MAMP antes dos valores de $PATH. Isso ocorre porque eu quero que o sistema olhe aqui primeiro (não nos diretórios do sistema).

Há um segundo desafio, no entanto. O MAMP vem com várias versões diferentes do PHP e as chances de usarmos a mesma versão todas as vezes são pequenas. Então, precisamos de uma maneira de usar qualquer versão selecionada no MAMP, certo?

Uma maneira de fazer isso é usar um alias.

E quanto aos pseudônimos?

Você pode pensar em aliases como um atalho – é uma maneira rápida de executar um comando ou programa específico sem precisar digitar um nome totalmente qualificado para um programa.

No caso do MAMP e do PHP, existem algumas versões do PHP que poderíamos usar. No momento em que escrevo este texto, tenho:

  • 5.4.45
  • 5.5.38
  • 5.6.28
  • 7.0.13
  • 7.1.0

Todos disponíveis no meu sistema. Não é provável que eu queira usar todos eles (nem todos eles no meu $PATH ), mas pode haver uma chance de eu querer executar uma versão anterior do PHP para testar algo em particular.

Então, como podemos fazer isso? Podemos usar apelidos. E se você navegar para /Applications/MAMP/bin/php  você deverá ver todas as versões do PHP que estão incluídas na sua versão do MAMP.

Uma cartilha em Bash para desenvolvedores WordPress

Agora vamos configurar aliases para cada um deles:

## Aliases to old versions of PHP. alias php54="/Applications/MAMP/bin/php/php5.4.45/bin/php" alias php55="/Applications/MAMP/bin/php/php5.5.38/bin/php" alias php56="/Applications/MAMP/bin/php/php5.6.28/bin/php" alias php70="/Applications/MAMP/bin/php/php7.0.13/bin/php"

E podemos executar cada um deles independentemente do outro no terminal executando um comando como:

$ php54 -v

Isso deve mostrar qual versão do PHP está sendo executada com base no alias que você definiu em .bash_profile.

E, finalmente, observe que na essência final você verá uma linha que foi adicionada a .bash_profile :

source ~/.profile

Isso é feito automaticamente pelo sistema especificamente quando você começa a trabalhar com um shell interativo. Você pode excluí-lo, mas ele será adicionado no topo do arquivo novamente, então não se preocupe.

E, para referência, a versão final do meu .bash_profile se parece com isso :

source ~/.profile PATH="/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin" # The standard system binaries PATH="$HOME/.composer/vendor/bin:$PATH" # Composer binaries PATH="/Applications/MAMP/bin/php/php7.1.0/bin:$PATH" # MAMP's PHP7 loaded first PATH="/Applications/MAMP/Library/bin:$PATH" # MAMP's MySQL loaded first ## Aliases to old versions of PHP. alias php54="/Applications/MAMP/bin/php/php5.4.45/bin/php" alias php55="/Applications/MAMP/bin/php/php5.5.38/bin/php" alias php56="/Applications/MAMP/bin/php/php5.6.28/bin/php" alias php70="/Applications/MAMP/bin/php/php7.0.13/bin/php" export PATH

Você verá que também adicionei linhas para MySQL e MySQLAdmin logo acima da linha que define os aliases (embora o seu provavelmente pareça diferente).

Independentemente disso, essa é uma ideia geral, embora a sua provavelmente pareça diferente.

Bash mais avançado

Existem pessoas que são muito mais avançadas em Bash do que eu (e até mesmo navegar em outros sites sobre o que algumas pessoas fizeram pode ser impressionante).

Mas se você é um desenvolvedor WordPress com pouco ou nenhum conhecimento de Bash, ferramentas de linha de comando, configuração de caminhos e assim por diante, isso é algo que deve ser uma referência de trabalho e um ponto de partida decente.

Fonte de gravação: tommcfarlin.com

Este site usa cookies para melhorar sua experiência. Presumiremos que você está ok com isso, mas você pode cancelar, se desejar. Aceitar Consulte Mais informação