✅ Новости WEB и WordPress, темы, плагины. Здесь мы делимся советами и лучшими решениями для веб-сайтов.

Учебник по Bash для разработчиков WordPress

44

Время от времени я заканчиваю тем, что устанавливаю часть программного обеспечения через Composer или размещаю некоторые из своих двоичных файлов в каталогах, отличных от обычных мест, в которых macOS ожидает их найти.

То есть, если вы запускаете приложение из терминала или приложение с графическим интерфейсом ожидает, что оно будет находиться в определенном месте на диске, то оно, скорее всего, будет ожидать его в одном из пяти мест:

  1. /USR/бен
  2. /бин
  3. /usr/sbin
  4. /сбин
  5. /USR/местные/бен

Но, как я уже сказал, со временем мы в конечном итоге устанавливаем что-то с помощью сторонних инструментов или устанавливаем что-то, что помещает двоичные файлы за пределы одного из этих каталогов.

Показательный пример: что произойдет, если вы хотите установить WP-CLI глобально? Или что, если вы хотите использовать версию MySQL, которая поставляется с MAMP?

В этих случаях эти двоичные файлы не будут включены ни в один из вышеупомянутых каталогов. Когда это произойдет, вы должны изменить свой профиль. Если вы никогда этого не делали, это может быть пугающе. И это может стать грязным, если вы не будете делать это методично с течением времени.

Итак, вот учебник по Bash для разработчиков WordPress о том, что такое ваш bash_profile и как с его помощью управлять сторонним программным обеспечением.

Bash для разработчиков WordPress

Прежде чем перейти к настройке путей для другого программного обеспечения и т.п., важно отметить, что у вас может не быть bash_profile. То есть, если вы используете терминал, то вы можете использовать другой тип оболочки, и если это так, вы уже далеко впереди этого поста.

С другой стороны, если вы используете оболочку терминала без изменений, которая поставляется с macOS. Но во-первых, что такое оболочка?

В вычислительной технике оболочка представляет собой пользовательский интерфейс для доступа к службам операционной системы. Как правило, оболочки операционной системы используют либо интерфейс командной строки (CLI), либо графический пользовательский интерфейс (GUI), в зависимости от роли компьютера и конкретной операции.

И если вы используете Terminal без модификаций, то, скорее всего, вы используете Bash.

Наконец, все настройки для каждого запуска терминала сохраняются в соответствующем файле профиля оболочки. В этом случае все хранится в .bash_profile.

Чтобы все было настроено именно так, как нам нужно, нам нужно внести некоторые изменения (или даже инициализировать его), чтобы все заработало.

Обратите внимание , что после каждого изменения, внесенного в .bash_profile, вы можете запустить:

$ source ~/.bash_profile

Таким образом, все новые внесенные изменения загружаются для вашего текущего сеанса терминала.

Начальный профиль

Всякий раз, когда я настраиваю свой первоначальный профиль, он всегда выглядит одинаково. То есть он включает в себя пять каталогов, которые я перечислил выше :

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

Однако вы заметите, что в конце переменной PATH есть что-то похожее на другую переменную. В частности, я говорю о $PATH. И это важно понимать, потому что это влияет на то, как программы будут найдены в терминале.

Что такое $PATH?

Во-первых, представьте, что это был способ для оболочки или операционной системы искать двоичные файлы. Поэтому, если у вас есть все пять указанных выше путей, операционная система будет искать в этих каталогах определенные двоичные файлы.

Чтобы попробовать, запустите терминал и введите:

$ which clear

И это покажет вам, где он находит  исполняемый файл clear в вашей системе (где clear просто стирает экран терминала 🙂).

Далее обратите внимание, что $PATH  определен в конце строки в приведенном выше примере. Когда вы измените свой профиль, вам понравится работать с ним. Короче говоря, он определяет порядок, в котором следует искать каталоги.

Итак, в приведенном выше примере Терминал будет искать двоичный файл, соответствующий тому, что вы хотите выполнить, начиная с /usr/bin и заканчивая /usr/local/bin.

Что означает «экспорт»?

Если вы не используете Bash, я не могу комментировать эквивалент, но в контексте Bash экспорт — это способ явного присвоения значения переменной PATH, определенной в приведенном выше описании.

То есть в программировании мы привыкли создавать переменную и присваивать ей значение. Это похоже на то. Однако мы немного более явны. Проще говоря, мы присваиваем переменной слева значение справа. И это устанавливается с помощью экспорта.

Итак, если вы хотите увидеть, что  содержит $PATH, введите это в свой терминал:

$ echo $PATH

Затем вы увидите значение пяти путей, определенных до сих пор.

Учебник по Bash для разработчиков WordPress

Однако со временем мы, естественно, хотим добавить к этому больше.

Пакеты композитора

Я говорил об установке Composer и о том, как устанавливать пакеты с его помощью в предыдущих постах. Но предположим, что ради аргумента мы хотим установить WP-CLI, а затем добавить его так, чтобы к нему можно было получить доступ через терминал в любом месте нашей системы. И все это можно сделать, используя информацию профиля выше.

