теперь давайте скомпилируем сервер, я возьму один из самых известных ftp-серверов
pro ftpd, что означает профессиональный демон ftp, первым шагом при компиляции программы является получение
ее исходного кода, это доступно, потому что это открытый исходный код, поэтому любой имеет доступ к источнику
перейдите на официальный сайт proftpd.org и загрузите последнюю версию, это 1.3.7a, я щелкаю
правой кнопкой мыши по архиву gz, выбираю адрес ссылки для копирования
и в терминале я писать ж ПОЛУЧИТЬ минус с и я вставить контекст буфера обмена
я загружаю исходный код был загружен файл в текущей директории
это файл второй шаг, который не является обязательным, но настоятельно рекомендуется, чтобы проверить целостность
носителя файл, особенно если вы устанавливаете его на производственный сервер, вы можете сделать это, проверив его
хэш или цифровую подпись, автор публикует веб-страницу с хеш-ониксом, и я также вычислю его
локально, если они совпадают, тогда целостность архива была проверена lexix хэш,
это хэш md5, и я вычисляю его локально, а также сумму md5 и файл,
давайте сравним хеши, которые я копирую и вставляю в терминал,
у меня такой же хеш, поэтому я предполагаю, что третий шаг - для извлечения архива
x, сжатого как tar-архив, поэтому я запускаю bar минус xz vf, и файл,
новый каталог, содержащий исходный код сервера, был создан в текущем, я
перехожу в этот каталог, поскольку все следующие комментарии будет относительно этого каталога, поскольку
исходный код находится в каталоге src
в этом каталоге это исходный код сервера в этом каталоге мы видим, что есть
исполняемый файл сценарий под названием configure это очень важно, поскольку он выполняет две вещи
он проверяет, удовлетворены ли требования и зависимости компилируемой программы,
и настраивает способ компиляции программы, какие параметры будут
включены, а какие нет, если, например, у вас не установлен диагностический компилятор
или если требуется ired библиотека отсутствует, тогда configure покажет вам ошибку,
устраните проблему и запустите configure снова, пока не исчезнет ошибка, не продолжайте
процесс компиляции, если configure выдает какие-либо ошибки,
этот сценарий имеет множество параметров для управления тем, как программа будет быть скомпилированным,
чтобы узнать о его параметрах, запустите точечную косую черту, настройте минус минус, помогите, так как рекомендуется
запускать configure от имени непривилегированного пользователя, и только последний шаг процесса компиляции хорош.
Я выполняю сценарий, используя косую черту и имя сценария потому что я хочу, чтобы оболочка
выполняла сценарий из текущего каталога, позвольте мне показать вам что-то,
если я просто запустил configure, оболочка будет искать его по пути и не
найдет его, и вы получите команду ошибки, которая не найдена, поэтому запустите ее добавив к имени x префикс точки,
я запускаю скрипт, который показал много вывода, поэтому я передам его в меньшее количество, чтобы я мог
перемещаться по конвейерам вывода, давайте взглянем на наиболее важные параметры
минус минус префикс, а каталог указывает, где будет установлено программное обеспечение, если вы не
используете эту опцию, файлы приложения будут переходить в стандартные каталоги, такие как косая черта bin, косая черта usr
bin ctc и т. д. и перезаписывать любые другие файлы с тем же именем this может сломать вашу систему,
мой совет - всегда использовать опцию префикса при компиляции программы, вы можете точно настроить
свою компиляцию с помощью множества параметров, специфичных для каждой программы.Я хочу показать
вам, как скомпилировать или не скомпилировать некоторые приспособления в конечный продукт давайте поищем, например, ssl,
и есть опция под названием enable ssl, которая по умолчанию не
означает, что без указания этой опции ftp-сервер будет скомпилирован без поддержки ssl,
поэтому он не будет поддерживать зашифрованные соединения, если вы хотите, чтобы он поддерживал ssl, тогда укажите этот параметр для
настройки, это применимо к любому другому варианту, давайте поищем ipv6, я ищу в обратном направлении
, отключите ipv6, который отключает поддержку ipv6,
и по умолчанию параметр i s не указан или ipv6 не отключен,
если вы знаете, что не используете ipv6, вы можете отключить его с помощью этой опции, хорошо, я выхожу, меньше,
я запускаю сценарий конфигурации только с параметром префикса минус минус префикс равно
выбор ftpd вы можете установите его где угодно, но рекомендуется, чтобы программы, которые скомпилированы и
не контролируются диспетчером пакетов, должны быть установлены в каталог под косой чертой opt opt ​​исходит
из дополнительного программного обеспечения, также обратите внимание, что вам не нужно создавать каталог proftpd вручную с помощью
mkdir он будет создан автоматически, я нажимаю Enter, посмотрите, как он проверяет среду, это
выглядит действительно красиво, как в хакерском фильме, если у вас есть какие-либо ошибки, устраните их и снова запустите configure,
переходите к следующему шагу только тогда, когда скрипт конфигурации завершится без ошибок общие ошибки
связаны с отсутствием зависимостей, когда вы компилируете программное обеспечение самостоятельно, вам нужно
позаботиться о зависимостях, а мы ждем, пока он завершится
, ошибок нет, поэтому я могу продолжить wi го следующего шага
следующий шаг заключается в запуске сделать это новая программа, которая будет строить ваше приложение
это означает , что он будет принимать сбор исходных файлов и метаданных и превратить их в
конечный продукт, он делает реальную компиляцию, вызывая гнозис компилятор несколько раз,
чтобы компилировать марку программы будет использовать файл с именем сделает файл, который находится в текущем каталоге
этого является сделать файл, этот файл был сгенерирован Configure на предыдущем этапе, и содержат
информацию о том, как конечный продукт должен быть я уверен, выполнение макияжа
видеть, как make вызывает gcc за кулисами несколько раз,
если компиляция сталкивается с некоторыми проблемами, тогда на консоли появляются ошибки,
которые в целом фатальны, попробуйте их решить, запустите make clean, а затем сделайте снова,
я надеюсь, что после компиляции ошибок не будет выполнено успешно, тогда
все необходимые двоичные файлы созданы, запустите make install на этот раз как хорошо, что является последним шагом,
это создаст каталог, в котором будет установлено программное обеспечение alled в этом примере слэш отказа
FTPD и переместить все файлы там,
и это делается сервер FTP был установлен путем компиляции источников и могут быть запущены
в данный момент источники не нужны больше, и я могу удалить их
давайте перейдем в каталог - серверах
каталог содержит все, что связано с сервером, который я только что скомпилировал, за пределами этого каталога
нет другого файла, поэтому для удаления сервера просто удалите этот каталог,
давайте запустим сервер, я перехожу в каталог asb, который находится в каталоге сервера,
позаботьтесь, чтобы переместитесь на косую черту sbin, это другой каталог,
и файл с именем proftpd на самом деле является сервером,
я запускаю сервер, запустив файл как root на сервере linux, может быть запущен только root,
обычно сервер работает в фоновом режиме как демон, поэтому я Я
добавляю конец в конце и sudo transgood сервер запущен,
мы можем найти процесс, запустив ps minus ef pipe grep pro ftpd
this is the process
или pgrep minus l pro ftpd, на котором
он запущен остановить его запустить kill и выразить идентификатор или pkill и его имя, я останавливаю его,
и, конечно, это root, давайте снова поищем процесс, он не запущен, он был остановлен, сервер
был убит, обратите внимание, что вы не можете управлять сервером, который был скомпилирован с помощью systemctl как вы это делаете для
того, который был установлен с помощью диспетчера пакетов, вы запускаете его, запустив исполняемый файл, и останавливаете
его, запустив команду kill, чтобы проверить, что он работает, как ожидалось, я запущу его на переднем плане
в режиме отладки, используя параметр минус отправки когда я хочу остановить это, я нажимаю ctrl и c, так что sudo
dot slash pro ftpd минус n сервер, запущенный на переднем плане, это просто для тестирования
давайте подключимся к серверу с помощью ftp-клиента, есть много хороших ftp-клиентов
filezilla является кроссплатформенным, однако для этого простого теста
я подключусь к серверу с помощью браузера, я открываю firefox, и я подключаюсь к ftp с
двойной косой чертой и IP-адресом сервера localhost,
и он подключился и запрашивает юзерна я и пароль, я введу системное имя пользователя и пароль,
чтобы студент и его пароль, и я нажимаю клавишу ввода,
он отображает домашний каталог пользователя, он работает нормально, основная цель этой
лекции - показать вам, как скомпилировать стандартный приложения не настраивают сервер profttpd,
но если вы хотите изменить способ работы сервера, вы должны знать, что его
файл конфигурации - это тот, который выбирает ftpd и т. д. preftpd.conf это файл конфигурации сервера,
было много разговоров, потому что Я хочу, чтобы вы глубоко понимали, как компилировать программы,
но на самом деле мы можем сделать все, что угодно, всего лишь с одним комментарием.
Я снова загружаю сервер. Я показываю вам, как быстро
исходный код сервера
извлекаю архив, в который
я перехожу. этот каталог, и я запускаю одну команду configure minus minus prefix, равной
opt for ftpd one, а проценты и проценты make и проценты и sudo make install
вы должны запускать все комментарии как root или, по крайней мере, последний, который make install
и что excel, так вы компилируете и устанавливаете сервер с помощью только одной команды,
он запускает первую команду, которая настроена, если она не возвращает никаких ошибок,
она запускает команду make, и если make не выдает никаких ошибок, она будет запустите make
install, если какой-либо комментарий в цепочке возвращает ошибку, следующая команда не будет запущена
нормально, это было стандартное руководство по компиляции, которое применимо к большинству известных приложений, однако
есть приложения, которые необходимо скомпилировать индивидуальным способом, таким образом Если вам нужно прочитать
документацию к программе, это обычно файл с именем install или readme в исходном каталоге