2016-08-24 5 views
0

Я пытаюсь сделать пакет и установить его в slackware OS. У моего пакета только двоичный исполняемый файл. Я создал пакет с .tgz-файлом, используя инструмент makepkg. Но когда я попытался установить пакет с помощью инструмента installpkg, двоичный файл всегда извлекался в корневой каталог. Так как я могу изменить каталог назначения в другое место (например,/usr/bin).Как установить конкретный каталог назначения при установке пакета с помощью инструмента installpkg slackware

В чем смысл использования скрипта doinst.sh в пакете. Могу ли я написать свой собственный скрипт?

Благодаря

ответ

0
  1. сделать временный каталог
  2. Сделать древовидная структура установленных файлов
  3. Make установить/каталог с файлом 'отвисшей по убыванию' и (по желанию) '' doinst.sh
  4. Запуск makepkg /tmp/package-name-version-arch-build_tag.txz

    # mkdir /tmp/pkg; cd /tmp/pkg 
    # mkdir -p usr/bin 
    # cp /path/to/your/file usr/bin/ 
    # chmod a+x usr/bin/file 
    # mkdir install 
    # cat <<EOF >install/slack-desc 
    appname: appname (short description of app) 
    appname: 
    appname: Long description of appname, wrapped at 71 characters *after* the 
    appname: colon following "appname" (and the 'handy ruler' should start at 
    appname: that colon and be exactly 71 characters long). 
    appname: If there is room, there might be a link to the homepage of the 
    appname: application on one of these lines, but it's not necessary. 
    appname: 
    appname: The maximum number of lines prefixed by "appname:" is 11. 
    appname: Lines without any other text should *not* have a space after the : 
    appname: 
    EOF 
    # makepkg /tmp/appname-1.0-x86_64-1_me.txz 
    # upgradepkg --install-new /tmp/appname-1.0-x86_64-1_me.txz 
    
+0

Помните, что установка Slackware использует ash для установки ОС, поэтому не используйте несовместимые команды в вашем скрипте doinst.sh. – bormant

+0

Спасибо за ответ. Можно ли извлечь двоичный файл в конкретный каталог при вводе команды installpkg. Теперь в приведенном выше примере показано, что копирование двоичного файла в usr/bin вручную до того, как мы запустим команду makepkg. Мое намерение состоит в том, чтобы создать каталог и поместить в него двоичный файл и сделать пакет .tgz.Then при установке его с помощью installpkg мне нужно, чтобы этот двоичный файл был извлечен в/usr/bin моей системы. – skesh

+0

Обратите внимание, что двоичный файл переходит в/tmp/pkg/usr/bin/file. Когда вы запускаете makepkg в каталоге/tmp/pkg, пакет получает полное поддерево из текущего каталога (/ tmp/pkg), поэтому пакет содержит usr/bin/file. При запуске installpkg файл переходит в/usr/bin/file. – bormant

 Смежные вопросы

  • Нет связанных вопросов^_^