Меню
Σ 004. Управляющий клиентский компьютер на Ubuntu 20.04
Проект CYBERSEED SIGMA — это академический труд, образовательный курс или ветка блога айтишника-предпринимателя?.. Нет, нет и еще раз — нет! Как минимум, точно не по отдельности.

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

Здесь есть и житейская составляющая (а-ля блог), и образовательный аспект, и системное изучение вопроса. Т.е. мы тут и за жизнь, в ее бытовом проявлении, и о том как «наши космические корабли бороздят просторы Вселенной».

Кадр из фильма Appleseed
А раз мы охватываем вопрос полностью, вместе с нами же самими, то нужно уделять внимание и тому кто мы есть, где мы находимся, чем пользуемся и, в целом, зачем нам все это нужно…

Одним из практических аспектов творческой и профессиональной деятельности является наше рабочее место, включая цифровую составляющую.

Вот об этом и поговорим...

«
Буду использовать такую терминологию:

  1. «Сервер» — виртуальный выделенный сервер на котором крутится наше веб-приложение, веб-сервер и прочее вспомогательное программное обеспечение.

  2. «Компьютер» — управляющий клиентский компьютер, с которого мы подключаемся и работаем на Сервере. Он же, попутно, рабочая станция на которой решаем другие айтишные и пользовательские задачи.
Сервером займемся позже, а сейчас рассмотрим Компьютер — комплекс железа, операционки и программного обеспечения, с которого буду развивать проект CYBERSEED SIGMA. Сразу оговорюсь, это отдельный частный случай, ваш вариант подобного информационно-вычислительного комплекса может существенно отличаться. Просто, считаю полезным, прямо вот с нуля, показать на чем я собираюсь работать и чем продиктован мой выбор.
Я не адепт каких-либо систем. Поэтому под решаемую задачу стараюсь использовать подходящий инструмент, но есть опыт, есть предпочтения и даже пристрастия. Поэтому выбор операционной системы, железа и прикладного ПО будет предвзятым.

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

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

Поэтому то, в чем постоянно «сидит» пользователь (KDE, GNOME, Xfce, LXDE— примеры сред рабочего стола, также есть множество ответлений от подобных перечисленным, которые являются самостоятельными и целостными решениями), задает его предпочтения и даже возможности. Ведь каждая среда помимо интерфейсных решений еще тянет за собой всевозможные утилиты, прикладное ПО и прочие компоненты.

Нужно отметить, что всегда можно (где просто, а где с бубном и танцами) установить программы, оконные менеджеры и утилиты, которые свойственны одной графической оболочки в другую. Но, обычно, есть мейнстримный набор решений под каждую операционную систему.
Помимо среды рабочего стола, на возможности и подходы к работе сильно влияют системы управления пакетами. Самые распространенные и что называется, на слуху: RPM (детище Red Hat), dpkg (пошло от Debian, так и расшифровывается: Debian package — часто еще называют, просто .deb-пакеты), Portage (система используемая в Gentoo Linux) и другие.

Если с обывательской (тем более взращенной на операционках от Microsoft) логикой работа с .rpm- и .deb-пакетами еще более или менее понятна, то разобраться с системами Portage, Pacman от Arch Linux и прочими может быть непривычней и оттого сложнее.

Кроме «горизонтального» разнообразия систем управления пакетами, есть ещё и «вертикальная» пирамидка решений. Покажу на примере Ubuntu: dpkg (базовый пакетный менеджер для Debian-систем) –> APT (Advanced Packaging Tool — более высокоуровневая утилита для работы с .deb-пакетами) –> Aptitude (оболочка, чаще знакомая своим псевдо-графическим интерфейсом, для работы с системой APT) –> Synaptic (это утилита уже обладает полноценной графической оболочкой и является стандартным пользовательским «окном» поиска, установки, обновления и удаления программ на Ubuntu).

К вышеописанной «пирамиде» есть еще пара важных дополнений:

  1. у APT (команды, которого в терминале начинаются с apt-get), еще в 2014 году появилась достойная альтернатива, точнее некое логическое и более удобное для пользователей (использующих терминал) его эволюционное развитие. Речь об «apt» — тут можно запутаться. Еще раз: APT — это apt-get, а вот apt — это, упрощенно, apt-get + apt-cache по своему функционалу.

  2. Ubuntu постепенно переводит работу своих дистрибутивов на snap-пакеты. Это их технология. Процесс идет неспеша и нисколько не конфликтует с использованием .deb-пакетов. Но, уже можно, по-тихонечку, начинать разбираться с тем, что из себя представляют snap-пакеты и какие преимущества они несут.
