Как установить PHP 7.3 на веб-сервере Arch Linux
Предварительные условия Сервер Vultr, работающий до последней версии Arch Linux (см. Эту статью). Работающий веб-сервер с доступом Apache или Nginx Sudo. Команды требуют
На Arch Linux официальными репозиториями являются: core, extra и community. Эти пакеты уже скомпилированы, и они устанавливаются через pacman
. По большей части обычные пользователи могут игнорировать, что эти 3 официальных репозитория являются отдельными. Ядро содержит наиболее важные пакеты, такие как ядро, процесс загрузки, сеть, управление пакетами, openssh и так далее. Он также предъявляет более строгие требования к более тщательному тестированию перед выпуском новых версий. Extra содержит другие популярные пакеты, которые не так критичны, такие как X-сервер, менеджеры окон или веб-браузеры. Сообщество содержит менее популярные пакеты. Только доверенные пользователи (около 60 активных пользователей, за которых проголосовали другие доверенные пользователи) имеют право вносить изменения в официальные репозитории.
В 2019 году в официальных репозиториях на https://www.archlinux.org/packages было размещено около 11 000 пакетов . Но есть много других программ, доступных в Linux. Таким образом, AUR (Arch Linux User Repository) существует, поэтому любой пользователь Arch может добавить новую программу и стать ее сопровождающим, или принять «осиротевший» пакет без текущего сопровождающего. В AUR есть около 55 000 пакетов по адресу https://aur.archlinux.org/ .
Есть 3 критических различия с AUR:
PKGBUILD
сценарий оболочки для автоматического создания пакета, а не скомпилированные двоичные файлы. (Иногда он также содержит небольшие текстовые исправления или сценарии установки / обновления / удаления оболочки). Это проделало огромную работу, позволив любому пользователю внести свой вклад, одновременно уменьшив вероятность того, что кто-то сможет распространять вредоносный код. Сообщество Arch по-прежнему весьма полезно в отношении проблем с пакетами AUR, но отмечается, что вы используете их на свой страх и риск. Поскольку все, что он предоставляет, - это PKGBUILD
, в конечном счете, ваша ответственность за проверку того, что PKGBUILD
вы собираетесь использовать. (Конечно, многие пользователи не делают этого и просто полагаются на других, чтобы следить.)pacman
напрямую не взаимодействует с AUR, вы обязаны обновить пакеты AUR. Когда вы периодически pacman
обновляете всю систему , она не будет автоматически загружать обновления в PKGBUILD
файлы AUR , компилировать их и устанавливать для вас.Хотя эта статья посвящена сборке пакетов из AUR, те же методы можно использовать для сборки пакетов из официальных репозиториев самостоятельно.
PKGBUILD
По сравнению с .spec
файлом, который используется во многих других дистрибутивах, a PKGBUILD
представляет собой короткий и простой сценарий оболочки. Хотя некоторые пакеты более сложны, они могут быть похожи на следующее:
pkgname=NAME
pkgver=VERSION
pkgrel=1
pkgdesc='DESCRIPTION'
url=http://example.com/
arch=('x86_64')
license=('GPL2')
source=(http://example.com/downloads/${pkgname}-${pkgver}.tar.gz)
sha256sums=('f0a90db8694fb34685ecd645d97d728b880a6c15c95e7d0700596028bd8bc0f9')
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
./configure
make
}
package() {
cd "${srcdir}/${pkgname}-${pkgver}"
make install
}
Этот документ относится к:
PKGNAME
: Название пакетаPKGVER
: Версия пакета (почти всегда совпадающая с номером версии апстрима)PKGREL
: «Версия» Arch PKGBUILD
для конкретного PKGVER
(обычно 1, но увеличивается, если необходимо внести изменения в PKGBUILD
промежуточные выпуски)ARCH
: Архитектура, на которой может быть построен пакет (несколько устаревший, поскольку официальные репозитории Arch Linux поддерживают только «x86_64» (64-разрядные процессоры), но пакеты AUR по-прежнему могут поддерживать «i686» (32-разрядные процессоры) или «любой»). обозначать архитектуру не имеет значения)PKGBUILD/ETC
: Любые файлы на самом деле в хранилище AUR; то PKGBUILD
, и любые другие мелкие текстовые патчи, или установить / обновить / удаление скриптов. Не включает исходные файлы в source
массив.Несмотря на то, что AUR оказался чрезвычайно надежным, стоит взглянуть на него, PKGBUILD/ETC
чтобы убедиться, что он получает источник из места, которому вы готовы доверять; (например, официальный апстрим-сайт, который может быть из github - но не просто репозиторий какого-то случайного человека, который не связан с пакетом апстрима); и что PKGBUILD/ETC
он не содержит подозрительного кода.
PKGBUILD/ETC
Если в официальных репозиториях нет пакета, который вы хотите установить, найдите его по адресу https://aur.archlinux.org/ . Надеюсь, вы обнаружите, что то, что вы ищете, существует, обновлено и поддерживается.
Лучший способ получить PKGBUILD/ETC
AUR - это клонировать его через git
.
Установите git
, если это еще не сделано:
# pacman -S git
Используйте «URL Git Clone», показанный на веб-сайте AUR для этого пакета:
$ git clone https://aur.archlinux.org/fslint.git
Войдите в каталог и посмотрите на его содержимое. (Все перечисленное здесь, кроме как . .. .git
есть PKGBUILD/ETC
):
$ cd <PKGNAME>
$ ls -a
. .. .git PKGBUILD .SRCINFO
Если вы посмотрите PKGBUILD
, вы, вероятно, увидите, что он использует официальный исходный код и выполняет типичные шаги для сборки пакета, поэтому он кажется заслуживающим доверия. .SRCINFO
Содержит только информацию , отображаемую на веб - сайте о пакете, поэтому не вызывает тревогу. Если здесь есть какие-либо другие файлы, они не (напрямую) предоставляются вышестоящим, поэтому следует проверить файлы и то, как они используются в PKGBUILD
них, чтобы убедиться, что они не содержат ничего подозрительного.
Хотя это требуется гораздо реже, вы можете собрать пакет уже в официальных репозиториях, включить новый патч, собрать более новую версию и т. Д.
Получить PKGBUILD/ETC
из основного и дополнительных репозиториев:
$ git clone --single-branch --branch "packages/<PKGNAME>" git://git.archlinux.org/svntogit/packages.git "<PKGNAME>"
Из репозитория сообщества:
$ git clone --single-branch --branch "packages/<PKGNAME>" git://git.archlinux.org/svntogit/community.git "<PKGNAME>"
PKGBUILD/ETC
Если PKGBUILD/ETC
выпущено обновленное , вы можете вернуться в этот каталог, созданный с помощью git clone
, и обновить их:
$ git pull
Затем перекомпилируйте и обновите пакет, используя метод, выбранный вами ниже.
Есть много способов для компиляции пакетов. В конечном итоге все использует makepkg
. Есть 2 официально поддерживаемых способа:
makepkg
, см. Https://www.vultr.com/docs/using-makepkg-on-arch-linux .makepkg
в чистом виде chroot
, см. Https://www.vultr.com/docs/using-devtools-on-arch-linux .Есть много AUR вспомогательных программ, (таких как makepkg
обертки), которые официально не поддерживается Arch, такие как aurutils
, yay
и в последнее время прекращены aurman
и yaourt
. Даже если вы используете одну из этих вспомогательных программ, настоятельно рекомендуется ознакомиться с официально поддерживаемыми способами повышения эффективности, когда что-то идет не так.
Остальная часть этого документа будет YOUR BUILDER
означать, какой метод вы выберете.
Вы можете настроить локальное хранилище, чтобы оно было центральным для всех создаваемых вами пакетов.
Разместите местный репозиторий там, где вы хотите:
# mkdir /archLocalRepo
Запустите YOUR BUILDER
без каких-либо параметров автоматической установки и скопируйте пакет в локальный репозиторий.
# cp <PKGNAME>-<PKGVER>-<PKGREL>-<ARCH>.pkg.tar.xz /archLocalRepo
Добавьте новый пакет в индекс хранилища:
# repo-add /archLocalRepo/archLocalRepo.db.tar.gz /archLocalRepo/<PACKAGE-FILE-NAME>
Чтобы удалить пакет из индекса репозитория и самого файла пакета:
# repo-remove /archLocalRepo/archLocalRepo.db.tar.gz <PKGNAME>
# rm /archLocalRepo/<PACKAGE-FILE-NAME>
Если вам нужно заменить существующий файл пакета, вам нужно отдельно удалить заменяемый файл, а затем добавить новый. Вы не можете просто скопировать новый файл поверх старого.
Настройте pacman
для использования вашего локального репозитория, отредактировав /etc/pacman.conf
, и добавьте следующее в конце:
[archLocalRepo]
SigLevel = Optional TrustAll
Server = file:///archLocalRepo
Вам необходимо pacman
обновить свои знания о репозитории, (в том числе локальном), базах данных; чтобы увидеть пакеты, которые вы добавили в него:
# pacman -Sy
Затем вы можете установить пакет, не иначе, как если бы он был в официальном репозитории:
# pacman -S <PKGNAME>
Обратите внимание, если пакет является просто зависимостью от другого пакета, который вы собираетесь установить, вам не нужно устанавливать его напрямую. Когда вы установите этот другой пакет, pacman
автоматически найдет и установит пакеты зависимостей в вашем локальном хранилище.
По умолчанию YOUR BUILDER
компилируется с использованием одного потока. В многопроцессорных системах вы можете разрешить использование нескольких потоков, где это возможно. Система сборки будет компилировать части исходного кода параллельно, когда это возможно. Иногда части кода требуют, чтобы другие части, с которыми он взаимодействует, уже компилировались, поэтому вы не всегда будете видеть столько потоков, сколько разрешено. Редактировать /etc/makepkg.conf
.
Чтобы разрешить использовать столько потоков, сколько у вас есть виртуальных ядер, добавьте следующее:
MAKEFLAGS="-j$(nproc)"
Примечание. Это будет запускать команду nproc
каждый раз, поэтому она всегда будет использовать текущее количество ядер, если вы обновите сервер Vultr.
Чтобы разрешить использование нескольких виртуальных ядер, но не всех, например, чтобы уменьшить влияние на общую производительность системы, добавьте конкретное число. Например, если у вас 24 ядра, вы можете разрешить использовать 21:
MAKEFLAGS="-j21"
Указание большего количества потоков, чем количество имеющихся у вас виртуальных ядер, снизит производительность.
Это довольно редко, но в некоторых системах сборки пакетов возникают проблемы с параллельной компиляцией из-за неправильного определения зависимостей между частями кода. Как правило, PKGBUILD
файлы этих пакетов будут обрабатывать это для вас, вызывая make -j1
, который переопределяет установленный по умолчанию. Если это необходимо, но оно отсутствует, сообщите об этом сопровождающему пакета Arch.
PKGBUILD
Исходный массив может содержать .asc
или .sig
файлы. Они часто включаются с использованием расширения bash brace, поэтому их легко пропустить:
source=("http://example.com/downloads/${pkgname}-${pkgver}.tar.gz{,.sig}")
Если любой из этих форматов файлов подписи включен в исходный массив, YOUR BUILDER
автоматически предпринимается попытка проверки подписи вышестоящего исходного архива. Ключ PGP подписи должен находиться в наборе ключей пользователя; в противном случае он будет прерван с ошибкой:
==> Verifying source file signatures with gpg...
<SOURCE-FILE> ... FAILED (unknown public key 1234567890ABCDEF)
==> ERROR: One or more PGP signatures could not be verified!
Важно понимать, что ключ GPG можно показать несколькими способами. Его отпечаток пальца составляет 40 шестнадцатеричных символов, и это то, что вы всегда должны использовать. Длинный идентификатор ключа - это последние 16 цифр, а короткий идентификатор - последние 8 цифр. Хотя короче удобно, это позволяет дубликаты, которые аннулируют все рассуждения о проверке подписей. Хуже того, известно, что злоумышленники генерируют фальшивые ключи, которые соответствуют ключам меньшей длины для известных разработчиков.
Если вы еще не пытались собрать пакет, загрузите исходные коды, которые будут включать файл подписи: (Если вы попытались собрать пакет, он уже будет там)
$ makepkg --nobuild --noextract
Чтобы получить полный отпечаток пальца:
$ gpg <ASC-OR-SIG-FILENAME>
...
gpg: using RSA key 155D3FC500C834486D1EEA677FD9FCCB000BEEEE
...
В идеале вы должны проверить этот отпечаток пальца вверх по течению. Чтобы быть в безопасности, апстрим должен давать ключи своего сопровождающего где-нибудь на своем веб-сайте или в источнике. Простой поиск ключа на сервере ключей ничего не делает. Злоумышленник может легко отправить поддельный ключ, поскольку серверы ключей не проверяют подлинность. Ключи могут быть подписаны другими ключами, поэтому, если у вас уже есть ключ, которому вы доверяете, вы должны быть в безопасности, доверяя всем ключам, которые они подписали.
Это может быть довольно трудоемким делом, особенно, когда апстрим не публикует свой отпечаток пальца или не размещает его где-нибудь, где его легко найти. PKGBUILD
Будет содержать validpgpkeys
массив, которые были добавлены к сопровождающему Arch. Если пакет является официальным репозиторием, это означает, что Trusted User поместил его туда, и вы должны быть совершенно уверены, что можете доверять всему, что перечислено в массиве. Если пакет находится в AUR, помните, что это просто означает, что другой пользователь Arch разместил его там. Если вы беспокоитесь о доверии, вы всегда можете заглянуть в пользователя, чтобы увидеть, что он сделал в прошлом с Arch.
Чтобы добавить отпечаток пальца в ваш брелок:
$ gpg --recv-keys <FINGERPRINT>
Теперь вы можете запустить YOUR BUILDER
, и он будет доверять отпечатку пальца.
AUR пакеты с именами , заканчивающимися -git
, -svn
, -bzr
или -hg
являются версии развития, которые используют вверх по теч��нию в последнюю систему контроля версий совершить вместо выше это последний релиз. Например,-git
пакет будет использовать последний коммит апстрима в основной ветке (или эквивалентной ветке). Это отлично подходит для запуска исправлений вышестоящих версий и новых функций, которые еще не были выпущены, и при работе с апстримом над ошибкой, о которой вы сообщаете, в том числе, если вам нужно убедиться, что это не ошибка, исправленная коммитом, еще не выпущенным. Эти пакеты следует считать потенциально нестабильными. Тем не менее, к сожалению, иногда нет никакой альтернативы, потому что некоторые разработчики из основной ветки разработки никогда не помечают релизы или слишком долго переходят от тегов к релизам и ожидают, что все будут использовать свои последние коммиты. В зависимости от пакета вы можете быть первым, кто попытается запустить этот коммит. В зависимости от разработчиков, их последний коммит может даже не скомпилироваться,
Важно понимать распространенную ошибку. Не отмечайте пакет разработки AUR как устаревший просто потому, что он показывает старый номер версии! PKGBUILD
Файлы пакета разработки содержат дополнительную функцию pkgver()
, которая используется для автоматического анализа обновленного PKGVER
исходного кода. Общий формат для -git
пакета <TYPICAL-VERSION-NUMBER>.r<COMMITS-SINCE-LAST-RELEASE>.<GIT-COMMIT>-<PKGREL>
. Пакет может быть указан в AUR как 5.0.0.r102.8d7b42ac21-1
, потому что это то, что он PKGBUILD
содержит. Но, когда вы создаете пакет, YOUR BUILDER
он автоматически обновляется, PKGVER
чтобы отразить только что загруженный исходный код. На самом деле, если было выпущено много новых версий, но ничего не изменилось в процессе сборки, такой PKGBUILD
листинг старой версии может привести к созданию чего-то гораздо более нового, такого как9.1.2.r53.2c9a41b723-1
, Для этих пакетов версия, указанная на веб-сайте, является просто самой последней версией в то время, когда сопровождающему AUR последний раз приходилось обновлять PKGBUILD
.
AUR сопровождающие НЕ должны просто обновлять, PKGVER
чтобы отразить новые версии. Предполагается, что они будут делать это только тогда, когда более новые вышестоящие коммиты на самом деле требуют, чтобы что-то еще PKGBUILD
изменилось
Только помечайте устаревший пакет AUR для разработчиков, если вы знаете, что что-то на самом деле не так. Это означает, что вы на самом деле пытались использовать его, и он не может скомпилировать или проанализировать правильно отформатированный новый PKGVER
. Иногда случаются вещи, которые вынуждают сопровождающего AUR обновлять PKGBUILD
, например, изменения зависимостей восходящего потока, изменения configure
параметров, новые версии GCC обнаруживают ошибки в исходном коде, которых не было в предыдущих версиях, местоположения репозитория восходящего потока или разработчики восходящего потока изменяются там, где их типичная версия находится в исходном коде, нарушающемPKGVER
функция разбора. Следует понимать, что даже в случае сбоя при компиляции или работе это может означать, что сопровождающему AUR необходимо внести изменения в процесс сборки, или это может быть проблема с исходным кодом, за которую ответственный за AUR не несет ответственности.
Обязательно прочитайте раздел «Пакеты для разработки AUR» выше, прежде чем сообщать о том, что пакет устарел!
Если апстрим выпустил более новую версию для не относящегося к разработке пакета, чем в PKGBUILD
, вы можете нажать «Пометить пакет как устаревший» и напечатать сообщение для сопровождающего. Используйте https://packages.archlinux.org для официальных пакетов репозитория и https://aur.archlinux.org для пакетов AUR. Полезным сообщением будет новый номер версии и, возможно, ссылка на объявление о выпуске или исходный код. Функция пометки автоматически отправляет ваше сообщение по электронной почте сопровождающему.
В пакете AUR, если через 2 недели не было ответа, вы можете нажать «Отправить запрос» с типом «Сирота», если вы хотите попросить Доверенного пользователя удалить текущего сопровождающего и сделать пакет потерянным, если сопровождающий не отвечает на сиротский запрос. Как правило, люди подают бесхозные запросы только в том случае, если они могут и хотят принять пакет, и желательно, только если у них уже есть рабочий ток PKGBUILD
.
Между тем, вы часто можете обновить устаревший пакет самостоятельно. Часто вам нужно всего лишь изменить a PKGBUILD
, обновив PKGVER
до нового номера версии, и суммы целостности будут обновлены. Программа updpkgsums
существует в пакете pacman-contrib
, который автоматически рассчитывает суммы и обновляет их PKGBUILD
для вас. Стоит проверить заметки о выпуске апстрима, чтобы узнать, не упоминают ли они, что что-то должно измениться в процессе установки новой версии. Иногда изменения вверх по течению требуют больше изменений или переделок PKGBUILD/ETC
. Часто source
массив встраивается PKGVER
в него, поэтому часто даже не требует обновления.
Предварительные условия Сервер Vultr, работающий до последней версии Arch Linux (см. Эту статью). Работающий веб-сервер с доступом Apache или Nginx Sudo. Команды требуют
Предварительные условия Сервер Vultr, работающий до последней версии Arch Linux (см. Эту статью). Работающий веб-сервер, доступ к Apache или Nginx Sudo Требуются команды t
В этом руководстве объясняется, как настроить сервер Mumble (Murmur) в Arch Linux. Все, что сделано в этом уроке, сделано от имени пользователя root. Установка
Vultr предоставляет вам удивительные функциональные возможности, позволяющие вам использовать собственное изображение в дополнение к их отличным шаблонам, которые позволяют вам запускать
Предисловие Arch Linux - это дистрибутив общего назначения, известный своими передовыми технологиями и гибкой конфигурацией. С снимками Btrfs мы можем взять
Из этого туториала Вы узнаете, как настроить сервер Counter-Strike: Global Offensive в Arch Linux. В этом руководстве предполагается, что вы вошли со стандартным использованием
Предварительные условия Сервер Vultr, работающий до последней версии Arch Linux (см. Эту статью). Доступ в Sudo. Команды, необходимые для запуска с правами root, начинаются с префикса #, и один
Предварительные условия Сервер Vultr, работающий до последней версии Arch Linux (см. Эту статью). Доступ в Sudo. Команды, необходимые для запуска от имени пользователя root, начинаются с префикса #. Th
Введение Arch Linux имеет меньшие, но все же сильные, следующие более популярные дистрибутивы. Его философия совершенно другая, с преимуществами и
Если вы используете makepkg напрямую, это несколько загрязняет вашу систему. Группа пакетов base-devel должна быть установлена. Таким образом, по умолчанию зависимости нужны только
В этом руководстве объясняется, как настроить сервер Team Fortress 2 в Arch Linux. Я предполагаю, что вы вошли в систему с учетной записью пользователя без полномочий root с доступом sudo
Предварительные условия Сервер Vultr, работающий до последней версии Arch Linux. Смотрите это руководство для получения дополнительной информации. Доступ в судо. Команды, необходимые для запуска от имени пользователя root
В этом руководстве объясняется, как настроить сервер Minecraft с помощью Spigot в Arch Linux. В этом руководстве предполагается, что вы обычный пользователь (не root) и имеете
Предварительные условия Сервер Vultr, работающий до последней версии Arch Linux (см. Эту статью). Работающий веб-сервер, доступ к Apache или Nginx Sudo: требуются команды
Предварительные условия Сервер Vultr, работающий до последней версии Arch Linux (см. Эту статью) Доступ к Sudo: Команды, необходимые для запуска с правами root, начинаются с префикса #, а один
Предварительные условия Сервер Vultr, работающий до последней версии Arch Linux (см. Эту статью). Доступ в Sudo: Команды, необходимые для запуска с правами root, начинаются с префикса #, а один
Предварительные условия Сервер Vultr, работающий до последней версии Arch Linux (см. Эту статью). Работающий веб-сервер, доступ к Apache или Nginx Sudo: требуются команды
Пакет Devtools изначально был создан для доверенных пользователей, чтобы правильно создавать пакеты для официальных репозиториев. Тем не менее, он может быть использован обычным пользователем
Изучение 26 методов анализа больших данных: часть 1
Многие из вас знают Switch, который выйдет в марте 2017 года, и его новые функции. Для тех, кто не знает, мы подготовили список функций, которые делают «Switch» обязательным гаджетом.
Вы ждете, когда технологические гиганты выполнят свои обещания? проверить, что осталось недоставленным.
Прочтите блог, чтобы узнать о различных уровнях архитектуры больших данных и их функциях самым простым способом.
Прочтите это, чтобы узнать, как искусственный интеллект становится популярным среди небольших компаний и как он увеличивает вероятность их роста и дает преимущество перед конкурентами.
CAPTCHA стало довольно сложно решать пользователям за последние несколько лет. Сможет ли он оставаться эффективным в обнаружении спама и ботов в ближайшем будущем?
По мере того, как наука развивается быстрыми темпами, принимая на себя большую часть наших усилий, также возрастает риск подвергнуться необъяснимой сингулярности. Прочтите, что может значить для нас необычность.
Что такое телемедицина, дистанционное здравоохранение и их влияние на будущее поколение? Это хорошее место или нет в ситуации пандемии? Прочтите блог, чтобы узнать мнение!
Возможно, вы слышали, что хакеры зарабатывают много денег, но задумывались ли вы когда-нибудь о том, как они зарабатывают такие деньги? Давайте обсудим.
Недавно Apple выпустила macOS Catalina 10.15.4, дополнительное обновление для исправления проблем, но похоже, что это обновление вызывает больше проблем, приводящих к поломке компьютеров Mac. Прочтите эту статью, чтобы узнать больше