LINUX.ORG.RU

Избранные сообщения targitaj

настройка почтового релея

Форум — Admin

Приветствую. Помогите пожалуйста, на вас последняя надежда. Есть внешний IP адрес. 11.11.11.11 смотрит в локалку через роутер. В локалке нужно поднять два почтовых сервера для разных доменов. Я так понял, что это можно сделать только через релей. Есть 2 почтовока Debian/Postfix/Dovecot на (Post1)192.168.1.2 и (Post2)192.168.1.3. Порты на роутере проброшены на 192.168.1.2. Почта уходит и приходит. Какие настройки в постфиксе нужны на строне Post1 и Post2 чтобы отправлять и принимать почту на втором почтовике. Спасибо.

 ,

drsever
()

Мораль матрицы3

Форум — Talks

Хронология:
изобретают вижуал матрицу 1
лень исправлять косяки избретают Объектив матрицу 2, залатывая её девопсами на ходу
лень полностью редизайнить матрицу3 , поэтому в матрице3 три тусят и старые программы, куски нового года и ещё какие то бомжи
ИИ настолько ленива чёта делать с матрицей 3, что он выдумывает ещё пару парадигм и ОСМЯП.
Код настолько кривой, что сторожевые антивирусы начали «выносить со складов код ядра и продавать его по частям в Зеон». Старые программы стырили часть кода новых программ и устраивают содомию с железом, ходят куда попало, в область ядра, драйверов, сенсоров, совокупляются с Х сервером.

ИИ пытается ещё чота делать, но уже нифига не может, потому что не понимает...как это всё работает и зачем там эти кнопки
Зовёт человека, которые не понимает ещё больше и который успешно ломает 95%.
[хэппи енд]

мораль:
1. проводите аудит кода
2. документируйте код
3. используйте ЯП, который даёт невиданно щедрую возможность документировать то, что написал.
4. не работайте над проектами, в которых руководство заставляет устраивать содомию с железом, ходить под себя, в область безконсольщины, драйверов, сенсоров, совокупляться с Х сервером, ведь рано или поздно вам придётся звать Человека, который сломает всё, что вы «сотворили».
5. ???

 ,

darkenshvein
()

Чем нарисовать дом?

Форум — Talks

Стоит задача: спроектировать одноэтажный дом для личных нужд.

Под офтопиком любители используют SketchUp, Renga или пиратцкий ArchiCad.

Есть ли что-то подобное под онтопик? Из того что попробовал:

  • SweetHome3D - годится только для набросков, точого позиционирования объектов я там не нашел. Как там дела что-то вроде крыши - решительно не понятно.
  • FreeCAD с верстаком Arch - 2 часа убил на их вики, пробовал уроки, но то ли слишком большой порог вхождения, то ли я тупенький.

 , , , scetchup

Turbid
()

intel дрова плохо пахнут?

Форум — Talks

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

https://www.phoronix.com/scan.php?page=news_item&px=Ubuntu-Debian-Abandon...

Что за ... Поясните кто в теме.

И да, слава Арчевской wiki, что бы я без них делал. Хотя у меня бубунта, но полезную инфу про карточку я брал у них (в том числе и ссылку на похороникс)

 , ,

zloelamo
()

Релиз Wine 4.0

Новости — Open Source
Группа Open Source

Команда Wine с гордостью сообщает, что стабильный релиз Wine 4.0 теперь доступен.

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

  • Поддержка Vulkan.
  • Поддержка Direct3D 12.
  • Поддержка игровых контроллеров.
  • Поддержка High-DPI на Android.

Что нового в Wine 4.0

( читать дальше... )

>>> Полный список изменений

 ,

Kron4ek
()

Что будет с новыми дисками, если уже есть все от /dev/sda до /dev/sdz

Форум — Talks

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

 , ,

praseodim
()

Написал небольшое howto по установке драйверов AMD Radeon RX580 в Debian 9

Форум — Linux-hardware

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

Рассматривается установка свободных драйверов OpenGL и проприетарных OpenCL на ветку stable ОС Debian 9.6 (Stretch) с ядром 4.9.0-8. Проприетарных OpenCL, поскольку карта ставится в машину с процессором старее Haswell/Ryzen, которые не поддерживаются ROCm.

Информация также должна годиться для RX570 и RX470, RX480. И скорее всего, для всех остальных RX 4xx, RX 5xx, кроме RX 590 (но может и с ней сразу заработает) - эта карточка стоит несколько особняком. В конце есть пара теоретических (самой карты нет и не пробовал) соображений, что может понадобиться, чтобы она заработала.

Сразу скажу, что информации на официальной вики проекта слишком мало https://wiki.debian.org/GraphicsCard#AMD.2FATI

В терминологии AMD у этой карты архитектура «polaris», она же «Arctic Islands» она же GCN 4th gen (4-е поколение Graphics Core Next). К ней относятся карты RX 460, RX 470, RX 480, RX 540, RX 550, RX 560, RX 570, RX 580

Микроархитектура карт (RX 470, RX 480) == (RX 570, RX580) практически до неразличимости на программно-драйверном уровне. Довольно много подробностей на эту тему можно прочесть здесь: https://wiki.gentoo.org/wiki/AMDGPU. Версия фирмвари от AMD - polaris10 для amd 480 и amd 580 (могут быть разные буквенные индексы у фирмвари).

Так как до этого на компьютере стояли карты от Nvidia надо избавиться от их драйверов. Рекомендации wiki Debian может оказаться недостаточно.

Но по порядку. Все делаем от root, разумеется.

Установка свободного драйвера OpenGL:

  1. Добавляем contrib и non-free в репозиторий (/etc/apt/sources.list), если еще этого не сделано.
  2. Добавляем dpkg --add-architecture i386
    В принципе необязательно, но весьма желательно для некоторых пакетов. В том числе для wine
  3. apt-get update
  4. apt-get install xserver-xorg-video-amdgpu libdrm-amdgpu1 libgl1-mesa-dri libgl1-mesa-glx glx-alternative-mesa
  5. apt-get install -t sid firmware-amd-graphics
    -t sid опционален. (но сам пакет ставить нужно) У меня RX580 и с фирмварью из stable работает, но возможно кому-то.нужны более новые бинарники к карте. Впрочем, вполне можно не подключать testing и sid ветки репозиториев, если отдельно скачать пакет от sid и содержимое /lib/firmware/amdgpu добавить вручную. Также фирмварь появится и при установке проприетарных драйверов, даже только OpenCL.
  6. Проверяем, что модуля nvidia нет в списке /etc/initramfs-tools/modules
    Если он там есть удаляем или коментим #
  7. Редактируем /etc/modprobe.d/nvidia.conf комментируем все записи. Добавляем строчку blacklist nvidia
  8. Выполняем update-glx --config glx
    Выбираем среди альтернатив (скорее всего от nvidia, если была карта nvidia) mesa
  9. Reboot

Должно заработать, если не заработало, то я даже не знаю. Надо будет внимательно читать лог /var/log/Xorg.1.log и смотреть, что там делает строчка nvidia =)

glxinfo -B
name of display: :0
display: :0  screen: 0
direct rendering: Yes
Extended renderer info (GLX_MESA_query_renderer):
    Vendor: X.Org (0x1002)
    Device: AMD POLARIS10 (DRM 3.20.0 / 4.9.0-8-amd64, LLVM 3.9.1) (0x67df)
    Version: 13.0.6
    Accelerated: yes
    Video memory: 8171MB
    Unified memory: no
    Preferred profile: core (0x1)
    Max core profile version: 4.3
    Max compat profile version: 3.0
    Max GLES1 profile version: 1.1
    Max GLES[23] profile version: 3.1
