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

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

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

  • software:linux_server:lfs-example:chapter04

    Различия

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

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

    Предыдущая версия справа и слеваПредыдущая версия
    Следующая версия
    Предыдущая версия
    software:linux_server:lfs-example:chapter04 [2024/07/12 17:26] – [4.3. Создание пользователя LFS] vladpolskiysoftware:linux_server:lfs-example:chapter04 [2024/07/19 03:39] (текущий) – [4.4. Настройка окружения] vladpolskiy
    Строка 1: Строка 1:
     ======Часть II. Глава 4. Заключительный этап подготовки====== ======Часть II. Глава 4. Заключительный этап подготовки======
    -  * [[software:linux_server:lfs-example:chapter03|<- назад]]+  * Пред. [[software:linux_server:lfs-example:chapter03|]]
     Содержание Содержание
       * [[software:linux_server:lfs:chapter04#4.1. Введение|4.1. Введение]]   * [[software:linux_server:lfs:chapter04#4.1. Введение|4.1. Введение]]
    Строка 13: Строка 13:
     В этой главе мы выполним несколько дополнительных настроек для подготовки к сборке временной системы. Мы создадим несколько каталогов в $LFS (в котором установим временные инструменты), добавим непривилегированного пользователя и настроим окружение для этого пользователя. Кроме этого, будут даны пояснения по стандартной единице времени сборки, или «SBU», которую мы используем для измерения времени необходимого для сборки пакетов LFS, и предоставим некоторую информацию о наборах тестов. В этой главе мы выполним несколько дополнительных настроек для подготовки к сборке временной системы. Мы создадим несколько каталогов в $LFS (в котором установим временные инструменты), добавим непривилегированного пользователя и настроим окружение для этого пользователя. Кроме этого, будут даны пояснения по стандартной единице времени сборки, или «SBU», которую мы используем для измерения времени необходимого для сборки пакетов LFS, и предоставим некоторую информацию о наборах тестов.
      
     +<code>
     +sudo su
     +</code>
     +{{:software:linux_server:lfs-example:lfs_example_102.png?|}}
     =====4.2. Создание ограниченной иерархии папок в файловой системе LFS===== =====4.2. Создание ограниченной иерархии папок в файловой системе LFS=====
      
    Строка 18: Строка 22:
      
     Создайте необходимую иерархию каталогов, выполнив следующую команду: Создайте необходимую иерархию каталогов, выполнив следующую команду:
    -{{:software:linux_server:lfs-example:lfs_example_46.png?|}} 
     <code> <code>
    -sudo mkdir -pv $LFS/{etc,var} $LFS/usr/{bin,lib,sbin} +mkdir -pv $LFS/{etc,var} $LFS/usr/{bin,lib,sbin} 
     +</code> 
     +{{:software:linux_server:lfs-example:lfs_example_104.png?|}} 
     +<code>
     for i in bin lib sbin; do for i in bin lib sbin; do
       ln -sv usr/$i $LFS/$i   ln -sv usr/$i $LFS/$i
     done done
     +</code> 
     +{{:software:linux_server:lfs-example:lfs_example_105.png?|}} 
     +<code>
     case $(uname -m) in case $(uname -m) in
       x86_64) mkdir -pv $LFS/lib64 ;;   x86_64) mkdir -pv $LFS/lib64 ;;
     esac esac
     </code> </code>
    -{{:software:linux_server:lfs-example:lfs_example_46.png?|}}+{{:software:linux_server:lfs-example:lfs_example_106.png?|}} 
     +Проверим созданные ссылки и каталоги 
     +<code> 
     +ls -l $LFS 
     +</code> 
     +{{:software:linux_server:lfs-example:lfs_example_107.png?|}} 
     +{{:software:linux_server:lfs-example:lfs_example_108.png?|}}
     Программы в [[software:linux_server:lfs:chapter06|Главе 6]] будут скомпилированы с помощью кросс-компилятора (более подробная информация приведена в разделе [[software:linux_server:lfs:partintro#ii. Технические примечания по сборочным инструментам|Технические примечания по сборочным инструментам]]). Чтобы отделить кросс-компилятор от других программ, он будет установлен в специальный каталог. Создайте этот каталог с помощью следующей команды: Программы в [[software:linux_server:lfs:chapter06|Главе 6]] будут скомпилированы с помощью кросс-компилятора (более подробная информация приведена в разделе [[software:linux_server:lfs:partintro#ii. Технические примечания по сборочным инструментам|Технические примечания по сборочным инструментам]]). Чтобы отделить кросс-компилятор от других программ, он будет установлен в специальный каталог. Создайте этот каталог с помощью следующей команды:
      
     <code> <code>
    -sudo mkdir -pv $LFS/tools+mkdir -pv $LFS/tools
     </code> </code>
     {{:software:linux_server:lfs-example:lfs_example_48.png?|}} {{:software:linux_server:lfs-example:lfs_example_48.png?|}}
    Строка 46: Строка 59:
     <WRAP left round tip 100%> <WRAP left round tip 100%>
     **Примечание** \\   **Примечание** \\  
    -Директория **lost+found** которую мы не создавали, была создана утилитой fsck, которая предназначена для проверки файловой системы.+Директория **lost+found** которую мы не создавали, может быть создана утилитой fsck, которая предназначена для проверки файловой системы.
     Если утилита fsck в ходе проверки находит данные в файловой системе, которые повреждены или не имеют имени в системе («осиротевшие»), то такие файлы помещаются в директорию lost+found. Если утилита fsck в ходе проверки находит данные в файловой системе, которые повреждены или не имеют имени в системе («осиротевшие»), то такие файлы помещаются в директорию lost+found.
      
    Строка 53: Строка 66:
     Чтобы просмотреть содержимое директории **lost+found** можно воспользоваться следующими командами: Чтобы просмотреть содержимое директории **lost+found** можно воспользоваться следующими командами:
     <code> <code>
    -sudo ls -l $LFS/lost+found+ls -l $LFS/lost+found
     </code> </code>
     </WRAP> </WRAP>
    Строка 77: Строка 90:
      
     <code> <code>
    -sudo groupadd lfs +groupadd lfs 
    -sudo useradd -s /bin/bash -g lfs -m -k /dev/null lfs+useradd -s /bin/bash -g lfs -m -k /dev/null lfs
     </code> </code>
     {{:software:linux_server:lfs-example:lfs_example_53.png?|}} {{:software:linux_server:lfs-example:lfs_example_53.png?|}}
    Строка 107: Строка 120:
      
     <code> <code>
    -sudo passwd lfs+passwd lfs
     </code> </code>
     {{:software:linux_server:lfs-example:lfs_example_55.png?|}} {{:software:linux_server:lfs-example:lfs_example_55.png?|}}
    Строка 113: Строка 126:
      
     <code> <code>
    -sudo chown -v lfs $LFS/{var,usr{,/*},tools,sources,etc}+chown -v lfs $LFS/{usr{,/*},lib,var,etc,bin,sbin,tools} 
     +</code> 
     +{{:software:linux_server:lfs-example:lfs_example_109.png?|}} 
     +<code> 
     +case $(uname -m) in 
     +  x86_64) chown -v lfs $LFS/lib64 ;; 
     +esac
     </code> </code>
     {{:software:linux_server:lfs-example:lfs_example_56.png?|}} {{:software:linux_server:lfs-example:lfs_example_56.png?|}}
    Строка 145: Строка 164:
      
     При входе в систему под учетной записью пользователя lfs или при переключении на lfs, используя команду su с опцией «-», начальная оболочка представляет собой оболочку login, которая читает данные из /etc/profile хоста (который, вероятно, содержит некоторые настройки и переменные среды), а затем .bash_profile. Команда exec env -i.../bin/bash в файле .bash_profile заменяет запущенную оболочку новой, не содержащей переменные среды, за исключением переменных HOME, TERM, и PS1. Это гарантирует, что никакие нежелательные и потенциально опасные переменные среды из хост-системы не попадут в среду сборки. При входе в систему под учетной записью пользователя lfs или при переключении на lfs, используя команду su с опцией «-», начальная оболочка представляет собой оболочку login, которая читает данные из /etc/profile хоста (который, вероятно, содержит некоторые настройки и переменные среды), а затем .bash_profile. Команда exec env -i.../bin/bash в файле .bash_profile заменяет запущенную оболочку новой, не содержащей переменные среды, за исключением переменных HOME, TERM, и PS1. Это гарантирует, что никакие нежелательные и потенциально опасные переменные среды из хост-системы не попадут в среду сборки.
     +{{:software:linux_server:lfs-example:lfs_example_59.png?|}}
     Новый экземпляр оболочки представляет собой non-login оболочку, которая не считывает и не выполняет содержимое файлов /etc/profile и .bash_profile, а вместо этого выполняет чтение из файла .bashrc. Создайте файл .bashrc: Новый экземпляр оболочки представляет собой non-login оболочку, которая не считывает и не выполняет содержимое файлов /etc/profile и .bash_profile, а вместо этого выполняет чтение из файла .bashrc. Создайте файл .bashrc:
      
    Строка 162: Строка 181:
     EOF EOF
     </code> </code>
    - +<details> 
    -**Значение настроек в .bashrc**+<summary>«**Список значения настроек в .bashrc**»</summary>
      
       * **set +h**   * **set +h**
    Строка 194: Строка 213:
       * **export ...**   * **export ...**
     Приведенные выше команды установили некоторые переменные, чтобы сделать их видимыми в любых вложенных оболочках, мы экспортируем их. Приведенные выше команды установили некоторые переменные, чтобы сделать их видимыми в любых вложенных оболочках, мы экспортируем их.
     +</details>
     +{{:software:linux_server:lfs-example:lfs_example_60.png?|}}
      
     <WRAP left round important 100%> <WRAP left round important 100%>
     **Важно** \\   **Важно** \\  
     Некоторые коммерческие дистрибутивы добавляют недокументированный экземпляр /etc/bash.bashrc для инициализации bash. Этот файл потенциально может изменить среду пользователя lfs таким образом, что это может повлиять на сборку важных пакетов LFS. Чтобы убедиться, что пользовательская среда lfs чиста, проверьте наличие файла /etc/bash.bashrc и, если он есть, переименуйте его. От имени пользователя root, запустите: Некоторые коммерческие дистрибутивы добавляют недокументированный экземпляр /etc/bash.bashrc для инициализации bash. Этот файл потенциально может изменить среду пользователя lfs таким образом, что это может повлиять на сборку важных пакетов LFS. Чтобы убедиться, что пользовательская среда lfs чиста, проверьте наличие файла /etc/bash.bashrc и, если он есть, переименуйте его. От имени пользователя root, запустите:
     +<code> 
     +exit 
     +</code>
     <code> <code>
     [ ! -e /etc/bash.bashrc ] || mv -v /etc/bash.bashrc /etc/bash.bashrc.NOUSE [ ! -e /etc/bash.bashrc ] || mv -v /etc/bash.bashrc /etc/bash.bashrc.NOUSE
     </code> </code>
     +{{:software:linux_server:lfs-example:lfs_example_62.png?|}}
     Когда пользователь lfs больше не нужен (в начале [[software:linux_server:lfs:chapter07|Главы 7]]) вы можете безопасно восстановить /etc/bash.bashrc (по желанию). Когда пользователь lfs больше не нужен (в начале [[software:linux_server:lfs:chapter07|Главы 7]]) вы можете безопасно восстановить /etc/bash.bashrc (по желанию).
      
    Строка 219: Строка 242:
     export MAKEFLAGS=-j32 export MAKEFLAGS=-j32
     </code> </code>
     +Посмотрим данные о процессоре 
     +<code> 
     +sudo apt-get install hwinfo   
     +hwinfo --short 
     +</code> 
     +{{:software:linux_server:lfs-example:lfs_example_64.png?|}} 
     +На тестовой машине установлен AMD Ryzen 7 3700X 8-Core Processor  
     +{{:software:linux_server:lfs-example:lfs_example_65.png?|}} 
     +Откроем файл ~/.bashrc в редакторе nano 
     +<code> 
     +nano ~/.bashrc 
     +</code> 
     +{{:software:linux_server:lfs-example:lfs_example_111.png?|}} 
     +Добавим в конце нашу строку **export MAKEFLAGS=-j32** 
     +{{:software:linux_server:lfs-example:lfs_example_110.png?|}} 
     +CTRL+O -> ENTER -> CTRL+X для сохранения и выхода из редактора 
     +<code> 
     +nproc 
     +</code> 
     +{{:software:linux_server:lfs-example:lfs_example_112.png?|}}
     <WRAP left round important 100%> <WRAP left round important 100%>
     **Важно** \\   **Важно** \\  
    Строка 229: Строка 271:
     <code> <code>
     cat >> ~/.bashrc << "EOF" cat >> ~/.bashrc << "EOF"
    -export MAKEFLAGS=-j$(nproc)+export MAKEFLAGS=-j32
     EOF EOF
     </code> </code>
     +{{:software:linux_server:lfs-example:lfs_example_113.png?|}}
     Замените **$(nproc)** количеством логических ядер, которые вы хотите использовать, если вы планируете использовать не все логические ядра. Замените **$(nproc)** количеством логических ядер, которые вы хотите использовать, если вы планируете использовать не все логические ядра.
      
     Наконец, чтобы убедиться, что среда полностью подготовлена для сборки временных инструментов, перечитайте только что созданный профиль пользователя: Наконец, чтобы убедиться, что среда полностью подготовлена для сборки временных инструментов, перечитайте только что созданный профиль пользователя:
     +Перейдем к пользователю lfs 
     +<code> 
     +su - lfs 
     +</code>
     <code> <code>
     source ~/.bash_profile source ~/.bash_profile
     </code> </code>
     +<code> 
     +echo $MAKEFLAGS 
     +</code> 
     +{{:software:linux_server:lfs-example:lfs_example_114.png?|}} 
     +Посмотрим что внутри нашего файла .bash_profile 
     +<code> 
     +nano ~/.bash_profile 
     +</code> 
     +{{:software:linux_server:lfs-example:lfs_example_69.png?|}} 
     +Жмем CTRL+X для выхода из редактора nano 
     +{{:software:linux_server:lfs-example:lfs_example_68.png?|}} 
     +<code> 
     +exit 
     +</code> 
     +{{:software:linux_server:lfs-example:lfs_example_114.1.png?|}}
     =====4.5. О SBU (Стандартная единица времени сборки)===== =====4.5. О SBU (Стандартная единица времени сборки)=====
      
    Строка 271: Строка 330:
      
     Иногда наборы тестов не работают, по причинам, о которых знают разработчики и которые они считают некритичными. Просмотрите журналы, расположенные по адресу https://mirror.linuxfromscratch.ru/lfs/build-logs/12.1/, чтобы проверить, ожидаются ли сбои. Этот сайт актуален для всех наборов тестов, описанных в книге. Иногда наборы тестов не работают, по причинам, о которых знают разработчики и которые они считают некритичными. Просмотрите журналы, расположенные по адресу https://mirror.linuxfromscratch.ru/lfs/build-logs/12.1/, чтобы проверить, ожидаются ли сбои. Этот сайт актуален для всех наборов тестов, описанных в книге.
     +  * След. [[software:linux_server:lfs-example:chapter05|]]
    software/linux_server/lfs-example/chapter04.1720794396.txt.gz · Последнее изменение: 2024/07/12 17:26 — vladpolskiy