Автор Тема: "хотелки" новых программ в Альте (которых нет в репозиториях)  (Прочитано 194729 раз)

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 19 908
    • Домашняя страница
    • Email
Там в репозитории должны быть инструкции по установке и сборке.
Андрей Черепанов (cas@)

Оффлайн Иволгин

  • Давно тут
  • **
  • Сообщений: 259
Непонятно, всё по нерусски написано. Может кто-нибудь из опытных альтоводов установить программу и написать как?
Также, к модераторам просьба как-то уведомлять что вопрос был перенесён из разела где писался, пока не нажал "Новые ответы на ваши сообщения" - не понял где моя тема.

Оффлайн hasculdr

  • Завсегдатай
  • *
  • Сообщений: 672
Там в репозитории должны быть инструкции по установке и сборке.
С помощью компилятора можно выяснить список всех зависимостей, кроме как запускать его раз за разом после доустановки очередного пакета, на который он ругнется и остановится? В документации к программе зависимостей не нашел.

Оффлайн sb

  • Модератор глобальный
  • *****
  • Сообщений: 8 991
просьба как-то уведомлять что вопрос был перенесён из разела где писался
В том то и дело, что переноса не было - было объединение тем ;-) Надо посмотреть, есть ли возможность уведомления для этого случая.
Непосредственно по случаю объединения тем: некоторые разделы форума в плане описания будут конкретизироваться для того, чтобы все создаваемые темы имели отношение только к ПО из репозиториев. Всё остальное либо в хотелки новых программ (если не нашли ПО в репозитории) либо в программирование.

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 5 183
  • antohami@
Нашёл вот такую программу https://github.com/rfjakob/earlyoom подскажите как установить в Альт?

Повешайте в багзиллу запрос на сборку этого пакета.

Оффлайн Иволгин

  • Давно тут
  • **
  • Сообщений: 259
Нашёл вот такую программу https://github.com/rfjakob/earlyoom подскажите как установить в Альт?

Повешайте в багзиллу запрос на сборку этого пакета.
https://bugzilla.altlinux.org/show_bug.cgi?id=35924

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Нашёл вот такую программу https://github.com/rfjakob/earlyoom подскажите как установить в Альт?

Повешайте в багзиллу запрос на сборку этого пакета.

Антон, там есть init-скрипт, но это не sysv-скрипт:
В нём есть LSB-хидер,
$ cat -b earlyoom-master/earlyoom.initscript.in | head -n 14
     1  #! /bin/sh
     2  ### BEGIN INIT INFO
     3  # Provides:          earlyoom
     4  # Required-Start:    $remote_fs $syslog
     5  # Required-Stop:     $remote_fs $syslog
     6  # Default-Start:     2 3 4 5
     7  # Default-Stop:      0 1 6
     8  # Short-Description: Early OOM Killer
     9  # Description:       A userspace service that will kill the largest process
    10  #                    (by VmRSS residential size) when free RAM drops below 10%.
    11  ### END INIT INFO

    12  # Author: https://github.com/rfjakob


но нет sysv-хидера.
Ака нечто:
#!/bin/sh
#
# chkconfig: - 91 35
# description: Starts and stops the Samba smbd daemon \
#              used to provide SMB network services.
#
# processname: smbd
# pidfile: /var/run/samba/smbd.pid
# config:  /etc/samba/smb.conf
#
### BEGIN INIT INFO
...

Альтовый sysv, LSB-хидер понимает, при отсутствии sysv-заголовка?

Оффлайн Иволгин

  • Давно тут
  • **
  • Сообщений: 259
Повешайте в багзиллу запрос на сборку этого пакета.
Кому интересно: Антон собрал, всё установилось (вывод установки ниже, может кому-то пригодится). Программа исключительно полезная и думаю должна быть в каждой ветке по умолчанию, причём идти в дистрибутиве уже во включённом сстоянии.

Специально попробовал запустить сразу много "жручих" оперативку приложений, программа при достижении 90% заполненности ОЗУ просто убивает процессы по порядку начиная от отъевшего больше всех памяти. То есть даже если очень захотеть - компьютер НИКОГДА не зависнет от недостатка памяти. Для ВСЕХ установок с оперативкой/свопом меньше 4 Гб - обязательна.
Из недостатков - только консоль и нерусские буковки (включая инструкцию), нет графической настройки. Но это уже к разработчикам программы а не к упаковщику.
# apt-repo test 219650
Получено: 1 http://git.altlinux.org repo/219650/x86_64 release [532B]
Получено: 2 http://ftp.altlinux.org p8/branch/x86_64 release [880B]
Получено: 3 http://ftp.altlinux.org p8/branch/x86_64-i586 release [537B]
Получено: 4 http://ftp.altlinux.org p8/branch/noarch release [673B]
Получено 2622B за 0s (3724B/s).           
Получено: 1 http://ftp.altlinux.org p8/branch/x86_64/classic pkglist [20,4MB]
Получено: 2 http://git.altlinux.org repo/219650/x86_64/task pkglist [1300B]
Получено: 3 http://git.altlinux.org repo/219650/x86_64/task release [132B]
Получено: 4 http://ftp.altlinux.org p8/branch/x86_64/classic release [135B]
Получено: 5 http://ftp.altlinux.org p8/branch/x86_64-i586/classic pkglist [15,4MB]
Получено: 6 http://ftp.altlinux.org p8/branch/x86_64-i586/classic release [140B]
Получено: 7 http://ftp.altlinux.org p8/branch/noarch/classic pkglist [5047kB]
Получено: 8 http://ftp.altlinux.org p8/branch/noarch/classic release [135B]
Получено 40,9MB за 5m5s (134kB/s).                                   
Чтение списков пакетов... Завершено
Построение дерева зависимостей... Завершено
Чтение списков пакетов... Завершено
Построение дерева зависимостей... Завершено
Следующие НОВЫЕ пакеты будут установлены:
  earlyoom
