LINUX.ORG.RU

Сообщения Xintrea

 

Как переформатировать «книжные» абзацы с переносами в длинные строки?

 ,

Имеется текст, в котором абзацы разбиты на строки, причем в словах имеются переносы. Выглядит текст вот так:

Это такой текст в котором есть переносы
строк. Причем строки переносятся не толь-
ко на границах слов, но и с помощью сим-
волов переноса (символ "тире").

Каждый абзац отделяется от другого пустой
строкой.

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

Каждый абзац отделяется от другого пустой строкой.

Как это можно быстро сделать? Есть ли готовые утилиты? Может быть, есть какой-то сервис онлайн?

Xintrea
()

Как уменьшить количество цветов при SSH X11 Forwarding?

 , , ,

Вытягиваю себе на рабочий стол кучу окошек приложений с удаленного сервера по ssh с опцией -X. Все красиво, все работает.

Однако, чтобы ускорить отрисовку и уменьшить количество данных по сети, хочу чтобы картинка GUI мне приходила в 256 цветах вместо фуллколора. Начал искать, нигде такой настройки найти не могу.

Можно ли как-нибудь снизить цветность в SSH X11 Forwarding? Или это принципиально не настраивается?

Прим.: Воспользоваться VNC не могу потому что Astra, а в ней Fly, а Fly это не то что KDE/Gnome/LxDE/etc, в нем своя подсистема безопасности, и с ней VNC не работает.

Xintrea
()

PulseAudio - постоянно слетает громкость в FireFox

 , ,

Имеется Debian Linux 11 Stable с Pulseaudio 14.2 из стандартного репозитария.

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

Выглядит это так:

YouTube Проблема с громкостью звука на Debian Linux 11 Stable

Что и где надо настраивать, чтобы и канал не слетал и уровень громкости запоминался?

Xintrea
()

Почему killall не может найти процесс, а kill может?

 , , , процесс,

Сейчас столкнулся с такой проблемой. Имеется следующий запущенный процесс:

$ ps aux | grep oks
user 2099 14.7 26.1 1908224 532140 ? Sl   08:52   4:48 /usr/bin/valgrind.bin --suppressions=/tmp/valgrind.supp --vgdb=yes --vgdb-error=1 ./oks

Пытаюсь удалить его по имени:
$ killall -9 valgrind
valgrind: процесс не найден

$ killall -9 valgrind.bin
valgrind.bin: процесс не найден

$ killall -9 /usr/bin/valgrind.bin
/usr/bin/valgrind.bin: процесс не найден

$ killall -9 "/usr/bin/valgrind.bin"
/usr/bin/valgrind.bin: процесс не найден

Очень странно. Может быть процесс какой-то особенный? А если удалить по PID? Пробую:
$ kill -9 2099

Процесс нормально удалился, причем по тому же сигналу SIGKILL.

Но мне то нужно удалять по имени. Почему процесс не находится по имени?

Xintrea
()

Что делает опция --quiet / --silent в grep?

 ,

В grep есть следующая опция:

-q, --quiet, --silent
Quiet; do not write anything to standard output.
Exit immediately with zero status if any
match is found, even if an error was detected.

Перевод:

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


Что имеется в виду под термином «ошибка»?

Xintrea
()

Невозможно получить результат выполнения Bash-команды - почему?

 ,

Имеется скрипт:

#!/bin/bash
set -ex 

echo "Before"

isCdRomMount=`mount | grep '^\/dev\/sr.*'`

echo "After"


Этот скрипт не доходит до печати строки After:
+ echo Before
Before
++ mount
++ grep '^\/dev\/sr.*'
+ isCdRomMount=

Скрипт возвращает значение 1.

Вопрос: что не так то? Как исправить?

Xintrea
()

xev не видит виртуальных клавиш громкости на крутилке DasKeyboard

 , , , ,

Пытался приспособить крутилку DasKeyboard для скроллинга в LXDE.