OpenGL vendor string: X.Org
OpenGL renderer string: Gallium 0.4 on AMD POLARIS10 (DRM 3.20.0 / 4.9.0-8-amd64, LLVM 3.9.1)
OpenGL core profile version string: 4.3 (Core Profile) Mesa 13.0.6
OpenGL core profile shading language version string: 4.30
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile

OpenGL version string: 3.0 Mesa 13.0.6
OpenGL shading language version string: 1.30
OpenGL context flags: (none)

OpenGL ES profile version string: OpenGL ES 3.1 Mesa 13.0.6
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.10

Добавляем apt-get install mesa-vdpau-drivers libvdpau-va-gl1 для ускорения фильмов.

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

Добавление возможностей OpenCL

  1. Берем пакет 17.50 для Ubuntu. Официально драйвера рассчитаны на Ubuntu, SuSe или RHEL c CentOS, так как Ubuntu весьма родственна Debian, она наиболее совместимая. При этом 18-я версия для Stretch (Debian 9) не подойдет. 17.50 вроде последняя среди 17-ой версии. Версия 17.50 почему-то не находится явно по ссылкам для для предыдущих версий на сайте amd
    Поэтому скачиваем по прямой ссылке, не забудьте referer - без него не даст скачать.
    wget -c -O amdgpu-pro-17.50-511655.tar.xz --referer=http://support.amd.com https://www2.ati.com/drivers/linux/ubuntu/amdgpu-pro-17.50-511655.tar.xz

    Проверяем по контрольной сумме корректность скачивания (есть сообщения, что часто отдается битый файл, тогда надо повторять до успеха).
    md5sum 
         7c3da10af92f6e259bd5d2b250a70c91  amdgpu-pro-17.50-511655.tar.xz
    sha256sum
         a623f95b7bdbad981e19bd30304f7943f8827d230b702dc5b580793efe70ea07  amdgpu-pro-17.50-511655.tar.xz
    
  2. Создаем каталог
    #mkdir /var/opt/amdgpu-pro-local/
  3. Распаковываем туда содержимое скаченных драйверов tar -xpJf amdgpu-pro-17.50-511655.tar.xz --strip=1 -C /var/opt/amdgpu-pro-local/
    Обратите внимание на опцию --strip=1 - она убирает первый уровень вложенности каталогов, без нее внутри был бы создан вложенный каталог с пакетами, а этого нам не надо.
  4. Устанавливаем нужные права владельца:
    chown -Rv _apt:root /var/opt/amdgpu-pro-local/
    Важно. Без этого потом установка будет валиться с ошибкой типа
    N: Download is performed unsandboxed as root as file '/var/opt/amdgpu-pro-local/./amdgpu-core_17.50-511655_all.deb' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied)
    - причем в том числе и если запустить установочный скрипт внутри пакета с драйверами, даже если там поменять ubuntu на debian. Вот все вроде будет нормально, но зафейлится в процессе установки на правах для установщика пакета.
  5. Создаем файл /etc/apt/sources.list.d/amdgpu-pro-local.list
    echo 'deb [ trusted=yes ] file:/var/opt/amdgpu-pro-local/ ./' > /etc/apt/sources.list.d/amdgpu-pro-local.list
  6. apt-get update
  7. apt-get install amdgpu-core amdgpu-dkms amdgpu-pro-core clinfo-amdgpu-pro ids-amdgpu libdrm-amdgpu-amdgpu1 libdrm2-amdgpu libopencl1-amdgpu-pro
    Внимательно следим за процессом установки, компиляция чере dkms драйвера и его установка должны быть безошибочными. Это ключевой момент, без чего работать ничего не будет. Разумеется должны быть установлены заголовки ядра linux-headers-4.9.0-8-common и компиляторы со всем необходимым. dkms вроде сам добавится через зависимости, если еще не стоит.
  8. Опционально. Можно переустановить пакет или скопировать из других драйверов содержимое с более свежим firmware для amd, так как amdgpu-dkms содержит каталог firmware которым перепишет старые бинарники.
  9. reboot

Теперь OpenCL версии 1.2 доступно. Можно для проверки запустить clinfo или поставить какой-нибудь пакет, его использующий, например, hashcat и запустить бенчмарк hashcat -b

Некоторые мысли по поводу RX 590. Я не знаю, может этого и не нужно или наоборот этого не хватит для работы, просто предполагаю.

В принципе, RX 590 почти тоже самое, что и RX580, но могут быть нужны новые фирмвари, которые можно взять из новейших драйверов 18.50, распотрошив файл amdgpu-dkms_18.50-708488_all.deb и достав их из каталога usr/src/amdgpu-18.50-708488/firmware/amdgpu скопировав затем в /lib/firmware/amdgpu

Также в пакете ids-amdgpu от 17.50 есть файл amdgpu.ids установленный в /opt/amdgpu/share/libdrm/amdgpu.ids - его полезно будет заменить таким же из пакета libdrm-amdgpu-common_1.0.0-708488_all.deb

Чего я не понял, это почему для OpenCL пишется что-то вроде Memory : 4048/7916 MB allocatable

Куда 4Гб памяти дели? Или так и должно быть, там какое-то разделение есть на основную и константную, может просто не понял чего насчет работы OpenCL.

 , ,

praseodim
()

Случилась беда с KRoN73 :(

Форум — Talks

KRoN73 RIP

Всё написанное ниже уже неактуально :(

Друзья. Под новогодние праздники (с 29 на 30) случилась ужасная беда со старейшим участником форума - KRoN73. Инсульт. Да не просто инсульт, а такой, что сейчас Рома в реанимации в Боткинской больнице в коме после трепанации. Позачера (2.01) его состояние изменилось с «нестабильно тяжёлый» на «стабильно тяжёлый», далее без динамики состояние на 04.01 - уменьшился отёк, пытается самостоятельно дышать, но пока без сознания. Разумеется, никто никаких прогнозов не даёт (если говорить прямо, даже на жизнь)

Весь ужас ситуации в том, что:

1) У него двое несовершеннолетних детей (дочь в младших классах и сын дошкольник), супруга - кандидат биологических наук (что означает доход чуть более, чем ничего) и недавно взятая ипотека ипотеку закрыли совсем недавно, cоответственно, Рома - главный кормилец в семье.

2) Рома не успел оставить доступ к своим счетам и картам получили доступ, там есть небольшая сумма.

Я никогда не делал подобные обращения, поэтому не знаю, что писать и немного (на самом деле много) растерян.

Ромина супруга Саида неохотно опубликовала в tg-группе номер своей банковской карточки Сбербанка (оттранслировано на форум Ромы) -

4276 8380 5742 5110
Саида Шамильевна Каршиева
Пожалуйста, в назначении/сообщении платежа (если есть такое поле) указывайте «на лечение» или «добровольное пожертвование на лечение»

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

Если вдруг кто что-нибудь переведёт ей - буду навечно благодарен. Также могу выступить посредником между paypal (koptev@gmail.com) и супругой Ромы (разумеется, со всеми пруфами, если понадобится). Ни разу не принимал много платежей, наверное, стоит указывать в комментарии к платежу «Роману на лечение». опытные товарищи подсказывают, что ничего не надо писать в комментарии к paypal Звонил в банк, там посоветовали всё же в paypal указывать назначение платежа (например, «На лечение Романа Каршиева»), чтобы, в случае возникновения вопросов, предоставить распечатки инвойсов из интерфейса paypal.

