Відмінності між версіями «Встановлюємо Linux-програми на смартфон під управлінням Android»

Матеріал з Вікі ЦДУ
Перейти до: навігація, пошук
Рядок 5: Рядок 5:
 
'''Linux чи не Linux?'''
 
'''Linux чи не Linux?'''
  
Як відомо, андроїд заснований на ядрі Linux і включає в себе набір стандартних бібліотек і утиліт командного рядка, властивих звичайному Linux-дистрибутива. Однак запуск класичного Linux-софта тут сильно утруднений через безліч причин, в числі яких несумісність ABI, відсутність менеджера пакетів, власна система безпеки і відсутність багатьох компонентів стандартної Linux-системи.
+
Як відомо, андроїд заснований на ядрі Linux і включає в себе набір стандартних бібліотек і утиліт командного рядка, властивих звичайному Linux-дистрибутиву. Однак запуск класичного Linux-софта тут сильно утруднений через безліч причин, в числі яких несумісність ABI, відсутність менеджера пакетів, власна система безпеки і відсутність багатьох компонентів стандартної Linux-системи.
  
Так, незважаючи на наявність в Android стандартної бібліотеки libc і інших, їх реалізація в більшості випадків несумісна з бібліотеками від проекту GNU і сильно урізана по функціоналу. З цієї причини Linux-софт потрібно як мінімум збирати заново спеціально під Android і ARM-процесор, а в багатьох випадках ще й патчить, додаючи функціонал, відсутній в бібліотеках.
+
Так, незважаючи на наявність в Android стандартної бібліотеки libc і інших, їх реалізація в більшості випадків несумісна з бібліотеками від проекту GNU і сильно урізана по функціоналу. З цієї причини Linux-софт потрібно як мінімум збирати заново спеціально під Android і ARM-процесор, а в багатьох випадках ще й патчити, додаючи функціонал, відсутній в бібліотеках.
  
Система безпеки Android, обрізати додатки в привілеї по повній програмі і не дозволяє їм виходити за рамки власного каталогу, також серйозно перешкоджає роботі стандартного Linux-софта. Тому часто потрібно отримувати права root, які ці обмеження знімають. Відсутність менеджера пакетів, який би дозволяв встановлювати звичайний Linux-софт, а не тільки Java-додатка, змушує розробників писати додатки, потрібні тільки для того, щоб встановлювати інші додатки. Так з'являються всі ці кастомниє інсталятори.
+
Система безпеки Android, обрізає додатки в привілеї по повній програмі і не дозволяє їм виходити за рамки власного каталогу, також серйозно перешкоджає роботі стандартного Linux-софта. Тому часто потрібно отримувати права root, які ці обмеження знімають. Відсутність менеджера пакетів, який би дозволяв встановлювати звичайний Linux-софт, а не тільки Java-додатка, змушує розробників писати додатки, потрібні тільки для того, щоб встановлювати інші додатки. Так з'являються всі ці кастомниє інсталятори.
  
Найбільш очевидний і простий шлях перенести в Android функціонал повноцінного Linux-системи-це запустити «віртуалізувати» версію повноцінного Linux-дистрибутива, про що ми вже докладно писали. Спосіб цей цікавий, але страждає від проблеми поділу системи на дві області, кожна з яких працює незалежно від іншої.
+
Найбільш очевидний і простий шлях перенести в Android функціонал повноцінної Linux-системи - це запустити «віртуалізовану» версію повноцінного Linux-дистрибутива. Спосіб цей цікавий, але страждає від проблеми поділу системи на дві області, кожна з яких працює незалежно від іншої.
  
 
'''BotBrew'''
 
'''BotBrew'''
Рядок 17: Рядок 17:
 
Проект BotBrew покликаний вирішити багато проблем з установкою Linux-софта, які тільки можуть виникнути у користувача, і підготувати систему Android до прийняття сторонніх для неї додатків. По суті, система складається з чотирьох компонентів:
 
Проект BotBrew покликаний вирішити багато проблем з установкою Linux-софта, які тільки можуть виникнути у користувача, і підготувати систему Android до прийняття сторонніх для неї додатків. По суті, система складається з чотирьох компонентів:
  
