Невозможно установить snapd на CentOS 7 из-за ошибки зависимости

Виртуальные ядра или «потоки»

Если вы хотите избежать использования виртуальных ядер или «потоков», вы можете просто отключить эту функцию. Хотя отключение этой функции не обязательно улучшит производительность, это зависит от используемого вами серверного программного обеспечения (есть механизмы, которые лучше работают с HT/SMT, а другие нет ), вам, вероятно, следует протестировать его.

Согласно вашему сообщению, Intel X5650 имеет 6 ядер и 12 потоков каждый. Вы можете проверить это с помощью lscpu. Например. следующий ЦП имеет 4 ядра и HT отключен:

$ lscpu
Architecture:        x86_64
CPU op-mode(s):      32-bit, 64-bit
Byte Order:          Little Endian
CPU(s):              4
On-line CPU(s) list: 0-3
Thread(s) per core:  1
Core(s) per socket:  4
Socket(s):           1

Вы можете проверить ядра HT, запустив:

# grep -H. /sys/devices/system/cpu/cpu*/topology/thread_siblings_list

Это выведет что-то вроде:

$  grep -H. /sys/devices/system/cpu/cpu*/topology/thread_siblings_list
/sys/devices/system/cpu/cpu0/topology/thread_siblings_list:X,Y
/sys/devices/system/cpu/cpu1/topology/thread_siblings_list:X,Y
/sys/devices/system/cpu/cpu2/topology/thread_siblings_list:X,Y
/sys/devices/system/cpu/cpu3/topology/thread_siblings_list:X,Y

Где X,Y — физический -Core -ID,HT -Core -ID, как в :0,4 (первый виртуальный ID ядра обычно следующий за последний физический ).

Отключение Hyper -Многопоточность

С этой информацией у вас есть 2 варианта отключения HT,в зависимости от вашего доступа к серверу:

  1. Через настройки биоса (проще всего)

    • Вам следует обратиться к руководству производителя вашей материнской платы и отключить там Hyper -Threading. Это требует перезагрузки сервера и доступа к настройкам BIOS.
  2. Через командную строку (перезагрузка не требуется)

    • Вы можете напрямую отключить каждое виртуальное ядро ​​в Linux, создав disablevcore.shфайл:
    #!/bin/bash
    for i in {YY..YY}; do
       echo "Disabling logical HT core $i."
       echo 0 > /sys/devices/system/cpu/cpu${i}/online;
    done

И замените YY..YY для идентификатора потока, который вы хотите отключить, согласно вашим процессорам, возможно, {6..11}. Хотя я не уверен, как нумерация работает на установках с несколькими сокетами -, поэтому вам следует внимательно проверить.

  1. Другой вариант (2.a, если хотите ), отключить его в GRUB:

    • Отредактируйте файл конфигурации GRUB :/etc/sysconfig/grub(, если и добавьте nohtв строку, начинающуюся с:GRUB_CMDLINE_LINUX. Это должно быть что-то вроде этого:
GRUB_CMDLINE_LINUX="... noht..."

Подробнее о HT и SMT:

Intel "Hyper -Многопоточность"

Hyper-threading is Intel's proprietary simultaneous multithreading implementation used to improve parallelization of computations performed on x86 microprocessors. It first appeared in February 2002 on Xeon server processors and in November 2002 on Pentium 4 desktop CPUs. Later, Intel included this technology in Itanium, Atom, and Core 'i' Series CPUs, among others.

https://en.wikipedia.org/wiki/Hyper-threading

AMD "Одновременная многопоточность (SMT )"

Simultaneous multithreading is a technique for improving the overall efficiency of superscalar CPUs with hardware multithreading. SMT permits multiple independent threads of execution to better utilize the resources provided by modern processor architectures.

https://en.wikipedia.org/wiki/Simultaneous_multithreading

Подробнее об отключении HT через ядро ​​:

https://www.golinuxhub.com/2018/01/how-to-disable-or-enable-hyper.html

4
09.01.2021, 16:31
4 ответа

С сайта snaphttps://snapcraft.io/docs/installing-snap-on-centos

Необходимо включить репозиторий CR (Continuous Release ). Попробуйте запустить sudo yum-config-manager --enable cr, а затем sudo yum install snapd. Это должно исправить ошибку.

1
18.03.2021, 22:52

2020 -11 -14 Обновление

Выпуск CentOS 7.9 теперь доступен в репозитории baseвместе с необходимой версией selinux-policy-base.

Просто запустите yum updateдля установки centos-release-7-9.2009.0.el7.centos, после чего вы сможете установить snapс помощью yum install snapd.

0
18.03.2021, 22:52

По какой-то причине для этого требуется CentOS 7.9, которая еще не выпущена. Вы можете либо перейти на постоянный выпуск CentOS, выполнив sudo yum --enablerepo=cr update, либо дождаться CentOS 7.9

.
1
18.03.2021, 22:52

Попробуйте переустановитьselinux -policyиselinux -policy -targetнепосредственно с локального/удаленного пути, например:

$ sudo yum remove selinux-policy-base

Removed:
  selinux-policy-minimum.noarch 0:3.13.1-268.el7
  selinux-policy-targeted.noarch 0:3.13.1-268.el7 


$ sudo yum install \
http://mirror.centos.org/centos/7/updates/x86_64/Packages/selinux-policy-3.13.1-268.el7_9.2.noarch.rpm \
http://mirror.centos.org/centos/7/updates/x86_64/Packages/selinux-policy-targeted-3.13.1-268.el7_9.2.noarch.rpm

После этого установка snapd должна работать:

$ sudo yum install snapd

Updated:
  snapd.x86_64 0:2.47.1-1.el7                                                                                                                                                                            

Dependency Updated:
  snap-confine.x86_64 0:2.47.1-1.el7                                                                 snapd-selinux.noarch 0:2.47.1-1.el7                                                                

Complete!
3
18.03.2021, 22:52

Теги

Похожие вопросы