LINUX.ORG.RU

Как сделать приложение, которое устанавливается по трем волшебным словам?

 , , ,


0

1

Собственно:

user@host:~$ cd /usr/src/myapp
user@host:/usr/src/myapp$/.configure&&make&&make install
Как это делается? Я написал приложени (питоновское, вернее даже скрипт), теперь хочу сделать его устанавливаемым. И чтобы был доступен стандартно в $PATH, то есть:
user@host:~$ myapp 
Hello World! 

Реквестирую инструкцию, в гугле то ли плохо искал, то ли не там.

man autoconfig

а вообще, у пыхтона есть стандартные средства для подобного, что-то типа python-install или как он там назывался

Dark_SavanT ★★★★★
()

Если это просто один скрипт, до достаточно положить его в /usr/bin/ ну или там /usr/local/bin, чтобы не смешивать с остальными бинарниками и сделать исполняемым. Зачем тут городить какие-то инсталляторы? А configure и make нужны, если твоё приложение нужно компилировать из кучи исходников.

shell-script ★★★★★
()
Ответ на: комментарий от shell-script

Мне в дальнейшем все равно пригодится

morpheus
() автор топика

Толстота

$ mkdir python-autoconfed
$ cd python-autoconfed
$ mkdir src
$ echo <<END >./configure.ac
AC_INIT([python-autoconfed], [0.0.1])
AC_CONFIG_SRCDIR([src/Main.py.in])

AM_INIT_AUTOMAKE

AX_PYTHON # macro from autoconf-archive
# Define PYTHON_BIN PYTHON_INCLUDE_DIR and PYTHON_LIB variables
AC_CONFIG_FILES([Makefile
                 src/Makefile
		 src/Main.py])
AC_OUTPUT
END
$ echo <<END >./Makefile.am
SUBDIRS = src
END
$ echo <<END >./src/Makefile.am
bin_SCRIPTS = Main.py
END
$ echo <<END >./src/Main.py.in
#!/usr/bin/env @PYTHON_BIN@

print "Hello Wold!"
END
$ touch ./NEWS ./README ./AUTHORS ./ChangeLog
$ autoreconf -i
...
$ ./configure --prefix=/home/kim/local
...
$ make && make install
kim-roader ★★
()

а в чём проблема? не знаешь как в make копировать (для цели install прописать cp, chown, chmod)? а ничего другого питоновским скриптам и не нужно...

mm3 ★★★
()
Ответ на: комментарий от buddhist

Да черт его знает.

По ходу не умеет

nkt@arnor gviewtheme % python setup.py --help-commands
Standard commands:
  build            build everything needed to install
  build_py         "build" pure Python modules (copy to build directory)
  build_ext        build C/C++ extensions (compile/link to build directory)
  build_clib       build C/C++ libraries used by Python extensions
  build_scripts    "build" scripts (copy and fixup #! line)
  clean            clean up temporary files from 'build' command
  install          install everything from build directory
  install_lib      install all Python modules (extensions and pure Python)
  install_headers  install C/C++ header files
  install_scripts  install scripts (Python or otherwise)
  install_data     install data files
  sdist            create a source distribution (tarball, zip file, etc.)
  register         register the distribution with the Python package index
  bdist            create a built (binary) distribution
  bdist_dumb       create a "dumb" built distribution
  bdist_rpm        create an RPM distribution
  bdist_wininst    create an executable installer for MS Windows
  upload           upload binary package to PyPI
  check            perform some checks on the package

usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
   or: setup.py --help [cmd1 cmd2 ...]
   or: setup.py --help-commands
   or: setup.py cmd --help
Но собственно и не нужно. Следить за установленным добром задача пакетного менеджера.

fat_angel ★★★★★
()
Ответ на: комментарий от fat_angel

`man install`

Ну вообще говоря install не является частью POSIX так что за пределами GNU/Something систем есть шансы её и не встретить. Autotools, например, копирует install-sh утилитку в каждый собираемый automake проект, для того чтобы использовать её в качестве install.

kim-roader ★★
()
Ответ на: комментарий от fat_angel

Следить за установленным добром задача пакетного менеджера

Тогда непонятно зачем нужно правило install. Для пакетного менеджера bdist выглядит разумнее.

kim-roader ★★
()
Ответ на: комментарий от kim-roader

Ну вообще говоря install не является частью POSIX так что за пределами GNU/Something систем есть шансы её и не встретить.

Спасибо, буду иметь ввиду.

fat_angel ★★★★★
()
Ответ на: комментарий от kim-roader

Тогда непонятно зачем нужно правило install. Для пакетного менеджера bdist выглядит разумнее.

Согласен выглядит странно, но по моему мнению использование autohell для пайтона еще большее зло.

fat_angel ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.