*репозиторій з прекомпілірованние для Android додатками, використовуючи який можна встановити багато Linux-додатки за допомогою однієї команди;
+
*репозиторій з прекомпілірованние для Android додатками, використовуючи який можна встановити багато Linux-додатків за допомогою однієї команди;
 
*менеджер пакетів, в якості якого використовується легкий Opkg або dpkg разом з apt-get в експериментальній версії BotBrew Bazil;
 
*менеджер пакетів, в якості якого використовується легкий Opkg або dpkg разом з apt-get в експериментальній версії BotBrew Bazil;
 
*менеджер процесів runit, необхідний для того, щоб правильно запускати і підтримувати роботу демонів,
 
*менеджер процесів runit, необхідний для того, щоб правильно запускати і підтримувати роботу демонів,
Рядок 23: Рядок 23:
 
*власна система збирання, яка містить в собі всі інструменти, необхідні для крос-компіляції додатків за допомогою будь-якого настільного Linux-дистрибутива.
 
*власна система збирання, яка містить в собі всі інструменти, необхідні для крос-компіляції додатків за допомогою будь-якого настільного Linux-дистрибутива.
  
Для роботи це чудо програмістської думки вимагає всього нічого: права root і трохи вільного простору у внутрішній пам'яті смартфона або на карті пам'яті. Причому перший варіант кращий, так як у випадку з SD файли будуть повалені на віртуальний диск, робота з яким підтримується далеко не всіма ядрами.
+
Для роботи BotBrew вимагає всього нічого: права root і трохи вільного простору у внутрішній пам'яті смартфона або на карті пам'яті. Причому перший варіант кращий, так як у випадку з SD файли будуть повалені на віртуальний диск, робота з яким підтримується далеко не всіма ядрами.
  
 
На даний момент класична версія BotBrew, що використовує власний репозиторій, дозволяє встановлювати такий софт, як dcron, GCC, Git, SSH-сервер dropbear, консольний браузер Lynx, сканер безпеки Nmap, інструмент бекапа rsync, редактор Vim, веб-сервер lighttpd, скриптові мови Python і Ruby, а також кілька десятків інших пакетів. Встановлюється це все, до речі кажучи, в виділений каталог у внутрішній пам'яті смартфона / планшета і ніяк не захаращує основну систему. Іншими словами, позбутися від BotBrew і всього, що ти встановив, можна буде, просто видаливши один каталог.
 
На даний момент класична версія BotBrew, що використовує власний репозиторій, дозволяє встановлювати такий софт, як dcron, GCC, Git, SSH-сервер dropbear, консольний браузер Lynx, сканер безпеки Nmap, інструмент бекапа rsync, редактор Vim, веб-сервер lighttpd, скриптові мови Python і Ruby, а також кілька десятків інших пакетів. Встановлюється це все, до речі кажучи, в виділений каталог у внутрішній пам'яті смартфона / планшета і ніяк не захаращує основну систему. Іншими словами, позбутися від BotBrew і всього, що ти встановив, можна буде, просто видаливши один каталог.
Рядок 31: Рядок 31:
 
Отже, як же використовувати BotBrew для установки Linux-софта? Для початку нам знадобиться пакет з самою програмою. Він є в Google Play (зазначу, що потрібен BotBrew root, а не експериментальний Bazil) і важить менше мегабайта. Після установки запускаємо і натискаємо кнопку «Proceed» внизу екрану, щоб софтіна викачала всі необхідні для її роботи компоненти, такі як консольний менеджер пакетів, та багато інших програм (в термінах Debian Linux - bootstrap). Важать вони всього кілька мегабайт, тому чекати доведеться недовго. Після закінчення установки BotBrew виведе на екран вікно з офіційною інтернет-сторінкою проекту, яке можна сміливо закривати.
 
Отже, як же використовувати BotBrew для установки Linux-софта? Для початку нам знадобиться пакет з самою програмою. Він є в Google Play (зазначу, що потрібен BotBrew root, а не експериментальний Bazil) і важить менше мегабайта. Після установки запускаємо і натискаємо кнопку «Proceed» внизу екрану, щоб софтіна викачала всі необхідні для її роботи компоненти, такі як консольний менеджер пакетів, та багато інших програм (в термінах Debian Linux - bootstrap). Важать вони всього кілька мегабайт, тому чекати доведеться недовго. Після закінчення установки BotBrew виведе на екран вікно з офіційною інтернет-сторінкою проекту, яке можна сміливо закривати.
  
