4 Adding and Removing Software - Programmer Tech
Bash_script

4 Adding and Removing Software

اضافة وازالة البرامج علي نظام linux

Adding and Removing Software

في عالم التكنولوجيا المتقدمة، يعتبر القدرة على إدارة البرمجيات بكفاءة أمرًا حيويًا. سواء كنت تقوم بتثبيت تطبيقات جديدة لتعزيز الوظائف أو إزالة البرامج القديمة لأسباب أمان، فإن فهم عملية إضافة وإزالة البرمجيات يعد أمرًا أساسيًا.

Using apt to Handle Software

تستخدم أداة apt في نظام Linux (مثل Ubuntu و Debian) لإدارة البرمجيات وتثبيت الحزم (packages) وتحديثها وإزالتها. إليك شرح بسيط لاستخدام apt.

في نظام Linux، يمكنك استخدام أمر apt للبحث عن حزمة معينة باستخدام الأمر search. هذا الأمر يتيح لك البحث في قاعدة البيانات المحلية للحزم للعثور على الحزم المتعلقة بمصطلح معين. إليك كيفية استخدامه:

Find the package

استخدم الأمر search مع الكلمة المفتاحية التي ترغب في البحث عنها. على سبيل المثال، إذا كنت تريد البحث عن حزم تتعلق بـ Python:

┌──(kali㉿kali)-[~]
└─$ apt-get search python   
   
Sorting... Done
Full Text Search... Done
2to3/kali-rolling 3.11.4-5 all
  2to3 binary using python3

accerciser/kali-rolling 3.40.0-2 all
  interactive Python accessibility explorer for the GNOME desktop

acme-tiny/kali-rolling 1:5.0.1-1 all
  letsencrypt tiny Python client

acr/kali-rolling 1.9.4-1 all
  autoconf like tool

adequate/kali-rolling 0.15.7 all
  Debian package quality testing tool

aiohttp-wsgi-serve/kali-rolling 0.10.0-1 all
  run a WSGI application

alembic/kali-rolling 1.8.1-2 all
  lightweight database migration tool for SQLAlchemy

ament-cmake-python/kali-rolling 2.2.1-2 all
  CMake build system for ROS 2 ament packages (Python extension)

androguard/kali-rolling 3.4.0~a1-7 all
  full Python tool to play with Android files

سيقوم هذا الأمر بعرض قائمة من الحزم المتعلقة بـ Python. ستظهر النتائج مع تفاصيل حول الحزم المتاحة ووصفها.

تحديد نتائج البحث: في بعض الأحيان، قد تكون قائمة النتائج طويلة. يمكنك تحسين البحث باستخدام الأمر grep لتصفية النتائج. على سبيل المثال، إذا كنت تريد فقط نتائج تتعلق بـ “python3″، يمكنك استخدام:

┌──(kali㉿kali)-[~]
└─$ apt search python | grep python3

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

  2to3 binary using python3
astro-python3/kali-rolling 4.0 all
  deep learning gateway - python3 modules
cantor-backend-python3/kali-rolling 4:22.12.3-1 amd64
  Tools for making use of python3-dmm
freecad-python3/kali-rolling 0.20.2+dfsg1-9 amd64
freeradius-python3/kali-rolling 3.2.3+dfsg-2 amd64
games-python3-dev/kali-rolling 5 all
gstreamer1.0-python3-plugin-loader/kali-rolling 1.22.4-1 amd64
hexchat-python3/kali-rolling 2.16.1-1+b3 amd64
idle-python3.11/kali-rolling 3.11.4-1 all
idle-python3.12/kali-rolling 3.12.0~b4-1 all
┌──(kali㉿kali)-[~]
└─$ apt show python3
Package: python3
Version: 3.11.4-5
Priority: optional
Section: python
Source: python3-defaults
Maintainer: Matthias Klose <[email protected]>
Installed-Size: 82.9 kB
Provides: python3-profiler, python3-supported-max (= 3.11), python3-supported-min (= 3.11)
Pre-Depends: python3-minimal (= 3.11.4-5)
Depends: python3.11 (>= 3.11.4-1~), libpython3-stdlib (= 3.11.4-5)
Suggests: python3-doc (>= 3.11.4-5), python3-tk (>= 3.11.4-1~), python3-venv (>= 3.11.4-5)
Replaces: python3-minimal (<< 3.1.2-2)
Homepage: https://www.python.org/
Tag: devel::interpreter, devel::lang:python, devel::library,
 implemented-in::c, implemented-in::python, role::devel-lib,
 role::program, role::shared-lib
