LINUX.ORG.RU

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

Обновление сломало мне Arch Linux

 , , ,

Сегодня обновление убило мой Arch Linux на старом ноутбуке, чему я очень сильно удивился. Никогда такого не было и вот опять. Но ситуация довольно интересная, поэтому я оставлю описание этой проблемы и её решение на всякий случай на этом форуме. Вдруг кто придёт из поисковика, а у него такая же хрень окажется. Может помогу кому. Итак, фотография ошибки:

Kernel panic – not syncing: No working init found

Вечером я просто обновился привычной всем командой yaourt -Syua и перегрузился в Windows (стоит в дуалбуте рядом с Fedora и Arch Linux) по делам. Ладно, вру, перегрузился чтобы поиграть в Half-Life и Unreal Tournament ’99. Поиграл на славу, снова решил загрузиться обратно в Arch Linux — получил ситуацию, которая запечатлена на фотографии выше.

Сначала я подумал, что каким-то неведомым образом слетел Fedora’вский grub, так как именно он обеспечивает мне, так сказать, «дуалбут» в три операционные системы: Windows 10, Arch Linux и Fedora 29. Загрузился в Fedora, выполнил привычные команды для восстановления grub’а и обновления его конфигурации:

grub2-install /dev/sda
grub2-mkconfig -o /boot/grub2/grub.cfg

Перегрузился снова, в меню grub’а выбрал Arch Linux — ситуация нисколько не изменилась. Тогда я решил, что при последнем обновлении слетели какие-то модули в ядре и из-за этого оно валится в панику. Снова загрузился в Fedora. Отмечу, что как же хорошо, что я её установил рядом и теперь не мучаюсь со всякими LiveUSB-флешками в подобных ситуациях, примонтировал rootfs от Arch Linux’а и с помощью скрипта arch-croot чрутнулся в него:

mount /dev/sda4 /mnt
./arch-chroot /mnt

Из лога пакетного менеджера /var/log/pacman.log я вычленил список пакетов последнего обновления, которые могли испортить мне ядро и initramfs:

upgraded device-mapper (2.02.184-3 -> 2.02.184-4)
upgraded lvm2 (2.02.184-3 -> 2.02.184-4)
upgraded virtualbox-host-dkms (6.0.4-4 -> 6.0.6-1)
upgraded virtualbox (6.0.4-4 -> 6.0.6-1)

При установке VirtualBox с помощью DKMS незаметно для пользователя собираются и устанавливаются некоторые модули ядра, на которые я и грешил, а потому переустановил эти пакеты заново:

yaourt -S device-mapper lvm2 virtualbox-host-dkms virtualbox
yaourt -S linux

На всякий случай само ядро, пакет linux, я тоже переустановил. Перезагрузился — ситуация нихрена не изменилась. Подумал, раз ядро паникует от init’а, может проблема в systemd? Его же всегда и все винят во всех бедах! В третий раз загрузился в Fedora, переустановил пакет systemd и перегенерировал initramfs:

yaourt -S systemd
mkinitcpio -p linux

Перегрузился, постучался в Arch Linux — проблема не ушла. Очень странно! Пришлось в четвёртый раз грузиться в Fedora и начать гуглить инфу по этой ошибке. Поисковый запрос «kernel panic not syncing no init found arch linux» сразу же привёл меня в тему на форуме Arch Linux, благодаря которой я и решил эту проблему: [SOLVED] Kernel Panic - not syncing. No working init found. Человек на том форуме столкнулся с похожей ситуацией.


Итак, восстановление работы поломанного Arch Linux’а и расследование почему так случилось, ибо проблемка-то и не очень уж тривиальная. Из темы на форуме Arch Linux, по ссылке выше тот человек перепробовал все действия, которые попробовал я и у него тоже не получилось сначала восстановить работоспособность системы. Потом знатоки на том форуме посоветовали ему выполнить команду:

pacman -Qkk filesystem

warning: filesystem: /usr/lib64 (No such file or directory)