У меня есть давнишний и вполне успешный опыт использования дистрибутива Mandriva. Дошло даже до того, что когда развивал компьютерный сервис, со своими ребятами, собрал и внедрял комплексные решения для небольших корпоративных клиентов полностью на этой ОС. Там и сервер, и локальная сеть, со всеми сетевыми ресурсами, и клиентские машины и даже полный винегрет с проприетарным ПО, вроде 1С и прочего бухгалтерского, под wine-ом).

Так в мир свободного программного обеспечения я погрузился со среды рабочего стола KDE и RPM-пакетов.

К сожалению, история компании, которая создала дистрибутив Mandriva, инфраструктуру вокруг неё, развивала и вполне успешно коммерциализировала все это — закончилась печально :(

Дистрибутив (тогда он назывался Mandrake Linux) был разработан на основе Red Hat Linux Гаэль Дювалем — сооснователем компании MandrakeSoft, которая стала называться Mandriva после приобретения дистрибутива Linux Conectiva. Затем было еще несколько поглащений айтишных компаний. А вот дальше… незнаю по какой причине, но Гаэля, вместе с частью разработчиков, выкинули из компании. После, Mandriva делала еще ряд коммерческих телодвижений по покупке, партнерству и прочему. Но в итоге, в 2015 году компания была ликвидирована. Были конечно еще и форки, да и сама Mandriva вроде жива в обновленной шкурке OpenMandriva Lx, но наши пути, с французским пингвином и его производными, разошлись навсегда.

Эх.. аж слеза навернулась, ну да ладно, движемся дальше ;)
Какие-то еще операционки на базе ядра Linux я конечно же пробовал (спасибо журналам «Linux Format»), но из долгоиграющего… перешел именно на Ubuntu. Причем конкретно подсел, пользовался исключительно ею (какие-то совсем редкие вылазки в Windows совершал тоже). Не вспомню причины, но со временем, как-то снова сполз на винду (а в линукс уже только по делам связанными с кодом и VPS лазил).

Потом образовался паритет между системами: и Windows использовал, и про Ubuntu не забывал. А сейчас, да еще и с активной работой над этим проектом (CYBERSEED SIGMA, который), хочу вновь отстраниться от Windows и плотнее примкнуть в пингвиньей стае. Честно, тут много иррационального конечно замешано, например, любят же яблочники свой Apple, вот и я наверное какой-то частью своей кибердуши прикипел к миру Open Source, в частности к Ubuntu. Хотя я далеко не хакер, в условном Emacs-е не зависаю, а из исходников что-нибудь могу собрать только «из под палки» глючного или и вовсе недоступного иначе, но очень нужного мне, функционала.

Так что есть в опенсорсе и головняк свой (парочкой примеров, по горячим следам, поделюсь ниже), и непередаваемая атмосфера.

Когда в линуксе работаешь, как-то уютно себя чувствуешь. Разумеется вся эта ламповость, ощущение одежки скроенной по себе и прочие приятные и удобные фичи для работы появляются только тогда, когда вы готовы: проявить любопытство к возможностям «свободного» мира, настойчивость в экспериментах и отладке, а также долю креатива, чтобы идти своим путем и не слишком полагаться на то, как надо и принято, а больше делать так, как вам подсказывают ваши цели, приоритеты и если угодно «технологическая» интуиция.
Рабочий компьютер
и описание моего подхода к выбору железа.
Lenovo IdeaCentre 510S-07ICB
Lenovo Ideacentre 510S-07ICB, фото с официального сайта
Буквально, пару недель назад приобрел себе новую железку: Lenovo IdeaCentre 510S-07ICB [90K800F0RS]. Да, все эти символы важны, потому что не те буквы уже означают совершенно иные характеристики, поэтому если вдруг захотите именно такую конфигу для своего компа (ну, мало ли, вдруг вы, сейчас, находитесь в моменте принятия решения, какой комп брать) обращайте внимание на маркировку при заказе. Я покупал в DNS.

