Хостинг vps: windows или linux?

Чтобы узнать, что такое XAMPP, нужно сначала понять, как работают сервера с сайтами

Первое, что нужно иметь ввиду: все сайты работаю на серверах с Linux. За 15 лет разработки я ни разу не встретил сервер, работающий на Windows. Обусловленно это тем, что Linux надежнее, быстрее, а главное – бесплатный

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

На сервере обычно установлена какая-нибудь Ubuntu или CentOS, т.к. с ними проще и быстрее работать. И разработчик (то есть – вы!) может установить туда любое программное обеспечение (программы, короче).

Вы знали, что когда вы открываете сайт, запрос от браузера обрабатывает не только конкретный компьютер (сервер), но и конкретная программа? Обычно эта программа называется «веб-сервер» и работает по порту 80. Когда вы открываете сайт, то порт 80 не указывается для краткости (является стандартом). А когда вы открываете сайт, работающий через https, то для работы используется порт 443, а не 80. Но на запрос отвечает та же программа – веб-сервер.

Сервер – это компьютер, на котором работает сайт. Веб-сервер – это программа, запущенная на этом компьютере, которая срабатывает при открытии вашего сайта.

Я пишу эту статью в 2019ом году, но уверен, что и много лет позже самым популярным сервером останется nginx. Чуть раньше самым популярным веб-сервером был Apache 2. Так называется программа, котороая откроет ваш сайт. Вы можете установить nginx на сервере простой командой (если на сервере Ubuntu):

Я не предлагаю ничего устанавливать. Просто мне хочется добавить конкретики в статью, чтобы было понятнее.

Окей, мы поняли, что нам нужен веб-сервер (программа!), чтобы обрабатывать запросы пользователя.

На самом деле не важно, какой язык – веб-сервер вам всё равно понадобится, просто он может называться по-другому (не nginx и apache). Следующим шагом надо будет установить PHP и «соединить» его с веб-сервером таким образом, чтобы веб-сервер запускал интерпретатор PHP и передавал ему запрос, который пришел от пользователя

Сейчас я не буду писать как конкретно это сделать. Просто запомним: пользователь открывает сайт, веб-сервер получает запрос и запускает PHP-интерпретатор, чтобы последний скомпоновал страницу

Следующим шагом надо будет установить PHP и «соединить» его с веб-сервером таким образом, чтобы веб-сервер запускал интерпретатор PHP и передавал ему запрос, который пришел от пользователя. Сейчас я не буду писать как конкретно это сделать. Просто запомним: пользователь открывает сайт, веб-сервер получает запрос и запускает PHP-интерпретатор, чтобы последний скомпоновал страницу.

Обычно сайты используют еще и базу данных. Обычно это MySQL, всё по той же причине: она быстрая, мощная и бесплатная. Опять же, в обычном случае PHP (или другой язык) обращается к базе данных, чтобы забрать оттуда какие-то данные или что-нибудь туда записать. Например, нужно отобразить комментарий пользователя – нужно обратиться к базе данных и получить этот комментарий. Или администратор сайта написал новую статью (это я и делаю сейчас) – нужно обратиться к базе данных и записать новую статью туда.

Таким образом полная схема выглядит так: пользователь открывает сайт, происходит запрос к вашему серверу-компьютеру (или виртуальному компьютеру), запрос принимает программа-веб-сервер, запускает интерпретатор PHP (или другой язык), в свою очередь PHP обращается к базе данных и забирает оттуда конкретные данные (статьи, комментарии и т.п.). Потом PHP собирает страничку, отдает ее обратно веб-серверу и веб-сервер возвращает ее пользователю. Давайте посмотрим на мега-картинку (которую я нашел в гугле):

Например, пост, который вы видите, отобразился по описанной схеме. Собственно, ВСЁ работает по описанной схеме, она универсальная и ничего другого человечество пока не придумало. Конечно, может быть разница, в зависимости от сложности сайта, но этот базис, по сути, не меняется принципиальным образом.

Выбор оборудования

Как я уже написал, оборудование нам подойдет практически любое, но все же кое-какие пожелания у нас есть. Поскольку сервер будет файловый, то и пожелания наши будут касаться дисковой системы. Было бы неплохо найти машину с RAID контроллером на борту. Если мы делаем сервер для размещения рабочей файловой базы, было бы неплохо разместить ее на RAID-5, если хранилище резервных копий, отличным вариантом будет RAID-1.

При этом у нас нет особых требований к оперативной памяти, хватит и 1 Гбайта. К процессору тоже нет особых требований, Linux будет работать на всем, что еще живо.

Пожалуй, самый оптимальный вариант — приобрести восстановленный сервер «с пробегом». Берите самый дешевый, какой найдете, главное, что бы перед этим он прошел профилактику, его очистили от пыли и прогнали все системные тесты.

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

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

CentOS vs Ubuntu: установка и настройка

И CentOS, и Ubuntu предлагают упрощенные процессы установки, но каждый из них имеет свои сильные стороны. С Ubuntu Server вы не получаете графический интерфейс, но он по-прежнему прост для почти любого. Хотя установщик Ubuntu стремится быть простым для всех, CentOS стремится сделать процесс быстрым и легким для системных администраторов.

Если вы используете настольную версию Ubuntu для своего сервера, настройка довольно проста. Установка программного обеспечения, настройка параметров, а также включение и отключение служб относительно просты. CentOS также предоставляет надежный набор параметров конфигурации, хотя он использует несколько различных приложений на серверной части.

Настройка CentOS или Ubuntu через командную строку отличается. Вы найдете несколько файлов конфигурации в разных местах, большая разница в том, что менеджер пакетов используется каждым дистрибутивом. Ubuntu использует apt, а CentOS – yum. Использовать каждый из них довольно просто, но между ними есть некоторые существенные различия.

Победитель: Ubuntu выигрывает здесь благодаря простоте использования и количеству документации, которую вы найдете в интернете.

Антивирус

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

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

Установим антивирус ClamAV

$ sudo apt install clamav

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

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

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

$ sudo mkdir /quarantine
$ sudo chmod 600 /quarantine

Попробуем просканировать домашние папки пользователей

$ sudo clamscan -i -r --move=/quarantine /home

После сканирования получим протокол

----------- SCAN SUMMARY -----------
Known viruses: 6278963
Engine version: 0.99.2
Scanned directories: 13
Scanned files: 13
Infected files: 0
Data scanned: 4.79 MB
Data read: 1.59 MB (ratio 3.00:1)
Time: 22.176 sec (0 m 22 s)

Все хорошо, вирусов не обнаружено. Если бы нашлось что-то подозрительное, оно было бы перемещено в папку карантина.

Нам остается настроить автоматическое расписание обновления сигнатур и сканирования домашних папок. Редактируем файл расписания демона cron

$ sudo crontab -e

Для обновления сигнатур и сканирования нам потребуются привилегии суперпользователя, поэтому crontab запускается через sudo, сами команды в файле расписания нужно указывать без sudo.

Добавьте две строчки

0 1 * * * freshclam
0 2 * * * clamscan -i -r --move=/quarantine /home

Каждый день в 1:00 ночи будет автоматически запускаться обновление сигнатур, а в 2:00 ночи будет запущено сканирование всех домашних папок пользователей, инфицированные файлы будут перемещены в папку карантина.

Системы управления базами данных

Наиболее популярная среди разработчиков веб-приложений СУБД MySQL доступна для обеих ОС, но, учитывая популярность «классической» связки PHP+MySQL, ее можно считать чуть боле близкой к Linux. Тем более что связка из MySQL, языка PHP и веб-сервера Apache является на сегодняшний день «стандартным» комплексом серверного программного обеспечения LAMP для ОС Linux. СУБД MS SQL, часто использующаяся разработчиками сложных корпоративных порталов с повышенными требованиями к надежности и стабильности, работает только в среде Windows. Это же относится и к базам данных Microsoft Access.

Стабильность работы

