Ответы пользователя по тегу Linux
  • Как удалить программу через Ubuntu Software?

    @rPman
    Универсальный способ удаления программ в linux, установленных с помощью пакетного менеджера
    1. определить как называется пакет (его настоящее название а не то что подменяет отвратительный Центр Приложений)
    можно посмотреть в самом центре приложений снизу в описании будет написано что то типа
    GHex is a hex editor for the GNOME desktop.

    можно забить в поиск synaptic или консольной apt свое название gnome hex editor и в полученном списке ищем что то похожее
    p.s.
    это одна из причин за что Центр приложений ненавидят
    помимо страшных тормозов на топовых машинах
    у них какой то свой список приложений и рядовому пользователю не совсем понятно что есть что, даже описания не совпадают иногда с тем что в пакете, вто что покажет apt show ghex
    Description: GNOME Hex editor for files
    The GHex program can view and edit files in two ways, hex or ascii. Good
    for editing saved game files.
    а вот что центр приложений
    GHex is a hex editor for the GNOME desktop.

    GHex can load raw data from binary files and display them for editing in the traditional hex editor view. The display is split in two columns, with hexadecimal values in one column and the ASCII representation in the other. A useful tool for working with raw data.
    кстати они еще умудрились мультиязыковую поддержку убить, в пакетах есть русскоязычное название а в центре приложений только английское


    либо смотрим свойства ярлыка запуска, там будет команда, что то типа
    ghex %F
    это имя приложения не обязательно будет совпадать с именем пакета, поэтому для гарантии можно поискать среди установленных
    определяем путь к запускаемому приложению если в ярлыке не указан
    # whereis ghex
    ghex: /usr/bin/ghex /usr/share/man/man1/ghex.1.gz
    затем определяем имя пакета по имени файла (не обязательно запускаемого)
    # dpkg -S /usr/bin/ghex
    ghex: /usr/bin/ghex

    тут слева имя пакета, справа имя файла (может быть что один и тот же файл есть в разных пакетах
    p.s. если поиск пакета по файлу не сработал, значит данный пакет не установлен, если не говорить в разрезе задачи удаления а просто определить в каком пакете нужный файл, нужно установить утилиту apt-file, она загрузит базу всех пакетов и позволит искать по ним (так же на сколько я знаю при установке bashcompletion при запуске неизвестного приложения будет выдаваться список пакетов где есть похожие по имени)

    2. узнав имя пакета его можно удалить либо synaptic либо в консоли
    apt remove ghex
    или
    apt purge ghex

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

    если что то идет не так, то нужно смотреть сообщения об ошибках
    p.p.s. есть мощный консольный GUI для пакетного менеджера - aptitude, умеет много проблем разруливать
    Ответ написан
    Комментировать
  • Не открываются консольные программы, как решить?

    @rPman
    Однозначно, что то ты сделал лишнее, инструкции на видео вполне исчерпывающие.

    Тебе необходимо пройти установку по шагам (перед этим удали wsl и установку что уже сделал), и на каждом шаге сравнивать сообщения у тебя на компьютере и на видео

    p.s. kali linux внутри windows это хардкор, зачем начинать обучение с вырезанием 'глад через задницу'?
    Ответ написан
    Комментировать
  • Как в Linux создать 1 том из двух дисков?

    @rPman
    backup format restore, используя livecd или консоль восстановления (лучше удобный livecd)

    у тебя на выбор lvm, mdadm (рейд 0 - stripe), btrfs/zfs
    делать резервную копию временно на новый диск, затем выбираешь любой инструмент (в зависимости от выбора будут требования по разбивке дисков), форматируешь раздел, восстанавливаешь и расширяешь диск.

    самое простое использовать btrfs, это файловая система поддерживает онлайн из коробки и добавление/удаление дисков и расширение разделов, в т.ч. raid всех уровней, сжатие на лету, дедупликация (инструменты кстати пока еще не из коробки), бесплатные снапшоты и прочее прочее, поддерживается grub (т.е. не нужно делать /boot раздел) и т.п. (к сожалению efi раздел для secureboot или biosboot для legacy на gpt все еще нужны)

    т.е. длелаешь копию на втором диске, затем форматируешь раздел на старом как btrfs, копируешь обратно, добавляешь к первому диску второй раздел команда
    btrfs device add /dev/sda1 /dev/sdb1
    затем обновляешь grub
    grub-install /dev/sda --root-directory=/path/to/mounted/root

    p.s. кстати в linux файловые системы можно разворачивать прямо на диске, без создания разделов (но тогда нужен /boot где то разворачивать)
    Ответ написан
    Комментировать
  • Как перенести VDS сервер Ubuntu на другой хостинг?

    @rPman
    Сначала делаем backup.
    При наличии root доступа штатно linux переносится даже простым tar!

    Хостер может добавить своих утилит, свои скрипты и особенности настройки сети, свой способ загрузки (например нет /boot а загрузка ядра и initramfs идет 'снаружи'), это все в принципе восстанавливается, скрипты хостера чистятся и т.п... в основном только тут могут быть проблемы но все просто решается.

    Затем восстановление - и тут могут быть проблемы.
    Универсально все будет работать только с не openvz/lxc/docker системами виртуализации, так как такие могут тупо не позволить работать с версиями системных библиотек (очень редко), отличных от хоста... а у тебя древняя ubuntu (я запускал в chroot просто утилиты, развернув образ с помощью debootstrap еще до появления docker, так что технически шансы проблем - минимальны). Дело в том что хостер может запретить, а точнее не дать инструментов для подмены системных файлов, а из самой работающей системы заменить ее саму нельзя (очень сложно).

    p.s. я помню, поднимал систему, загрузив ее внутри user mode linux на машине даже без админовских прав, каскадно на системе с openvz (по умолчанию может не хватать некоторых модулей ядра, особенно для настроек сети, но там все решаемо), народ забыл про этот способ контейниризации без наличия аппаратной поддержки виртуализации, но она есть, старейшая, мощнейшая и удобнейшая из всех (по поводу производительности спорно - числодробилки быстро, но системные вызовы медленее)
    --------------

    Если виртуальная машина kvm/vbox/vmware/... то проблем не будет от слова совсем. Чтобы развернуть бакап, понадобится на новом месте загрузиться в консоль восстановления (лучше с iso образа), отформатировать файловую систему и тупо распаковать архив с бакапом (обычно /dev в архив не складывают, но если его не будет на новой системе то я помню старые версии ubuntu ругались на отсутствие null, это все решается ручным копированием тут же), затем переустановить загрузчик
    grub-install /dev/sdX --root-directory=/path/to/mounted/root/

    Ну и само собой архитектура исходной машины и новой должны совпадать, т.е. нельзя смешивать ни тип процессора (x86/arm ни битность x86/x64), правда особых проблем с запуском x86 на x64 быть не должно.
    Ответ написан
    Комментировать
  • Как создать виртуальный дисплей?

    @rPman
    питон тут однозначно не подойдет

    для windows:
    Без использования драйверов фейкового монитора, но при наличии физических выходов на видеокарте, можно к ним подключить заглушку (она дешевая, разная для каждого типа разъемов, гуглить эмулятор заглушка терминатор монитора dsub/hdmi/dp), благодаря которой система будет считать что монитор подключен, и уже средствами ОС работать с этим монитором (само собой чтобы самому видеть содержимое придется поставить какой-нибудь vnc с поддержкой мультимониторной конфигурации)

    Есть бесплатный враппер (это не кряк а утилита использующая штатный win api), которая превращает рабочие ревизии windows в сервер терминалов (позволяет подключиться mstsc одновременно несколько сессий а не только одну), фокус к сожалению будет убегать но можно сделать каскадные подключения

    Есть ibik aster, платная утилита, позволяющая из одного компьютера с несколькими мониторами, клавиатурами, мышками полноценные рабочие места на не серверных ревизиях windows, т.е. в совокупности с заглушкой из машины можно сделать несколько рабочих мест, на каждом запускать приложение и каждое рабочее место будет иметь свой фокус, т.е. приложения будут одновременно активны.

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

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

    так же можно установить несколько xserver, работающих в оперативной памяти - vfb, это будут полноценные рабочие места, работающие исключительно в оперативной памяти (подключение например по vnc)

    и есть xephyr, версия xserver, работающая внутри окна (т.е. буквально выбираешь любое окно, хоть фейковое и говоришь - заменить изображение окна полноценным xserver, мышка и клавиатура будут общими но можно настроить (так делают multiseat на одной видеокарте с несколькими видеовыходами)
    Ответ написан
    Комментировать
  • Почему медленно скачиваются файлы в Manjaro Cinnamon?

    @rPman
    Если замерить скорость на speedtest, то выдаёт 800-900 Mbps
    повыбирай сервера в speedtest, находящиеся в разных странах, начнешь понимать что скорость в интернете штука условная и зависит от кучи вещей

    Кстати speedtest показывает скорость в мегабитах, а при копировании файла в проводнике - в мегабайтах, эти единицы измерения отличаются в 8 раз (в байте - 8 бит)

    Тут важны и расстояние, и провайдеры, включая того у кого размещен файл, и настройки сервера и его текущая нагрузка.

    p.s. в современных реалиях 2мбайта/с это даже хорошая скорость
    Ответ написан
    Комментировать
  • Как на Linux читать и изменять память процесса?

    @rPman
    погуглю за тебя
    помимо самого доступа нужно еще и чужие структуры понимать, а это значит использовать как минимум те же версии подключаемых библиотек (в т.ч. статически, что не так просто определить)
    Ответ написан
    Комментировать
  • Как оптимизировать параметры монтирования?

    @rPman
    в опции монтирования добавить noatime,nodiratime - я не видел ни одного применения этой 'время последнего доступа' (при чтении идут записи на диск)... это и для ssd рекомендую

    если данные на диске не содержат важных вещей, т.е. не страшно потерять данные при внезапном выключении компьютера, то data=writeback и barriers=0 (на сколько я помню нужно будет еще в самой файловой системе это прописать tune2fs -o journal_data_writeback ... ), это СИЛЬНО поднимет скорость записи на диск (что очень помогает для тестовых задач) но при внезапном выключении или подвисании компьютера можно получить кашу вместо данных

    p.s. Если данные важны, а скорость записей ext4 хоть немного поднять хочется, то можно все же найти ssd диск и разместить на нем журнал (это максимум гигабайт)
    https://raid6.com.au/posts/fs_ext4_external_journal/
    p.p.s. смени файловую систему на btrfs и включи компрессию, это немного поднимет производительность за счет меньшего объема операций и небольшого повышения нагрузки на процессор
    Ответ написан
    1 комментарий
  • Как установить свое разрешение экрана?

    @rPman
    Конкретно для виртуальной машины нужно установить драйвера гостевой ос (смотреть ту виртуальную машину которую используешь), например VirtualBox таскает с собой VirtualBoxAdditionals.iso

    универсально (т.е. и на реальном железе):
    с помощью cvt генерируешь дефолтные параметры для своего режима и затем добавляешь этот режим с помощью xrandr
    https://wiki.archlinux.org/title/xrandr
    https://linuxnow.ru/view.php?id=103
    Ответ написан
    Комментировать
  • Флешка монтируется в папку, как вернуть по дефолту?

    @rPman
    Флешка автоматом монтируется туда, но как отключить это я не знаю
    Настройки - съемные устройства и носители данных, убрать чекбоксики с Подключать ... и Автоматически... (это к примеру xfce, аналогичные настройки есть и в kde/unity)

    каталог в /media создается и удаляется автоматически, имя берется из имени активного пользователя (при multiseat хз, кажется берется первый в списке xserver) и имени флешки (берется метка диска или uuid)

    p.s. исторически пользователи монтируют компакт диски и соответственно их образы в каталог /cdrom (там их будут искать старые приложения, ожидающие наличие компакт диска, а современные ищут диск сами либо спрашивают у пользователя)
    Ответ написан
    Комментировать
  • Как решить ошибку?

    @rPman
    Ответ написан
    Комментировать
  • Как установить QT ofline в RedOS?

    @rPman
    Зачем выбирать специализированную версию linux - RedOS а затем уходить от ее протестированных компонент на самые новые, в 99% случаев вне зависимости от ос это непередаваемые приключения и страдания. Чем тебя qt5 версии не устраивают, которые есть в репах этой ос?

    Так как готовых backports разработчики или сообщество не предоставило (наличие их отсутствия показывает размер и качество этого сообщества и разработчиков данной ОС), то собирать вам весь комплекс пакетов самостоятельно

    Без знания linux боюсь будет очень сложно, ведь на таком квесте спотыкаются и опытные пользователи

    RedOS Система основана на rpm пакетах, пакетный менеджер утилита dnf (ранее yum) так как скорее всего основано на centos. С некоторой вероятностью у операционной системы может быть бинарная совместимость с centos (одинаковые версии системных библиотек) а значит можно попытаться поискать готвые решения от туда.

    p.s. но главное, куда поедет сертификация, после того как вы на эту ос начнете водружать системные пакеты собственной/чужой сборки?
    Ответ написан
    Комментировать
  • Как запустить проект который написан на QT windows в Linux?

    @rPman
    в подавляющем большинстве случаев приложения windows, написанные с помощью opensource библиотек и слабо завязанные на майкрософтовские (т.е. только то что идет в поставке с ос, максимум нужна правильная версия visual studio redistributable), могут работать в windows с помощью wine, либо напрямую готовый бинарник либо собираться с ее помощью

    К тому же фреймворк qt - кроссплатформенный, должен собираться везде, и дальше вопрос больше в том какие у тебя проблемы с этим возникают.

    p.s. при использовании linux, а точнее адекватные дистрибутивы типа debian/ubuntu/... с поддерживаемыми репозитариями пакетов, уже содержат в своей поставке несколько версий qt и всего ее окружения, не понятно что у тебя там от куда не скачивается
    Ответ написан
    2 комментария
  • Запуск своей программы вместо графической оболочки в Linux?

    @rPman
    Например
    1. отключаешь display manager - lightdm (или что у тебя там для меню авторизации и выбора DE)
    2. минимум что необходимо для работы графического режима - это xserver, для его запуска достаточно запустить утилиту X (кстати кажется до сих пор требует root), будет запущен графический сервер без Desktop Environment, но нужно понимать что DE отвечает за управление окнами, а точнее управление их размерами, положением на экране и вообще сокрытие/минимизация. Т.е. без этого, если твое приложение ожидает что пользователь будет перемещать его окна (а это к примеру диалоговое окно открытия/сохранения файлов) то он уже это сделать не сможет, все окна будут без заголовков и бордюра для изменения их размеров.
    И кстати, чтобы графическое приложение запустилось и отображалось на X нужно устанавливать переменную окружения DISPLAY, значение смотреть либо в конфиге X либо в логах (скорее всего будет что то типа :0, это имя сервера и номер xserver, запущенного на нем, напоминаю, что linux из коробки умеет multiseat)
    3. чтобы появился хоть какой то интерфейс взаимодействия, нужно установить DE, из минималистичных, идеальных для kiosk mode - я бы рекомендовал awesome, в нем к примеру можно настроить чтобы все открываемые окна сразу разворачивались на весь экран.

    Кстати со всеми xserver обычно идет древний дефолтный twm, настолько примитивный что даже смешно, но если бы при открытии любого окна он не требовал от пользователя указать расположение и размер, им можно было бы пользоваться (не удивлюсь если это настраивается но никогда этим вопросом не задавался).

    Из минималистичных и вполне функциональных DE можно предложить еще какой-нибудь openbox, его можно настроить так чтобы вообще никаких 'пуск' и списка задач не было, а только иконки и приложение на весь экран. Но пользователь сможет добраться до редактирования меню и запустить любое приложение, т.е. это не для kiosk mode

    Чтобы запустить xserver с DE автоматически можно либо настроить автозагрузку в lightdm (это правильно) либо просто запускать утилиту startx, которая смотрит в пользовательском каталоге .xinitrc и запускает DE от туда.

    На самом деле процесс запуска DE стал очень замудреный, его запутали несколько поколений разработчиков и выпутывать не желают, но обычно все это критично для тяжелых DE типа KDE, а что то простое и легкое с приложениями на gtk работает и так

    Собственно как запускать приложения автоматически при включении компьютера тоже вопрос очень интересный, способов много, минимум три могу предложить
    * правильный - настроить службу и прописать ей зависимости и автозапуск,
    * так же до сих пор есть устаревший способ настройки службы без зависимостей sysvinit - /etc/init.d
    * ну еще есть /etc/rc.local
    Ответ написан
    1 комментарий
  • Чем объединить разнобойные диски с репликацией данных?

    @rPman
    Самый удобный инструмент для решения этой задачи - btrfs, в нем есть нативная поддержка raid, нет дополнительного оверхеда инициализации и позволяет проводить операции с файловой системой на лету

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

    зеркало же на btrfs создавать относительно надежно.

    По теме вопроса, в похожей ситуации, я предварительно вручную составил план размещения данных на дисках (у меня были очень разные размеры от 350гб до 1тб, примерно 6 дисков), затем большего размера диски разбил на разделы, некоторые из которых были точно под размер маленьких дисков, и объединяя где диск целиком, где раздел, собрал все в несколько отдельных файловых систем. Очень важно сохранить карту дисков (удобно разрисуй в документе с картинками), какая файловая система какой диск и пометить физически жесткие диски символами, чтоб замена вышедших из строя была по проще.

    Сейчас у меня такого зоопарка нет, массив собираю на основе 3тб дисков, но все равно добавляю их не целиком, а поделив их емкость на 3 части и сделав несколько файловых систем (по 1тб так чтобы можно было добавить к примеру 1тб диск или наоборот, добавить к массиву 4тб диск не пересобирая весь массив), так же я отказался от raid5 btrfs, использую mdadm, но это больше ради перестраховки
    Ответ написан
    2 комментария
  • Как без проблем расширить корневой диск на лету в виртуальной машине linux?

    @rPman
    Про то что все современные файловые системы в linux умеют расширяться вам уже написали, т.е. меняешь размер раздела а после заставляешь файловую систему занять все пространство раздела... к сожалению делать это на лету почти всегда невозможно, т.е. требует размонтировать раздел (или хотя бы перевести его в readonly режим)

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

    Еще момент, некоторые файловые системы, например btrfs/zfs, умеют на лету! добавлять (и удалять) диски к пулу, и не обязательно это должен быть raid, возможно простое объединение пространств дисков, даже без чередования. Собственно btrfs я бы и рекомендовал использовать, даже не смотря на его нестабильный статус (так как все его проблемы касаются вещей, которые можно не использовать, например raid56)

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

    Да, существуют странные приложения, которые проверяют что файлы не являются линками (либо делают обновление файла его перезаписью, что удаляет симлинк и создает новый файл на текущем диске) или же разработчики по глупости вообще решают все хранить в одном большом контейнере, вынуждая администраторов ломать голову, как этот бред поддерживать... всякое бывает, симлинки не всемогущий инструмент.
    Ответ написан
    1 комментарий
  • Очень медленная установка гостевой ОС в VirtualBox на Linux. Почему?

    @rPman
    понижение в 48 раз это конечно много

    по теме:
    * проверь что включена аппаратная виртуализация в bios, так же попробуй выбери 'интерфейс виртуализации' kvm в настройках ускорения виртуальной машины (на linux должны доступны штатный от virtualbox и kvm, а hyper-v это только для windows хоста)

    * установи на windows guest additions - это по факту драйвера на виртуальные устройства, после установки которых в настройках виртуальной машины можно включить контроллер virtio (и для сети тоже)

    по умолчанию virtualbox использует эмулятор контроллера sata и он медленнее (но не в 48 раз, это конечно что то не то), особенно это видно при использовании сети на максимальной скорости, не virtio-... устройства начинают использовать cpu очень сильно
    Ответ написан
    Комментировать
  • Можно ли ограничить доступ usb-носителей с исключениями штатными средствами?

    @rPman
    Запрети всем доступ к usb и запили скриптик, который к примеру по крону будет проверять список устройств, например с помощью lsblk (там можно настроить подробный вывод) и смотри там uuid или метку или идентификатор устройства и монтируй

    а для размонтирования разрешай запуск своего sudo unmount, пусть ярлыком запускают пользователи
    Ответ написан
    Комментировать
  • Как сделать, чтобы скрипт прекращался при сочетании клавиш, в GNU/Linux?

    @rPman
    в самом скрипте в цикле (например на каждую новую итерацию) ставишь проверку например наличия определенного файла в /tmp а при запуске скрипта этот файл удаляешь, если есть

    на нужную тебе комбинацию клавиш (в штатных настройках DE) настраиваешь на запуск своей команды bash -e touch /tmp/имя_файла, эта команда создаст пустой указанный файл
    Ответ написан
    Комментировать