Дисклеймер по железке.

У меня до этого на столе стоял Acer Aspire R3700 (сейчас он у старшего сына), которого сменил Acer Revo RL80 (теперь он у мамы). То есть каждый раз я сознательно отдавал выбор эргономичному (малый размер, нешумный, эстетичный) компьютеру, вместо того, чтобы юзать ноутбук (он тоже есть, но сейчас речь о настольной «рабочей лошадке») или более мощный и оптимальный (по соотношению цена/характеристики) системный блок. А если учитывать, что у меня большой (для среднестатистического пользователя и многих админов средней руки) опыт по работе с компами и сетями, то все это выглядит еще более странно. Почему бы мне самому не заказать комплектующие и не собрать то, что нужно? Думаю, поступи я так, не сложно было бы выйти на соотношение по цене/характеристикам в два раза выше (если бы в полноразмерном корпусе собирал), чем те что у новой железки.
3 критерия выбора
Так чем обоснован мой подход к выбору железа?
  • 1
    Достаточность
    Я не играю в игры, 3D-моделированием не занимаюсь (раньше баловался немного), прочей высоконагруженной для процессора, оперативной памяти или видеокарты деятельности не практикую. Поэтому, объективно, нет причин иметь более мощную тачку, чем нужна. Но! Конечно же хочется железа понавороченней ;) только надо соизмерять подобные хотелки со здравым смыслом и другими потребностями себя и семьи.
  • 2
    Эргономика
    Под этот термин я подгоняю сразу несколько аспектов: размеры, производимый шум, внешний вид и прочие субъективные предпочтения. Форм-фактор неттопов или системников с типоразмером Slim-Desktop как раз таки и отличаются небольшими размерами. С учетом невысокой мощности не требуют интенсивного охлаждения, поэтому оно пассивное или обеспечивается маломощными и бесшумными кулерами. Часто корпуса у них оригинально выполнены, особенно у неттопов. Да и новоприобретенный IdeaCentre внешним видом меня вполне устраивает. А из собственных заскоков, которые железки описанных форм-факторов позволяют удовлетворить — это желание лицезреть компьютер на столе (так и по доступу к портам удобнее и для поверхностной диагностики сподручнее).
  • 3
    Стоимость
    Достаточность и Эргономика, как две гирьки на весах. Первая снижает цену — понятно, что чем меньше потребностей, к скажем так «мощности» железа, тем ниже стоимость. А вот эргономика — это «вещь в себе»… Выбирая более миниатюрную реализацию необходимых «выходных» характеристик компьютера, я автоматически соглашаюсь на более высокую цену, так как чем большего мы хотим от меньшего, тем это дороже (кроме случаев, когда мы наблюдаем переход на новые поколения железок, но и тогда требуется время для снижения стоимости за счет эффекта масштаба). Лучшая эргономика ведет к повышению стоимости продукта за счет использования более миниатюрных компонентов.
Вот этими тремая ползунками на эквалайзере принятия решения о том что купить я обычно и играю, когда задумываюсь о новой «рабочей станции», которая будет стоять на моем столе в кабинете и позволит комфортно работать. Если возвращаться к самосборной тачке, сюда еще можно добавить фактор времени — проще и быстрее купить готовое, но если денег впритык и хватает на готовое с совсем уж скромными характеристиками, то для сравнения, к выбранной модели, попробуйте просчитать набор комплектующих — может выйти ощутимо дешевле.

Чтобы было понятно, «байер» железок из меня не очень, т.е. рыночную конъюктуру под свои задачи я не шибко отслеживаю. Тот же IdeaCentre пару недель назад, когда был приобретен, стоил на несколько тысяч меньше. С другой строны, с разовыми покупками в долгосрочной перспективе имеет значение именно «достаточность» и «эргономика» (для вас это могут быть свои неценовые критерии), а не то насколько тысяч вы сэкономили или переплатали — эти перепады (речь больше о «переплате») очень быстро сгладятся вашими результатами, а вот чтобы они были — за компьютером должно быть комфортно и эффективно работаться.
Под капотом у этой железки: процессор Intel Core i5-9400 (6 ядра), с базовой тактовой частотой 2,9 GHz; SSD (твердотельный накопитель) на 256Gb; оперативная память на 8Gb; интегрированная видеокарта Intel UHD Graphics 630. Так же докупил Wi-Fi адаптер TP-LINK TL-WN821N.

