99 lines
2.3 KiB
Markdown
99 lines
2.3 KiB
Markdown
# Auto Update Fedora (pós-instalação) + systemd
|
|
|
|
Script e serviço `systemd` para (opcionalmente) remover alguns pacotes padrão do Fedora, atualizar automaticamente o sistema e reiniciar quando necessário.
|
|
|
|
## Instalação
|
|
|
|
1. Salve o script:
|
|
|
|
Neste repositório, o script está em `fedora_pos_instalacao_auto_update.sh`. Você pode instalar direto dele:
|
|
|
|
```bash
|
|
sudo install -m 755 fedora_pos_instalacao_auto_update.sh /usr/local/bin/auto-update.sh
|
|
```
|
|
|
|
Ou crie/edite manualmente:
|
|
|
|
```bash
|
|
sudo nano /usr/local/bin/auto-update.sh
|
|
```
|
|
|
|
Cole o conteúdo do script e salve (`Ctrl+O`, `Enter`, `Ctrl+X`).
|
|
|
|
2. Dê permissão de execução:
|
|
|
|
```bash
|
|
sudo chmod +x /usr/local/bin/auto-update.sh
|
|
```
|
|
|
|
3. Crie o serviço `systemd`:
|
|
|
|
```bash
|
|
sudo nano /etc/systemd/system/auto-update.service
|
|
```
|
|
|
|
Cole este conteúdo:
|
|
|
|
```ini
|
|
[Unit]
|
|
Description=Atualização automática do sistema
|
|
After=network-online.target
|
|
Wants=network-online.target
|
|
|
|
[Service]
|
|
Type=oneshot
|
|
ExecStart=/usr/local/bin/auto-update.sh
|
|
StandardOutput=journal
|
|
StandardError=journal
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|
|
```
|
|
|
|
4. Ative o serviço:
|
|
|
|
```bash
|
|
sudo systemctl daemon-reload
|
|
sudo systemctl enable auto-update.service
|
|
```
|
|
|
|
5. Instale o pacote necessário (se não tiver):
|
|
|
|
```bash
|
|
sudo dnf install dnf-utils -y
|
|
```
|
|
|
|
## O que o script faz
|
|
|
|
- Executa como `root` (se não for `root`, ele encerra e registra erro no log)
|
|
- Remove pacotes (se existirem) e depois roda `dnf autoremove -y` para limpar dependências órfãs:
|
|
- `libreoffice-*`
|
|
- `gnome-tour`
|
|
- `yelp`
|
|
- `gnome-boxes`
|
|
- `totem`
|
|
- `gnome-maps`
|
|
- `gnome-weather`
|
|
- `gnome-contacts`
|
|
- `gnome-clocks`
|
|
- Atualiza o sistema com `dnf upgrade -y`
|
|
- Verifica se precisa reiniciar usando `needs-restarting -r` (do pacote `dnf-utils`) e também checa `/var/run/reboot-required` se existir
|
|
- Se precisar reiniciar, aguarda 30 segundos e reinicia
|
|
- Registra toda a execução em `/var/log/auto-update.log`
|
|
|
|
Se você não quiser remover esses pacotes, edite a lista na seção `dnf remove -y` do script.
|
|
|
|
## Teste e logs
|
|
|
|
Para testar sem esperar o boot:
|
|
|
|
```bash
|
|
sudo systemctl start auto-update.service
|
|
```
|
|
|
|
Para ver os logs:
|
|
|
|
```bash
|
|
sudo journalctl -u auto-update.service -f
|
|
```
|