Архив метки: Linux

Damn Small Linux. Установка

Скачиваем образ диска ftp://ftp.is.co.za/linux/distributions/damnsmall/current/dsl-4.4.10.iso. Прожигаем все это на болванку, в биосе выставляем загрузку с диска, запускаемся.

Первое, что мы увидим будет вот такой экран загрузки:

dsl-zagruzka

Перевожу надписи: Установка на юсб-флешку, запуск в качестве гостевой ОС, MyDSL расширения, установка на жесткий диск. DSL основан на Кноппиксе, Дебиане и GNU Линукс технологиях. Нажмите <энтер> для начала, F2 и F3 для выбора параметров загрузки.

Если нажать F2 можно выбрать следующие параметры загрузки:
fb1280x1024 | fb1024x768 | fb800x600 разрешение монитора
dsl vga=normal безопасный режим видео (нажмите F3 для выбора больших опций)
dsl xsetup
dsl noicons без иконок (не будет иконок на кнопках, пунктах меню и ярлыков на рабочем столе)
dsl mydsl={hda1|sda1} восстановить приложения MyDSL (по умолчанию при загрезке с live-cd)
dsl base пропустить MyDSL, загрузить только базовую систему
dsl norestore отключить автоматическое восстановление
dsl restore={hda1|sda1|floppy} указать откуда восстановить сохраненную конфигурацию
dsl toram скопировать содержимое live-cd в оперативную память и начать загрузку (требуется от 128Мб). В этом режиме система будет работать очень быстро – скорость считывания данных с оперативной памяти намного выше, чем с live-cd или жесткого диска. Например, Мозила с live-cd запускается около 10 секунд, а с оперативки 2 секунды (правда я тестировал на хорошем компе, но и на старушке разница будет ощутимой).
dsl  tohd=/dev/hda1 скопировать содержимое live-cd жесткий диск и начать загрузку
dsl fromhd=/dev/hda1 загрузка с ранее скопированного образа диска
dsl {ssh|lpd|cron|fuse|nfs|syslog|monkey|ftp} Запустить выбранные демоны при старте системы
dsl lang=us {cs da de es fr nl it pl ru sk …} Выбрать язык, раскладку клавиатуры
dsl no{scsi|pcmci|usb|agp|swap|apm|apic|mce|ddc} отключить определение указанного оборудования
dsl dma включить режим DMA для всех дисков
dsl 2 текстовый режим, т. е. без графической оболочки как сервер (да, да, из DSL можно сделать сервер :-) )
failsafe отключить определение оборудования
expert режим эксперта/интерактивный режим

Если нажать F3 можно выбрать следующие опции загрузки:
dsl vga=7xx выберите значение из таблицы выше.

Поясню этот пункт подробней. В параметре 7xx можно указать количество цветов и разрешение монитора. Вверху есть таблица, в которой нужно выбрать количество цветов (битность) в колонке справа и разрешение экрана в верхней строчке. На месте пересечения будет значение вроде 789. Например, если разрешение монитора 1024 на 768 и количество цветов 65000 (16 бит), выбираем значение 791. Параметр загрузки будет выглядить так dsl vga=791

dsl sata поддержка SATA дисков
dsl secure запрашивать пароль для пользователя root и dsl
dsl protect
dsl host=xxxx установить имя хоста
dsl minimal запустить иксы с минимальным оформлением
dsl desktop={fluxbox|jwm} выбор рабочей среды, по умолчанию выбран jwm
dsl waitusb ждать ответы от медленных юсб-устройств
dsl legacy не загружать unionfs. Что это такое можно почитать на Википедии http://ru.wikipedia.org/wiki/UnionFS
dsl dosswapfile{=hda1} найти или указать файл подкачки
dsl chekcfs
lowram запустить иксы, с минимальным оформлением, без иконок, без юсб, без scsi, без рейда и т. д.
install начать установку в текстовом режиме – сразу начнется установка, live-cd загружаться не будет.

Эти параметры можно использовать как при загрузке с live-cd, так и указать в grub или lilo (смотря что установите) после установки на жесткий диск. Как выбрать нужные параметры загрузки? Просто наберите их. Можно выбрать несколько параметров через пробел. При этом слово dsl нужно писать только один раз в начале. Внизу экрана есть приглашение для ввода:

boot: _