Монитор использую все тот же: Samsung SyncMaster S24B350.

У SSD на первый взгляд маловато емкости, но у меня есть внешний AData на 1Gb + облачные хранилища. Твердотельный накопитель используется под операционки и оперативную работы с данными, а все что нужно сохранить упорядоченно лежит на внешних хранилищах.
Почему подробно о железе Компьютера расписал? Ведь это даже не Сервер, там то понятно — нужно держать нагрузку и все такое…

Все дело в том же комфорте и производительности. Компьютер, периферийное оборудование и ваши навыки в роли пользователя не должны становится «узким местом» между вами и вашими результатами.

Приведу пример расширения «бутылочного горлышка»: скорости ввода с клавиатуры.
Несколько лет назад освоил (это громко сказано, ведь еще есть куда улучшать показатели как по скорости, так и по кол-ву ошибок при вводе) метод слепой дестипальцевой печати. Помимо очевидного плюса, который выражается в скорости набора текста, есть еще и неочевидный: вы смотрите на монитор, не отвлекаетесь на клавиатуру. Это особенно актуально, если создаете текстовый контент, а любая предпринимательская и профессиональная деятельность в сфере цифровых технологий тесно связана с генерацией кучи текста.

Эргономическая клавиатура от Microsoft «Natural Ergonomic Keyboard 4000»
А чтобы новоприобретенный навык слепой печати обрел поддержку в инструментальном плане — купил клавиатуру Microsoft Natural Ergonomic Keyboard 4000. Предупрежу заранее, что она удобна только для дестипалцевой печати, как обычно вы ею замучаетесь пользоваться. И она очень большая, даже громоздкая. Чтобы ею пользоваться нужно продумать на чем она будет лежать. Но, если все «условия» соблюдены, то эта клава будет вашим верным спутников в мире буквопечатания.

К слову, у меня за Компьютером две клавиатуры: Natural Ergonomic и простая миниатюрная Acer KU-0906 Slim Keyboard. Говорю как есть, так получается удобнее, потому что на инглише шустро печатать еще не научился.
Пора завязывать разговоры о железе… Думаю, примерное представление на чем я сейчас работаю у вас сложилось. Главное, чего хотел добиться всем этим описательством железок, так это того, чтобы вы поняли, что для всей последующей деятельности, а я вам обещаю зайдем мы очень далеко, не нужно какого-того крутого комьютера. Ведь если отбросить некоторые мои эргономические «капризы» (да, даже с их учетом), все получается очень бюджетненько.

Понятно, что многим жителям столиц, сотрудникам госкорпораций и прочим встроенным в вертикали, чей достаток позволяет не сильно следить за статьями своих расходов, все это покажется ерундой. Не думаю, что мой формат подачи контента предназначен для подобных (при всем уважении к тем, кто сам всего добился, а такие есть) — есть ведь платные курсы и стажировки при крупняке, там и материал лучше структурирован, и трудоустройство или прочий карьерный рост предусмотрен.

Я пишу для обычных людей, у которых семейный бюджет чувствителен к покупкам нового оборудования, приобретению подписок на образовательные курсы и технологические сервисы. Поэтому и VPS-ки ищу самые бюджетные (но, приемлемые по требуемым характеристикам), и вот про логику выбора железа столько написал.
Двоичная начинка
— перейдем к программному обеспечению Комьютера.
Если вы реалист-прогматик, работающий или планирующий работать с клиентами (в роли предпринимателя или фрилансера), то имейте под рукой, как минимум две полноценные операционные системы: Windows (лучше 10-ку) и на базе ядра Linux (лучше без очень сильных заморочек по настройке).

Возможно, ваша специфика требует наличия оборудования и ПО от Apple, но тут я вам точно не советчик, у меня даже iPhone-а нет. Уверен на просторах Интернета вы найдете более «подходящего» для вас автора и коллегу по технологиям…

Изображение CoxinhaFotos с сайта Pixabay
Классика жанра следующая: сначала ставите (если в комплекте с железом не идет) винду, затем Ubuntu. На все про все вам понадобится USB-флешка, программа Rufus, дистрибутивы Windows и Ubuntu.