Пожалуйста, давайте не будем в этой теме дискутировать о политике, национальности и вероисповедании.

 ,

Deleted
()

Беспроводные наушники bluetooth

Форум — Linux-hardware

Пошел я тут, и под давлением вау-импульса купил себе дорогущие Bluetooth-уши от зенхайзера. В мечтах мне виделась беспроводная гарнитура которая и для телефона подойдет, и чтобы на компе гамать общаясь при этом в мамбле. Реальность немного разбила эти мечты, я узнал про A2DP, aptX, avrcp, HSP, HFP и много других страшных слов. Путем черной магии и установки подпольных драйверов мне удалось включить aptX на своем рабочем ноуте на оффтопике. Чтож, уже что-то, хотя микрофоном и пришлось пожертвовать.

Но скоро я планирую покупать себе комп мечты, и эти уши предполагались как первая деталь этого будущего компа. А теперь я уже и не уверен, а как дела с aptX обстоят в линуксах? Может стоит купить звуковой передатчик типа зенхайзеровского же BT T100? Какой есть наиболее простой способ сделать так, чтобы уши хорошо завелись под линуксом. Ставить планирую федору.

 , ,

morse
()

Большая зимняя распродажа на GOG!

Новости — Игры
Группа Игры

И снова самый лучший праздник становится все ближе! А вместе с ним и самое приятное - тысячи DRM-Free игр на GOG с огромными скидками, бесплатные подарки и новые предложения в GOG Connect. Твой кошелек точно не выдержит этого! Новогоднее волшебство начинается сегодня.

И что же на этот раз приготовил нам GOG Moroz?

  • Бесплатный подарок - Full Throttle Remastered в течении 48 часов!
  • Бесплатные игры за покупки! Купи любой тайтл и получи бесплатно легендарную TBS Fantasy General. Когда сумма покупок превысит 499 рублей - получи в подарок потрясающий космосим EVERSPACE.
  • Новые игры в GOG Connect - перенеси всю серию Shadowrun из Steam в GOG совершенно бесплатно! Новые предложения добавляются постоянно. Освободи купленные в Steam игры от DRM!
  • Более 2000 предложений в течении 3х недель.
  • Новые ежедневные предложения с особыми скидками! Каждый день в 17:00.

Распродажа продлится до 4 января, 2:00 по московскому времени.

>>> Распродажа на GOG

 , , , ,

anonymous
()

Fallout of Nevada

Форум — Games

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

Fallout: Nevada - любительский неофициальный приквел к игре Fallout. Это не сборка чужих идей или модов, не дополнение к оригинальной истории и не переименованный клон оригинала. Это полноценная конверсия, которая заимствует типовой контент и движок оригинала, остальной же ресурс (скрипты, сюжет, диалоги, персонажи, локации и пр.) создан с нуля специально для проекта.
Основные нововведения: Совершенно новый сюжет
Более 100 квестов
Новая карта мира: 12 крупных пунктов и 12 специальных встреч
2,7 Мб игрового текста (в Fallout 2 было 3,5 Мб)
Новая музыка от Nobody's Nail Machine
Особенности: Сюжет раскрывает предысторию Города Убежища, известного по игре Fallout 2.
Центральное значение отведено не боям, а квестам, историям и вселенной Fallout.
Высокая аутентичность локаций.

Брать здесь http://fallout-nevada.ucoz.ru/index/fontec/0-5
Приятной погружения.

 

bga_
()

OpenVPN намного медленее IPSec, почему?

Форум — Admin

Сабж. На одном и том же ВПСе подняты OpenVPN и IPSec (Strongswan) серверы, при этом через них очень разная скорость соединения:
20-25 Мбит/с у OpenVPN против 80-90 Мбит/с у Strongswan.
Измерял iperf'ом от клиента до сервера (хотя speedtest.net показывает примерно то же самое).
Пробовал выставлять одинаковое шифрование (AES-128 у обоих), но на результат это заметно не влияет.
Почему так может быть и как «ускорить» OpenVPN?

 , , ,

gasinvein
()

Веб как он есть

Форум — Talks

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

— Это теперь называется Front-End инженер, но да, я — именно он. Я работаю с вебом в 2016. Визуализации, музыкальные плееры, летающие дроны, которые играют в футбол, все что угодно. Я только что вернулся из JsConf и ReactConf, так что я знаю новейшие технологии для создания веб-приложений.

— Круто. Мне нужно создать страницу, которая отображает последние действия со стороны пользователей, так что мне просто нужно получить данные от REST и отобразить их в какой-то фильтруемой таблице, ну и обновлять её, если что-то изменится на сервере. Я думал, может быть, использовать JQuery для извлечения и отображения данных?

— О, Мой Бог! Нет! Никто больше не использует JQuery. Ты должен попробовать React: это — 2016!

— Интересно. Что такое React?

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

— Звучит заманчиво. Могу ли я использовать React для отображения данных с сервера?

— Ага, но сначала нужно добавить React и React DOM в виде библиотек.

— Подожди, почему две библиотеки?

— Ну, одна — это сама библиотека, а вторая — для манипулирования DOM, который ты теперь можешь описать в JSX.

— JSX? Что такое JSX?

— JSX — это просто расширение синтаксиса JavaScript, который выглядит очень похоже на XML. Это своего рода еще один способ описать DOM. Думай о нем, как об улучшенном HTML.

— Что случилось с HTML?

— Это 2016. Никто больше не пишет на сыром HTML.

— Ну хорошо. Если я добавляю эти две библиотеки, то я могу использовать React?

— Не совсем. Нужно добавить Babel, а затем можно использовать React.

— Другая библиотека? Что за Babel?

— О, Babel — это транспайлер, он позволяет ориентироваться на конкретные версии JavaScript, в то время как пишешь код в любой версии JavaScript. Тебе не обязательно добавлять Babel для того, чтобы писать на ReactJS, но если ты это не сделаешь, то ты застрял с ES5, ну а это 2016, ты должен кодить в ES2016+ как и все крутые чуваки.

— ES5? ES2016+? Я потерялся. Что за ES5 и ES2016+?

— ES5 означает ECMAScript 5. Это версия, на которую ориентируется большинство, поскольку она реализована в большинстве браузеров на сегодняшний день.

— ECMAScript?

— Да, знаешь стандарт JavaScript, который был основан в 1999 году после его первоначального выпуска в 1995 году? Тогда, когда JavaScript был назван LiveScript и только работал в Netscape Navigator. Это было очень запутано тогда, но, к счастью, теперь все ясно, и у нас есть 7 версий этой реализации.

— 7 версий. Серьезно. А ES5 и ES2016+ это?…

— Пятое и седьмое издание соответственно.

— Подожди, а что случилось с шестым?

— ES6? Да, каждое издание является надстройкой предыдущего, так что если ты используешь ES2016+, то ты используешь все функции предыдущих версий.

— Хорошо. А зачем использовать ES2016+ над ES6 тогда?

— Ну, ты можешь использовать ES6, но для интересных штук, типа async и await, тебе нужно использовать ES2016+. В противном случае ты застрял с ES6 генераторами и сопрограммами для блокировки асинхронных вызовов и нормального управления потоком.

— Я понятия не имею, что ты только что сказал, и все эти имена запутаны. Слушай, я просто хочу загрузить кучу данных с сервера, просто подключить JQuery из CDN и просто получить данные с помощью AJAX. Почему я не могу сделать это?