Запустил lxhotkey, добавил вызов скриптов на кнопки XF86AudioRaiseVolume и XF86AudioLowerVolume. Эти кнопки автоматически определяются при добавлении строчки во вкладке «Программы». Если крутануть крутилку вверх, в поле Привязка 1 появится название клавиши XF86AudioRaiseVolume, если вниз - XF86AudioLowerVolume.

После внесения и сохранения изменений даю команду

openbox --reconfigure

Вроде все корректно, но проблема в том, что скрипты, привязанные в lxhotkey к этим клавишам, не вызываются. Для проверки я прописал эти же скрипты другим кнопкам, например Print, и они корректно вызываются. А вот именно на кнопках XF86AudioRaiseVolume и XF86AudioLowerVolume вызова скриптов не происходит.

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

https://bbs.archlinux.org/viewtopic.php?id=111469

Но он обнаружил, что showkey показывает одни коды клавиш, а xev - другие.

В моем же случае showkey показывает коды 114/115, а xev не показывает событий нажатия клавиш. Вместо этого показывает следующее, причем без разницы крутится ли крутилка вверх или вниз:

FocusOut event, serial 49, synthetic NO, window 0x3a00001,
    mode NotifyGrab, detail NotifyAncestor

FocusIn event, serial 49, synthetic NO, window 0x3a00001,
    mode NotifyUngrab, detail NotifyAncestor

KeymapNotify event, serial 49, synthetic NO, window 0x0,
    keys:  2   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   
           0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0

Не знаю, в этом ли проблема, что lxhotkey не обрабатывает события крутилки, или в чем-то другом.

Вопрос: где что надо докрутить, чтобы настройки lxhotkey корректно обрабатывали вращение крутилки громкости?

Xintrea
()

М ОС - форк Альт Линукс, разработанный в ДИТ Москвы

 , ,

Группа Linux в России

По информации портала Cnews, в департаменте информационных технологий Москвы был разработан дистрибутив М ОС, созданный на основе пакетной базы Альт Линукс. Сама компания Базальт (владелец Альт Линукс) в разработке дистрибутива М ОС не участвует.

В 2022 году ДИТ решил разработать собственный дистрибутив Линукс для поставки его в учебные заведения города Москвы. Проект достиг возможности распространения в начале 2023 года. Так как ДИТ является владельцем М ОС, то имеется возможность установки данной ОС на ноутбуки учителей, рабочие станции компьютерных классов и интерактивные доски минуя процедуру закупки. Это, в свою очередь, снимает необходимость включать данное ПО в реестр Минцифры, хотя попадание в него данной ОС лишь вопрос времени.

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

Для создания дистрибутива М ОС ДИТ нанял 25 программистов среди которых школьный учитель информатики, который ранее уже занимался созданием своего дистрибутива. На разработку первой стабильной версии, пригодной для распространения, ушло около полугода. Для знакомства пользователей с М ОС был создан соответствующий раздел на сайте school.mos.ru, а так же создана программа курсов повышения квалификации Основы работы в операционной системе М ОС. В качестве среды рабочего стола в дистрибутиве используется KDE.

>>> Подробности (cnews.ru)

Xintrea
()

Репозитарий (deb): куда засунуть версию ОС Linux?

 , , , ,

Имеется два самодельных репозитария: один для Astra 1.3, второй для Astra 1.6

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

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

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

Мне было бы проще всего добавить информацию в версию пакета (поле Version). Сделать, например, в ней префикс, типа:

a13:2023.02.09-5
a16:2023.02.09-5

Но сдается мне, что если в Astra 1.3 прописать репозитарий от Astra 1.6, то, например, при обновлении версий пакет a13:2023.02.09-5 будет молча заменен на a16:2023.02.09-8 и ничего пакетная система не заметит и не предупредит. Да, и еще придется перелопатить все зависимости во всех пакетах, чтобы они тоже этот префикс содержали.

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

