Відмінності між версіями «Встановлюємо Linux-програми на смартфон під управлінням Android»
388641 (обговорення • внесок) |
388641 (обговорення • внесок) |
||
Рядок 1: | Рядок 1: | ||
Багато власників Android-фонів зазнають труднощів із запуском даного Linux-софта на своїх девайсах. За всіма законами він начебто повинен тут працювати, та ось тільки для його установки чомусь потрібні права root, сам він поширюється в якихось саморобних інсталяторах, а вибір програм сильно обмежений. Ця стаття запропонує відповідь на питання, чому так вийшло, і підкаже рішення - зручний спосіб установки і запуску майже будь-якого Linux-софта в Android. | Багато власників Android-фонів зазнають труднощів із запуском даного Linux-софта на своїх девайсах. За всіма законами він начебто повинен тут працювати, та ось тільки для його установки чомусь потрібні права root, сам він поширюється в якихось саморобних інсталяторах, а вибір програм сильно обмежений. Ця стаття запропонує відповідь на питання, чому так вийшло, і підкаже рішення - зручний спосіб установки і запуску майже будь-якого Linux-софта в Android. | ||
+ | |||
+ | [[Файл:Cbeb6fe7c4af4ddfee02cdf10d3656dd.jpg]] | ||
'''Linux чи не Linux?''' | '''Linux чи не Linux?''' | ||
Рядок 15: | Рядок 17: | ||
Проект BotBrew покликаний вирішити багато проблем з установкою Linux-софта, які тільки можуть виникнути у користувача, і підготувати систему Android до прийняття сторонніх для неї додатків. По суті, система складається з чотирьох компонентів: | Проект BotBrew покликаний вирішити багато проблем з установкою Linux-софта, які тільки можуть виникнути у користувача, і підготувати систему Android до прийняття сторонніх для неї додатків. По суті, система складається з чотирьох компонентів: | ||
− | - репозиторій з прекомпілірованние для Android додатками, використовуючи який можна встановити багато | + | - репозиторій з прекомпілірованние для Android додатками, використовуючи який можна встановити багато Linux-додатки за допомогою однієї команди; |
− | Linux-додатки за допомогою однієї команди; | + | - менеджер пакетів, в якості якого використовується легкий Opkg або dpkg разом з apt-get в експериментальній версії BotBrew Bazil; |
− | - менеджер пакетів, в якості якого використовується легкий Opkg або dpkg разом з apt-get в | + | |
− | + | ||
- менеджер процесів runit, необхідний для того, щоб правильно запускати і підтримувати роботу демонів, | - менеджер процесів runit, необхідний для того, щоб правильно запускати і підтримувати роботу демонів, | ||
якщо такі будуть встановлені; | якщо такі будуть встановлені; | ||
− | - власна система збирання, яка містить в собі всі інструменти, необхідні для крос-компіляції додатків | + | - власна система збирання, яка містить в собі всі інструменти, необхідні для крос-компіляції додатків за допомогою будь-якого настільного Linux-дистрибутива. |
− | за допомогою будь-якого настільного Linux-дистрибутива. | + | |
Для роботи це чудо програмістської думки вимагає всього нічого: права root і трохи вільного простору у внутрішній пам'яті смартфона або на карті пам'яті. Причому перший варіант кращий, так як у випадку з SD файли будуть повалені на віртуальний диск, робота з яким підтримується далеко не всіма ядрами. | Для роботи це чудо програмістської думки вимагає всього нічого: права root і трохи вільного простору у внутрішній пам'яті смартфона або на карті пам'яті. Причому перший варіант кращий, так як у випадку з SD файли будуть повалені на віртуальний диск, робота з яким підтримується далеко не всіма ядрами. |
Версія за 10:36, 11 травня 2016
Багато власників Android-фонів зазнають труднощів із запуском даного Linux-софта на своїх девайсах. За всіма законами він начебто повинен тут працювати, та ось тільки для його установки чомусь потрібні права root, сам він поширюється в якихось саморобних інсталяторах, а вибір програм сильно обмежений. Ця стаття запропонує відповідь на питання, чому так вийшло, і підкаже рішення - зручний спосіб установки і запуску майже будь-якого Linux-софта в Android.
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-дистрибутива.
Для роботи це чудо програмістської думки вимагає всього нічого: права root і трохи вільного простору у внутрішній пам'яті смартфона або на карті пам'яті. Причому перший варіант кращий, так як у випадку з SD файли будуть повалені на віртуальний диск, робота з яким підтримується далеко не всіма ядрами.