Termux هو تطبيق طرفي يعمل بنظام Android وبيئة Linux.
لاحظ أن هذا المستودع مخصص للتطبيق نفسه (واجهة المستخدم والمحاكاة الطرفية). للتعرف على الحزم القابلة للتثبيت داخل التطبيق، راجع حزم termux/termux.
تتوفر إرشادات سريعة حول إدارة حزم Termux في إدارة الحزم. كما أنه يحتوي على معلومات حول كيفية إصلاح repository is under maintenance or down
عند تشغيل أوامر apt
أو pkg
.
نحن نبحث عن مشرفي تطبيقات Termux Android.
إشعار: قد يكون Termux غير مستقر على نظام التشغيل Android 12+. سيقتل نظام التشغيل Android أي عمليات (وهمية) أكبر من 32 (الحد الأقصى لجميع التطبيقات مجتمعة) وسيقتل أيضًا أي عمليات تستخدم وحدة المعالجة المركزية المفرطة. قد تحصل على رسالة [Process completed (signal 9) - press Enter]
في الجهاز دون الخروج فعليًا من عملية الصدفة بنفسك. تحقق من المشكلة ذات الصلة رقم 2366، ومتعقب المشكلات، ومستندات العمليات المخزنة مؤقتًا الفارغة، وتعليق TLDR هذا حول كيفية تعطيل عمليات القطع الوهمية وعمليات الاستخدام المفرط لوحدة المعالجة المركزية. ستتم إضافة صفحة المستندات المناسبة لاحقًا. يجب أن يكون خيار تعطيل القتل متاحًا في Android 12L أو 13، لذا قم بالترقية على مسؤوليتك الخاصة إذا كنت تستخدم Android 11، خاصة إذا لم تكن لديك صلاحيات الجذر.
يأتي تطبيق Termux الأساسي مع تطبيقات المكونات الإضافية الاختيارية التالية.
أحدث إصدار هو v0.118.1
.
إشعار: يوصى بشدة بالتحديث إلى v0.118.0
أو أعلى في أسرع وقت ممكن لإصلاحات الأخطاء المختلفة، بما في ذلك الثغرة الأمنية الخطيرة التي يمكن قراءتها عالميًا والتي تم الإبلاغ عنها هنا. انظر أدناه للحصول على معلومات بخصوص Termux على Google Play.
يمكن الحصول على Termux من خلال المصادر المختلفة المدرجة أدناه لنظام Android فقط >= 7
مع الدعم الكامل للتطبيقات والحزم.
تم إسقاط الدعم لكل من التطبيق والحزم لنظامي التشغيل Android 5
و 6
بتاريخ 01-01-2020 عند v0.83
، ومع ذلك تمت إعادة إضافته للتطبيق فقط دون أي دعم لتحديثات الحزمة بتاريخ 24-05-2022 عبر مصادر GitHub . تحقق هنا للحصول على التفاصيل.
يتم توقيع ملفات APK ذات المصادر المختلفة باستخدام مفاتيح توقيع مختلفة. يستخدم تطبيق Termux
وجميع مكوناته الإضافية نفس sharedUserId
com.termux
وبالتالي يجب أن يتم توقيع جميع ملفات APK المثبتة على الجهاز باستخدام مفتاح التوقيع نفسه للعمل معًا ولذلك يجب تثبيتها جميعًا من نفس المصدر. لا تحاول مزجها معًا، أي لا تحاول تثبيت تطبيق أو مكون إضافي من F-Droid
وآخر من مصدر مختلف مثل GitHub
. لن يسمح Android Package Manager أيضًا عادةً بتثبيت ملفات APK ذات التوقيعات المختلفة وستحصل على أخطاء عند التثبيت مثل App not installed
، Failed to install due to an unknown error
، INSTALL_FAILED_UPDATE_INCOMPATIBLE
، INSTALL_FAILED_SHARED_USER_INCOMPATIBLE
، signatures do not match previously installed version
، وما إلى ذلك. يمكن تجاوز القيود باستخدام الجذر أو باستخدام roms مخصص.
إذا كنت ترغب في التثبيت من مصدر مختلف، فيجب عليك إلغاء تثبيت أي وجميع ملفات APK لتطبيق Termux أو المكونات الإضافية الخاصة به من جهازك أولاً، ثم تثبيت جميع ملفات APK الجديدة من نفس المصدر الجديد. تحقق من قسم إلغاء التثبيت للحصول على التفاصيل. قد ترغب أيضًا في التفكير في عمل نسخة احتياطية من Termux قبل إلغاء التثبيت حتى تتمكن من استعادته بعد إعادة التثبيت من مصدر مختلف لـ Termux.
في الفقرات التالية، يشير مصطلح "bootstrap" إلى الحد الأدنى من الحزم التي يتم شحنها مع termux-app
نفسه لبدء بيئة عمل Shell. يتم إنشاء الكود البريدية الخاصة بها وإصدارها هنا.
يمكن الحصول على تطبيق Termux من F-Droid
من هنا.
لا تحتاج إلى تنزيل تطبيق F-Droid
(عبر رابط Download F-Droid
) لتثبيت Termux. يمكنك تنزيل Termux APK مباشرة من الموقع بالنقر فوق رابط Download APK
الموجود أسفل كل قسم إصدار.
عادةً ما يستغرق الأمر بضعة أيام (أو حتى أسبوعًا أو أكثر) حتى تصبح التحديثات متاحة على F-Droid
بمجرد إصدار التحديث على GitHub
. يتم إنشاء إصدارات F-Droid
ونشرها بواسطة F-Droid
بمجرد اكتشاف إصدار GitHub
جديد. ليس لدى مشرفي Termux أي سيطرة على إنشاء ونشر تطبيقات Termux على F-Droid
. علاوة على ذلك، لا يستطيع مشرفو Termux أيضًا الوصول إلى مفاتيح توقيع APK لإصدارات F-Droid
، لذلك لا يمكننا إصدار APK بأنفسنا على GitHub
والذي سيكون متوافقًا مع إصدارات F-Droid
.
قد لا يخطرك تطبيق F-Droid
غالبًا بالتحديثات وسيتعين عليك القيام يدويًا بإجراء السحب لأسفل في علامة تبويب Updates
بالتطبيق حتى يتمكن من التحقق من التحديثات. تأكد من تعطيل تحسينات البطارية للتطبيق، وراجع https://dontkillmyapp.com/ للحصول على تفاصيل حول كيفية القيام بذلك.
يتم إصدار ملف APK عالمي فقط، والذي سيعمل على جميع البنيات المدعومة. سيكون حجم تثبيت APK و bootstrap ~180MB
. لا يدعم F-Droid
ملفات APK الخاصة بالهندسة المعمارية.
يمكن الحصول على تطبيق Termux على GitHub
إما من GitHub Releases
للإصدار >= 0.118.0
أو من سير عمل GitHub Build Action
. بالنسبة لنظام التشغيل Android >= 7
، قم فقط بتثبيت متغيرات apt-android-7
. بالنسبة لنظام التشغيل Android 5
و 6
، قم فقط بتثبيت متغيرات apt-android-5
.
سيتم إدراج ملفات APK الخاصة GitHub Releases
ضمن القائمة المنسدلة Assets
الخاصة بالإصدار. ويتم إرفاقها تلقائيًا عند إصدار إصدار جديد.
سيتم إدراج ملفات APK الخاصة بمهام سير عمل GitHub Build
ضمن قسم Artifacts
في عملية سير العمل. يتم إنشاؤها لكل التزام/دفع يتم إجراؤه في المستودع ويمكن استخدامها من قبل المستخدمين الذين لا يريدون انتظار الإصدارات ويريدون تجربة أحدث الميزات على الفور أو يرغبون في اختبار طلبات السحب الخاصة بهم. لاحظ أنه بالنسبة لسير عمل الإجراءات، يجب تسجيل الدخول إلى حساب GitHub
حتى يتم تمكين/قابلية النقر على روابط Artifacts
. إذا كنت تستخدم تطبيق GitHub
، فتأكد من فتح رابط سير العمل في متصفح مثل Chrome أو Firefox الذي تم تسجيل الدخول إلى حساب GitHub الخاص بك فيه حيث قد لا يتم تسجيل الدخول إلى المتصفح داخل التطبيق.
ملفات APK لكلاهما debuggable
ومتوافقة مع بعضها البعض ولكنها غير متوافقة مع المصادر الأخرى.
تم إصدار ملفات APK العالمية والخاصة بالهندسة المعمارية. سيكون حجم تثبيت APK وbootstrap هو ~180MB
في حالة استخدام عام و ~120MB
في حالة استخدام بنية محددة. تحقق هنا للحصول على التفاصيل.
تحذير أمني : يتم توقيع ملفات APK الموجودة على GitHub باستخدام مفتاح اختبار تمت مشاركته مع المجتمع. هذا ليس مفتاح مطور رسميًا ويمكن للجميع استخدامه لإنشاء إصدارات للاختبار الخاص. كن حذرًا للغاية عند استخدام إصدارات Termux GitHub التي تم الحصول عليها من مكان آخر باستثناء https://github.com/termux/termux-app. يمكن للجميع استخدامه لتزوير تحديث Termux ضار يمكن تثبيته عبر بنية GitHub. فكر مرتين قبل تثبيت إصدارات Termux الموزعة عبر Telegram أو وسائل التواصل الاجتماعي الأخرى. إذا تعرض جهازك لبرامج ضارة، فلن نتمكن من مساعدتك.
لا يجوز استخدام مفتاح الاختبار لانتحال شخصية @termux ولا يمكن استخدامه لهذا على أي حال. هذا المفتاح غير موثوق به من قبلنا ومن السهل جدًا اكتشاف استخدامه في المحتوى الذي ينشئه المستخدم.
Alias name: alias
Creation date: Oct 4, 2019
Entry type: PrivateKeyEntry
Certificate chain length: 1
Certificate[1]:
Owner: CN=APK Signer, OU=Earth, O=Earth
Issuer: CN=APK Signer, OU=Earth, O=Earth
Serial number: 29be297b
Valid from: Wed Sep 04 02:03:24 EEST 2019 until: Tue Oct 26 02:03:24 EEST 2049
Certificate fingerprints:
SHA1: 51:79:55:EA:BF:69:FC:05:7C:41:C7:D3:79:DB:BC:EF:20:AD:85:F2
SHA256: B6:DA:01:48:0E:EF:D5:FB:F2:CD:37:71:B8:D1:02:1E:C7:91:30:4B:DD:6C:4B:F4:1D:3F:AA:BA:D4:8E:E5:E1
Signature algorithm name: SHA1withRSA (disabled)
Subject Public Key Algorithm: 2048-bit RSA key
Version: 3
يتوفر حاليًا إصدار Termux متاح على Google Play لأجهزة Android 11+، مع تعديلات واسعة النطاق من أجل اجتياز متطلبات السياسة هناك. هذا قيد التطوير ويفتقد إلى الوظائف والأخطاء (انظر هنا للحصول على تحديثات الحالة) مقارنةً بإصدار F-Droid المستقر، ولهذا السبب لا يزال يتعين على معظم المستخدمين الذين لا يزال بإمكانهم استخدام F-Droid أو GitHub البناء كما هو مذكور أعلاه.
حاليًا، سيحاول Google Play تحديث عمليات التثبيت بعيدًا عن عمليات تثبيت F-Droid. سيستمر التحديث بالفشل لأنه تمت إزالة ShareUserId. سيعمل الإصدار 0.118.1 F-Droid المخطط له على إصلاح هذه المشكلة عن طريق تعيين رمز إصدار أعلى من المستخدم لتطبيق PlayStore. وفي الوقت نفسه، لمنع Google Play من محاولة تنزيل إصدارات Google Play ثم الفشل في تثبيتها عبر التثبيتات الحالية، يمكنك فتح صفحات تطبيقات Termux على Google Play ثم النقر فوق زر خيارات النقاط الثلاث في الجزء العلوي الأيمن ثم تعطيل تمكين تبديل التحديث التلقائي. ومع ذلك، ستظل تحديثات تطبيقات Termux تظهر في قائمة تحديثات تطبيقات PlayStore.
إذا كنت تريد المساعدة في اختبار إصدار Google Play (أو لا يمكنك تثبيت Termux من مصادر أخرى)، فاعلم أنه تم إنشاؤه من مستودع منفصل (https://github.com/termux-play-store/) - تأكد للإبلاغ عن المشكلات هناك، نظرًا لأن أي مشكلات تمت مواجهتها قد تكون خاصة بهذا المستودع.
قد تكون عملية إلغاء التثبيت مطلوبة إذا كان المستخدم لا يريد تثبيت Termux على أجهزته بعد الآن أو إذا كان يقوم بالتبديل إلى مصدر تثبيت مختلف. قد ترغب أيضًا في التفكير في عمل نسخة احتياطية من Termux قبل إلغاء التثبيت.
لإلغاء تثبيت Termux تمامًا، يجب عليك إلغاء تثبيت جميع Termux الموجودة أو ملفات APK لتطبيق المكونات الإضافية المدرجة في تطبيق Termux والمكونات الإضافية.
انتقل إلى Android Settings
-> Applications
ثم ابحث عن تلك التطبيقات. يمكنك أيضًا استخدام ميزة البحث إذا كانت متوفرة على جهازك والبحث في termux
في قائمة التطبيقات.
حتى إذا كنت تعتقد أنك لم تقم بتثبيت أي من المكونات الإضافية، فمن المستحسن مراجعة قائمة التطبيقات في إعدادات Android والتحقق مرة أخرى.
جميع روابط المجتمع متاحة هنا.
أهمها ما يلي.
RUN_COMMAND
VTE (libvte): أداة المحاكي الطرفي لـ GTK+، تستخدم بشكل أساسي في gnome-terminal. المصدر، والقضايا المفتوحة، وجميع القضايا (بما في ذلك المغلقة).
iTerm 2: تطبيق محطة OS X. المصدر والمشكلات والوثائق (والتي تتضمن رموز الهروب الخاصة بـ iTerm2).
كونسول: تطبيق محطة كيدي. المصدر، ولا سيما الاختبارات، الأخطاء والرغبات.
hterm: تنفيذ محطة JavaScript من Chromium. المصدر، بما في ذلك الاختبارات، ومجموعة جوجل.
xterm: جد المحاكيات الطرفية. مصدر.
Connectbot: عميل Android SSH. مصدر
Android Terminal Emulator: تطبيق Android الطرفي الذي تعتمد عليه معالجة Termux الطرفية. غير نشط. مصدر.
يمكنك المساعدة في تصحيح أخطاء تطبيق Termux
ومكوناته الإضافية عن طريق تعيين Log Level
logcat
المناسب في إعدادات تطبيق Termux
->
-> Debugging
-> Log Level
(يتطلب إصدار تطبيق Termux
>= 0.118.0
). يكون Log Level
افتراضيًا على Normal
ويقوم مستوى السجل Verbose
حاليًا بتسجيل معلومات إضافية. من الأفضل إعادة مستوى السجل إلى Normal
بعد الانتهاء من تصحيح الأخطاء نظرًا لأنه قد يتم تمرير البيانات الخاصة إلى logcat
أثناء التشغيل العادي، علاوة على ذلك، يؤدي التسجيل الإضافي إلى زيادة وقت التنفيذ.
لا تنفذ تطبيقات المكونات الإضافية الأوامر بنفسها ولكنها ترسل أهداف التنفيذ إلى تطبيق Termux
، الذي له مستوى سجل خاص به والذي يمكن تعيينه في إعدادات تطبيق Termux
-> Termux
-> Debugging
-> Log Level
. لذلك يجب عليك تعيين مستوى السجل لكل من Termux
وإعدادات تطبيق المكونات الإضافية ذات الصلة للحصول على جميع المعلومات.
بمجرد تعيين مستويات السجل، يمكنك تشغيل الأمر logcat
في محطة تطبيق Termux
لعرض السجلات في الوقت الفعلي ( Ctrl+c
للإيقاف) أو استخدام logcat -d > logcat.txt
لتفريغ السجل. يمكنك أيضًا عرض السجلات من جهاز كمبيوتر عبر ADB
. لمزيد من المعلومات، راجع دليل android logcat
الرسمي هنا.
علاوة على ذلك، يمكن للمستخدمين إنشاء معلومات stat
ملفات termux وتفريغ logcat
تلقائيًا أيضًا من خلال قائمة خيارات الانتظار الطويل للمحطة More
-> خيار Report Issue
وتحديد YES
في الموجه الموضح لإضافة معلومات تصحيح الأخطاء. يمكن أن يكون هذا مفيدًا للإبلاغ عن المشكلات الأخرى وتصحيح الأخطاء. إذا كان التقرير الذي تم إنشاؤه كبيرًا جدًا، فيمكن استخدام خيار Save To File
في قائمة السياق (3 نقاط في أعلى اليمين) لـ ReportActivity
وعرض الملف/مشاركته بدلاً من ذلك.
يجب على المستخدمين نشر تقرير كامل (اختياريًا بدون معلومات حساسة) عند الإبلاغ عن المشكلات. من المحتمل أن يتم إغلاق/حذف المشكلات التي يتم فتحها بلقطات شاشة (جزئية) لتقارير الأخطاء بدلاً من النص تلقائيًا.
Off
- تسجيل أي شيء.Normal
- بدء تسجيل الأخطاء ورسائل التحذير والمعلومات وتتبع المكدس.Debug
- بدء تسجيل رسائل التصحيح.Verbose
- بدء تسجيل الرسائل المطولة. تمت إضافة مكتبة Termux المشتركة في v0.109
. فهو يحدد الثوابت والاستخدامات المشتركة لتطبيق Termux ومكوناته الإضافية. تم إنشاؤه للسماح بإزالة جميع المسارات المشفرة في تطبيق Termux. تستخدم بعض المكونات الإضافية لـ termux هذا أيضًا وسيستخدمه الباقي في المستقبل. إذا كنت تساهم بتعليمات برمجية تستخدم ثابتًا أو أداة يمكن مشاركتها، فقم بتعريفها في مكتبة termux-shared
إذا لم تكن موجودة حاليًا وقم بالإشارة إليها من هناك. قم بتحديث سجلات التغيير ذات الصلة أيضًا. لن يتم قبول طلبات السحب التي تستخدم قيمًا مضمنة. يجب إضافة فئات محددة لتطبيق Termux والمكونات الإضافية ضمن حزمة com.termux.shared.termux
والفئات العامة خارجها. يجب أيضًا فحص LICENSE
termux-shared
وتحديثه إذا لزم الأمر عند المساهمة بالكود. يجب احترام تراخيص أي مكتبة أو كود خارجي.
يتم تعريف ثوابت Termux الرئيسية بواسطة فئة TermuxConstants
. ويحتوي أيضًا على معلومات حول كيفية تفرع Termux أو إنشائه باستخدام اسم الحزمة الخاصة بك. سيتطلب تغيير اسم الحزمة إنشاء حزم bootstrap المضغوطة والحزم الأخرى باستخدام $PREFIX
الجديد، تحقق من حزم البناء لمزيد من المعلومات.
تحقق من مكتبات Termux لمعرفة كيفية استيراد مكتبات termux في تطبيقات المكونات الإضافية وForking and Local Development لمعرفة كيفية تحديث مكتبات termux للمكونات الإضافية.
يجب أن يتبع versionName
الموجود في ملفات build.gradle
الخاصة بـ Termux وتطبيقات المكونات الإضافية الخاصة به مواصفات الإصدار 2.0.0
الدلالي بالتنسيق major.minor.patch(-prerelease)(+buildmetadata)
. عند رفع versionName
إلى ملفات build.gradle
وعند إنشاء علامة للإصدارات الجديدة على GitHub، تأكد من تضمين رقم التصحيح أيضًا، مثل v0.1.0
بدلاً من v0.1
فقط. تعمل ملفات build.gradle
وسير العمل attach_debug_apks_to_release
على التحقق من صحة الإصدار أيضًا وسيفشل البناء/المرفق إذا كان versionName
لا يتبع المواصفات.
يجب أن تستخدم رسائل الالتزام مواصفات الالتزامات التقليدية بحيث يمكن إنشاء سجلات التغيير وفقًا لمواصفات الاحتفاظ بسجل التغيير تلقائيًا بواسطة البرنامج النصي create-conventional-changelog
، وتحقق من الريبو الخاص به للحصول على مزيد من التفاصيل حول المواصفات. يجب أن يكون الحرف الأول type
description
كبيرًا ويجب أن يكون الوصف بصيغة المضارع. المساحة بعد القولون :
ضرورية. لتغيير جذري، أضف علامة تعجب !
قبل النقطتين :
بحيث يتم تمييزه في سجل التغيير تلقائيًا.
[optional scope]:
[optional body]
[optional footer(s)]
يجب استخدام types
المذكورة أدناه فقط تمامًا كما يتم استخدامها في عناوين سجل التغيير. على سبيل المثال، Added: Add foo
، Added|Fixed: Add foo and fix bar
، Changed!: Change baz as a breaking change
، وما إلى ذلك. يمكنك أيضًا إضافة نطاق بشكل اختياري، مثل Fixed(terminal): Fix some bug
. لا تستخدم أي شيء آخر كنوع، مثل add
بدلاً من Added
وما إلى ذلك.
TermuxConstants
javadocs للحصول على إرشادات حول التغييرات التي يجب إجراؤها في التطبيق لتغيير اسم الحزمة.TermuxConstants
من مكتبة termux-shared
ولها قيم com.termux
مشفرة وستحتاج إلى تصحيحها يدويًا.