LINUX.ORG.RU

if и операторы

 ,


0

1

Здравствуйте, в данный момент читаю Advanced Bash-Scripting Guide, что в будущем переехать на LFS. (Собрав пару раз дистрибутив понял, что если не автоматизирую процесс сборки, то мне гроб гроб кладбище)
Сейчас пытаюсь понять следующий пример, но в man if вообще не упоминаются опции...

if [ "$UID" -ne "$ROOT_UID" ]
then
  echo "Для работы сценария требуются права root."
  exit $E_NOTROOT
fi



Я понимаю, что в начале скрипта мы проверяем идентификатор пользователя, но как работают параметры -ne? И второй вопрос, где можно найти нужный мануал?



Последнее исправление: beastie (всего исправлений: 2)

в man if вообще не упоминаются опции...

man bash

Deleted
()

Всем спасибо. Привык читать книги от начала до конца игнорируя переходы...

ToaDron
() автор топика
Ответ на: комментарий от ToaDron

Привык читать книги от начала до конца

плохая привычка

anonymous
()

Собрав пару раз дистрибутив понял, что если не автоматизирую процесс сборки, то мне гроб гроб кладбище

Ты не первый. Уже автоматизировали. Назвали Генту.

Kroz ★★★★★
()
Ответ на: комментарий от Kroz

Почему мне не понравилась Gentoo:

  • Структура написания Ebuild - это лишняя абстракция, которую нужно учить. PkgbildArch`а куда лучше, проще и чище.
  • Идиотские опции пакетного менеджера. Debian, OpenSUSE, Arch более подходят принципу KISS. (Хотя в первом и третьем нет системы слотов, но обновления системы проходят быстрее и без поворотов.)
  • Слоупочность авторов в bump`е новых версий пакетов
  • Скорость работы обновления. Не дольще Ubuntu, но всё же...
  • Малая свобода выбора по сравнению с традиционным .configure --* Да, автоматизация Gentoo само по себе благословение и проклятие одновременно. (LFS тут конечно ещё хуже.) Но я маленькая, но гордая лошадка, которая хочет управлять своей системой и получать опыт.
ToaDron
() автор топика
Ответ на: комментарий от Kroz

Так же это удачный шанс лучше познать Bash. И еще не думаете ли вы господа, что готовые дистрибутивы для домохозяек это зло, сужающее направление мысли.

ToaDron
() автор топика
Ответ на: комментарий от ToaDron

Структура написания Ebuild - это лишняя абстракция, которую нужно учить.

ebuild - обыкновенный bash скрипт, который делает ./configure && make && make install. И его «структуру» не нужно учить. По крайней мере до тех пор, пока не понадобится написать свой ebuild. А учитывая, что в Gentoo одни из лучших репозиториев из существующих, вряд ли тебе это понадобится.

Pkgbild`ы Arch`а куда лучше, проще и чище.

Они не могут быть «лучше и чище» (что бы это ни значило), так как там пакеты тоже должны хранить информацию о зависимостях, флагах компиляции и т. п. Я не находил в ebuild ничего лишнего.
В общем, без конкретных примеров с твой стороны - полная ерунда.

Идиотские опции пакетного менеджера. Debian, OpenSUSE, Arch более подходят принципу KISS. (Хотя в первом и третьем нет системы слотов, но обновления системы проходят быстрее и без поворотов.)

Установка пакета:

$ emerge vim

Что может быть более KISS? Примеры в студию!