Откуда брать Windows ваш решать, варианты есть: вы купили комп с предустановленной виндой, приобрели отдельно, скачали откуда-нибудь… есть еще вариант апгрейда предыдущей лицензионной версии и наверное, еще какие-то, но мне они неведомы.

Лучше соблюдать лицензионную чистоту рабочего места, поэтому если Windows вам особо не нужен, то посмотрите в сторону триальных версий (я в них не эксперт, большего не подскажу), возможно, вы приноровитесь запускать винду именно тогда, когда она вам действительно нужна, при этом действуя абсолютно легально. Есть в конце концов возможность разворачивать триальные версии в виртуальных машинах под Ubuntu-ой (как и другими ОС на базе ядра Linux), но тему виртуализации на Компьютере (с помощью KVM или VirtualBox) мы рассмотрим как-нибудь позже.
Примечание:
я здесь не буду описывать процесс установки обеих систем, как и программного обеспечения. Но, если это нужно хотя бы нескольким людям — вы не стесняйтесь и спрашивайте, я все распишу отдельной статьей, мне не сложно. Только сразу поправку на мое железо делайте: использую стиль разделов GPT, а обе операционки 64-х битные.
Так совпало, что когда я приступил к работе над этой статьей Ubuntu выкатила новый релиз своего дистрибутива под версией 20.04 LTS и кодовым именем «Focal Fossa». Так что я немного поигрался с ним и поставил на замену Ubuntu 18.04 LTS. Поэтому основной операционкой на Компьютере будет Ubuntu 20.04 LTS.

Из глюков требующих «танцев с бубном» у меня возникли проблемы с Wi-fi-ем. Со связью решение есть, проблему локализовал, осталось настроить все чтобы не слетало при штатных обновлениях Ubuntu.

Из интересного и нового для себя: начал использовать файловую систему Btrfs и программу Timeshift. Опыт потрясный — все четко и стабильно работает.

Скриншот операционки Focal Fossa, такое кодовое название у Ubuntu 20.04
Btrfs
Достаточно необычная файловая система, чтобы разобраться в «логике» её работы, нужно предпринять отдельные усилия. Любопытствующих пока призываю проделать собственные изыскания в Интернетах, возможно, позже сам соберусь и дополню материал.
Timeshift
Программа позволяющая делать снимки системы. Идеально работает с возможностями Btrfs. С их помощью получаем что-то наподобие точек восстановления системы в Windows.
Положа руку на сердце, стоит признать, что не всегда есть время следовать «true way» и изучать возможности системы и новых программ последовательно и глубоко. Т.е. вот поставил прогу, она потянула за собой кучу зависимостей (других пакетов), потом поставил еще одну, а она задействовала пакеты, которые встали вместе с установленным до этого ПО… А после система стала нестабильной, по предварительной оценке из за первой программы. Что делать? Да, есть грамотные подходы к процессу установки/удаления/обновления ПО и контроля зоопарка зависимостей. Но, часто, нужно работать быстро и без вникания во все тонкости.

Чтобы безопасно экспериментировать, в идеале, можно все делать в виртуальных машинах. Подними там ту же Ubuntu и делай что хочешь. Но, и на это нужно время и некоторая сноровка. Какой еще вариант? Чуть больше думать о том, что же ты, откуда и собственно, зачем устанавливаешь. А также снабдить себя простым, как три копейки, механизмом отката состояния системы до момента, когда все работало как надо. Вот как раз последний вариант прекрасно реализует связка файловой системы Btrfs с утилитой Timeshift.

К слову, раздел с пользовательскими данными (/home, который) я оставил на файловой системе Ext4 (ту что по-умолчанию Ubuntu и многие другие ОС на линуксе предлагают).
Если немного резюмировать, что я получаю на выходе? Мой Компьютер полностью готов к работе, как над айтишными задачами, так и над предпринимательскими. Что подтверждается моей ежедневной практикой. У меня под рукой две ОС, полный набор необходимых программ, железо шустро работает. Что называется «твори — не хочу».

Вот за таким Комьютером я и продолжу работу над проектом CYBERSEED SIGMA. Присоединяйтесь! Если есть вопросы по железу или Ubuntu — пишите, подскажу чем смогу (но, сильно копать не буду, все же наша цель освоить технологический стек и научиться выкатывать свои цифровые продукты в мир).