Стандартный рабочий процесс для установки из исходного кода - это загрузить пакет, распаковать его, запустить включенный 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
ВАЖНАЯ ЗАМЕТКА
Этот скрипт будет работать только для тех пакетов, которые следуют нормальному макету. Это должен быть файл bz2
или gzip
файл, и он ожидает configure
сценарий и Makefile. Многие пакеты не будут иметь их, и скрипт не будет работать. Это должно быть хорошо для многих, если не для большинства случаев.