Ubuntu выпускает несколько типов релизов: с обычным сроком поддержки и с долгосрочной поддержкой, так называемый LTS. О последнем компания заявляет, как о весьма надёжном и стабильном дистрибутиве. Но это весьма спорный вопрос, особенно если почитать форумы поддержки. По умолчанию всё работает вполне стабильно и без сбоев, но стоит вам установить какую-то необычную программу или активировать нестандартную функцию, как выскакивает множество ошибок, существенно влияющих на стабильность работы. Примечательно, что разработчики особо не рвутся устранять недоработки. Может, просто руки не доходят.

CentOS, в свою очередь, проходит тщательную проверку и тестирование перед выходом в свет. Да, в этом дистрибутиве установлена более старая версия программного обеспечения, но всё тщательно подогнано, настроено и проверено.

Поэтому, если для вас важна стабильность, выбирайте CentOS. Если же вы хотите использовать новейшее ПО в ущерб стабильности, выбирайте Ubuntu.

Установка системы

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

Fedora имеет установщик, совсем непохожий на Debian. Здесь вместо пошагового мастера есть главное меню, через которое вам и предстоит выполнять настойки различных параметров. Здесь нет такого большого количества опций, как в Debian, но вы по-прежнему можете выбрать программное обеспечение, которое будет установлено.

В сравнении установщиков Fedora или Debian, побеждает последний.

Параметры функций веб-сервисов.

Остается разобраться с вопросом о том, как передавать в функцию веб-сервиса параметры. В принципе достаточно просто:

function GetData($idc){
  if (is_object($idc)){

	try {
		$params = $_GET;
		$params = $_GET;
		$params = $_GET;
		$params = $_GET;
		$params = $_GET;
		
		$ret1c = $idc->GetDocument($params);
		
	} catch (SoapFault $e) {
				  echo "АЩИБКА!!! </br>";
				  var_dump($e);
				  var_dump($ret1c);
	}   
  }
  else{
	echo 'Не удалося подключиться к 1С<br>';
  }
return $ret1c;
}

В данном случае я передаю параметры Number, ID, bt, Type и Date в функцию GetDocument одного из вебсервисов, а данные для я беру из формы веб-страницы. Т.е. вебстраница была дернута так: localhost/mtscript.php?Number=1&ID=001&bt=123&Type=001&Date=29.12.2015

В итоге все эти данные будет переданы в функцию вебсервиса.

Приложение для дергания сервисов создадим позднее, когда все проспятся от новогодних хлопот.

Изменение метода аутентификации MySQL пользователя root

Для изменения метода аутентификации MySQL пользователя root выполним следующие действия:

1. Запустим службу mysql.

2. Подключимся к серверу MySQL под стандартным пользователем root, который создаётся при установке MySQL на компьютер:

3. Нажмём на Еnter, т.к. по умолчанию пользователь root, созданный при установке, не имеет пароля.

4. Проверим метод аутентификации, который используется для пользователя root.

Если пользователь использует аутентификацию с помощью плагина auth_socket, то изменим эту настройку на использование пустого пароля. Для этого введём команду:

Выполним команду FLUSH PRIVILEGES, которая применит внесённые изменения:

Протоколы передачи данных

Похожая ситуация складывается и с протоколами передачи данных. И Windows, и Linux практически одинаково работают с наиболее популярными протоколами FTP и telnet, но по-разному взаимодействуют с защищенным сетевым протоколом SSH. В ОС семейства Linux данный протокол поддерживаются по умолчанию (например, для подключения к локальному SSH-серверу при прослушивании порта 30000 пользователю pacify в командной строке достаточно ввести команду «$ ssh -p 30000 pacify@127.0.0.1»), а программы для работы с ним обычно входят в число стандартных утилит. В Windows работа с протоколом SSH возможна только после установки дополнительного ПО, среди которого есть как бесплатные, так и платные утилиты.

Включение подсистемы Windows для Linux

