Кто-нибудь сделал что-нибудь (даже просто скрипт) для автоматической загрузки, распаковки и создания проектов из SourceForge в Linux? Как я мог это сделать?
Я использую Ubuntu 12.10, в частности.
Кто-нибудь сделал что-нибудь (даже просто скрипт) для автоматической загрузки, распаковки и создания проектов из SourceForge в Linux? Как я мог это сделать?
Я использую Ubuntu 12.10, в частности.
Стандартный рабочий процесс для установки из исходного кода - это загрузить пакет, распаковать его, запустить включенный скрипт configure
, скомпилировать и установить. Таким образом, для тех случаев, когда пакет, который вы хотите установить, следует стандартному методу, вы можете сделать это:
#!/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
Сохраните этот скрипт как, например, sforge.sh
, сделайте его исполняемым (chmod a+x sforge.sh
) и запустите его с URL-адресом пакета sourceforge, который вы хотите установить. Убедитесь, что вы используете прямую ссылку и удалите все ссылки на зеркала. В этом примере я загружаю conky
, когда я нажимаю на ссылку "прямая загрузка" из sourceforge, 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
Я хочу только первую часть (жирным шрифтом) или имя файла будет странным, поэтому я буду использовать:
sforge.sh http://downloads.sourceforge.net/project/conky/conky/1.9.0/conky-1.9.0.tar.bz2
ВАЖНАЯ ЗАМЕТКА
Этот скрипт будет работать только для тех пакетов, которые следуют нормальному макету. Это должен быть tar- файл bz2
или gzip
и он ожидает скрипт configure
и Makefile. Многие пакеты не будут иметь их, и скрипт не будет работать. Это должно быть хорошо для многих, если не для большинства случаев.
Есть несколько инструментов, которые могут помочь с этим: fpm Джордана Сисселя и fnd-кулинария Бернда Алерса. Первый - возможность простого создания пакетов из исходного кода, второй - способ автоматизации этого рабочего процесса.
Я не буду вдаваться в подробности, так как проекты очень хорошо документированы и есть рабочие рецепты для различных типов кода.
Если я правильно понял ваш вопрос, то нет такого универсального инструмента для «автоматической сборки» всех проектов. Каждый проект имеет свои конкретные шаги для проверки зависимостей, загрузки исходного кода, компиляции и установки. Если кто-то может создать определенное приложение вручную, он / она может написать сценарий автоматической сборки для этого определенного приложения, а затем предоставить его всем для удобства.
Кроме того, вы можете попытаться использовать ArchLinux, его менеджер пакетов AUR функционирует аналогичным образом, например, получение архивов исходного кода, установка зависимостей, компиляция и установка. Если вы хотите создать такой пакет, прочитайте Руководство пользователя AUR.