Предполагая, что вы установили composer, и ваш composer.json выглядит так (наряду с несколькими другими вещами, но пока игнорируйте их):

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

И вы запустили:

$ composer update

Затем был установлен WP-CLI. Но когда вы пытаетесь запустить его из терминала за пределами его установочного каталога, он не работает. Так что дает?

Учебник по Bash для разработчиков WordPress

Путь к двоичным файлам, установленным через композитор, не указан в нашем .bash_profile. Чтобы исправить это, добавьте новую строку в .bash_profile, но убедитесь, что вы не переопределяете то, что уже существует.

То есть, поскольку PATH существует, мы можем просто установить $PATH в конце нашей новой строки и добавить к ней наш каталог Composer. Таким образом, мы не дублируем каталоги или значения в переменной всякий раз, когда мы их экспортируем, и мы устанавливаем приоритет поиска в каталогах.

Например :

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

export PATH

Затем, когда вы попытаетесь запустить wp из любой точки командной строки, он должен работать, и вы сможете ввести:

$ which wp

И посмотрите, что он исходит из каталога composer/vendor/bin. О, и обратите внимание, что $HOME — это переменная, которая ссылается на домашний каталог текущего пользователя. Это можно изменить, но это выходит за рамки этого поста.

Программное обеспечение МАМП

На этом этапе версия PHP, MySQL или любые языки и инструменты, которые вы решите использовать, изменятся. Я предоставил несколько разных сообщений о MAMP (1, 2, 3 ), поэтому я решил использовать это в качестве примера.

В частности, я хочу использовать MAMP-версию PHP и MySQL, а не ту, что поставляется с системой. Но на этом этапе вы можете запустить:

$ which php

А также:

$ which mysql

И посмотрите, что они оба исходят из системных каталогов. Это необходимо изменить, чтобы наш доступ к командной строке использовал ту же версию программного обеспечения, что и наше приложение.

Для этого мы можем добавить в наш .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

Однако здесь есть что импортировать: я поместил двоичный каталог MAMP PHP перед значениями $PATH. Это потому, что я хочу, чтобы система сначала искала здесь (а не в системных каталогах).

Однако есть вторая проблема. MAMP поставляется с несколькими разными версиями PHP, и вероятность того, что мы захотим использовать одну и ту же версию каждый раз, невелика. Итак, нам нужен способ использовать любую версию, выбранную в MAMP, верно?

Один из способов сделать это — использовать псевдоним.

Что насчет псевдонимов?

Псевдонимы можно рассматривать как ярлык — это быстрый способ выполнить определенную команду или программу без необходимости вводить полное имя программы.

В случае MAMP и PHP есть несколько версий PHP, которые мы могли бы использовать. На момент написания этой статьи у меня было:

  • 5.4.45
  • 5.5.38
  • 5.6.28
  • 7.0.13
  • 7.1.0

Все доступно в моей системе. Я вряд ли захочу использовать их все (и не все из них в моем $PATH ), но может быть шанс, что я захочу выполнить предыдущую версию PHP, чтобы протестировать что-то конкретное.

Итак, как мы можем это сделать? Мы можем использовать псевдонимы. И если вы перейдете к /Applications/MAMP/bin/php , вы должны увидеть все версии PHP, которые включены в вашу версию MAMP.

Учебник по Bash для разработчиков WordPress

Теперь мы настроим псевдонимы для каждого из них:

## 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"

И мы можем запустить каждый из них независимо от другого в терминале, выполнив команду вроде:

$ php54 -v

Это должно показать вам, какая версия PHP выполняется на основе псевдонима, который вы определили в .bash_profile.

И, наконец, обратите внимание, что в конце вы увидите строку, добавленную в .bash_profile :

source ~/.profile

Это делается системой автоматически, когда вы начинаете работать с интерактивной оболочкой. Вы можете удалить его, но он снова будет добавлен вверху файла, так что не переживайте.

И, для справки, окончательная версия моего .bash_profile выглядит так :

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

Вы увидите, что я также добавил строки для MySQL и MySQLAdmin чуть выше строки, определяющей псевдонимы (хотя ваши, вероятно, будут выглядеть иначе).

Несмотря на это, это общая идея, хотя ваша, вероятно, будет выглядеть по-другому.

Более продвинутый Bash

Есть люди, которые гораздо более продвинуты в Bash, чем я (и даже просмотр других сайтов о том, что сделали некоторые люди, может быть впечатляющим).

Но если вы разработчик WordPress, практически не знакомый с Bash, инструментами командной строки, настройками путей и т. д., то это то, что должно быть рабочим справочником и достойной отправной точкой.

Источник записи: tommcfarlin.com

Этот веб-сайт использует файлы cookie для улучшения вашего опыта. Мы предполагаем, что вы согласны с этим, но вы можете отказаться, если хотите. Принимаю Подробнее