Строка 260: *0: синтаксическая ошибка: ожидается операнд (ошибка в токене "*0")

Я также видел предыдущую тему, но в ней нет решения. Поэтому я создаю новую.

У меня возникла эта ошибка при установке Discourse на архитектуре arm64, Linux Ubuntu на AWS.

./discourse-setup: строка 260: *0: синтаксическая ошибка: ожидается операнд (ошибка в токене “*0”)

Имя хоста для вашего Discourse? [discourse.example.com]:

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

cat /proc/cpuinfo

Проблемная строка — та, которая пытается рассчитать количество физических ядер процессора

Спасибо за ваш ответ. Ниже приведены запрошенные вами данные.

processor : 0
BogoMIPS : 243.75
Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp ssbs
CPU implementer : 0x41
CPU architecture: 8
CPU variant : 0x3
CPU part : 0xd0c
CPU revision : 1
processor : 1
BogoMIPS : 243.75
Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp ssbs
CPU implementer : 0x41
CPU architecture: 8
CPU variant : 0x3
CPU part : 0xd0c
CPU revision : 1

У меня 2 vCPU (если эта информация релевантна).

Спасибо. Для ваших текущих задач я бы посоветовал отредактировать строку 260 и запустить скрипт снова. Вероятно, до:

avail_cores=2 # $((`awk '/cpu cores/ {print $4;exit}' /proc/cpuinfo`*`sort /proc/cpuinfo | uniq | grep -c "physical id"`))

Но похоже, что скрипт нуждается в исправлении для работы с облачными предложениями AArch64.

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

lscpu

или, в самом деле,

lscpu -p

Я попробую это исправление. Но я также могу подождать надлежащего исправления.

Вот вывод lscpu:

Архитектура:           aarch64
  Режимы работы процессора:  32-бит, 64-бит
  Порядок байтов:          Малый порядок (Little Endian)
Процессоры (CPU):          2
  Список активных процессоров:  0,1
Идентификатор производителя: ARM
  Название модели:           Neoverse-N1
    Модель:                  1
    Потоков на ядро:         1
    Ядер на сокет:           2
    Сокетов:                 1
    Шаг (Stepping):          r3p1
    BogoMIPS:                243.75
    Флаги:                   fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp 
                        asimdhp cpuid asimdrdm lrcpc dcpop asimddp ssbs
Кэши (сумма всех):    
  L1d:                  128 КБ (2 экземпляра)
  L1i:                  128 КБ (2 экземпляра)
  L2:                   2 МБ (2 экземпляра)
  L3:                   32 МБ (1 экземпляр)
NUMA:                   
  Узлов NUMA:           1
  Процессоры узла NUMA0:    0,1
Уязвимости:        
  Сбор данных выборкой: Не затронут
  Ittl multihit:        Не затронут
  L1tf:                 Не затронут
  Mds:                  Не затронут
  Meltdown:             Не затронут
  Mmio stale data:      Не затронут
  Retbleed:             Не затронут
  Переполнение стека спекулятивных возвратов: Не затронут
  Обход спекулятивного хранения: Смягчение; Спекулятивное хранение отключено через prctl
  Spectre v1:           Смягчение; Санитизация указателей __user
  Spectre v2:           Смягчение; CSV2, BHB
  Srbds:                Не затронут
  Асинхронный сбой Tsx: Не затронут

Странно, но я ранее отправлял PR для исправления этой проблемы, он был (в конце концов) принят, но я не вижу исправления в текущей версии.

А, я понял: он был принят в ветку ‘master’, а не в ‘main’. Похоже, это проблема!

Вот исправленная строка

    avail_cores=`lscpu --parse=core | egrep -v ^# | sort -u | wc -l`

Огромное спасибо :slight_smile:. Теперь всё работает.

PR отправлен
https://github.com/discourse/discourse_docker/pull/739

Спасибо за оперативные действия :slight_smile: