Инструменты пользователя

Инструменты сайта

  • Показать страницу
  • История страницы
  • Ссылки сюда
  • Оставить на чай
  • Экспорт в PDF
  • Наверх

  • software:linux_server:lfs-example:chapter06

    Различия

    Показаны различия между двумя версиями страницы.

    Ссылка на это сравнение

    Предыдущая версия справа и слеваПредыдущая версия
    Следующая версия
    Предыдущая версия
    software:linux_server:lfs-example:chapter06 [2024/07/15 11:50] – [6.15.1. Установка пакета Tar] vladpolskiysoftware:linux_server:lfs-example:chapter06 [2024/07/15 14:18] (текущий) – [6.18.1. Установка пакета GCC] vladpolskiy
    Строка 609: Строка 609:
      
     ====6.16.1. Установка пакета Xz==== ====6.16.1. Установка пакета Xz====
     +Запустим скрипт который сделает за нас всю работу по установке пакета xz
      
    -Подготовьте Xz к компиляции:+<code> 
     +#!/bin/bash 
     +SRC_FILE=xz-5.4.6.tar.xz 
     +SRC_FOLDER=xz-5.4.6 
     + 
     +tar -xvf $SRC_FILE 
     +cd $SRC_FOLDER
      
    -<code>+time {
     ./configure --prefix=/usr                     \ ./configure --prefix=/usr                     \
                 --host=$LFS_TGT                   \             --host=$LFS_TGT                   \
                 --build=$(build-aux/config.guess) \             --build=$(build-aux/config.guess) \
                 --disable-static                  \             --disable-static                  \
    -            --docdir=/usr/share/doc/xz-5.4.6 +            --docdir=/usr/share/doc/xz-5.4.6 && 
    -</code>+time make && 
     +make DESTDIR=$LFS install; } && 
     +rm -v $LFS/usr/lib/liblzma.la &&
      
    -Скомпилируйте пакет:+cd .. && 
     +rm -rf $SRC_FOLDER &&
      
    -<code> +echo Deleting $SRC_FOLDER 
    -make+echo Done with $SRC_FILE
     </code> </code>
     +<details>
     +<summary>«**Значение команд в скрипте:**»</summary>
     +#Присваеваем значения переменным
     +#Имя ахива для распаковки
     +SRC_FILE=xz-5.4.6.tar.xz
     +#Имя папки после распаковки
     +SRC_FOLDER=xz-5.4.6
      
    -Установите пакет:+tar xvf $SRC_FILE 
     +# Переход в папку xz-5.4.6 
     +cd $SRC_FOLDER
      
    -<code> +# Настройка параметров компеляции
    -make DESTDIR=$LFS install +
    -</code>+
      
    -Удалите архивный файл libtool, поскольку он потенциально опасен при кросс-компиляции:+./configure --prefix=/usr                     \ 
     +            --host=$LFS_TGT                   \ 
     +            --build=$(build-aux/config.guess) \ 
     +            --disable-static                  \ 
     +            --docdir=/usr/share/doc/xz-5.4.6 
     +#компиляция 
     +time make
      
    -<code>+#установка 
     +make DESTDIR=$LFS install 
     +#Удаление архивного файла libtool
     rm -v $LFS/usr/lib/liblzma.la rm -v $LFS/usr/lib/liblzma.la
    -</code>+ 
     +#Возвращение в папку /sources 
     +cd .. 
     +#Удаление папки xz-5.4.6 
     +rm -rf $SRC_FOLDER 
     +echo Удалена папка $SRC_FOLDER 
     +echo Исполнено $SRC_FILE 
     +</details> 
     +{{:software:linux_server:lfs-example:lfs_example_198.png?|}} 
     +Результат работы скрипта 
     +{{:software:linux_server:lfs-example:lfs_example_199.png?|}}
      
     Подробная информация об этом пакете находится в [[software:linux_server:lfs:chapter08#8.8.2. Содержимое пакета Xz|Разделе 8.8.2. «Содержимое пакета Xz.»]] Подробная информация об этом пакете находится в [[software:linux_server:lfs:chapter08#8.8.2. Содержимое пакета Xz|Разделе 8.8.2. «Содержимое пакета Xz.»]]
    Строка 648: Строка 683:
      
     Система сборки Binutils использует содержащуюся в пакете копию libtool для линковки с внутренними статическими библиотеками, но копии libiberty и zlib, поставляемые с пакетом, не используют libtool. Это несоответствие может привести к тому, что созданные двоичные файлы будут ошибочно связаны с библиотеками из основного дистрибутива. Решение этой проблемы: Система сборки Binutils использует содержащуюся в пакете копию libtool для линковки с внутренними статическими библиотеками, но копии libiberty и zlib, поставляемые с пакетом, не используют libtool. Это несоответствие может привести к тому, что созданные двоичные файлы будут ошибочно связаны с библиотеками из основного дистрибутива. Решение этой проблемы:
     +<code>
     +"sed '6009s/$add_dir//' -i ltmain.sh"
     +</code>
      
     +Снова воспользуемся скриптом для автоматической сборки и установки
     <code> <code>
     +#!/bin/bash
     +SRC_FILE=binutils-2.42.tar.xz
     +SRC_FOLDER=binutils-2.42
     +
     +tar -xvf $SRC_FILE
     +cd $SRC_FOLDER
     +
     sed '6009s/$add_dir//' -i ltmain.sh sed '6009s/$add_dir//' -i ltmain.sh
    -</code> 
      
    -Создайте отдельный каталог для сборки: 
    - 
    -<code> 
     mkdir -v build mkdir -v build
     cd       build cd       build
    -</code> 
    - 
    -Подготовьте Binutils к компиляции: 
      
    -<code>+time {
     ../configure                   \ ../configure                   \
         --prefix=/usr              \     --prefix=/usr              \
    Строка 672: Строка 711:
         --disable-werror           \     --disable-werror           \
         --enable-64-bit-bfd        \     --enable-64-bit-bfd        \
    -    --enable-default-hash-style=gnu+    --enable-default-hash-style=gnu && 
     +time make && 
     +make DESTDIR=$LFS install; } && 
     +rm -v $LFS/usr/lib/lib{bfd,ctf,ctf-nobfd,opcodes,sframe}.{a,la} && 
     + 
     +cd ../.. && 
     +rm -rf $SRC_FOLDER && 
     + 
     +echo Удалена папка $SRC_FOLDER 
     +echo Выполнено для $SRC_FILE
     </code> </code>
      
    Строка 682: Строка 730:
       * **--enable-64-bit-bfd**   * **--enable-64-bit-bfd**
     Включает 64-разрядную поддержку (на хостах с меньшим размером слова). В 64-разрядных системах это может и не понадобиться, но вреда от этого не будет Включает 64-разрядную поддержку (на хостах с меньшим размером слова). В 64-разрядных системах это может и не понадобиться, но вреда от этого не будет
    - +{{:software:linux_server:lfs-example:lfs_example_200.png?|}} 
    -Скомпилируйте пакет: +Сообщение системы после выполнения скрипта 
    - +{{:software:linux_server:lfs-example:lfs_example_201.png?|}}
    -<code> +
    -make +
    -</code> +
    - +
    -Установите пакет: +
    - +
    -<code> +
    -make DESTDIR=$LFS install +
    -</code> +
    - +
    -Удалите архивные файлы libtool, поскольку они потенциально опасны при кросс-компиляции, также удалите ненужные статические библиотеки +
    - +
    -<code> +
    -rm -v $LFS/usr/lib/lib{bfd,ctf,ctf-nobfd,opcodes,sframe}.{a,la} +
    -</code> +
     Подробная информация об этом пакете находится в [[software:linux_server:lfs:chapter08#8.19.2. Содержимое пакета Binutils|Разделе 8.19.2. «Содержимое пакета Binutils.»]] Подробная информация об этом пакете находится в [[software:linux_server:lfs:chapter08#8.19.2. Содержимое пакета Binutils|Разделе 8.19.2. «Содержимое пакета Binutils.»]]
      
    Строка 805: Строка 837:
     </code> </code>
      
    -Подробная информация об этом пакете находится в [[software:linux_server:lfs:chapter08#8.28.2. Содержимое пакета GCC|Разделе 8.28.2. «Содержимое пакета GCC.»]]+Снова собираем скрипт для автоматической сборки и установки 
     +<code> 
     +#!/bin/bash 
     +SRC_FILE=gcc-13.2.0.tar.xz 
     +SRC_FOLDER=gcc-13.2.0
      
     +tar -xvf $SRC_FILE
     +cd $SRC_FOLDER
     +
     +tar -xf ../mpfr-4.2.1.tar.xz
     +mv -v mpfr-4.2.1 mpfr
     +tar -xf ../gmp-6.3.0.tar.xz
     +mv -v gmp-6.3.0 gmp
     +tar -xf ../mpc-1.3.1.tar.gz
     +mv -v mpc-1.3.1 mpc
     +
     +case $(uname -m) in
     +  x86_64)
     +    sed -e '/m64=/s/lib64/lib/' \
     +        -i.orig gcc/config/i386/t-linux64
     +  ;;
     +esac
     +
     +sed '/thread_header =/s/@.*@/gthr-posix.h/' \
     +    -i libgcc/Makefile.in libstdc++-v3/include/Makefile.in
     +
     +mkdir -v build
     +cd       build
     +
     +time {
     +../configure                                       \
     +    --build=$(../config.guess)                     \
     +    --host=$LFS_TGT                                \
     +    --target=$LFS_TGT                              \
     +    LDFLAGS_FOR_TARGET=-L$PWD/$LFS_TGT/libgcc      \
     +    --prefix=/usr                                  \
     +    --with-build-sysroot=$LFS                      \
     +    --enable-default-pie                           \
     +    --enable-default-ssp                           \
     +    --disable-nls                                  \
     +    --disable-multilib                             \
     +    --disable-libatomic                            \
     +    --disable-libgomp                              \
     +    --disable-libquadmath                          \
     +    --disable-libsanitizer                         \
     +    --disable-libssp                               \
     +    --disable-libvtv                               \
     +    --enable-languages=c,c++ &&
     +time make &&
     +make DESTDIR=$LFS install; } &&
     +ln -sv gcc $LFS/usr/bin/cc &&
     +
     +cd ../.. &&
     +rm -rf $SRC_FOLDER &&
     +
     +echo Удалена папка $SRC_FOLDER
     +echo Выполнено для $SRC_FILE
     +</code>
     +{{:software:linux_server:lfs-example:lfs_example_202.png?|}}
     +Вывод после окончания выполнения команд скриптом
     +{{:software:linux_server:lfs-example:lfs_example_203.png?|}}
     +
     +Подробная информация об этом пакете находится в [[software:linux_server:lfs:chapter08#8.28.2. Содержимое пакета GCC|Разделе 8.28.2. «Содержимое пакета GCC.»]]
     +  * [[software:linux_server:lfs-example:chapter07|]]
    software/linux_server/lfs-example/chapter06.1721033418.txt.gz · Последнее изменение: 2024/07/15 11:50 — vladpolskiy