Como posso obter uma descrição útil e detalhada do propósito de um pacote?

3

EDIT: Para evitar dúvidas, esta questão não é sobre como obter uma lista de arquivos que um pacote instala, como na duplicata sugerida.

Existe uma maneira padrão de descobrir o propósito de um pacote, que é detalhado o suficiente para que você possa descobrir o que obterá do pacote e se é ou não algo que você quer?

Vou dar alguns exemplos para explicar o que quero dizer. O primeiro, postgresql-contrib , é o que me leva a fazer essa pergunta. Eu encontrei várias instruções de instalação para o PostgreSQL que dizem para você instalar este pacote, além de postgresql , sem explicar por que de alguma forma significativa ( exemplo 1 , exemplo 2 ).

apt-cache show postgresql-contrib só me dá uma descrição vaga e geral:

  

recursos adicionais para o PostgreSQL (versão suportada)   O metapacote sempre depende do PostgreSQL atualmente suportado   pacote de contribuição do banco de dados.

     

O PostgreSQL é um gerenciador de banco de dados relacional com todos os recursos.   sistema. Ele suporta uma grande parte do padrão SQL e é projetado   para ser extensível pelos usuários em muitos aspectos. Algumas das características são:   Transações ACID, chaves estrangeiras, visualizações, seqüências, subqueries,   gatilhos, tipos e funções definidos pelo usuário, junções externas, multiversão   controle de concorrência. Interfaces Gráficas de Usuário e Ligações para Muitos   linguagens de programação também estão disponíveis.

O que eu estou procurando é uma descrição apropriada de quais recursos adicionais eu recebo se eu instalar este pacote.

Outro exemplo é libreoffice-templates , onde apt-cache show não fornece nenhuma informação útil sobre o que você realmente obteria:

Additional set of templates for LibreOffice
 Additional set of templates for:
  - LibreOffice Calc spreadsheets
  - LibreOffice Writer texts
  - LibreOffice Impress presentations

Existe uma maneira padrão de obter informações mais detalhadas do que apt-cache show dá?

    
por Jon Bentley 27.04.2017 / 20:03

2 respostas

1

Da perspectiva de um usuário em geral, que acabou de conhecer um nome de pacote, sua principal fonte de informações sobre o que isso faz está verificando o comando apt-cache show . Eu sempre faço isso. Este é o caminho definitivo e oficial para descobrir a intenção de um pacote. Assim como o comando man para saber sobre um comando.

No entanto, não é o único caminho. Claro que há muitas outras maneiras de saber sobre um pacote. Mas esses não são um guia de estilo de livro de receitas para seguir. O que geralmente faço é verificar a página inicial da descrição do pacote. Eu uso o gerenciador de pacotes synaptic e há um link para cada descrição do pacote. Isso deve levar você à home page do pacote ou à página do mantenedor (pacote debian).

Eu também uso o link para ver o conteúdo e encontrar outros links relacionados ao pacote. Você pode ir para a página do launchpad a partir dela e então você pode encontrar o link do desenvolvedor original / upstream. Se ainda não tiver certeza, você pode entrar em contato com a lista de discussão, fazer uma pergunta ou até mesmo os desenvolvedores. Você pode verificar a lista de arquivos e ver o que esse pacote contém e, em seguida, usar alguma pesquisa para encontrar o que eles fazem.

Por exemplo, quando usei postgresql-contrib package no packages.ubuntu.com, encontrei esta lista de arquivos . Agora, é só uma pesquisa de óculos para verificar o que esses comandos fazem. Por exemplo, pesquisar por pg_archivecleanup yields este resultado no google. Você deve ter um bom senso geral sobre o propósito do pacote a partir daí. Outra maneira muito boa de saber sobre esse comando é usar man , mas se o pacote ainda não estiver instalado, talvez seja necessário usar o link em vez disso.

Pode haver outras maneiras de encontrar o propósito de um pacote. A maioria das pessoas no mundo Linux segue esse caminho. Tendo sido dito, se você está perguntando se existe um definitivo muito além de apt-cache show ou apt show , então eu diria Não . A descrição de um pacote debian deveria ser a fonte oficial e primeira do propósito de um pacote.

    
por Anwar 27.04.2017 / 20:58
2

Vamos nos concentrar no primeiro exemplo: postgresql-contrib

  

Este meta-pacote sempre depende do pacote de contribuição de banco de dados do PostgreSQL atualmente suportado.

