One place for hosting & domains

      Local

      How To Develop a Drupal 9 Website on Your Local Machine Using Docker and DDEV


      The author selected the Diversity in Tech Fund to receive a donation as part of the Write for DOnations program.

      Introduction

      DDEV is an open-source tool that uses Docker to build local development environments for many different PHP frameworks. Using the power of containerization, DDEV can greatly simplify how you work on multiple projects that use multiple tech stacks and multiple cloud servers. DDEV includes templates for WordPress, Laravel, Magento, TYPO3, Drupal, and more.

      Drupal 9 was released on June 3, 2020 for the Drupal CMS. Known for its ease of use and a massive library of modules and themes, Drupal is a popular PHP framework for building and maintaining various websites and applications of all sizes.

      In this tutorial, you will begin developing a Drupal 9 website on your local machine using DDEV. This will allow you to build your website first, and then later, when you are ready, deploy your project to a production server.

      Prerequisites

      To complete this tutorial, you will need:

      Note: It is possible to develop Drupal 9 using DDEV on a remote server, but you will need a solution to access localhost in a web browser. The DDEV command ddev share works with ngrok, which creates a secure tunnel into your server for you and other stakeholders to view your development site. For personal use, you could also install a GUI on your remote server and access your development site through a web browser inside that interface. To do this, you could follow our guide on how to install and configure VNC on Ubuntu 20.04. For an even quicker GUI solution you can follow our guide on how to set up a remote desktop with X2Go on Ubuntu 20.04.

      Step 1 — Installing DDEV

      In this step you will install DDEV on your local machine. Option 1 includes instructions for macOS while Option 2 provides instructions for Linux. This tutorial was tested on DDEV version 1.15.0.

      Option 1 — Installing DDEV on macOS

      DDEV advises that macOS users install their tool using the Homebrew package manager. Use the following brew command to install the newest stable release:

      • brew tap drud/ddev && brew install drud/ddev/ddev

      If you prefer the absolute newest version, you can use brew to install ddev-edge:

      • brew tap drud/ddev-edge && brew install drud/ddev-edge/ddev

      If you already have a version of DDEV installed, or if you ever wish to update your version, shut down DDEV and use brew to update your installation:

      • ddev poweroff
      • brew upgrade ddev

      Once you have installed or updated DDEV, run ddev version to verify your software:

      You will see an output like this:

      Output

      DDEV-Local version v1.15.0 commit v1.15.0 db drud/ddev-dbserver-mariadb-10.2:v1.15.0 dba phpmyadmin/phpmyadmin:5 ddev-ssh-agent drud/ddev-ssh-agent:v1.15.0 docker 19.03.8 docker-compose 1.25.5 os darwin router drud/ddev-router:v1.15.0 web drud/ddev-webserver:v1.15.0

      DDEV includes a powerful CLI, or command line interface. Run ddev to learn about some common commands:

      You will see the following output:

      Output

      Create and maintain a local web development environment. Docs: https://ddev.readthedocs.io Support: https://ddev.readthedocs.io/en/stable/#support Usage: ddev [command] Available Commands: auth A collection of authentication commands composer Executes a composer command within the web container config Create or modify a ddev project configuration in the current directory debug A collection of debugging commands delete Remove all project information (including database) for an existing project describe Get a detailed description of a running ddev project. exec Execute a shell command in the container for a service. Uses the web service by default. export-db Dump a database to a file or to stdout help Help about any command hostname Manage your hostfile entries. import-db Import a sql file into the project. import-files Pull the uploaded files directory of an existing project to the default public upload directory of your project. list List projects logs Get the logs from your running services. pause uses 'docker stop' to pause/stop the containers belonging to a project. poweroff Completely stop all projects and containers pull Pull files and database using a configured provider plugin. restart Restart a project or several projects. restore-snapshot Restore a project's database to the provided snapshot version. sequelpro This command is not available since sequel pro.app is not installed share Share project on the internet via ngrok. snapshot Create a database snapshot for one or more projects. ssh Starts a shell session in the container for a service. Uses web service by default. start Start a ddev project. stop Stop and remove the containers of a project. Does not lose or harm anything unless you add --remove-data. version print ddev version and component versions Flags: -h, --help help for ddev -j, --json-output If true, user-oriented output will be in JSON format. -v, --version version for ddev Use "ddev [command] --help" for more information about a command.

      For more information about using the DDEV CLI, visit the official DDEV documentation.

      With DDEV installed on your local machine, you are now ready to install Drupal 9 and begin developing a website.

      Option 2 — Installing DDEV on Linux

      On a Linux operating system, you can install DDEV using Homebrew for Linux or using the official installation script. On Ubuntu, begin by updating your list of packages in the apt package manager (you can use apt in Debian, otherwise use the equivalent package manager associated with your Linux distribution):

      Now install some prerequisite packages from Ubuntu’s official repository:

      • sudo apt install build-essential apt-transport-https ca-certificates software-properties-common curl

      These packages will allow you to download the DDEV installation script from their official GitHub repository.

      Now download the script:

      • curl -O https://raw.githubusercontent.com/drud/ddev/master/scripts/install_ddev.sh

      Before running the script, open it in nano or your preferred text editor and inspect its contents:

      nano install_ddev.sh
      

      Once you have reviewed the script’s contents and you are satisfied, save and close the file. Now you are ready to run the installation script.

      Use the chmod command to make the script executable:

      Now run the script:

      The installation process might prompt you to confirm some settings or to enter your sudo password. Once the installation completes, you will have DDEV available on your Linux operating system.

      Run ddev version to verify your software:

      You will see an output like this:

      Output

      DDEV-Local version v1.15.0 commit v1.15.0 db drud/ddev-dbserver-mariadb-10.2:v1.15.0 dba phpmyadmin/phpmyadmin:5 ddev-ssh-agent drud/ddev-ssh-agent:v1.15.0 docker 19.03.8 docker-compose 1.25.5 os linux router drud/ddev-router:v1.15.0 web drud/ddev-webserver:v1.15.0

      DDEV is a powerful CLI, or command line interface. Run ddev without anything else to learn about some common commands:

      You will see the following output:

      Output

      Create and maintain a local web development environment. Docs: https://ddev.readthedocs.io Support: https://ddev.readthedocs.io/en/stable/#support Usage: ddev [command] Available Commands: auth A collection of authentication commands composer Executes a composer command within the web container config Create or modify a ddev project configuration in the current directory debug A collection of debugging commands delete Remove all project information (including database) for an existing project describe Get a detailed description of a running ddev project. exec Execute a shell command in the container for a service. Uses the web service by default. export-db Dump a database to a file or to stdout help Help about any command hostname Manage your hostfile entries. import-db Import a sql file into the project. import-files Pull the uploaded files directory of an existing project to the default public upload directory of your project. list List projects logs Get the logs from your running services. pause uses 'docker stop' to pause/stop the containers belonging to a project. poweroff Completely stop all projects and containers pull Pull files and database using a configured provider plugin. restart Restart a project or several projects. restore-snapshot Restore a project's database to the provided snapshot version. sequelpro This command is not available since sequel pro.app is not installed share Share project on the internet via ngrok. snapshot Create a database snapshot for one or more projects. ssh Starts a shell session in the container for a service. Uses web service by default. start Start a ddev project. stop Stop and remove the containers of a project. Does not lose or harm anything unless you add --remove-data. version print ddev version and component versions Flags: -h, --help help for ddev -j, --json-output If true, user-oriented output will be in JSON format. -v, --version version for ddev Use "ddev [command] --help" for more information about a command.

      For more information about using the DDEV CLI, you can visit the official DDEV documentation.

      With DDEV installed on your local machine, you are now ready to deploy Drupal 9 and begin developing a website.

      Step 2 — Deploying a New Drupal 9 Site Using DDEV

      With DDEV running, you will now use it to create a Drupal-specific filesystem, install Drupal 9, and then initiate a standard website project.

      First, you will create a project root directory and then move inside it. You will run all remaining commands from this location. This tutorial will use d9test, but you are free to name your directory something else. Note, however, that DDEV doesn’t handle hyphenated names well. It is considered a best practice to avoid directory names like my-project or drupal-site-1.

      Create your project root directory and navigate inside:

      DDEV excels at creating directory trees that match specific CMS platforms. Use the ddev config command to create a directory structure specific to Drupal 9:

      • ddev config --project-type=drupal9 --docroot=web --create-docroot

      You will see an output like this:

      Output

      Creating a new ddev project config in the current directory (/Users/sammy/d9test) Once completed, your configuration will be written to /Users/sammy/d9test/.ddev/config.yaml Created docroot at /Users/sammy/d9test/web You have specified a project type of drupal9 but no project of that type is found in /Users/sammy/d9test/web Ensuring write permissions for d9new No settings.php file exists, creating one Existing settings.php file includes settings.ddev.php Configuration complete. You may now run 'ddev start'.

      Because you passed --project-type=drupal9 to your ddev config command, DDEV created several subdirectories and files that represent the default organization for a Drupal website. Your project directory tree will now look like this:

      A Drupal 9 directory tree

      .
      ├── .ddev
      │   ├── .gitignore
      │   ├── config.yaml
      │   ├── db-build
      │   │   └── Dockerfile.example
      │   └── web-build
      │       └── Dockerfile.example
      └── web
          └── sites
              └── default
                  ├── .gitignore
                  ├── settings.ddev.php
                  └── settings.php
      
      6 directories, 7 files
      

      .ddev/ will be the main folder for the ddev configuration. web/ will be the docroot for your new project; it will contain several specific settings. files. You now have the initial scaffolding for your new Drupal project.

      Your next step is to initialize your platform, which will build the necessary containers and networking configurations. DDEV binds to ports 80 and 443, so if you are running a web server like Apache on your machine, or anything else that uses those ports, stop those services before continuing.

      Use the ddev start command to initialize your platform:

      This will build all the Docker-based containers for your project, which include a web container, a database container, and phpmyadmin. When the initialization completes you will see an output like this (your port number might differ):

      Output

      ... Successfully started d9test Project can be reached at http://d9test.ddev.site http://127.0.0.1:32773

      Note: Remember that DDEV is starting Docker containers behind the scenes here. If you want to view those containers or verify that they are running, you can always use the docker ps command:

      Alongside any other containers that you are currently running, you will find four new containers, each running a different image: php-myadmin, ddev-webserver, ddev-router, and ddev-dbserver-mariadb.

      ddev start has successfully built your containers and given you an output with two URLs. While this output says that your project “can be reached at http://d9test.ddev.site and http://127.0.0.1:32773,” visiting these URLs right now will throw an error. Starting with Drupal 8, the Drupal core and the contrib modules function like dependencies. Therefore, you’ll first need to finish installing Drupal using Composer, the package manager for PHP projects, before anything loads in your web browser.

      One of the most useful and elegant features of DDEV is that you can pass Composer commands through the DDEV CLI and into your containerized environment. This means that you can separate your machine’s specific configuration from your development environment. You no longer have to manage the various file path, dependency, and version issues that generally accompany local PHP development. Moreover, you can quickly context-switch between multiple projects using different frameworks and tech stacks with minimal effort.

      Use the ddev composer command to download drupal/recommended-project. This will download Drupal core, its libraries, and other related resources and then create a default project:

      • ddev composer create "drupal/recommended-project"

      Now download one final component called Drush, or Drupal Shell. This tutorial will only use one drush command, and this tutorial provides an alternative, but drush is a powerful CLI for Drupal development that can improve your efficiency.

      Use ddev composer to install drush:

      • ddev composer require "drush/drush"

      You have now built a default Drupal 9 project and installed drush. Now you will view your project in a browser and configure your website’s settings.

      Step 3 — Configuring Your Drupal 9 Project

      Now that you have installed Drupal 9 you can visit your new project in your browser. To do this, you can rerun ddev start and copy one of the two URLs that it outputs, or you can use the following command, which will automatically launch your site in a new browser window:

      You will encounter the standard Drupal installation wizard.

      Drupal 9 installer from browser

      Here you have two options. You can use this UI and follow the wizard through installation, or you can return to your terminal and pass a drush command through ddev. The latter option will automate the installation process and set admin as both your username and password.

      Option 1 — Using the Wizard

      Return to the wizard in your browser. Under Choose language select a language from the drop-down menu and click Save and continue. Now select an installation profile. You can choose between Standard, Minimal, and Demo. Make your choice and then click Save and continue. Drupal will automatically verify your requirements, set up a database, and install your site. Your last step is to customize a few configurations. Add a site name and a site email address that ends in your domain. Then choose a username and password. Choose a strong password and keep your credentials somewhere safe. Lastly, add a private email address that you regularly check, fill in the regional settings, and press Save and continue.

      Drupal 9 welcome message with a warning about permissions

      Your new site will load with a welcome message.

      Option 2 — Using the Command Line

      From your project’s root directory, run this ddev exec command to install a default Drupal site using drush:

      • ddev exec drush site:install --account-name=admin --account-pass=admin

      This will create your site just like the wizard will but with some boilerplate configurations. Your username and password will be admin.

      Now launch the site to view it in your browser:

      You are now ready to begin building your website, but it is considered best practice to check that your permissions are correct for the /sites/web/default directory. While you are working locally, this is not a significant concern, but if you transfer these permissions to a production server, they will pose a security risk.

      Step 4 — Checking Your Permissions

      During the wizard installation, or when your welcome page first loads, you might see a warning about the permissions settings on your /sites/web/default directory and one file inside that directory: settings.php.

      After the installation script runs, Drupal will try to set the web/sites/default directory permissions to read and execute for all groups: this is a 555 permissions setting. It will also attempt to set permissions for default/settings.php to read-only, or 444. If you encounter this warning, run these two chmod commands from your project’s root directory. Failure to do so poses a security risk:

      • chmod 555 web/sites/default
      • chmod 444 web/sites/default/settings.php

      To verify that you have the correct permissions, run this ls command with the a, l, h, and d switches:

      • ls -alhd web/sites/default web/sites/default/settings.php

      Check that your permissions match the following output:

      Output

      dr-xr-xr-x 8 sammy staff 256 Jul 21 12:56 web/sites/default -r--r--r-- 1 sammy staff 249 Jul 21 12:12 web/sites/default/settings.php

      You are now ready to develop a Drupal 9 website on your local machine.

      Step 5 — Creating Your First Post in Drupal

      To test some of Drupal’s functionality, you will now create a post using the web UI.

      From your site’s initial page, click the Content button on the upper menu’s left-hand edge. Now click the blue add content button. A new page will appear. Click Article, and another page will appear.

      Drupal 9 Create Article Prompt

      Add whatever title and content you like. You can add an image, too, like one of DigitalOcean’s wallpapers. When ready, click the blue save button.

      Your first post will appear on your website.

      Drupal 9 Created Post

      You are now developing a Drupal 9 website on your local machine without ever interacting with a server, thanks to Docker and DDEV. In the following step, you will manage the DDEV container to accomodate your workflow.

      Step 6 — Managing the DDEV Container

      When you have finished developing your project, or when you want to take a break, you can stop your DDEV container without worrying about data loss. DDEV can manage rapid context-switching among many projects; this is one of its most useful features. Your code and data are always preserved in your project directory, even after you stop or delete the DDEV container.

      To free up resources, you can stop DDEV at any time. From your project’s root directory, run the following command:

      DDEV is available globally, so you can run ddev commands from anywhere, as long as you specify the DDEV project:

      You can also view all your projects at once using ddev list:

      DDEV includes many other useful commands.

      You can restart DDEV and continue developing locally at any time.

      Conclusion

      In this tutorial, you used Docker and the power of containerization to develop a Drupal site locally, with the help of DDEV. DDEV also integrates well with numerous IDEs, and it provides built-in PHP debugging for Atom, PHPStorm, and Visual Studio Code (vscode). From here, you can also learn more about creating development environments for Drupal with DDEV or developing other PHP frameworks like WordPress.



      Source link

      Como instalar o Go e configurar um ambiente de programação local no Windows 10


      Introdução

      O Go é uma linguagem de programação que nasceu de frustrações no Google. Os desenvolvedores tinham que escolher continuamente entre uma linguagem eficaz na execução, mas que levava muito tempo para compilar ou escolher uma linguagem fácil de programar, mas que não era eficaz na produção. A linguagem Go foi projetada para ter todas as três vantagens disponíveis ao mesmo tempo: velocidade de compilação, facilidade da programação e a eficiência da execução na produção.

      Embora o Go seja uma linguagem de programação versátil que pode ser usada para muitos projetos de programação diferentes, ela é adequada particularmente para programas de sistemas de rede/distribuídos e ganhou uma reputação como “a linguagem da nuvem”. Essa linguagem se dedica a ajudar o programador moderno a produzir mais com um conjunto forte de ferramentas, tirando de cena os debates sobre a formatação e fazendo da formatação parte das especificações da linguagem, além de tornar a implantação fácil por meio da compilação em um binário único. A linguagem Go é fácil de aprender, com uma série pequena de palavras-chave que a tornam uma ótima escolha tanto para desenvolvedores iniciantes, quanto para experientes.

      Este tutorial guiará você na instalação do Go em sua máquina local do Windows 10 e na configuração de um ambiente de programação através da linha de comando.

      Pré-requisitos

      Você precisará de uma máquina com Windows 10 – com acesso administrativo e conectada à Internet.

      Passo 1 — Abrindo e configurando o PowerShell

      Você concluirá a maior parte da instalação e configuração em uma interface de linha de comando, que é uma maneira não gráfica de interagir com seu computador. Ou seja, em vez de clicar em botões, você vai digitar em texto e receberá o feedback de seu computador por texto também. A linha de comando, também conhecida como shell, pode ajudar você a modificar e automatizar muitas das tarefas que você faz em um computador diariamente. Trata-se de uma ferramenta essencial para os desenvolvedores de software.

      O PowerShell é um programa da Microsoft que fornece uma interface de shell de linha de comando. As tarefas administrativas são realizadas executando cmdlets, pronunciadas command-lets, que são classes especializadas do . NET Framework (software), que pode realizar as operações. De código aberto em agosto de 2016, o PowerShell agora está disponível para uso entre as plataformas, tanto para sistemas em Windows, como em Unix (incluindo Mac e Linux).

      Para encontrar o Windows PowerShell, clique com o botão direito no ícone Start (Iniciar), no canto inferior esquerdo de sua tela. Quando o menu aparecer, clique em Search (Pesquisa) e, em seguida, digite PowerShell na barra de busca. Quando as opções forem exibidas para você, clique com o botão direito no Windows PowerShell do aplicativo Desktop. Para os fins deste tutorial, selecione Run as Administrator (Executar como administrador). Quando a caixa de diálogo surgir com a questão Do you want to allow this app to make changes to your PC? (Deseja permitir que este aplicativo faça alterações no seu computador?) clique em Yes (Sim).

      Assim que fizer isso, verá uma interface baseada em texto que tem uma string de palavras que se parece com esta:

      Windows 10 PowerShell

      Troque de pasta de sistema, digitando o seguinte comando:

      Então, você estará em um diretório home, como o PS C:Userssammy.

      Para continuar com o processo de instalação, primeiro você deve definir as permissões através do PowerShell. Configurado para executar no modo mais seguro por padrão, existem alguns níveis de permissões que você pode configurar como administrador:

      • Restricted (Restrita) é a política de execução padrão. Sob este modo, você não poderá executar scripts e o PowerShell funcionará apenas como uma shell interativa.
      • AllSigned (Todas Assinadas) permitirá que você execute todos os scripts e arquivos de configuração assinados por um fornecedor confiável, o que significa que possivelmente poderia abrir sua máquina para o risco de executar scripts maliciosos que podem ser assinados por um fornecedor confiável.
      • RemoteSigned (Assinatura Remota), permitirá que você execute scripts e arquivos de configuração baixados da Internet - assinados por fornecedores confiáveis, abrindo novamente sua máquina a vulnerabilidades se esses scripts confiáveis, na verdade, forem maliciosos.
      • Unrestricted (Irrestrito) executará todos os scripts e arquivos de configuração baixados da Internet desde que você confirme que entendeu que o arquivo foi baixado da Internet. Neste caso, não será necessária uma assinatura digital. Dessa maneira, você pode estar abrindo sua máquina para o risco de executar scripts não assinados e potencialmente maliciosos baixados da Internet.

      Neste tutorial, você usará a política de execução RemoteSigned para definir as permissões do usuário atual. Isso permitirá que o PowerShell aceite scripts confiáveis sem criar as permissões tão amplas quanto elas seriam com uma permissão Unrestricted. Digite o seguinte no PowerShell:

      • Set-ExecutionPolicy -Scope CurrentUser

      O PowerShell solicitará que você forneça uma política de execução. Digite o seguinte para usar o RemoteSigned:

      Assim que pressionar ENTER, será solicitado que confirme a mudança para a política de execução. Digite a letra y para permitir que as alterações entrem em vigor. Você pode confirmar se isso funcionou, solicitando as permissões atuais na máquina:

      • Get-ExecutionPolicy -List

      Você deve receber um resultado que se parece com este:

      Output

      Scope ExecutionPolicy ----- --------------- MachinePolicy Undefined UserPolicy Undefined Process Undefined CurrentUser RemoteSigned LocalMachine Undefined

      Isso confirma que o usuário atual pode executar scripts confiáveis baixados da Internet. Agora, você pode seguir em frente para baixar os arquivos que precisaremos para configurar nosso ambiente de programação em Go.

      Passo 2 — Instalando o gerenciador de pacotes Chocolatey

      Um gerenciador de pacotes é uma coleção de ferramentas de software que funcionam para automatizar processos de instalação. Isso inclui a instalação inicial, o upgrade e a configuração do software, bem como a remoção de software - conforme necessário. Eles mantêm as instalações de software em um local central e podem manter todos os pacotes de software no sistema, nos formatos em que são habitualmente usados.

      O Chocolatey é um gerenciador de pacotes de linha de comando criado para o Windows que funciona como o apt-get funciona no Linux. Disponível em uma versão de código aberto, o Chocolatey ajudará você a instalar aplicativos e ferramentas rapidamente. Você o usará para baixar o que for necessário para o seu ambiente de desenvolvimento.

      Antes de instalar o script, leia-o para confirmar que está satisfeito com as alterações que ele fará em sua máquina. Para fazer isso, use o framework de script .NET para baixar e exibir o script do Chocolatey na janela do seu terminal.

      Comece criando um objeto WebClient chamado $script que compartilha as configurações de conexão da Internet com o Internet Explorer:

      • $script = New-Object Net.WebClient

      Examine as opções disponíveis, canalizando o objeto $script com uma | para a classe Get-Member:

      Isso retornará todos os membros (propriedades e métodos) deste objeto WebClient:

      Snippet of Output

      . . . DownloadFileAsync Method void DownloadFileAsync(uri address, string fileName), void DownloadFileAsync(ur... DownloadFileTaskAsync Method System.Threading.Tasks.Task DownloadFileTaskAsync(string address, string fileNa... DownloadString Method string DownloadString(string address), string DownloadString(uri address) #method we will use DownloadStringAsync Method void DownloadStringAsync(uri address), void DownloadStringAsync(uri address, Sy... DownloadStringTaskAsync Method System.Threading.Tasks.Task[string] DownloadStringTaskAsync(string address), Sy… . . .

      Examinando o resultado, você consegue identificar o método DownloadString, usado para exibir o script e a assinatura na janela do PowerShell. Use este método para verificar o script:

      • $script.DownloadString("https://chocolatey.org/install.ps1")

      Após verificar o script, instale o Chocolatey, digitando o seguinte no PowerShell:

      • iwr https://chocolatey.org/install.ps1 -UseBasicParsing | iex

      O cmdlet iwr, ou Invoke-WebRequest, permite que você extraia dados da Web. Isso passará o script para iex, ou o cmdlet Invoke-Expression, que executará o conteúdo do script e a instalação para o gerenciador de pacotes Chocolatey.

      Permita que o PowerShell instale o Chocolatey. Assim que ele estiver totalmente instalado, comece a instalar as ferramentas adicionais com o comando choco.

      Se você precisar fazer o upgrade do Chocolatey no futuro, execute o seguinte comando:

      Com o gerenciador de pacotes instalado, instale o resto do que for necessário para o ambiente de programação em Go.

      Passo 3 — Instalando o editor de texto Nano (opcional)

      Neste passo, você instalará o nano, um editor de texto que usa uma interface de linha de comando. Você pode usar o nano para escrever programas diretamente dentro do PowerShell. Este não é um passo obrigatório, já que é possível usar um editor de texto com uma interface de usuário gráfica, como o Bloco de notas. Este tutorial recomenda que use o nano, uma vez que ele ajudará você a se acostumar a usar o PowerShell.

      Use o Chocolatey para instalar o nano:

      O identificador -y confirma automaticamente que você deseja executar o script, sem ser solicitado a confirmar.

      Assim que o nano estiver instalado, utilize o comando nano para criar novos arquivos de texto. Você usará isso mais tarde neste tutorial para escrever seu primeiro programa Go.

      Passo 4 — Instalando o Go

      Assim como fez com o nano no passo anterior, você usará o Chocolatey para instalar o Go:

      Nota: como o go é uma palavra muito pequena, tornou-se comum usar golang como um termo para instalar pacotes e procurar artigos relacionados ao Go na Internet. O termo Golang nasceu do domínio para a linguagem Go, que é o golang.org.

      O PowerShell instalará o Go, gerando resultados dentro do PowerShell durante o processo. Assim que a instalação for concluída, você deve ver o seguinte resultado:

      Output

      Environment Vars (like PATH) have changed. Close/reopen your shell to see the changes (or in powershell/cmd.exe just type `refreshenv`). The install of golang was successful. Software installed as 'msi', install location is likely default. Chocolatey installed 1/1 packages. See the log for details (C:ProgramDatachocolateylogschocolatey.log).

      Com a instalação finalizada, você agora confirmará que Go está instalado. Para ver as alterações, feche e abra novamente o PowerShell como administrador e, em seguida, verifique a versão do Go disponível em sua máquina local:

      Você receberá um resultado parecido com este:

      Output

      go version go1.12.1 windows/amd643.7.0

      Assim que o Go estiver instalado, você poderá configurar um espaço de trabalho para seus projetos de desenvolvimento.

      Passo 5 — Criando seu espaço de trabalho em Go

      Agora que você tem o Chocolatey, o nano e Go instalados, crie seu espaço de trabalho de programação.

      O espaço de trabalho em Go terá dois diretórios como sua raiz:

      • src: o diretório que contém os arquivos fonte do Go. Um arquivo fonte é um arquivo que você escreve usando a linguagem de programação Go. Os arquivos fonte são usados pelo compilador Go para criar um arquivo binário executável.
      • bin: o diretório que contém executáveis compilados e instalados pelas ferramentas do Go. Os executáveis são arquivos binários que são executados no seu sistema e executam tarefas. Esses são programas tipicamente compilados pelo seu código fonte ou outro código fonte baixado do Go.

      O subdiretório src pode conter vários repositórios de controle de versão (tais como o Git, o Mercurial, e o Bazaar). Você verá diretórios como o github.com ou golang.org quando seu programa importar bibliotecas de terceiros. Se estiver usando um repositório de códigos como o github.com, você também colocará seus projetos e arquivos fonte sob aquele diretório. Isso permite uma importação canônica do código no seu projeto. As importações Canônicas são importações que referenciam um pacote totalmente qualificado, como o github.com/digitalocean/godo.

      Aqui está como um espaço de trabalho típico se parece:

      .
      ├── bin
      │   ├── buffalo                                      # command executable
      │   ├── dlv                                          # command executable
      │   └── packr                                        # command executable
      └── src
          └── github.com
              └── digitalocean
                  └── godo
                      ├── .git                            # Git repository metadata
                      ├── account.go                      # package source
                      ├── account_test.go                 # test source
                      ├── ...
                      ├── timestamp.go
                      ├── timestamp_test.go
                      └── util
                          ├── droplet.go
                          └── droplet_test.go
      

      A partir da versão 1.8, o diretório padrão para o espaço de trabalho do Go é o seu diretório home de usuário com um subdiretório go, ou $HOME/go. Se estiver usando uma versão anterior à versão 1.8 do Go, ainda é considerada como melhor prática usar o local $HOME/go como o seu espaço de trabalho.

      Emita o comando seguinte para navegar até o diretório $HOME:

      Em seguida, crie a estrutura de diretório para seu espaço de trabalho do Go:

      Isso garantirá que a seguinte estrutura de diretório em funcionamento:

      └── $HOME
          └── go
              ├── bin
              └── src
      

      Antes do Go 1.8, era necessário definir uma variável local do ambiente chamada $GOPATH. Embora já não seja necessário fazer isso, ainda é considerada uma boa prática, já que muitas ferramentas de terceiros ainda precisam que seja definida.

      Como você usou o Chocolatey para a instalação, essa variável de ambiente já deverá estar definida. Verifique isso com o seguinte comando:

      Você deve ver o seguinte resultado, com seu nome de usuário no lugar de sammy:

      Output

      C:Userssammygo

      Quando o Go compila e instala ferramentas, ele as coloca no diretório $GOPATH/bin. Por conveniência, é comum adicionar o subdiretório bin do espaço de trabalho ao seu $PATH. É possível fazer isso usando o comando setx no PowerShell:

      • setx PATH "$($env:path);$GOPATHbin"

      Isso permitirá que você execute qualquer programa que compilar ou baixar através das ferramentas Go - em qualquer lugar em seu sistema.

      Agora que você tem a raiz do espaço de trabalho criada e sua variável de ambiente $GOPATH definida, crie seus projetos futuros com a seguinte estrutura de diretório. Este exemplo supõe que esteja usando o github.com como seu repositório:

      $GOPATH/src/github.com/username/project
      

      Se estivesse trabalhando no projeto https://github.com/digitalocean/godo, você o colocaria no seguinte diretório:

      $GOPATH/src/github.com/digitalocean/godo
      

      Estruturar seus projetos dessa maneira irá torná-los disponíveis com a ferramenta go get. Isso também ajudará mais adiante com a legibilidade.

      É possível verificar isso usando o comando go get para buscar a biblioteca godo:

      • go get github.com/digitalocean/godo

      Nota: se não tiver o git instalado, o Windows abrirá uma caixa de diálogo perguntando se deseja instalá-lo. Clique em Yes para continuar e siga as instruções de instalação.

      É possível ver se ele baixou corretamente o pacote godo, listando o diretório:

      • ls $env:GOPATH/src/github.com/digitalocean/godo

      Você receberá um resultado semelhante a este:

      Output

      Directory: C:Userssammygosrcgithub.comdigitaloceangodo Mode LastWriteTime Length Name ---- ------------- ------ ---- d----- 4/10/2019 2:59 PM util -a---- 4/10/2019 2:59 PM 9 .gitignore -a---- 4/10/2019 2:59 PM 69 .travis.yml -a---- 4/10/2019 2:59 PM 1592 account.go -a---- 4/10/2019 2:59 PM 1679 account_test.go -rw-r--r-- 1 sammy staff 2892 Apr 5 15:56 CHANGELOG.md -rw-r--r-- 1 sammy staff 1851 Apr 5 15:56 CONTRIBUTING.md . . . -a---- 4/10/2019 2:59 PM 5076 vpcs.go -a---- 4/10/2019 2:59 PM 4309 vpcs_test.go

      Neste passo, você criou um espaço de trabalho em Go e configurou as variáveis do ambiente necessárias. No próximo passo, você testará o espaço de trabalho com algum código.

      Passo 6 — Criando um programa simples

      Agora que você tem o espaço de trabalho em Go configurado, crie um programa “Hello, World!” simples. Isso garantirá que seu espaço de trabalho fique devidamente configurado, bem como dará a você a oportunidade de se familiarizar com o Go. Como está criando um único arquivo fonte em Go e não um projeto real, você não precisa estar em seu espaço de trabalho para fazer isso.

      Do seu diretório home, abra um editor de texto de linha de comando, como o nano e crie um novo arquivo:

      Assim que o arquivo de texto abrir no nano, digite seu programa:

      hello.go

      package main
      
      import "fmt"
      
      func main() {
          fmt.Println("Hello, World!")
      }
      

      Saia do nano, pressionando as teclas CTRL e X. Quando solicitado a salvar o arquivo, pressione Y e, então, ENTER.

      Esse código usará o pacote fmt e chamará a função Println com o Hello, World! como argumento. Isso fará a frase Hello, World! imprimir no terminal quando o programa for executado.

      Assim que sair do nano e retornar ao seu shell, execute o programa:

      O programa hello.go que você acabou de criar deve fazer com que o PowerShell produza o seguinte resultado:

      Output

      Hello, World!

      Neste passo, você usou um programa básico para verificar se seu espaço de trabalho em Go foi configurado corretamente.

      Conclusão

      Parabéns! Neste ponto, você tem um espaço de trabalho de programação em GO configurado em sua máquina local (com Windows) e pode começar um projeto de codificação!



      Source link

      Cómo instalar Go y configurar un entorno de programación local en macOS


      Introducción

      Go es un lenguaje de programación que se creó a partir de una frustración en Google. Continuamente, los desarrolladores tenían que elegir entre un lenguaje que se ejecutaba de forma eficiente, pero tardaba mucho en realizar compilaciones, y uno que ofrecía programación sencilla, pero se ejecutaba de forma ineficiente en la producción. Go se diseñó para tener las tres características disponibles al mismo tiempo: compilación rápida, facilidad de programación y ejecución eficiente en producción.

      Si bien Go es un lenguaje de programación versátil que puede utilizarse para muchos proyectos de programación distintos, es especialmente adecuado para los programas de redes o de sistemas distribuidos, y se ha ganado la reputación de “lenguaje de la nube”. Se centra en ayudar al programador moderno a ampliar sus capacidades con un conjunto sólido de herramientas, eliminar debates sobre el formato al incorporarlo en las especificaciones del lenguaje y permitir una implementación sencilla al realizar compilaciones en un único binario. Aprender a usar Go es sencillo, ya que cuenta con un conjunto de palabras claves muy reducido, por lo que es una excelente elección tanto para desarrolladores principiantes como experimentados.

      Este tutorial le servirá como guía para la instalación de Go en su máquina macOS local y la configuración de un espacio de trabajo de programación a través de la línea de comandos.

      Requisitos previos

      Necesitará un equipo con macOS que disponga de conexión a Internet y acceso administrativo.

      Paso 1: Abrir Terminal

      Completaremos la mayor parte de nuestra instalación y configuración en la línea de comandos, que es una alternativa para interactuar con la computadora sin gráficos. Es decir que, en lugar de hacer clic en botones, escribirá texto y recibirá retroalimentación de la computadora, también en texto. La línea de comandos, también conocida como shell, puede ayudar a modificar y automatizar muchas de las tareas que se realizan en un equipo a diario, y es una herramienta esencial para los desarrolladores de software.

      Terminal, de macOS, es una aplicación que puede usar para acceder a la interfaz de la línea de comandos. Al igual que cualquier otra aplicación, la puede encontrar accediendo a Finder, dirigiéndose a la carpeta Aplicaciones e ingresando en la carpeta Utilidades. Allí, haga doble clic en Terminal para abrirla como cualquier otra aplicación. De forma alternativa, puede usar Spotlight manteniendo presionadas la tecla CMD y la BARRA ESPACIADORA, y escribiendo “Terminal” en el cuadro que aparece para encontrarla.

      Terminal de macOS

      Hay muchos más comandos de Terminal que puede aprender para realizar tareas que tengan efectos más potentes. A través del artículo “Introducción al terminal de Linux“ puede orientarse mejor respecto del terminal de Linux, que es similar al de macOS.

      Ahora que abrió Terminal, puede descargar e instalar Xcode, un paquete de herramientas para desarrolladores que necesitará para instalar Go.

      Paso 2: Instalar Xcode

      Xcode es un entorno de desarrollo integrado (IDE) conformado por herramientas de desarrollo de software para macOS. Puede verificar si Xcode ya está instalado escribiendo lo siguiente en la ventana de Terminal:

      El siguiente resultado indica que Xcode está instalado:

      Output

      /Library/Developer/CommandLineTools

      Si aparece un error, instale Xcode desde App Store en su navegador web y acepte las opciones predeterminadas.

      Una vez que Xcode esté instalado, regrese a la ventana de Terminal. A continuación, deberá instalar la aplicación de herramientas de línea de comandos separada de Xcode, lo que podrá hacer escribiendo lo siguiente:

      En este punto, Xcode y su aplicación de herramientas de la línea de comandos están totalmente instalados, y estamos listos para instalar el administrador de paquetes Homebrew.

      Paso 3: Instalar y configurar Homebrew

      Si bien Terminal de macOS tiene mucho de la funcionalidad de los terminales de Linux y otros sistemas de Unix, no se entrega con un administrador de paquetes que admita prácticas recomendadas. Un administrador de paquetes es un conjunto de herramientas de software que automatizan los procesos de instalación, entre los que se incluyen la instalación inicial de software, su actualización y configuración, y su eliminación según sea necesario. Conservan las instalaciones en una ubicación central y pueden mantener todos los paquetes de software del sistema en formatos que se utilizan comúnmente. Homebrew proporciona un sistema de gestión de paquetes de software gratuito y de código abierto que simplifica la instalación de software en macOS.

      Para instalar Homebrew, escriba lo siguiente en la ventana de su terminal:

      • /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

      Homebrew está hecho con Ruby, por lo que modificará la ruta a Ruby de su computadora. El comando curl extrae un secuencia de comandos de la URL especificada. Esta secuencia de comandos proporcionará una explicación de lo que hará y luego pausará el proceso para solicitar su confirmación. Esto le proporciona mucha información sobre lo que la secuencia de comandos hará en el sistema y le da la oportunidad de verificar el proceso.

      Si debe ingresar su contraseña, tenga en cuenta que las pulsaciones de teclas no se mostrarán en la ventana de Terminal, pero sí se registrarán. Simplemente, pulse la tecla Intro una vez que ingrese la contraseña. Alternativamente, presione la letra y (“sí”) cuando se solicite para confirmar la instalación.

      Veamos los indicadores relacionados con el comando curl:

      • El indicador -f o --fail indica a la ventana de Terminal que no proporcione resultados de documentos HTML sobre errores del servidor.
      • El indicador -s o --silent silencia curl para que no muestre el medidor de progreso y, en combinación con el indicador -S o --show-error, controla que curl muestre un mensaje de error si falla.
      • El indicador -L o --location indica a curl que vuelva a realizar la solicitud a un nuevo lugar si el servidor indica que la página solicitada se movió a una ubicación distinta.

      Una vez que el proceso de instalación esté completo, dispondremos el directorio de Homebrew en la parte superior de la variable de entorno PATH. Esto garantizará que las instalaciones de Homebrew se realicen con herramientas que macOS pueda seleccionar automáticamente y que podrían entrar en conflicto con el entorno de desarrollo que crearemos.

      Debe crear o abrir el archivo ~/.bash_profile con el editor de texto de la línea de comandos *nano *usando el comando nano:

      Una vez que el archivo se abra en la ventana de Terminal, escriba lo siguiente:

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

      Para guardar sus cambios, mantenga presionadas las teclas CTRL y o, y luego pulse INTRO cuando se solicite. Ahora, puede cerrar nano manteniendo presionadas la tecla CTRL y la letra x.

      Active estos cambios ejecutando lo siguiente en Terminal:

      Una vez que lo haga, los cambios que realizó en la variable de entorno PATH surtirán efecto.

      Puede verificar que Homebrew se haya instalado correctamente escribiendo lo siguiente:

      Si no se requieren actualizaciones en este momento, el resultado de Terminal será el siguiente:

      Output

      Your system is ready to brew.

      También puede recibir una advertencia para ejecutar otro comando, como brew update, para garantizar que su instalación de Homebrew esté actualizada.

      Una vez que Homebrew esté listo, podrá instalar Go.

      Paso 1: Instalar Go

      Puede usar Homebrew para buscar todos los paquetes disponibles con el comando brew search. Para los fines de este tutorial, buscará paquetes o módulos relacionados con Go:

      Nota: Para este tutorial no se utiliza brew search go, dado que con este comando se muestran demasiados resultados. Debido a que go es una palabra muy pequeña y coincidiría con muchos paquetes, una opción que se ha vuelto común es la de usar golang como término de búsqueda. También se usa con frecuencia para buscar artículos relacionados con Go en Internet. El término Golang surgió del dominio de Go, golang.org.

      Terminal mostrará una lista de lo que puede instalar:

      Output

      golang golang-migrate

      Go será uno de los elementos de la lista. Proceda a instalarlo:

      En la ventana de Terminal encontrará información sobre el proceso de instalación de Go. Es posible que la instalación tarde unos minutos en completarse.

      Para verificar la versión de Go que instaló, escriba lo siguiente:

      Esto mostrará la versión específica de Go instalada, que por defecto será la más reciente y estable disponible.

      En el futuro, para actualizar Go, puede ejecutar los siguientes comandos a fin de actualizar Homebrew primero y luego Go. No es necesario hacerlo ahora, ya que acaba de instalar la versión más reciente:

      • brew update
      • brew upgrade golang

      El comando brew update actualizará las fórmulas para Homebrew, lo cual garantizará que cuente con la información más reciente de los paquetes que desee instalar. El comando brew update golang actualizará el paquete golang a la última versión del paquete.

      Es recomendable asegurarse de que la versión de Go esté actualizada.

      Una vez que instale Go en su computadora, estará listo para crear un espacio de trabajo para sus proyectos de Go.

      Paso 5: Crear su espacio de trabajo de Go

      Ahora que instaló Xcode, Homebrew y Go, podrá crear su espacio de trabajo de programación.

      El espacio de trabajo de Go contendrá dos directorios en su root:

      • src: directorio que contiene los archivos de origen de Go. Un archivo de origen es un archivo que se escribe con el lenguaje de programación Go. El compilador de Go utiliza los archivos de origen para crear un archivo binario ejecutable.
      • bin: directorio que contiene ejecutables compilados e instalados con las herramientas de Go. Los ejecutables son archivos binarios que se ejecutan en el sistema y realizan tareas. Normalmente, son programas compilados por su código fuente propio u otro código fuente de Go descargado.

      El subdirectorio src puede contener varios repositorios de control de versiones (como Git, Mercurial y Bazar). Verá directorios como github.com o golang.org cuando su programa importe bibliotecas de terceros. Si usa un repositorio de códigos como github.com, también dispondrá sus proyectos y archivos de origen en ese directorio. Esto permite una importación canónica de código en su proyecto. Las importaciones canónicas son las que hacen referencia a un paquete completo, como github.com/digitalocean/godo.

      Un espacio de trabajo típico puede tener el siguiente aspecto:

      .
      ├── bin
      │   ├── buffalo                                      # command executable
      │   ├── dlv                                          # command executable
      │   └── packr                                        # command executable
      └── src
          └── github.com
              └── digitalocean
                  └── godo
                      ├── .git                            # Git reposistory metadata
                      ├── account.go                      # package source
                      ├── account_test.go                 # test source
                      ├── ...
                      ├── timestamp.go
                      ├── timestamp_test.go
                      └── util
                          ├── droplet.go
                          └── droplet_test.go
      

      El directorio predeterminado para el espacio de trabajo de Go a partir de la versión 1.8 es su directorio principal de usuario con un subdirectorio go o $HOME/go. Si usa una versión de Go anterior a la 1.8, de todos modos se recomienda que utilice la ubicación $HOME/go para su espacio de trabajo.

      Emita el siguiente comando para crear la estructura de directorios para su espacio de trabajo de Go:

      • mkdir -p $HOME/go/{bin,src}

      La opción -p indica a mkdir que cree todos los parents en el directorio, incluso si todavía no existen. Con {bin,src}, se crea un conjunto de argumentos en mkdir y se indica a este que cree los directorios bin y src.

      Esto garantizará la creación de la siguiente estructura de directorios:

      └── $HOME
          └── go
              ├── bin
              └── src
      

      Antes de la versión 1.8 de Go, se debía establecer una variable de entorno local llamada $GOPATH. Si bien ya no es explícitamente necesario hacerlo, sigue siendo recomendable porque muchas herramientas de terceros aún dependen de que esta variable esté configurada.

      Puede configurar su $GOPATH al añadirlo a ~/.bash_profile.

      Primero, abra ~/.bash_profile con nano o con el editor de texto que elija:

      Configure su $GOPATH añadiendo lo siguiente al archivo:

      ~/.bash_profile

      export GOPATH=$HOME/go
      

      Cuando Go compile e instale herramientas, las dispondrá en el directorio $GOPATH/bin. Para mayor comodidad, es común añadir el subdirectorio /bin del espacio de trabajo a su PATH en ~/.bash_profile:

      ~/.bash_profile

      export PATH=$PATH:$GOPATH/bin
      

      Ahora, debería contar con las siguientes entradas en su ~/.bash_profile:

      ~/.bash_profile

      export GOPATH=$HOME/go
      export PATH=$PATH:$GOPATH/bin
      

      Esto le permitirá ejecutar cualquier programa que realice compilaciones o descargas con las herramientas de Go en cualquier lugar de su sistema.

      Para actualizar su shell, emita el siguiente comando a fin de cargar las variables globales que acaba de crear:

      Puede verificar que $PATH esté actualizado al usando el comando echo e inspeccionando el resultado:

      Debería ver su $GOPATH/bin, que aparecerá en el directorio principal. Si iniciara sesión como sammy, vería /Users/sammy/go/bin en la ruta.

      Output

      /Users/sammy/go/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

      Ahora que creó el root del espacio de trabajo y estableció la variable de entorno $GOPATH establecida, creará sus futuros proyectos con la estructura de directorios siguiente. En este ejemplo, se supone que usa github.com como repositorio:

      $GOPATH/src/github.com/username/project
      

      Si trabajara en el proyecto https://github.com/digitalocean/godo, lo dispondría en el siguiente directorio:

      $GOPATH/src/github.com/digitalocean/godo
      

      Si estructura sus proyectos de esta manera, estarán disponibles con la herramienta go get. También facilitará la lectura más adelante.

      Puede verificar esto usando el comando go get para buscar la biblioteca godo:

      • go get github.com/digitalocean/godo

      Podemos ver que descargó correctamente el paquete godo haciendo un listado del directorio:

      • ls -l $GOPATH/src/github.com/digitalocean/godo

      Recibirá un resultado similar a este:

      Output

      -rw-r--r-- 1 sammy staff 2892 Apr 5 15:56 CHANGELOG.md -rw-r--r-- 1 sammy staff 1851 Apr 5 15:56 CONTRIBUTING.md . . . -rw-r--r-- 1 sammy staff 4893 Apr 5 15:56 vpcs.go -rw-r--r-- 1 sammy staff 4091 Apr 5 15:56 vpcs_test.go

      A través de este paso, creó un espacio de trabajo de Go y configuró las variables de entorno necesarias. En el siguiente paso, probaremos el espacio de trabajo con código.

      Paso 6: Crear un programa simple

      Ahora que configuró su espacio de trabajo de Go, es hora de crear un programa “Hello, World!” simple. Esto garantizará que su espacio de trabajo funcione y le brindará la oportunidad de familiarizarse más con Go.

      Debido a que creará un único archivo de origen de Go, no un proyecto real, no es necesario que se encuentre en su espacio de trabajo para hacerlo.

      Desde el directorio principal, abra un editor de texto de línea de comandos, como nano y cree un archivo nuevo:

      Una vez que el archivo de texto se abra en Terminal, escriba su programa:

      package main
      
      import "fmt"
      
      func main() {
          fmt.Println("Hello, World!")
      }
      

      Cierre nano con las teclas control y x, y cuando se le solicite guardar el archivo pulse y.

      Este código usará el paquete fmt e invocará la función Println con Hello, World! como argumento. Esto hará que se imprima la frase Hello, World! en el terminal cuando se ejecute el programa.

      Una vez que salga de nano y regrese a su shell, ejecute el programa:

      El programa hello.go que acaba de crear hará que el terminal genere el siguiente resultado:

      Output

      Hello, World!

      En este paso, utilizó un programa básico para verificar que su espacio de trabajo de Go se configure de forma correcta.

      Conclusión

      ¡Felicitaciones! En este punto, contará con un espacio de trabajo de programación de Go configurado en su máquina local con macOS y podrá iniciar un proyecto de codificación.



      Source link