Тепер на екрані ти повинен побачити список пакетів, доступних до установки. Їх досить багато, але графічних додатків з описаних вище причин ти серед них не знайдеш. Зате є різномасті сервери, компілятори і інтерпретатори, так що всім, хто хоче серйозно «погратися» зі смартфоном, буде де розвернутися. Для установки пакета досить тапнуть по його імені і на наступному екрані, що містить інформацію про програму, натиснути кнопку «Install».
+
Тепер на екрані ви повинні побачити список пакетів, доступних до установки. Їх досить багато, але графічних додатків з описаних вище причин ти серед них не знайдеш. Зате є різномасті сервери, компілятори і інтерпретатори, так що всім, хто хоче серйозно «погратися» зі смартфоном, буде де розвернутися. Для установки пакета досить клацнути по його імені і на наступному екрані, що містить інформацію про програму, натиснути кнопку «Install».
  
Якщо під час bootstrap'а BotBrew виникли проблеми, ти можеш спробувати встановити його вручну за допомогою наступної команди:
+
Якщо під час bootstrap'а BotBrew виникли проблеми, можна спробувати встановити його вручну за допомогою наступної команди:
  
 
     wget http: // repo.botbrew.com/anise/bootstrap/install.sh -O - | su
 
     wget http: // repo.botbrew.com/anise/bootstrap/install.sh -O - | su
  
Якщо і це не допомогло, можна спробувати видалити всі установки («Remove BotBrew» в настройках) і потім спробувати запустити цю команду.
+
Якщо і це не допомогло, можна спробувати видалити всі установки («Remove BotBrew» в налаштуваннях) і потім спробувати запустити цю команду.
  
Після цього пакет з'явиться на вкладці «Installed», однак ніякої кнопки «Run» або чогось подібного ти не побачиш. Додаток доведеться самостійно запускати з консолі, що, втім, логічно. Сам додаток встановлюється всередину каталоговій структури / data / botbrew, в якому «емулюється» реальне оточення Linux-дистрибутива з каталогами / etc, / usr і іншими. А щоб не мучити користувачів необхідністю набирати повний шлях до команди, розробники BotBrew передбачили однойменну команду-врапперов. Щоб з її допомогою запустити, наприклад, встановлений консольний браузер Lynx, слід набрати таку команду:
+
Після цього пакет з'явиться на вкладці «Installed», однак ніякої кнопки «Run» або чогось подібного ти не побачиш. Додаток доведеться самостійно запускати з консолі, що, втім, логічно. Сам додаток встановлюється всередину каталоговій структури / data / botbrew, в якому «емулюється» реальне оточення Linux-дистрибутива з каталогами / etc, / usr і іншими. А щоб не мучити користувачів необхідністю набирати повний шлях до команди, розробники BotBrew передбачили однойменну команду-врапперів. Щоб з її допомогою запустити, наприклад, встановлений консольний браузер Lynx, слід набрати таку команду:
  
 
   $ Botbrew lynx http: //xakep.ru
 
   $ Botbrew lynx http: //xakep.ru
Рядок 69: Рядок 69:
 
   $ Botbrew opkg remove dropbear
 
   $ Botbrew opkg remove dropbear
  
Щоб залишатися «на вістрі прогресу», репозиторій BotBrew потрібен час від часу оновлювати, натиснувши на відповідну кнопку в графічному інтерфейсі (її ні з чим не сплутаєш). Нові версії пакетів будуть відображатися на вкладці «Upgradable». Досить тапнуть по його імені і натиснути «Upgrade».
+
Щоб залишатися «на вістрі прогресу», репозиторій BotBrew потрібен час від часу оновлювати, натиснувши на відповідну кнопку в графічному інтерфейсі (її ні з чим не сплутаєш). Нові версії пакетів будуть відображатися на вкладці «Upgradable». Досить клацнути по його імені і натиснути «Upgrade».
  
 
[[Файл:D8dca18c1b0ea08a14a6aa9243ea4259.jpg]]
 
