Перейти к содержанию

Требования к рабочей станции и операционной системе⚓︎

Требования к аппаратному обеспечению⚓︎

  • Раздел на жёстком диске, рекомендуемый размер - более 20 Гб, так как для сборки пакетов необходимо много свободного места.
  • Если оперативной памяти ПК мало (3 Гб и меньше), то рекомендуется создать раздел/файл подкачки. В крайнем случае используйте zram.

Требования к программному обеспечению⚓︎

Более ранние версии перечисленных программных пакетов могут работать, но корректность работы не проверялась.

  • Bash-3.2 (/bin/sh - жесткая или символическая ссылка на bash);
  • Binutils-2.25;
  • Bison-2.7 (/usr/bin/yacc - символическая ссылка на bison или на файл сценария, который его запускает);
  • Bzip2-1.0.4;
  • Coreutils-6.9;
  • Diffutils-2.8.1;
  • Findutils-4.2.31;
  • Gawk-4.0.1 (/usr/bin/awk - символическая ссылка на gawk);
  • GCC-6.2 с компилятором C++, g++;
  • Glibc-2.11;
  • Grep-2.5.1a;
  • Gzip-1.3.12;
  • Linux Kernel-3.2;
  • M4-1.4.10;
  • Make-4.0;
  • Patch-2.5.4;
  • Perl-5.8.8;
  • Python-3.4;
  • Sed-4.1.5;
  • Tar-1.22;
  • Texinfo-4.7;
  • Xz-5.0.0;

В зависимости от семейства ОС Linux, выполните следующий команды, чтобы обеспечить совместимость и установить необходимые пакеты:

Для Debian, Ubuntu:⚓︎

apt-get install build-essential bison gawk texinfo
ln -sf bash /bin/sh

Для ArchLinux⚓︎

pacman -S base-devel

Для Fedora, Redhat⚓︎

dnf install bison gawk texinfo make gcc-c++

Проверка соответствия программного обеспечения⚓︎

Чтобы узнать, что ваша хост-система полностью соответствует всем необходимым для дальнейшей работы требованиям, выполните следующий набор команд:

cat > version-check.sh << "EOF"

#!/bin/bash
# Simple script to list version numbers of critical development tools
export LC_ALL=C

bash --version | head -n1 | cut -d" " -f2-4
MYSH=$(readlink -f /bin/sh)
echo "/bin/sh -> $MYSH"
echo $MYSH | grep -q bash || echo "ERROR: /bin/sh does not point to bash"
unset MYSH

echo -n "Binutils: "; ld --version | head -n1 | cut -d" " -f3-
bison --version | head -n1

if [ -h /usr/bin/yacc ]; then
  echo "/usr/bin/yacc -> `readlink -f /usr/bin/yacc`";
elif [ -x /usr/bin/yacc ]; then
  echo yacc is `/usr/bin/yacc -V | head -n1`
else
  echo "yacc not found"
fi

bzip2 --version 2>&1 < /dev/null | head -n1 | cut -d" " -f1,6-
echo -n "Coreutils: "; chown --version | head -n1 | cut -d")" -f2
diff --version | head -n1
find --version | head -n1
gawk --version | head -n1

if [ -h /usr/bin/awk ]; then
  echo "/usr/bin/awk -> `readlink -f /usr/bin/awk`";
elif [ -x /usr/bin/awk ]; then
  echo awk is `/usr/bin/awk --version | head -n1`
else
  echo "awk not found"
fi

gcc --version | head -n1
g++ --version | head -n1
ldd --version | head -n1 | cut -d" " -f2-  # glibc version
grep --version | head -n1
gzip --version | head -n1
cat /proc/version
m4 --version | head -n1
make --version | head -n1
patch --version | head -n1
echo Perl `perl -V:version`
python3 --version
sed --version | head -n1
tar --version | head -n1
makeinfo --version | head -n1  # texinfo version
xz --version | head -n1

echo 'int main(){}' > dummy.c && g++ -o dummy dummy.c
if [ -x dummy ]
  then echo "g++ compilation OK";
  else echo "g++ compilation failed"; fi
rm -f dummy.c dummy

EOF

bash version-check.sh

Предупреждение

Внимательно изучите результат выполнения. В нём не должно встречаться строк, содержащих ERROR, command not found, failed.

Ошибочный результат:

bash, version 5.0.17(1)-release
/bin/sh -> /usr/bin/dash
ERROR: /bin/sh does not point to bash
Binutils: version-check.sh: line 12: ld: command not found
version-check.sh: line 13: bison: command not found
yacc not found
bzip2, Version 1.0.8, 13-Jul-2019.
Coreutils: 8.32
diff (GNU diffutils) 3.7
find (GNU findutils) 4.7.0
version-check.sh: line 27: gawk: command not found
/usr/bin/awk -> /usr/bin/mawk
version-check.sh: line 37: gcc: command not found
version-check.sh: line 38: g++: command not found
(Ubuntu GLIBC 2.32-0ubuntu3) 2.32
grep (GNU grep) 3.4
gzip 1.10
Linux version 5.8.0-25-generic (buildd@lcy01-amd64-022) (gcc (Ubuntu 10.2.0-13ubuntu1) 10.2.0, GNU ld (GNU Binutils for Ubuntu) 2.35.1) #26-Ubuntu SMP Thu Oct 15 10:30:38 UTC 2020
version-check.sh: line 43: m4: command not found
version-check.sh: line 44: make: command not found
GNU patch 2.7.6
Perl version='5.30.3';
Python 3.8.6
sed (GNU sed) 4.7
tar (GNU tar) 1.30
version-check.sh: line 50: makeinfo: command not found
xz (XZ Utils) 5.2.4
version-check.sh: line 53: g++: command not found
g++ compilation failed

Успешный результат:

bash, version 5.0.0(1)-release
/bin/sh -> /bin/bash
Binutils: (GNU Binutils) 2.32
bison (GNU Bison) 3.4.1
yacc is bison (GNU Bison) 3.4.1
bzip2, Version 1.0.8, 13-Jul-2019.
Coreutils: 8.31
diff (GNU diffutils) 3.7
find (GNU findutils) 4.6.0
GNU Awk 5.0.1, API: 2.0 (GNU MPFR 4.0.2, GNU MP 6.1.2)
/usr/bin/awk -> /usr/bin/gawk
gcc (GCC) 9.2.0
g++ (GCC) 9.2.0
(GNU libc) 2.30
grep (GNU grep) 3.3
gzip 1.10
m4 (GNU M4) 1.4.18
GNU Make 4.2.1
GNU patch 2.7.6
Perl version='5.30.0';
Python 3.7.4
sed (GNU sed) 4.7
tar (GNU tar) 1.32
texi2any (GNU texinfo) 6.6
xz (XZ Utils) 5.2.4
g++ compilation OK
К началу