Вот то, как я сделал бы это путем парсинга pkg, информация произвела:
$ pkg info archiver/gnu-tar | nawk '
/^ *[A-Za-z ]*:/ {
gsub("^ *","",$1)
if(NR>1) printf("\n")
name=substr($0,1,index($0,":")-1);
value=substr($0,index($0,":")+1);
gsub(" ","_",name);
printf("%s=%s",name,value)
next
}
{
gsub("^ *","",$1)
printf("%s",$0)
} ' | sed -e 's/= /="/' -e 's/$/"/'
Вывод:
Name="archiver/gnu-tar"
Summary="GNU version of the tar archiving utility"
Description="Tar is a program for packaging a set of files as a singlearchive in tar format."
Category="Development/GNU"
State="Installed"
Publisher="solaris"
Version="1.26"
Build_Release="5.11"
Branch="0.175.0.0.0.2.537"
Packaging_Date="October 19, 2011 09:11:16 AM"
Size="1.73 MB"
FMRI="pkg://solaris/archiver/gnu-tar@1.26,5.11-0.175.0.0.0.2.537:20111019T091116Z"
make install
не сделает Вас RPM-пакетом, он просто переместит скомпилированные исполняемые файлы в надлежащие места (как/usr/bin/local). Никогда действительно необходимо использовать make install
; это - просто удобство, которое помещает Ваши исполняемые файлы в центральное расположение вместо того, чтобы оставить их, где они были созданы в любом каталоге, Вы помещаете источник. Места, в которые это перемещает материал, находятся также, вероятно, в Вашем PATH
, таким образом, Вы не должны вводить полный путь, когда Вы хотите выполнить свой материал.
Нет действительно никакого такого понятия как установка в Linux, поскольку это включает ключи реестра и тайные файлы, скрытые в углах ОС как в Windows. Это просто помещает файлы в более удобные, organizable места. Часто сами программы будут обрабатывать конфигурацию создания и каталоги хранилища. Создание RPM-пакетов несколько более сложно и требует, среди прочего, чтобы Вы записали a .spec
файл, который указывает вещи как имя, версия, и описание, а также инструкции для того, что диспетчер пакетов, как предполагается, делает, чтобы создать и установить необработанные внутренности.
Если Вы смотрите на тот вывод:
libtool: install: /usr/bin/install -c autocutsel /usr/local/bin/autocutsel
libtool: install: /usr/bin/install -c cutsel /usr/local/bin/cutsel
install
просто файлы копий вокруг и верные полномочия наборов на тех файлах. autocutsel
и cutsel
были уже скопированы в /usr/local/bin
.
И последние две строки:
make[1]: Nothing to be done for `install-data-am'.
make[1]: Leaving directory `/root/Desktop/autocutsel-0.9.1'
install-data-am
отдельное, делают цель, и по любой причине там не имеет отношения для него в Вашей системе. Это не ошибка, просто уведомление.
На данном этапе, если Вы просто входите autocutsel
или cutsel
надлежащая программа должна работать. Обратитесь к документации autocutsel для всего с тех пор.
Некоторые (немногие!) исходные пакеты предлагают a make-rpm
или подобная цель, но я не положил бы, что результатом являются на должном уровне относительно Вашего распределения упаковочные инструкции. Инструкции по об/мин Fedora являются, возможно, самыми обширными, и вероятно применимыми с небольшим изменением в RHEL.
Посмотрите, если пакет доступен для RHEL, или проверьте EPEL на него. Если Вы хотите немного более новую версию, чем одно доступное, можно запустить путем захвата исходного об/мин, распаковать его и отредактировать его для дегустации. Но дистрибутивы enterprisey (RHEL, SLES, Oracle Linux, CentOS, и т.д.) предпочитают не увеличивать номера версий когда-либо (их пользователи чрезвычайно даже против незначительных интерфейсных изменений!), поэтому если Вы видите древнюю версию чего-то, на которых половине интернет-криков невероятно небезопасно и цитируют дюжину CVEs и страшные истории, больше othen, чем не, распределение решило проблемы путем бэкпортирования патчей к их старинным вещам.
В любом случае использование доморощенного об/мин делает Вас ответственными за интеграцию с системой, отслеживая (и исправляя) ошибки, после восходящего потока... это - большая работа, и если у Вас нет очень специализированных потребностей, я избегал бы его.
make
запускает скрипт, названный соответственно достаточно, make-файл. Аргумент Вы даете make
указывает цель в том make-файле.
Цели могут сделать что-либо, хотя их исходная и наиболее распространенная цель состоит в том, чтобы работать, список команд раньше компилировал исходный код. Вы не должны знать эти команды, все, что Вы делаете измениться на правильный каталог и сделать a make
- возможно с некоторыми опциями в случае необходимости. Исходный код обычно разделяется на многие файлы (тысячи, если Вы говорите о чем-то как ядро Linux) - make
существует для разрешения компиляции всех файлов с одной командой вместо многих.
Исполняемый файл конечного результата может быть в корне того каталога в подкаталоге build
, или другие - это составило, кто бы ни записал make-файл.
Некоторые проекты/авторы включают install
цель в make-файле. Обычно это поместит исполняемый файл в каталог как /usr
или /bin
, и скопируйте по любым файлам библиотеки в правильных местах, если они были также скомпилированы. Таким образом, после a make install
обычно можно использовать программу путем вызова его на командную строку. Это - конвенция, не стандарт, таким образом, определенное поведение может отличаться в зависимости от автора или проекта.
make install
должен работать, какой менеджер по распространению или диспетчер пакетов у Вас есть продолжение.
Я уверен, что некоторые авторы/проекты обеспечивают make-файлы, которые создают пакеты, но на том уровне они могут также создать и распределить пакет непосредственно.
/usr/local/bin
? Ваш ПУТЬ включает тот каталог? – Backgammon 31.01.2014, 11:28hash -r
, или запустите новую оболочку. – Mikel 01.02.2014, 05:48