Для определения различных ошибок в структуре файловой системы. Я тоже её выполнил и так же как и в той теме наткнулся на странную проблему со сущностью /usr/lib64, которая в нормальных условиях ожидаемо должна быть симлинком на /usr/lib. У меня же этот файл вообще отсутствовал, а у того человека на форуме вместо симлинка был пустой каталог.

Механизм возникновения проблемы

Итак, судя по сообщению пользователя Scimmia:

There’s been a number of people without /usr/lib64/. I’m guessing it’s because of a updated that was --force’d. Don’t do that.

В pacman’е имеется какой-то странный баг или поведение, когда при опции --force или --overwrite нарушается структура файловой системы, в частности, имеется вероятность неведомым образом снести симлинк /usr/lib64 или вместо него создаётся пустая директория, как у того человека с форума. Судя по логу, я действительно обновлял какой-то пакет из AUR’а с этой опцией из-за того, что установка ругалась на какие-то существующие файлы и не придал этому значение после. Но самый цимес в том, что обновлял я этот пакет целых три месяца назад и этот --force и вылетел у меня из головы.

Что интересно, само отсутствие /usr/lib64 похоже никоим образом не влияет на работоспособность системы. Если бы что-то отвалилось и перестало работать сразу после обновления и перезагрузки, то было бы легче догадаться в чём же именно дело. Но этот симлинк /usr/lib64 в rootfs каким-то странным и неведомым способом влияет на построение образа initramfs, а поэтому Arch Linux рассыпался только спустя три месяца (sic!), когда прилетело обновление VirtualBox, которое обновило свои модули ядра и потребовало перегенерировать initramfs, генератор которого видя отсутствие симлинка /usr/lib64 тупо взял и сгенерировал мне кривой образ, из-за которого ядро посыпалось в панику.

Решение проблемы

Как уже понятно из рассказа — тривиальное, создать убитый симлинк заново, перегенерировать initramfs по новой:

cd /usr/
ln -s /usr/lib/ lib64
mkinitcpio -p linux

После выполнения этих команд Arch Linux загрузился как ни в чём не бывало и продолжил нормально работать.

Вердикт

Вот такая довольно странная и нетривиальная проблема меня посетила, которая «занесла меч над головой» и целых три месяца никак себя не проявляла. Если честно, даже не знаю, не найдя подобную тему на форуме Arch Linux, смог бы я найти решение или нет. Скорее всего нет и тупо бы снёс раздел с Arch Linux’ом, перенеся важные файлы.

А чем вы занимались сегодня ночью?

EXL
()

CellFrame и всякое опенсорцное (и не очень) на ём: веб сервер и впн

 

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

VPN

Вышел клиент, вышел сервис, подняли сайт ( divevpn.com ) и теперь вот тостим. 3 дня бесплатно, после регистрации на сайте, сам клиент лежит тут:

https://debian.pub.demlabs.net/ ./

apt-cache policy divevpn-full посмотреть доступные версии apt install divevpn-full установить последнюю

Сам клиент пока закрытый, но все его компоненты в паблике:

Есть библиотеки которми можно собрать в три щелчка схожий впн сервер.

https://github.com/kelvinblockchain/libdap https://github.com/kelvinblockchain/libdap-server-core https://github.com/kelvinblockchain/libdap-server https://github.com/kelvinblockchain/libdap-stream https://github.com/kelvinblockchain/libdap-stream-ch https://github.com/kelvinblockchain/libdap-stream-ch-vpn

Веб сервер

В качестве примера того как на наших libdap можно делать сервера мы решили полностью открытый daphttpd сделать:

«NGINX сасай» сказали мы и запилили: https://github.com/demlabsinc/daphttpd

Вот, может кого заинетересует, велкам на нашу новую серверную платформу, практически полностью все полностью своё, велосипедное.

naeper
()

arch, i3-gaps-next, negi3mods

 , ,

arch linux

i3-gaps-next

Мои плагины для i3: https://github.com/neg-serg/negi3mods

ncmpcpp

mpd + dunst

sxiv

imgur: https://i.imgur.com/S3oQ1bf.png

e7z0x1
()

Команда роботов сразится с командой человечества в Dota 2

 , , ,

