LINUX.ORG.RU

Сообщения keeper_b

 

Хранение данных в классе Qt

А не подскажете, как лучше хранить данные в классе в такой задаче?

Предположим нужен класс, который делает экспорт из текстового файла данные в SQLite и там допустим есть такие данные:

class Converter
{
   struct TStudent {
        QString m_FirstName;
        QString m_LastName;
        QDate m_Birthday;
        int m_Sex;
        int m_Mark;
   };
   using TStudentMap = QMap<int, TStudent>;
public:
   explicit Converter(QObject *parent = nullptr);

   void exportDB(const TStudentMap &student);
   TStudentMap importDB();
// ...
// далее пишем сеттеры/геттеры и другие полезные методы
};

Или не мучатся со структурой и просто всё записать в QVariant?

class Converter
{
   using VariantMap = QMap<int, QVariant>;
   QHash<int, VariantMap> m_Student;
public:
   explicit Converter(QObject *parent = nullptr);

   void exportDB(const QVariant &student);
   QVariant importDB();
// ...
// далее пишем сеттеры/геттеры и другие полезные методы
};

Всё равно потом вставлять всё в sql-запрос в виде строк…

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

query.bindValue(column, m_Student[row].value(column));

А может ещё какие то варианты есть?

 , ,

keeper_b
()

Откуда systemd может брать настройки для монтирования каталога, кроме fstab?

Вчера весь день ковырялся с systemd. В общем есть два сервера на Gentoo. На обоих установлена systemd версии 256.5 с одинаковыми флагами сборки:

[ebuild   R    ] sys-apps/systemd-256.5:0/2::gentoo  USE="acl cryptsetup curl dns-over-tls elfutils gcrypt gnutls http idn kernel-install kmod lz4 lzma openssl pam pcre pkcs11 policykit resolvconf seccomp sysv-utils zstd -apparmor -audit -boot -bpf -cgroup-hybrid -fido2 -homed -importd -iptables -pwquality -qrcode -secureboot (-selinux) (-split-usr) -test -tpm -ukify -vanilla -xkb" PYTHON_SINGLE_TARGET="python3_12 -python3_10 -python3_11"

В /etc/fstab диски монтируются так на обоих компах:

LABEL=rootfs   /      ext4  noatime,defaults,nodev,discard,errors=remount-ro             0 1
proc           /proc  proc  noatime,rw,nosuid,nodev,noexec,hidepid=2,gid=wheel           0 0
tmpfs          /run   tmpfs noatime,rw,async,auto,nodev,nosuid,relatime,mode=755         0 0
tmpfs          /tmp   tmpfs noatime,rw,async,auto,nouser,nosuid,nodev,noexec,size=32G    0 0

Однако каталог /dev почему-то оказывается примонтирован с разными опциями. на одном так:

# findmnt -l | grep "/dev "
/dev  devtmpfs  devtmpfs  rw,nosuid,noexec,relatime,size=32693188k,nr_inodes=8173297,mode=755

на втором так:

# findmnt -l | grep "/dev "
/dev  devtmpfs  devtmpfs  rw,relatime,size=8194240k,nr_inodes=2048560,mode=755

Как так? Откуда он может ещё брать nosuid,noexec настройки кроме /etc/fstab и по умолчанию? Пробовал перезагружать обе машины, настройки сохраняются.

 , ,

keeper_b
()

Можно ли добавить действи перед началом emerge и после окончания?

Есть рекомендация держать каталог /tmp с опцией noexec, но она ломает в Gentoo сборку пакетов.

Хотелось бы что бы при emerge app-misc/mc происходило перемонтирование каталога с опцией exec, а после окончания, опция возвращалась на noexec.

Нашёл такую вещь, но чёт она не работает.

 , ,

keeper_b
()

Ноут с BCM4313-картой не видит Wi-Fi-сети 5Ghz

Куда копать?

 

keeper_b
()

Ко мне на маршрутизатор сыпятся ICMP пакеты, что это?

Идёт нескончаемый поток ICMP-пакетов. Попробовал посмотреть программой tcpdump, получил вот это:

19:20:27.516167 IP 78.47.3.46 > 217.172.17.48: icmp: time exceeded in-transit
19:20:27.516170 IP 80.249.208.124 > 217.172.17.51: icmp: time exceeded in-transit
19:20:27.517223 IP 78.47.3.46 > 217.172.17.48: icmp: time exceeded in-transit
19:20:27.517226 IP 80.249.208.124 > 217.172.17.51: icmp: time exceeded in-transit
19:20:27.518210 IP 78.47.3.46 > 217.172.17.48: icmp: time exceeded in-transit
19:20:27.518255 IP 80.249.208.124 > 217.172.17.51: icmp: time exceeded in-transit

Интересно ещё и то, что адрес назначения не мой, даже подсеть другая. Как можно видеть, он вообще долбится в адреса 217.172.17.51 и 217.172.17.48. Они даже близко не мои, но пакеты попадают мне почему-то.

Как это прекратить?

 

keeper_b
()

Окно QFontDialog застывает на Qt 6.7

Такой код создаёт диалоговое окно, которое не реагирует на нажатие кнопок ни мышь ни клавиатурой:

#include <QApplication>
#include <QTextEdit>
#include <QFontDialog>

int main(int argv, char **args)
{
    QApplication app(argv, args);

    QTextEdit textEdit;

    QFontDialog dlg(&textEdit);
    QFontDialog::FontDialogOptions opt;
    dlg.setOptions(opt);
    dlg.setCurrentFont(QFont("Times", 12));

    if (dlg.exec() == QFontDialog::Accepted)
        textEdit.append("ok");
    else
        textEdit.append("false");

    textEdit.append(dlg.selectedFont().family() + ", " +
                    QString::number(dlg.selectedFont().pointSizeF()));

    textEdit.show();

    return app.exec();
}

Само зависание происходит на вызове метода dlg.exec(). При этом ошибка не проявляется в Windows и/или на Qt 5.

 

keeper_b
()

PARTUUID вместо UUID при загрузке ядра

А что за тема, везде пишут, что надо в качестве параметра ядра указывать root=UUID=befdce9b-63ea-4fa2-bfaf-635c9031f7f0 ro init=/usr/lib/systemd/systemd rootfstype=ext4 crashkernel=256 nvidia_drm.modeset=1 delayacct intel_pstate=hwp_only nodhcp.

Однако у меня это не работает. При загрузке паника ядра: Kernel Panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0).

Но прекрасно работает если отправить PARTUUID="64881135-9900-4c27-b976-3423934bd987".

Зачем в мануалах врут и говорят неверный UUID?

Кстати dracut также неверный UUID подсовывает.

 , , ,

keeper_b
()

Gentoo ставит ядро чёр-те куда

Делаю как обычно make install для установки ядра в /boot, а он его за каким-то пишет в каталог /efi и потом не грузится.

Что они сделали? Всё же отлично работало!

Нафига портить?

 , , ,

keeper_b
()

Автоматический монтируется/не монтируется раздел EFI

Интересная ситуация, есть три компа (два сервера и десктоп). На всех установлена Gentoo. Летом обнаружил, что на одном из серверов происходит автоматическое создание и монтирование каталога /efi.

После некоторого расследования виновник был найден. Им оказался systemd-gpt-auto-generator документация.

После прочтения руководства по нему стало понятно, что он просто следует рекомендациям.

Варианты выключить это нашел несколько:

  1. Отправить ядру параметр systemd.gpt_auto=0.
  2. Замаскировать этот automount командой systemctl mask efi.automount.
  3. Задать бит 63 (0x8000000000000000) разделу (как оказалось не работает как раз с разделом /efi).

А вопрос заключается в том, что почему не создаётся на других машинах этот каталог? На них ничего из этих вариантов нет, однако каталог этот не создаётся.

Конфигурация дисков одинаковая на всех машинах. Поэкспериментировав пришёл к выводу, что на них вообще не запускается этот systemd-gpt-auto-generator.

Как его включить отключить ничего не нашёл.

 , , ,

keeper_b
()

При сборке chromium закрываются все открытые терминалы

Странная фигня, запускаю сборку chromium и где-то через полчаса прям во время сборки сами по себе закрываются все терминалы. Пробовал с Konsole и xterm.

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

Чё это за фигня и как лечить?

 , , ,

keeper_b
()

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

Чего-то я в ядре изменил месяц назад и у меня упала производительность. Ну как упала, как только проц прогревается выше 60 градусов сразу идёт сброс частоты и он начинает работать медленнее. Я не помню, что там изменил. Я точно помню, что когда купил и поставил его он работал на максимум прогреваясь до 95-110 градусов и работал очень шустро.