Для включения компоненты «Подсистема Windows для Linux» в Windows 10 необходимо выполнить следующие действия:

  • открыть «Панель управления» (Пуск -> Служебные -> Windows -> Панель управления);
  • открыть окно «Компоненты Windows» (пункт «Программы» в «Панели управления» -> Включение и отключение компонентов Windows);
  • установить галочку напротив опции «Подсистема Windows для Linux» и нажать «ОК»;
  • перезагрузить операционную систему.

Для использования WSL 2 вам необходимо дополнительно ещё включить в окне «Компоненты Windows» необязательный компонент «Платформа виртуальной машины».

Какую версию WSL выбрать

Чтобы определиться какая версия WSL вам нужна, нужно рассмотреть их различия.

WSL 2 в отличие от WSL 1 имеет полнофункциональное ядро Linux с полной совместимостью системных вызовов. Это позволяет использовать внутри WSL 2 целый ряд приложений (Docker и другие). Если вам нужна поддержка этих приложений, то тогда однозначно стоит остановится на 2 версии этой подсистемы. К сведению, ядро Linux для WSL 2 собранно компанией Microsoft и будет автоматически обновляться через центр обновления Windows.

WSL 1 рекомендуется использовать для проектов, файлы которого будут находиться в файловой системе Windows. В этом случае вы получите более высокую производительность, чем на WSL 2.

На мой взгляд, использовать вторую версию WSL пока не имеет особого смысла, только если вы не используете Docker или другое приложение, которому нужна полная совместимость системных вызовов Linux. Т.к. при использовании WSL 2 вам необходимо будет располагать проект в файловой системе Linux, иначе производительность файловых систем ОС при работе с этим проектом будет достаточно низкой. Но в любом случае вы можете переключить WSL для дистрибутива Linux как на первую версию, так и на вторую, и посмотреть какой вариант этой подсистемы для работы вам более подходит.

Работа с версиями WSL

Установку версии WSL, которую вы хотите использовать по умолчанию, осуществляется посредством выполнения в PowerShell следующей команды (например, WSL 2):

Эта команда установит по умолчанию в качестве версии WSL 2. Если нужно WSL 1, то в вместо 2, нужно указать соответственно 1.

Проверить WSL версию, назначенному каждому из установленных дистрибутивов Linux можно в PowerShell через следующую команду:

Для того чтобы изменить назначенную WSL версию дистрибутиву Linux на другую:

Например, для того чтобы перевести Ubuntu-18.04 на WSL 2 необходимо выполнить команду:

Доступ к файловым системам ОС

Получить в Windows доступ к файлам WSL можно, например, через проводник, введя в его адресной строке путь или просто выполнив в Bash команду .

В WSL получение доступа к файловой системе Windows выполняется через . Например, для того чтобы в Bash перейти на диск необходимо ввести , а на — .

Установка операционной системы

Сначала определимся с архитектурой сервера. Если Вам известна марка процессора, установленного в сервер, ознакомившись с его спецификацией Вы узнаете, совместим ли он с архитектурой x86-64 (64 бит) или только i386 (32 бит). Косвенный признак — размер оперативной памяти, 32-битная архитектура не может работать с оперативной памятью объемом более 3 Гбайт, иногда в эту архитектуру устанавливали 4 Гбайт памяти, но в системе было видно только 3 Гбайт.

Идем на страницу загрузки Ubuntu Server и скачиваем дистрибутив, соответствующей архитектуры. Дистрибутивы Ubuntu распространяются в виде образов загрузочных DVD дисков.

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

Выбирайте русский язык и в меню .

Далее Вам предложат указать страну, выбрать раскладку клавиатуры, дать имя серверу, указать имя и пароль суперпользователя (аналог администратора в Ubuntu) и подтвердить временную зону.

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

Так будет удобнее обновлять операционную систему, когда выйдет новая LTS версия 18.04.

Создавать или нет раздел подкачки зависит от объема оперативной памяти. Если у Вас ее немного, создайте раздел подкачки с таким же объемом. Впрочем, это не обязательно, можно после установки создать файл подкачки.

Далее в процессе установки Вам нужно будет выбрать каким образом Вы хотите управлять обновлением системы. Рекомендую устанавливать обновления безопасности автоматически.

