Skip to main content

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-run faz detecção, perguntas e plano sem downloads ou alterações.
  • install descarta estado, cache e autostart temporários anteriores e começa uma execução nova; use resume quando quiser continuar uma execução interrompida.
  • resume recupera módulos interrompidos e executa as verificações pós-boot.
  • support-bundle cria um .tar.zst local; nada é enviado.
  • cleanup remove 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 0600 em ~/.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 up abre a porta 22 somente para a sub-rede da rota padrão e persiste até sudo lan-ssh down; --interface escolhe 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)

Source distribution for vcanonici-autoinstall 2.0.0
File Size Uploaded
vcanonici_autoinstall-2.0.0.tar.gz 296.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for vcanonici-autoinstall 2.0.0
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

2.0.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page