Вопрос: куда впихнуть версию дистрибутива, для которого сделан пакет? Чтобы были решены проблемы, описанные выше? Или таковая задача полностью в принципе не решается?

Xintrea
()

Включить WQHD (2560x1440) на встройке Intel HD Graphics 4000 - возможно ли?

 , wqhd,

Прикупил монитор с разрешением 2560x1440 и 75Гц.

Мне его надо подключить к ноутбуку со встройкой Intel HD Graphics 4000. На ноуте разъем HDMI, провод соответствующий. Утилита xrandr нужного разрешения и частотки не показывает.

Судя по выводу xrandr, монитор подключен как HDMI1:

HDMI1 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 600mm x 340mm

Сгенерировал нужный модлайн:
cvt 2560 1440 75

# 2560x1440 74.94 Hz (CVT 3.69M9) hsync: 112.86 kHz; pclk: 397.25 MHz
Modeline "2560x1440_75.00"  397.25  2560 2760 3040 3520  1440 1443 1448 1506 -hsync +vsync

Создал режим:
xrandr --newmode "2560x1440_75.00"  397.25  2560 2760 3040 3520  1440 1443 1448 1506 -hsync +vsync

Зарегистрировал:
xrandr --addmode HDMI1 2560x1440_75.00

В списке xrandr он появился. Переключаюсь:
xrandr --output HDMI1 --mode 2560x1440_75.00

Монитор на пару секунд гаснет, потом возвращается в прежнее разрешение и в консоль выводится ошибка:
xrandr: Configure crtc 1 failed

Дальше продвинуться не смог.

Что не так с конфигурацией? Карточка не могет такое разрешение? Разъем не тот? Провод не тот? Или все-таки можно настроить?

Xintrea
()

Как в ssh+X11 перетянуть к себе окно программы?

 ,

Если зайти на компьютер удаленно с поддержкой сессии X11 (опция -X):

ssh -l user -X remote.server.lo

... то можно запустить GUI-программу на сервере, но с отображением ее окна на своем десктопе:
qpdfview &

А можно запустить GUI-программу на сервере так, чтобы ее окно оставалось на удаленном сервере:
DISPLAY=:0 qpdfview &

Вопрос 1: а как «перетянуть» к себе на десктоп окно, которое открыто на удаленном сервере?

Вопрос 2: а как «перекинуть» окно, которое открыто на своем десктопе, обратно на сервер?

Note: использовать VNC не предлагать, потому что fly-dm, а в нем VNC невозможен.

Xintrea
()

Как узнать пакет при ошибке «недоступен, но упомянут в списке зависимостей»?

 , ,

Есть, к примеру сообщение при инсталляции через apt:

apt-get install qt5-default
...
Пакет qt5-default недоступен, но упомянут в списке зависимостей другого пакета.

Вопрос: как заполучить имена пакетов, в зависимостях которых которых упомянут qt5-default?

Xintrea
()

На что сослаться при возврате монитора?

 , , , пиксель

Монитор относится к технически сложным устройствам. Возврат таких устройств возможен только при наличии технической неисправности. Наличие битых пикселей в количестве до 2-5 штук (в зависимости от класса) не является неисправностью.

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

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

Xintrea
()

Что означает слово Policy в утилите Apt?

 , , ,

По неизвестной причине, ни в команде man apt, ни в команде apt help нет описания опции policy (зато есть коровья СУПЕРСИЛА, ведь она куда важнее документации утилиты, которая управляет всеми файлами программ в системе).

И вот я вижу следующую команду:

apt policy linux-headers-generic

и даже не могу понять что она делает то. Что она означает? «Политика» - на что? «Стратегия» - чего? «Курс» - куда? «Полис» - зачем?

Вроде как эта команда то ли управляет, то ли только показывает какие-то параметры пакетов. Но подробностей найти не смог. Для просмотра информации о пакетах официально существуют опции list и show.

Что подразумевается под этой политикой/стратегией и для чего она нужна?

Xintrea
()

