LINUX.ORG.RU
 

Изменение /bin/sh по умолчанию в Debian


0

0

Luk Claes внес в Debian'овский пакет dash важное изменение: начиная с версии 0.5.5.1-2.2, символическая ссылка /bin/sh указывает по умолчанию именно на dash. Как следствие, теперь dash является пакетом "обязательного" приоритета. Возможность выбора других вариантов для /bin/sh (например, bash) реализована через dpkg-divert. Преимущество dash - более быстрое исполнение скриптов.

Изменение затронуло только неинтерактивный интерпретатор для скриптов, начинающихся со строки "#!/bin/sh". Интерактивным интерпретатором командной строки для пользователей по умолчанию остается /bin/bash.

>>> Подробности


[#]  

Re: Изменение /bin/sh по умолчанию в Debian

Поддались влиянию Убунты?

**** ()
[#]  

Re: Изменение /bin/sh по умолчанию в Debian

а (init) скрипты они допилили чтобы выполнялись с dash без проблем?

***** ()
[#]  

Re: Изменение /bin/sh по умолчанию в Debian

Модераторы, исправьте, пожалуйста, опечатку: должно быть "Luk Claes".

***** ()
[#] Ответ на: Re: Изменение /bin/sh по умолчанию в Debian от Sylvia 28.07.2009 10:02:31  
gotf

Re: Изменение /bin/sh по умолчанию в Debian

>>а (init) скрипты они допилили чтобы выполнялись с dash без проблем?

С zsh, вроде, нормально выполнялись. Почти. Там проскакивало сообщение о неверных параметрах, но все работало.

* ()
[#]  
swar0g

Re: Изменение /bin/sh по умолчанию в Debian

у меня уже год /bin/sh на сиде ссылается на dash

ручками переделал символическую ссылку

до сих пор никаких проблем

*** ()
[#]  

Re: Изменение /bin/sh по умолчанию в Debian

у меня вот такой вариант


GNU bash, version 4.0.24(1)-release

$ file sh
sh: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, stripped

$ ldd sh
not a dynamic executable

$ ls -l sh
-r-xr-xr-x 1 root root 515848 Jul 1 07:32 sh

RSS footprint 400-600 kb всего лишь

при этом bash достаточно полноценный bash , со всеми возможностями, за исключением multibyte chars, секрет в diet libc, очень компактно можно собирать отдельные вещи

навряд ли dash будет более компактен ) с Glibc-ом то в памяти )

***** ()
[#]  
erfea

Re: Изменение /bin/sh по умолчанию в Debian

фу на мыло, мну расстроен

** ()
[#]  

Re: Изменение /bin/sh по умолчанию в Debian

У меня этот dash спотыкался на запуске интернетов, посему поменял назад на bash.

** ()
[#] Ответ на: Re: Изменение /bin/sh по умолчанию в Debian от Cancellor 28.07.2009 9:42:38  

Re: Изменение /bin/sh по умолчанию в Debian

>Поддались влиянию Убунты?

Это изменение было запланировано, когда Убунты ещё не было.

**** ()
[#]  
gotf

Re: Изменение /bin/sh по умолчанию в Debian

>>Преимущество dash - более быстрое исполнение скриптов

Кстати, с каких пор Debian озабочен скоростью загрузки? Пускай убунтоиды этим заморачиваются.

* ()
[#] Ответ на: Re: Изменение /bin/sh по умолчанию в Debian от gotf 28.07.2009 11:08:28  
Zombieff

Re: Изменение /bin/sh по умолчанию в Debian

> с каких пор Debian озабочен скоростью загрузки?

С тех пор, как включили в дистр пакет insserv, наверное.

* ()
[#] Ответ на: Re: Изменение /bin/sh по умолчанию в Debian от gotf 28.07.2009 11:08:28  
JackYF

Re: Изменение /bin/sh по умолчанию в Debian

>Кстати, с каких пор Debian озабочен скоростью загрузки? Пускай убунтоиды этим заморачиваются.

С каких это пор скрипты запускаются только при загрузке?

*** ()
[#] Ответ на: Re: Изменение /bin/sh по умолчанию в Debian от vtVitus 28.07.2009 11:08:00  
Dudraug

Re: Изменение /bin/sh по умолчанию в Debian

>Это изменение было запланировано, когда Убунты ещё не было.

То есть столько лет они его обсуждали? лол.

** ()
[#]  
oc

Re: Изменение /bin/sh по умолчанию в Debian

Хорошая новость. Башу интерактивный режим, скриптам даш.

* ()
[#]  
JackYF

Re: Изменение /bin/sh по умолчанию в Debian

Ещё одним преимуществом dash является несколько меньшее потребление памяти.

*** ()
[#] Ответ на: Re: Изменение /bin/sh по умолчанию в Debian от JackYF 28.07.2009 11:20:05  
gotf

Re: Изменение /bin/sh по умолчанию в Debian

Да, действительно. Впрочем, те кому это важно, в состоянии перенаправить одну ссылку :)

* ()
[#] Ответ на: Re: Изменение /bin/sh по умолчанию в Debian от Dudraug 28.07.2009 11:21:28  
JackYF

Re: Изменение /bin/sh по умолчанию в Debian

>>Это изменение было запланировано, когда Убунты ещё не было.

>То есть столько лет они его обсуждали? лол.


Обсуждали. А ещё правили башизмы.

*** ()
[#]  
JackYF

Re: Изменение /bin/sh по умолчанию в Debian

Да, кстати. Изменения в пакет внёс Raphael Geissert, если быть точным. Он же проделал большой объём работы по искоренению башизмов.

*** ()
[#] Ответ на: Re: Изменение /bin/sh по умолчанию в Debian от JackYF 28.07.2009 11:32:21  
gotf

Re: Изменение /bin/sh по умолчанию в Debian

>>искоренению башизмов

Вот это куда более важно, чем смена неинтерактивного шелла.

* ()
[#] Ответ на: Re: Изменение /bin/sh по умолчанию в Debian от vtVitus 28.07.2009 11:08:00  
commit

Re: Изменение /bin/sh по умолчанию в Debian

> Это изменение было запланировано, когда Убунты ещё не было.

Такими быстрыми темпами строится debian?

* ()
[#] Ответ на: Re: Изменение /bin/sh по умолчанию в Debian от Sylvia 28.07.2009 10:54:01  
Manhunt

Re: Изменение /bin/sh по умолчанию в Debian

Немаловажно то, что dash заставит скрипты быть поближе к POSIX. В этой плоскости количество хаоса уменьшится.

*** ()
[#] Ответ на: Re: Изменение /bin/sh по умолчанию в Debian от JackYF 28.07.2009 11:20:05  

Re: Изменение /bin/sh по умолчанию в Debian

А это единственное преимущество дэша вроде: за счет уменьшенного количества функциональности в нем, он запускается чуть-чуть быстрее, и это становится отчетливо заметным, когда его надо запускать немерянное количество раз. Единственный use-case - init-скрипты.

З.Ы. Вместо того чтобы делать новый шелл, лучше бы разработчики дэша делали новый инит, а шелл оставили в покое.

* ()
[#] Ответ на: Re: Изменение /bin/sh по умолчанию в Debian от eugene2k 28.07.2009 13:05:57  
adv

Re: Изменение /bin/sh по умолчанию в Debian

Инит без использования шелловских скриптов сделать все равно не реально. Значит правильный путь -- сделать нормальный шелл.

()
[#]  

Re: Изменение /bin/sh по умолчанию в Debian

Осталось только сменить интерактивный интерпретатор для пользователей на ZSH и окончательно избавиться от застарелого г-на в виде баша.

* ()
[#] Ответ на: Re: Изменение /bin/sh по умолчанию в Debian от adv 28.07.2009 13:30:53  

Re: Изменение /bin/sh по умолчанию в Debian

Как язык программирования shell слишком примитивен, его давно пора заменить на что-то более вменяемое. Реально можно использовать только скаляры и некое подобие списков в конструкциях типа for ... in ... Нет стандартного синтаксиса для массивов (у всех шеллов он разный), хэшей вообще нет. Условные конструкции типа if [ ... ], где [ -- символическая ссылка на внешнюю программу test -- вообще полный идиотизм. Логичнее было бы реализовать ее функции внутри интерпретатора.

Лично мне хотелось бы использовать в качестве общепринятого шелла язык уровня Perl 5 (без излишнего синтаксического произвола) или Python. Но к сожалению, скрижали POSIX заставляют пользоваться тем примитивным говном, которое мы имеем сейчас.

()
[#] Ответ на: Re: Изменение /bin/sh по умолчанию в Debian от emperor 28.07.2009 13:04:52  

Re: Изменение /bin/sh по умолчанию в Debian

> dash = Debian Almquist shell

Я как бы в курсе, но насколько я помню, именно в Убунте впервые сделали, что /bin/sh указывает на dash.

**** ()
[#] Ответ на: Re: Изменение /bin/sh по умолчанию в Debian от res 28.07.2009 14:03:04  
Manhunt

Re: Изменение /bin/sh по умолчанию в Debian

> Лично мне хотелось бы использовать в качестве общепринятого шелла язык уровня Perl 5 (без излишнего синтаксического произвола) или Python. Но к сожалению, скрижали POSIX заставляют пользоваться тем примитивным говном, которое мы имеем сейчас.

В 95% случаев шелла более, чем достаточно. Там, где не достаточно - вполне можно писать #!/usr/bin/python или #!/usr/bin/perl . Не вижу никаких проблем.

*** ()
[#] Ответ на: Re: Изменение /bin/sh по умолчанию в Debian от adv 28.07.2009 13:30:53  

Re: Изменение /bin/sh по умолчанию в Debian

Очень даже реально. Только это будет не классический юниксовый инит. Посмотри в сторону upstart, к примеру.

* ()
[#] Ответ на: Re: Изменение /bin/sh по умолчанию в Debian от Manhunt 28.07.2009 14:12:17  

Re: Изменение /bin/sh по умолчанию в Debian

95% каких случаев? Когда я работал администратором сети, мне постоянно не хватало shell и приходилось всю автоматизацию делать на Perl. На shell можно сделать только совсем простые вещи.

()
[#] Ответ на: Re: Изменение /bin/sh по умолчанию в Debian от adv 28.07.2009 13:30:53  

Re: Изменение /bin/sh по умолчанию в Debian

Во-первых, вполне реально, а во-вторых, скорость старта системы от скорости запуска интерпретатора зависит не так сильно как от работы инита. В дебе до сих пор нет асинхронного старта и зависимостей сервисов, и до сих пор нельзя через скрипт проверить статус сервиса (ps вариант). А ведь все это в Gentoo сто лет как из коробки (если к Gentoo это вообще применимо :), поставить одно yes в rc )

()
[#] Ответ на: Re: Изменение /bin/sh по умолчанию в Debian от res 28.07.2009 14:30:04  

Re: Изменение /bin/sh по умолчанию в Debian

Меня вот вопрос мучает: нужен ли, при таком обилии скриптовых языков, как сейчас, неинтерактивный шелл вобще или же это уже пережиток прошлого?

* ()
[#] Ответ на: Re: Изменение /bin/sh по умолчанию в Debian от Sylvia 28.07.2009 10:54:01  

Re: Изменение /bin/sh по умолчанию в Debian

>навряд ли dash будет более компактен ) с Glibc-ом то в памяти )

gnu libc в памяти один раз на все программы её использующие. Так что размер её не сильно важен. Номальные люди используют линковку во время запуска.

()
[#] Ответ на: Re: Изменение /bin/sh по умолчанию в Debian от res 28.07.2009 14:03:04  
rmammoth

Re: Изменение /bin/sh по умолчанию в Debian

> Как язык программирования shell слишком примитивен, его давно пора заменить на что-то более вменяемое.

+100

* ()
[#]  
nnz

Re: Изменение /bin/sh по умолчанию в Debian

Где-то читал, что из-за /bin/sh -> /bin/dash в убунте падает пересборка ядра. Ну убунтоводам оно в целом и не нужно, а вот в дебиане это будет действительно неудобно.

**** ()
[#] Ответ на: Re: Изменение /bin/sh по умолчанию в Debian от nnz 28.07.2009 15:17:37  
Manhunt

Re: Изменение /bin/sh по умолчанию в Debian

> Ну убунтоводам оно в целом и не нужно, а вот в дебиане это будет действительно неудобно.

И до следующего стабильного Дебиана наверняка починят.

*** ()
[#] Ответ на: Re: Изменение /bin/sh по умолчанию в Debian от res 28.07.2009 14:30:04  
Manhunt

Re: Изменение /bin/sh по умолчанию в Debian

> На shell можно сделать только совсем простые вещи.

Именно на такие случаи шелл и должен быть нацелен. Элементарная работа с файлами, элементарный запуск улитит, простейшие циклы. А сложные вещи - они очень многогранны. И потому для них нет серебряной пули. Где-то хороош перл, где-то хорош cmake, где-то лучше взять в руки c++.

*** ()
[#] Ответ на: Re: Изменение /bin/sh по умолчанию в Debian от Manhunt 28.07.2009 15:53:20  
nnz

Re: Изменение /bin/sh по умолчанию в Debian

Самый простой способ починить это - поменять ссылку руками. Но если так и дальше дело пойдет, придется менять дистр.

**** ()
[#] Ответ на: Re: Изменение /bin/sh по умолчанию в Debian от nnz 28.07.2009 16:04:35  
Manhunt

Re: Изменение /bin/sh по умолчанию в Debian

> Самый простой способ починить это - поменять ссылку руками. Но если так и дальше дело пойдет, придется менять дистр.

Хочешь чтоб все "просто работало" - пользуйся стабильной веткой. Хочешь свежатинки - будь готов к нестабильности. Не понимаю твоего недовольства.

*** ()
[#] Ответ на: Re: Изменение /bin/sh по умолчанию в Debian от Manhunt 28.07.2009 16:22:18  
nnz

Re: Изменение /bin/sh по умолчанию в Debian

>Хочешь чтоб все "просто работало" - пользуйся стабильной веткой. Хочешь свежатинки - будь готов к нестабильности. Не понимаю твоего недовольства.

Хочу стабильный дистр. В который не тянут всякое г в надежде, что "потом допилим".

**** ()
[#] Ответ на: Re: Изменение /bin/sh по умолчанию в Debian от nnz 28.07.2009 16:34:54  
Manhunt

Re: Изменение /bin/sh по умолчанию в Debian

> В который не тянут всякое г в надежде, что "потом допилим".

Изначально bash хотели отпилить еще в lenny. Была проделана большая работа, но успеть - не успели. И потому в lenny идет bash. Никаких "потом".

Если не успеют допилить к squeeze, то и squeeze зарелизят с bash. Хотя я совершенно уверен, что успеют.

*** ()
[#] Ответ на: Re: Изменение /bin/sh по умолчанию в Debian от Manhunt 28.07.2009 16:59:33  
nnz

Re: Изменение /bin/sh по умолчанию в Debian

Отпилить баш? Тогда следующим шагом, конечно же, будет отпиливание ядра Linux, как тормозного и глючного. Вот для чего они с Hurd и kFreeBSD возились!

**** ()
[#] Ответ на: Re: Изменение /bin/sh по умолчанию в Debian от nnz 28.07.2009 17:19:46  
Manhunt

Re: Изменение /bin/sh по умолчанию в Debian

> Отпилить баш?

В качестве /bin/sh - да.

> Тогда следующим шагом, конечно же, будет отпиливание ядра Linux, как тормозного и глючного.


У вас глючная сборка libastral :D

*** ()
[#] Ответ на: Re: Изменение /bin/sh по умолчанию в Debian от nnz 28.07.2009 17:19:46  
Manhunt

Re: Изменение /bin/sh по умолчанию в Debian

Хоть лично я с определенным фанатизмом отношусь к идее микроядерности. Трудно пройти мимо такой няшки, как l4.

*** ()
[#] Ответ на: Re: Изменение /bin/sh по умолчанию в Debian от nnz 28.07.2009 15:17:37  

Re: Изменение /bin/sh по умолчанию в Debian

> Где-то читал, что из-за /bin/sh -> /bin/dash в убунте падает пересборка ядра

Врут, нормально всё работает.

** ()