— Чувак, это 2016. Никто не использует JQuery больше, это заканчивается кучей запутанного кода. Все же это знают.

— Ясно. Так что моя альтернатива — это загрузить три библиотеки для извлечения данных и отображения таблицы HTML.

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

— Понятно. А что за менеджер модулей?

— Определение зависит от окружающей среды, но для веба мы обычно подразумеваем все, что поддерживает модули AMD или CommonJS.

— Хорошооооо. А AMD и CommonJS это?…

— Определения. Есть куча способов, чтобы описать, как несколько библиотек и классов JavaScript должны взаимодействовать. Ты можешь написать несколько файлов JavaScript, определяющих API AMD или CommonJS, и использовать что-то вроде Browserify, чтобы связывать их.

— Хорошо, имеет смысл… наверное. А что такое Browserify?

— Это инструмент, который позволяет связать CommonJS описанния зависимостей для файлов, которые могут быть запущены в браузере. Он был создан, потому что большинство людей публикуют эти зависимости в NPM.

— NPM?

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

— Как CDN?

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

— О, как Bower!

— Да, но это 2016, сейчас никто больше не использует Bower.

— Хм, ясно… так мне нужно загрузить библиотеки из NPM?

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

— О, это как в Angular!

— Angular это слишком 2015. Но да. Angular тоже там есть, наряду с VueJS, RxJS и другими интересными библиотеками из 2016. Хочешь узнать о них?

— Давай придерживаться React, я уже узнал слишком много о нем. Так что, если мне нужно использовать React, я вытяну его из этого NPM, а затем использую Browserify?

— Да.

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

— Ага, именно поэтому ты используешь менеджер задач, типа как Grunt или Gulp, или Broccoli для автоматизации запуска Browserify. Ты даже можешь использовать Mimosa.

— Grunt? Gulp? Broccoli? Mimosa? Черт возьми, о чём мы говорим сейчас?

— Task менеджеры. Но они уже не такие крутые. Мы использовали их в стиле 2015 с Makefiles, но теперь мы перешли на Webpack.

— Makefiles? Я думал, что в основном это используется для C или C++ проектов.

— Ага, но, видимо, в вебе мы любим делать вещи сложными, а затем вернуться к основам. Мы делаем это типа каждый год. Ты подожди, через год или два мы еще запилим сборки (assemblies) в вебе.

— Пффф. Ты упомянул что-то под названием Webpack?

— Это другой менеджер модулей для браузера, в то же время он и своего рода Task менеджер. Это как улучшенная версия Browserify.

— ОК. А почему он лучше?

— Ну, может быть не лучше, но более гибкий в плане того, как зависимости связаны. Webpack позволяет использовать различные менеджеры модулей, а не только CommonJS. Например, родные модули ES6.

— Я очень запутался в этих CommonJS/ES6.

— Да все в этом запутались, но можешь больше не париться, потому что есть SystemJS.

— О, Боже, опять что-то-JS. Хорошо, а что это за SystemJS?

— Ну, в отличие от Browserify и WebPack 1.x, SystemJS представляет собой динамический модуль загрузчика, который позволяет связать несколько модулей в нескольких файлах, а не связывая их в один большой файл.

— Подожди, я думал, что мы хотели объединить наши библиотеки в один большой файл и загрузить его!

— Да, но из-за HTTP/2 несколько HTTP запросов на самом деле лучше.

— Стоять! Так чего же мы не можем просто добавить три оригинальные библиотеки для React?

— Ты, конечно, можешь добавить их в качестве внешних скриптов с CDN, но все равно нужно будет добавить Babel.

— Эх. И это плохо, не так ли?

— Да, придется включить полностью Babel-core, а это не будет эффективным для production. На production необходимо выполнить ряд предварительных задач, чтобы проект был полностью готов, а это ритуал, в сравнении с которым вызвать дьявола — это рецепт как сварить яйцо. Надо будет минимизировать файлы, сделать uglify, поиграться со стилями, подумать о загрузке скриптов…

— Понял, понял. Но если не скачивать библиотеки непосредственно с CDN, то как иначе?

— Я бы сделал транспайл из TypeScript с помощью комбо Webpack + SystemJS + Babel.

— TypeScript? Я думал, что мы пишем код на JavaScript!

— Typescript — это и есть JavaScript, или, лучше сказать, надмножество JavaScript. Более конкретно — JavaScript на версии ES6. Ну, та шестая версия, о которой мы говорили.

— Я думал, что ES2016+ — уже надмножество ES6! Почему нам сейчас нужен еще и TypeScript?

— Потому что это позволяет нам использовать JavaScript как типизированный язык и уменьшить количество ошибок во время выполнения. Это 2016, надо добавить некоторые типы в код на JavaScript.

— И TypeScript, очевидно, делает это.

— И Flow, хотя он проверяет только типы, в то время как TypeScript является надстройкой JavaScript, который нужно скомпилировать.

— Эээ… и Flow?

— Это — инструмент для проверки статической типизации, сделанный парнями из Facebook. Они написали его на OCaml, так как функциональное программирование является удивительно крутым.

— OCaml? Функциональное программирование?

— Ну это то, что сегодня юзают крутые пацаны, ну типа, знаешь, 2016. Функциональное программирование. Функции высокого порядка. Currying. Pure функции.

— Я понятия не имею, что это.

— Никто не понимает, в начале. Надо просто знать, что функциональное программирование лучше, чем объектно-ориентированное программирование, и это то, что мы должны использовать в 2016 году.

— Подожди, я учил ООП в универе, я думал, что это круто?

— Ну так было пока Oracle не купил Java. Я имею в виду, что ООП был хорош раньше, и его используют до сих пор, но теперь каждый понимает, что манипулировать состояниями эквивалентно пинанию младенцев, так что теперь все движется к immutable объектам и функциональному программированию. Ребята из Haskell уже 100 лет кричат об этом, и это я еще не упоминал Elm. Но, к счастью, в сети теперь у нас есть такие библиотеки, как Ramda, которые позволяют нам использовать функциональное программирование на простом JavaScript.

— Ты что, просто придумываешь имена? Что еще за Ramnda?

— Нет. Ramda. Как и Lambda. Ну, знаешь, библиотека Дэвида Чембера?

— Дэвида кого?

— Дэвида Чембера. Крутой чел. Один из авторов Ramda. Глянь еще работы Эрика Мейера, если серьезно относишься к изучению функционального программирования.

— А Эрик Мейер это?…

— Тоже функциональщик. Крутой чел. У него есть куча презентаций, где он в странной цветной футболке громит Agile. Еще глянь что делают Tj, Jash Kenas, Sindre Sorhus, Paul Irish, Addy Osmani…

— ОК. Притормози. Все это хорошо и прекрасно, но я думаю, что все это слишком сложно и ненужно для простой выборки данных и их отображения. Я уверен, что я не должен знать этих людей или все эти вещи, чтобы создать таблицу с динамическими данными. Давай вернемся к React. Как я могу извлечь данные с сервера в React?

— Ну, на самом деле для выборки данных не надо React, он отображает данные.

— О, черт. Так а что используется для выборки данных?

— Используй Fetch для получения данных с сервера.

— Использовать Fetch для выборки данных? Тот, кто называет эти вещи, нуждается в тезаурусе.

— О, да. Fetch это имя нативной реализации для выполнения XMLHttpRequests.

— О, AJAX.

— AJAX это просто запросы XMLHttpRequest. А Fetch позволяет делать AJAX на основе промисов, которые затем можно резолвить, чтобы избежать callback hell.