Зачем нужны круглые скобки ( EXPRESSION ) в утилите test?

 , , ,

В документации на утилиту test написано:

SYNOPSIS
       test EXPRESSION
       test
       [ EXPRESSION ]
       [ ]
       [ OPTION

DESCRIPTION
       Exit with the status determined by EXPRESSION.

       --help display this help and exit

       --version
              output version information and exit

       An  omitted  EXPRESSION  defaults  to false.  Otherwise, EXPRESSION is true or false 
       and sets exit status.  It is one of:

       ( EXPRESSION )
              EXPRESSION is true

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

А если будут составные условия (-o, -a) то тогда нужно писать каждое выражение в круглых скобках или нет?

Xintrea
()

PulseAudio все еще не готов для десктопа

 , ,

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

Написал на официальный форум, и мне ответили:

https://warmplace.ru/forum/viewtopic.php?f=12&t=6298

Как бы я не ожидал другого услышать, но блин так обидно, что в Линупсе до сих пор нет просто работающего звукового стека.

Xintrea
()

Как создать многопоточную нагрузку на проц стандартными средствами Linux?

 , , ,

Мне нужно создать такую нагрузку на процессор, чтобы один процесс создал кучу потоков на все ядра микропроцессора, и htop показал число ~800% для 8-ми поточного процессора.

Пока что придумал команду:

while true; do dd if=/dev/urandom count=10M bs=1 | xz -9 -T8 > /dev/null ; done
Но эта команда не создает нагрузки более ~118%.

Что еще можно придумать?

Xintrea
()

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

 ,

Система: Debian GNU/Linux 11 Stable, LXDE.

Выгоняю пользователя из графической сессии командой:

pkill -u username
Вроде все хорошо: сессия завершается, появляется окно ввода логина-пароля.

Поля ввода в этом окне рабочие. Но после ввода логина-пароля, ничего не происходит, новая сессия не открывается. Никаким пользователем зайти невозможно, можно только переключиться в консоль Alt+F1, зайти рутом и перезагрузить компьютер. После перезагрузки вход пользователей снова работает.

Почему так происходит? Как исправить?

Xintrea
()

Как в Ansible отфильтровать список в with_items ?

 ,

У меня имеется список репозитариев, который сделан примерно так:

gitRepos
- [ true,  "doxygen_documentation.git", "master", "doxygen_doc"  ]
- [ false, "idk.git",                   "qt5",    "idk"          ]
- [ true,  "binke.git",                 "master", "binke_plugin" ]
...

Чтобы делать действия с репозитариями, используется with_items по данному списку. Раньше в этом списке не было первого столбца true/false, и действия выполнялись для всех элементов списка gitRepos:
- name: Создание/обновление репозитариев
  git: repo="{{ item[nRepoNetworkPath] }}" dest="{{ gitReposPath }}/{{ item[nDirectoryName] }}"
  with_items:
  - "{{ gitRepos }}"

Теперь появился первый столбец, и в with_items надо прописать фильтр, который уберет строки, в которых первый элемент равен false. Условие when использовать нежелательно, так как в нем используются условия по другим переменным, и будет очень заморочено.

Но я читаю документацию:

https://docs.ansible.com/ansible/latest/playbook_guide/playbooks_filters.html

И не вижу там возможности фильтровать/преобразовывать список так, чтобы в нем исключить элементы по условию. Как это можно сделать?

Xintrea
()

Как в GCC выяснить, какие языки он поддерживает?

 

Не могу найти опцию, которая бы показала перечень имен «модулей», которые отвечают за разные языки.

Ну, то есть, надо узнать перечень языков в том виде, которые обозначаются термином program в опции -print-prog-name.

Опытным путем найдены обозначения:

  • cc1plus - язык Си++
  • cpp - язык Си (видимо, как-то связано с аббревиатурой C Pre Processor)

А как узнать у gcc, какие еще языки поддерживает текущая инсталляция gcc?

Xintrea
()

RSS подписка на новые темы