Ferramenta Linux para autodownload e compilação do SourceForge?

1

Alguém fez alguma coisa (mesmo apenas um script) para baixar automaticamente, descompactar e fazer projetos fora do SourceForge no Linux? Como eu pude fazer isso?

Estou usando o Ubuntu 12.10, especificamente.

    
por Melodic 28.04.2013 / 10:11

3 respostas

2

O fluxo de trabalho padrão para instalar a partir do código-fonte é fazer o download do pacote, descompactá-lo, executar o script configure incluído, compilar e instalar. Portanto, para os casos em que o pacote que você deseja instalar segue o método padrão, você pode fazer isso:

#!/usr/bin/env bash

## Make a new empty directory ($$ is the script's PID)
echo "Creating directory $$"
mkdir $$
cd $$
## get the file name 
tar=$(basename "$1" | grep -Po "[^?]*(?=[?$])") 
## Download the file
wget $1 --output-document $tar
## Check if it is a gzipped or bzipped tar 
file=$(find . -type f);
istgz=$(echo $file | grep "tar\.gz\|tgz")
istbz=$(echo $file | grep "tar\.bz\|tbz")
ok=1

## Extract the archive
if [ $istbz ]; then
    tar xjf $file;
    ok=$? ## $? is the last command's exit status
elif [ $istgz ]; then
    tar xzf $file
    ok=$?
## If things did not go OK, complain
else
    echo "Something went wrong, perhaps the filetype is not recognized"
    exit 1;
fi
## If things went OK, install
if [ $ok = 0 ]; then
    ## Look for a configure script and cd into wherever it is
    conf=$(find . -name configure -executable)
    if [ $conf ]; then
        dir=$(dirname $conf);
        cd $dir;
        ## run the configure script, make and install
        ./configure &&  make && sudo make install && echo "Succesfully installed, installation directory was $$"
    else
        echo "No configure script found, exiting."
    fi
fi

Salve este script como, por exemplo, sforge.sh , torne-o executável ( chmod a+x sforge.sh ) e execute-o com o URL do pacote sourceforge que você deseja instalar. Certifique-se de usar o link direto e remova todas as referências a espelhos. Neste exemplo, estou baixando conky , quando clico no link "download direto" do sourceforge, a URL é

http://downloads.sourceforge.net/project/conky/conky/1.9.0/conky-1.9.0.tar.bz2?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fconky%2F%3Fsource%3Ddlp&ts=1367161220&use_mirror=netcologne

Eu só quero a primeira parte (em negrito) ou o nome do arquivo será estranho, então vou usar:

sforge.sh http://downloads.sourceforge.net/project/conky/conky/1.9.0/conky-1.9.0.tar.bz2

NOTA IMPORTANTE

Esse script funcionará somente para os pacotes que seguem o layout normal. Ele precisa ser um arquivo bz2 ou gzip e ele espera um script configure e um Makefile. Muitos pacotes não terão isso e o script não funcionará. Deve ser OK para muitos, se não a maioria dos casos, embora.

    
por 28.04.2013 / 17:06
1

Existem algumas ferramentas que podem ajudar com isso: fpm e Bernd Ahlers da Jordan Sissel fpm- culinária . O primeiro é capaz de compilar convenientemente pacotes a partir do código-fonte de uma maneira muito simples, o segundo fornecendo uma maneira de automatizar esse fluxo de trabalho.

Eu não vou entrar em detalhes, pois os projetos estão muito bem documentados e existem receitas de trabalho para diferentes tipos de código.

    
por 28.04.2013 / 10:37
0

Se eu entendi sua pergunta corretamente, não há uma ferramenta genérica para "criar automaticamente" todos os projetos. Cada projeto tem suas próprias etapas específicas para verificar dependências, baixar fontes, compilar & instalação. Se alguém puder criar um determinado aplicativo manualmente, ele poderá escrever um script de criação automática para esse determinado aplicativo e compartilhar o script com o público para a conveniência de todos.

Além disso, você pode tentar usar o ArchLinux , seu gerenciador de pacotes AUR está funcionando de forma semelhante, por exemplo. obtendo tarballs de código-fonte, instalando dependências, compilando e instalando. Se alguém quiser criar um pacote desse tipo, leia as Diretrizes para usuários do AUR .

    
por 28.04.2013 / 10:37