— Callback hell?

— Да. Каждый раз, когда выполняется асинхронный запрос, ты должен ждать его ответа, который заставляет добавить функцию внутри функции, которая называется пирамида callback hell.

— О, хорошо. А промисы решают эту проблему?

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

— И это можно сделать с помощью Fetch?

— Да, но только в некоторых браузерах, в противном случае необходимо включить Fetch polyfill или использовать Request, Bluebird или Axios.

— Сколько библиотек мне нужно знать, ради бога? Сколько из них?

— Это JavaScript. Тут тысячи библиотек, которые делают одно и то же. Мы знаем эти библиотеки. Наши библиотеки огрооооомные, а иногда мы добавляем картинки с Guy Fieri в них.

— Guy Fieri? Давай покончим с этим. Что эти Bluebird, Request и Axios делают?

— Это библиотеки для выполнения XMLHttpRequests, которые возвращают промисы.

— А методы AJAX JQuery не возвращают промисы?

— Мы больше не используем «J» в 2016. Просто используйте Fetch polyfill или Bluebird, Request или Axios. Затем управляй промисами с async, await и Бац!, у тебя правильный поток управления.

— Это третий раз, когда ты говоришь о await, но я понятия не имею, что это такое.

— Await позволяет блокировать асинхронный вызов, что позволяет лучше все контролировать во время получения данных и увеличивает читаемость кода. Это потрясающе, просто нужно, чтобы убедиться, что ты добавил stage-3 в Babel, или использовать синтаксис асинхронных функций и плагин transform-async-to-generator.

— Это безумие.

— Нет, безумие — что нужно перекомпилировать код TypeScript, а затем транспайлить его с Babel, чтобы использовать await.

— Шта!? Это не входит в TypeScript?

— Входит в следующей версии, но в версии 1.7 он только ES6, так что если хочешь использовать await в браузере, сначала нужно скомпилировать код TypeScript в ES6, а затем транспайлить с Babel в ES5.

— Я не знаю, что сказать.

— Слушай, это легко. Пиши весь код в TypeScript. Все модули, использующие Fetch компилируй в ES6, транспайль их с Babel с stage-3, и загружай с SystemJS. Если у тебя нет Fetch, используй polyfill, или Bluebird, Request или Axios, и обрабатывай промисы с await.

— У нас очень разные определения «легко». Так, с этим ритуалом я, наконец, получил данные и теперь я могу показать их с помощью React правильно?

— А приложение будет обрабатывать любые изменения состояния?

— Грр, я не думаю. Мне просто нужно отобразить данные.

— О, слава богу. В противном случае мне пришлось бы объяснить Flux и реализации, такие как Flummox, Alt, Fluxible. Хотя, если быть честным ты должен использовать Redux.

— Как же достали эти имена. Опять же, мне просто нужно отобразить данные.

— А, если просто отобразить данные, не надо начинать с React. Можно взять движок шаблонов.

— Ты шутишь, что ли? Думаешь, это смешно?

— Да я просто объяснил, что ты мог бы использовать.

— Стоп. Просто остановись.

— Я имею в виду, даже если просто использовать шаблонизатор, я бы все равно использовал комбо TypeScript + SystemJS + Babel на твоем месте.

— Мне нужно отобразить данные на странице, а не выполнить оригинальный фаталити Sub Zero из Мортал Комбат. Просто скажи мне, какой движок шаблонов использовать.

— Их много, с каким ты знаком?

— Уф, не могу вспомнить название. Это было давно.

— jTemplates? jQote? PURE?

— Не то. Еще один?

— Transparency? JSRender? MarkupJS? KnockoutJS?

— Другой

— PlatesJS? JQuery-tmpl? Handlebars? Некоторые люди до сих пор используют его.

— Может быть. А есть что-то похожее на последний?

— Mustache, underscore? Я думаю, что теперь даже у lodash есть шаблонизатор, но это своего рода 2014.

— Грр… возможно он был поновее.

— Jade? DustJS?

— Нет.

— DotJS? EJS?

— Нет.

— Nunjucks? ЕСТ?

— Нет.

— Чувак, никто не любит синтаксис CoffeeScript в любом случае. Jade?

— Нет, ты уже сказал Jade.

— Ну я имел в виду Pug. Я имел в виду Jade. Я имею в виду, Jade теперь Pug.

— Пф. Нет. Не помню. Какой из них ты бы использовал?

— Наверное, нативный ES6 template strings.

— Дай угадаю. Это требует ES6.

— Да.

— Который, в зависимости от того, какой браузер я использую требует Babel.

— Да.

— Который, если я хочу включить без добавления всей библиотеки, нужно, загрузить в качестве модуля NPM.

— Да.

— Который, требует Browserify или Wepback, или, скорее всего, SystemJS.

— Да.

— Который, если это не Webpack, в идеале должен управляться Task runner-ом.

— Да.

— Но, так как я должен использовать функциональное программирование и типизированные языки, я в первую очередь должен предварительно скомпилировать TypeScript или добавить этот Flow.

— Да.

— А потом отправить это на обработку в Babel, если я хочу использовать await.

— Да.

— Так что я могу затем использовать Fetch, промисы и управление потоком и всю эту магию.

— Только не забудь polyfill Fetch, если он не поддерживается, Safari до сих пор не может справиться с этим.

— Знаешь что. Я думаю, мы закончим здесь. На самом деле, я думаю, я закончил. Я закончил с этим вебом и с JavaScript в целом.

— Хорошо, через несколько лет мы все будем кодить в Elm или WebAssembly.

— Я просто хочу вернуться к бэкэнду. Я не могу справиться со всеми этими изменениями, версиями, изданиями, компиляторами и транспайлерами. Сообщество JavaScript безумно, если оно думает, что кто-то может идти в ногу с этим.

— Понятно. Тебе тогда надо попробовать сообщество Python.

— Почему?

— Слышал о Python 3?

 , , , ,

StReLoK
()

UEFI vs BIOS

Форум — Talks

Есть ли реальные преимущества первого, над вторым в 2к18? Ну кроме сомнительного ускорения в работе, секурности и нативной GPT? Просто семёрочка не хочет вставать через UEFI, хотя такая возможность у неё есть.

 , ,

FluffyPillow
()

Ryzen 5 2400G готов для десктопа.

Форум — Linux-hardware

Предыстория: в марте с.г. я купил AMD Ryzen 5 2400G, материнку на базе X370, 8 гиг быстрой памяти и M.2 SSD, с тем, чтобы нормально поработать в Darktable. Старый комп на базе Intel core i3-2120 как-то не особо хотел ворочаться под всё более сложными алгоритмами.

Для того, чтобы завести всё это хозяйство под онтопиком, пришлось обновить ядро, linux-firmware, месу и иксы. К счастью, в апреле вышла свежая убунта, в которой всё это было уже обновлено до приличных версий, хотя бы 3D было из коробки.

Но не очень. Потому что система висла на некоторых программах. Конкретно Firefox и Darktable. Возможно, я просто чаще всего пользуюсь именно ими, но вот во время OpenArena, например, или Clementine система не повисла ни разу. Не разбирался. Плюс, не работал Wayland.

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

Время шло, поросёнок рос, в интернете уже вовсю писали, что в ядре 4.17 устранили баг с зависанием в видеокартах RX Vega (commit 9cdd39e51ccaa3a1ed0a034a68d80defd4046cd8), но проблема была в том, что установка ядра 4.17 ничего не дала. Тем временем в июне прилетело обновление amd-microcode и внезапно стал работать Wayland.

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