И ближе к концу установки Вам предложат выбрать готовые наборы серверного программного обеспечения. Нам понадобятся:

  • Samba file server
  • Standart system utilites
  • OpenSSH server

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

Добро пожаловать в Linux!

Публикуем веб-сервисы

Для этого нам нужно залезть шаловливыми ручками в наш файл default.vrd, в котором описаны веб-инструменты. Сейчас он в таком виде:

<point xmlns="http://v8.1c.ru/8.2/virtual-resource-system"
		xmlns:xs="http://www.w3.org/2001/XMLSchema"
		xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
		base="/test"
		ib="Srvr=192.168.1.5;Ref=utdemo"/>

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

<ws>
	<point name="Exchange"
		alias="exchange.1cws"
		enable="true"/>
	<point name="Exchange_2_0_1_6"
		alias="exchange_2_0_1_6.1cws"
		enable="true"/>
	<point name="InterfaceVersion"
		alias="InterfaceVersion.1cws"
		enable="true"/>
	<point name="ManagedApplication_1_0_0_1"
		alias="ManagedApplication_1_0_0_1.1cws"
		enable="true"/>
	<point name="MessageExchange"
	    alias="messageexchange.1cws"
	    enable="true"/>
	<point name="MessageExchange_2_0_1_6"
	    alias="messageexchange_2_0_1_6.1cws"
	    enable="true"/>
	<point name="MobileService"
	    alias="mobile.1cws"
	    enable="true"/>
	<point name="RemoteAdministrationOfExchange"
	    alias="RemoteAdministrationOfExchange.1cws"
	    enable="true"/>
	<point name="RemoteAdministrationOfExchange_2_0_1_6"
	    alias="RemoteAdministrationOfExchange_2_0_1_6.1cws"
	    enable="true"/>
	<point name="RemoteAdministrationOfExchange_2_1_6_1"
	    alias="RemoteAdministrationOfExchange_2_1_6_1.1cws"
	    enable="true"/>
	<point name="RemoteControl"
		alias="RemoteControl.1cws"
		enable="true"/>
	<point name="SiteExchange"
		alias="ExchangeWithSites.1cws"
		enable="true"/>
	</ws>

Итак, я опубликовал все вебсервисы, которые есть у меня в конфе.

Для того, чтобы получить wsdl-файл для сервиса от 1С, в браузере надо написать так:

http://localhost/test/ws/ИмяСервиса?wsdl

В качестве имени введем стандартное «Федоров (администратор)» и получим наш xml.

Веб-сервисы опубликованы и дергаются. Дело за малым — использовать дергание в мирных научных целях и заставить 1С выдать в браузер не абстрактный малокомунужный XML, а какой-нибудь не менее абстрактный, но всем понятный пример типа «Hello, World!».

Для этого давайте напишем php-скриптик, который будет дергать наш сервис:

<?php
	function Connect1C(){
		if (!function_exists('is_soap_fault')){
			print 'Не настроен web сервер. Не найден модуль php-soap.';
			return false;
		}
		try {
		  $Клиент1С = new SoapClient('http://192.168.1.5/test/ws/RemoteControl?wsdl',
								   array('login'          => 'Федоров (администратор)',
										 'password'       => '',
										 'soap_version'   => SOAP_1_2,
										 'cache_wsdl'     => WSDL_CACHE_NONE, //WSDL_CACHE_MEMORY, //, WSDL_CACHE_NONE, WSDL_CACHE_DISK or WSDL_CACHE_BOTH
										 'exceptions'     => true,
										 'trace'          => 1));
		}catch(SoapFault $e) {
		  trigger_error('Ошибка подключения или внутренняя ошибка сервера. Не удалось связаться с базой 1С.', E_ERROR);
		}
		if (is_soap_fault($Клиент1С)){
		  trigger_error('Ошибка подключения или внутренняя ошибка сервера. Не удалось связаться с базой 1С.', E_ERROR);
		  return false;
		}
		return $Клиент1С;
	  }
	 
	  function GetData($idc){
		  if (is_object($idc)){
	 
			try {
								
				$ret1c = $idc->GetCurrentState();
				
			} catch (SoapFault $e) {
						  echo "Ошибка</br>";
						  var_dump($e);
						  var_dump($ret1c);
			}   
		  }
		  else{
			echo 'Не удалось подключиться к 1С<br>';
		  }
		return $ret1c;
	  }
	 
	$idc = Connect1C();
	$ret1c = GetData($idc);
	echo $ret1c->return."<br>\n";