Завтра в 18.30 по Гринвичу (если я ничего не путаю) пройдёт матч между командой ботов OpenAI и командой человечества по Dota 2.
OpenAI - это некоммерческая организация созданная при участии Илона Маска для проведения исследований в области искусственного интеллекта. На The International 2018 боты OpenAI обыграли команду бывших профессиональных игроков, но команда действующих профессионалов оказалась роботам не по зубам. Тем ни менее в режиме 1vs1, only mid, mirror match ботам OpenAI нет равных уже сейчас.

Держим кулачки за роботов! Дотеры не нужны! 8/64! СР! УВЧ! Регайте Бендеров на Твиче! Зафлудите им чат!

Твич OpenAI

Подробности

crutch_master
()

Оцените архиватор (дедупликатор) hashget для бэкапов. (архив менее 1%)

 , , , ,

Привет!

Поглядите пожалуйста мой новый «велосипед» - дедупликатор hashget. Начнем сразу с интриги:

Сравнение

Data sampleunpacked size.tar.gzhashget .tar.gz
Wordpress-5.1.143 Mb11 Mb ( 26% )155 Kb ( 0.3% )
Linux kernel 5.0.4934 Mb161 Mb ( 20% )4.7 Mb ( 0.5% )
Debian 9 (LAMP) LXC VM724 Mb165 Mb ( 23% )4.1 Mb ( 0.5% )

Предыстория

Всегда когда целиком бэкапил виртуалку, у меня было некоторое ощущение неправильности. С одной стороны, никогда нельзя просто сохранить только нужное (например, /etc, /home, /root и /var/www), потому что при восстановлении из такого бэкапа либо надо будет что-то сделать (поставить/настроить пакет какой-то), либо что-то забудешь положить в архив, например, утилитку из /usr/local/bin. А нужно - чтобы из архива автоматически получить точно ту же исходную систему, без «жаль забыл еще то и это в бэкап включить».

С другой стороны, паковать всю машину с файлами apache, mysql (о! базы mysql еще забыл в предыдущем списке) - получается примерно гигабайт исходных данных даже на скромную чистую LAMP машинку где еще нет ничего ценного. Очень большой overhead.

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

Hashget

Hashget - делает только дедупликацию. То есть, смотрит, какие из файлов для архивации можно при восстановлении просто скачать (то есть, их для вас уже кто-то надежно хранит) и подготавливает exclude file для tar (опция -X). Например, файлы из пакета apache - в бэкап не пойдут. Файлы из wordpress тоже почти все не пойдут. Но если вы что-то пропатчили (и эти новые файлы отличаются от дистрибутивных) - то эти файлы будут в архиве.

Распаковка делается в два шага автоматом, сначала tar -x …, затем hashget -u … . Он автоматом выкачает то что нужно, положит по нужным путям, выставит те же атрибуты. Вот в примере выше, крошечные архивы по 150Kb / 4M - аналогичны таким же .tar.gz архивам по 160Mb.

Еще можно использовать его для инкрементальных и дифференциальных бэкапов. Тогда новые бэкапы (дельты) будут очень маленькими, и при этом все ресурсы для распаковки будут на собственных приватных серверах (все распакуется даже в случае зомби-апокалипсиса и падения интернета).

В результате

Бэкапы - гораздо меньше. Их можно делать каждый день и хранить хоть все. Это дешево. Можно пересылать по почте, в телеграм-чате, хоть на флоппи-дисках. Заливать на Amazon Glacier и забывать о них. Разложить в десяток разных мест на разных материках, чтобы даже после ядерной войны они сохранились. Все равно это все будет стоить копейки.

Вопрос

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

Интересны любые отзывы и вопросы по hashget’у.

xen0n
()

Оказалось шутки про OpenVPN не шутки

 ,

https://meduza.io/feature/2019/04/10/roskomnadzor-prigrozil-blokirovkoy-openv...

Интересно будет. Я только свой сервак поднял...

dem
()

ath10k btcoex_enable

 

Добрый день.