Короче. После долгого, редкого гуглежа оказалось, что все эти замечательные изменения относятся к новому драйверу, который активируется опцией ядра «amdgpu.dc=1». Как только я включил эту опцию на ядре 4.17, так сразу волосы мои стали чистыми и шелковистыми, а Darktable выдержала марафон в 16 часов обработки всех фото, накопившихся за последние полтора месяца. Ни единого разрыва!

Что, вообще говоря, странно, потому что в ченжлоге на ядро написано, что начиная с 4.17, dc используется по умолчанию. Но такова селяви.

tl;dr

1. Ставим свой любимый дистрибутив.
2. Обновляем ядро до 4.17 (4.18 и новее тоже подойдёт)
3. Удостоверяемся, что Mesa не ниже 18, если нет — обновляем
4. Ставим свежий linux firmware. Wayland вам, может, и не нужен, но если он заработал, значит какие-то ценные функции были добавлены.
5. Добавляем amdgpu.dc=1 в строку загрузки ядра

UPD: Да, проблему с загрузкой через раз это не решает. Но если загрузилось, будет работать.

 ,

Aceler
()

Для тех, кто думает перейти на Gentoo

Форум — General

Привет

Достаточно часто создаются темы, где люди думают переходить на Gentoo и хотят уточнить некоторые моменты. Чтобы сэкономить время себе и другим, решил создать этот топик, в котором буду собирать ответы на частые вопросы.

TL; DR: Для тех, кто думает перейти на Gentoo (комментарий)

В каких случаях имеет смысл выбирать Gentoo:
1. Вы любите настраивать систему под себя. В Gentoo есть больше возможностей по кастомизации системы в сравнении с многими другими дистрибутивами: USE флаги, параметры компиляции, поддержка пользовательских патчей в пакетном менеджере, хуки пакетного менеджера (вставка своих шагов на этапе установки пакетов), игры с версиями приложений и/или зависимостей, игры с альтернативными имплементациями (openrc/systemd/..., rsyslog/syslog-ng/metalog, slang/ncruses, dhcpcd/dhclient/...).
2. Вы хотите обучиться основам Линукс. Установка Gentoo невозможна без практического понимания базовых принципов Линукс: интерфейс командной строки, chroot, работа с диском (MBR, GPT, возможно LVM, возможно шифрование, типы файловых систем, параметры монтирования и т. п.), настройка сети (WiFi/Ethernet, DHCP, ifconfig/ip, выбор между wicd/NetworkManager/sysinit и т. п.), ядро (конфигурация/компиляция/установка, firmware, внешние модули aka @modules-rebuild, возможно параметры при запуске и т. п.), графический сервер (Xorg/wayland, драйвера) и др. Большинство дистрибутивов скрывают это за инсталлятором, но в Gentoo вам придется столкнуться с этим непосредственно.
3. Требуется система максимально оптимизированная под определённую платформу или нефункциональные требования: минимальный размер (embedded), минимальный отклик (банковские системы, игровые сервера), максимальное быстродействие в конкретных областях (обработка видео потоков) и т. п. Стоит заметить, что Gentoo имеет смысл выбирать только в том случае, когда нет дистрибутива уже заточенного под эти требования, или он чем-то не устраивает.

В остальных случаях Gentoo скорее всего не лучший выбор, разве что Just for Fun.

Сильные стороны Gentoo:
#1 Gentoo очень гибкая и всенастраиваема
Пример того что в Gentoo делается просто:
- Использовать openrc вместо systemd или наоборот; pulseaudio или без него
- Наложить кастомный патч; пример когда это нужно
- Подключить или отключить такие вещи как vaapi, vdpau, opencv и т. п.
- Иметь несколько веток софта; уточню, что это работает только для определённых пакетов; например можно одновременно установить python 2.7, 3.4, 3.5 или qt4 и qt5, но нельзя одновременно установить qt 5.7 и 5.8

#2 Очень удобный и функциональный пакетный менеджер
Примеры удобных фич:
- Прервать установку (вплоть до перегрузки компьютера), а потом ее продолжить. Можно продолжить с последнего пакета (emerge --resume), продолжить но пропустить последний пакет, например, если его установка прервалась с ошибкой (emerge --resume --skipfirst, некоторые нюансы); для больших пакетов можно продолжить саму компиляцию (ebuild <полный путь и имя файла>.ebuild merge).
- Когда при установке обновляется конфиг приложения, определяется редактировался ли предыдущий конфиг пользователем. Если да, конфиг не перезаписывается, а кладётся радом, и выводится сообщение пользователю с предложением обновить конфиг.
- Обновить всю систему, но исключить некоторые пакеты (удобно для исключения больших пакетов из ежедневного обновления)
- Почистить зависимости - удалить те пакеты, которые больше никому не нужны.
- Поскольку ebuild - текстовый файл, то можно пропарсить на предмет требований к количеству ресурсов для установки:

$ for F in $(find /usr/portage -name "*.ebuild") ; do REQ=$(grep "CHECKREQS" "$F") ; if [[ -n "$REQ" ]]; then echo -e "\n$F\n$REQ" ; fi; done
- Вынести компиляцию на другой компьютер (поддержка distcc на уровне пакетного менеджера). Важно когда Gentoo устанавливается на слабый компьютер.


#3 Хорошая документация, по крайней мере на английском. Более того, поскольку Gentoo-специфичные утилиты являются лишь надстройкой на generic механизмами, документация от других дистрибутивов (например от Arch) в большинстве случаев тоже подходит.
Опрос 2014: У какого дистрибутива лучшая документация

#4 Достаточно свежий софт, много сторонних репозиториев.
Список сторонних репозиториев
Gentoo - rolling release, а значит как только новая версия конкретного софта появилась в репозитории, её можно установить. Но здесь не имеется ввиду, что как только новая версия зарелизилась, она моментально становится доступна в основном дереве; лаг есть, но он как правило не большой, хотя зависит от пакета. В тестинг ветке новые версии появляются раньше. Кроме того мейнтейнеры Gentoo могут маскировать некоторые версии, если в них обнаруживаются серьезные баги. Однако всегда можно размаскировать нужную версию. Кроме того для некоторых пакетов есть -live версии, когда исходники скачиваются напрямую из github или аналога.
Пример когда «у меня не самый свежий софт в Gentoo»

#5 Полный порядок в системе, ничего лишнего - эстетическое удовольствие, плюс возможно можно немного улучшить перформанс

#6 В процессе установки и эксплуатации получаешь полное понимание как работает система, а значит возникающие проблемы решаются быстро. На самом деле без должного знания Линукса (или желания его узнать в процессе) Gentoo нормально не установить.

Недостатки
#1 Сложная и долгая первичная установка. Если устанавливать в первый раз, нужно готовиться потратить несколько дней. Для опытных - несколько часов + компиляция.
Время установки (компиляции) Gentoo, еще немного цифр по большим пакетам

#2 Пакетный менеджер хоть и удобный, но очень медленный

#3 Если не обновлять систему долго (полгода и более), то сложность обновления сопоставима с установкой новой системы. Есть мнение, что emerge-webrsync --revert=yyyymmdd должен помочь (лично я не проверял).

Особенности
#1 Высокий порог входа; дистрибутив не для новичков. Если человек не комфортно чувствует себя в командной строке, никогда не компилировал ядро, не разбивал диски на разделы, не привык изучать докуменацию, вчитываться в сообщения и анализировать логи, то Gentoo покажется сложной в обслуживании, а возникающие проблемы будут списываться на дистрибутив.