Вот тут и набирайте нужные параметры. Например, если хотим загрузиться без иконок с разрешением 800 на 600 16 бит с предварительной загрузкой содержимого диска в оперативную память и без иконок, надо будет написать следующее:

boot: dsl vga=788 toram noicons

Для установки DSL на жесткий диск запустимся без указания параметров. Жмем энтер, пробегут цветные буковки и появится рабочий стол:

dsl-desktop

Установка DSL на жесткий диск

Разделы на жестком диске нужно подготовить заранее. В live-cd есть утилита командной строки cfdisk для создания разделов на жестком диске. Для этого запускаем терминал: в контекстном меню (клик мышкой на рабочем столе) выбираем Apps – XShells – дальше что-нибудь одно из предложенных Transparent, Light и Dark (это скин терминала: прозрачный, светлый и темный) или Root Access (терминал с root-правами).

Запустили терминал, смотрим какие диски или разделы у нас есть:

sudo fdisk -l

Далее создаем системный раздел и своп (файл подкачки). У меня жесткий диск на 1,6 Гб. Сделал два раздела: корень в 1,5 Гб и своп 100 Мб. Для установки DSL требуется минимум около 200 Мб.

Создаем разделы:

sudo cfdisk /dev/hda

Вместо hda подставьте свое значение выданное в результатах предыдущей команды fdisk -l. Далее буду приводить свои значения, вы можете их менять на свои по усмотрению и необходимости.

Если диск чистый/новый вас спросят:

"No partition table or unknowk signature on partition table. Do you wish to start with a zero table [y/N]?"

На что отвечаем утвердительно – нажимаем Y. Появится такое окно, это редактор разделов:

dsl-cfdisk

Выбираем внизу пункт [New] – создать разделы, выбираем тип раздела [Primary] – основной раздел и указываем размер в мегабайтах – 1500. Раздел создан, теперь в списке две строки: только что созданный раздел и оставшееся пустое место. Стрелкой вниз выбираем пустое место и создаем раздел подкачки на всем оставшемся месте.

Далее выбираем файловую систему каждого раздела выбрав пункт [Type]. Пишем 83 для основного раздела и 82 для свопа. Основной раздел помечаем как загрузочный кнопкой [Bootable]. Если все сделали правильно, нажимаем [Write], подтверждаем свои действия набрав yes и тем самым запишем таблицу раздеделов. Закрываем терминал и начинаем установку.

Для установки Damn Small Linux на жесткий диск в контекстном меню выбираем пункт Apps – Tools – Install to HardDrive

установка dsl на жесткий диск

Дальше отвечаем на несколько вопросов:
Enter the target partition. На какой раздел будет установлена система? Пишем название своего раздела, hda1, например.

dsl-install-to-hdd

Do you wish to multi-user logins? Хотите ли вы несколько пользователей в системе? Да/нет.

Use journalized ext3 filesystem? Использовать файловую систему ext3? (не рекомендуется на слабых машинах). Если нет, будет выбрана ext2.

Continue? Продолжить? Если продолжить будет создана файловая система и начнется установка.

Через некоторое время вас спросят будем ли ставить загрузчик? Отвечаем утвердительно. Снова спросят какой именно загрузчик мы хотим поставить Груб или Лило. Я выбрал Груб.

Загрузчик установлен. Перезагружаемся. Диск можно вытащить. После перезагрузки появится экран с выбором варианта загрузки. При необходимости правим параметры нажав «e». Все доступные параметры были описаны выше.

Далее вас попросят придумать пароль для root пользователя и повторить его еще раз. А затем те же действия для пользователя dsl (пользователь по умолчанию).

И наконец появится рабочий стол! :-) На этом установка закончена. В следующей статье про то как сохранить настройки при выключении или перезагрузке.

P.S.: некоторые значения в тексте и на скриншотах могут отличаться, т. к. скриншоты были сделаны позже на виртуальной машине.

Автор: Roman Brovko

За границами IDE. Консоль

Возможности современных интегрированных средств разработки поражают. Не выходя из любимой среды, вы можете писать и отлаживать код, собирать ваши проекты и фиксировать их изменения в системах контроля версий… Порой, проработав многие годы, некоторые программисты вообще не представляют себе жизнь вне любимой среды разработки, и не имеют представление о способах решения привычных для них задач без IDE. Не думаю, что их стоит за это винить. Знать обо всех ключах компилятора сегодня – вовсе не жизненно важная необходимость, а скорее интересная тонкость, позволяющая программисту подняться еще на одну ступеньку своей квалификации.Я начинаю цикл статей, в котором предлагаю вам подняться по таким ступенькам, заглянув за кулисы работы вашей любимой среды разработки. И первым шагом на этом пути будет знакомство с командной оболочкой. Читать