[[Файл:D8dca18c1b0ea08a14a6aa9243ea4259.jpg]]

Версія за 11:10, 11 травня 2016

Багато власників Android-фонів зазнають труднощів із запуском даного Linux-софта на своїх девайсах. За всіма законами він начебто повинен тут працювати, та ось тільки для його установки чомусь потрібні права root, сам він поширюється в якихось саморобних інсталяторах, а вибір програм сильно обмежений. Ця стаття запропонує відповідь на питання, чому так вийшло, і підкаже рішення - зручний спосіб установки і запуску майже будь-якого Linux-софта в Android.

Cbeb6fe7c4af4ddfee02cdf10d3656dd.jpg

Linux чи не Linux?

Як відомо, андроїд заснований на ядрі Linux і включає в себе набір стандартних бібліотек і утиліт командного рядка, властивих звичайному Linux-дистрибутиву. Однак запуск класичного Linux-софта тут сильно утруднений через безліч причин, в числі яких несумісність ABI, відсутність менеджера пакетів, власна система безпеки і відсутність багатьох компонентів стандартної Linux-системи.

Так, незважаючи на наявність в Android стандартної бібліотеки libc і інших, їх реалізація в більшості випадків несумісна з бібліотеками від проекту GNU і сильно урізана по функціоналу. З цієї причини Linux-софт потрібно як мінімум збирати заново спеціально під Android і ARM-процесор, а в багатьох випадках ще й патчити, додаючи функціонал, відсутній в бібліотеках.

Система безпеки Android, обрізає додатки в привілеї по повній програмі і не дозволяє їм виходити за рамки власного каталогу, також серйозно перешкоджає роботі стандартного Linux-софта. Тому часто потрібно отримувати права root, які ці обмеження знімають. Відсутність менеджера пакетів, який би дозволяв встановлювати звичайний Linux-софт, а не тільки Java-додатка, змушує розробників писати додатки, потрібні тільки для того, щоб встановлювати інші додатки. Так з'являються всі ці кастомниє інсталятори.

Найбільш очевидний і простий шлях перенести в Android функціонал повноцінної Linux-системи - це запустити «віртуалізовану» версію повноцінного Linux-дистрибутива. Спосіб цей цікавий, але страждає від проблеми поділу системи на дві області, кожна з яких працює незалежно від іншої.

BotBrew

Проект BotBrew покликаний вирішити багато проблем з установкою Linux-софта, які тільки можуть виникнути у користувача, і підготувати систему Android до прийняття сторонніх для неї додатків. По суті, система складається з чотирьох компонентів:

  • репозиторій з прекомпілірованние для Android додатками, використовуючи який можна встановити багато Linux-додатків за допомогою однієї команди;
  • менеджер пакетів, в якості якого використовується легкий Opkg або dpkg разом з apt-get в експериментальній версії BotBrew Bazil;
  • менеджер процесів runit, необхідний для того, щоб правильно запускати і підтримувати роботу демонів,

якщо такі будуть встановлені;

  • власна система збирання, яка містить в собі всі інструменти, необхідні для крос-компіляції додатків за допомогою будь-якого настільного Linux-дистрибутива.

Для роботи BotBrew вимагає всього нічого: права root і трохи вільного простору у внутрішній пам'яті смартфона або на карті пам'яті. Причому перший варіант кращий, так як у випадку з SD файли будуть повалені на віртуальний диск, робота з яким підтримується далеко не всіма ядрами.

На даний момент класична версія BotBrew, що використовує власний репозиторій, дозволяє встановлювати такий софт, як dcron, GCC, Git, SSH-сервер dropbear, консольний браузер Lynx, сканер безпеки Nmap, інструмент бекапа rsync, редактор Vim, веб-сервер lighttpd, скриптові мови Python і Ruby, а також кілька десятків інших пакетів. Встановлюється це все, до речі кажучи, в виділений каталог у внутрішній пам'яті смартфона / планшета і ніяк не захаращує основну систему. Іншими словами, позбутися від BotBrew і всього, що ти встановив, можна буде, просто видаливши один каталог.

