Ответы пользователя по тегу Linux
  • Какие книги почитать про программирование для GNU/Linux?

    @Z-r
    > Интересуют книги, в которых детально рассмотрены утилиты: make, autoconf, automake. Также компиляторы [из] gcc.

    А в документации, что прилагается к этим программам, они, как вам кажется, рассмотрены *не достаточно* детально?

    Навряд ли вы будете это печатать, скорее читать в гипертексте (в Емаксе или в HTML), но поскольку страница, пожалуй, есть все еще самая интуитивно понятная единица:
    $ pdf-page-count make/*.pdf autoconf/*.pdf automake/*.pdf gcc/*.pdf
    212	make/make.pdf
    394	autoconf/autoconf.pdf
    184	automake/automake.pdf
    28	gcc/cppinternals.pdf
    85	gcc/cpp.pdf
    84	gcc/gccinstall.pdf
    766	gcc/gccint.pdf
    922	gcc/gcc.pdf
    TOTAL: 2675


    Две с половиной тысячи страниц увлекательных деталей ждут вас. :-)
    Ответ написан
    6 комментариев
  • Почему в мире мобильных ОС нет такого разнообразия как среди десктопных ОС?

    @Z-r
    > Почему выбор ограничен сугубо android, apple, windows.

    А возьмите ваш карманный компьютер, на котором предустановлена одна из этих операционных систем, и поставьте на него другую из этого же списка.

    Уверен, ответ на вопрос «почему не существуют другие» станет несколько ближе. :-)
    Ответ написан
    5 комментариев
  • Как написать на bash программу (исполнимый файл), которая меняет каталог?

    @Z-r
    > требуется создать ИСПОЛНИМЫЙ ФАЙЛ
    > этот самый ИСПОЛНИМЫЙ ФАЙЛ предполагается положить в одну из папок PATH и вызывать откуда угодно в терминале
    > ИСПОЛНИМЫЙ ФАЙЛ при вызове самостоятельно завершать работу и менять текущую рабочую директорию

    Это невозможно. Ну или по крайней мере не должно быть возможно без использования весьма развесистых костылей типа программной записи на ввод телетайпа.

    Рабочий каталог — это свойство окружения процесса и он точно так же, как и все окружение, наследуется дочерними процессами, а не разделяется с ними. А исполняемый файл по определению исполняется в дочернем процессе.
    Ответ написан
    Комментировать
  • Можно ли заработать в мире Unix-like, unix-way?

    @Z-r
    Мне известно четыре основных способа заработка, напрямую связанных со свободными программами:

    — Первый, самый прямой, но от того почему-то всем не менее неочевидный — брать и продавать копии свободных программ. Аудитория: любые конечные пользователи. Примеры: Parted Magic, ряд программок для «Андроида», ну например, «Conversations». Высокоморальность: в полном порядке.

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

    — Третий — это продажа исключений из авторского лева. Аудиторией будут разработчики несвободных программ, а программа ваша должна быть библиотекой под (как нетрудно догадаться) авторским левом, причем чаще сильным. Суть в том, что для добрых людей ваш продукт свободен на условиях, скажем, GNU GPL или GNU AGPL, а проприетарщики пусть платят за возможность использовать его в своих шкурных интересах. Примеры: GhostScript, MySQL. Высокоморльность: прихрамывает маленько.

    — Четвертый — это то, о чем помянул тов. CityCat4 — т. н. free crippleware, то есть полноценная ваша программа несвободна и платна, но у нее есть свободный урезанный вариант. Причем урезано может быть как что-то существенное, так и сущая ерунда. Аудитория: кто угодно. Примеры: Odoo, GitLab, ProcessMaker. Высокоморальность: от невысокой до никакой, смотря сколько отрезано.

    И разумеется, все вышеперечисленно можно комбинировать: Qt, к примеру, и поддержку (обучение) предоставляет, и исключения из авторского лева (причем слабого!) продает, и совсем ерундовую несвободную часть имеет. А упомянутый вами Red Hat — продает копии и предоставляет поддержку. А иногда и такое бывает: программка для «Андроида» под названием OsmAnd полностью свободна, но поставляется в Гуглоплэе в двух вариантах: полном за копеечку и урезанном бесплатно. Еще раз: обе версии свободны, то есть никакой моральной проблемы здесь нет.

    ――

    P. S. Я перечислил только способы заработка на программах как таковых, полагая, что схемы, где свободные программы участвуют косвенно, и без того очевидны, но в комментариях только о них и говорят, так что надо, наверное, упомянуть, что да, конечно, свободная программа также может быть:
    — Частью продаваемой услуги — чаще всего услуги специфического хостинга, как ставимый здесь в пример Openshift или (если ближе к народу) Feedly.
    — Частью продаваемого устройства, причем само устройство может быть как свободным, так и нет. Тысячи их.
    — И наконец, просто частью приносящего прибыль техпроцесса. То есть компания пишет (заказывает) программу себе для внутреннего использования и могла бы ее вообще не распространять, но, не считая ее своим «ноу-хау», ведет себя благородно и просто свободно делится ею со всеми. Известнейший пример — Reddit (хотя в последнее время они подскурвились).

    ――

    И не могу все-таки не отметить, что unix-way отношение к свободе имеет такое же, как мелкое к горячему.
    Ответ написан
    2 комментария
  • Не ломает ли переменная IFS команду?

    @Z-r
    > Я правильно применяю IFS?

    Я не знаю, правильно ли вы применяете IFS, но выглядит все это таки довольно стремно. На самом деле, вы хотите написать:

    IFS=':' read -ra WHATTOBACK <<< "$WHATTOBACK"
    dar ... "${WHATTOBACK[@]}"
    Ответ написан
    Комментировать
  • Есть сервера на одном работает java, как ожидать запроса на других?

    @Z-r
    А при чем здесь Ява?

    > выделенный сервер ожидал запроса к нему, и когда приходит запрос выполнял некий shell скрипт

    inetd, не?
    Ответ написан
  • Странная ошибка при сборке Docker контейнера (Bash)?

    @Z-r
    На большинстве систем /bin/sh — это не ГНУ Баш (/bin/bash). И в Убунте тоже — там sh — это Debian ASH, который [[ не умеет.
    Ответ написан
    Комментировать
  • Как в терминале (bash) авторизоваться под root с сохранением окружения текущего пользователя (алиасы, переменные и п.р.)?

    @Z-r
    $ sudo -s -E, а не -i. Согласно ману sudo из поставки OS X оба этих ключа тоже умеет.

    P. S. В порядке недовольства: ну как вы тэги назначаете: к Башу вопрос имеет очень косвенное отношение (возьмите любую другую оболочку — ничего не изменится), к Линуксу — вообще ни малейшего, к Убунте — определенно меньшее чем к Макоси, которую вы в тэгах не упомянули, и наконец самое прямое — к sudo, которой опять же в тэгах нет.
    Ответ написан
    1 комментарий
  • Как автоматически экранировать символы в строковой переменной в shell?

    @Z-r
    $ printf '%q\n' 'foo\bar? baz!'
    foo\\bar\?\ baz\!
    Ответ написан
    Комментировать