Бардак опэнсорса
или
как победить слакбилд
Наверняка кто-то держит какой-то другой лайв Линукс чтобы проверить функционал или пакет.
Например slackware-live.
Попробуем проверить работу клиента acpi который лежит в слакбилдах.
Слакбилды это один универсальный ресурс для всех Slackware бинарно совместимых систем.
Поскольку мы привыкли к apt, пользоваться будем аналогичным инструментом - slapt-get и slapt-src.
Первый для установки бинарных пакетов из репозитория, второй для установки слакбилдов из slackbuilds.org
Поскольку эти пакеты никаким образом не входят в классический Slackware, идём на ресурс и скачиваем эти пакеты:
https://software.jaos.org/slapt-get 0.10.2t
slapt-get is an APT like system for Slackware package management. It allows one to search slackware mirrors and third party sources for packages, compare them with installed packages, install new packages, or upgrade all installed packages. slapt-get is great for scripting as well.
Files:
0.10.2t source tarball
https://software.jaos.org/source/slapt-get/slapt-get-0.10.2t.tar.gz
(md5sum)
https://software.jaos.org/source/slapt-get/slapt-get-0.10.2t.tar.gz.md5sum
slapt-get 0.10.2t Slackware-14.2 package
https://software.jaos.org/slackpacks/14.2/slapt-get/slapt-get-0.10.2t-i386-1.tgz
slapt-get 0.10.2t Slackware64-14.2 package
https://software.jaos.org/slackpacks/14.2-x86_64/slapt-get/slapt-get-0.10.2t-x86_64-1.tgz
slapt-get 0.10.2t armslackware-14.2 package
https://software.jaos.org/slackpacks/14.2-arm/slapt-get/slapt-get-0.10.2t-arm-1.tgz
Requires: (all available within Slackware 9.0+)
slapt-src 0.3.2i
slapt-src is a utility to make querying, retrieving, and building slackbuilds as easy as working with binary packages with slapt-get.
Files:
slapt-src-0.3.2i.tar.gz
https://software.jaos.org/source/slapt-src/slapt-src-0.3.2i.tar.gz
(md5sum)
https://software.jaos.org/source/slapt-src/slapt-src-0.3.2i.tar.gz.md5sum
slapt-src 0.3.2i Slackware-14.2 package
https://software.jaos.org/slackpacks/14.2/slapt-src/slapt-src-0.3.2i-i386-1.tgz
slapt-src 0.3.2i Slackware64-14.2 package
https://software.jaos.org/slackpacks/14.2-x86_64/slapt-src/slapt-src-0.3.2i-x86_64-1.tgz
slapt-src 0.3.2i armslackware-14.2- package
https://software.jaos.org/slackpacks/14.2-arm/slapt-src/slapt-src-0.3.2i-arm-1.tgz
Requires:
slapt-get
Установка локальных пакетов как и всегда:
root@darkstar:~# installpkg /home/live/Downloads/slapt-get-0.10.2t-i386-1.tgz
Verifying package slapt-get-0.10.2t-i386-1.tgz.
Installing package slapt-get-0.10.2t-i386-1.tgz:
PACKAGE DESCRIPTION:
# slapt-get (an apt-like front-end to Slackware's pkgtools)
#
# slapt-get is an apt like system for Slackware package management.
# * See /usr/doc/slapt-get-*/ for complete documentation.
# * You will also want to customize /etc/slapt-get/slapt-getrc,
# using a local mirror. www.slackware.com may be very busy.
# * Support:
# http://software.jaos.org/cgi-bin/mailman/listinfo/slapt-get-user
# * Please translate
# http://software.jaos.org/git/slapt-get/plain/po/slapt-get.pot
# then send to slapt-get-devel@software.jaos.org
Executing install script for slapt-get-0.10.2t-i386-1.tgz.
Package slapt-get-0.10.2t-i386-1.tgz installed.
# installpkg /home/live/Downloads/slapt-src-0.3.2i-i386-1.tgz
Verifying package slapt-src-0.3.2i-i386-1.tgz.
Installing package slapt-src-0.3.2i-i386-1.tgz:
PACKAGE DESCRIPTION:
# slapt-src (slapt slackbuild utility)
# slapt-src is a utility to make querying, retrieving, and building
# slackbuilds as easy as working with binary packages with slapt-get.
#
#
Executing install script for slapt-src-0.3.2i-i386-1.tgz.
Package slapt-src-0.3.2i-i386-1.tgz installed.
Единственное что следует поправить, это цель (система: лайв pre14.2)
# sed "" /etc/slapt-get/slapt-srcrc
# preferred mirror
SOURCE=http://www.slackware.org.uk/slackbuilds.org/14.2/
#SOURCE=http://www.slackware.org.uk/slackbuilds.org/current/
# official source
#SOURCE=http://www.slackbuilds.org/slackbuilds/14.0/
BUILDDIR=/usr/src/slapt-src
PKGEXT=txz
Выбрать зеркало и протокол есть из чего
# grep 'http\|ftp\|rsync' /etc/slackpkg/mirrors | wc -l
306
Подобно apt обновляем локальную базу
# LC_ALL=C slapt-src -u
Fetching slackbuild list from http://www.slackware.org.uk/slackbuilds.org/14.2/...Cached
и начинаем устанавливать слакбилд клиента acpi
# LC_ALL=C slapt-src -i acpi
The following packages will be installed:
acpi
Do you want to continue? [y/N] y
Fetching README...Done
Fetching acpi.SlackBuild...Done
Fetching acpi.info...Done
Fetching slack-desc...Done
Fetching https://downloads.sourceforge.net/acpiclient/acpi-1.7.tar.gz...Failed
Опс-с... Почему так и исходник failed?
Идём в слакбилды и скачиваем все файлы для acpi
https://slackbuilds.org/repository/14.2/system/acpi/SlackBuilds Repository
14.2 > System > acpi (1.7)
Linux ACPI client is a command-line tool, similar to the "apm" command,
that provides information on battery status, AC power, and thermal readings.
This does not support ACPI suspending, and it only displays information
about ACPI devices.
Maintained by: Willy Sudiarto Raharjo
Keywords: acpi client,apm,cli
Homepage:
https://sourceforge.net/projects/acpiclient/
Source Downloads:
acpi-1.7.tar.gz (b52ce4ca39bbf7000a1c2de8879f1dcb)
https://downloads.sourceforge.net/acpiclient/acpi-1.7.tar.gz (301 Moved Permanently)
https://downloads.sourceforge.net/project/acpiclient/acpiclient/1.7/acpi-1.7.tar.gz
https://netcologne.dl.sourceforge.net/project/acpiclient/acpiclient/1.7/acpi-1.7.tar.gz
Download SlackBuild:
acpi.tar.gz
https://slackbuilds.org/slackbuilds/14.2/system/acpi.tar.gz
acpi.tar.gz.asc (FAQ)
https://slackbuilds.org/slackbuilds/14.2/system/acpi.tar.gz.asc
(the SlackBuild does not include the source)
Individual Files:
• README
https://slackbuilds.org/slackbuilds/14.2/system/acpi/README
• acpi.SlackBuild
https://slackbuilds.org/slackbuilds/14.2/system/acpi/acpi.SlackBuild
• acpi.info
https://slackbuilds.org/slackbuilds/14.2/system/acpi/acpi.info
• slack-desc
https://slackbuilds.org/slackbuilds/14.2/system/acpi/slack-desc
# ls -1 /home/live/Downloads/
README
acpi-1.7.tar.gz
acpi.SlackBuild
acpi.info
acpi.tar.gz
acpi.tar.gz.asc
slack-desc
Смотрим файл acpi.info
# grep DOWNL /home/live/Downloads/acpi.info
DOWNLOAD="https://downloads.sourceforge.net/acpiclient/acpi-1.7.tar.gz"
DOWNLOAD_x86_64=""
И оп-п!..
sf.net перенёс исходники, решив что source-based системы должны тут же броситься исправлять все свои скрипты, - 301 Moved Permanently. Ай какой молодец!
# LC_ALL=C wget -c https://downloads.sourceforge.net/acpiclient/acpi-1.7.tar.gz
--2017-07-09 04:21:33-- https://downloads.sourceforge.net/acpiclient/acpi-1.7.tar.gz
Resolving downloads.sourceforge.net (downloads.sourceforge.net)... 216.34.181.59
Connecting to downloads.sourceforge.net (downloads.sourceforge.net)|216.34.181.59|:443... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://downloads.sourceforge.net/project/acpiclient/acpiclient/1.7/acpi-1.7.tar.gz [following]
--2017-07-09 04:21:34-- https://downloads.sourceforge.net/project/acpiclient/acpiclient/1.7/acpi-1.7.tar.gz
Connecting to downloads.sourceforge.net (downloads.sourceforge.net)|216.34.181.59|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://netcologne.dl.sourceforge.net/project/acpiclient/acpiclient/1.7/acpi-1.7.tar.gz [following]
--2017-07-09 04:21:35-- https://netcologne.dl.sourceforge.net/project/acpiclient/acpiclient/1.7/acpi-1.7.tar.gz
Resolving netcologne.dl.sourceforge.net (netcologne.dl.sourceforge.net)... 78.35.24.46, 2001:4dd0:1234:6::5f
Connecting to netcologne.dl.sourceforge.net (netcologne.dl.sourceforge.net)|78.35.24.46|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 100501 (98K) [application/x-gzip]
Saving to: 'acpi-1.7.tar.gz'
acpi-1.7.tar.gz 100%[====================================>] 98.15K 361KB/s in 0.3s
2017-07-09 04:21:35 (361 KB/s) - 'acpi-1.7.tar.gz' saved [100501/100501]
Непреодолимая проблема? А мы альтовцы или где?
Ну что ж, создаём каталог и переходим в него (в лайве получение прав через sudo su - )
# mkdir /root/acpi-1.7
# cd /root/acpi-1.7
# pwd
/root/acpi-1.7
Копируем в текущий каталог все скачанные файлы, не пропустив ни одного
# cp /home/live/Downloads/{acpi*,slack-desc,README} .
# ls -l ./
итого 124
-rw-r--r-- 1 root root 242 июл 9 05:32 README
-rw-r--r-- 1 root root 100501 июл 9 05:32 acpi-1.7.tar.gz
-rw-r--r-- 1 root root 3128 июл 9 05:32 acpi.SlackBuild
-rw-r--r-- 1 root root 314 июл 9 05:32 acpi.info
-rw-r--r-- 1 root root 2437 июл 9 05:32 acpi.tar.gz
-rw-r--r-- 1 root root 181 июл 9 05:32 acpi.tar.gz.asc
-rw-r--r-- 1 root root 785 июл 9 05:32 slack-desc
Цель на исходник
# grep -i download acpi.info
DOWNLOAD="https://downloads.sourceforge.net/acpiclient/acpi-1.7.tar.gz"
DOWNLOAD_x86_64=""
заменяем на локальную
# sed -i 's/https:\/\/downloads.sourceforge.net\/acpiclient/file:\/\/\/root\/acpi-1.7/' acpi.info
# grep -i download ./acpi.info
DOWNLOAD="file:///root/acpi-1.7/acpi-1.7.tar.gz"
DOWNLOAD_x86_64=""
Запускаем скрипт на исполнение
# sh ./acpi.SlackBuild
...
Slackware package /tmp/acpi-1.7-i586-1_SBo.tgz created.
Устанавливаем готовый бинарный пакет
# installpkg /tmp/acpi-1.7-i586-1_SBo.tgz
Verifying package acpi-1.7-i586-1_SBo.tgz.
Installing package acpi-1.7-i586-1_SBo.tgz:
PACKAGE DESCRIPTION:
# acpi (an acpi client for linux)
#
# Linux ACPI client is a command-line tool, similar to the "apm"
# command, that provides information on battery status, AC power,
# and thermal readings.
#
# Homepage: http://sourceforge.net/projects/acpiclient
#
Package acpi-1.7-i586-1_SBo.tgz installed.
Проверяем работу клиента
# acpi -t
Thermal 0: ok, 40.0 degrees C
Thermal 1: ok, 29.6 degrees C
Thermal 2: ok, 47.0 degrees C
Thermal 3: ok, 49.0 degrees C
А ведь если бы sf.net не перенёс исходники, всё свелось бы к одной тривиальной команде.
Как это всё можно ещё воспринимать?
Например так:
При хорошем знании Линукс, в частности альтов, любой другой Линукс не проблема. Даже такой как Slackware. Разница между ними по большому счёту не столь уж и велика.