Download-Size: 26.2 kB
APT-Manual-Installed: no
APT-Sources: http://http.kali.org/kali kali-rolling/main amd64 Packages
Description: interactive high-level object-oriented language (default python3 version)
 Python, the high-level, interactive object oriented language,
 includes an extensive class library with lots of goodies for
 network programming, system administration, sounds and graphics.
 .
 This package is a dependency package, which depends on Debian's default
 Python 3 version (currently v3.11).

سيقوم هذا بعرض تفاصيل مفصلة حول حزمة Python3، بما في ذلك معلومات حول الإصدار والوصف.

Adding Software

إضافة برمجيات (Software) على نظام Linux يمكن أن تتم باستخدام أداة إدارة الحزم المستخدمة في توزيعة لينكس التي تستخدمها، مثل apt في Ubuntu و Debian، أو yum في Fedora وCentOS, يمكن استخدام options install مع أداة apt في توزيع linux لأضافه software بهذا الشكل.

apt-get install packagename
┌──(kali㉿kali)-[~]
└─$ sudo apt-get install nano   
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
nano is already the newest version (7.2-1).
0 upgraded, 0 newly installed, 0 to remove and 13 not upgraded.

يمكن آلتأكد من موجود الحزمة بعد التثبيت اذا موجودة في ملفات software علي النظام او لا عن طريق الامر which.

┌──(kali㉿kali)-[~]
└─$ which nano
/usr/bin/nano     <=====

Removing Software

