Как я могу создать пакет Debian для MediaWiki 1.25.1?

Я хотел бы создать легко устанавливаемый пакет debian (файл .deb) для MediaWiki 1.25.1, поскольку я знаю из личного опыта, что для новичков в веб-программировании, таких как я, установка MediaWiki может показаться невыполнимой задачей.

Я прочитал несколько руководств о том, как создавать пакеты Debian, например, , этот для пользователей Ubuntu и , этот в Вики Debian , но поправьте меня, если я неправильно, но они, кажется, упоминают только пакеты, которые устанавливаются с помощью утилиты make, в то время как MediaWiki, будучи Wiki-приложением, устанавливается (если вы можете даже назвать это установкой), создавая сервер Apache & MySQL база данных для вики и запуск скриптов установки. Но я знаю, что такой пакет debian можно создать, поскольку в репозиториях PPA (1.19) существует действительно старая версия MediaWiki, и это пакет debian.

Я знаю основную процедуру того, что должен делать любой такой пакет, а именно (вы должны заметить, что я получаю большую часть этого из своей собственной памяти плюс эта статья на mediwiki.org ]):

  • Установите LAMP или, как минимум, установите пакеты apache2, mysql-server, php5, php5-mysql и libapache2-mod-php5. Возможно через sudo apt-get install apache2 mysql-server php5 php5-mysql libapache2-mod-php5.
  • Установите некоторые дополнительные пакеты (строго говоря, они являются необязательными, но они невероятно полезны, особенно если вы новичок в MediaWiki), такие как imagemagick, inkscape, php5-cli и phpmyadmin, также через sudo apt-get install... Было бы замечательно, если бы GUI мог появиться во время установки и подсказать пользователям, какой из этих дополнительных пакетов должен быть установлен. Такой интерфейс может также пройти через процесс установки пароля MySQL)
  • Извлечь архив MediaWiki 1.25.1 в /var/lib/mediawiki
  • Создать виртуальную связь между /var/lib/mediawiki и /var/www/html/mediawiki (запустив sudo ln -s /var/lib/mediawiki /var/www/html/mediawiki)
  • Запустите mysql_secure_installation
  • Сконфигурируйте PHP (необязательно для пользователя) и перезапустите Apache после.
  • Сконфигурировать Apache (более подробно см. Гиперссылку на статью на mediawiki.org)
  • Откройте браузер на http: // localhost / mediawiki для завершения настройки MediaWiki.

Я просто не знаю, как создать пакет Debian, который бы делал это. В общем, мне нужна чья-то помощь, чтобы я мог сделать это, чтобы установка MediaWiki в Ubuntu могла быть немного упрощена для будущих пользователей.

Моя попытка создать пакет самостоятельно

Я создал каталог, /home/fusion809/Debian packaging/bzr, поэтому я могу попробовать следовать этому руководству в архиве mediawiki-1.25.1.tar.gz. Я перешел к здесь в руководстве, и созданный мной пакет debian (выполнив команду bzr builddeb... в моем каталоге /home/fusion809/Debian packaging/bzr/mediawiki/debian) имел размер всего 2,4 КБ (где tar-архив равен 23,7 МБ), и выдает сообщение об ошибке:

install-info: warning: no info dir entry in `/usr/share/info/lilypond/pictures/ross-beam-scan.jpg'
install-info: warning: no info dir entry in `/usr/share/info/lilypond/pictures/carter-brey.jpg'
install-info: warning: no info dir entry in `/usr/share/info/lilypond/pictures/darius-blasband.jpg'
install-info: warning: no info dir entry in `/usr/share/info/lilypond/pictures/orm-finnendahl.jpg'
install-info: warning: no info dir entry in `/usr/share/info/mime.info.gz'

при попытке установить его. Если вам интересно, как выглядит мой файл control, вот он:

Source: mediawiki
Section: unknown
Priority: optional
Maintainer: Brenton Horne <brentonhorne77@gmail.com>
Build-Depends: debhelper (>= 9)
Standards-Version: 3.9.5
Homepage: <insert the upstream URL, if relevant>
#Vcs-Git: git://anonscm.debian.org/collab-maint/mediawiki.git
#Vcs-Browser: http://anonscm.debian.org/?p=collab-maint/mediawiki.git;a=summary

Package: mediawiki
Architecture: all
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: MediaWiki, a free wiki application.
  MediaWiki is a free and open-source wiki application written in PHP that is maintained by the Wikimedia Foundation. It depends on
  Apache, MySQL and PHP.

мой файл rules выглядит так:

#!/usr/bin/make -f
# See debhelper(7) (uncomment to enable)
# output every command that modifies files on the build system.
#DH_VERBOSE = 1

# see EXAMPLES in dpkg-buildflags(1) and read /usr/share/dpkg/*
DPKG_EXPORT_BUILDFLAGS = 1
include /usr/share/dpkg/default.mk

# see FEATURE AREAS in dpkg-buildflags(1)
#export DEB_BUILD_MAINT_OPTIONS = hardening=+all

# see ENVIRONMENT in dpkg-buildflags(1)
# package maintainers to append CFLAGS
#export DEB_CFLAGS_MAINT_APPEND  = -Wall -pedantic
# package maintainers to append LDFLAGS
#export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed


# main packaging script based on dh7 syntax
%:
    dh $@ 

# debmake generated override targets
# This is example for Cmake (See http://bugs.debian.org/641051 )
#override_dh_auto_configure:
#   dh_auto_configure -- \
#   -DCMAKE_LIBRARY_PATH=$(DEB_HOST_MULTIARCH)
2
задан 29 May 2015 в 14:05

2 ответа

Пакеты в Debian/Ubuntu не должны быть созданы с помощью make. Технически, в debian/rules, существуют только определенные цели, которые должны быть достигнуты. Следующее что я (и группа Debian Flightgear) использование для копирования файлов с независимого от дуги tarball (никакая включенная компиляция, просто копирующие файлы) в пакет.

%:
    dh $@

override_dh_auto_install:
    dh_installdirs -pflightgear-data-aircrafts-ec130 usr/share/games/flightgear/Aircraft/ec130

    find -maxdepth 1 ! -name 'debian' -exec cp -r "{}" \
       debian/flightgear-data-aircrafts-ec130/usr/share/games/flightgear/Aircraft/ec130 \;

# Fix some insane permissions
    find $(CURDIR)/debian/flightgear-data-*/usr/share/games/flightgear \
        -type f -exec chmod 644 {} \;

# Drop some silly Windows PE32 executable files
    find $(CURDIR)/debian -type f -iname "*.mdl" -delete

# Drop empty directories
    find $(CURDIR)/debian -type d -empty -delete

В основном, override_dh_auto_install просто файлы копий формируют источник tarball в заключительный пакет, и удаляет некоторые ненужные файлы. Поскольку нет никакого файла "компиляции" в источнике tarball, некоторые из других целей ничего не делают.

можно следовать за чем-то вроде этого (наряду с использованием postinst и prerm сценарии) для автоматизации шагов, которые Вы упомянули. Обратите внимание, что установка дополнительных пакетов вошла бы debian/control, или как Depends, Recommends, или Suggests.

0
ответ дан 29 May 2015 в 14:05

Я бы порекомендовал использовать uupdate из devscripts, чтобы получить хороший старт для вашего пакета deb.

Установите необходимые пакеты

$ sudo apt-get install build-essential devscripts

Загрузите старый пакет из официального репозитория и новый tar-ball из апстрима. (Я использую 14.04)

$ mkdir ~/Downloads/mediawiki
$ cd ~/Downloads/mediawiki
$ apt-get source mediawiki
$ wget http://releases.wikimedia.org/mediawiki/1.25/mediawiki-1.25.1.tar.gz

Запустите uupdate, чтобы создать новую исходную папку из вышестоящего tar-шара и старого debian/control

$ cd mediawiki-1.19.14+dfsg   # depends on your Ubuntu version
$ uupdate ../mediawiki-1.25.1.tar.gz 1.25.1
$ cd ../mediawiki-1.25.1

Теперь вы должны проверьте, нужно ли вам вносить изменения в debian/control и т. д. файлы. Если все готово, вы можете собрать пакет deb и установить его

$ dpkg-buildpackage -us -uc
$ cd ..
$ sudo dpkg -i *.deb
0
ответ дан 29 May 2015 в 14:05

Другие вопросы по тегам:

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