0 будет обновлено, 1 новых установлено, 0 пакетов будет удалено и 49 не будет обновлено.
Необходимо получить 18,8kB архивов.
После распаковки потребуется дополнительно 38,8kB дискового пространства.
Получено: 1 http://git.altlinux.org repo/219650/x86_64/task earlyoom 1.2-alt1 [18,8kB]
Получено 18,8kB за 0s (28,8kB/s).
Совершаем изменения...
Preparing...                 ################################## [100%]
1: earlyoom                  ################################## [100%]
Running /usr/lib/rpm/posttrans-filetriggers
Завершено.

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 5 183
  • antohami@
Антон, там есть init-скрипт, но это не sysv-скрипт:

Да, это для бубунтовской системы инициализации, которая до systemd была. Для sysv надо писать скрипт. Если напишете, опакечу.

Оффлайн sb

  • Модератор глобальный
  • *****
  • Сообщений: 8 991
Да, это для бубунтовской системы инициализации, которая до systemd была.
Неа, это LSB заголовок http://refspecs.linuxfoundation.org/LSB_3.1.0/LSB-Core-generic/LSB-Core-generic/initscrcomconv.html. А у дебиана в вики статья как LSBэлизировать init скрипт https://wiki.debian.org/LSBInitScripts
Цитировать
This is a short documentation about how to make an Init Script LSB (Linux Standard Base)-compliant based on the Chapter 20 of the LSB 3.1.
Что в вольном переводе "эта краткая документация по тому, как сделать init скрипт LSB совместимым по главе 20 из пункта 3.1 описания стандарта LSB".

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 5 183
  • antohami@
Неа, это LSB заголовок http://refspecs.linuxfoundation.org/LSB_3.1.0/LSB-Core-generic/LSB-Core-generic/initscrcomconv.html. А у дебиана в вики статья как LSBэлизировать init скрипт https://wiki.debian.org/LSBInitScripts

Я не о заголовке, а о содержании скрипта.

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Неа, это LSB заголовок http://refspecs.linuxfoundation.org/LSB_3.1.0/LSB-Core-generic/LSB-Core-generic/initscrcomconv.html. А у дебиана в вики статья как LSBэлизировать init скрипт https://wiki.debian.org/LSBInitScripts

Я не о заголовке, а о содержании скрипта.

Антон, как-нибудь посмотрю earlyoom.initscript.in.
Там надо править скрипт и доваять вероятно что-то вроде с WITHOUT_RC_COMPAT=1
Ну и сразу прикрутить sysv-хидер к скрипту. Покатать и всякое такое.
Но сама по себе прога полезная.

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 5 183
  • antohami@
Антон, как-нибудь посмотрю earlyoom.initscript.in.

Мне кажется, его проще заново написать :-) Время нужно, а времени, как всегда, не хватает...

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Антон, как-нибудь посмотрю earlyoom.initscript.in.

Мне кажется, его проще заново написать :-) Время нужно, а времени, как всегда, не хватает...

Наваял на скорую руку:
# cat /etc/rc.d/init.d/earlyoom
#!/bin/bash
#
# chkconfig: 2345 32 97
# description: Early OOM Killer. \
#              A userspace service that will kill the largest process \
#              (by VmRSS residential size) when free RAM drops below 10%.
# processname: earlyoom
# config: /etc/default/earlyoom
#

# Source function library.
WITHOUT_RC_COMPAT=1
. /etc/init.d/functions

# Source earlyoom configuration.
SourceIfNotEmpty /etc/default/earlyoom

LOGFILE=/var/log/earlyoom.log
LOCKFILE=/var/lock/subsys/earlyoom
RETVAL=0


start()
{
        start_daemon --lockfile "$LOCKFILE" --background --expect-user root -- earlyoom $EARLYOOM_ARGS 2> "$LOGFILE"
        RETVAL=$?
        return $RETVAL
}

stop()
{
        stop_daemon --lockfile "$LOCKFILE" --expect-user root -- earlyoom
        RETVAL=$?
        return $RETVAL
}

restart()
{
        stop
        start
}

case "$1" in
  start)
        start
        ;;
  stop)
        stop
        ;;
  restart)
        restart
        ;;
  status)
        status --lockfile "$LOCKFILE" --expect-user root -- earlyoom
        RETVAL=$?
        ;;
  *)
        msg_usage "${0##*/} {start|stop|restart|status}"
        RETVAL=1
esac

exit $RETVAL

К сожалению не смог прикрутить '--pidfile "$PIDFILE"', - он тогда не только не создаёт pidfile, но не создаёт и lockfile. И при повторном запуске валит в память дубликаты.

Оттестировал в p8 с параметрами
# ps -eo pid,user,args | grep early | grep -v grep
 5631 root     /usr/bin/earlyoom -m 15 -s 100
При заполнении памяти, он мне благополучно грохнул браузер и освободил память.
« Последнее редактирование: 23.01.2019 01:58:33 от Speccyfighter »

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Антон, как-нибудь посмотрю earlyoom.initscript.in.

Мне кажется, его проще заново написать :-) Время нужно, а времени, как всегда, не хватает...

Наваял на скорую руку:
# cat /etc/rc.d/init.d/earlyoom
...

Судя по всему, даже спэк не придётся править:
$ rpm -q --scripts earlyoom
postinstall scriptlet (through /bin/sh):
/usr/sbin/post_service earlyoom
preuninstall scriptlet (through /bin/sh):
/usr/sbin/preun_service earlyoom

https://www.altlinux.org/Spec/Предопределенные_макросы