كذالك يمكن حذف البرامج (Software) علي النظام عن طريق تمرير (option (remove لاداة apt علي توزيعة في Ubuntu و Debian ويتم استخدام  option  علي اداة yum في Fedora وCentOS.

┌──(kali㉿kali)-[~]
└─$ sudo apt-get remove nano 
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following packages will be REMOVED:
  nano
0 upgraded, 0 newly installed, 1 to remove and 13 not upgraded.
After this operation, 2,871 kB disk space will be freed.
Do you want to continue? [Y/n] y
(Reading database ... 422500 files and directories currently installed.)
Removing nano (7.2-1) ...
update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/editor (editor) in auto mode
Processing triggers for doc-base (0.11.1) ...
Processing 2 removed doc-base files...
Processing triggers for man-db (2.11.2-3) ...
Processing triggers for kali-menu (2023.3.3) ...
sudo yum remove nano

لتأكد من وجود الحزمة بعد الحذف عن طريق ألأمر which

┌──(kali㉿kali)-[~]
└─$ which nano
nano not found

لحذف جميع الملفات المرتبطة للحزمة  يمكنك استخدام option (purge) مع نفس الاداة apt بهذا الشكل:

┌──(kali㉿kali)-[~]
└─$ sudo apt-get purge nano
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following packages will be REMOVED:
  nano*
0 upgraded, 0 newly installed, 1 to remove and 13 not upgraded.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n] y
(Reading database ... 422389 files and directories currently installed.)
Purging configuration files for nano (7.2-1) ...

Updating Packages

تحديث الحزم (Packages) على نظام Linux يعني تحديث جميع البرامج المثبتة إلى أحدث إصداراتها. هذا يشمل البرامج النظامية والتطبيقات التي قمت بتثبيتها باستخدام أدوات إدارة الحزم مثل apt في Ubuntu/Debian أو yum في Fedora/CentOS.

في البداية يجب علينا تحديث قواعد البيانات قبل تحديث الحزم لضمان الحصول علي احدث أصدارات من البرامج ويمكننا فعل هذا عن طريق تمرير option جديد لأداة apt وهو update هذا الأمر يحدث قاعدة البيانات الخاصة للحزم.

┌──(kali㉿kali)-[~]
└─$ sudo apt-get update  
    
Get:1 http://packages.microsoft.com/repos/code stable InRelease [3,589 B]
Get:2 http://kali.download/kali kali-rolling InRelease [41.2 kB]
Get:3 http://packages.microsoft.com/repos/code stable/main amd64 Packages [22.9 kB]
Get:4 http://packages.microsoft.com/repos/code stable/main armhf Packages [23.2 kB]
Get:5 http://packages.microsoft.com/repos/code stable/main arm64 Packages [23.1 kB]
Get:6 http://kali.download/kali kali-rolling/main amd64 Packages [19.4 MB]
Get:7 http://kali.download/kali kali-rolling/main amd64 Contents (deb) [46.0 MB]                                                                                              
Get:8 http://kali.download/kali kali-rolling/contrib amd64 Packages [124 kB]                                                                                                  
Get:9 http://kali.download/kali kali-rolling/contrib amd64 Contents (deb) [297 kB]                                                                                            
Get:10 http://kali.download/kali kali-rolling/non-free amd64 Packages [226 kB]                                                                                                
Get:11 http://kali.download/kali kali-rolling/non-free amd64 Contents (deb) [914 kB]                                                                                          
Fetched 67.1 MB in 30s (2,237 kB/s)                                                                                                                                           
Reading package lists... Done

بعد تحديث قواعد البيانات للإصدارات الجديدة من البرامج التي حصل عليها الآن في قواعد البيانات، يمكن القيام بذلك عن طريق تمرير خيار جديد إلى الأداة apt، وهو upgarde. يقوم هذا الأمر بتحديث كافة إصدارات البرامج التي حصل عليها.

┌──(kali㉿kali)-[~]
└─$ sudo apt-get upgrade 
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done

إذا كنت ترغب في تحديث الحزم والتعامل مع تغييرات في التبعيات (dependencies)، استخدم:

sudo apt-get dist-upgrade

ويمكن استخدام نفس options علي اداة yum في توزيعات Fedora/CentOS.

Installing Software with git

يمكن أيضا تنزيل  ألبرامج من منصة github عن طريق أداة git المخصصة لتعامل مع تلك المنصة مفتوحة المصدر (open source) التأكد من وجود الأداة علي النظام باستخدام الأداة المعتادة which

┌──(kali㉿kali)-[~]
└─$ which subfinder          
subfinder not found

لتزيل هذا البرنامج من منصت GitHub يجب علينا الذهاب ألي رابط هذا البرنامج علي تلك المنصة التي هو Subfinder وكتابة option (clone) مع الاداة بهذا الشكل:

┌──(kali㉿kali)-[~]
└─$ sudo git clone https://github.com/projectdiscovery/subfinder.git

Cloning into 'subfinder'...
remote: Enumerating objects: 10006, done.
remote: Counting objects: 100% (2300/2300), done.
remote: Compressing objects: 100% (657/657), done.
remote: Total 10006 (delta 2140), reused 1674 (delta 1641), pack-reused 7706
Receiving objects: 100% (10006/10006), 9.00 MiB | 1.64 MiB/s, done.
Resolving deltas: 100% (5890/5890), done.
                                                                                                                                                                                
┌──(kali㉿kali)-[~]
└─$ ls
compat-wireless-2010-10-10  CVE-2023-34039  Desktop  Documents  Downloads  Music  Pictures  Public  subfinder  Templates  Videos

الان يوجد ملف باسم subfinder موجود في مسار التنزيل وهذا ملف البرنامج.

Adding Repositories to Your sources.list File

إضافة مستودعات (Repositories) إلى ملف sources.list في نظام Linux يسمح لك بتوسيع قاعدة البيانات الخاصة بالحزم وتوفير إمكانية الوصول إلى حزم جديدة أو تحديثات. ملف sources.list يحتوي على قائمة بالمستودعات التي يتعين على نظام الحزم البحث فيها للعثور على البرامج الملف يوجد في هذا المسار /etc/apt/sources.list.

linux يعتمد علي هذا الملف لتحديث قواعد البيانات الخاصة بهي وكلما ذات المصادر الموثقة يتم تحديث قواعد البيانات بشكل كبير يمكن اضافة اكتر من sources لهذا الملف لكن بشرط يجب ان يكون sources تابع لتلك التوزيعة حتي لا تحصل مشاكل في البرامج المثبته علي النظام وهذا شكل الملف من الداخل.

┌──(kali㉿kali)-[~/subfinder]
└─$ cat /etc/apt/sources.list
# See https://www.kali.org/docs/general-use/kali-linux-sources-list-repositories/
deb http://http.kali.org/kali kali-rolling main contrib non-free non-free-firmware

# Additional line for source packages
# deb-src http://http.kali.org/kali kali-rolling main contrib non-free non-free-firmware

Installing deb Package

تثبيت ملفات DEB (Debian) هو عملية مهمة في أنظمة Linux التي تستخدم نظام حزم Debian، مثل Ubuntu. ملفات DEB هي نوع من ملفات الحزم التي تحتوي على تطبيق أو برنامج وتحتوي على الملفات والإعدادات اللازمة لتثبيتها على النظام.

وهنا يوجد اداة علي انظمة linux تقوم بتثبيت هذا النوع من الملفات وهي dpkg مثال بسيط لتثبيت ملف deb سنقوم الان بتثبيت محرر الاكواد sublime.

┌──(kali㉿kali)-[~]
└─$ dpkg -i sublime-text_build-3211_amd64.deb

Ahmedkaissar

من مصر من محافظة الجيزة مبرمج ويب و خبير أمن معلومات محب للتقنية و الأمن المعلوماتي مدرب للغات "Python,html, css, php, js, laravel"
زر الذهاب إلى الأعلى