VCanonici Autoinstall 2.0
Provisionamento interativo e retomável para Ubuntu 24.04 Desktop amd64 recém-instalado.
A distribuição pública única é vcanonici-autoinstall; o tipo faz parte da CLI:
autoinstall --t workstation.
A versão 2.0.0 não é um autoinstall do instalador Ubuntu/NoCloud. Ela configura a workstation depois do primeiro login de um usuário comum membro de
sudo.
Instalação
Copie o bloco inteiro no Terminal da máquina. Ele pede sudo uma vez, mantém o ticket
apenas enquanto estiver ativo e substitui qualquer runtime antigo pela versão mais
recente já publicada no PyPI. Se o download ou a instalação falhar, o runtime anterior
é restaurado e a CLI não é executada:
#!/bin/sh
(
set -eu
PACKAGE="vcanonici-autoinstall"
BASE="$HOME/.local/share/vcanonici-autoinstall"
RUNTIME="$BASE/workstation"
BACKUP="$BASE/workstation.backup"
runtime_ready=0
keepalive_pid=""
# shellcheck disable=SC2317,SC2329 # Invoked indirectly by the EXIT trap.
cleanup() {
exit_code=$?
trap - EXIT HUP INT TERM
if [ "$runtime_ready" -ne 1 ]; then
rm -rf -- "$RUNTIME"
if [ -d "$BACKUP" ]; then
mv -- "$BACKUP" "$RUNTIME"
fi
fi
if [ -n "$keepalive_pid" ]; then
kill "$keepalive_pid" 2>/dev/null || true
fi
sudo -k
exit "$exit_code"
}
trap cleanup EXIT
trap 'exit 130' HUP INT TERM
mkdir -p -- "$BASE"
if [ -d "$BACKUP" ]; then
if [ -f "$RUNTIME/.autoinstall-ready" ]; then
rm -rf -- "$BACKUP"
else
rm -rf -- "$RUNTIME"
mv -- "$BACKUP" "$RUNTIME"
fi
fi
sudo -v
while true; do
sudo -n true
sleep 50
done &
keepalive_pid=$!
sudo systemctl unmask packagekit.service >/dev/null 2>&1 || true
sudo apt-get -o Acquire::Retries=5 -o DPkg::Lock::Timeout=300 update
sudo apt-get -o Acquire::Retries=5 -o DPkg::Lock::Timeout=300 -y install python3-venv
if [ -d "$RUNTIME" ]; then
mv -- "$RUNTIME" "$BACKUP"
fi
python3 -m venv "$RUNTIME"
"$RUNTIME/bin/python" -m pip install --no-cache-dir --upgrade pip
"$RUNTIME/bin/python" -m pip install --no-cache-dir --upgrade "$PACKAGE"
installed_version=$("$RUNTIME/bin/python" -c \
'from importlib.metadata import version; print(version("vcanonici-autoinstall"))')
test -n "$installed_version"
test -x "$RUNTIME/bin/autoinstall"
touch "$RUNTIME/.autoinstall-ready"
runtime_ready=1
rm -rf -- "$BACKUP"
find "$BASE" -mindepth 1 -maxdepth 1 -type d -name 'workstation-*' \
-exec rm -rf -- {} +
printf 'VCanonici Autoinstall %s instalado em %s\n' "$installed_version" "$RUNTIME"
"$RUNTIME/bin/autoinstall" --t workstation install
)
Se Python e pip já estiverem disponíveis em um ambiente gravável, também funciona:
python -m pip install vcanonici-autoinstall
autoinstall --t workstation
No Ubuntu limpo, prefira o bootstrap acima: ele cria um venv isolado. A CLI roda como usuário comum e eleva somente comandos que alteram o sistema.
Comandos
autoinstall --t workstation install [--dry-run] [--yes] [--no-reboot]
autoinstall --t workstation resume [--yes] [--no-reboot]
autoinstall --t workstation status
autoinstall --t workstation report
autoinstall --t workstation support-bundle
autoinstall --t workstation cleanup
autoinstall --version
--dry-runfaz detecção, perguntas e plano sem downloads ou alterações.installdescarta estado, cache e autostart temporários anteriores e começa uma execução nova; useresumequando quiser continuar uma execução interrompida.resumerecupera módulos interrompidos e executa as verificações pós-boot.support-bundlecria um.tar.zstlocal; nada é enviado.cleanupremove runtime temporário, estado, caches e autostart. Aplicativos,lan-ssh, relatório, logs e bundle são preservados.
Exit codes: 0 sucesso, 2 parcial, 10 ambiente não suportado, 20 pausado e
retomável, 30 falha crítica da CLI.
Segurança operacional
- Suporte exclusivo a Ubuntu 24.04 Desktop amd64, GNOME e usuário comum em
sudo. - Estado atômico
0600em~/.local/state/vcanonici-autoinstall/workstation/state.json. - Cada comando, stdout e stderr aparece em tempo real no terminal e é gravado literalmente
em
~/.local/state/vcanonici-autoinstall/workstation/runs/<runId>/; os dados permanecem locais e devem ser protegidos como dados sensíveis da máquina. - Nenhuma telemetria, upload, credencial de aplicativo ou chave PyPI.
- APT usa canais estáveis assinados. Discord, Telegram, Windscribe, Codex e Unsloth usam URLs, tamanhos e SHA-256 congelados no manifesto; ausência ou divergência pausa por padrão.
- SSH termina fechado, inclusive
ssh.socket.sudo lan-ssh upabre a porta 22 somente para a sub-rede da rota padrão e persiste atésudo lan-ssh down;--interfaceescolhe outra interface. - O grupo Docker equivale a acesso root.
- Atualizações automáticas de segurança do Ubuntu permanecem habilitadas.
Os blobs Realtek do MA530 têm autorização de redistribuição, checksums fixos e licença
separada em REALTEK-NOTICE.md. O instalador nunca substitui o
btusb assinado do Ubuntu e não usa DKMS.
Desenvolvimento
python3.12 -m venv .venv
. .venv/bin/activate
python -m pip install -e '.[dev]'
ruff check .
mypy src tests
pytest
python -m build
SOURCE_DATE_EPOCH=1784073600 python scripts/normalize_sdist.py dist/*.tar.gz
twine check dist/*
python scripts/inspect_distribution.py dist/*
shellcheck bootstrap.sh src/vcanonici_autoinstall_workstation/assets/lan-ssh
A arquitetura e o fluxo operacional estão em docs/architecture.md. A publicação sem tokens está descrita em docs/publishing.md.
Limites de aceitação
CI e testes simulam APT, systemd, GNOME, downloads e retomada. Antes de declarar a 2.0.0 estável, valide numa VM Ubuntu 24.04 sem GPU e depois na máquina-alvo com RTX, MA530 e múltiplos monitores. Preserve o bundle dessa execução como evidência.
Release files for vcanonici-autoinstall 2.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| vcanonici_autoinstall-2.0.0.tar.gz | 296.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| vcanonici_autoinstall-2.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 609.6 kB
Release files / vcanonici_autoinstall-2.0.0.tar.gz
| Download URL | vcanonici_autoinstall-2.0.0.tar.gz |
|---|---|
| Size | 296.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5fa79ac666bf42e0528850d4e2a548bc18fb04868d2f42b69b01ce21f7614e46
|
|
BLAKE2b-256 checksum How to use checksums |
f2fe8ecee221ab347b4747e8e9eef0f38dcd88bcffcfee90687bb023ddea9ba1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
Release files / vcanonici_autoinstall-2.0.0-py3-none-any.whl
| Download URL | vcanonici_autoinstall-2.0.0-py3-none-any.whl |
|---|---|
| Size | 312.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
408fff7b541236d2dcb1140110c02eae432fc4f60d71b4e30bdf419863c1ba23
|
|
BLAKE2b-256 checksum How to use checksums |
8482e2fa804773bca18957e5670139096fbed0bbdd279b7df7def725c363bb1d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|