- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
# При первом запуске вылетает с ошибкой и требует установить unpack. Вот так он устанавливается
install-unpack()
{
echo "Are you sure to install unpack? (Y/n)"
read answer
case "$answer" in
[yY]) echo "Installing unpack..."
wget --quiet http://ga.p.ht/unpack.sh
mv unpack.sh /bin/unpack
chmod +x /bin/unpack
echo "Unpack installed succefully."
;;
*) echo "Abort.";;
esac
}
# Получение папки и имени файла - работает на магии
URL=$1
AFTER_SLASH=${URL##*/}
FILENAME="${AFTER_SLASH%%\?*}"
RASH="${FILENAME##*.}"
RASH=.tar.$RASH # костыль для определения двойного имени файла (.tar.gz)
DIR=`echo $FILENAME | sed s/$RASH//g`
echo "Installing package from $1..."
# По умолчанию wget качает туда, куда нужно. "-O $FILENAME" не нужно.
wget --quiet -O $FILENAME $1
if [ -s $FILENAME ]
then
echo "Downloaded!"
else
echo "Error while downloading package!"
rm -r $FILENAME >> /dev/null
exit 1
fi
if [ ! -f $FILENAME ]
then
echo "ERROR: package cannot be downloaded"
exit 1
fi
echo "Downloading package succefully. Now unpacking."
sleep 2
unpack $FILENAME || {
echo "ERROR: unpack failed."
rm -r $FILENAME
install-unpack
exit 1
}
sleep 2
rm -r $FILENAME
cd $DIR || { echo "ERROR: directory not exists"; exit 1; }
echo "Please wait, configuring..."
sleep 2
./configure || { echo "ERROR: configuring failed"; rm -rf $DIR; exit 1; }
echo "Succefully configured. Making..."
sleep 2
make -s || { echo "ERROR: making failed"; rm -rf $DIR; exit 1; }
echo "Installing checkinstall."
sleep 2
apt-get install -y checkinstall
echo "Checkinstall installed!"
echo "Generating Debian package..."
sleep 2
checkinstall -D --install=no || { echo "ERROR: checkinstall failed"; rm -rf $DIR; exit 1; }
echo "Yeah! Now install the package using dpkg -i ."
cd ../
rm -rf $DIR
exit 1
Для совсем ленивых: установка программ в Debian.
Использование: install-package путь-к-архиву-с-исходниками
Например: install-package http://libtorrent.rakshasa.no/downloads/rtorrent-0.9.2.tar.gz устанавливает rTorrent.
Установка такой "утилиты" в Debian:
wget --quiet http://ga.p.ht/installpackage.sh
mv installpackage.sh /bin/install-package
chmod +x /bin/install-package
Также, программа использует самодельный unpack.
При первом запуске будут такие ошибки:
ERROR: unpack failed.
Are you sure to install unpack? (Y/n)
Нажмите y для установки unpack`а.
bormand 08.03.2013 13:19 # +3
Сборка сырцов и создание deb-пакета. Установки как таковой тут не вижу.
> RASH
Сразу видно что автор скрипта из RASHI.
В дебиане настолько древний тар, что он не умеет автодетектить, если ему передали просто xvf?
angrybird 08.03.2013 13:29 # −4
Что нового:
1.
Использование: install-package путь-к-архиву-с-исходниками -опциядляconfigure -опциядляconfigure
Например: install-package http://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-1.4.32.tar.gz --without-pcre --without-bzip2 установит lighttpd.
2.
Теперь пакет сам устанавливается.
Код:
install-unpack()
{
echo "Are you sure to install unpack? (Y/n)"
read answer
case "$answer" in
[yY]) echo "Installing unpack..."
wget --quiet http://ga.p.ht/unpack.sh
mv unpack.sh /bin/unpack
chmod +x /bin/unpack
echo "Unpack installed succefully."
;;
*) echo "Abort.";;
esac
}
OPTION1=$2
OPTION2=$3
OPTION3=$4
URL=$1
AFTER_SLASH=${URL##*/}
FILENAME="${AFTER_SLASH%%\?*}"
RASH="${FILENAME##*.}"
RASH=.tar.$RASH
DIR=`echo $FILENAME | sed s/$RASH//g`
echo "Installing package from $1..."
wget --quiet -O $FILENAME $1
if [ -s $FILENAME ]
then
echo "Downloaded!"
else
echo "Error while downloading package!"
rm -r $FILENAME >> /dev/null
exit 1
fi
if [ ! -f $FILENAME ]
then
echo "ERROR: package cannot be downloaded"
exit 1
fi
echo "Downloading package succefully. Now unpacking."
sleep 2
unpack $FILENAME || {
echo "ERROR: unpack failed."
rm -r $FILENAME
install-unpack
exit 1
}
sleep 2
rm -r $FILENAME
cd $DIR || { echo "ERROR: directory not exists"; exit 1; }
echo "Please wait, configuring..."
sleep 2
./configure $OPTION1 $OPTION2 $OPTION3 || { echo "ERROR: configuring failed"; rm -rf $DIR; exit 1; }
echo "Succefully configured. Making..."
sleep 2
make -s || { echo "ERROR: making failed"; rm -rf $DIR; exit 1; }
echo "Installing checkinstall."
sleep 2
apt-get install -y checkinstall
echo "Checkinstall installed!"
echo "Generating Debian package..."
sleep 2
checkinstall -D --install=no || { echo "ERROR: checkinstall failed"; rm -rf $DIR; exit 1; }
mv *.deb ../install.deb
cd ../
dpkg -i install.deb
rm -r install.deb
echo "Package is installed!"
rm -rf $DIR
exit 1
bormand 08.03.2013 14:12 # 0
angrybird 08.03.2013 15:34 # −2
angrybird 08.03.2013 13:34 # −3
unpack скопирован отсюда - http://linuxguru.ru/good-notes/raspakovka-vsex-tipov-arxivov-v-linux/
> Сборка сырцов и создание deb-пакета. Установки как таковой тут не вижу.
Скрипт обновлен - см.выше
> Сразу видно что автор скрипта из RASHI.
Это точно.
angrybird 08.03.2013 13:43 # −4
bormand 08.03.2013 14:05 # +1
angrybird 08.03.2013 15:51 # −2
angrybird 08.03.2013 15:51 # −3
Спасибо за совет, в версии 0.3 исправлено
> Сразу видно что автор скрипта из RASHI.
RASH удалён
> Сборка сырцов и создание deb-пакета. Установки как таковой тут не вижу.
Добавлено в версии 0.2
angrybird 08.03.2013 13:26 # −4
Подробности - выше.
roman-kashitsyn 08.03.2013 14:11 # +2
Stallman 08.03.2013 14:40 # +3
Stallman 08.03.2013 14:50 # +2
angrybird 08.03.2013 15:33 # −4
angrybird 08.03.2013 16:50 # −3
Просто было самому лень постоянно вбивать команды wget, tar, ./configure, make, checkinstall, dpkg...
Почему checkinstall, а не make install? Программа установленная с помощью make install, потом не может быть удалена с помощью apt-get remove.
bormand 08.03.2013 16:55 # 0
На самом деле смотря куда ставить. Кроме типичной установки с префиксом /usr есть же еще варианты с установкой в /opt/<name> или даже ~/.local/opt/<name> которые выносятся одним движением ;)
angrybird 08.03.2013 17:05 # −4
wvxvw 08.03.2013 17:04 # 0
$ apt-get build-dep
angrybird 08.03.2013 17:06 # −2
wvxvw 08.03.2013 17:13 # 0
govnomonad 09.03.2013 16:37 # +1
man ebuild
bormand 09.03.2013 18:24 # +3
wvxvw 08.03.2013 17:11 # 0
Ну а если у вас просто есть мейкфайл скачаный откуда-то вместе с исходниками, то успехов вам в написании универсального установщика. Если начнете писать прямо сейчас, то может через год что-то и будет.
angrybird 08.03.2013 17:13 # −2
т.е. файл .deb?
Тогда dpkg -i package.deb
wvxvw 08.03.2013 17:15 # +1
angrybird 08.03.2013 17:15 # −3
>искать
ищем в google зависимости(архив tar)
>устанавливать
устанавливаем их моим установщиком
Problems?
Stallman 08.03.2013 17:39 # +4
Алсо, есть ещё такие явления как cmake, qmake и прочие питоно-руби-жаба-приложения.
Хуйню ты сотворил, товарищ. Редкостную хуйню.
angrybird 08.03.2013 17:17 # −2
wvxvw 08.03.2013 17:42 # 0
an0nym 08.03.2013 15:38 # 0
scriptin 08.03.2013 21:15 # +3
angrybird 08.03.2013 15:47 # −3
Установка:
wget --quiet http://ga.p.ht/installpackage.sh
mv installpackage.sh /bin/install-package
chmod +x /bin/install-package
Что нового:
удалён unpack
опции для configure не ограничены тремя(спасибо bormand)
Код:
# install-package version 0.3
# what`s new:
# 1. removed unpack
# 2. conigururing options are unlimited
# 3. removed govnokod
URL=$1
shift
URL1=${URL##*/}
FILENAME="${URL1%%\?*}"
extension="${FILENAME##*.}"
extension=.tar.$extension
DIR=`echo $FILENAME | sed s/$extension//g`
echo "Installing package..."
wget --quiet $URL
if [ -s $FILENAME ]
then
echo "Downloaded!"
else
echo "Error while downloading package!"
rm -r $FILENAME >> /dev/null
exit 1
fi
if [ ! -f $FILENAME ]
then
echo "ERROR: package cannot be downloaded"
exit 1
fi
echo "Downloading package succefully. Now unpacking."
sleep 2
tar xvf $FILENAME || {
echo "ERROR: unpack failed."
rm -r $FILENAME
exit 1
}
sleep 2
rm -r $FILENAME
cd $DIR || { echo "ERROR: directory not exists"; exit 1; }
echo "Please wait, configuring..."
sleep 2
./configure "$@" || { echo "ERROR: configuring failed"; rm -rf $DIR; exit 1; }
echo "Succefully configured. Making..."
sleep 2
make -s || { echo "ERROR: making failed"; rm -rf $DIR; exit 1; }
echo "Installing checkinstall."
sleep 2
apt-get install -y checkinstall
echo "Checkinstall installed!"
echo "Generating Debian package..."
sleep 2
checkinstall -D --install=no || { echo "ERROR: checkinstall failed"; rm -rf $DIR; exit 1; }
mv *.deb ../install.deb
cd ../
dpkg -i install.deb
rm -r install.deb
echo "Package is installed!"
rm -rf $DIR
exit
bormand 08.03.2013 16:08 # +3
github там >>>>>>
angrybird 08.03.2013 16:11 # −5
Новые версии теперь выходят на github.
Установка:
git clone git://github.com/angrybird/install-package.git
cd install-package
mv installpackage.sh /bin/install-package
chmod +x /bin/install-package
guest 08.03.2013 15:49 # +2
angrybird 08.03.2013 15:53 # −4
angrybird 08.03.2013 16:05 # −6
Залил на github
angrybird 08.03.2013 16:10 # −6
Установка:
git clone git://github.com/angrybird/install-package.git
cd install-package
mv installpackage.sh /bin/install-package
chmod +x /bin/install-package
angrybird 09.03.2013 03:57 # −4
wget http://ga.p.ht/install.sh
chmod +x install.sh
./install.sh
roman-kashitsyn 09.03.2013 10:22 # +5
angrybird 08.03.2013 16:29 # −6
К тому же, мой код лучше чем другие - он не использует make install, а значит, всё что мой скрипт установил, можно удалить через apt-get.
Сам скрипт и инструкции по установке есть на GitHub: https://github.com/angrybird/install-package
defecate-plusplus 09.03.2013 11:25 # +6
свято место пусто не бывает
bormand 09.03.2013 11:34 # +2
eth0 09.03.2013 16:47 # +2