LINUX.ORG.RU

Сообщения sphericalhorse

 

Не работает watchdog

Форум — Admin

Привет ЛОР!

Пробую настроить Ватчьдог. Есть компьютер c Убунтой 20 на борту. Ставлю я пакет watchdog, делаю прописываю watchdog_module="iTCO_wdt" в /etc/default/watchdog, и делаю enable/start на сервис.

Потом что бы проверить, соответственно убиваю процесс сервиса:

pkill -9 watchdog
pkill -9 wd_keepalive

И на десктопе на котором я с этим всем игрался, работает отлично, то бишь через минуту компьютер перезагружается (материнка ASRock H170M Pro4S, если это играет роль). А на домашнем сервере оно просто на каждый pkill выводит вот такое в dmesg:

watchdog: watchdog0: watchdog did not stop!

и потом ничего не делает. (На сервачке ASUS ROG STRIX Z490-E, опять таки, если это играет роль.)

Что я делаю не так? В биосе ничего оссобенного включать не надо же по идее?

Может быть что разница в том что на десктопе Убунта десктопная с ядром 5.8 (которое HWE), а на сервере серверная с 5.4?

 

sphericalhorse ()

Docker BuilKit и монтирование кеша

Форум — Development

Привет.
Пробую я собрать докер-имедж с использованием монтирования кеша средствами Docker BuildKit.
Соответственно у меня есть Докерфайл со следующим содержимим:

# syntax=docker/dockerfile:1.0.2-experimental
FROM centos:centos7
# ...
RUN --mount=type=cache,id=mvncache,target=/root/.m2 \
    git clone https://github.com/... project && \
    cd project && \
    mvn clean package ...

Но код там клонируется с Гита, по этому что бы сборка кода не бралась с Docker Layer-кеша, нужно docker build запускать с --no-cache, но тогда не перестает работать и примонтированный кеш.
Запускаю сборку соответственно вот так:
export DOCKER_BUILDKIT=1
docker build --no-cache . -t ...

Хотя года два назад всё работало как надо.
Кто-то таким занимался? Как сделать что бы и кеш монтировался и layer-caching был отключен?

 

sphericalhorse ()

Сломалось монтирование кеша при сборке

Форум — Development

Привет, ЛОР!

У Докера есть такая прибулда, как експерементальный синтаксис Докерфайлов.

И там есть фича, которая позволяет монтировать какую-то папку при сборке имеджа как кеш используя в докерфайле инструкцию по типу следующей:

RUN --mount=type=cache,target=/root/.m2,id=maven mvn clean package ...

Я её использовал для монтирования Мавен-кеша, и получалось что в первый раз имедж билдися где-то за час, а потом все имеджи использующие кеш с этим id билдились уже минут за 10-15.

И то ли после какого-то обновления Docker'а,типа 19.03.0, то ли вообще по непонятной причине оно перестало работать как надо. Т.е. опять все имеджи билдятся по часу.

Кто-то вообще пользовался этой фичей? Работает или сломалось? А почнинили то?

Я ещё думую что может у Докера появились какие-то ограничения на размер этого кеша, типа если больше гигабайта, то он удаляется, но звучит как-то сомнительно.

 

sphericalhorse ()

ALAC в openSUSE

Форум — Desktop

Доброй ночи, ЛОР!

Поставил я себе значит openSUSE Tumbleweed, и не могу заставить тот же VLC проигрывать ALAC.

Пробовал вот это всё:

gstreamer-plugins-good
gstreamer-plugins-bad
gstreamer-plugins-ugly
gstreamer-plugins-libav
ffmpeg
alac

Для меня это все выглядит очень странно, потому что вроде как формат свободен (да и судя по наличию non-oss репозитория, ребята из SUSE не сильно помешаны на тру швабоде), и на других сисиемах с ним проблем никогда не было.

Как починить?

 ,

sphericalhorse ()

Оператор or для установки значения с переменной

Форум — Development

Привет.

Есть ли в bash'е элегантный способ установить значение перемнной таким же способом, как это можно сделать с помощью оператора or в других скриптовых языках?

Нужно сделать что-то типа вот такого вот:

MY_USER=$MY_USER or $(grep my_user my.conf | cut -d '=' -f2) or $(logname) or "root"


В Питоне можно было бы использовать or, в JS есть ||, а есть ли что-то такое в баше? Или лучше не извращаться и просто сделать это все через нужное количетсво if'ов?

 ,

sphericalhorse ()

Relocatable R

Форум — Development

Привет, ЛОР!

Задача заключаеться в том, что бы R на YARN'е запускать через Spark. Но проблема пока у меня далеко не в этом.