#2 Обновляться нужно часто.

#3 Основные фичи - в командной строке. Для тех, кто не привык работать в командной строке, это будет минусом. А для тех, кто комфортно чувствует себя в командной строке, это будет плюсом, так как работа в командной строке более эффективна, а типовые сценарии можно обернуть в скрипты и еще больше сократить время на обслуживание системы.

#4 Есть две ветки: stable и testing. В stable меньше шансов встретить проблему, но в testing более свежий софт. Ветки можно комбинировать.

Мифы
Миф #1 Gentoo даст прирост производительности за счет того, что весь софт компилируется под конкретное железо.
Краткий ответ: Без дополнительных телодвижений - в пределах пары процентов, так что вряд ли вы это заметите.

Детальный ответ.
Не следует ожидать что просто скомпилировав систему из исходников вы получите сколько-нибудь заметное улучшение перформанса.
Для большинства приложений компиляции под конкретное железо даст прирост производительности в районе 1-2%.
Ложка дегтя: в некоторых случаях даже может быть замедление. Например Firefox, можно ускорить с помощью PGO. В Gentoo по умолчанию это отключено, так как PGO увеличивает время компиляции почти в два раза. В бинарных дистрибутивах соотв. софт может быть скомпилирован с PGO.
Так как добиться улучшения производительности? Узкий круг приложений может быть значительно ускорен при компиляции под конкретную платформу - на 30%-50% и больше. В основном это приложения которые активно занимаются вычислениями. Но для этого требуется соотв. настройки. Например, активация SIMD инструкций, даст прирост производительности в мультимедиа приложениях. Некоторые процессоры имеют аппаратную поддержку шифрования AES. В бинарных дистрибутивах подобные фичи будут отключены, так как не все процессоры это поддерживают, а бинарные дистрибутивы в первую очередь заботятся о совместимости.
Небольшое улучшения перформанса возможно если убрать из системы всё лишнее (мнение 1, мнение 2).
Еще интересный случай

Миф #2 Обновления занимают много времени
Краткий ответ: 5-10 минут на фоне, не мешая основной работе.

Детальный ответ.
Обновления не занимают много времени, но опять же, при правильном подходе.
Во-первых, как было сказано выше, обновляться нужно часто. Для testing ветки это каждый день, или по крайней мере не реже чем в раз 2-3 недели. Для стабильной ветки - раз в неделю достаточно (на стабильной ветке намного реже выпускаются обновления)
Во-вторых, есть пакеты которые правда очень долго компилятся: libreoffice, firefox, chromium... Их всего 10-15. Я их исключаю из ежедневного обновления, а обновляю раз в несколько месяцев.
Еще нужно сказать, что на этом вопросе часто заостряют неоправданно много внимания. Обычно обновления происходят на фоне, и не сильно влияют на работу; так какая разница как долго они выполняются?
В итоге, у меня обновления занимают примерно 5-10 мин ежедневно (у меня тестинг-ветка).
К тому же всё происходит на фоне, в любой момент можно поставить на паузу (Ctrl+Z, fg), продолжить после прерывания (умышленного или случайного).
Мой скрипт ежедневного обновления

Миф #3 Gentoo требует много времени на обслуживание
Краткий ответ: это зависит от вас.

Детальный ответ.
Обслуживание Gentoo занимает меньше времени по сравнению с другими дистрибутивами, но только при грамотном обращении, конечно. Достигается это за счет следующего:
- хороший пакетный менеджер: маскировки, глобальные и индивидуальные установки для пакетов (USE флаги, опции компиляции, каталоги), хуки, приоритеты (чтобы компиляция происходила на фоне и можно было работать), много опций для установки и анализа, подсказки после установки.
- всё происходит в CLI, а значит типовые операции можно обернуть в скрипты/алиасы.
- уже существуют много утилит для облегчения обслуживания: eselect, equery, eix, eclean, euse, genlop и др.
Грамотное обращение означает, что вы правильно и регулярно обновляете систему, исполняете предписания emerge, которые он выдает после установки, держите в порядке конфигурационные файлы, а если таки возникает проблема, которую решить вы не можете, то вы обращаетесь в форумы, а не просто жалуетесь на жизнь.
Что до проблем с обновлениями - см. следующий пункт «Миф #4 Установка, обновление постоянно падают; частые блокировки»

Миф #4 Установка, обновление постоянно падают; частые блокировки
Краткий ответ: Не чаще чем в других дистрибутивах

Детальный ответ.
Если говорить про «часто» и «постоянно», то проблемы с обновлением/установкой могут быть если:
- система давно не обновлялась
- система неправильно обслуживается (см. выше про Грамотное обращение)

В редких случаях пакет просто не компилируется. На самом деле это проблема не Gentoo, а тех, кто писал этот софт. И в подавляющим большинстве случаев это не является проблемой, и вот почему. Если это обновление, то можно продолжить процесс запустив emerge с параметрами --resume --skipfirst - он обойдет проблемный пакет, пересчитает зависимости чтобы система осталась консистентной, и продолжит обновление (а можно изначально передать параметр --keep-going, тогда это будет происходить автоматически, прерываний вообще не будет). Если пакет критичен, можно установить предыдущую версию, которая компилировалась (а проблемную замаскировать чтобы пакетный менеджер ее не видел).

Что может заблокировать обновление полностью:
- просьба пакетного менеджера поменять флаги пакета. При этом emerge предлагает сделать это автоматически, но лично я предпочитаю делать вручную. Для ручного способа, решается добавлением строчки в package.use
- просьба пакетного менеджера задать лицензию. Это валидно только для не-свободных лицензий, например EULA, Skype, Adobe Flash и т. п. Если мы говорим имено про обновление, то такое бывает только когда лицензия обновляется, что бывает очень редко (как много у вас пакетов под не-свободной лицензией, и как часто они меняют лицензию?). Решается добавлением одного слова в make.conf
- просьба пакетного менеджера размаскировать пакет. По моему опыту нужно не размаскировывать, а наоборот замаскировывать пакеты, которые тянут замаскированные зависимости. Это, да, требует минут 5-10 на разобраться. Но, если только у вас нет смешения веток и live пакетов, такой вариант случается раз в пятилетку.
- сложные блокировки. Большинство блокировок пакетный менеджер разрешает сам; по моим наблюдениям, качество данного механизма значительно улучшилось пару лет назад. Из своего опыты скажу, что (учитывая частые обновления) блокировок, которые бы совсем останавливали обновление я уже не видел года 1.5. Но если они есть, то это действительно сложный кейс.

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

Миф #5 В Gentoo нет бинарных пакетов
Краткий ответ: Есть там, где это действительно нужно.

Детальный ответ
29 декабря 2023 года было официально объявлено о релизе бинарного варианта Gentoo: Gentoo становится бинарным / https://www.gentoo.org/news/2023/12/29/Gentoo-binary.html Также есть Calculate Linux - полностью бинарный форк Gentoo.
С самого начала в «классическом» Gentoo в основном репозитории всегда были несколько бинарных пакетов: libreoffice-bin, firefox-bin, некоторые другие. Связано это с тем, что из исходников они очень долго компилируются, и иногда проще поставить бинарник.
Бинарный пакет можно сделать самому командой quickpkg --include-config y <установленный пакет> - удобно для бекапов.
Но стоит обратить внимание на то, что при использовании бинарных пакетов пропадают те главные особенности, ради которых имеет смысл выбирать Gentoo. Если вам нужен уже скомпилированный софт, возможно вам имеет смысл присмотреться к другим дистрибутивам.

