Table of Contents
- FAQ
- O slacker funciona no Slackware 15.0?
- O slacker pode atualizar o meu sistema para uma nova versão do Slackware?
- install/upgrade recusa um pacote, dizendo que o repo tem como alvo outra versão.
- Tenho de copiar ficheiros de configuração depois de instalar?
- Como escolho um espelho rápido e atualizado?
- O update diz que os pacotes de um repo não descarregam (um caminho duplicado como .../extra/extra/...).
- error: repos: ... duplicate priority
- error: repos: ... two active mirrors / «no mirror»
- Porque é que o upgrade-all não atualizou o meu pacote SBo / alienbob, mesmo havendo uma versão mais recente?
- Uma atualização -current partiu um pacote — posso revertê-lo?
- Como removo uma regra da lista negra?
- O install-new continua a oferecer-me coisas que removi / nunca oferece um pacote que removi.
- history emacs não mostra nada, mas o pacote está instalado.
- O history mostra uma atualização old → new para algo que tenho a certeza que removi.
- Um repositório está em quarentena e não fornece pacotes.
- «key-substitution attack» / uma chave não importa.
- Como impeço o clean-system de remover os pacotes extra/testing/patches?
- install * / remove * / history * não faz o que eu espero.
- Posso correr consultas como utilizador normal?
- Um comando diz que outra instância está a correr.
- As cores estão a estragar os meus logs / o meu terminal.
- Como reporto um erro ou peço uma funcionalidade?
EN · EL · FR · ES · IT · RU · ZH · AR · HI · PT · DE
FAQ
Perguntas frequentes e resolução de problemas. Ver também Configuration, Security e Repositories and Priority.
O slacker funciona no Slackware 15.0?
Não — e nunca funcionará. O slacker tem como alvo o Slackware -current: 64 bits (x86_64) e, desde a 0.9.0, 32 bits (i586/i686). Ver Status and Roadmap.
O slacker pode atualizar o meu sistema para uma nova versão do Slackware?
Sim — isso é o slacker upgrade-dist {current|VERSION}. Reaponta o teu espelho e os
teus repositórios para a versão-alvo e substitui cada pacote pelo build do alvo (o
único comando que ignora deliberadamente o modelo de prioridade), depois corre
install-new + clean-system e lembra-te do kernel antes de reiniciares. Faz sempre
--dry-run primeiro e guarda cópias de segurança. Nota que para atualizar um
sistema 15.0 precisas de um binário slacker que corra na glibc mais antiga do
15.0 (o pacote distribuído é compilado para -current); e a opção de fonte local
(DISTRO_UPGRADE_MIRROR) ainda não foi testada. Detalhes completos em
Distribution Upgrade.
install/upgrade recusa um pacote, dizendo que o repo tem como alvo outra versão.
É a guarda de correspondência de versão. Um repositório construído para outra versão
do Slackware (por exemplo um repo alienbob -current ainda ativo no 15.0) pode
passar GPG/md5 e ainda assim instalar pacotes que partem o teu sistema, por isso o
slacker recusa-o. Aponta o repositório para a versão do teu sistema, ou passa
--yes para forçar se tiveres a certeza. O slacker status mostra a mesma
discrepância na sua linha Repo release. Ver Security.
Tenho de copiar ficheiros de configuração depois de instalar?
Não. O pacote binário põe os ficheiros de configuração no lugar sob /etc/slacker/.
Só editas dois — mirrors (escolhe um) e repos (define prioridades). Ver
Installation.
Como escolho um espelho rápido e atualizado?
Executa slacker find-mirror. Sonda a lista oficial de espelhos do Slackware,
cronometra cada um, descarta os que ficaram para trás do master a montante, ordena
os restantes por velocidade e imprime o mais rápido como a linha a pôr em mirrors
— nunca altera a tua configuração por ti. Funciona antes de qualquer espelho
estar configurado, sendo por isso o primeiro comando natural numa instalação nova.
Mais tarde, o slacker status assinala um espelho que ficou desatualizado (mais de
48 horas atrás do master). Ver Quick Start.
O update diz que os pacotes de um repo não descarregam (um caminho duplicado como .../extra/extra/...).
Esse repositório é uma subárvore da distribuição (extra, patches, testing,
pasture) e precisa da flag subtree em repos. O seu PACKAGES.TXT lista
localizações relativas à raiz da distribuição; a flag diz ao slacker para obter os
pacotes e a chave do URL pai. Ver Repositories and Priority.
error: repos: ... duplicate priority
As prioridades dos repositórios binários têm de ser distintas. Dá a cada repositório binário um número único. (As linhas tag-priority podem partilhar uma prioridade — isso é normal.)
error: repos: ... two active mirrors / «no mirror»
Em mirrors, exatamente uma linha tem de estar descomentada. Zero deixa o URL
oficial vazio; duas ou mais são um erro.
Porque é que o upgrade-all não atualizou o meu pacote SBo / alienbob, mesmo havendo uma versão mais recente?
Prioridade. O slacker nunca migra um pacote instalado para uma fonte de prioridade
diferente nem o rebaixa. Um candidato só é proposto a partir de um repositório de
prioridade maior ou igual. Se queres o build de um repositório específico,
fixa-o: slacker upgrade alienbob:vlc. Para que uma fonte vença sempre, dá-lhe uma
prioridade de etiqueta. Ver Repositories and Priority.
Uma atualização -current partiu um pacote — posso revertê-lo?
Sim, para pacotes oficiais em -current. O slacker revert-pkg NAME lista os
builds anteriores desse pacote (de removed_packages), obtém o que escolheres do
arquivo cumulativo (verificado por GPG contra a chave Slackware fixada) e rebaixa-o
com upgradepkg --reinstall. Experimenta primeiro --dry-run para ver o build
exato. Depois oferece congelar o pacote para que o upgrade-all não o volte a puxar
para a frente — levanta isso mais tarde com slacker unfrozen NAME. Os pacotes de
terceiros não estão cobertos (o arquivo cumulativo só leva os oficiais), e só
funciona em -current: o código lê VERSION_CODENAME e recusa numa versão
estável (uma guarda estrita, fail-closed). Ver Common Workflows.
Como removo uma regra da lista negra?
slacker unfrozen RULE — o equivalente de frozen. Executa slacker unfrozen sem
argumento para listar as regras atuais, depois passa uma exatamente como
mostrada (a correspondência é literal, por isso .* / * / / nunca são tratados
como padrão). Editar /etc/slacker/blacklist à mão também funciona. Ver
Blacklist.
O install-new continua a oferecer-me coisas que removi / nunca oferece um pacote que removi.
O install-new é para pacotes cujo nome foi recentemente adicionado à
distribuição — não para pacotes que removeste (esses já existem na árvore). Para
repor um pacote removido, usa slacker install NAME (ou install @repo). Ver
Commands.
history emacs não mostra nada, mas o pacote está instalado.
Os nomes correspondem exatamente. Se o pacote for aircrack-ng,
history aircrack não encontra nada — usa o nome exato. Ver Package History.
O history mostra uma atualização old → new para algo que tenho a certeza que removi.
O diretório removed_packages/ das pkgtools guarda um ficheiro por identificador
de pacote, por isso uma remoção posterior sobrescreve um registo anterior — parte
do histórico é perdida pelas próprias ferramentas. O slacker reconstrói o que pode e
infere um alvo de atualização perdido a partir da entrada conhecida seguinte. Ver
Package History.
Um repositório está em quarentena e não fornece pacotes.
O slacker põe em quarentena um repositório que falha o exame (inacessível ou com
metadados malformados/hostis). Verifica de novo com slacker vet-repo NAME; se
julgares que é um falso positivo, slacker trust-repo NAME levanta-o (sob a tua
responsabilidade). Ver Security.
«key-substitution attack» / uma chave não importa.
O slacker fixa a impressão digital GPG de cada repositório na primeira importação
(trust on first use). Uma chave posterior com uma impressão digital diferente é
recusada. Se a chave mudou legitimamente, terás de apagar o pin desse repositório
sob STATE_DIR (/var/lib/slacker/gpg/<repo>.fpr) e reimportar. Ver Security.
Como impeço o clean-system de remover os pacotes extra/testing/patches?
Marca esses repositórios como immutable em repos. Os seus pacotes instalados são
então mantidos sem pôr cada um na lista negra. Ver Common Workflows.
install * / remove * / history * não faz o que eu espero.
O slacker não tem carácter universal * para selecionar pacotes. Um repositório
inteiro é @repo (ex. install @gnome); um único pacote é o seu nome exato; uma
subcadeia corresponde a uma família. Um * sem aspas é expandido pela tua shell
para os nomes de ficheiro do diretório atual antes de o slacker correr — o slacker
nunca vê o * nem lê o teu diretório. Quando isso produz uma enxurrada de
argumentos que não são pacotes, o slacker reconhece-o e recusa o comando sem
alterar nada (um remove * não apaga pacotes reais que por acaso partilhem uma
subcadeia com um nome de ficheiro). Põe um padrão literal entre aspas, ou usa
@repo. Nota que a lista negra é diferente: o frozen aceita sim padrões glob
e regex — ver Blacklist.
Posso correr consultas como utilizador normal?
Sim. search, info, file-search, check-updates, show-changelog, history
e find-mirror correm com qualquer utilizador. Tudo o que altera o sistema precisa
de root.
Um comando diz que outra instância está a correr.
Os comandos que alteram tomam um bloqueio exclusivo (/run/slacker.lock); só corre
um de cada vez. O bloqueio é libertado automaticamente se o slacker terminar ou for
morto. As consultas não tomam bloqueio.
As cores estão a estragar os meus logs / o meu terminal.
Define NO_COLOR=1 (a cor também é desativada automaticamente quando a saída não é
um terminal). O paginador para saídas longas é $PAGER ou less -FRX.
Como reporto um erro ou peço uma funcionalidade?
Abre um issue em https://forge.slackware.nl/rizitis/slacker/issues.
slacker
Getting started
Using slacker
- Commands
- Common Workflows
- Distribution Upgrade
- Repositories and Priority
- Package History
- Dependencies
- Docker
- Templates
- Blacklist
Trust & safety
Reference
For contributors
slacker - slackpkg + slackpkg+ in one - Apache-2.0 - by Ioannis Anagnostakis (rizitis) - beta / WIP, for Slackware -current (64-bit & 32-bit)