Собрал я cond'ой енв с R'ом, смотрю в файл /root/conda_r_env/bin/R, а там захардкожено R_HOME_DIR=/root/conda_r_env/lib/R.
Потом вообще сделал grep -R conda_r_env /root/conda_e_env и оказалось что оно захардкожено в куче файлов этого енва.

Так вот вопрос: есть ли способ получить архив с R'ом, который был бы relocatable (не знаю как правильно перевести)?
То есть что бы можно было его копировать на другие машины в папки с другим названием, и оно работало.

 ,

sphericalhorse ()

Сборка RPM-пакетов на CentOS

Форум — Development

Собираю я пакет в Докере centos:centos7 (очевидно там внутри будет последний CentOS 7.4.1708), потом пробую запустить на 7.3 и получаю ошибку что мол нет нужной версии openssl.
Очевидно проблема в том, что пакет был собран с openssl-1.0.2k, а в CentOS 7.3 версия openssl-1.0.1e.

Возникает 2 вопроса:
- есть ли гарантия что если я соберу на CentOS 7.0.1406, то пакет будет работать на всех 7-ых версиях CentOS'а?
- получается мне нужно брать CentOS с Vault репозиториями. Ведь если я буду это все делать в Докере с centos:centos7.0.1406, то при доустановке дополнительных devel-пакетов они все равно будут доставлятся с репозиториев 7.4?

ZenitharChampion

 , ,

sphericalhorse ()

Не работает reposync в Ubuntu

Форум — Admin

Привет, ЛОР!

Хочу сделть зеркало YUM репозитория на Убунте.
Поставил я yum-utils, сделал sudo ln -s /etc/{yum/,}yum.conf, добавил репозиторий в /etc/yum/repos.d/myrepo.conf.

Дальше делаю следующее:

ivan:~$ reposync --repoid=myrepo --download_path=/var/www/html/myrepo/redhat/
ivan:~$ echo $?
0

И не получаю ровным счетом ничего.
При этом yum repolist all говорит что у меня репозиториев нет.

Хотя в конфиге репозитория явно прописанно enabled=1, и вот такое вот тоже есть:
ivan:~$ sudo yum-config-manager --enable myrepo 
ivan:~$ echo $?
0
ivan:~$ sudo yum-config-manager -v | grep -A1 reposdir
reposdir = /etc/yum/repos.d,
   /etc/yum.repos.d


Нагуглить ничего не получилось, кроме рекомендаций в стиле «используйте APT».
ЧЯДНТ?

 ,

sphericalhorse ()

Как писать postinst/postrm скрипты в deb-пакетах

Форум — Development

Привет, ЛОР!

Нужно собрать DEB-пакет руками (без dh_make), и возникает вопрос: как грамотно писать postinst/postrm скрипты?

Нагуглил какие-то примеры типа вот такого вот:

#!/bin/sh
set -e

case "$1" in
    configure)
        # свои команды можно писать тут
    ;;

    abort-upgrade|abort-remove|abort-deconfigure)
    ;;

    *)
        echo "postinst called with unknown argument \`$1'" >&2
        exit 1
    ;;
esac

# а еще свои команды можно писать тут

Или типа вот такого-вот:
#!/bin/sh

# можно командочки писать тут и забить вообще на "$1" == "configure"
# типа просто обычний скрипт


А вопрос таков: обязательно обрабатывать аргументы как в первом примере, или можно забить и писать все как простой скрипт?
Зачем мне обрабатывать все эти аргументы, и вместо скрипта в 10 строк писать скрипт в 20? Тем более, что если кто-то потом будет это подправлять, его скорее всего эти конструкции только запутают.

Задача у меня следующая:
1) postinst: поменять хазяина и скопировать один файлик;
2) prerm: стопнуть сервис если он запущен;
3) postrm: удалить файлик скопированный на этапе 1.

 

sphericalhorse ()

SLES 12.2. Не хватает всех пакетов в репозиториях.

Форум — Linux-install

Привет, ЛОР.

Скачал я значит образы SLES 12.2 Server DVD1 и SLES 12.2 SDK DVD. Поставил их них систему, и при попытке установить mysql-connector-java вижу следующие ругательства:

$ sudo zypper in mysql-connector-java
...
Problem: nothing provides jta >= 1.0 needed by mysql-connector-java-5.1.35-3.1.noarch
 Solution 1: do not install mysql-connector-java-5.1.35-3.1.noarch
 Solution 2: break mysql-connector-java-5.1.35-3.1.noarch by ignoring some of its dependencies
...


По видемому ему не хватает чего-то, что является capabilities и называется jta.

При этом на аналогичной конфигурации SLES 12.1, этот capabilities приутствует:
$ sudo zypper in jta
...
'jta' not found in package names. Trying capabilities.
Resolving package dependencies...

