Можно ли скомпилировать файл make в другой каталог?

На самом деле нет. Существуют и другие типы использования ЦП. Если вы выполните sar -u ALL, вы увидите загрузку процессора

.
00:00:01        CPU      %usr     %nice      %sys   %iowait    %steal      %irq     %soft    %guest     %idle
00:10:01        all     89.42      0.00      0.28      0.00      0.00      0.00      0.02      0.00     10.28

Как отмечает автор, существуют и другие типы использования процессора, в том числе программы пользовательского пространства (%usr ), улучшенное время обработки (%usr)(не уверен, как это рассчитывается ), программы пространства ядра (%sys ), время ожидания ввода-вывода (диски)(%iowait ), время, потраченное на кражу циклов с одного процессора (%steal ), и прерывание запросы (%irq, %soft ). Если процессор не выполняет ничего из перечисленного, он считается бездействующим (%idle ). Их сумма всегда должна быть 100%.

1
28.05.2020, 11:41
1 ответ

При компиляции незнакомого исходного пакета всегда следует начинать с чтения его файлов READMEи INSTALL, если они существуют в пакете.

Хорошо -сделанный tar-архив с исходным кодом должен всегда распаковываться в один подкаталог -относительно того, куда вы запускаете команду для его распаковки. Но не все дистрибутивы с исходным кодом сделаны хорошо:вы всегда должны сначала проверить список содержимого с помощью tar tf tarball.tar.gzперед извлечением незнакомого tar-архива и, если необходимо, создать рабочий каталог для этого конкретного исходного пакета, cdв его и запустите там команду извлечения.

Если используется процесс сборки ./configure; make; make install(, то есть он использует Autoconf ), то вы можете использовать параметры строки команды -на этапе configure, чтобы определить, куда будет установлен конечный результат.См. ./configure --helpдля получения списка опций, доступных в конкретном исходном пакете.

Возможно, вам следует всегда использовать что-то вроде ./configure --prefix=/usr/local, ./configure --prefix=/opt/<name of software package>или, может быть,./configure --prefix=$HOME/Desktop/My_Software/<name of software package>

Если процесс сборки начинается только с make, то обычно в основных Makefileи/или config.hесть несколько переменных, которые можно изменить, чтобы определить место установки.

Перед запуском make install(, который обычно является единственной частью процесса, который может потребоваться для запуска от имени пользователя root, в зависимости от местоположения (s )программа должна быть установлена ​​в ), обычно рекомендуется запустить make -n install, чтобы он перечислил команды, которые будут выполняться, если они будут выполнены без опции -n, и убедитесь, что целевой каталог/каталоги указаны правильно.

make cleanобычно удаляет все результаты процесса компиляции из каталога исходного кода и оставляет все файлы конфигурации времени компиляции -нетронутыми.

Некоторые, но не все пакеты с исходным кодом также имеют make uninstall, который попытается удалить файлы, установленные make install.

Если основной каталог исходного кода включает в себя подкаталог -с именем debian, который содержит файлы с именами rulesи control, то разработчик включил средства для автоматической сборки *.debпакета (с )из этого пакета распространения исходного кода. В этом случае вы можете использовать команду debuild(или один из ее эквивалентов, например fakeroot debian/rules binary), для создания одного или нескольких двоичных пакетов *.deb, которые можно установить с помощью dpkgили apt, как обычно.

Если вы хотите создавать *.debпакеты из пакета с исходным кодом, в котором еще нет средств упаковки Debian, добавить их, как правило, не составит большого труда. Это иногда называют «дебианизацией» пакета исходного кода. См. эту ссылку:https://www.debian.org/doc/manuals/debmake-doc/ch04.en.html

3
18.03.2021, 23:34

Теги

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