mirror of
https://github.com/Linux4Yourself/book.git
synced 2025-02-03 15:27:17 +08:00
ninja
This commit is contained in:
parent
c4f7e55377
commit
5b4bbd0f2b
@ -110,6 +110,7 @@
|
||||
- [**Выбор системы инициализации**](build-system/init-system)
|
||||
- **SysVinit**
|
||||
- **SystemD**
|
||||
- [Ninja](build-system/ninja)
|
||||
|
||||
- [**Вспомогательные материалы**](additional/additional)
|
||||
- **Строение GNU/Linux**
|
||||
|
73
docs/build-system/ninja.md
Normal file
73
docs/build-system/ninja.md
Normal file
@ -0,0 +1,73 @@
|
||||
<package-info :package="package" showsbu2></package-info>
|
||||
|
||||
<script>
|
||||
new Vue({
|
||||
el: '#main',
|
||||
data: { package: {} },
|
||||
mounted: function () {
|
||||
this.getPackage('ninja');
|
||||
},
|
||||
methods: {
|
||||
getPackage: function(name) {
|
||||
getPackage(name)
|
||||
.then(response => this.package = response);
|
||||
},
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
## Подготовка
|
||||
|
||||
?> Хотя данный пакет предлагается использовать при установке SystemD, однако он может понадобиться при установке многих других пакетов, за пределами создания базовой системы. Вернитесь к этой инструкции по мере необходимости.
|
||||
|
||||
?> `ninja` запускает максимальное количество процессов параллельно. По умолчанию это количество ядер в системе плюс два. В некоторых случаях это может привести к перегреву ЦП или нехватке памяти в системе. При запуске из командной строки передача параметра ``-jN`` ограничит количество параллельных процессов, но некоторые пакеты могут не передавать параметр ``-j``.
|
||||
|
||||
Использование переменной окружения `NINJAJOBS` гарантирует ограничение на количество параллельных процессов.
|
||||
|
||||
Экспортируя эту переменую, укажите требуемое количество процессов, в соответствии с возможностями:
|
||||
|
||||
```bash
|
||||
export NINJAJOBS=4
|
||||
```
|
||||
|
||||
Для того, чтобы задействовать значение переменной `NINJAJOBS`, выполните корректировку:
|
||||
|
||||
```bash
|
||||
sed -i '/int Guess/a \
|
||||
int j = 0;\
|
||||
char* jobs = getenv( "NINJAJOBS" );\
|
||||
if ( jobs != NULL ) j = atoi( jobs );\
|
||||
if ( j > 0 ) return j;\
|
||||
' src/ninja.cc
|
||||
```
|
||||
|
||||
## Сборка
|
||||
|
||||
```bash
|
||||
python3 configure.py --bootstrap
|
||||
```
|
||||
|
||||
### Объяснение параметров
|
||||
|
||||
`--bootstrap` - параметр определяет что необходимо выполнить сборку для данной системы.
|
||||
|
||||
|
||||
## Тестирование
|
||||
|
||||
```bash
|
||||
./ninja ninja_test
|
||||
./ninja_test --gtest_filter=-SubprocessTest.SetWithLots
|
||||
```
|
||||
|
||||
## Установка
|
||||
|
||||
```bash
|
||||
install -vm755 ninja /usr/bin/
|
||||
install -vDm644 misc/bash-completion /usr/share/bash-completion/completions/ninja
|
||||
install -vDm644 misc/zsh-completion /usr/share/zsh/site-functions/_ninja
|
||||
```
|
||||
|
||||
|
||||
## Установленные файлы
|
||||
|
||||
Программы: ``ninja``
|
Loading…
Reference in New Issue
Block a user