Czy ktoś zrobił coś (nawet tylko skrypt), aby automatycznie pobierać, rozpakowywać i tworzyć projekty z SourceForge w Linuksie? Jak mogłem to zrobić?
Używam w szczególności Ubuntu 12.10.
Czy ktoś zrobił coś (nawet tylko skrypt), aby automatycznie pobierać, rozpakowywać i tworzyć projekty z SourceForge w Linuksie? Jak mogłem to zrobić?
Używam w szczególności Ubuntu 12.10.
Odpowiedzi:
Standardowym przepływem pracy do instalacji ze źródła jest pobranie pakietu, rozpakowanie go, uruchomienie dołączonego configure
skryptu, kompilacja i instalacja. Tak więc w przypadkach, w których pakiet, który chcesz zainstalować, jest zgodny ze standardową metodą, możesz to zrobić:
#!/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
Zapisz ten skrypt, na przykład, sforge.sh
aby był wykonywalny ( chmod a+x sforge.sh
) i uruchom go z adresem URL pakietu sourceforge, który chcesz zainstalować. Upewnij się, że używasz bezpośredniego linku i usuwasz wszelkie odniesienia do mirrorów. W tym przykładzie pobieram conky
, kiedy klikam link „bezpośrednie pobieranie” z sourceforge, adres URL to
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
Chcę tylko pierwszą część (pogrubioną czcionką), inaczej nazwa pliku będzie dziwna, więc użyję:
sforge.sh http://downloads.sourceforge.net/project/conky/conky/1.9.0/conky-1.9.0.tar.bz2
WAŻNA UWAGA
Ten skrypt będzie działał tylko dla tych pakietów, które mają normalny układ. Musi to być plik smołowany bz2
lub gzip
plik i oczekuje configure
skryptu i pliku Makefile. Wiele pakietów nie będzie ich posiadało, a skrypt nie będzie działał. Jednak w wielu przypadkach powinno być OK.
tar
utworzy nowy folder, czy nie. Naprawdę polecam, abyś zawsze robił to w pustym katalogu zgodnie ze zaktualizowanym skryptem.
basename
.
gnome-terminal -e "bash -c '<SCRIPT-LOCATION>/sforge.sh $(xsel -o -b)'"
Działa również z $(xclip -o -selection c)
zamiast xsel. Teraz wystarczy kliknąć prawym przyciskiem myszy, skopiować link do schowka i nacisnąć ctrl + super + D, a wszystko inne jest dla mnie zrobione! : D
Istnieje kilka narzędzi, które mogą w tym pomóc: fpm Jordana Sissela i fpm-cookery Bernda Ahlersa . Pierwszy jest w stanie wygodnie budować pakiety z kodu źródłowego w bardzo prosty sposób, drugi zapewnia sposób na zautomatyzowanie tego przepływu pracy.
Nie będę wchodził w szczegóły, ponieważ projekty są bardzo dobrze udokumentowane, a istnieją przepisy na różne rodzaje kodu.
Jeśli dobrze zrozumiałem twoje pytanie, nie ma takiego ogólnego narzędzia do „automatycznego budowania” wszystkich projektów. Każdy projekt ma swoje określone kroki w celu sprawdzenia zależności, pobrania źródła, kompilacji i instalacji. Jeśli ktoś może ręcznie zbudować określoną aplikację, może napisać skrypt automatycznej kompilacji dla tej aplikacji, a następnie udostępnić skrypt publicznie dla wygody wszystkich.
Dodatkowo możesz spróbować użyć ArchLinux , jego menedżer pakietów AUR działa w podobny sposób, np. Pobiera pakiety kodu źródłowego, instaluje zależności, kompiluje i instaluje. Jeśli chcesz utworzyć taki pakiet, przeczytaj Wskazówki dla użytkowników AUR .
find
otrzymywaniem zbyt wielu rzeczy. Chciałem, aby mógł on działać w moim katalogu domowym, więc najpierw go poprawiam.