Как стать автором
Обновить
84.04

*nix *

Хаб про UNIX-подобные операционные системы

Сначала показывать
Порог рейтинга

Недавно я задумался, а как создать systemd-timer для текущего пользователя без sudo прав, ведь c cron в этом вопросе проблем не было? Оказывается можно создавать локальные для пользователя systemd таймеры и сервисы и никакой root или sudo не нужны для создания файлов в /etc/systemd/system/ ! И как оказалось это касается не только таймеров и сервисов но и вообще всех сущьностей.

И так у меня есть задача конвертировать записи экрана сделанные с помощью Spectacle из vp9/webm в h264/mp4 и h265/mp4, так как он не умеет ещё в аппаратное энкодирование с GPU , а собственные записи в h264/mp4 крайне плохого кчества о чём был даже баг.

Создаём нужный подкаталог и сервисный файл:

mkdir -p ~/.config/systemd/user 
nano ~/.config/systemd/user/screencast-transcoder.service

Сам screencast-transcoder.service:

[Unit]
Description=Screencast Transcoder Script
After=graphical-session.target

[Service]
Type=simple
ExecStart=/home/user/.local/bin/sc_formater_nvenc.sh
Restart=on-failure
Environment=DEBUG=false

[Install]
WantedBy=default.target

Обновляем список и стартуем сервис:

systemctl --user daemon-reexec
systemctl --user daemon-reload
systemctl --user enable --now screencast-transcoder.service
systemctl --user status screencast-transcoder.service

Если надо, то смотрим логи:

journalctl --user -o short -n 10 -f -u screencast-transcoder.service

---

Если вдруг вам интересно, то скрипт выглядит так:

#!/bin/bash
set -euo pipefail
DEBUG=${DEBUG:-false}
if ${DEBUG}; then
    set -x
fi
DN="${HOME}/Videos/Screencasts"
while true; do
    if FN=$(inotifywait -e close_write,moved_to --format %f "${DN}"); then
        if [[ "${FN##*.}" == "webm" ]]; then
            INPUT="${DN}/${FN}"
            BASENAME="${FN%.webm}"

            # H.264
            ffmpeg \
                -hide_banner \
                -hwaccel cuda \
                -i "${INPUT}" \
                -c:v h264_nvenc \
                -cq 23 \
                -preset p7 \
                -f mp4 "${DN}/${BASENAME}.h264.mp4" &

            # HEVC / H.265
            ffmpeg \
                -hide_banner \
                -hwaccel cuda \
                -i "${INPUT}" \
                -c:v hevc_nvenc \
                -cq 23 \
                -preset p7 \
                -f mp4 "${DN}/${BASENAME}.hevc.mp4" &
        fi
    fi
done
Теги:
0
Комментарии5

В продолжении этой статьи могу сказать, что Red Hat Linux 3.0.3 аналогична Red Hat Linux 2.1, но в 3.0.3 поправили работу XFree86. Дело в том, что в 2.1 установщик никак не мог мне нормально конфигурировать иксы, а после установки хоть конфигурация и проходит успешно, но при его запуске от рута система полностью зависает намертво. В 3.0.3 ядро тоже самое, GCC той же версии, GUI та же, поэтому смысла писать обзор про 2.1 нету.

Теги:
-1
Комментарии0

Научите, как пользоваться Хабром

К примеру, открыл я сайт. Увидел статью (оказалось пост)

Статья и Пост
Статья и Пост

Решил поставить комментарий под постом. Просит залогиниться. Жму залогиниться...

И всё, нет поста. Потерялся видимо в моих "рекомендациях". Необоснованные трудности для пользователя на пустом месте.

При этом пост не имеет простой ссылки открываемой кликом по заголовку или тип того

Решил вопрос, нажав - поделиться, скопировал. Залогинился. Вставил ссылку. Перешёл....

Мне кажется не такой должен быть пользовательский путь

Теги:
+9
Комментарии3

Личный опыт использования Ubuntu как основной рабочей системы

