Os cabeçalhos de reforço são empacotados separadamente sob o Fedora?

4

A biblioteca boost C ++ consiste em vários componentes. Alguns componentes incluem bibliotecas compartilhadas, outros não.

Sob um sistema Fedora 14, eu procurei um pouco com yum search boost e rpm -qR e, de fato, como com outras distribuições, a biblioteca boost é dividida em vários pacotes.

Por exemplo, há boost-program-options, que contém apenas as bibliotecas compartilhadas do componente boost-options.

Parece que o pacote boost depende de todos os subpacotes da biblioteca compartilhada. Há boost-devel , que parece fornecer todos os cabeçalhos e depende de todos os subpacotes da biblioteca compartilhada (via boost).

Estou certo de que não é possível instalar apenas os cabeçalhos de impulso através do yum (usando os repositórios padrão) sem todos os pacotes de biblioteca compartilhada?

    
por maxschlepzig 02.02.2011 / 23:53

3 respostas

4

Olhando para o pacote boost-devel, é necessário o pacote boost da mesma versão. Aqui está o que o pacote boost-devel requer:

$ rpm -qRp boost-devel-1.44.0-7.fc14.x86_64.rpm 
boost = 1.44.0-7.fc14
cmake  
libboost_date_time-mt.so.1.44.0()(64bit)  
libboost_date_time.so.1.44.0()(64bit)  
libboost_filesystem-mt.so.1.44.0()(64bit)  
libboost_filesystem.so.1.44.0()(64bit)  
libboost_graph-mt.so.1.44.0()(64bit)  
libboost_graph.so.1.44.0()(64bit)  
libboost_iostreams-mt.so.1.44.0()(64bit)  
libboost_iostreams.so.1.44.0()(64bit)  
libboost_prg_exec_monitor-mt.so.1.44.0()(64bit)  
libboost_prg_exec_monitor.so.1.44.0()(64bit)  
libboost_program_options-mt.so.1.44.0()(64bit)  
libboost_program_options.so.1.44.0()(64bit)  
libboost_python-mt.so.1.44.0()(64bit)  
libboost_python.so.1.44.0()(64bit)  
libboost_random-mt.so.1.44.0()(64bit)  
libboost_random.so.1.44.0()(64bit)  
libboost_regex-mt.so.1.44.0()(64bit)  
libboost_regex.so.1.44.0()(64bit)  
libboost_serialization-mt.so.1.44.0()(64bit)  
libboost_serialization.so.1.44.0()(64bit)  
libboost_signals-mt.so.1.44.0()(64bit)  
libboost_signals.so.1.44.0()(64bit)  
libboost_system-mt.so.1.44.0()(64bit)  
libboost_system.so.1.44.0()(64bit)  
libboost_thread-mt.so.1.44.0()(64bit)  
libboost_unit_test_framework-mt.so.1.44.0()(64bit)  
libboost_unit_test_framework.so.1.44.0()(64bit)  
libboost_wave-mt.so.1.44.0()(64bit)  
libboost_wserialization-mt.so.1.44.0()(64bit)  
libboost_wserialization.so.1.44.0()(64bit)  
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(VersionedDependencies) <= 3.0.3-1
rpmlib(PayloadIsXz) <= 5.2-1
    
por 03.02.2011 / 04:16
0

A maior parte do Boost é uma biblioteca somente de cabeçalho. Mas há alguns que precisam ser compilados. A resposta de jsbillings lista todos eles. Se você não estiver usando nenhuma dessas bibliotecas que requerem as bibliotecas compiladas, você não precisa instalá-las. Basta instalar apenas os cabeçalhos.

Veja aqui: Introdução às plataformas Unix .

    
por 03.02.2011 / 05:12
0

Você pode sempre perguntar ao responsável pelo suporte se ele dividirá os cabeçalhos que não precisam de bibliotecas compartilhadas em outro pacote.

No entanto, eu realmente me pergunto por que o 1 ¢ do espaço em disco é importante aqui? esp. como eu não ficaria surpreso ao descobrir que alguns dos cabeçalhos não garantem que eles nunca precisarão de uma biblioteca compartilhada (mesmo que eles sejam implementados dessa forma agora).

    
por 16.02.2011 / 16:00