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

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

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

  • software:linux_server:lfs-example:chapter06

    Различия

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

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

    Предыдущая версия справа и слеваПредыдущая версия
    Следующая версия
    Предыдущая версия
    software:linux_server:lfs-example:chapter06 [2024/07/15 10:22] – [6.6.1. Установка пакета Diffutils] vladpolskiysoftware:linux_server:lfs-example:chapter06 [2024/07/15 14:18] (текущий) – [6.18.1. Установка пакета GCC] vladpolskiy
    Строка 419: Строка 419:
     |Требуемое дисковое пространство:|42 MB| |Требуемое дисковое пространство:|42 MB|
      
    -====6.6.1. Установка пакета Diffutils====+====6.8.1. Установка пакета Findutils====
     Разорхивируем,подготовим файл для компиляции, скомпилируем, установите пакет и удалим временный каталог: Разорхивируем,подготовим файл для компиляции, скомпилируем, установите пакет и удалим временный каталог:
     <code> <code>
     tar -xvf findutils-4.9.0.tar.xz && cd findutils-4.9.0 && tar -xvf findutils-4.9.0.tar.xz && cd findutils-4.9.0 &&
    -time { /configure --prefix=/usr             \+time { ./configure --prefix=/usr             \
                 --localstatedir=/var/lib/locate \             --localstatedir=/var/lib/locate \
                 --host=$LFS_TGT                 \             --host=$LFS_TGT                 \
    Строка 433: Строка 433:
     Результат выполнения команд Результат выполнения команд
     {{:software:linux_server:lfs-example:lfs_example_181.png?|}} {{:software:linux_server:lfs-example:lfs_example_181.png?|}}
    -Подробная информация об этом пакете находится в [[software:linux_server:lfs:chapter08#8.59.2. Содержимое пакета Diffutils|Разделе 8.59.2. «Содержимое пакета Diffutils.»]] 
    - 
    -====6.8.1. Установка пакета Findutils==== 
    - 
    -Подготовьте Findutils к компиляции: 
    - 
    -<code> 
    -./configure --prefix=/usr                   \ 
    -            --localstatedir=/var/lib/locate \ 
    -            --host=$LFS_TGT                 \ 
    -            --build=$(build-aux/config.guess) 
    -</code> 
    - 
    -Скомпилируйте пакет: 
    - 
    -<code> 
    -make 
    -</code> 
    - 
    -Установите пакет: 
    - 
    -<code> 
    -make DESTDIR=$LFS install 
    -</code> 
    - 
     Подробная информация об этом пакете находится в [[software:linux_server:lfs:chapter08#8.61.2. Содержимое пакета Findutils|Разделе 8.61.2. «Содержимое пакета Findutils.»]] Подробная информация об этом пакете находится в [[software:linux_server:lfs:chapter08#8.61.2. Содержимое пакета Findutils|Разделе 8.61.2. «Содержимое пакета Findutils.»]]
      
    Строка 468: Строка 443:
      
     ====6.9.1. Установка пакета Gawk==== ====6.9.1. Установка пакета Gawk====
    - +Разорхивируем и убедимся, что некоторые ненужные файлы не будут установлены:
    -Во-первыхубедитесь, что некоторые ненужные файлы не будут установлены: +
     <code> <code>
     +tar -xvf gawk-5.3.0.tar.xz && cd gawk-5.3.0 &&
     sed -i 's/extras//' Makefile.in sed -i 's/extras//' Makefile.in
     </code> </code>
    - +{{:software:linux_server:lfs-example:lfs_example_182.png?|}} 
    - +Результат выполнения команды 
    -Подготовьте Gawk к компиляции: +{{:software:linux_server:lfs-example:lfs_example_183.png?|}} 
     +подготовим файл для компиляции, скомпилируем, установите пакет и удалим временный каталог:
     <code> <code>
    -./configure --prefix=/usr   \ +time { ./configure --prefix=/usr   \ 
    -            --host=$LFS_TGT \ +            --host=$LFS_TGT        
    -            --build=$(build-aux/config.guess) +            --build=$(build-aux/config.guess) && time make && make DESTDIR=$LFS install; } && 
    -</code> +cd .. &&  
    - +rm -Rf gawk-5.3.0
    -Скомпилируйте пакет: +
    - +
    -<code> +
    -make +
    -</code> +
    - +
    -Установите пакет: +
    - +
    -<code> +
    -make DESTDIR=$LFS install+
     </code> </code>
     +{{:software:linux_server:lfs-example:lfs_example_184.png?|}}
     +Результат выполнения команд
     +{{:software:linux_server:lfs-example:lfs_example_185.png?|}}
      
     Подробная информация об этом пакете находится в [[software:linux_server:lfs:chapter08#8.60.2. Содержимое пакета Gawk|Разделе 8.60.2. «Содержимое пакета Gawk.»]] Подробная информация об этом пакете находится в [[software:linux_server:lfs:chapter08#8.60.2. Содержимое пакета Gawk|Разделе 8.60.2. «Содержимое пакета Gawk.»]]
    Строка 506: Строка 473:
     ====6.10.1. Установка пакета Grep==== ====6.10.1. Установка пакета Grep====
      
    -Подготовьте Grep к компиляции: +Разорхивируем,подготовим файл для компиляции, скомпилируем, установите пакет и удалим временный каталог:
     <code> <code>
    -./configure --prefix=/usr   \+tar -xvf grep-3.11.tar.xz && cd grep-3.11 && 
     +time { ./configure --prefix=/usr   \
                 --host=$LFS_TGT \             --host=$LFS_TGT \
    -            --build=$(./build-aux/config.guess) +            --build=$(./build-aux/config.guess) && time make && make DESTDIR=$LFS install; } && 
    -</code> +cd .. &&  
    - +rm -Rf grep-3.11
    -Скомпилируйте пакет: +
    - +
    -<code> +
    -make +
    -</code> +
    - +
    -Установите пакет: +
    - +
    -<code> +
    -make DESTDIR=$LFS install+
     </code> </code>
     +{{:software:linux_server:lfs-example:lfs_example_186.png?|}}
     +Результат выполнения команд
     +{{:software:linux_server:lfs-example:lfs_example_187.png?|}}
      
     Подробная информация об этом пакете находится в [[software:linux_server:lfs:chapter08#8.34.2. Содержимое пакета Grep|Разделе 8.34.2. «Содержимое пакета Grep.»]] Подробная информация об этом пакете находится в [[software:linux_server:lfs:chapter08#8.34.2. Содержимое пакета Grep|Разделе 8.34.2. «Содержимое пакета Grep.»]]
    Строка 535: Строка 495:
      
     ====6.11.1. Установка пакета Gzip==== ====6.11.1. Установка пакета Gzip====
    - +Разорхивируем,подготовим файл для компиляции, скомпилируем, установите пакет и удалим временный каталог:
    -Подготовьте Gzip к компиляции: +
     <code> <code>
    -./configure --prefix=/usr --host=$LFS_TGT +tar -xvf gzip-1.13.tar.xz && cd gzip-1.13 && 
    -</code> +time { ./configure --prefix=/usr --host=$LFS_TGT && time make && make DESTDIR=$LFS install; } && 
    - +cd .. &&  
    -Скомпилируйте пакет: +rm -Rf gzip-1.13
    - +
    -<code> +
    -make +
    -</code> +
    - +
    -Установите пакет: +
    - +
    -<code> +
    -make DESTDIR=$LFS install+
     </code> </code>
     +{{:software:linux_server:lfs-example:lfs_example_188.png?|}}
     +Результат выполнения команд
     +{{:software:linux_server:lfs-example:lfs_example_189.png?|}}
      
     Подробная информация об этом пакете находится в [[software:linux_server:lfs:chapter08#8.64.2. Содержимое пакета Gzip|Разделе 8.64.2. «Содержимое пакета Gzip.»]] Подробная информация об этом пакете находится в [[software:linux_server:lfs:chapter08#8.64.2. Содержимое пакета Gzip|Разделе 8.64.2. «Содержимое пакета Gzip.»]]
    Строка 563: Строка 515:
      
     ====6.12.1. Установка пакета Make==== ====6.12.1. Установка пакета Make====
    - +Разорхивируем,подготовим файл для компиляции, скомпилируем, установите пакет и удалим временный каталог:
    -Подготовьте Make к компиляции: +
     <code> <code>
    -./configure --prefix=/usr   \+tar -xvf make-4.4.1.tar.gz && cd make-4.4.1 && 
     +time { ./configure --prefix=/usr   \
                 --without-guile \             --without-guile \
                 --host=$LFS_TGT \             --host=$LFS_TGT \
    -            --build=$(build-aux/config.guess)+            --build=$(build-aux/config.guess) && time make && make DESTDIR=$LFS install; } && 
     +cd .. &&  
     +rm -Rf make-4.4.1
     </code> </code>
     +{{:software:linux_server:lfs-example:lfs_example_190.png?|}} 
     +Результат выполнения команд 
     +{{:software:linux_server:lfs-example:lfs_example_191.png?|}}
     ===Значение новой опции настройки:=== ===Значение новой опции настройки:===
      
       * **--without-guile**   * **--without-guile**
     Несмотря на то, что мы выполняем кросс-компиляцию, configure пытается использовать guile с узла сборки, если он его находит. Это приводит к сбою компиляции, этот аргумент предотвращает его использование. Несмотря на то, что мы выполняем кросс-компиляцию, configure пытается использовать guile с узла сборки, если он его находит. Это приводит к сбою компиляции, этот аргумент предотвращает его использование.
    - 
    -Скомпилируйте пакет: 
    - 
    -<code> 
    -make 
    -</code> 
    - 
    -Установите пакет: 
    - 
    -<code> 
    -make DESTDIR=$LFS install 
    -</code> 
      
     Подробная информация об этом пакете находится в [[software:linux_server:lfs:chapter08#8.68.1. Установка пакета Make|Разделе 8.68.2. «Содержимое пакета Make.»]] Подробная информация об этом пакете находится в [[software:linux_server:lfs:chapter08#8.68.1. Установка пакета Make|Разделе 8.68.2. «Содержимое пакета Make.»]]
    Строка 600: Строка 543:
     ====6.13.1. Установка пакета Patch==== ====6.13.1. Установка пакета Patch====
      
    -Подготовьте Patch к компиляции: +Разорхивируем,подготовим файл для компиляции, скомпилируем, установите пакет и удалим временный каталог:
     <code> <code>
    -./configure --prefix=/usr   \+tar -xvf patch-2.7.6.tar.xz && cd patch-2.7.6 && 
     +time { ./configure --prefix=/usr   \
                 --host=$LFS_TGT \             --host=$LFS_TGT \
    -            --build=$(build-aux/config.guess) +            --build=$(build-aux/config.guess) && time make && make DESTDIR=$LFS install; } && 
    -</code> +cd .. &&  
    - +rm -Rf patch-2.7.6
    -Скомпилируйте пакет: +
    - +
    -<code> +
    -make +
    -</code> +
    - +
    -Установите пакет: +
    - +
    -<code> +
    -make DESTDIR=$LFS install+
     </code> </code>
     +{{:software:linux_server:lfs-example:lfs_example_192.png?|}}
     +Результат выполнения команд
     +{{:software:linux_server:lfs-example:lfs_example_193.png?|}}
      
     Подробная информация об этом пакете находится в [[software:linux_server:lfs:chapter08#8.69.2. Содержимое пакета Patch|Разделе 8.69.2. «Содержимое пакета Patch.»]] Подробная информация об этом пакете находится в [[software:linux_server:lfs:chapter08#8.69.2. Содержимое пакета Patch|Разделе 8.69.2. «Содержимое пакета Patch.»]]
    Строка 630: Строка 566:
     ====6.14.1. Установка пакета Sed==== ====6.14.1. Установка пакета Sed====
      
    -Подготовьте Sed к компиляции: +Разорхивируем,подготовим файл для компиляции, скомпилируем, установите пакет и удалим временный каталог:
     <code> <code>
    -./configure --prefix=/usr   \+tar -xvf sed-4.9.tar.xz && cd sed-4.9 && 
     +time { ./configure --prefix=/usr   \
                 --host=$LFS_TGT \             --host=$LFS_TGT \
    -            --build=$(./build-aux/config.guess) +            --build=$(./build-aux/config.guess) && time make && make DESTDIR=$LFS install; } && 
    -</code> +cd .. &&  
    - +rm -Rf sed-4.9
    -Скомпилируйте пакет: +
    - +
    -<code> +
    -make +
    -</code> +
    - +
    -Установите пакет: +
    - +
    -<code> +
    -make DESTDIR=$LFS install+
     </code> </code>
     +{{:software:linux_server:lfs-example:lfs_example_194.png?|}}
     +Результат выполнения команд
     +{{:software:linux_server:lfs-example:lfs_example_195.png?|}}
      
     Подробная информация об этом пакете находится в [[software:linux_server:lfs:chapter08#8.30.2. Содержимое пакета Sed|Разделе 8.30.2. «Содержимое пакета Sed.»]] Подробная информация об этом пакете находится в [[software:linux_server:lfs:chapter08#8.30.2. Содержимое пакета Sed|Разделе 8.30.2. «Содержимое пакета Sed.»]]
    Строка 659: Строка 588:
     ====6.15.1. Установка пакета Tar==== ====6.15.1. Установка пакета Tar====
      
    -Подготовьте Tar к компиляции: +Разорхивируем,подготовим файл для компиляции, скомпилируем, установите пакет и удалим временный каталог:
     <code> <code>
    -./configure --prefix=/usr                     \+tar -xvf tar-1.35.tar.xz && cd tar-1.35 && 
     +time { ./configure --prefix=/usr                     \
                 --host=$LFS_TGT                   \             --host=$LFS_TGT                   \
    -            --build=$(build-aux/config.guess) +            --build=$(build-aux/config.guess) && time make && make DESTDIR=$LFS install; } && 
    -</code> +cd .. &&  
    - +rm -Rf tar-1.35
    -Скомпилируйте пакет: +
    - +
    -<code> +
    -make +
    -</code> +
    - +
    -Установите пакет: +
    - +
    -<code> +
    -make DESTDIR=$LFS install+
     </code> </code>
     +{{:software:linux_server:lfs-example:lfs_example_196.png?|}}
     +Результат выполнения команд
     +{{:software:linux_server:lfs-example:lfs_example_197.png?|}}
      
     Подробная информация об этом пакете находится в [[software:linux_server:lfs:chapter08#8.70.2. Содержимое пакета Tar|Разделе 8.70.2. «Содержимое пакета Tar.»]] Подробная информация об этом пакете находится в [[software:linux_server:lfs:chapter08#8.70.2. Содержимое пакета Tar|Разделе 8.70.2. «Содержимое пакета Tar.»]]
    Строка 687: Строка 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
      
    -<code>+tar -xvf $SRC_FILE 
     +cd $SRC_FOLDER 
     + 
     +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.»]]
    Строка 726: Строка 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 к компиляции: +time {
    - +
    -<code>+
     ../configure                   \ ../configure                   \
         --prefix=/usr              \     --prefix=/usr              \
    Строка 750: Строка 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>
      
    Строка 760: Строка 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.»]]
      
    Строка 883: Строка 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.1721028153.txt.gz · Последнее изменение: 2024/07/15 10:22 — vladpolskiy