?>

Итак, давайте разберемся, что в этом коде что делает. Собственно, здесь определены две функции: Connect1C() — устанавливает соединение с 1С, и GetData() — дергает нужный нам веб-сервис.

Для подключения алгоритм такой:

1. Проверяем, есть ли расширение для SOAP. Если нет — возвращаемся с ошибкой.

2. Создаем объект «SoapClient», и инициализируем его. В качестве аргументов передаем точку входа в наш сервис и ассоциативный массив параметров с логином, паролем, версией SOAP и прочими рюшками.

3. Если не произошло никаких исключений, то возвращаем полученный объект.

Для дергания сервиса алгоритм еще проще:

1. Проверяем, существует ли объект. Если нет — возвращаемся.

2. Дергаем функцию сервиса по имени.

3. Если ошибок на было, то возврашаем результат.

Результат функции содержится в параметре return. В итоге мы просто выводим его на нашу страницу: 

echo $ret1c->return."<br>\n";

Вот и весь Hello, world! Остается только в 1С поменять тип возвращаемого параметра для функции GetCurrentState веб-сервиса RemoteControl и вместо Возврат Истина написать Возврат «Hello, World!»:

 

Рабочий стол и графическая оболочка

В этом компоненте различие ещё более существенное, так как используются различные графические оболочки. В Ubuntu применяется собственная разработка Unity, которую компания создала на основе рабочего стола Gnome 3. Используется множество графических эффектов, среди которых можно отметить полупрозрачный фон. Панель уведомлений располагается по умолчанию в верхней части экрана, а иконки наиболее часто используемых программ — у левого края. Оболочка постоянно дорабатывается и регулярно анонсируются различные улучшения. Если вы переходите на Linux после Windows, поначалу организация меню может быть весьма непривычной.

CentOS же использует старый и проверенный Gnome 2. Интересно, что он считается устаревшим, новые версии практически не выходят, а его внешний вид очень старомодный. Зато всё работает весьма стабильно, а встроенного функционала вполне достаточно для выполнения каждодневных задач. Конечно, оболочку в Linux поменять нет никаких проблем, но если система изначально рассчитана на Gnome 2, то лучше всего система будет работать именно с ним.

RPM (Red Hat Package Manager)

Как мы уже говорили, RPM — это менеджер пакетов, используемый в операционных системах, основанных на Red Hat, это вся ветка дистрибутивов: Fedora, OpenSUSE, Red Hat, CentOS и т д. Изначально этот пакетный менеджер был разработан в компании Red Hat еще в 1997 году и только для их дистрибутива, но затем он распространился и в другие операционные системы. Вместо обычного сжатия здесь используется сжатие gzip по алгоритму cpio и особый формат файла архива, его мы рассмотрим ниже. Здесь в сравнении rpm или deb, первый кажется лучше, но не все так просто, если в системе нет нужных утилит, то вы не сможете распаковать такой пакет. Кроме cpio могут использоваться и другие алгоритмы сжатия, например, lzma или xz. В последнее время все программное обеспечение подписывается ключами для удостоверения подлинности, вот и RPM поддерживает подпись с помощью GPG и MD5. Технология PatchRPMs или DeltaRPMs позволяет грамотно обновлять RPM пакеты без больших затрат трафика.

Хоть и сказано, что файл rpm — это обычный архив, это не совсем так. Вначале файла находится заголовок, который идентифицирует файл как rpm архив, затем идет подпись, для проверки целостности и подлинности файла. Дальше идет заголовок, в котором содержаться данные о самом пакете, версия, архитектура, список файлов и т д. И только после всего этого идет сам архив с файлами пакета.

