Заголовки повышения отдельно упаковываются под Fedora?

Решением Steven является хорошее, простое. Это не таким образом производительно для очень больших файлов (файлы, которые не подходят удобно приблизительно к половине Вашей RAM) из-за шага сортировки. Вот awk версия. Это также немного более сложно, потому что это пытается сделать правильную вещь для нескольких специальных символов (новые строки, ', \, :).

awk '
  {for (i=1; i<=length; i++) ++c[substr($0,i,1)]; ++c[RS]}
  function chr (x) {return x=="\n" ? "\\n" : x==":" ? "\\072" :
                           x=="\\" || x=="'\''" ? "\\" x : x}
  END {for (x in c) printf "'\''%s'\'': %d\n", chr(x), c[x]}
' | sort -t : -k 2 -r | sed 's/\\072/:/'

Вот решение для Perl на том же принципе. Perl имеет преимущество способности отсортировать внутренне. Также это не будет правильно считать дополнительную новую строку, если файл не закончится в символе новой строки.

perl -ne '
  ++$c{$_} foreach split //;
  END { printf "'\''%s'\'': %d\n", /[\\'\'']/ ? "\\$_" : /./ ? $_ : "\\n", $c{$_}
        foreach (sort {$c{$b} <=> $c{$a}} keys %c) }'

5
03.02.2011, 00:53
3 ответа

Смотря на пакет повышения-devel, это требует пакета повышения той же версии. Вот то, чего требует пакет повышения-devel:

$ 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

Пакет повышения-devel является единственным пакетом, который имеет заголовочные файлы повышения, и он требует других пакетов, таким образом, ответ на Ваш вопрос: Нет, нет никаких пакетов, которые можно установить, который только предоставил бы заголовки. Fedora упаковывает, обычно имеют их -devel пакеты требуют другого пакета, который включает любые библиотеки, пользовавшиеся для компиляции использования заголовков в пакете, как в этом случае.

5
27.01.2020, 20:40
  • 1
    Да, это - то, что я заявил в вопросе. –  maxschlepzig 03.02.2011, 11:08
  • 2
    boost-devel пакет является единственным пакетом, который имеет заголовочные файлы повышения, и он требует других пакетов, таким образом, ответ на Ваш вопрос: Нет, нет никаких пакетов, которые можно установить, который только предоставил бы заголовки. Fedora упаковывает, обычно имеют их-devel пакеты, требуют другого пакета, который включает любые библиотеки, пользовавшиеся для компиляции использования заголовков в пакете, как в этом случае. –  jsbillings 03.02.2011, 17:03
  • 3
    хорошо, хороший, который Вы упоминаете, как-devel пакеты структурированы (в целом) в мире Fedora. Я не знал это. –  maxschlepzig 04.02.2011, 10:32

Большая часть Повышения является заголовком только библиотека. Но существуют некоторые, который должен быть скомпилирован. Ответ от jsbillings перечисляет их всех. Если Вы не будете пользоваться ни одной из тех библиотек, которые требуют скомпилированных библиотек затем, Вы не должны устанавливать их. Просто установите заголовки только.

Посмотрите здесь для: Начало работы на платформах Unix.

0
27.01.2020, 20:40
  • 1
    Да, я знаю это. Я спрашивал, существует ли пакет только для заголовка, доступный в Fedora 14 (т.е. который не зависит от общих библиотеки). Я имею в виду, хочу ли я создать пакет, который только требует заголовков повышения, не помогает, что я могу вручную установить их за пределами диспетчера пакетов. –  maxschlepzig 03.02.2011, 11:07

Вы могли всегда спрашивать специалиста по обслуживанию повышения, если они разделят заголовки, для которых не нужно, делил библиотеки в другой пакет.

Однако я действительно задаюсь вопросом, почему 1¢ дискового пространства имеет значение здесь? особенно, поскольку я не был бы удивлен найти, что некоторые заголовки не гарантируют, что им никогда не будет нужна общая библиотека (даже при том, что они реализованы тот путь теперь).

0
27.01.2020, 20:40
  • 1
    Это не примерно дисковое пространство, это также о времени установки и специфике самодокументирования .spec файла - т.е. если только заголовки повышения могли бы быть указаны как зависимость затем нет никаких недоразумений о реальных зависимостях программы. –  maxschlepzig 02.03.2011, 00:31

Теги

Похожие вопросы