Linux терминал запуск из истории команд

Как выбрать в терминале из истории, когда-то введенную команду? Если недавно введенная — то стрелочкой вверх, а если команд двадцать назад?

Решение:
history | grep <искомое>
В найденном строчки будут пронумерованные. И запуск выбранной команды:
!NNN
где NNN это номер строки.

Автор: Viktor

Как офис не айтишной компании на Linux перешёл

Работаю я в офисе одной очень крупной финансовой компании, деятельность которой только косвенно переплетается с техникой,а точнее, использует её только в пользовательских целях – документик набрать, презентацию нарисовать. И вот однажды руководству компании пришла мысль легализовать весь имеющийся у них софт. И тут мне, как их “компьютерщику”, пришла в голову одна из самых нехороших мыслей в моей жизни, предложить им не покупать лицензии на Windows софт,а перейти на Linux системы… Не делайте подобных ошибок)
Читать

Запуск Android программ в Linux

Google дал для своего детища ChromeOS, который по сути своей Linux, возможность запускать Android приложения. По иронии судьбы, Android — это то же Linux с Java машиной ART в новых версиях и Dalvik в старых. Теперь в Linux мы мучаемся с запуском программ, написанных для несколько иной Linux системы на кроссплатформенном языке Java. Технология называется App Runtime for Chrome или кратко ARC, которую разработали Кен Микстер (Ken Mixter) и Джош Вудвард (Josh Woodward).

Первые релизы ARC, которая ещё делает свои первые шаги, шли с ограничениями типа: работало некоторое количество приложений и только в ChromeOS. Разработчик НЕ из Google по имени Влад Филиппов ака vladikoff устранил ограничения и представил свою версию ARC под названием ARChon. Нам понадобится браузер Google Chrome старше 37 версии и всё что мы будем делать — это использовать API расширений Chrome. Гугловский ARC — это расширение. ARChon — расширение. Все программы Android, что вы установите — это расширения.

Если вы будете использовать ARChon, то вы замените Google ARC, но не удалите его. Так что процедура безболезненная и не опасная.

Установка Архона.

Предполагаю, что с установкой Google Chrome вы уже справились. Осталось зайти на ARChon Custom Runtime Guide и скачать нужной архитектуры ARChon. Скачав архив, распакуйте его.

И тут остановитесь. Минутка истории! Начиная c Chrome 35 для ОС MS Windows, Google решил запретить установку новых и работу прежде установленных расширений, размещённых НЕ в магазине Chrome WebStore. Потом был полный запрет сторонних расширений в мае 2014 года. Теперь чтобы установить стороннее расширение даже если вы ему доверяете, нужно провернуть несложный финт ушами.

Нам нужно в Терминале запустить Google Chrome вот так:

google-chrome --enable-easy-off-store-extension-install

Теперь через Инструменты -> Расширения можно добавить скачанный и распакованный Архон. Поставьте галочку «Режим разработчика» и нажмите «Загрузить распакованное расширение». Укажите на распакованный каталог Архона, игнорируя предупреждения.

Установка Android программ в Linux без проблем.

Сообщество подготовило обширный список программ, с указанием статуса работоспособности и URL. Вам осталось посетить онлайн электронную таблицу Chrome APK Official Apps List. Я никогда не кидал свиней в птиц и решил, что самое время проверить возможность работы Android программ в Linux'е на примере именно этой игрушки Angry Birds. Скачал, распаковал, добавил как расширение и запустил.

Установка Android программ в Linux через /dev/ass.

Как быть если на руках есть только пакет с Android программой в формате apk? Сначала проверьте в Chrome APK Official Apps List чтобы данная программа не была в красном цвете статуса Crash или Unusable. Я наивно полагал, что справлюсь с игрушкой Plants vs Zombies v1.2, но она обломала мне рога. И тут я вспомнил, что для популярной игры World of Tanks есть программа-помощник World of Tanks Assistant. Скачать apk из Google Play мне помог сайт apk-dl.com, выдав прямую ссылку на требуемое.