Куда копать?

 , ,

keeper_b
()

Организация сайта

А вообще, я правильно понимаю, что для создания одного сайта, по хорошему, надо шесть серверов с внешними IP?

  1. Первичный DNS.
  2. Вторичный.
  3. Почта 1.
  4. Почта 2.
  5. Собсно сайт.
  6. СУБД.

 , , ,

keeper_b
()

А можно ПК запустить без видеокарты?

Есть ПК, хочу переделать его в домашний сервер, которому не нужна видяха.

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

 

keeper_b
()

Разрешение адресов при синхронизации ebuild через cron

Добрый день. А не подскажет кто, куда копать при такой фигне?

rsync: [Receiver] failed to connect to 2a02:6b8::183 (2a02:6b8::183): Network is unreachable (101)
rsync error: error in socket IO (code 10) at clientserver.c(139) [Receiver=3.2.7]
!!! Exhausted addresses for mirror.yandex.ru

При синхронизации руками sudo emerge --sync ничего подобного нет.

С какого он вообще пытается использовать IPv6, когда он у меня везде отключен?

Перемещено hobbit из general

 , ,

keeper_b
()

DNS-сервер и обновление зоны

Есть свой DNS-сервер и домен mydomain.ru. Добавляю ещё одну NS-запись в файл зоны.

При обновлении происходят чудеса, а именно, с другого ПК делаю dig mydomain.ru SOA и он выдаёт старый серийник, но при запросе dig mydomain.ru NS выдаёт список с уже добавленной NS-записью.

Через какое-то время делаю новый запрос dig, и всё меняется наоборот.

Почему это происходит?

 ,

keeper_b
()

Возможно ли вытащить куки и отрктую сессию из Chromeium?

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

 

keeper_b
()

Работа с несколькими наборами данных через REST API

Господа, а не подскажите как работать одновременно с несколькими наборами данных через REST API?

Я раньше с таблицами БД работал через SQL и там всё было просто.

Допустим есть таблица «проекты» и таблица «пользователи». И когда мне надо было получить имена и фамилии владельцев проектов списком, я просто делал подзапрос и через ID их вытягивал.

А как такое делать через REST API?

Оно не работает так же, как в SQL. Одна установленная сессия с сервером даёт возможность работать только с одним документом.

 , ,

keeper_b
()

Имя машины и домен

Призываю капитана очевидность объяснить, как настроить эти параметры на Gentoo с systemd.

В инструкции есть указания, что для имени машины надо набрать

hostnamectl hostname my

а для указания домена надо отредактировать файл /etc/hosts

127.0.0.1 localhost
127.0.1.1 my.lan my

Только вот у меня такое на заработало в Gentoo.

Команда hostname выдаёт имя машины, а вот hostname -d домен не показывает вообще.

После некоторого копания виновник был найден. Оказалось что в файле /etc/nsswitch.conf эта строка всё портила

hosts:      mymachines resolve [!UNAVAIL=return] files myhostname dns

Посмотрел как она указана в Ubuntu и переписал как там. А там была просто такая строчка

hosts:      files dns

И всё.

Вопрос: зачем так извернулись в Gentoo и тем самым всё сломали или я чего-то не понимаю?

И почему в Handbook по этому поводу вообще ничего не говорится?

 , ,

keeper_b
()

Отключить для локальных адресов TLS

Не подскажите, а можно ли выключить для 127.0.0.1 адреса шифрование?

При этом не трогать опцию smtpd_tls_security_level = encrypt.

Хотел сделать, что бы porteg присылал на почту уведомление если проводит обновление и упёрся, что он не поддерживает шифрование.

 ,

keeper_b
()

Настройка в Gentoo разрешения имён

Купил маршрутизатор и столкнулся с проблемой.

Страницы стали долго открываться, а у ping по 5 сек. уходит на разрешение имён.

Поискав в инете нашёл, что причина в параллельной отправки запроса по протоколу IPv6. В качестве решения прелагается записать в /etc/resolve.conf

options single-request-reopen

Попробовал, всё заработало, но после перезагрузки или

sudo systemctl restart systemd-resolved

запись стирается.

Как эту запись добавить в /etc/systemd/resolved.conf?

Ни в руководствах ни в интернете ничего не смог найти.

 , ,

keeper_b
()

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