Гуглил проблему, о ней есть информация, но не нашел решения. В кратце: есть ноутбук Lenovo V330-14ikb с сетевым адаптером Qualcomm Atheros QCA9377 802.11ac. Стоит драйвер ath10k. Приобрёл я значит блютуз-наушники. Подключаются нормально, есть проблема с работой микрофона на линуксе, но эт отдельная тема.

О проблеме: при подключении наушников по блютуз и проигрывании чего-то онлайн, случается вот такое:

doctor@tardis:~$ ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=120 time=214 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=120 time=4010 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=120 time=3537 ms
64 bytes from 8.8.8.8: icmp_seq=5 ttl=120 time=2541 ms
64 bytes from 8.8.8.8: icmp_seq=6 ttl=120 time=1517 ms

Гугл говорит, что такое случается, так как блютуз и вай-фай используют 2,4Ghz и на линуксах проблема решается ключом parm: btcoex_enable. НО, этот параметр доступен только на ath9k, а ath10k идёт без данного параметра, из-за проприетарщины, как я понял. Я попробовал использовать ath9k в качестве драйвера - добавил ath10k в блэклисты, добавил ath9k в modules, при включении загружается именно ath9k, блютуз работает. Только теперь не грузится wifi. Почему-то сетевой адаптер всё равно хочет видеть ath10k_pci, хотя он и не загружен:

lspci -knn | grep Net -A3 
02:00.0 Network controller [0280]: Qualcomm Atheros QCA9377 802.11ac Wireless Network Adapter [168c:0042] (rev 31)
	Subsystem: Lenovo QCA9377 802.11ac Wireless Network Adapter [17aa:0901]
	Kernel modules: ath10k_pci

И вот я хз. Можно ли как-то поменять настройки адаптера, чтоб он обращался к ath9k? Либо, если ath9k не работает с моим адаптером, то возможно ли использовать ath10k для вай-фая и ath9k для блютуза одновременно? Или есть ли другие способы решения проблемы?

Datt_
()

Хостинг картинок с добавлением через curl, открывающийся через тор, аналог 0x0.st

 , ,

0x0.st умеет классно работать через консоль, но в браузере тормозит открытие картинки при обращении через тор.

Подскажите аналог, который тоже умеет

curl -F'file=@picture.png' 0x0.st

и который не тормозит, если заходить по url картинки через браузер с тор?

znavko
()

Данные о состоянии сервиса в systemd в Java

 ,

Однако, здраствуйте.

Суть такова: пишу консольное приложение на Java+сборка Maven для мониторинга/упрощения настройки сервера Apache (ибо задолбался в конфигах вручную ковыряться). Для, собственно, мониторинга состояния оного мне необходимо получать данные из apache2/httpd.service и выводить их на экран + обновление при изменении состояния.

Вот здесь я и застрял.

Гуглил библиотеки для доступа к systemd и нашёл вот это:

https://github.com/thjomnx/java-systemd

Но вот незадача: ни руководств каких-либо, ни документации к этой библиотеке нету! Только пару захудавших вики-страниц, по которым нужные мне функции даже Ванга не сможет вычислить.

Второй вариант: исполнять команды для терминала непосредственно в функции:

Runtime.getRuntime().exec("systemctl is-active --quiet httpd")

но тогда становится сложновато обновлять информацию «по требованию», сиречь только при её изменении.

Ваши советы? Жахать всё через exec да поизвращаться с обновлением (в таком случае и для OpenRC с runit что-то можно сделать)? Или же где-то есть библиотека для вышеописанного с толковой документацией?

Korchevatel
()

Сканер отпечатка на ThinkPad T580 и Ubuntu 18.04

 , , , ,

Установил fprintd и libpam-fprintd, вызвал pam-auth-update, включил отпечаток. Далее запустил fprintd-enroll, а он мне:

list_devices failed: No devices available
$ lsusb

Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 002: ID 0bda:0316 Realtek Semiconductor Corp. 
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 008: ID 06cb:009a Synaptics, Inc. # Оно?
Bus 001 Device 007: ID 04f2:b604 Chicony Electronics Co., Ltd 
Bus 001 Device 006: ID 8087:0a2b Intel Corp. 
Bus 001 Device 005: ID 2cb7:0210  
Bus 001 Device 004: ID 04f2:b613 Chicony Electronics Co., Ltd 
Bus 001 Device 003: ID 058f:9540 Alcor Micro Corp. AU9540 Smartcard Reader
Bus 001 Device 002: ID 03f0:a407 Hewlett-Packard 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Кто-нибудь сталкивался, чего с этим делать?

WitcherGeralt
()

Симулятор трусов

 ,

Разыскиваются поигрульки c более-менее внятным графонием по типу Nier Automata или Tomb Raider. Чтоб главная героиня (или со-героиня) постоянно была в кадре. Жанр не важен. Дискач

KennyMinigun
()

Worms Zone - Червячная зона

 , , ,

Собрал версию Worms Zone для Linux x86_64. Сорцы движка, игры и прочих модулей закрыты. В ближайшее время открывать не планирую. Принципиальным любителям открытых сорцов предлагаю воздержаться от использования этой игры.

Краткое описание

Управляя червем, поедать различные вкусняшки, разбросанные по арене. Желательно избегать столкновения с другими червями. По арене разбросаны различные поверапы, которые меняют характеристики червя - магнит, ускоритель, умножитель и т.д.

Скриншоты

Особенности

  • В игре доступны большой выбор готовых скинов.
  • Есть редактор скинов.
  • Можно настроить внешний вид мордочки.
  • Таблица лидеров за сутки и за неделю.
  • Огромная арена, увеличено количество червей на арене до 150.

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

Ссылки

andreyu
()

Мышевозный тайлинг.

 , ,

Решил опробовать Sway. Ну что сказать? Готов к употреблению. Если сравнивать с i3, то основных плюсов четыре:

- Меньше софта. В основном из-за отсутствия Xorgовского бардака.

- Плавная работа. Тиринга нет. Вообще. Там где раньше приходилось ставить кучу дров, композиты и нудно все конфигурять, сейчас достаточно просто наличия Mesa.

- Меньше вес. При одном и том же наборе софта - минус один гиг.

- Меньше конфигов. Но это вытекает из предыдущих пунктов. Нет иксов, нет комптона, нормально работает gsettings, Ш, вроде, не совсем Г... Собственно, у меня конфигов теперь всего два - один для свая, один для термита.

Минусов не зафиксировал. Ну разве что некоторое дерьмо мамонта может не запуститься.

Цель закосить под мак не ставил. Просто попалась на глаза компактная тема с приятной палитрой и небольшой пак векторных иконок.

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

Neofetch

Gedit

qtm
()

Живой Doom 2

 

Раньше был такой крутой проект Skulltag, порт дум/дум2 там было активное коммьюнити, которое клепало крутые моды, спрайты и карты. Сейчас игроки на серверах вроде как есть, но не густо. Может кто-нибудь знает живые и развивающиеся форки/порты втородума, с годным мультиплеером, картами для прохождения и коммьюнити?

GT
()

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

 

Привет

Достаточно часто создаются темы, где люди думают переходить на 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.


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

Kroz
()

скриптец для рассчета износа ssd на конроллере phison s9

 

#!/bin/sh

dev=$1

raw=$(smartctl -a $dev |awk '/^173 /{printf("%08x\n", $10)}')
wear_block_avg=$(echo $raw |awk '{printf("%d", "0x" substr($1,1,4))}')
wear_block_max=$(echo $raw |awk '{printf("%d", "0x" substr($1,5,8))}')

echo "average block erase count: ${wear_block_avg}"
echo "maximum block erase count: ${wear_block_max}"
# ./s9wearing.sh /dev/sda
average block erase count: 13
maximum block erase count: 265
Rost
()

Плазматрон

 , ,

EDEX-UI - оболочка в стилистике фильма TRON: Legacy. На мой взгляд, для планшета - самое оно, экранная клавиатура решает. Вытаскиваешь такой планшет при людях из рюкзака, и над головой сразу начинают сгущаться чёрные вертолёты АНБ. Кстати, сабж мне сильно напомнил vim, кто угадает почему?