Теперь нам нужен инструмент chromeos-apk, который позволяет конвертировать пакет apk в удобоваримое расширение:

  • Ставим Node Package Manager:
    sudo apt-get install npm
  • Качаем node.js. Чтобы не заморачиваться с исходниками и не компилировать какой-либо софт в Убунту с пакетным менеджментом, выбираю Linux Binaries (.tar.gz). Распаковываю архив и запоминаю путь к нему. Бинарник node оказался у меня в /home/brovko_rs/temp/node/bin/
  • Обновляю до последней версии chromeos-apk
    sudo npm install -g chromeos-apk@latest
  • Перехожу в каталог с файлом ru.worldoftanks.mobile_1.8.2.apk и конвертирую, подсказывая где взять бинарник node:
    PATH=$PATH:/home/brovko_rs/temp/node/bin chromeos-apk ru.worldoftanks.mobile_1.8.2.apk

    Должно быть выдано подобное:

    Directory " ru.worldoftanks.mobile.android " created. Copy that directory onto your Chromebook and use "Load unpacked extension" to load the application.
  • Установка WoT Assistant в виде расширения через Инструменты -> Расширения закончилось неудачей, как до этого и Plants vs Zombies. Дело в том, что нужно из файла ru.worldoftanks.mobile.android/manifest.json взять строку
    "name": "ru.worldoftanks.mobile"

    и, превратив её в

    "message": "ru.worldoftanks.mobile"

    , добавить в файл ru.worldoftanks.mobile.android/_locales/en/messages.json в раздел extName


    "extName": {
    "description": "Extension name",
    "message": "ru.worldoftanks.mobile"
    }

    Теперь установка программы в виде расширения должна закончиться успешно. Это помогло WoT Assistant, но не помогло Plants vs Zombies, который установился, но продолжал к
    рашиться.

  • Можете закрепить Android программы в Unity Launcher, чтобы в дальнейшем быстро вызывать программу. Ведь никто визуально даже не догадается, как это запущено и как это работает. Главное работает!

Твики.

Программы в мире Android привыкли работать на мобильных устройства: смартфонах и планшетах. Окно программы вписывается в невидимое устройство и, если вам хочется сделать resize, чтобы было покрупнее, то это вполне можно сделать. В папке, которая содержит распакованный Archon есть 2 файла gen_main.min.js и gen_index.min.js
Найдите в них

tablet: {"long": 1280, "short": 800}

и подправьте под свои нужды.

Более действенно будет добавить

"resize": "scale"

в раздел arc_metadata в файле manifest.json у самого приложения. После всех манипуляций не забудьте Перезагрузить (Ctrl+R) расширение.

Если у приложения нет своего значка, то на панели Unity Launcher будет дефолтный значок зелёного робота. Самый простой способ сменить значок — это любой понравившийся значок положить в распакованную папку приложения, затерев там icon.png. Остальное произойдёт без вас автоматически.

Вот в принципе и всё! Если вам чего-то не хватало из мира Android и вы страстно хотели это запустить в своей Linux системе, то теперь есть реальный шанс сделать это.

Дополнительные материалы:
Проект по запуску Android приложений в Ubuntu.
Андроид программы в Ubuntu через AVD.
LXC 1.0: Более углублённое использование контейнера. Установка Android в контейнер LXC.

Автор: Roman Brovko

Автозапуск скрипта при загрузке ОС с помощью Systemd на примере x11vnc. Service-файлы.

Автозапуск скрипта при загрузке ОС с помощью Systemd на примере x11vnc. Service-файлы.

С массовым переходом на systemd, вопрос запуска скрипта от имени пользователя root при загрузке ОС, стал всё чаще подниматься на форумах и в умах линуксоидов, которым ещё не приходилось сталкиваться с этой новой системой инициализации. Меня этот вопрос так же не обошёл стороной, когда пришлось внедрять корпоративный дистрибутив, использующий systemd и появилась необходимость запускать при загрузке ОС x11vnc от имени пользователя root. Выяснилось, что в systemd, эта задача решается с помощью service-файлов, имеющих простой для понимания формат и создаваемых по стандартному, для этих целей, шаблону. Файлы эти располагаются в /lib/systemd/system (системные) и /etc/systemd/system (эта директория приоритетнее первой для systemd) и имеют имена вида: название.service. Загляните в эти директории, просмотрите несколько service-файлов имеющих знакомые названия типа network.service или cups.service и в общих чертах всё станет ясно. Содержание созданного мной service-файла таково:

[root@comp-core-2-81b58d system]# cat startvncserver.service
[Unit]
Description=Start vnc server /usr/bin/startvncserver

[Service]
Type=oneshot
ExecStart=/usr/bin/startvncserver
RemainAfterExit=yes

[Install]
WantedBy=graphical.target

Где, Description=Start vnc server /usr/bin/startvncserver — Описание сервиса.
Type=oneshot — Задание метода окончания периода запуска сервиса. Oneshot означает что действие, выполняемое сервисом должно быть окончено до запуска следующего сервиса.
RemainAfterExit=yes — Используется в связке с предыдущей опцией и говорит systemd о том, что данный сервис хоть и завершит свою работу после выполнения скрипта, но должен оставаться со статусом active.
ExecStart=/usr/bin/startvncserver — Путь к скрипту для выполнения.
WantedBy=graphical.target — Параметр, который даёт понять systemd, на какой стадии загрузки системы нужно выполнить данный сервис.  multi-user.target соответствует init3. graphical.target соответствует init5.

Для запуска, остановки, перезапуска, просмотра статуса  и включения в автозгрузку сервиса (и соответственно нашего скрипта), используются стандартные команды systemd.
Запустить:

[root@comp-core-2-81b58d system]# systemctl start startvncserver.service

Остановить:

[root@comp-core-2-81b58d system]# systemctl stop startvncserver.service

Перезапустить:

[root@comp-core-2-81b58d system]# systemctl restart startvncserver.service

Посмотреть статус:

[root@comp-core-2-81b58d system]# systemctl status startvncserver.service

И самое важное! Для запуска сервиса при загрузке ОС, его нужно включить:

[root@comp-core-2-81b58d system]# systemctl enable startvncserver.service

С автозагрузкой скрипта разобрались, теперь разберём сам скрипт и опции запуска vnc сервера x11vnc. В нашем случае, подключаются клиенты только из локальной сети, поэтому шифрование мы не используем. Из необходимых требований — запрет завершения процесса от имени пользователя и запрет чтения пароля на подключение пользователем. Поэтому мы запускаем x11vnc от имени root и храним пароль в файле, доступном на чтение только ему.

[root@comp-core-2-81b58d system]# cat /usr/bin/startvncserver

#!/bin/bash
while [[ $(test -f /var/run/xauth/A* ; echo $?) -ne 0 ]]
do
sleep 1s
done
/usr/bin/x11vnc -noipv6 -shared -forever -passwdfile /etc/x11vncpasswd -bg -display :0 -auth /var/run/xauth/A*

Где, используя цикл while мы задаём проверку того, появился ли файл «магической печенки», необходимый для запуска vnc сервера и если он ещё не появился, то ждём 1 секунду и проверяем вновь. Когда необходимый файл появляется, запускаем x11vnc со следующими опциями:

-noipv6 — Не использовать ipv6.
-shared — Обеспечить возможность подключения одновременно нескольких клиентов. Без этой опции, при подключении одного клиента, второй уже подключиться не сможет.
-forever — Не завершать работу сервера после подключения первого клиента.
-passwdfile /etc/x11vncpasswd — Указать, где искать пароль для подключения. Пароль содержится в текстовом файле, без шифрования, либо создаётся командой x11vnc -storepasswd в интерактивном режиме и записывается в файл ~/.vnc/passwd в шифрованном виде. При использовании первого варианта, нужно выставить права на чтение файла только пользователю root и соответственно запускать x11vnc от имени root, что я в общем и описываю.
-bg — запустить процесс на заднем фоне, то есть отвязать его от текущего терминала.
-display :0 — номер дисплея для подключения. По умолчанию в одномониторных системах это :0.
-auth /var/run/xauth/A* — путь к файлу с магической печенкой 🙂 То есть файлу авторизации X сервера. Где он лежит в вашей системе, можно выяснить так:

[yar4e@yar4e-admin ~]$ ps aux | grep X
yar4e     6888  0.0  0.0    568   144 pts/5    D+   14:39   0:00 grep X
root      7324  0.0  0.9  42356 19852 tty7     Ss+  Mar26  26:19 X :0 vt7 -auth /var/run/xauth/A:0-uyXr3I

Всё вышеописанное реализовывалось на Alt Linux P7 TDE и может незначительно отличаться на вашем дистре.

Автор: Yar4e