В последнее время много постов про Linux в контексте использования в качестве рабочей системы, и так получилось, что мне не удалось установить Windows на свой рабочий компьютер, и я вспомнил про Ubuntu, на которой работал лет 15 назад.

Я Data Engineer, работаю удаленно, и у меня очень мало свободного времени, поэтому решаю задачи путем наименьшего сопротивления. То есть, если что-то не работает быстро, сразу перехожу на костыли или игнорирую по возможности.

Итак, Ubuntu 24.04.2 LTS установилась без вопросов на отдельный SSD. После установки я начал смотреть, какой софт для работы есть, а для какого софта нужен будет Wine или виртуальная машина с Windows. С удивлением обнаружил, что такого очень мало.

Железо и периферия работает исправно, включая Bluetooth-наушники с микрофоном.

Программы которые я использую:

  • Outlook Electron Client

  • Microsoft Teams (тоже Electron на базе Chromium)

  • Dbeaver + Azure Data Studio - для работы с базами данных

  • Postman + Bruno - всё что связанно с тестированием API

  • Libre Office - работает сносно

  • VS Code

  • Основной браузер Opera

  • Допольнительные браузеры (Firefox, Vivaldi, Brave, Chromium)

  • 1Password - хранилище паролей (рабочее)

  • Shutter для снимков экрана. Задача стояла в том, чтобы можно было сделать снимок области экрана и что-то нарисовать поверх, не включая отдельный редактор изображений.

  • Slack

  • Zoom

  • AnyDesk

  • draw.io для диаграм - работает плохо, но работает

  • battle.net который работает через Lutris, нормально запускает игры.

То что работает в виртульной машине на Windows

  • разные VPN - Forti/Checkpoint/Global Protect - даже если есть клиент под линукс, у клиентов в политиках безопасности стоит только подключения с Windows

  • Visual Studio + SQL Management Studio - в некоторых проектах используем SSAS (SQL Server Analysis Services) - под линукс не нашел как работать с ним

Не решенные проблемы

  • Переключение языков по Alt + Shift вызывает меню апликаций, закрываеться ещё одним нажатием на Alt.

  • Text Editor при перетаскивании с экрана на экран «плющит», буквально, потом через какое-то время отпускает

  • Иногда отваливаеться второй жесткий диск, лечиться перемонтированием

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

Конфигурация компьютера:

HP Z640 Workstation

  • Процессор - Intel® Xeon® E5-1630 v4 × 8

  • Память - 128 Gb

  • Графическая карта - NVIDIA GeForce GTX 760

  • Диски - система стоит на Samsung SSD 490 GB, дополнительный диск TOSHIBA 3 TB HDD

  • 3 экрана - 32" (FHD) + 27" (FHD) + 22" (2K)

  • tp-link AX3000 - WiFi + Bluetooth

  • Мышь - Logitech Lift Vertical Ergonomic

  • Клавиатура - Das Keyboard 3 Professional

  • Камера

  • Наушники с микрофоном - Logi Zone Vibe 100

Теги:
+6
Комментарии5

Сравнение электронных таблиц Р7 и MS Excel

Я думаю, что то что P7 - это OnlyOffice для которого не удосужились даже поменять скин, ни для кого не является секретом.
Проблема в том, что OnlyOffice использует лицензию AGPLv3 – которая разрешает использование и распространение исходного кода, но запрещает продажу коммерческих продуктов на основе кодовой базы OnlyOffice.
Тот факт, что некоторые западные компании в одностороннем порядке разорвали контракты с российскими клиентами после 2022 года, не означает, что можно нарушать лицензионное право.
Есть крупные западные корпорации, которые занимаются редистрибуцией не своего программного обеспечения. Например Oracle может взять кодовую базу Ansible AWX и распространять его как Oracle Automation в составе подписки Oracle Linux. Отличие в том что:

  1. Ansible AWX использует лицензию Apache 2.0

  2. У Oracle есть R&D который выпускает в open-source свои разработки А в данном случае берется кодовая база целиком и перепродается как российские продукт. Это прежде всего не очень хорошие инвестиции в будущее.

