Qual é a diferença entre um pacote linux e um módulo linux?

1

quando eu faço dpkg --get-selections ou less /proc/modules , vejo duas listas diferentes. Eu não entendo a diferença entre os elementos de cada um ...

    
por Jav 08.01.2014 / 10:39

3 respostas

4

Os dois comandos não estão relacionados de forma alguma.

dpkg --get-selections retorna o estado de seleção dos pacotes disponíveis. De man dpkg :

--get-selections [package-name-pattern...]
    Get list of package selections, and write it to stdout. Without a  pattern,  
    non-installed  packages (i.e. those which have been previously purged) 
    will not be shown.

O estado de seleção é um dos seguintes:

   install
          The package is selected for installation.

   hold   A package marked to be on hold is not handled  by  dpkg,  unless 
          forced  to  do  that  with  option --force-hold.

   deinstall
          The  package  is selected for deinstallation (i.e. we want to
          remove all files, except configuration files).

   purge  The package is selected to be purged (i.e. we want to remove
          everything  from  system  directories, even configuration files).

/proc/modules , por outro lado, é a lista de módulos do kernel disponíveis (você pode considerá-los equivalentes a dll files no mundo do Windows). Enquanto alguns módulos foram instalados como pacotes, outros estão incluídos no kernel. Então, olhando para a lista de módulos, você verá alguma sobreposição com o comando dpkg acima se você tiver instalado certos módulos que não fazem parte do kernel.

Por exemplo, no meu sistema, instalei o pacote fuse que fornece o módulo do kernel fuse . Portanto, tenho uma entrada para fuse em ambas as listas:

$ dpkg --get-selections | grep -P 'fuse\t' 
fuse                        install
$ grep 'fuse' /proc/modules 
fuse 67503 3 - Live 0xffffffffa1140000

Por outro lado, o pacote firefox não fornece nenhum módulo, portanto, ele é listado apenas na dpkg output:

$ dpkg --get-selections | grep -P 'firefox\t' 
firefox                     install
$ grep 'firefox' /proc/modules 
$
    
por 08.01.2014 / 14:25
5

Os módulos do kernel (que você vê em / proc / modules) fazem parte do Kernel do Linux e são necessários para suporte de hardware (como drivers de dispositivo) ou algum outro recurso do sistema operacional. Módulos de kernel carregáveis no Linux são carregados (e descarregados) pelo comando modprobe. Eles estão localizados em / lib / modules e tiveram a extensão .ko ("objeto do kernel"). Você não lida com eles diariamente, a menos que seja um Desenvolvedor do Kernel ou esteja procurando um driver raro para o seu hardware.

Pacotes, que você pode instalar com o comando dpkg (no caso de distro do Debian), são o software do usuário. Estes geralmente são instalados para ter um programa ou outro, como, por exemplo, Firefox, OpenOffice, etc.

    
por 08.01.2014 / 10:48
0

A pergunta correta deve ser:

What is the difference between a Debian package and a Linux module?  

Eles são coisas completamente diferentes.

Debian é uma distribuição do Linux.
O pacote Debian (deb) é um formato de arquivo e ferramentas usadas para empacotar software de uma distribuição Debian.
O módulo Linux é um módulo do kernel Linux que pode ser carregado sob demanda.

    
por 08.01.2014 / 14:43