Deleted
()

Инвайты в еще один инстанс Mastodon: lor.sh

 , , , ,

Привет, котаны.

Недавно я узнал о таком проекте, как Mastodon, и таки решил поднять, о чем писал ранее.

Mastodon – это федеративный аналог Twitter на основе ActivityPub, протокола, разработанного консорциумом W3C. Вы можете общаться и «фолловить» пользователей с других серверов.

Интересная особенность Mastodon — наличие «ленты сервера», что помогает искать интересные посты от людей из комьюнити.

Кроме веб версии существует также множество клиентов, включая Android и GNU/Linux. Полный список можно посмотреть на сайте проекта.

Особенности сервера:

  1. Пингвины.
  2. Вариация на Tango в качестве основной темы.
  3. Отсутствие списков блокировки.
  4. Цензура отсутствует. Тем не менее, не следует постить очевидно противоправный контент, а также засирать ленту мусором — используйте для этого другие сервера.
  5. На данный момент регистрация доступна только по инвайтам (создание инвайтов доступно для пользователей).

Почему я просто не воспользовался другими инстансами?

  1. Мне хотелось, чтобы ядро пользователей было связано с ЛОР как комьюнити.
  2. Из предыдущего следует, что лента будет значительно интереснее, чем на любом случайном сервере.
  3. Меня не устраивали длинные доменные имена.
  4. Fediverse — это о том, чтобы инстансов было большее.

Непосредственно инвайт: https://lor.sh/invite/mEy2bknx

Deleted
()

Парсерная игра «МЕТЕЛЬ» на свободном движке INSTEAD

 , , ,

Парсерная игра «МЕТЕЛЬ» на свободном движке INSTEAD
Группа Игры

Автором движка INSTEAD Петром Косых и художником Pakowacz выпущена игра «МЕТЕЛЬ».

Игра написана с использованием специально разработанного парсерного модуля «МЕТАПАРСЕР 3», который позволяет создавать игры с текстовым вводом.

Старенький синий седан едет по заснеженной трассе. Внутри машины — двое.

Ведёт машину усталая женщина лет 35. На заднем сидении справа сидит её дочь — девочка-подросток.

Девочка прислонилась лбом к холодному стеклу. Мать продолжает начатый разговор...

-- Вот увидишь, тебе там понравится.

Что тебя ждёт за снежной пеленой?

Исходный код игры (состоящий из набора Lua-скриптов и медиафайлов) распостраняется по лицензии CC-SA.

Для игры понадобится интерпретатор INSTEAD, который работает на большинстве известных платформ: Linux, Windows, FreeBSD, OS X, Android, Symbian и др.

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

>>> Страница игры на itch.io

>>> Скачать игру

>>> Инструкция по запуску игр

>>> Статья на dtf.ru (dtf.ru)

gloomy
()

Развитие моего конфига i3

 albert, , , ,

Раз тут такое спонтанное выкладывание i3, то я тоже выложу своё.

Это - постепенное развитие моего конфига, который был сделан «по вашим советам» (NixOS + i3 + KDE (по вашим советам))

Основные внешние изменения - добавлены konversation с конфигом, цветовая тема okular, «цветовая тема» firefox ( LOR (pic4a.ru) habr github ).

Ещё я попробовал попользовать XMonad, особого профита для себя не увидел. Вместо этого просто научился использовать табы в i3.

Внутри я добавил плагинов emacs для своего комфорта, растащил конфиг по отдельным файлам, дописал плагинов для albert, перешёл на rclone с gdrive-ocamlfuse.

Конфиг: https://github.com/balsoft/nixos-config/

ПО

  • NixOS+home-manager
  • i3
  • polybar

На этом скрине

  • emacs

Вообще

  • firefox
  • albert
  • dolphin
  • konsole + zsh
  • kdenlive
  • trojita, telegram-desktop, vk-messenger, konveration
  • VirtualBox для виртуалок с «нормальными» дистрами

Скрины того, чем я занимаюсь

  • Основной скрин: допиливание скриптов polybar
  • учёба
balsoft
()