Для работы с RPM могут использоваться несколько различных пакетных менеджеров, это универсальная утилита rpm, пакетный менеджер zypper в OpenSUSE, dnf в Fedora, urpmi  в Mageia, yum — во многих дистрибутивах, основанных на Fedora.

Рассмотрим основные особенности RPM:

  • Автоматическое разрешение зависимостей в большинстве случаев корректно
  • Файл архива имеет специальный формат
  • Не поддерживается реализация зависимостей с выбором завистимости от пакет1 или пакет2.
  • Не поддерживаются рекомендованные пакеты
  • Позволяет настроить зависимость от файла, а не пакета
  • Все данные об установленных пакетах хранятся в базе данных поэтому при надобности можно проверить контрольные суммы
  • Поддерживаются сценарии как до, так и после установки программ
  • Поддерживается формат SRPM, который содержит в себе исходники программы все патчи с инструкции по сборке, позволяющие собрать программу из исходников на локальной машине.
  • Отличная поддержка Multilib пакетов

CentOS vs Ubuntu: использование ноутбука

Хотя основной целью этой статьи является проверка CentOS и Ubuntu на предмет использования серверов, обе они также являются настольными операционными системами. Если вы часто используете один из них на сервере или серверах, возможно, вам будет удобнее использовать его и на ноутбуке.

Здесь вы увидите более драматические различия между ними. CentOS 7 использует ядро ​​Linux 3.10, а Ubuntu 18.04 использует ядро ​​Linux 4.18, не говоря уже за Ubuntu 19.04, с ядром пятой версии. Более новое ядро ​​обеспечивает поддержку более нового оборудования.

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

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

Победитель: Ubuntu побеждает в этой категории благодаря большому количеству поддерживаемого оборудования.

Что такое сервер Ubuntu?

Прежде чем сравнивать различия между Ubuntu Desktop и Ubuntu Server, давайте выясним, что такое сервер.

Серверы обычно бывают двух форм-факторов: стоечный и башенный. Сервер Tower, по сути, представляет собой настольный компьютер, но его части часто различаются с акцентом на долговечность, стабильность и безопасность. Например, серверы используют ОЗУ с исправлением кода ошибки (ECC). В то время как несерверные рабочие столы этого не делают.

Более того, серверы не обязательно включают периферийные устройства, такие как монитор, клавиатура и мышь. Запуск сервера без периферийных устройств называется «установкой без головы». Программное обеспечение для сервера включает в себя операционную систему, серверное программное обеспечение (например, Apache для хостинга веб-сайтов; сервер печати CUPS) и программное обеспечение безопасности.

Ubuntu Server — это операционная система для сервера, основанная на Ubuntu.

Выводы

Наше сравнение, что лучше Debian или Linux Mint подошло к завершению. Debian – это безусловно один из основных дистрибутивов в мире Linux. Он лёг в основу каждого второго дистрибутива. Но его с трудом можно назвать готовым решением. Он придерживается идеологии свободного программного обеспечения GNU. Но без этого никак, ведь это неотъемлемая часть создания дистрибутивов на его основе. К тому же чистый дистрибутив неплохо подходит для серверов.

Mint – это лёгкий в освоении дистрибутив, который подойдёт тем, кто только перешёл на Linux. Не стоит думать, что для первого знакомства стоит выбирать базовый дистрибутив, вроде Debian. В Ubuntu и его ответвлениях добавлено множество незаменимых вещей, вроде репозиториев, драйверов и прошивок для оборудования.

Если вы всё-таки хотите остановить свой выбор на Debian, то советуем обратить внимание на LMDE. Этот дистрибутив очень близок к оригиналу, но имеет ряд преимуществ

Его проще установить, обновить, и он требует меньше доработок со стороны пользователя. В целом же Debian подойдёт для развёртывания сервера или для тех, кто хочет изучить особенности работы операционной системы. Обычным пользователям будет гораздо проще использовать Linux Mint, особенно после перехода с Windows.

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Ваша ОС
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: