Re: пакеты: как правильно получить владельца группу файла из скрипта debian/postinst ?

2017-03-21 Пенетрантность Dmitry Alexandrov
> 22 марта 2017 г., 8:45 пользователь Dmitry Alexandrov написал:
>>
>> Что это значит «юзер назначит zsh в качастве /bin/sh»?
>> Пользователям, очевидно, не дано никаких прав выбирать, на что указывает 
>> /bin/sh.
>
> man chsh

| NAME
|chsh - change login shell

| login shell

| login

>> Если же некто таки умудрится вручную переписать ссылку с /bin/sh на zsh,
>> то он несомненно ССЗБ, и подстраиваться под такого настолько же излишне,
>
> zsh - вполне законный sh и он может работать как /bin/sh.

Тов. Никитин утверждает, что zsh(1) несет за собой описанные им проблемы со 
stat’ом.  Я не пользуюсь zsh, и не проверял этого, но у меня нет никаких 
оснований ему не верить.

Впрочем, так это или иначе — это не так важно.  Все, что я хотел сказать, — это 
то, что Дебиан, насколько я знаю, не предоставляет документированных средств 
для выбора чего-либо, кроме dash’а и bash’а, в качестве /bin/sh.  (Да и 
возможность выбрать ГНУ Баш-то, как мне кажется, предоставляется только для 
совместимости со старыми выпусками Дебиана).  Так что допускать, что /bin/sh 
окажется zsh’ем, ksh’ем, csh’ем и так далее, не стоит.

А то, что могут существовать маргинальные системы, где за /bin/sh служит zsh, а 
то и что еще более странное, — это понятно.  Но в контексте вопроса это не 
имеет значения — т. Никитин-то пишет сценарий для deb-пакета.


Re: пакеты: как правильно получить владельца группу файла из скрипта debian/postinst ?

2017-03-21 Пенетрантность Дмитрий Фёдоров
22 марта 2017 г., 8:45 пользователь Dmitry Alexandrov написал:
>
> Что это значит «юзер назначит zsh в качастве /bin/sh»?
> Пользователям, очевидно, не дано никаких прав выбирать, на что указывает 
> /bin/sh.

man chsh

> Если же некто таки умудрится вручную переписать ссылку с /bin/sh на zsh,
> то он несомненно ССЗБ, и подстраиваться под такого настолько же излишне,

zsh - вполне законный sh и он может работать как /bin/sh.


Re: пакеты: как правильно получить владельца группу файла из скрипта debian/postinst ?

2017-03-21 Пенетрантность Dmitry Alexandrov
> LANG=C ls -l1d fileOrDir
>   как-то диковато
>
> stat -c "%U %G" fileOrDir
>   а если (больной) юзер в качестве /bin/sh zsh назначит в котором stat 
> встроенный и совсем другой ?
>
> /usr/bin/stat -c "%U %G" fileOrDir
>а не будет ли stat в /bin со временем,
>и нужна ли завис. от конкретной версии coreutils?
>
> Есть ли debian-true решение этого вопроса?

Все ответы уже даны, я так и не догнал до причины вопроса.  Что это значит 
«юзер назначит zsh в качастве /bin/sh»?

Пользователям, очевидно, не дано никаких прав выбирать, на что указывает 
/bin/sh.  Системному же оператору, насколько я вижу, предоставлено лишь две 
опции: dash (по-умолчанию) и bash (по старинке) — посредством debconf (# 
dpkg-reconfigure dash), и не предоставлено никакого выбора посредством 
update-alternatives(1).

Если же некто таки умудрится вручную переписать ссылку с /bin/sh на zsh, то он 
несомненно ССЗБ, и подстраиваться под такого настолько же излишне, насколько 
под того, кто заменит /bin/cp rsync’ом.


Re: Как предотвратить жёсткие зависания компьютера в ресурсоёмких играх?

2017-03-21 Пенетрантность Коротаев Руслан
В сообщении от [Вт 2017-03-21 19:53 +0300]
Max Dmitrichenko  пишет:

> Проблема тут не в неисправном железе, не в приоритетах, не в шедулере и не в
> подобных "твиках" системы. Происходит тут следущее. Пока есть доступная память
> и swap, то ОС активно использует и то, и другое. Но в силу каких-то
> особенностей игры, со временем её потребление памяти разрастается, и она
> съедает всю доступную память+swap, и запрашивает ещё чуть памяти. Если бы игра
> попросила сразу много памяти, то ОС вызвала бы OOM-killer и убила бы игрушку.
> Но игрушка просит совсем чуть-чуть. В этот момент Linux начинает очень 
> странную
> борьбу за память. Поскольку выгрузить данные какой-нибудь софтины в swap более
> нельзя, Linux начинает выгружать из памяти код запущенных процессов. Сделать
> это он имеет право даже при отсутствие swap'а, т.к. копия этого кода есть на
> жестком диске и он всегда сможет подгрузить этот код. Дальше начинается
> чертовщина, потому что выгруженные процессы начинают просыпаться, и линукс
> обратно начинает загружать их с ЖД в память, процесс приобретает 
> лавинообразный
> характер, так как процессы пробуждаются быстрее, чем ОС успевает их 
> подгружать.
> 
> Весь этот процесс напоминает сцену из фильма "Собачье сердце": когда профессор
> передвигался на двух стульях по затопленной квартире - чтобы сделать очередной
> шаг, надо освободить первый стул, и переставить его вперед.
> 
> Цейтнот и комп "виснет", так как, чтобы залогиниться и зайти с другой консоли,
> нужно выполнить как минимум несколько процессов - подгрузить getty, запустить
> процесс login, а потом shell - а все они выгружены из памяти.
> 
> Как бороться? 
> 1) Увеличить swap. 2 Гб явно маловато. Общие рекомендации для 
> пользовательского
> компьютера состоят в том, что своп должен быть в два раза больше чем объем 
> RAM.
> Если вас останавливает то, что нужно для это переразбивать разделы, то можете
> сделать два свопа - один в существующем разделе на 2 Гб, второй просто файлом
> на ЖД в любой существующей файловой системе. Однако, если в игрухе течет
> память, то это лишь отсрочит сценарий, описанный выше.
> 
> 2) Ограничь игруху (или пользователя брата) в использовании памяти. Как только
> она превысит лимит, то будет убита. 
> 
> 
> 20 марта 2017 г., 20:47 пользователь Зиганшин Руслан 
>  > написал:
> 
> Компьютеру почти 11 лет, мат. плата (socket 775, поддержка только
> одноядерных процессоров и до 2 гб ddr2 ram) и процессор (pentium 4), как
> самые дорогие детали, до сих пор не заменены. Может так зависнуть при игре
> младшего брата в garrys mod, что переключение по ctrl+alt+f1 занимает
> несколько минут, а потом из-за таймаута не удаётся войти в свою учётку
> чтобы если не завершить зависший процесс, то хотя бы выполнить sudo 
> reboot.
> Под своп выделено 2 гб на hdd. На апгрейд пока нет средств. 

Не знал что линукс может выгружать код запущенных процессов без свопа,
киньте ссылку почитать про это. Однако, если такое происходит, тогда
остается единственный вариант — загружать всё в память и работать только
в ней. То есть вам нужно сделать LiveCD и загрузить его в память. 

Возьмите готовый [1] на базе например Xfce, там всё как обычно, только
рутовый раздел запакован и сжат в Squashfs. Распакуйте, сделайте chroot,
удалите офис (и всё что считаете лишним, так как у вас всего 2 ГБ),
добавьте вашу игрушку и снова запакуйте. Теперь загружайтесь с
параметром toram (загрузить в память). 

Но прежде чем заморачиваться с LiveCD, попробуйте отключить своп совсем
и посмотреть что будет. У меня был комп AMD A4 2 ядра и 2 Гб оперативки
я решил провести эксперимент с cgroups [2]. Ограничил браузер Chrome
одним ядром и одним гигабайтом оперативки, но разрешил своп и начал
открывать вкладки новостных сайтов, дабы создать нагрузку. В какой-то
момент, он начал свопить, когда своп достиг примерно 25% от оперативки,
зависло всё, так же как и у вас, зайти в консоль и вырубить его занимало
несколько минут. 

Так что увеличение свопа не вариант, можно порекомендовать zRam [3], но
у вас мало оперативки, если игрушка активно свопит, то это всё равно не
поможет.

[1]: https://www.debian.org/CD/live/index.ru.html
[2]: https://www.kernel.org/doc/Documentation/cgroup-v1/memory.txt
[3]: https://ru.wikipedia.org/wiki/ZRam

-- 
Коротаев Руслан
https://blog.kr.pp.ru


smime.p7s
Description: S/MIME cryptographic signature


Re: Как предотвратить жёсткие зависания компьютера в ресурсоёмких играх?

2017-03-21 Пенетрантность Max Dmitrichenko
Сколько "интересных" советов от тех, кто не понимает сути проблемы.

Проблема тут не в неисправном железе, не в приоритетах, не в шедулере и не
в подобных "твиках" системы. Происходит тут следущее. Пока есть доступная
память и swap, то ОС активно использует и то, и другое. Но в силу каких-то
особенностей игры, со временем её потребление памяти разрастается, и она
съедает всю доступную память+swap, и запрашивает ещё чуть памяти. Если бы
игра попросила сразу много памяти, то ОС вызвала бы OOM-killer и убила бы
игрушку. Но игрушка просит совсем чуть-чуть. В этот момент Linux начинает
очень странную борьбу за память. Поскольку выгрузить данные какой-нибудь
софтины в swap более нельзя, Linux начинает выгружать из памяти код
запущенных процессов. Сделать это он имеет право даже при отсутствие
swap'а, т.к. копия этого кода есть на жестком диске и он всегда сможет
подгрузить этот код. Дальше начинается чертовщина, потому что выгруженные
процессы начинают просыпаться, и линукс обратно начинает загружать их с ЖД
в память, процесс приобретает лавинообразный характер, так как процессы
пробуждаются быстрее, чем ОС успевает их подгружать.

Весь этот процесс напоминает сцену из фильма "Собачье сердце": когда
профессор передвигался на двух стульях по затопленной квартире - чтобы
сделать очередной шаг, надо освободить первый стул, и переставить его
вперед.

Цейтнот и комп "виснет", так как, чтобы залогиниться и зайти с другой
консоли, нужно выполнить как минимум несколько процессов - подгрузить
getty, запустить процесс login, а потом shell - а все они выгружены из
памяти.

Как бороться?
1) Увеличить swap. 2 Гб явно маловато. Общие рекомендации для
пользовательского компьютера состоят в том, что своп должен быть в два раза
больше чем объем RAM. Если вас останавливает то, что нужно для это
переразбивать разделы, то можете сделать два свопа - один в существующем
разделе на 2 Гб, второй просто файлом на ЖД в любой существующей файловой
системе. Однако, если в игрухе течет память, то это лишь отсрочит сценарий,
описанный выше.

2) Ограничь игруху (или пользователя брата) в использовании памяти. Как
только она превысит лимит, то будет убита.


20 марта 2017 г., 20:47 пользователь Зиганшин Руслан <
ziganshinrus...@gmail.com> написал:

> Компьютеру почти 11 лет, мат. плата (socket 775, поддержка только
> одноядерных процессоров и до 2 гб ddr2 ram) и процессор (pentium 4), как
> самые дорогие детали, до сих пор не заменены. Может так зависнуть при игре
> младшего брата в garrys mod, что переключение по ctrl+alt+f1 занимает
> несколько минут, а потом из-за таймаута не удаётся войти в свою учётку
> чтобы если не завершить зависший процесс, то хотя бы выполнить sudo reboot.
> Под своп выделено 2 гб на hdd. На апгрейд пока нет средств.
>



-- 
With best regards
  Max Dmitrichenko


Validation failed

2017-03-21 Пенетрантность Debian Webmaster
*** Errors validating
/srv/www.debian.org/www/international/l10n/po/en_GB.ru.html: ***
Line 118, character 351:  "128513" is not a character number in the
document character set
Line 307, character 337:  "128513" is not a character number in the
document character set
Line 1311, character 241:  "128513" is not a character number in the
document character set

--
 You received this mail for the language code ru.
 Please edit webwml/english/devel/website/validation.data if this is not 
accurate
 Please also update webwml/english/devel/website/ with the new coordinator(s) 
data



Re: Как предотвратить жёсткие зависания компьютера в ресурсоёмких играх?

2017-03-21 Пенетрантность Alex
Помониторить своп. Если зависания от его заполнения, то Zswap (уменьшит ио)
и увеличить своп.

Вин ХП поставить. Оно быстрее линуксов на слабых машинах


Re: пакеты: как правильно получить владельца группу файла из скрипта debian/postinst ?

2017-03-21 Пенетрантность Andrey Nikitin
В Tue, 21 Mar 2017 13:35:23 +0200
Peter Pentchev  пишет:

> Или, проще, "command stat".

Да! C zsh работает.

Осталось понять разницу "shell function" и "builtin command"
И как эти мановые (dash|bash) понятия коррелируют с "shell builtin",

% type stat
stat is a shell builtin
% which stat
stat: shell built-in command

 



Re: пакеты: как правильно получить владельца группу файла из скрипта debian/postinst ?

2017-03-21 Пенетрантность Peter Pentchev
On Tue, Mar 21, 2017 at 02:45:38PM +0500, Stanislav Vlasov wrote:
> 21 марта 2017 г., 14:42 пользователь Andrey Nikitin
>  написал:
> >> Прописать #!/bin/bash в начале скрипта.
> >
> > Да, спсб., хотя подозрительно мало пакетов так делают, но, видимо, не 
> > запрещено.
> > И сразу другой вопрос - нужно прописывать зависимость от bash?
> 
> Второй способ: прописать /usr/bin/stat и зависимость не от bash, а от 
> coreutils

Или, проще, "command stat".

Всего лучшего,
Петр

-- 
Peter Pentchev  r...@ringlet.net r...@freebsd.org p...@storpool.com
PGP key:http://people.FreeBSD.org/~roam/roam.key.asc
Key fingerprint 2EE7 A7A5 17FC 124C F115  C354 651E EFB0 2527 DF13


signature.asc
Description: PGP signature


Re: установка своего пакета с зависимостями

2017-03-21 Пенетрантность Victor Wagner
On Tue, 21 Mar 2017 17:27:47 +0700
Дмитрий Фёдоров  wrote:

> 21 марта 2017 г., 17:25 пользователь Artem Chuprina написал:
> >  > Есть такой установщик, который поставит пакет из файла,
> >  > а его зависимости - из сетевых репо?  
> >
> > gdebi  
> 
> gnome - перебор.

gdebi прекрасно работает и без gnome. Там есть три пакета 
gdebi (который с gnome)
gdebi-core (который содержит командно-строчную утилиту gdebi)
и gdebi-kde.



Re: установка своего пакета с зависимостями

2017-03-21 Пенетрантность Дмитрий Фёдоров
21 марта 2017 г., 17:25 пользователь Artem Chuprina написал:
>  > Есть такой установщик, который поставит пакет из файла,
>  > а его зависимости - из сетевых репо?
>
> gdebi

gnome - перебор.


RE: пакеты: как правильно получить владельца группу файла из скрипта debian/postinst?

2017-03-21 Пенетрантность Pavel Marchenko
ИМХО getfacl но это еще один прицеп в виде зависимости acl

-Исходное сообщение-
От: "Andrey Nikitin" 
Отправлено: ‎21.‎03.‎2017 12:20
Кому: "debian-russian@lists.debian.org" 
Тема: пакеты: как правильно получить владельца группу файла из скрипта 
debian/postinst?

Привет.

LANG=C ls -l1d fileOrDir
  как-то диковато

stat -c "%U %G" fileOrDir
  а если (больной) юзер в качестве /bin/sh zsh назначит в котором stat 
встроенный и совсем другой ?

/usr/bin/stat -c "%U %G" fileOrDir
   а не будет ли stat в /bin со временем,
   и нужна ли завис. от конкретной версии coreutils?

Есть ли debian-true решение этого вопроса?



Re: установка своего пакета с зависимостями

2017-03-21 Пенетрантность Artem Chuprina
Дмитрий Фёдоров -> Russian Debian List  @ Tue, 21 Mar 2017 16:51:24 +0700:

 > Есть свой личный пакет, которого в ни в каких сетевых репозиториях
 > никогда не будет.

 > А вот зависимости у него есть, причем они-то есть в стандартных репо.

 > Сейчас пакет ставится dpkg -i ..., а вот его зависимости
 > приходится ставить
 > aptitude install <список пакетов, вручную выковырянный>
 > Ещё и запятые руками удаляю :)

 > Есть такой установщик, который поставит пакет из файла,
 > а его зависимости - из сетевых репо?

gdebi



Re: установка своего пакета с зависимостями

2017-03-21 Пенетрантность Vasily Ivanov

On 2017-03-21 1651 (+0700), Дмитрий Фёдоров wrote:

Есть свой личный пакет, которого в ни в каких сетевых репозиториях
никогда не будет.



Есть такой установщик, который поставит пакет из файла,
а его зависимости - из сетевых репо?


APT умеет работать с репозиторием на файловой системе, но надо его
подготовить.

У меня в своё время работала такая схема:

mkdir -p /var/cache/apt/localrepo
cp $package /var/cache/apt/localrepo/
cd /var/cache/apt/localrepo
dpkg-scanpackages . /dev/null | gzip -c9 > Packages.gz

В sources.list добавить 'deb file:///var/cache/apt/localrepo /'



Re: установка своего пакета с зависимостями

2017-03-21 Пенетрантность Дмитрий Фёдоров
21 марта 2017 г., 16:57 пользователь Victor Wagner написал:
>
> Есть два способа - простой и правильный.
>
> Простой
>
> dpkg -i имя-файла-пакета
> (ругается на отсутствующие зависимости, и оставляет пакет в
> неотконфигурированном состоянии)
> apt-get install -f
> (после пары вопросов доставляет все зависимости и конфигурирует пакет)

Спасибо, так и буду делать.

> Правильный - научиться делать собственный репозиторий и прописывать его
> в soruces.list наряду со стандартными (а лучше - отдельный файлик
> в /etc/apt/sources.list.d).

Сложно, вот как раз своего репо и хотелось бы избежать.

Ну или скриптик, выдирающий зависимости и запускающий на них apt-get,
а потом dpkg -i.


Re: установка своего пакета с зависимостями

2017-03-21 Пенетрантность Victor Wagner
On Tue, 21 Mar 2017 16:51:24 +0700
Дмитрий Фёдоров  wrote:

> Есть свой личный пакет, которого в ни в каких сетевых репозиториях
> никогда не будет.
> 
> А вот зависимости у него есть, причем они-то есть в стандартных репо.
> 
> Сейчас пакет ставится dpkg -i ..., а вот его зависимости
> приходится ставить
> aptitude install <список пакетов, вручную выковырянный>\
> Ещё и запятые руками удаляю :)
> 
> Есть такой установщик, который поставит пакет из файла,
> а его зависимости - из сетевых репо?

Есть два способа - простой и правильный.

Простой

dpkg -i имя-файла-пакета
(ругается на отсутствующие зависимости, и оставляет пакет в
неотконфигурированном состоянии)
apt-get install -f
(после пары вопросов доставляет все зависимости и конфигурирует пакет)

Правильный - научиться делать собственный репозиторий и прописывать его
в soruces.list наряду со стандартными (а лучше - отдельный файлик
в /etc/apt/sources.list.d).






установка своего пакета с зависимостями

2017-03-21 Пенетрантность Дмитрий Фёдоров
Есть свой личный пакет, которого в ни в каких сетевых репозиториях
никогда не будет.

А вот зависимости у него есть, причем они-то есть в стандартных репо.

Сейчас пакет ставится dpkg -i ..., а вот его зависимости
приходится ставить
aptitude install <список пакетов, вручную выковырянный>
Ещё и запятые руками удаляю :)

Есть такой установщик, который поставит пакет из файла,
а его зависимости - из сетевых репо?


Re: пакеты: как правильно получить владельца группу файла из скрипта debian/postinst ?

2017-03-21 Пенетрантность Дмитрий Фёдоров
21 марта 2017 г., 16:42 пользователь Andrey Nikitin написал:
> В Tue, 21 Mar 2017 16:29:50 +0700
>
>> Прописать #!/bin/bash в начале скрипта.
>
> Да, спсб., хотя подозрительно мало пакетов так делают, но, видимо, не 
> запрещено.
> И сразу другой вопрос - нужно прописывать зависимость от bash?

Не знаю, как по правилам, но почему бы и нет?


Re: пакеты: как правильно получить владельца группу файла из скрипта debian/postinst ?

2017-03-21 Пенетрантность Stanislav Vlasov
21 марта 2017 г., 14:42 пользователь Andrey Nikitin
 написал:
>> Прописать #!/bin/bash в начале скрипта.
>
> Да, спсб., хотя подозрительно мало пакетов так делают, но, видимо, не 
> запрещено.
> И сразу другой вопрос - нужно прописывать зависимость от bash?

Второй способ: прописать /usr/bin/stat и зависимость не от bash, а от coreutils

-- 
Stanislav


Re: пакеты: как правильно получить владельца группу файла из скрипта debian/postinst ?

2017-03-21 Пенетрантность Andrey Nikitin
В Tue, 21 Mar 2017 16:29:50 +0700
Дмитрий Фёдоров  пишет:

> Прописать #!/bin/bash в начале скрипта.

Да, спсб., хотя подозрительно мало пакетов так делают, но, видимо, не запрещено.
И сразу другой вопрос - нужно прописывать зависимость от bash?



Re: пакеты: как правильно получить владельца группу файла из скрипта debian/postinst ?

2017-03-21 Пенетрантность Дмитрий Фёдоров
21 марта 2017 г., 16:19 пользователь Andrey Nikitin написал:
>
> LANG=C ls -l1d fileOrDir
>   как-то диковато
>
> stat -c "%U %G" fileOrDir
>   а если (больной) юзер в качестве /bin/sh zsh назначит в котором stat 
> встроенный и совсем другой ?

Прописать #!/bin/bash в начале скрипта.

Я видел совсем больных, которые сделали /bin/sh симлинком на /bin/csh
и так работали всем коллективом на старой рабочей станции,
но от таких совсем защиты нет.


пакеты: как правильно получить владельца группу файла из скрипта debian/postinst ?

2017-03-21 Пенетрантность Andrey Nikitin
Привет.

LANG=C ls -l1d fileOrDir
  как-то диковато

stat -c "%U %G" fileOrDir
  а если (больной) юзер в качестве /bin/sh zsh назначит в котором stat 
встроенный и совсем другой ?

/usr/bin/stat -c "%U %G" fileOrDir
   а не будет ли stat в /bin со временем,
   и нужна ли завис. от конкретной версии coreutils?

Есть ли debian-true решение этого вопроса?



Re: почему не собралось?

2017-03-21 Пенетрантность Alexander Galanin
On Tue, 21 Mar 2017 10:42:05 +0700
Ivan Petrov  wrote:

> ~/Загрузки/libktorrent-1.1.2/build/CMakeCache.txt

Попробуй собрать в каталоге без кириллицы. Да, XXI век, а глюки с
не-ASCII символами всё ещё могут быть живы.

>/usr/bin/ld: cannot find -lc

libc6-dev стоит?

-- 
Alexander Galanin