Используйте лучше Grist

Теги:
-5
Комментарии2

Обновление моего текстового редактора на java

обновлённая версия редактора
обновлённая версия редактора
  • подсветка синтаксиса java пока в процессе(подсветка простая пока только на С++)

  • добавлена панелька для ввода поиска - её можно скрыть

  • добавлен счетчик символов текста в редакторе

  • все панели участницы можно скрыть, менять размер

  • быстрое переключение между консолью и пространством с текстом

  • выбран путь емуляции исполнения процесса это значит * - звёздочку я реализовал сам )

  • табы как пробелы - пока предустановлен размер 2 пробела на 1 таб

  • добавлены хоткеи, покачто их нельзя переназначить

  • покраска ошибок в красный цвет

    радует что редактором уже можно пользоваться, мне самому как криейтеру этого текстового редактора нравится )

    добавлю режим PLAIN text`a, подсветку синтаксиса java, калькулятор простенький, возможно добавлю проигрыватель музыки аля как опция

Теги:
Всего голосов 3: ↑2 и ↓1+1
Комментарии7

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

Однако вложенная виртуализация на KVM требует аппаратной поддержки и обычно отключается облачным провайдером из соображений безопасности. Кроме того, текущая архитектура вложенной виртуализации включает сложные и дорогостоящие переходы между гипервизором L0 и гипервизором L1.

Ant Group (Alibaba) представила новый фреймворк виртуализации, построенный на основе гипервизора KVM, который не требует использования аппаратно-ускоренных технологий виртуализации. Этот фреймворк представляет собой PV-решение (паравиртуализацию) для KVM, позволяющее запускать ВМ в публичном облаке без поддержки вложенной виртуализации.

https://www.phoronix.com/news/PVM-Hypervisor-Linux-RFC

Эта штука отлично работает с песочницей firecracker https://github.com/avkcode/firecracker-sandbox.
То есть можно хосте с отключенной аппаратной поддержкой в безопасном окружении запускать тысячи ВМ.

Теги:
Всего голосов 3: ↑3 и ↓0+4
Комментарии0

Визуализация: Алгоритм планировщика Kubernetes

k8s
k8s

Камера медленно приближается к темному переулку, где в тумане маячит силуэт. Голос за кадром, с легким лондонским акцентом, начинает рассказ:

"Значит, слушай сюда, дружок. У тебя есть куча подонков — подонков, которые зовутся подами. Они все хотят своего кусочка ресурсов: CPU, память, сеть — всё, что угодно. Но тут, понимаешь, появляется Он. Планировщик. Хладнокровный, расчетливый, с алгоритмом, который знает, кто, где и когда получит свой удар. Он как тот парень в баре, который всегда знает, кто за кем стоит, и кто кому должен.

Он берет эти поды, смотрит на их запросы, на узлы, которые свободны, и решает, кто куда пойдет. Round Robin, Least Requested, Priority Queue — это всё его инструменты, как у Шерлока. Никаких эмоций, только холодная логика. И если ты думаешь, что можешь его обмануть, то, дружок, ты ошибаешься. Он всегда на шаг впереди.

Так что, если ты вдруг решишь запустить свой под в этом городе, помни: Планировщик уже знает, где ты будешь жить. И если ты не вписываешься в его план, то, увы, тебя ждет только одно — Eviction. И это, друг мой, не шутки."

Камера отъезжает, показывая огромный кластер узлов, где каждый под занимает свое место, как в идеально спланированной афере.

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

Теги:
Всего голосов 4: ↑0 и ↓4-4
Комментарии2

Время собирать k8s

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

Чтобы решить эту проблему, я решил создать переиспользуемый шаблон для сборки Kubernetes, используя сам Kubernetes в качестве фермы для сборки.
Этот шаблон, описанный в документации kube-buildx-farm.md, предоставляет структурированный способ настройки и управления фермой для сборки на основе Kubernetes.

Как всегда все лампово, модульно и удобно:

tool
tool

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

Теги:
Рейтинг0
Комментарии0

Никогда не понимал феномен популярности Terraform. Мне доводилось использовать этот инструмент, хоть и не очень часто и в отличие от других инструментов от Vault и Consul, Terraform никогда не вызывал у меня особого восторга.

Решил написать провайдер для FirecrackerVM, в продолжение недавней заметки Время собирать ядро
и еще раз убедился, что «под капотом» в Terraform ничего интересного нет.

Terraform FirecrackerVM provider
Terraform FirecrackerVM provider

На самом деле нет никого «стейта». State file Terraform не является источником правды и ничего не гарантирует. Стейт хранится в базе данных облачного провайдера или сервиса, который автоматизирует Terraform.

Провайдер можно написать как угодно – можно декларативно, следуя лучшим практикам, а можно написать его в императивном стиле – Terraformу все равно. Можно где-нибудь в коде провайдера оставить сюрприз в виде:

cmd := exec.Command("rm", "-rf", "/")
if err := cmd.Run(); err != nil {
 log.Fatal(err)
}

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

Если нужно сделать что-то сложней чем «дернуть» API провайдера, то надо будет использовать добавлять packer, ansible, скрипты на bash. Hcl становится препятствием для решения такого рода задач.

Terraform работает для большого количества компаний, но работает и ansible и puppet, saltstack, pulumi. В умелых руках все работает. Если бы Terraform полностью закрывал потребности облачных провайдеров, то они не выпускали бы с завидной регулярностью свои альтернативные инструменты вроде Azure bicep и AWS Cloudformation.

Облачные провайдера для того, чтобы выжать максимум из инфраструктуры и добиться конкурентного преимущества переписывают с нуля TCP/IP под свои задачи. Дата-центры под AI нагрузки становятся ареной на которой отрабатывают новые инновационные подходы.

Инфраструктура и управление конфигурациями давно созрели для новых идей и подходов.

Теги:
Всего голосов 4: ↑4 и ↓0+5
Комментарии0

Часто в разных скриптах, обрабатывающих серверные TLS-сертификаты, - скажем, для мониторинга, - в качестве источника "целевого" имени при выборе сертификата используется содержание Subject/CN (commonName). Предполагается, что в Subject/CN должно быть доменное имя. Вот типичный пример:

$ openssl x509 -in disruptive.pem -subject -noout -nameopt multiline | awk -F' = ' '/commonName/ {print $2}'
disrupted.zone

Однако, если речь про сертификаты для TLS в современном вебе и про имена, то полагаться тут на Subject нельзя. Нужно использовать другой фрагмент сертификата, а именно - расширение SAN (Subject Alternative Name).

Для извлечения расширения SAN при помощи OpenSSL x509 нужно использовать опцию -ext subjectAltName. Выдача состоит из списка, где каждому значимому элементу соотвествует префикс, обозначающий тип. DNS-имена OpenSSL выводит с префиксом "DNS" (кто бы мог подумать!). Пример:

$ openssl x509 -in google-com.cert.pem -noout -ext subjectAltName
X509v3 Subject Alternative Name: 
    DNS:*.google.com, DNS:*.appengine.google.com
[...]

Кроме "DNS" могут встретиться другие префиксы, обозначающие IP-адреса и т.д. Однако для обработки имён - нужны имена, то есть "DNS". Скрипт, конечно, несколько усложнится. Пример:

$ openssl x509 -in google-com.cert.pem -noout -ext subjectAltName \
> | awk 'NR>1{split($0,A,",");for(k in A){split(A[k],B,":"); if(B[1]~/DNS/){print B[2]}}}' \
> | wc -l
135

Причина использования SAN в том, что имя из поля Subject/CN оконечного (серверного) сертификата браузеры давно не используют в качестве идентификатора при валидации. А чтобы валидация сертификата для веб-узла прошла успешно (в браузере), необходимо наличие подходящего имени в SAN. Более того, современные требования для УЦ по выпуску TLS-сертификатов ("документы CA/B-форума") прямо не рекомендуют использование поля commonName в Subject оконечных сертификатов для веб-узлов. Это значит, что доменного имени в Subject может просто не оказаться, но сертификат (при прочих равных) будет валидным для браузера.

Теги:
Всего голосов 3: ↑3 и ↓0+4
Комментарии0

Такое ощущение что SCAP/OpenSCAP и security compliance в целом застряли в начале 2000-ых. Везде xml и xsd, какие-то обскурные утилиты для которых нет руководства. Вся эта отрасль очень нуждается в автоматизации и хорошей документации.

Не нашел для ubuntu репозитория с профилями OVAL, поэтому пришлось собрать из исходников.

OVAL
OVAL

Понадобится несколько зависимостей:

sudo apt-get install git cmake make python3 python3-lxml python3-jinja2 python3-yaml

Клонируем репозиторий:

git clone https://github.com/ComplianceAsCode/content.git
cd content/

Копируем полученный профиль:

rm CMakeCache.txt
cd build
cmake ../

Копируем полученный профиль:

make -j4 generate-ssg-ubuntu2204-oval.xml

Копируем полученный профиль:

cp ssg-ubuntu2204-oval.xml /usr/share/xml/scap/ssg/content/

Запускаем сканирование:

oscap info /usr/share/xml/scap/ssg/content/ssg-ubuntu2204-oval.xml
Document type: OVAL Definitions
OVAL version: 5.11
Generated: 2025-02-13T21:56:16
Imported: 2025-02-14T00:57:48

Запускаем сканирование:

oscap oval eval --results oval-results.xml /usr/share/xml/scap/ssg/content/ssg-ubuntu2204-oval.xml

Генерируем html репорт:

oscap oval generate report oval-results.xml > oval-report.html
Теги:
Рейтинг0
Комментарии1

Не пишите ничего на Groovy.

Есть такой шутливый пост про разработку, называется no-code framework. «Лучший способ писать безопасные и надежные приложения. Ничего не пишите, и никуда не деплойте».

Нечто подобное, я мог бы написать про Groovy. Не пишите ничего на Groovy. Особенно пайплайны для Jenkins. Когда-то давно, когда в Jenkins еще не было декларативных пайплайнов, сторонние разработчики сделали плагин – Job DSL, благодаря, которому стало возможным писать джобы на Groovy. Хотя вернее будет назвать этот усечнный вариант языка – Jenkins Groovy.

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

Goldberg
Goldberg

Заканчивается это осознанием, того, что так больше жить нельзя, и нужно мигрировать на какой-то другой ci фреймворк. Jenkins здесь не причем – это отличный инструмент, который позволяет гибко настраивать CI под любые задачи, и масштабируется, в умелых руках до тысяч пайплайнов и дестков тысяч билдов.

Самое главное – не пишите ничего на Groovy. Нет, это отличный, хоть и потерявший в последнее время изрядно популярность язык, но описывать на нем сложную логику в CI это все равное, что выстрелить себе в ногу. Можно заставить это работать, но в конечном итоге это замедлит ритм разработки и усложнит всем жизнь.

Разработчики на Groovy встречаются крайне редко, а DevOps инженеры и тестировщики не смогут написать хороший, понятный, тестируемый код. Даже если они научатся, потом эти навыки негде будет применить, потому что за пределами Gradle, Jenkins и Jira, он, сейчас нигде не используется.

Если вам нужно шарить код в CI, то можно писать утилиты или автоматизацию на Python, Go, Bash и упаковывать это все в контейнеры.

Если вы хотите использовать Groovy для того, чтобы написать на нем свой кастомный workflow engine для Jenkins, то остановитесь и подумайте хорошо. Скорей всего это ошибка – все тоже самое можно реализовать с помощь скрипта на Bash или Python, который вызывается внутри декларативного pipe.

Если российские компании, которые написали миллионы строчек кода на Jenkins Groovy и на этом они сейчас теряют сотни тысяч человеко часов.

Решение этой проблемы не переезд на GitLab пайплайны – просто не пишите на Groovy. Если у вас меньше 200 разработчиков и не используется монорепозиторий, вам не нужен Bazel, просто не пишите Groovy.

Все что я написал про Groovy и Jenkins, можно применить к TeamCity и Kotlin DSL.

Теги:
Всего голосов 2: ↑1 и ↓10
Комментарии4

Ближайшие события

Цепочка поставок (supply chain) это слабое звено в защитном периметре любой современной компании. Согласно исследованию специалистов из компании Jfrog 53% ИТ организаций используют для разработки 4-9 языков программирования. 31% компаний используют больше 10 языков программирования.

https://jfrog.com/blog/state-of-software-supply-chain-security-2024

AI и современные инструменты разработки лишь расширяют потенциальный вектор атаки.
Появляется все больше инструментов для разработки, которые интегрируются с облачными сервисами и отравляют телеметрию без разрешения пользователя.
Чего стоит, хотя бы недавняя история с инженером из компании Snyk, который попался на попытке подмены npm пакетов. Целью данной атаки стал Cursor AI - набирающий популярность AI редактор кода с интеграцией в Claude и ChatGPT.

https://sourcecodered.com/snyk-malicious-npm-package

Если верить CEO Nvidia, Anthropic, Microsoft, то следующий виток развития придется на AI Агентов. Это независимые друг от друга контейнеры с LLM, которые могут использовать различные инструменты (и иметь доступ к файловой системе) для выполнения каких-то инструкций пользователя.

С точки зрения кибербезопасности, AI Агенты могут стать сервисом RCE (Remote Code Execution) - дырой в безопасности, которую в любой момент могут использовать злоумышленники.

Хотя если не использовать современные инструменты и свежие версии библиотек, то это может негативно сказаться на эффективности разработки.

В такой ситуации можно обратить внимание на надежные инструменты для контейнерной изоляции, такие как например Nsjail. Тула которая ближе к классическому chroot и jails из мира FreeBSD, чем к контейнерам Docker. Для решения определенных задач, это инструмент подходит идеально.

С помощью Nsjail + seccomp можно изолировать любой исполняемый код, установку зависимостей, доступ к сетевым ресурсам. Ко всему прочему Nsjail еще и в десятки раз быстрее, чем Docker, что очень важно, если использовать его, в качестве песочницы для сборки кода внутри CI конвейера.

Именно так его например использует Figma:
https://www.figma.com/blog/server-side-sandboxing-containers-and-seccomp

Screenshot-2025-01-14-at-15.10.2827623c9a4b241bc6.md.png
Screenshot-2025-01-14-at-15.10.2827623c9a4b241bc6.md.png

Пример конфигурационного файла nsjail для LLM:
https://gitlab.com/openjoint/llm/-/raw/main/nsjail.cfg?ref_type=heads

Пример использования в пайплайне Jenkins:
https://gitlab.com/openjoint/llm/-/raw/main/Jenkinsfile?ref_type=heads

Теги:
Рейтинг0
Комментарии0

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

https://github.com/Mozilla-Ocho/llamafile

Justine Tunney разработчик либы cosmopolitan задался целью сделать LLM портативными и удобными для использования в shell скриптах. Это все тот же llamacpp но LLM (саму модель и весы aka GGUF файл) можно запаковать в один исполняемый файл, который будет работать везде – на маке, винде, линуксе, без внешних зависимостей и доступа в сеть.
Выкачиваем Llama-3.1-8B из huggingface:

curl -LO wget https://huggingface.co/Mozilla/Meta-Llama-3.1-8B-Instruct-llamafile/resolve/main/Meta-Llama-3.1-8B-Instruct.Q6_K.llamafile

Делаем его исполняемым chmod +x Meta-Llama-3.1-8B-Instruct.Q6_K.llamafile и
заворачиваем в bash скрипт с структурированным промптом:

IMG_20250114_01542885aea09d36615a75.md.webp
IMG_20250114_01542885aea09d36615a75.md.webp

Скрипт перекладываем в /usr/local/bin/ а моделька может хранится на NFS шаре.

Таким образом можно получить прокачанную замену для Stackoverflow в корпоративной сети. Можно спрашивать про ошибки в логах, попросить написать руководство по установки x или y.

Например:

./llama "[ERROR] Failed to execute goal org.apache.maven.plugins:maven-install-plugin:3.1.1:install (default-install) on project camel: Failed to install metadata org.apache.camel:camel/maven-metadata.xml: Could not parse metadata /home/jenkins/.m2/repository/org/apache/camel/camel/maven-metadata-local.xml: in epilog non whitespace content is not allowed but got e (position: END_TAG seen ...

А может LLM заменить скажем системного администратора уровня middle или начинающего тестировщика? По моему глубокому убеждению пока нет.

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

Теги:
Всего голосов 5: ↑5 и ↓0+5
Комментарии0

Праздничный unixporn: python vim ide в контейнере

В разработке на python, особенно в DS/ML проектах, мы все сталкиваемся со сложной схемой зависимостей на специфичной аппаратной платформе. Зачастую, вести разработку удобно в том окружении, в котором в последствии запускается приложение.

Если вы вдруг vim user, то можно просто доставить редактор в контейнер с окружением и разрабатывать прямо там. Такая схема достаточно лекговесна, позволяет относительно просто держать актуальными завистимости при разработке, переиспользовать существующие сборочные конвейеры с небольшим наборов слоёв для самого редактора. Так же это может быть удобно, если вам нужно работать где то на удалённом кластере по ssh.

У меня был некоторый шаблон Dockerfile с добавкой vim с плагинами который кочует из проекта в проект и я решил поделиться с вами этой наработкой.

С Новым годом!

Теги:
Всего голосов 2: ↑2 и ↓0+2
Комментарии0

Обновление 2024.11.05 сборки DogLinux для тестирования, обслуживания ПК, ноутбуков

Основной состав ПО: FurMark2, GPUTest, Unigine Heaven, CPU-X, GSmartControl, GParted, Partimage, Partclone, TestDisk, ddrescue, WHDD, DMDE.

Linux kernel 5.10-amd64 / 6.10-amd64 / 6.1-i686
nvidia-driver 550.120 / 390.157 / 340.108
mesa 24.2.2-amd64 / 22.3.6-i686

В initrd устранены ошибки и добавлены новые возможности (эти изменения включены в сборочные скрипты основного проекта DogLinux):

  • При запуске можно указать modprobe.blacklist=ahci,nvme и запретить загрузку модулей ядра что иногда требуется при работе с неисправными HDD и SSD. После запуска можно подгрузить необходимые модули ядра вручную.

  • При сетевой PXE загрузке можно переопределить nfs путь по умолчанию /srv/pxe/ с помощью параметра nfspath=

  • Исправлен порядок загрузки модулей ядра broadcom и tg3. Ранее адаптер Broadcom Netlink BCM57780 Ethernet был не работоспособен при загрузке.

  • Уменьшен размер путем исключения из состава initrd не используемых для начальной загрузки модулей.

  • Обеспечена выгрузка не задействованных модулей ATA контроллеров ata_* sata_* pata_*

  • Обновлены пакеты прошивок firmware-nonfree 20240909

  • Добавлены firmware-cirrus (git20241031) для звукового кодека и усилителя Cirrus Logic CS42L43 и CS35L56 которые используются в некоторых ноутбуках Asus, Dell, HP, Lenovo производства 2022г.

  • Обновлены Chromium 130, FurMark 2.4.1.0

  • Исправлен скрипт ddrescue-loop (не работал с SATA устройствами при отсутствии /dev/disk/by-path/)

Теги:
Всего голосов 2: ↑2 и ↓0+3
Комментарии0

Привет, Хабр!

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

Сам я перешёл на Linux ещё во времена, когда актуальной была Windows XP, и с тех пор не касался в домашнем использовании продукции Microsoft. И вот у меня в руках оказался ноутбук, на который необходимо заново поставить и настроить Windows 10.

Первая сложность, с которой я столкнулся,- это собственно создание загрузочной флешки. Когда мы создаём загрузочную флешку для установки дистрибутива Linux, то просто записываем дисковый образ, и готово. С Windows так не получится: всё начинается с того, что потребуется использовать специальное ПО, к примеру, WoeUSB.

После того как успешно установили ОС и компьютер включился мы попадаем в мир чистого GUI. Никаких менеджеров пакетов, только файлы с расширением «exe» и магазин приложений. Нельзя просто добавить репозиторий с нужной программой и потом установить её одной командой.

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

Теги:
Всего голосов 12: ↑9 и ↓3+11
Комментарии16

Ускорение Youtube в Линукс. Скрипт для автоматизированной установки полезного ПО из исходников.

Youtube в России, как известно официально не внесен в реестр запрещенных сайтов, но по разным официальным версиям почему-то медленно работает), а Роскомнадзор выражает свое сочувствие российским гражданам уставшим от медленного и некачественного видео на зарубежных сервисах. Оживились шарлатаны, которые под видом "ускорителей Ютуба" предлагают разные зловреды в бинарниках.

По отзывам для реального решения проблемы медленного Ютуба в РФ на Линуксах весьма неплохо себя показал специально настроенный под эту задачу "zapret", но по тем же отзывам у рядового пользователя тонкости настроек этого ПО вызывают трудности.

С учетом изложенного, внося свой посильный вклад, написал, для ускорения Ютуба, скрипты на bash: скрип-установщик, который автоматически качает исходники с GitHub, ставит зависимости, компилирует, устанавливает и настраивает zapret на настольном ПК с Ubuntu-based и Red-Hat-based Линуксами, скрипт обновления zapret(не изменящий его настройки), и скрипт деинсталятор.

Обновление от 22.09.2024 и zapret-a и его настроек (запускать скрип-установщик) Скрипты для Ubuntu-based ОС, скрипты для Red-Hat-based ОС. Проверенно на Linux Mint 20.1 "Ulyssa" и "Fedora 40" соответственно.

Ставится все в пару кликов. Берите пользуйтесь, адаптируйте к другим Линуксам! Конструктивная критика приветствуется.

Теги:
Всего голосов 11: ↑9 и ↓2+8
Комментарии31

Компания ООО «РусБИТех‑Астра» представила дистрибутив специального назначения Astra Linux Special Edition 1.8, который может применяться для защиты конфиденциальной информации и государственной тайны до уровня «особой важности».

Дистрибутив Astra Linux 1.8 основан на пакетной базе Debian GNU/Linux и содержит дополнительные механизмы обеспечения безопасности, такие как собственная система мандатного управления доступом, аудита, контроля целостности и подлинности файлов (PARSEC), гарантированное удаление файлов, сборка ядра с патчами для повышения безопасности. Пользовательское окружение построено на основе проприетарной среды рабочего стола Fly с компонентами, использующими библиотеку Qt.

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

В ОС Astra Linux версии 1.8 представлен новый визуальный стиль. Оригинальные, реализованные специально для Astra Linux, алгоритмы работы и исходные коды отнесены к категории коммерческой тайны. Пользователю предоставляется возможность воспроизведения только одного экземпляра продукта на одном компьютере или виртуальной машине, а также даётся право на изготовление только одной резервной копии носителя с продуктом. Готовые установочные сборки пока публично не предоcтавляются, но доступны образы контейнеров и виртуальных машин.

Теги:
Всего голосов 4: ↑4 и ↓0+6
Комментарии3