8.31.1. Установка пакета Ncurses
        
        
          Подготовьте Ncurses к компиляции:
        
        ./configure --prefix=/usr           \
            --mandir=/usr/share/man \
            --with-shared           \
            --without-debug         \
            --without-normal        \
            --with-cxx-shared       \
            --enable-pc-files       \
            --with-pkg-config-libdir=/usr/lib/pkgconfig
        
          
            Значение новых параметров настройки:
          
          
            - 
              --with-shared
- 
              
                Этот параметр позволяет Ncurses собирать и устанавливать
                общие библиотеки C.
               
- 
              --without-normal
- 
              
                Этот параметр отключает сборку и установку большинства
                статических библиотек C.
               
- 
              --without-debug
- 
              
                Этот параметр предотвращает сборку и установку отладочных
                библиотек.
               
- 
              --with-cxx-shared
- 
              
                Это аргумент позволяет Ncurses собирать и устанавливать общие
                привязки C++. А также предотвращает сборку и установку
                статических привязок C++.
               
- 
              --enable-pc-files
- 
              
                Этот параметр генерирует и устанавливает файлы .pc для
                pkg-config.
               
 
        
          Скомпилируйте пакет:
        
        make
        
          У этого пакета есть набор тестов, но его можно запустить только
          после того, как пакет будет установлен. Тесты находятся в каталоге
          test/. Дополнительные сведения
          смотрите в файле README в этом
          каталоге.
        
        
          Установка этого пакета приведет к перезаписи libncursesw.so.6.5. Это может привести к сбою
          процесса оболочки, который использует код и данные из файла
          библиотеки. Установите пакет с помощью DESTDIR и правильно замените файл библиотеки с
          помощью команды install(также отредактирован
          заголовочный файл curses.h, чтобы
          обеспечить использование ABI расширенного набора символов, как это
          сделано в Раздел 6.3, «Ncurses-6.5»).
        
        make DESTDIR=$PWD/dest install
install -vm755 dest/usr/lib/libncursesw.so.6.5 /usr/lib
rm -v  dest/usr/lib/libncursesw.so.6.5
sed -e 's/^#if.*XOPEN.*$/#if 1/' \
    -i dest/usr/include/curses.h
cp -av dest/* /
        
          Многие приложения ожидают, что компоновщик может найти библиотеки
          Ncurses, не поддерживающие расширенный набор символов. Используя
          трюк ниже, свяжите такие приложения с библиотеками расширенного
          набора символов с помощью символических ссылок (обратите внимание,
          что ссылки .so безопасны только в том
          случае, если curses.h отредактирован
          так, чтобы всегда использовать ABI расширенного набора символов):
        
        for lib in ncurses form panel menu ; do
    ln -sfv lib${lib}w.so /usr/lib/lib${lib}.so
    ln -sfv ${lib}w.pc    /usr/lib/pkgconfig/${lib}.pc
done
        
          Убедитесь, что старые приложения, которым нужна -lcurses для сборки, собираются правильно:
        
        ln -sfv libncursesw.so /usr/lib/libcurses.so
        
          По желанию установите документацию Ncurses:
        
        cp -v -R doc -T /usr/share/doc/ncurses-6.5
        
          ![[Примечание]](../images/note.png) 
          
            Примечание
          
          
            С помощью приведенных выше инструкций не создаются библиотеки
            Ncurses, не использующие расширенный набор символов, поскольку ни
            один пакет, установленный путем компиляции из исходного кода, не
            будет связан с ними во время выполнения. Тем не менее, известно
            что некоторые бинарные приложения, которые связаны с библиотекой
            Ncurses и не поддерживающие расширенный набор символов, требуют
            наличия версии 5. Если вам необходимо иметь такие библиотеки
            из-за какого-либо приложения, имеющегося только в бинарном виде,
            или для обеспечения совместимости с LSB, соберите пакет с помощью
            следующих команд:
          
          make distclean
./configure --prefix=/usr    \
            --with-shared    \
            --without-normal \
            --with-cxx-shared \
            --without-debug  \
            --without-cxx-binding \
            --with-abi-version=5
make sources libs
cp -av lib/lib*.so.5* /usr/lib
         
       
      
        
          8.31.2. Сборка Ncurses - 32-битная версия
        
        
          Выполните очистку после предыдущей сборки:
        
        make distclean
        
          Подготовьте Ncurses к компиляции:
        
        CC="gcc -m32" CXX="g++ -m32" \
./configure --prefix=/usr           \
            --host=i686-pc-linux-gnu \
            --libdir=/usr/lib32     \
            --mandir=/usr/share/man \
            --with-shared           \
            --without-debug         \
            --without-normal        \
            --with-cxx-shared       \
            --enable-pc-files       \
            --with-pkg-config-libdir=/usr/lib32/pkgconfig
        
          Скомпилируйте пакет:
        
        make
        
          Установите пакет:
        
        make DESTDIR=$PWD/DESTDIR install
mkdir -p DESTDIR/usr/lib32/pkgconfig
for lib in ncurses form panel menu ; do
    rm -vf                    DESTDIR/usr/lib32/lib${lib}.so
    echo "INPUT(-l${lib}w)" > DESTDIR/usr/lib32/lib${lib}.so
    ln -svf ${lib}w.pc        DESTDIR/usr/lib32/pkgconfig/$lib.pc
done
rm -vf                     DESTDIR/usr/lib32/libcursesw.so
echo "INPUT(-lncursesw)" > DESTDIR/usr/lib32/libcursesw.so
ln -sfv libncurses.so      DESTDIR/usr/lib32/libcurses.so
cp -Rv DESTDIR/usr/lib32/* /usr/lib32
rm -rf DESTDIR