2021-07-14 08:51:17 +03:00
# Обновление ALT Linux в ostree
Н а сервере в ветке, из которой была установлена О С в ostree [подробнее о б установке ](alt_on_ostree.md ), создать новый коммит. Для этого внести изменения в каталог root и вызвать ostree commit без параметра --parent=none. Например так:
```
touch root/usr/bin/privet
chmod a+x root/usr/bin/privet
echo "echo Privet" > root/usr/bin/privet
2021-07-19 19:28:31 +03:00
sudo ostree commit --repo=repo --tree=dir=root -b alt/x86_64/coreos/stable --owner-uid 0 --owner-gid 0 --no-xattrs --no-bindings --mode-ro-executables
2021-07-14 08:51:17 +03:00
```
Результат можно будет проверить следующими командами:
```
2021-07-19 19:28:31 +03:00
[keremet@host-15 ~]$ ostree log --repo=repo alt/x86_64/coreos/stable
commit 0adc3481f84764b4139a2e3ebd6cb351e15d69208e526327e5d3c8fddf1cafd9
Parent: 4e1b4eb4512bd032b91a3a65c396d853e3a94033e07f75ed2f0faba23b7a77a2
ContentChecksum: e2f5cc4672915f5dcaf5d315a0678237deacf9824ae96f0c430e170cf6887940
Date: 2021-07-19 16:19:57 +0000
2021-07-14 08:51:17 +03:00
(no subject)
2021-07-19 19:28:31 +03:00
commit 4e1b4eb4512bd032b91a3a65c396d853e3a94033e07f75ed2f0faba23b7a77a2
ContentChecksum: a2e31383521e4025c6341878cf4362b8973529102ece596e2f675577a8412301
Date: 2021-07-19 16:13:12 +0000
2021-07-14 08:51:17 +03:00
(no subject)
2021-07-19 19:28:31 +03:00
[keremet@host-15 ~]$ ostree diff --repo=repo 4e1b4eb4512bd032b91a3a65c396d853e3a94033e07f75ed2f0faba23b7a77a2 0adc3481f84764b4139a2e3ebd6cb351e15d69208e526327e5d3c8fddf1cafd9
2021-07-14 08:51:17 +03:00
A /usr/bin/privet
2021-07-19 19:28:31 +03:00
[keremet@host-15 ~]$
2021-07-14 08:51:17 +03:00
```
Обновить метаданные репозитория, необходимые для е г о удаленного использования
```
2021-07-19 19:28:31 +03:00
sudo ostree summary --repo=repo --update
2021-07-14 08:51:17 +03:00
```
Запустить веб-сервер (порт 80)
```
2021-07-19 19:28:31 +03:00
sudo ostree trivial-httpd -P 80 repo
2021-07-14 08:51:17 +03:00
```
Н а клиенте надо подключить удаленный репозиторий ostree
```
2021-07-19 19:28:31 +03:00
ostree remote add --no-gpg-verify alt http://192.168.2.126
2021-07-14 08:51:17 +03:00
```
Команды проверки успешности подключения:
```
ostree remote list
2021-07-19 19:28:31 +03:00
ostree remote show-url alt
ostree remote refs alt
2021-07-14 08:51:17 +03:00
```
2021-07-19 19:28:31 +03:00
Отображение состояния и обновление. В данном примере показано, что для обновления требуется указывать переменную окружения OSTREE_GRUB2_EXEC, необходимость чего хорошо бы устранить
2021-07-14 08:51:17 +03:00
```
[root@localhost ~]# ostree admin status
2021-07-19 19:28:31 +03:00
* alt-coreos 4e1b4eb4512bd032b91a3a65c396d853e3a94033e07f75ed2f0faba23b7a77a2.0
origin refspec: alt:alt/x86_64/coreos/stable
2021-07-14 08:51:17 +03:00
[root@localhost ~]# ostree admin upgrade
6 metadata, 1 content objects fetched; 20 KiB transferred in 0 seconds; 12 bytes content written
Copying /etc changes: 3 modified, 0 removed, 13 added
error: Bootloader write config: Failed to execute child process ?no? (No such file or directory)
2021-07-19 19:28:31 +03:00
[root@localhost ~]# OSTREE_GRUB2_EXEC=/usr/sbin/grub-mkconfig ostree admin upgrade
2021-07-14 08:51:17 +03:00
2 metadata, 0 content objects fetched; 0 bytes content written
Copying /etc changes: 3 modified, 0 removed, 13 added
2021-07-19 19:28:31 +03:00
Transaction complete; bootconfig swap: yes; bootversion: boot.0.0, deployment count change: 1
2021-07-14 08:51:17 +03:00
[root@localhost ~]# ostree admin status
2021-07-19 19:28:31 +03:00
alt-coreos 0adc3481f84764b4139a2e3ebd6cb351e15d69208e526327e5d3c8fddf1cafd9.1 (pending)
origin refspec: alt:alt/x86_64/coreos/stable
* alt-coreos 4e1b4eb4512bd032b91a3a65c396d853e3a94033e07f75ed2f0faba23b7a77a2.0
origin refspec: alt:alt/x86_64/coreos/stable
2021-07-14 08:51:17 +03:00
[root@localhost ~]#
```
2021-07-19 19:28:31 +03:00
После перезагрузки по умолчанию в GRUB будет выбран пункт меню, соответствующий новой версии