UNPKG

arch-wiki-md-repo

Version:

All arch-wiki articles in markdown format, updated every two days.

331 lines (246 loc) 13.4 kB
Artigos relacionados * [Fazendo downgrade de pacotes](/index.php/Fazendo_downgrade_de_pacotes "Fazendo downgrade de pacotes") O **Arch Linux Archive** (também conhecido como **ALA**), antigamente conhecido como **Arch Linux Rollback Machine** (ou **ARM**), armazena *snapshots de repositórios oficiais*, *imagens iso* e *traballs de bootstrap* ao longo do tempo. **Você pode usá-lo para** * Fazer downgrade para uma versão anterior de um pacote (última versão está quebrada, desejo usar a anterior) * Restaurar todos seus pacotes para um momento específico (meu sistema está quebrado, desejo voltar para 2 meses atrás) * Localizar uma versão anterior de uma imagem ISO Os pacotes são mantidos apenas por poucos anos e, posteriormente, eles são movidos para [Arch Linux Historical Archive](#Historical_Archive) no archive.org. ## Contents * [1 Localização](#Localiza.C3.A7.C3.A3o) * [2 Diretórios](#Diret.C3.B3rios) * [2.1 /repos](#.2Frepos) * [2.2 /packages](#.2Fpackages) * [2.3 /iso](#.2Fiso) * [3 FAQ](#FAQ) * [3.1 Como fazer downgrade de um pacote](#Como_fazer_downgrade_de_um_pacote) * [3.2 Como restaurar todos os pacotes para uma data específica](#Como_restaurar_todos_os_pacotes_para_uma_data_espec.C3.ADfica) * [4 Historical Archive](#Historical_Archive) * [4.1 Localizando pacotes no Historical Archive](#Localizando_pacotes_no_Historical_Archive) * [4.2 Baixando pacotes do Historical Archive](#Baixando_pacotes_do_Historical_Archive) * [4.3 Redirecionando downloads de pacote para o Historical Archive](#Redirecionando_downloads_de_pacote_para_o_Historical_Archive) * [5 História](#Hist.C3.B3ria) ## Localização O Arch Linux Archive está disponível em [https://archive.archlinux.org/](https://archive.archlinux.org/). O [código fonte](https://github.com/seblu/archivetools) também está disponível para configurar seu próprio espelho. ## Diretórios O **Archive** é dividido em 3 diretórios principais detalhados abaixo. ``` ├── iso ├── packages └── repos ``` ### /repos O diretório [repos](https://archive.archlinux.org/repos) contém snapshots diários de espelho oficial organizado por data como o exemplo a seguir. ``` repos ├── 2013 │ ├── 08 │ │ └── 31 │ │ ├── community │ │ ├── community-staging │ │ ├── community-testing │ │ ├── core │ │ ├── extra │ │ ├── gnome-unstable │ │ ├── kde-unstable │ │ ├── lastsync │ │ ├── multilib │ │ ├── multilib-staging │ │ ├── multilib-testing │ │ ├── pool │ │ ├── staging │ │ └── testing │ ├── 09 │ │ ├── 01 │ │ ├── 02 │ │ ├── ... │ │ ├── 21 │ │ └── 22 │ ├── 10 │ │ ├── 01 │ │ ├── 02 │ │ ├── ... │ │ │ ├── 11 │ └── 12 ├── 2014 │ ├── 01 │ │ ├── 01 │ │ ├── 02 │ │ ├── ... │ │ │ ├── 02 │ ├── 03 │ ├── ... │ └── 09 │ ├── 01 │ ├── ... │ └── 28 ├── last ├── month └── week ``` Nota: Os últimos 3 diretórios especiais (**last**, **week** and **month**) vinculam respectivamente ao último repositório sincronizado, para a última segunda-feira e para a primeira do mês atual. ### /packages O diretório [packages](https://archive.archlinux.org/packages) contém todas as versões de cada pacote com suas assinaturas. Um diretório por pacote e diretórios de pacotes são agrupadas pela sua primeira letra. ``` ├── packages │ ├── a │ │ ├── awesome │ │ │ ├── awesome-3.5.0-1-i686.pkg.tar.xz │ │ │ ├── awesome-3.5.0-1-i686.pkg.tar.xz.sig │ │ │ ├── awesome-3.5.0-1-x86_64.pkg.tar.xz │ │ │ ├── awesome-3.5.0-1-x86_64.pkg.tar.xz.sig │ │ │ ├── awesome-3.5.1-1-i686.pkg.tar.xz │ │ │ ├── awesome-3.5.1-1-i686.pkg.tar.xz.sig │ │ │ ├── ... │ │ │ │ │ ├── ... │ │ ├── awstats │ │ └── axel │ │ │ ├── b │ ├── ... │ └── z ``` Você pode usar o subdiretório mágico [.all](https://archive.archlinux.org/packages/.all) para acessar todos os pacotes pelo nome deles. Ele atua como um diretório plano contendo todas as versões de cada pacote. ``` ├── packages │ ├── .all │ │ ├── awesome-3.5.1-1-i686.pkg.tar.xz │ │ ├── ... │ │ ├── zsh-5.0.2-3-i686.pkg.tar.xz │ │ ├── zsh-5.0.2-4-i686.pkg.tar.xz │ │ └── ... ``` Você pode baixar a lista de pacotes completos (existem mais de cem mil pacotes) como um índice compactado: [index.0.xz](https://archive.archlinux.org/packages/.all/index.0.xz). `$ curl https://archive.archlinux.org/packages/.all/index.0.xz | unxz` ``` 0ad-a14-1-i686 0ad-a14-1-x86_64 0ad-a14-2-i686 ... zziplib-0.13.62-1-x86_64 zziplib-0.13.62-2-i686 zziplib-0.13.62-2-x86_64 ``` ### /iso O diretório [iso](https://archive.archlinux.org/iso) contém imagens ISO oficiais e tarballs bootstrap ordenados por data de lançamento. ``` ├── 2014.09.03 ├── 2014.10.01 ├── 2014.11.01 ├── 2014.12.01 ├── 2015.07.01 ├── 2015.08.01 ├── 2015.09.01 └── 2017.04.01 ├── arch ├── archlinux-2017.04.01-x86_64.iso ├── archlinux-2017.04.01-x86_64.iso.sig ├── archlinux-2017.04.01-x86_64.iso.torrent ├── archlinux-bootstrap-2017.04.01-x86_64.tar.gz ├── archlinux-bootstrap-2017.04.01-x86_64.tar.gz.sig ├── md5sums.txt └── sha1sums.txt ``` ## FAQ ### Como fazer downgrade de um pacote Encontre o pacote que deseja em [/packages](#.2Fpackages) e deixe o pacman buscá-lo para instalação. Por exemplo ``` # pacman -U https://archive.archlinux.org/packages/ ... *nomepacote*.pkg.tar.xz ``` Deixar o pacman buscá-lo irá baixar automaticamente o arquivo *.sig* separado do pacote e verificá-lo de acordo com as configurações `/etc/pacman.conf`. Alternativamente, baixe e instale o pacote manualmente usando `pacman -U`. Veja também [Fazendo downgrade de pacotes#Automação](/index.php/Fazendo_downgrade_de_pacotes#Automa.C3.A7.C3.A3o "Fazendo downgrade de pacotes") para as ferramentas que simplificam o processo. ### Como restaurar todos os pacotes para uma data específica Para restaurar todos os pacotes em sua versão em uma data específica, digamos, 30 de março de 2014, você deve direcionar o [pacman](/index.php/Pacman_(Portugu%C3%AAs) "Pacman (Português)") para essa data, editando seu `/etc/pacman.conf` e use o seguinte diretiva do servidor: ``` [core] SigLevel = PackageRequired Server=https://archive.archlinux.org/repos/2014/03/30/$repo/os/$arch [extra] SigLevel = PackageRequired Server=https://archive.archlinux.org/repos/2014/03/30/$repo/os/$arch [community] SigLevel = PackageRequired Server=https://archive.archlinux.org/repos/2014/03/30/$repo/os/$arch ``` ou substituindo seu `/etc/pacman.d/mirrorlist` com o seguinte conteúdo: ``` ## ## Arch Linux repository mirrorlist ## Generated on 2042-01-01 ## Server=https://archive.archlinux.org/repos/2014/03/30/$repo/os/$arch ``` Então, atualize sua base de dados e force o downgrade: ``` # pacman -Syyuu ``` **Nota:** [Não é seguro](/index.php/Atualiza%C3%A7%C3%B5es_parciais "Atualizações parciais") misturar os espelhos Archive e os atualizados. No caso de uma falha de download, você acabará ficando com um pacote de *upstream* e você terá pacotes não da mesma época do resto do sistema. ## Historical Archive A manutenção do Arch Linux Archive consome uma quantidade significativa de recursos, portanto, os pacotes antigos são removidos de tempos em tempos. Antes de removê-los, os pacotes antigos são enviados para uma [coleção dedicada "Arch Linux Historical Archive" em archive.org](https://archive.org/details/archlinuxarchive). O Historical Archive não fornece uma maneira de acessar um "snapshot" de pacotes do Arch em um determinado momento. No entanto, há um redirecionamento em `archive.archlinux.org` para que os downloads de pacotes antigos sejam redirecionados para o Historical Archive em `archive.org`. Não deve haver impacto visível do lado do usuário, exceto pelo fato de que o `archive.org` é geralmente muito lento para baixar. ### Localizando pacotes no Historical Archive A coleção **Arch Linux Historical Archive** tem um índice de todos os pacotes: [https://archive.org/details/archlinuxarchive](https://archive.org/details/archlinuxarchive) Também é possível acessar diretamente um pacote por seu **identificado**. O padrão geral para os identificadores é: ``` archlinux_pkg_<nome do pacote saneado> ``` Para obter o nome de pacote **saneado**, basta substituir qualquer caractere `@`, `+` ou `.` no nome de pacote por um sublinhado `_`. Por exemplo, o identificado para [lucene++](https://www.archlinux.org/packages/?name=lucene%2B%2B) é `archlinux_pkg_lucene__`. Você pode, então, acessar a página de detalhes de um pacote por meio de seu identificador, por exemplo: [https://archive.org/details/archlinux_pkg_lucene__](https://archive.org/details/archlinux_pkg_lucene__) Também é possível executar pesquisas com o [archive.org cliente Python](https://github.com/jjjake/internetarchive): ``` $ ia search subject:"archlinux package" subject:'mysql' {"identifier": "archlinux_pkg_ejabberd-mod_mysql"} {"identifier": "archlinux_pkg_ejabberd-mod_mysql-svn"} {"identifier": "archlinux_pkg_gambas3-gb-db-mysql"} {"identifier": "archlinux_pkg_gambas3-gb-mysql"} {"identifier": "archlinux_pkg_libgda-mysql"} ``` ### Baixando pacotes do Historical Archive Todas as versões de pacotes disponíveis (e sua assinatura) podem ser acessadas através da página de download de um pacote: [https://archive.org/download/archlinux_pkg_lucene__](https://archive.org/download/archlinux_pkg_lucene__) Aqui estão algumas maneiras de buscar um pacote: ``` $ wget https://archive.org/download/archlinux_pkg_cjdns/cjdns-16.1-3-x86_64.pkg.tar.xz{,.sig} $ pacman -U https://archive.org/download/archlinux_pkg_cjdns/cjdns-16.1-3-x86_64.pkg.tar.xz ``` Observe que, se você usar o pacman, terá que descobrir as dependências sozinho. Também é possível usar o [archive.org cliente Python](https://github.com/jjjake/internetarchive): ``` # Baixa uma versão específica de um pacote $ ia download archlinux_pkg_cjdns cjdns-16.1-3-x86_64.pkg.tar.xz{,.sig} # Baixa todas as versões x86_64 de um pacote, com assinaturas $ ia download archlinux_pkg_cjdns --glob="*x86_64.pkg.tar.xz*" ``` ### Redirecionando downloads de pacote para o Historical Archive Para redirecionar downloads de pacotes antigos ao `archive.org`, arqui está a configuração Nginx no orion: ``` location ~ /repos/201[3456]/.*/.*\.pkg\.tar\.xz(\.sig)? { # Truque de regexp para separar o pkgname do pkgver (ambos podem conter "-") rewrite ^/repos/.*/((.*?)-[^-/]+-[0-9]+-[^-]+.*\.pkg\.tar\.xz(\.sig)?)$ /archive.org/archlinux_pkg_$2/$1 last; } # URLs de download do archive.org se parecem com: # https://archive.org/download/archlinux_pkg_lucene__/lucene++-1.4.2-3-i686.pkg.tar.xz # Nós precisamos remover @.+ no identificador (archlinux_pkg_*), mas mantê-lo no nome de arquivo ao final. location /archive.org/ { # Reescreve @, + e . para _ # Isso é recursivo, então vai funcionar mesmo para substituição múltipla, # com até 10 substituições para cada caractere (limie de recursão do nginx). # Ideia de https://stackoverflow.com/a/15934256 rewrite ^/archive\.org/([^@]*)@(.*)/(.*)$ /archive.org/$1_$2/$3; rewrite ^/archive\.org/([^\.]*)\.(.*)/(.*)$ /archive.org/$1_$2/$3; rewrite ^/archive\.org/([^\+]*)\+(.*)/(.*)$ /archive.org/$1_$2/$3; # Quando não tiver mais @.+ na parte do identificador, redirecione para archive.org rewrite ^/archive\.org/([^@\+\.]*/.*)$ https://archive.org/download/$1 permanent; } ``` ## História * O ARM (*Archlinux Rollback Machine*) original foi fechado em 2013-08-18.[[1]](https://bbs.archlinux.org/viewtopic.php?pid=1313360#p1313360) * O novo está hospedado em [seblu.net](http://seblu.net) desde 2013-08-31. * Nova URL e fechamento a hierarquia antiga do ARM em 2015-10-13\. Um novo software, [agetpkg-git](https://aur.archlinux.org/packages/agetpkg-git/), foi introduzido. * Movido para [archive.archlinux.org](https://archive.archlinux.org) em 2015-12-19.[[2]](https://lists.archlinux.org/pipermail/arch-dev-public/2015-December/027635.html)