The following 5 NEW packages are going to be installed:
  gcc48-gij gcc-gij java-1_5_0-gcj-compat libgcj48 libgcj48-jar

The following recommended package was automatically selected:
  libgcj48-jar
...


Копаясь дальше, я выяснил, что причина в том, что в SDK репозитории 12.2 отсутствуте пакет java-1_5_0-gcj-compat, который есть в 12.1.


Так вот внимание вопрос: мне для нормальной конфигурации 12.2 будет достаточно репозиториев из SLE-12-SP2-Server-DVD1 и SLE-12-SP2-SDK-DVD1?

Или в 12.2, надо подключать такие же репозитории из 12.1?
Звучит по крайнем мере туповато.
Или это ребята из Сюза накосячили?
Или я что-то делаю не так?

 

sphericalhorse ()

UEFI не видит загрузочного раздела

Форум — Linux-hardware

Привет, ЛОР!

Подарили мне SSD'ху как-то, поставил туда систему, и все нормально работало, пока я не сломал загрузку.
При попытке восстановить, у меня получилось нормально загрузить систему только из загрузочного раздела на жестком диске, а с SSD в упор ничего не грузится.
Потом оказалось что в Asus EZ Flash Utility (приблуда в UEFI для обновления firmware), видно этот самый загрузочный раздел с HDD и даже с Убунтовской загрузочной флешки, а раздел с SSD'хи он в упор не видит.

Идея же в том, что бы создать просто в начале диска не большой раздел с файловой системой FAT32 и поставить тип раздела EF00 (boot, esp), и потом добавить загрузочную запись через efibootmgr. Или я что-то упустил?

Пока что есть вот такое:

root@ivanpc:~# gdisk -l /dev/sda
GPT fdisk (gdisk) version 1.0.1

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.
Disk /dev/sda: 234441648 sectors, 111.8 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 16799FC3-400D-46C0-945C-35D0A93AA0B4
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 234441614
Partitions will be aligned on 2048-sector boundaries
Total free space is 8391533 sectors (4.0 GiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048         2099199   1024.0 MiB  EF00  
   2         2099200        35653631   16.0 GiB    8200  
   3        35653632       171526143   64.8 GiB    8300  
   4       179914752       234440703   26.0 GiB    8300 

 ,

sphericalhorse ()

Восстановление загрузчика на SSD

Форум — Linux-hardware

Привет, ЛОР!

У меня сломался загрузчик, и при попытке его восстановить, столкнулся с такой проблемой: BIOS не видит загрузочный раздел на SSD диске.
Когда я делаю все те же этапы для такого раздела на жестком диске, все работает:
— создаю 1 раздел на 500 мегабайт, с файловой системой FAT32 и флагами boot и esr;
— делаю туда grub-install --target=x86_64-efi, dpkg-reconfigure grub-efi-amd64 и efibootmgr -c.

При этом я заметил, что в этом самом BIOS'е, в ASUS Ez Flash Utility, сам BIOS нормально видит содержимое загрузочного раздела на HDD, но ничего не видит на SDD.

Может я что-то пропустил или делаю не так?
Какие-то специальные метки в GPT или того.
Менять местами подключения SSD и HDD пробовал, если что.

 ,

sphericalhorse ()

Линковать без привязки к версии

Форум — Development

Привет, ЛОР!

Можно ли как-то собирать so-шник, и линковать к другому so-шнику, без привязки к версии?

Например, у меня собирается _mysql.so и он слинкован с libmysqlclient.so.18, а мне надо, что бы он кушал libmysqlclient.so -> libmysqlclient.so.16.

Пока он ругается на «no version information available».

Какие такие волшебные опции нужно передать gcc, что бы оно заработало?

И да, я понимаю что так делать не хорошо.

 ,

sphericalhorse ()

Проверить, есть ли библиотека в системе

Форум — Development

Привет, ЛОР!

Допустим у меня программа прилинкованна на библиотеку libfake.so.10, но меня устроит и libfake.so.9.
То есть на некоторых системах я могу просто создать ссылку libfake.so.10 -> libfake.so.9.

Эту ссылку надо создавть скриптом. А как мне проверить, нету ли уже такой ссылки?

Вариант обходить дефолтные папки и все что в /etc/ld.so.conf не подходит.
Грепать ldconfig -p тоже не подходит, так как он её не покажет, если libfake.so.10 — это ссылка.

Пока что есть два варианта.
Не красивый:

ldconfig -Nv | grep -E '[[:space:]]libfake.so.10([[:space:]]|$)'

И ужасный:
ldd myapplication | grep 'libfake.so.10 => not found'

 

sphericalhorse ()

Как система проставляет настройки локали при установке?

Форум — Admin

Привет, ЛОР!

Подскажите, откуда у меня, на чистой системе, в настройки локали попадают uk_UA.UTF-8?

С проблемой столкнулся на Ubuntu/SLE/openSUSE Leap.
При установке выбираю только английский язык, раскладок не добавляю, часовой пояс тоже ставлю в Etc/UTC.

Потом на установленной системе смотрю locale и вижу:

LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC=uk_UA.UTF-8
LC_TIME=uk_UA.UTF-8
LC_COLLATE="en_US.UTF-8"
LC_MONETARY=uk_UA.UTF-8
LC_MESSAGES="en_US.UTF-8"
LC_PAPER=uk_UA.UTF-8
LC_NAME=uk_UA.UTF-8
LC_ADDRESS=uk_UA.UTF-8
LC_TELEPHONE=uk_UA.UTF-8
LC_MEASUREMENT=uk_UA.UTF-8
LC_IDENTIFICATION=uk_UA.UTF-8
LC_ALL=

Смотрю сейчас вот в openSUSE (/etc/sysconfig/language), и вижу что все эти переменные пустые (кроме RC_LANG=«en_US.UTF-8»).
В Убунте то же:
cat /etc/default/locale 
LANG="en_US.UTF-8"
LANGUAGE="en_US:"

Откуда, блин, оно берет эти значения?
Как грамотно починить?

 

sphericalhorse ()

Объединить 3 пакета в 2

Форум — Development

Привет, ЛОР!

Может кто сталкивался, подскажите, как настроить control-файлы для сборки DEB пакетов?

Ситуация такая: было пакеты, скажем, service-one и service-two, и они зависели от третьего service-common.

В итоге service-common попал в serivce-one, а service-two стал сам по себе.

Как прописать секции Replaces, Depends и Provides, что бы обновление происходило по схеме:

а) service-one, service-common, service-two -> service-one, service-two
б) service-one, service-common -> service-one
в) service-two, service-common -> service-two

