Хочется странного: UEFI remote control
Привет
Сильно не пинайте, хочу попробовать как это работает но не знаю у кого спросить и с чего начать
Привет
Сильно не пинайте, хочу попробовать как это работает но не знаю у кого спросить и с чего начать
В какие игры вы играли или знаете/видели, где главного героя из-за воздействия на него веществ или страха посещают галлюцинации?
Из того, что сразу вспомнилось: Max Payne; Call of Cthulhu: Dark Corners of the Earth (помню смутно посещали ли); Amnesia: Dark Descent; Batman: Arkham Asylum; Resident Evil Village.
Добрый день!
Написал небольшой сайт на apache2.54 (debian) с аутентификацией в домене на 2012-м с помощью keytab-файла , и все работало штатно, но через месяц что-то с нашем царстве-королевстве произошло, кто что настроил, не знаю, но теперь при обращении к сайту на защищенный контент при вводе корректных учетных данных происходит повторный запрос, после чего страницы открываются (конечно, до закрытия браузера). В логе апача gss_accept_sec_context() failed: An unsupported mechanism was requested (, Unknown error)
Выяснилось, что теперь браузер вначале пытается авторизоваться по NTLM, а при повторной попытке, видимо, использует kerberos. Причем это только на хостах с Windows, они в домене. В линукс-хостах все нормально.
Файл конфига апача стандартный, по-умолчанию
Конфиг sites-enabled
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine on
SSLCertificateFile /etc/ssl/certs/_***.crt
SSLCertificateKeyFile /etc/ssl/private/***.key
SSLCACertificateFile /etc/apache2/ssl.crt/ca-bundle.crt
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
<Directory /var/www/html/site>
AuthType Kerberos
KrbAuthRealms DMZ.LOCAL
KrbServiceName HTTP/***.dmz.local@DMZ.LOCAL
Krb5Keytab /etc/apache2/***.keytab
KrbMethodNegotiate on
KrbMethodK5Passwd on
require valid-user
KrbSaveCredentials on
</Directory>
</VirtualHost>
При создании кейтаб-файла было указано все тоже стандартно. Где собака порылась, что можно предпринять со стороны веб-сервера?
У меня в локальной сети есть DNS-сервер и другие компьютеры. У них названия типа: host1.mydomain.local
Если в /etc/resolv.conf дописать:
search mydomain.local
то всё работает.
А если эту строчку убрать, то host1.mydomain.local не резолвится. Именно не host1, а полное имя host1.mydomain.local.
Почему?
Типа .local это специальные имена для mDNS, и их вообще не надо резолвить с помощью обычного DNS? А прямое указание в /etc/resolv.conf позволяет это преодолеть? Как-то не логично.
Прочитал новость, что Минцифры видимо в каком-то виде склонно разрешить официальное использование нелицензии, если лицензию не продают.
https://www.kommersant.ru/doc/5645870
Минцифры понимает, что некоторые российские компании вынуждены использовать нелицензионное программное обеспечение от компаний, ушедших из России, сказал глава министерства Максут Шадаев. Он добавил, что сейчас в министерстве обсуждаются разные варианты решения проблемы, в том числе с переводом лицензионных отчислений на специальный счет. На следующей неделе тема будет обсуждаться на стратегической сессии, к концу месяца планируется выработать решение, отметил министр.
«Сейчас есть очень много нюансов в этой модели регулирования. Я надеюсь, до конца ноября придем к общему мнению. Но то, что мы должны дать какой-то ответ — это очевидно… Какую-то систему легализации, какие-то, как мы называем, "патенты на каперство", мы, скорее всего, будем выдавать»,— сказал господин Шадаев во время выступления на конференции CNews Forum.
Казалось бы причем тут усиление борьбы? Есть мысль, что для кого-то жирного сбор денег на такие специальные счета для отчислений станет хорошей кормушкой и сейчас обсуждают детали ее обустройства. Сейчас на «пиратство» продукции, ушедших с рынка фирм, смотрят сквозь пальцы. А будут очень мотивированно. Как например уже давно на 1C.
Линукс тут при том, что очень легко может оказаться, что де-факто легальный линукс - это только официально купленый линукс. В тему https://www.kommersant.ru/doc/5645539
Собеседники “Ъ” на российском IT-рынке рассказали, что Минцифры планирует определить три наиболее перспективные для господдержки отечественные операционные системы (ОС), включенные в реестр российского ПО. В дальнейшем министерство, говорит один из источников “Ъ”, хочет обязать российских разработчиков адаптировать свое ПО под эти системы.
Де-юре, конечно нет, но объяснять, что например, Arch или Debian стоят законно может оказаться слегка геморойно.
Надо оцифровать с книг и отдельных листов несколько черно-белых схем и изображений примерно такого типа.
Вобщем, схематичные наброски и несложные рисунки.
Пока на ум приходит сфоткать само изображение. Но хочется получить не просто фотку, а нормальный отдельный цифровой рисунок, который можно будет потом отделить от всего лишнего (например, каких-либо символов/подписей), или например избавить от пожелтевшего фона старой книги, т.е. получить отдельную сущность в виде рисунка.
Недавно читал про возможности современных нейросетей, которые по простому текстовому описанию могут создавать реалистичные изображения… Вы только зацените.
https://habr.com/ru/company/ruvds/blog/678876/
И подумал, а нет ли простого готового решения, как «вытащить» черно-белое изображение с цифровой фотографии, чтобы можно было сохранить его, скажем, в формате png (с прозрачностью и всеми делами)?
Или, возможно, есть какое-то решение попроще, без этих всяких нейросетей? Может быть какой-нибудь редактор в Linux так может? Чтобы открыл в редакторе фотку с черно-белым изображением, а он «подхватил» сам рисунок, и ты его уже копипастишь в новый png-файл с прозрачностью. Например, чтобы достроить схему и уже пересохранить в виде нового изображения.
На Ubuntu 20.04 установил selinux и соответствующие пакеты
# apt install policycoreutils selinux-utils selinux-basics auditd audispd-plugins
Потом выполнил следующие команды
# selinux-activate
# selinux-config-enforcing
и ребутнул сервер. Теперь не могу зайти на сервер - приглашение логин появляется а password нет. Указал в GRUB selinux=0 и залогинился по ssh. Достаточно ли теперь выполнить
# semanage port -a -t ssh_port_t -p tcp 22
для успешного последующего входа по ssh при уже работающем SElinux?
Немного нубский вопрос - но зачем нужен локальнй резолвер в линуксе? Разве все приложения когда резолвят адрес обращаются вначале к 127.0.0.53:53 Или тот же самый браузер сразу лезет на указанный в сетевых настройках адрес?
Как работает если используется SNAT или MASQURADE
Также как лучше и разумнее всего поменять резолвер если используется Unbound.
Или это все появилось только в SystemD и до этого резолвилось все по другому - файл host и если нет то dns который указан в сети? Или это networkmanager виноват?
Предположим я выполняю ls -lZ к какому-нибудь файлу, скажем к /usr/sbin/smbd, из вывода я узнаю, что для него задан тип smbd_exec_t. Как обладая этими знаниями я могу понять в какой политике он описан и как просмотреть настройки этой политики?
Коллеги, всем привет. Начал расти зоопарк серверов, встал вопрос о внедрении системы управления серверами. Пока нужны базовые возможности. Может сможете подсказать решение, в котором будет:
Спасибо
Всем добра. Попробую бегло описать ситуацию - есть гос.организация (университет), есть переход на отечественное ПО (Астра), есть 800 машин (с ужасным железом зачастую) на несколько учебных корпусов которые надо перевести. И я, как увы единственный кроме сетевика и начальника отдела сотрудник соображающий хоть что-то в линухе, и кому досталось счастье «сварить» инструменты по внедрению.
С самой установкой справился, поднял PXE и полную автоустановку системы с разметкой и предварительным бекапом данных дабы коллеги не имели шанса ничего сломать. Теперь следующая задача - раскатать после установки набор определенных пакетов (немного, в основном задачи покрывают то что имеет Астра «out of box») и конфигураций к службам (таких как VNC и SSH с ограничениями по авторизации, чтобы можно было чинить что-то удаленно, до этого бегали днями напролет на каждый чих), источники пакетов (поднял локальные репо Astra/Debian Stretch). Сначала была написан жирнючий sh скрипт в post-install, но по итогу пришло осознание что выход не лучший, ведь что-то в конфигурациях может измениться, также как и есть места где могут понадобиться определенные пакеты для работа с мультимедиа, запись лекций для дистанта, зум и тд. В основном достаточно типовые кейсы для юзверя, к разработке ПО никак не относящиеся. Начальник предложил рыть в сторону Puppet/Ansible, за пару вечеров разобрался что это вообще такое и с чем едят, но есть сомнения в правильности такого подхода.
Даже выбирая между Puppet и Ansible учитывая дикую привлекательность второго, смущает то что push модель Ansible означает что около 800 хостов будут траиться по SSH постоянно, когда оффлайн будет минимум треть из них в любой момент времени, это все же рабочие машинки а не сервера, есть опасение что изменения в конфигурации будут применяться вечность учитывая таймауты подключения. Тот же Puppet синхронизируется с сервером только когда машинка включена, pull модель. При этом Puppet с другой стороны куда более геморен, а времени разбираться мало, через месяц начинаем внедрение. Плюс нужен гуй, опять же коллегам не обьяснить что такое работа в CLI. Для Ansible рассматривал Rundeck/AWX (знаю что это Rundeck это пошире Ansible, но задачи схожие), для Puppet - puppetboard. Вопрос в том, что для такого случая подходит больше? Может, мы дружно мыслим неправильно и зря копаем в сторону таких решений, возможно это слишком избыточно?
Пока минимальная конфигурация - определенные пакеты, ввод в домен AD с помощью Самбы (к успеху с sssd не пришли), авторизация по SSH только с 3 машин (три сотрудника) при помощи ключей, то же и с VNC. Но как у нас водится, по хотелкам может измениться многое и в любой момент, как то перевести все на другой офисный пакет вместо Либры (ибо еще не закуплено), другой браузер, поставить везде какой-нибудь софт и тд; всё это общее для всех хостов. И какой бесплатный VNC или в принципе RD server можете посоветовать? Работа исключительно в локальной сети, с определенных клиентов, чем приятнее картинка и меньше задержек - тем лучше.
Популярные шрифты изгнаны из ГОСТов. Госорганам предписано переходить на российские аналоги.
Росстандарт прописал в ГОСТе рекомендацию по использованию госорганами свободно распространяемых и российских шрифтов вместо американских Times New Roman, Arial и других. Эти шрифты правообладатель из США запретил им использовать еще в декабре 2018 г., и у них есть множество отечественных аналогов.
Действующая версия ГОСТа подразумевает использование шрифта Times New Roman, который может использоваться без лицензии только в американских ОС семейства Windows.
Рекомендовалось использовать отечественные или свободно распространяемые шрифты, максимально похожие на запрещенные, чтобы структура документов, созданных с использованием того же Times New Roman до введения запрета, в дальнейшем не искажалась. В числе рекомендуемых упоминались, к примеру, шрифты линейки PT Astra, созданные отечественной компанией «ПараТайп» по заказу российской ООО «РусБИТех-Астра», развивающей отечественную ОС Astra Linux.
Подробнее https://www.cnews.ru/news/top/2021-03-12_rosstandart_izgnal_populyarnye
Перемещено Shaman007 из russia
Провел несколько интервью. Задают аховые вопросы. Очень многие лезут туда, куда им не положено лезть
Какой вы видите идеальную фирму, в которой работаете? Я вообще-то идеальной вижу ту фирму, в которой генеральный директор - это я. Эта фирма зарабатывает много денег. Это по секрету. Как обрабатывать этот вопрос, чтобы не напугать работодателя?
Что вы планируете в своей жизни в будущем? Вообще это мое личное дело что я планирую. Я устраиваюсь к вам на работу, готов за деньги выполнять задачи. Всё, что касается моей жизни - это моё личное дело. Как обрабатывать этот вопрос, чтобы не напугать работодателя? Прям задолбали личные вопросы задавать
У меня детальное резюме со всеми проектами, прям что за проект детально и детально какой стек. Интервью начинается со слов «расскажите чем вы занимались». И начинается пересказ резюме минут на 20-30. Откройте резюме, почитайте. Там всё детализировано. После 5 интервью появилось желание на диктофон записать весь этот рассказ и включать им записанное. Что в этом случае делать, когда всё есть в резюме, а «расскажите, мы хотим вас послушать»
Расскажите об изюминках, которые были у вас в работе. Вообще-то на определенном этапе всё это превращается в рутину. Чтобы прям изюминок не было. Есть задачи, они планомерно решаются. Далее один из тех, кто проводит интервью «вы это всё без энтузиазма говорите». А какой тут может быть энтузиазм? Есть работа - я ее выполняю. Вам что нужно еще ее с энтузиазмом выполнять? Нуууу, человек, который делает с энтузиазмом сделает ее творчески. Я: творчески не значит эффективно. С другой стороны «бла-бла-бла» нуууу да, но это другой вопрос. Как эту хреновину обрабатывать грамотно?
Расскажите пять последних задач, которые вы решали. Ну вообще я решаю много чего, вспомнить прям сейчас не могу. Ну ок, вот задача, которую я решал <рассказываю что я решал>. Технический специалист «пфффф, так этож легкотня». А ты такой знаешь, что готового решения этого всего нет. Скорей всего надо завершать интервью, но может это правильно обрабатывать надо?
Заметил, что на позицию мидла задают совсем не мидловские вопросы. Как с этим быть? Такое ощущение, что устраиваешься в NASA, а по вопросу «какая у вас вилка» и сразу ответ «а какие ваши ожидания?» и потом долгая дискуссия на тему о том, что вы должны назвать вилку, мало ли какие у меня ожидания, говорят $1500-2300. Т.е вопросы космические, а зарплата такая себе
Привет
Достаточно часто создаются темы, где люди думают переходить на 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
#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
Посмотрел галерею и решил расшарить своё рабочее место. Работа предполагает офис, но по всем известным причинам с марта месяца работаю полностью удалённо (дело происходит в США, если что). Из-за этого обновил рабочее место, приведя его в состояние «то, чего всегда хотелось».
Итак, что у нас на фото:
Сетап подбирался под мои вкусы, неспешно и не особо оглядываясь на стоимость (в разумных пределах) и очень радует каждый день. Если есть какие-то вопросы - пишите, отвечу в удовольствием. Всем спасибо за внимание и с Наступающим!
>>> Просмотр (2664x2000, 2941 Kb)
Привет, ЛОР!
Выручай советом! Меня дико задолбала пыль дома. Раз в неделю у меня дома влажная уборка всего и вся, и при этом за неделю успевает выпасть такой слой пыли, что аж страшно становится. И я даже не представляю, откуда она может браться: мягкой мебели у меня сравнительно немного, а та что есть в основном с кожаной обивкой. Подскажи, что делать?
Как вариант, думаю купить какой-нибудь мегаразрекламированный девайс для мойки воздуха, но что-то меня гложат сомнения, что он хоть как-то поможет. Скажи, есть ли история успеха?
Добрый день, Разбираюсь с докером. Есть задача - если сервис в контейнере (бинарник со строкой запуска) «упал», то перезапустить контейнер. Каким образом выполняется, и выполняется ли такая проверка, это возможно настроить автоматически или по набору критериев? Спасибо.
Привет всем! Нужна мозгопомощь в небольшом вопросе: поставил samba в контейнер proxmox для расшаривания одной папки. Права - самые обычные, ACL нет, домена нет, гостевой вход. И вроде бы всё хорошо, но файлы не удаляются:
smbclient -N ‘\lx01.loc\share’ rm 111.txt
NT_STATUS_ACCESS_DENIED deleting remote file \111.txt
При этом каталоги и создаются и удаляются, файлы можно создать и переименовать. Но удалить нельзя. create/directory mask и force user/group пробовал. Пересмотрел уже всё - не могу поймать что ей мешает.
И да - сделал privileged container - не помогло. В самом контейнере через sudo от разных пользователей всё удаляется - т.е. это самба обо что-то зацепилась.
Купил еще в период «самоизоляции» в салоне то ли МТС, то ли Билайна пару карточек. Но руки проверить только сейчас дошли.
Обе на 32Гб, одна Transcend, вторая SmartBuy.
Далее делаю этим картам dd if=/dev/urandom of=/dev/карта obs=2048 status=progress
urandom, чтобы каких-то оптимизаций не случилось из-за нуля.
Результат:
Transcend просто сдох где-то в районе 16Гб и теперь не определяется.
SmartBuy записался 8Гб ровно и типа больше не лезет. Типа карточка как бы 8Гб. Жаль не обратил внимание, когда всовывал какое было изначальное форматирование. Хотя сейчас логи посмотрел, 8Гб она сразу была. При этом в упаковке надпись 32Гб и на самой карте 32Гб. Вот падлы однако.
Попробую купить Samsung Evo и помучить его. Вот дерьмо же. LOL.
По аналогии с debootstrap, pacstrap, не найдя аналога для своего уютненького CRUX, решил заняться написанием сей утилиты. Приглашаю к тестированию.
Если у вас CRUX, она у вас будет работать из коробки (на самом деле нет). Если у вас другой дистрибутив, то вам в любом случае необходимо подготовить среду для развёртывания КРАКСИКОВ. Это как ФИКСИКИ, только КРАКСИКИ. :3
# mkdir /mnt/crux-install
# mount crux-3.5.iso /mnt/crux-install
— монтируем образ
# cp -r /mnt/crux-install/crux/core .
— копируем порты, это установочные пакеты. Они нужны, чтобы КРАКСИКИ могли плодиться.
# tar -C /tmp -x -f core/pkgutils/pkgutils#*.pkg.tar.xz usr/bin/pkgadd
- извлекаем pkgadd, необходимый для работы скрипта.
Запускать так:
# mkdir chroot/
# cruxstrap --pkgadd /tmp/usr/bin/pkgadd chroot/ core/
Где, chroot/ — это директория, куда будет установлен CRUX, core/ — это директория с пакетами, которые будут установлены. Если у вас CRUX, указывать путь до pkgadd и вообще извлекать его не нужно.
TODO: реализовать установку не всех подряд пакетов из директории, а возможность указывать их списком # cruxstrap chroot /usr/ports bash linux linux-firmware ...
#!/bin/bash
panic() {
if [ -d "$TMP" ]; then
rm -rf $TMP 2>/dev/null
fi
exit ${1:1}
}
got_cmdline() {
while [ "$1" ]; do
case "$1" in
-pa|--pkgadd) shift ; PKGADD_BIN="$1" ;;
-v|--version) echo "`basename $CRUXSTRAP_COMMAND` $CRUXSTRAP_VERSION" ; exit 0 ;;
-h|--help) got_help ; exit 0 ;;
*)
if [ -z "$CHROOT_DIR" ]; then
CHROOT_DIR="$1"
shift
continue
fi
if [ -z "$MIRROR_DIR" ]; then
MIRROR_DIR="$1"
shift
continue
fi
TO_INSTALL+=($1)
shift
;;
esac
done
}
search_in() {
for obj in $1/*; do
if [ -f "$obj" ]; then
case "$obj" in
*.pkg.tar.gz) echo $obj ;;
*.pkg.tar.bz2) echo $obj ;;
*.pkg.tar.xz) echo $obj ;;
*.pkg.tar.zstd) echo $obj ;;
esac
elif [ -d "$obj" ]; then
search_in $obj
fi
done
}
search_for() {
# TODO
echo
}
got_help() {
echo "usage: `basename $CRUXSTRAP_COMMAND` [options] new_chroot_dir/ /ports_dir [package ...]"
echo "options:"
echo " -pa, --pkgadd set path to pkgadd [/usr/bin/pkgadd]"
echo " -v, --version print version and exit"
echo " -h, --help print help and exit"
}
main() {
PKGADD_BIN="/usr/bin/pkgadd"
CHROOT_DIR=""
MIRROR_DIR=""
TO_INSTALL=()
got_cmdline "$@"
if [ ! -n "$CHROOT_DIR" ] || [ ! -n "$MIRROR_DIR" ]; then
got_help
exit 0
fi
if [ ! -x "$PKGADD_BIN" ]; then
echo "Can't find $PKGADD_BIN, try add: --pkgadd ./pkgadd"
panic
fi
if [ ! -d "$CHROOT_DIR" ]; then
echo "'$CHROOT_DIR' is not directory."
panic
fi
if [ ! -d "$MIRROR_DIR" ]; then
echo "'$MIRROR_DIR' is not directory."
panic
fi
if [ ! -z "$TO_INSTALL" ]; then
SEARCH_FOR=$TO_INSTALL
TO_INSTALL=()
for pkg in ${SEARCH_FOR[@]}; do
TO_INSTALL+=($(search_for $MIRROR_DIR $pkg))
done
else
TO_INSTALL=($(search_in $MIRROR_DIR))
fi
if [ ! -n "$TO_INSTALL" ]; then
echo "Nothing to do. Check for $MIRROR_DIR dir."
panic
fi
for db in $CHROOT_DIR/var/lib/pkg{,/db}; do
case "$db" in
*/var/lib/pkg) install -d $db ;;
*/var/lib/pkg/db) touch $db ;;
esac
if [ $? = 0 ]; then
echo Database connected: $db
else
echo Unable to connect: $db
panic
fi
done
for pkg in ${TO_INSTALL[@]}; do
echo -n "Installing ${pkg##*/} ..."
$PKGADD_BIN --root $CHROOT_DIR $pkg 2>&1 >$TMP/log
if [ "$?" = "0" ]; then
echo " OK"
else
echo " ERROR"
cat $TMP/log
fi
done
}
trap "panic" INT HUP QUIT TERM EXIT
readonly CRUXSTRAP_COMMAND="$0"
readonly CRUXSTRAP_VERSION="0.1"
TMP="$(mktemp -d)"
main "$@"
Картинка для привлечения внимания.
Напоследок, дисклеймер, зачем это не нужно. В данный момент я разворачиваю куда более грандиозную систему по автоматизации сборки образов для виртуальных (и не только) машин. CRUXSTRAP лишь вершина, оно создаёт ванильный, это важно, chroot, который затем упаковывается в squashfs. Рядом с ним кладётся другой squashfs, в котором лежат только настройки системы (при загрузке системы настройки ложатся «поверх» через overlay). Вся эта порнография упаковывается в общий initramfs, которые вместе с vmlinuz по итогу отдаются по сети (PXE) на любые устройства в сети.
Всё это именуется общими названиями: [default], [internet-gateway], [mailer-daemon]... При загрузке DHCPD + TFTP отдают GRUB2, который пытается загрузить grub.cfg глядя на MAC-адрес:
set default=0
set timeout=0
set menu_color_highlight=white/dark-gray
set menu_color_normal=black/light-gray
set color_normal=light-blue/blue
regexp --set=1:m1 --set=2:m2 --set=3:m3 --set=4:m4 --set=5:m5 --set=6:m6 '^([0-9a-f]{1,2})\:([0-9a-f]{1,2})\:([0-9a-f]{1,2})\:([0-9a-f]{1,2})\:([0-9a-f]{1,2})\:([0-9a-f]{1,2})' "$net_pxe_mac"
set mac="${m1}-${m2}-${m3}-${m4}-${m5}-${m6}"
source /os/mac-$mac/grub.cfg
if [ "$default" = "0" ]; then
source /os/pxe-default/grub.cfg
fi
Если конфигурации с таким MAC не предусмотрено, отдаётся /os/pxe-default. Просто делаем ln -sf pxe-internet-gateway mac-52-54-00-12-34-56
, и теперь вместо /os/pxe-default машина с этим адресом пройдёт по симлинку и получит конфигурацию /os/pxe-internet-gateway. grub.cfg:
set default="pxe-internet-gateway"
menuentry "Configuration [internet-gateway] for ${net_pxe_ip} (${net_pxe_mac})" --id=pxe-internet-gateway --unrestricted {
linux /os/pxe-internet-gateway/vmlinuz
initrd /os/pxe-internet-gateway/initrd
}
Таким образом любой хост в сети может выполнять любую задачу, получив соответствующую конфигурацию.
В случае поломки софта или атаки хакеров, ты нажимаешь кнопочку Reset или ПОПРОБУЙТЕ ВЫКЛЮЧИТЬ И СНОВА ВКЛЮЧИТЬ, система загружается по сети с нуля, как ни в чём небывало.
В случае поломки железа, ты даже не заморачиваешься, включаешь в сеть другую железку, меняешь её аки лампочку в цоколе, и всего-навсего прописываешь ln -sf новый MAC, чтобы теперь эта железка выполняла такую-то роль в сети. И всё. А представьте, если вы создадите систему которая масштабируется by-design. Загружается и автоматически становится частью чего-то, нодой. Один раз настроил у себя ОС для неё, и только и успевай подключать новые железки! Уххх. :D
Вся настройка, всех хостов лежит на твоей стороне. Структура:
/var/tftpboot/os/mac-00-00-00-00-00-00 -> /var/tftpboot/os/pxe-default
/var/tftpboot/os/mac-52-54-00-12-34-56 -> /var/tftpboot/os/pxe-internet-gateway
/var/tftpboot/os/pxe-default/grub.cfg
/var/tftpboot/os/pxe-default/vmlinuz
/var/tftpboot/os/pxe-default/initrd
/var/tftpboot/os/pxe-default/packages
/var/tftpboot/os/pxe-default/packages/bash#5.0.17-1.pkg.tar.xz -> /usr/ports/core/bash/bash#5.0.17-1.pkg.tar.xz
/var/tftpboot/os/pxe-default/packages/linux#5.6.7-1.pkg.tar.gz -> /root/ports/linux/linux#5.6.7-1.pkg.tar.gz
...
/var/tftpboot/os/pxe-default/persistent
/var/tftpboot/os/pxe-default/persistent/etc
/var/tftpboot/os/pxe-default/persistent/etc/rc.conf
/var/tftpboot/os/pxe-default/persistent/etc/ssh
/var/tftpboot/os/pxe-default/persistent/etc/ssh/sshd_config
Для каждого хоста свои пакеты, своя конфигурация. Обновил конфигурацию, пересобрал образ, перезагрузил хост. Не важно, виртуальная это машина или стационарный ПК.
И не важно, это может быть не CRUX, а любой другой дистрибутив, собранный в chroot: он точно так же будет упакован в squashfs, со своими настройками, и будет загружаться по сети со своим ядром.
P.S.: А чём вы занимаетесь на карантине?
следующие → |