FAQ

#1 Установка на слабый компьютер
Смотря что есть слабый компьютер.
Из собственного опыта: Intel Core2 Duo 6600 @ 2.40GHz, 2Gb RAM + 4Gb swap хватало для комфортной работы в Gentoo.
Зачастую ebuld'ы содержат информацию о том, сколько нужно памяти для компиляции пакета. TOP 5:
16G - chromium
8G - ledger, isabelle
7G - ceph
6G - firefox x64 (для x32 нужно 3G), pypy x64 (для x32 нужно 3G)
5G - electron
Если компьютер и вправду слабый, то лучше выбрать не Gentoo (точнее не-source-based дистрибутив). Альтернатива - можно вынести компиляцию на другой «не-слабый» компьютер с помощью distcc.


Опрос 2021: Какую операционную систему и/или дистрибутив GNU/Linux вы используете на ПК?
Опрос 2018: Какой ОС вы пользуетесь на основном ПК?
Опрос 2017: Какую ОС вы используете на основном ПК?
Опрос 2014: Какой дистрибутив вы используете на десктопе?
W3Tech стастика дистрибутивов на серверах
Отличия дистрибутивов, время работы ноутбука
Чем удобны USE флаги
Сколько памяти нужно для РАБОТЫ Gentoo (сколько нужно для компиляции было указано выше)
Сколько места на диске нужно для Gentoo
Правильное полное обновление Gentoo, Мой скрипт ежедневного обновления, Еще вариант
Gentoo для девелоперов
Практика инсталляции Gentoo: в двух словах простым языком
Небольшой скрипт - сборка livecd

 

Kroz
()

Углубленное изучение системы.

Форум — General

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

 , ,

LiLleel
()

DXUP - транслятор Direct3D 10 в Vulkan

Новости — Open Source
Группа Open Source

Представлен проект DXUP - транслятор из Direct3D 10 в Direct3D 11 с последующим выводом через Vulkan. Данный проект преследует те же цели, что и проекты VK9 (транслятор Direct3D 9 > Vulkan) и DXVK (Direct3D 11 > Vulkan), однако вместо использования прямого обращения к Vulkan, транслирует системные вызовы DX10 в DX11, и далее, при помощи проекта DXVK, переводит их в Vulkan. Это позволяет запускать в Wine игры, использующие DirectX 10, такие как Crysis Warhead, Just Cause 2 и так далее, с минимальными потерями в производительности. При этом DXUP возможно использовать и на Windows.

>>> Подробности

 , dxup, ,

Sunderland93
()

Насколько Powershell мощен?

Форум — Talks

For example, Powershell vs Bash. С удовольствием почитаю ваши доводы (если они будут).

 ,

time_LORd
()

Избушка гентушников. Обзор бункера.

Галерея — Рабочие места

Весна наступила и галерея ЛОРчика ожила.

У меня тоже обострение и хочу поучаствовать в ЛОРчиковом «инстаграмчике», так что вотъ.

На фото игровая башня, когда-то была топовой, хотелось бы обновить, но GTX770 еще не умерла. Когданибудь, она присоединится к GTS 250 и прочим дорогим сердцу, но бесполезным железячкам а ля фотоаппарат «Силуэт» советских времен.

  • Intel(R) Core(TM) i7-4770K CPU @ 3.50GHz
  • 32GB RAM
  • какойто кингстон ССД
  • WD Red 2TB x 6
  • GTX770
  • Какая-то Logitech камера за 80 баксов, что бы разговаривать с бабушкой по скайпу и наблюдать за попугаем с работы.
  • Древнемоники по 27", делль рисовальный за 1к, бенк вроде как 3д... кака редкосная, читать черное на белом невозможно, вытекают глаза, консоль и видео - нормально (жаба давит покупать новый)
  • Клава, Motorspeed CK108, синие кнопочки. Можно настроить цвет каждой кнопки. Плюс: удобно печатать, руки не устают. Очень нравится. Минус: родители научились отличать по звуку, когда я работаю, а когда гамаю.
  • Мыша logitech m570 (третья за 6 лет). Когда стареет, начинает лагать, но в вов гамать я без неё не могу. В шутеры естесственно с ней не поиграешь.

Работаю на удаленке минимум раз в неделю, если заболела или навалило много снега, могу посидеть дома недельку. Работа от этого не страдает ведь слева личный офис Мисьё ИТ Директора Дон Василия Второго... и его планктона. Когда мой насяльника уволился, работа встала и я нам нашла Мисьё ИТ Директора Дон Василия Первого... но он помер и ему на смену пришел второй. Справа бухгалтерия. Там живут Вера, Надежда и Любовь, неуловимое Счастячко (kitty tetra)... и еще куча офисного планктона. До заселения планктона, там процветал феминизм (бабы отжали у Васи аквариум), но планктон восстановил баланс.

Впрочем, слева еще стоит Спарта. Там живет Пылесос и Синяк с Мусечкой. Они злые и кусачие, а Пылесос в шипах весь. Синяк - веган. Он почти забил Кирпича, которого пришлось пересадить в другой аквариум (да мой дорогой ЛОРчик, на фото не все аквариумы, а только половина). Все потому, что Кирпич жрет мелких рыбок, а Синяк считает это неэтичным, ибо он живет не в природе и может получать другую еду (она сделанна из животных, но он об этом не знает). Корм в виде гуппи и пескариков, Синяк не трогает.

За спиной, сидит Злой Дракон по имени Тихан. Он охраняет рабочее место одмины, а то вдруг, какойнибудь злобный хакеррохомячек добереться до одминского компа, пока одмина отлучилася на 2 этажа ниже в гараж за пивом (там 2й холодильник) или топит печь в подвале. Тихан отлично охратяет свою территорию, в прямом смысле этого слова. Заходить в комнату чужому человеку опастно, может полететь и покусать.

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

Если одмина устала, можно пойти прилечь к бесполезной котэ (ну или не вставать, рабочий ноут обычно лежит в одном из ящиков кровати). Котэ зовут Кошмара, она живет на столе перед клавой, либо на постели. Есть главная котэ, по имени Чёрточка (Чертяка). Главная котэ, настоящая кошка и вместо того, что бы выбирать в какое окно ей смотреть , предпочитает истреблять грызунов во дворе

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

Мебель, стены, подсветка над столом/кроватью и прочее, делалось отцом из дров (кроме кровати... кровать из IKEA, но отец её усилял, дабы была использованна в качестве траходрома. Расчитана на 200кг живого веса, но прошла тестирование 4мя человеками от 60 до 95кг одновременно). Часть дров была найдена, часть дров, купленна. Лакировала мать.

Примерный дизайн, параметры стола и примерная конфигурация полки, моя. Шкафы над кроватью придумал отец. Стол чуть высоковат ибо делался из другого стола, в котором прочный каркас, но зато я спокойно на него залажу, что бы повытирать пыль воооооон на том пингвинчике под потолком. Тестировалось на 95кг. Аквариумы по ~25 кг + башня кило так 15 + моники. Полка и шкафы над кроватью тоже расчитаны на «тяжелое» использование.

UDP: Телефон настоящий и даже работает. А то тут уже спрашивали недавно.

UDP2: Пардон за качество. Фотографировала на косметичку, фотик мне разбили, а другой я что-то как-то не купила.

Усё, ушла раскрашивать коробочки для хламца книги с надписями Рим/Нью Йорк/Париж с полки, в что-то более подхолящее под интерьер.

TL;DR:

 

Murg
()