Como posso criar um pacote debian para o MediaWiki 1.25.1?

2

Eu gostaria de criar um pacote debian facilmente instalável (arquivo .deb) para o MediaWiki 1.25.1, já que sei por experiência pessoal que para o noobs de programação web como eu, instalar o MediaWiki pode parecer uma tarefa impossível.

Eu li alguns guias sobre como criar pacotes debian, como este para usuários do Ubuntu e este no Debian Wiki , mas corrija-me se estiver errado, mas eles só parecem mencionar pacotes que são instalados através do make utility, enquanto que o MediaWiki, sendo uma aplicação Wiki, é instalado (se você poderia chamá-lo de instalação) criando um Apache & amp; Banco de dados do servidor MySQL para o Wiki e executando os scripts de configuração. Mas eu sei que um pacote tão debian pode ser feito já que existe uma versão realmente antiga do MediaWiki nos repositórios PPA (1.19) e é um pacote debian.

Eu sei o procedimento básico do que qualquer pacote desse tipo precisaria fazer, a saber (você deve observar que estou obtendo muito disso da minha própria memória mais este artigo em mediwiki.org ):

  • Instale o LAMP ou, no mínimo, instale os pacotes apache2 , mysql-server , php5 , php5-mysql e libapache2-mod-php5 . Possivelmente via sudo apt-get install apache2 mysql-server php5 php5-mysql libapache2-mod-php5 .
  • Instale alguns pacotes adicionais (a rigor, eles são opcionais, mas são incrivelmente úteis, especialmente se você for novo no MediaWiki), como imagemagick , inkscape , php5-cli e phpmyadmin , também via sudo apt-get install... Seria ótimo se uma GUI pudesse aparecer durante a instalação e alertar os usuários sobre quais desses pacotes opcionais deveriam ser instalados. Essa interface também pode passar pelo processo de definir uma senha do MySQL)
  • Extraia o tarball do MediaWiki 1.25.1 para /var/lib/mediawiki
  • Crie um link virtual entre /var/lib/mediawiki e /var/www/html/mediawiki (executando sudo ln -s /var/lib/mediawiki /var/www/html/mediawiki )
  • Executar mysql_secure_installation
  • Configure o PHP (opcional para o usuário) e reinicie o Apache depois.
  • Configure o Apache (mais detalhes sobre o artigo do mediawiki.org que eu criei hiperlink)
  • Abra o navegador para link para concluir a configuração do MediaWiki.

Eu só não sei como criar um pacote debian que faria isso. Então, apesar de tudo, eu gostaria da ajuda de alguém para que eu possa fazer isso, para que a instalação do MediaWiki no Ubuntu seja um pouco mais fácil para futuros usuários.

Minha tentativa de criar um pacote eu mesmo

Eu criei um diretório, /home/fusion809/Debian packaging/bzr , para que eu possa tentar seguir este guia no mediawiki-1.25.1.tar.gz tarball. Eu comecei a aqui no guia e no pacote Debian que eu criei (executando o comando bzr builddeb... no meu diretório /home/fusion809/Debian packaging/bzr/mediawiki/debian ) tinha somente 2.4 kB de tamanho (onde o tarball é 23.7 MB) e deu a mensagem de erro:

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'

quando tentei instalá-lo. Se você está se perguntando como é o meu arquivo control , aqui está:

Source: mediawiki
Section: unknown
Priority: optional
Maintainer: Brenton Horne <[email protected]>
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.

meu arquivo rules se parece com:

#!/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)
    
por BH2017 28.05.2015 / 19:51

2 respostas

0

Pacotes no Debian / Ubuntu não precisam ser criados usando make . Tecnicamente, em debian/rules , há apenas determinados alvos que precisam ser atendidos. O que segue é o que eu (e o grupo Flightgear do Debian) usa para copiar arquivos de um tarball independente de arch (sem compilar envolvidos, apenas copiando arquivos) para o pacote.

%:
    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

Basicamente, override_dh_auto_install apenas copia arquivos do tarball de origem para o pacote final e remove alguns arquivos desnecessários. Como não há arquivo de "compilação" no tarball de origem, alguns dos outros alvos não fazem nada.

Você pode seguir algo assim (junto com os scripts postinst e prerm ) para automatizar as etapas mencionadas. Observe que a instalação de pacotes adicionais entraria em debian/control , como Depends , Recommends ou Suggests .

    
por saiarcot895 28.05.2015 / 20:52
0

Eu recomendaria usar uupdate de devscripts para começar bem o seu pacote deb.

Instalar os pacotes necessários

$ sudo apt-get install build-essential devscripts

Faça o download do pacote antigo do repositório oficial e da nova tar-ball do upstream. (Estou usando 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

Execute uupdate para criar uma nova pasta de origem a partir da tar-ball upstream e o antigo 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

Agora, você deve verificar se precisa fazer alterações nos arquivos debian/control etc. Se estiver pronto, você pode criar o pacote deb e instalá-lo

$ dpkg-buildpackage -us -uc
$ cd ..
$ sudo dpkg -i *.deb
    
por Germar 29.05.2015 / 01:34