Сейчас пробовали так, но оно пакет service-common удаляется почему-то два раза (если обновлять и service-one, и service-two):

  • service-one
    Replaces:  service-one (<< old-ver), service-common (<< old-ver)
    
  • serivce-two
    Replaces:  service-two (<< old-ver), service-common (<< old-ver)
    

 ,

sphericalhorse ()

Ubuntu и ноутбук с Nvidia

Форум — Desktop

Привет, ЛОР!

Подскажите, что делать: есть ноутбук (Lenovo Z580), решили на него поставить Ubuntu 14.04. В ноутбуке если что видеокарта Nvidia GeForce GT 640M и интегрированная Intel. Поставили драйвер nvidia-352, который recomended. В итоге система загрузилась потом, но на экране ничего не появилось вообще. Подождали пару минут, пошевелили мишкой, и увидели логин скрин (очевидно система по таймауту заблокировала и выключила экран и при повторном включении уже что-то заработало). Но судя по тому, что я увидел при выводе nvidia-smi, и судя по производительности, драйвер видеокарты таки не заработал нормально.

Кто сталкивался вообще с проблемами с Нвидиями на ноутбуке, что сделать что бы все работало нормально?

Это нормально, что одновременно загружены драйвера nvidia и i915?

 

sphericalhorse ()

Поднять приоритет процесса

Форум — Admin

Привет ЛОР!

Упражнялись с nice и renice на разных системах и вот что выяснили:

В Убунте 10.04 обычный пользователь может renice'ом менять приоритет с 0 до 19. При чем как понижать, так и повышать.

В большинстве других систем приоритет можно только понижать (пробовали на Дебиане, версию не вспомню).

Возник вопрос: где политика изменений задается? Почему оно работает по разному?

 

sphericalhorse ()

Виснет система, когда пустой рабочий стол

Форум — Desktop

Привет ЛОР!

Помогите решить проблему: система начинает дико тупить, когда сворачиваю или закрываю все окна. Compiz загружает процессор так, что помогает только перезагрузка, хотя в остальном остальном все работает отлично.
Может кто сталкивался с такой проблемой? Что делать?

PS: Ubuntu 14.04, драйвера с сайта — AMD Catalyst 15.9.

 

sphericalhorse ()

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

Форум — Admin

Привет, ЛОР! Стоит задача заблокировать через шлюз (CentOS) доступ ко всем адресам кроме двоих избранных. Пока делаю так:

iptables -A FORWARD ! -d 10.18.49.2 -j REJECT
iptables -A FORWARD ! -d 10.18.96.42 -j REJECT
Но оно не работает
ping 10.18.49.2
PING 10.18.49.2 (10.18.49.2) 56(84) bytes of data.
From 10.18.60.1 icmp_seq=1 Destination Port Unreachable
...
Что я делаю не так?

 

sphericalhorse ()

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