Слоупочность авторов в bump`е новых версий пакетов

ННП. Примеры в студию.

Скорость работы обновления. Не дольще Ubuntu, но всё же...

emerge тормознутый. Это да. Это единственный его недостаток. В остальном он лучший.

Малая свобода выбора по сравнению с традиционным .configure --*

Свобода выбор такая же, как и у configure. Так как, например, USE флаг 'X' переданный при инсталляции пакета, тупо трансформируется в "--with-X" опцию ./configure.

Да, автоматизация Gentoo само по себе благословение и проклятие одновременно. (LFS тут конечно ещё хуже.) Но я маленькая, но гордая лошадка, которая хочет управлять своей системой и получать опыт.

Перекладывая листок бумаги сиз левой стопки в правую, а потом наоборот ты не получаешь никакого опыта. Иными словами, делая муторную неинтеллектуальную работу (например, увеличивая скорость набора отдельных слов, каких как «configure», «make», «install»), от которой избавляет тебя Gentoo, ты ничего нового не выучишь. Я уже молчу о том, что установить-то LFS можно, а вот поддерживать его слишком геморно. То есть с Gentoo ты сможешь нормально жить, а LFS - не более чем упражнение.

Но - дело твое.

Kroz ★★★★★
()
Ответ на: комментарий от Kroz
  • Ради примера приведу один из популярных веб-браузеров - Firefox, созданный Mozilla при поддержке сообщества. Когда выходит новая версия данного браузера, авторы ebuild не могут поднять даже минорную версию в течении нескольких недель. (Например, с 40.0.1 на 40.0.2)
  • Некоторые пакеты не имеют некоторых опций, которые в других дистрибутивах присутствуют. (Ebuild qBittorrent игнорирует QT5)
  • А теперь расскажи мне про обновление утилит и программ в Gentoo. Хочу посмотреть на твой KISS
ToaDron
() автор топика

В bash test является встроенной функцией, так что help test и help [

annulen ★★★★★
()
Ответ на: комментарий от ToaDron

авторы ebuild не могут поднять даже минорную версию в течении нескольких недель.

Ты не поверишь, но там не просто переписывают ebuild, а еще и тестируют на работосопосбность, а также адаптируют патчи (если они есть; для firefox есть) под новую версию.
Тебе нужен сегодняшней выпечки - к твоим услугам -9999 пакет, с которым ты можешь установить ну совсем самую последнюю версию, не оттестированную. Что, кстати, является вселенской глупостью, но ты, конечно этого ни за что не признаешь. Но можешь.

Некоторые пакеты не имеют некоторых опций, которые в других дистрибутивах присутствуют. (Ebuild qBittorrent игнорирует QT5)

Правда? А у меня почему-то не игнорирует (см. последнюю строку):

$ emerge -av --nodeps qbittorrent
 * IMPORTANT: 5 news items need reading for repository 'gentoo'.
 * Use eselect news read to view new items.


These are the packages that would be merged, in order:

[ebuild  N     ] net-p2p/qbittorrent-3.2.3::gentoo  USE="X dbus qt5 -debug -qt4 -webui" PYTHON_TARGETS="python2_7" 2 577 KiB

Total: 1 package (1 new), Size of downloads: 2 577 KiB

Would you like to merge these packages? [Yes/No] y

>>> Verifying ebuild manifests

>>> Emerging (1 of 1) net-p2p/qbittorrent-3.2.3::gentoo
>>> Downloading 'http://distfiles.gentoo.org/distfiles/qbittorrent-3.2.3.tar.xz'
--2015-10-25 22:34:29--  http://distfiles.gentoo.org/distfiles/qbittorrent-3.2.3.tar.xz
Resolving distfiles.gentoo.org... 216.165.129.135, 64.50.236.52, 140.211.166.134, ...
Connecting to distfiles.gentoo.org|216.165.129.135|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 2638708 (2,5M) [application/x-tar]
Saving to: ‘/usr/portage/distfiles/qbittorrent-3.2.3.tar.xz’

/usr/portage/distfi 100%[=====================>]   2,52M   102KB/s   in 16s    

2015-10-25 22:34:46 (161 KB/s) - ‘/usr/portage/distfiles/qbittorrent-3.2.3.tar.xz’ saved [2638708/2638708]

 * qbittorrent-3.2.3.tar.xz SHA256 SHA512 WHIRLPOOL size ;-) ...                                                                                                    [ ok ]
>>> Unpacking source...
>>> Unpacking qbittorrent-3.2.3.tar.xz to /var/ramdisk/tmp/portage/net-p2p/qbittorrent-3.2.3/work
>>> Source unpacked in /var/ramdisk/tmp/portage/net-p2p/qbittorrent-3.2.3/work
/var/ramdisk/tmp/portage/net-p2p/qbittorrent-3.2.3/work/qbittorrent-3.2.3 /var/ramdisk/tmp/portage/net-p2p/qbittorrent-3.2.3/work
/var/ramdisk/tmp/portage/net-p2p/qbittorrent-3.2.3/work
>>> Preparing source in /var/ramdisk/tmp/portage/net-p2p/qbittorrent-3.2.3/work/qbittorrent-3.2.3 ...
>>> Source prepared.
>>> Configuring source in /var/ramdisk/tmp/portage/net-p2p/qbittorrent-3.2.3/work/qbittorrent-3.2.3 ...
./configure --prefix=/usr --with-qtsingleapplication=system --with-qt5 --disable-webui
...

Может стоило немного разобраться в предмете?

А теперь расскажи мне про обновление утилит и программ в Gentoo. Хочу посмотреть на твой KISS

# Обновить vim (де-факто переустановить):
$ emerge vim

# Обновить vim только если есть новая версия:
$ emerge -u vim

# То же, но не только vim, но и его зависимости
$ emerge -uD vim

# То же, но для всех программ в системе и их зависимостей (т. е. для всей системы)
$ emerge -uD world


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

Kroz ★★★★★
()
Последнее исправление: Kroz (всего исправлений: 3)
Ответ на: комментарий от Kroz

По крайней мере до тех пор, пока не понадобится написать свой ebuild.

Вот тут-то и фэйл этих ваших ebuild'ов. Разве такое проще написать, чем это? Понятно, что в генте есть use-флаги, но арч тем и хорош, что этих осложнений нет.

xDShot ★★★★★
()
Ответ на: мимокрокодил от Debasher

и для настоящих пацанов есть http://mywiki.wooledge.org/BashGuide

Не только, на http://wiki.bash-hackers.org/scripting/tutoriallist#recommendations есть ещё. Но для совсем новичков это очень хороший источник. А дальше они уже смогут официальную документацию читать и ориентироваться в ней.

d_a ★★★★★
()
Ответ на: комментарий от xDShot

что этих осложнений нет.

Эммм... А можно вопрос: в чем суть осложнения?
(Про профайлы, ты, надеюсь, слышал)
Весь во внимании...

Вот тут-то и фэйл этих ваших ebuild'ов. Разве такое проще написать, чем это?

Вообще, я считаю глупым спорить о фичах, которые юзаешь раз в пятилетку, но давай попробуем.

Визуально размер и сложность файлов одинакова.
Ладно, то, что гентушная версия поддерживает в разы больше архитектур - мелочи; в конце концов у большинства x86 или amd64, а про Raspberry PI не все слышали. Как и про selinux и pgo: в конце концов мало кому нужна защищенность и скорость работы.

Но ты мне вот что скажи:

prepare() {
  cd mozilla-release

  cp ../mozconfig .mozconfig
  patch -Np1 -i ../firefox-install-dir.patch

А что будет если patch будет неуспешным: оно дальше пойдет компелять?

И еще вопрос: а если у тебя 100 патчей, то тебе 100 раз нужно будет писать patch?

И, да, возможности наложить кастомный патч, который пользователь сам себе нашел, конечно же нет, правда?

<sarcasm>Давай еще поговорим про простоту создания пакетов в Arch vs Gentoo...</sarcasm>

P. S. В Gentoo есть свои проблемы. Но ты даже близко к ним не подошел.

Kroz ★★★★★
()
Ответ на: комментарий от Kroz

Я конечно понимаю, что тебе хочется защищать Gentoo, но зачем другим людям навязывать твои любимые инструменты?

ToaDron
() автор топика
Ответ на: комментарий от Kroz

Самое веселое в Gentoo, когда ты решаешь просто обновиться до немаскированных версии программ и начинается: «А где библиотека XYZ??? XYZ нужно ABC. ABC не работает без XYZ чуть более новой версии...»
Почему Gentoo по умолчанию не может нормально обновляться? Может я и не научился пользоваться Gentoo, но используя костыли Arch`а я пересобираю систему быстрее.

ToaDron
() автор топика
Ответ на: комментарий от ToaDron

но зачем другим людям навязывать твои любимые инструменты?

А где и кому я что навязываю? Я просто опровергаю явную ерунду. Еще и потому, что этот тред могут читать другие люди, дабы не дезинформировать.
Мне скорее непонятны твои нападки. Я тоже перепробовал несколько дистров, я же их не критикую.

Kroz ★★★★★
()
Ответ на: комментарий от ToaDron

Самое веселое в Gentoo, когда ты решаешь просто обновиться до немаскированных версии программ и начинается: «А где библиотека XYZ??? XYZ нужно ABC. ABC не работает без XYZ чуть более новой версии...»

Ну вот опять. Откуда ты это берешь? Gentoo разруливает такое легко.

Давай не продолжать, ок?

Kroz ★★★★★
()
Последнее исправление: Kroz (всего исправлений: 1)
Ответ на: комментарий от anonymous

Извиняюсь, я опечатался. Имел в виду неразмаскированных.

ToaDron
() автор топика
Ответ на: комментарий от ToaDron

На будущее: научись видеть то, что есть на самом деле, а не то, что ты себе понапридумывал.

Kroz ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.