Eclean

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Eclean and the translation is 98% complete.


eclean é uma ferramenta para limpeza de arquivos fonte e pacotes binários do repositório. Ele faz parte do conjunto de ferramentas gentoolkit.

Também está disponível no Gentoo a ferramenta eclean-kernel, disponível separadamente das ferramentas eclean instaladas com o gentoolkit, no pacote app-admin/eclean-kernel. A eclean-kernel é usada para automatizar a limpeza de kernels antigos do Linux.

Instalação

Emerge

Instalar app-portage/gentoolkit:

root #emerge --ask app-portage/gentoolkit
Dica
Veja o artigo do Gentoolkit para obter informações sobre outras utilidades incluídas no pacote app-portage/gentoolkit.

Uso

Por padrão, arquivos fonte estão localizados no diretório /var/cache/distfiles, enquanto pacotes binários estão localizados no diretório /var/cache/binpkgs. As localizações para cada um podem ser alteradas mudando as variáveis DISTDIR e PKGDIR respectivamente no /etc/portage/make.conf. Ambas as localizações podem ocupar muito espaço se não for feita uma limpeza periódica; Por essa razão o eclean foi criado.

Invocação

Use eclean --help para ver um sumário completo das ações, lista de opções e usos:

user $eclean --help
Usage:
 eclean [global-option] ... <action> [action-option] ...
 eclean-dist [global-option, distfiles-option] ...
 eclean-pkg [global-option, packages-option] ...
 eclean(-dist,-pkg) [--help, --version]
 
Available global options:
 -C, --nocolor             - turn off colors on output
 -d, --deep                - only keep the minimum for a reinstallation
 -e, --exclude-file=<path> - path to the exclusion file
 -i, --interactive         - ask confirmation before deletions
 -n, --package-names       - protect all versions (when --deep)
 -p, --pretend             - only display what would be cleaned
 -q, --quiet               - be as quiet as possible
 -t, --time-limit=<time>   - don't delete files modified since <time>
   <time> is a duration: "1y" is "one year", "2w" is "two weeks", etc. 
   Units are: y (years), m (months), w (weeks), d (days) and h (hours).
 -h, --help                - display the help screen
 -V, --version             - display version info
 
Available actions:
 packages     - clean outdated binary packages from PKGDIR
 distfiles    - clean outdated packages sources files from DISTDIR
 
Available options for the packages action:
     --changed-deps               - delete packages for which ebuild dependencies have changed
 -i, --ignore-failure             - ignore failure to locate PKGDIR
 
Available options for the distfiles action:
 -f, --fetch-restricted   - protect fetch-restricted files (when --deep)
 -s, --size-limit=<size>  - don't delete distfiles bigger than <size>
   <size> is a size specification: "10M" is "ten megabytes", "200K" is
   "two hundreds kilobytes", etc.  Units are: G, M, K and B.
 
More detailed instruction can be found in `man eclean`

Limpeza de distfiles

Limpe o diretório dos arquivos fonte passando o argumento distfiles:

root #eclean distfiles

Ou executando o comando:

root #eclean-dist

Limpeza de pacotes

Para o diretório com os pacotes binários, use o seguinte comando:

root #eclean packages

Ou executando o comando:

root #eclean-pkg

Opções

Por padrão, os arquivos fonte e os pacotes binários correspondentes a qualquer ebuild no repositório atual não serão excluídos. Dessa forma, os administradores podem facilmente fazer o downgrade de um pacote ou instalar um pacote removido anteriormente, desde que o pacote ainda esteja na árvore do repositório atual.

Como um exemplo, suponha que os seguintes pacotes foo-1.0 e foo-1.1 estão no repositório. Depois de atualizar do foo-1.0 para o foo-1.1, execute o comando eclean distfiles: arquivos fonte de ambas as versões serão mantidos, portanto, se ocorrer um problema com o foo-1.1, o usuário pode facilmente reinstalar o foo-1.0 sem fazer o download novamente.

Uma outra opção é instalar um pacote anteriormente removido. Suponha que um pacote foo(qualquer versão) está instalado no sistema. Após removê-lo e executar eclean distfiles, os arquivos de origem de foo serão mantidos, para que ele possa ser reinstalado sem fazer o download novamente.

Os mesmo exemplos também se aplicam para pacotes binários.

Para salvar espaço em disco, adicione a opção --deep: todo arquivo fonte ou pacote binário que não corresponda a algum pacote currently installed (a versão importa) será excluido. Observe que desta forma os usuários nao serão protegidos caso precisem fazer um downgrade de algum pacote ou reinstalar um pacote anteriormente removido.

Como uma alternativa, use as opções --deep e --package-names: Todo arquivo de origem ou pacote binário que não corresponde a algum pacote instalado (versão não importa) será deletado. Isso ainda não protegerá o usuário em caso de ser necessária a reinstalação de um pacote anteriormente removido, mas protegerá as fontes se precisar ser feito um downgrade do pacote posteriormente.

Para mais detalhes, leia a o manual do eclean(1):

user $man 1 eclean

Solução de problemas

A limpeza deixa alguns distfiles

Problema: ao tentar limpar os distfiles, alguns distfiles não são removidos e a mensagem "The following unavailable installed packages were found" é exibida. Por exemplo:

root #eclean --deep distfiles
 * Building file list for distfiles cleaning...
 * Your distfiles directory was already clean.
 
   The following unavailable installed packages were found
             sys-kernel/gentoo-sources-4.19.44
             sys-kernel/gentoo-sources-4.19.45
             sys-kernel/gentoo-sources-4.19.46

Essa situação ocorre quando o ebuild de um pacote foi removido do repositório ebuild do Gentoo e o pacote está atualmente instalado no sistema. Geralmente, se os pacotes/distfiles listados não forem mais necessários, a razão pela qual eles não estão sendo removidos é porque estão listados no arquivo world do Portage.

The solution is to to remove the packages from the world file, or remove the specific package atom(s) via:

root #emerge --ask --depclean =sys-kernel/gentoo-sources-4.19.44

Em seguida, execute novamente eclean para remover os distfiles.

Veja também