ставимо софт

Отже, як же використовувати BotBrew для установки Linux-софта? Для початку нам знадобиться пакет з самою програмою. Він є в Google Play (зазначу, що потрібен BotBrew root, а не експериментальний Bazil) і важить менше мегабайта. Після установки запускаємо і натискаємо кнопку «Proceed» внизу екрану, щоб софтіна викачала всі необхідні для її роботи компоненти, такі як консольний менеджер пакетів, та багато інших програм (в термінах Debian Linux - bootstrap). Важать вони всього кілька мегабайт, тому чекати доведеться недовго. Після закінчення установки BotBrew виведе на екран вікно з офіційною інтернет-сторінкою проекту, яке можна сміливо закривати.

Тепер на екрані ви повинні побачити список пакетів, доступних до установки. Їх досить багато, але графічних додатків з описаних вище причин ти серед них не знайдеш. Зате є різномасті сервери, компілятори і інтерпретатори, так що всім, хто хоче серйозно «погратися» зі смартфоном, буде де розвернутися. Для установки пакета досить клацнути по його імені і на наступному екрані, що містить інформацію про програму, натиснути кнопку «Install».

Якщо під час bootstrap'а BotBrew виникли проблеми, можна спробувати встановити його вручну за допомогою наступної команди:

   wget http: // repo.botbrew.com/anise/bootstrap/install.sh -O - | su

Якщо і це не допомогло, можна спробувати видалити всі установки («Remove BotBrew» в налаштуваннях) і потім спробувати запустити цю команду.

Після цього пакет з'явиться на вкладці «Installed», однак ніякої кнопки «Run» або чогось подібного ти не побачиш. Додаток доведеться самостійно запускати з консолі, що, втім, логічно. Сам додаток встановлюється всередину каталоговій структури / data / botbrew, в якому «емулюється» реальне оточення Linux-дистрибутива з каталогами / etc, / usr і іншими. А щоб не мучити користувачів необхідністю набирати повний шлях до команди, розробники BotBrew передбачили однойменну команду-врапперів. Щоб з її допомогою запустити, наприклад, встановлений консольний браузер Lynx, слід набрати таку команду:

  $ Botbrew lynx http: //xakep.ru

Як варіант - каталог / data / botbrew / bin можна додати в змінну оточення PATH, але це доведеться робити після кожного запуску терміналу:

Сайт журнала в консольном браузере Lynx Процесс установки пакета

  $ Export PATH = "$ PATH: / data / botbrew / bin"


З демонами і різними мережевими сервісами, до речі, справи йдуть набагато краще. Після старту демони відразу будуть запущені, а управляти їх включенням можна через графічний інтерфейс, доступний після натискання на кнопку «Play» в нижній частині інтерфейсу BotBrew. Деякі додатки можуть зажадати створення додаткових користувачів і зміни їх параметрів, це можна зробити так само, як у звичайній Linux-системі:

   Створення користувача:
   $ Botbrew adduser vasya
   Відкриття користувачеві доступу в інтернет:
   $ Botbrew addgroup vasya inet
   Перемикання BotBrew на іншого користувача:
   $ Botbrew su vasya


Зверни увагу, що всі ці зміни стосуватимуться тільки віртуального оточення BotBrew і ніяк не позначаться на основній системі. Консоль можна використовувати також для установки додатків в обхід графічного інтерфейсу. Для цього слід використовувати консольний менеджер пакетів Opkg, синтаксис команд якого повністю сумісний в apt-get:

 $ Botbrew opkg install dropbear

Зворотна операція:

 $ Botbrew opkg remove dropbear

Щоб залишатися «на вістрі прогресу», репозиторій BotBrew потрібен час від часу оновлювати, натиснувши на відповідну кнопку в графічному інтерфейсі (її ні з чим не сплутаєш). Нові версії пакетів будуть відображатися на вкладці «Upgradable». Досить клацнути по його імені і натиснути «Upgrade».

D8dca18c1b0ea08a14a6aa9243ea4259.jpg

Керувати сервісами в BotBrew дійсно просто.

[1]