A palavra-chave aqui é que é um meta-pacote . Você encontrará muitas instâncias de meta-pacotes no repositório. Por si só, os metapacotes realmente não contêm nada, então não há nada para documentar exceto o pacote para o qual ele aponta. Se você olhar as informações fornecidas por apt-cache show postgresql-contrib novamente, perceberá que há uma linha que mostra:

  

Depende: postgresql-contrib-9.5

A documentação atual que você precisa ver está contida neste pacote. O seguinte é o resultado de apt-cache show postgresql-contrib-9.5 :

Package: postgresql-contrib-9.5
Priority: optional
Section: database
Installed-Size: 1999
Maintainer: Ubuntu Developers <[email protected]>
Original-Maintainer: Debian PostgreSQL Maintainers <[email protected]>
Architecture: amd64
Source: postgresql-9.5
Version: 9.5.6-0ubuntu0.16.04
Depends: postgresql-9.5 (= 9.5.6-0ubuntu0.16.04), libc6 (>= 2.15), libpq5 (>= 9.2~beta3), libselinux1 (>= 2.1.12), libssl1.0.0 (>= 1.0.0), libuuid1 (>= 2.16), libxml2 (>= 2.7.4), libxslt1.1 (>= 1.1.25), zlib1g (>= 1:1.1.4)
Suggests: libdbd-pg-perl
Filename: pool/main/p/postgresql-9.5/postgresql-contrib-9.5_9.5.6-0ubuntu0.16.04_amd64.deb
Size: 446848
MD5sum: a05acc14f59c7d0f98bfc854a90447d7
SHA1: 398b18b8660537ac114eceb1212ff831d911c856
SHA256: 6ef4578df2026a72e9c85715ea112f4077209490beb18e3e715621319d5861f0
Description-en: additional facilities for PostgreSQL
 The PostgreSQL contrib package provides several additional features
 for the PostgreSQL database. This version is built to work with the
 server package postgresql-9.5.  contrib often serves as a testbed for
 features before they are adopted into PostgreSQL proper:
 .
  adminpack      - File and log manipulation routines, used by pgAdmin
  btree_gist     - B-Tree indexing using GiST (Generalised Search Tree)
  chkpass        - An auto-encrypted password datatype
  cube           - Multidimensional-cube datatype (GiST indexing example)
  dblink         - Functions to return results from a remote database
  earthdistance  - Operator for computing the distance (in miles) between
                   two points on the earth's surface
  fuzzystrmatch  - Levenshtein, metaphone, and soundex fuzzy string matching
  hstore         - Store (key, value) pairs
  intagg         - Integer aggregator/enumerator
  _int           - Index support for arrays of int4, using GiST (benchmark
                   needs the libdbd-pg-perl package)
  isn            - type extensions for ISBN, ISSN, ISMN, EAN13 product numbers
  lo             - Large Object maintenance
  ltree          - Tree-like data structures
  oid2name       - Maps OIDs to table names
  pageinspect    - Inspection of database pages
  passwordcheck  - Simple password strength checker
  pg_buffercache - Real time queries on the shared buffer cache
  pg_freespacemap- Displays the contents of the free space map (FSM)
  pg_trgm        - Determine the similarity of text based on trigram matching
  pg_standby     - Create a warm stand-by server
  pgbench        - TPC-B like benchmark
  pgcrypto       - Cryptographic functions
  pgrowlocks     - A function to return row locking information
  pgstattuple    - Returns the percentage of dead tuples in a table; this
                   indicates whether a vacuum is required.
  postgresql_fdw - foreign data wrapper for PostgreSQL
  seg            - Confidence-interval datatype (GiST indexing example)
  sepgsql        - mandatory access control (MAC) based on SELinux
  spi            - PostgreSQL Server Programming Interface; 4 examples of
                   its use:
                   autoinc    - A function for implementing AUTOINCREMENT/
                                IDENTITY
                   insert_username - function for inserting user names
                   moddatetime - Update modification timestamps
                   refint     - Functions for implementing referential
                                integrity (foreign keys).  Note that this is
                                now superseded by built-in referential
                                integrity.
                   timetravel - Re-implements in user code the time travel
                                feature that was removed in 6.3.
  tablefunc      - examples of functions returning tables
  uuid-ossp      - UUID generation functions
  vacuumlo       - Remove orphaned large objects
 .
 PostgreSQL is an object-relational SQL database management system.
Description-md5: 633a4e0645b2b02e72f77a260d0f4030
Homepage: http://www.postgresql.org/
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Origin: Ubuntu
Supported: 5y
Task: postgresql-server

Você notará que a documentação do pacote atual é muito mais detalhada.

    
por user596162 27.04.2017 / 21:17