{"id":15051130,"url":"https://github.com/pinaki82/debian-minimal","last_synced_at":"2026-02-02T09:39:52.216Z","repository":{"id":178269850,"uuid":"661612489","full_name":"Pinaki82/Debian-minimal","owner":"Pinaki82","description":"Configure Debian and install only essential packages after installing the OS.","archived":false,"fork":false,"pushed_at":"2024-05-28T10:27:44.000Z","size":33403,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-05-29T02:08:19.282Z","etag":null,"topics":["bash-scripts","debian","debian-linux","latex-template","linux","linux-dotfiles","linux-essentials","shell","shell-scripts","windows-config","xfce"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Pinaki82.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-07-03T09:03:55.000Z","updated_at":"2024-06-02T19:09:35.936Z","dependencies_parsed_at":"2023-09-27T23:14:37.865Z","dependency_job_id":"ba0e489f-7276-4319-bab2-794eb652e2f5","html_url":"https://github.com/Pinaki82/Debian-minimal","commit_stats":null,"previous_names":["pinaki82/debian-minimal"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pinaki82%2FDebian-minimal","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pinaki82%2FDebian-minimal/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pinaki82%2FDebian-minimal/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pinaki82%2FDebian-minimal/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Pinaki82","download_url":"https://codeload.github.com/Pinaki82/Debian-minimal/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243513327,"owners_count":20302929,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bash-scripts","debian","debian-linux","latex-template","linux","linux-dotfiles","linux-essentials","shell","shell-scripts","windows-config","xfce"],"created_at":"2024-09-24T21:31:05.164Z","updated_at":"2026-02-02T09:39:52.159Z","avatar_url":"https://github.com/Pinaki82.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Debian-minimal\n\nConfigure Debian and install only essential packages after installing the OS.\n\n---\n\nhttps://github.com/Pinaki82/Debian-minimal\n\n---\n\n[This repository](https://github.com/Pinaki82/Debian-minimal) draws inspiration from [Pinaki82](https://github.com/Pinaki82)'s [Xubuntu-minimum-shell-config](https://github.com/Pinaki82/Xubuntu-minimum-shell-config.git) repository on [GitHub](https://github.com).\n\n## Table of Contents\n\n- [Table of Contents](#table-of-contents)\n- [Debian-minimal](#debian-minimal)\n  - [What this repository is for?](#what-this-repository-is-for)\n    - [Guides to:](#guides-to)\n    - [Serves:](#serves)\n  - [What this repository is not?](#what-this-repository-is-not)\n- [Thou Shalt Not:](#thou-shalt-not)\n  - [What you're allowed to do:](#what-youre-allowed-to-do)\n- [How to Use instructions and scripts provided here:](#how-to-use-instructions-and-scripts-provided-here)\n- [Alternative Software Search:](#alternative-software-search)\n- [As a Mega-Bonus Offer for FREE, you'll find:](#as-a-mega-bonus-offer-for-free-youll-find)\n- [How Does It Look Like?](#how-does-it-look-like)\n- [Library PATHs in Linux](#library-paths-in-linux)\n- [Installation and Configuration of \"libsafec\" Library](#installation-and-configuration-of-libsafec-Library)\n- [Library PATH](#library-path)\n- [Include (Header) files' PATH ](#include-Header-files-path)\n\n## What this repository is for?\n\n### Guides to:\n\n- Install Debian-XFCE on a system.\n\n- Install programs commonly used by most people.\n\n- _Modify_ and _back up_ 'only one install script' that serves you forever. You'll get a workable installation.\n\n### Serves:\n\nDesktop Computer Users.\n\n## What this repository is not?\n\n- This repository doesn't aim to be a Debian-descendant distribution.\n\nThis repository was started as a backup to the config files I use on my Debian-XFCE system. Then, I decided to split the core parts from basic to minimal. Basic means, you'll need those packages and configurations as a starting point. Here, Minimal stands for, you'll find packages most people use. Now it is your responsibility to include/discard sections of the 'minimal' unit and keep a backup of your final version that you will use forever. Feel free to clone this repository as a starting point for your own desktop configuration.\n\n# Thou Shalt Not:\n\n- Ever try to install Ubuntu PPAs. Debian does not have a mechanism to recognise PPAs, and doing so may corrupt your system.\n\n- Install DEB packages that are not meant for Debian and are only meant for Ubunu-descendant Linux distributions. These packages may not be compatible with your system and could cause problems.\n\n- Enable backports unless absolutely necessary. Backports are packages that have been ported from a newer version of Debian to an older version. They can sometimes cause problems, so only enable them if you need a specific updated version of a package that is not available in the main Debian repositories. Even if you have enabled backports, do not install more than one or two apps from there, that too, never without thorough consideration.\n\n- Run commands or scripts from unverified sources. These commands could contain malicious code that could damage your system. Every time you run a command you must try to understand what that does.\n\n- Install more apps than you need. This can clutter your system and make it less stable.\n\n- Install a GUI-Userspace app (like GIMP, Inkscape, Krita, or Blender) from the Debian repository. Instead, you must prefer AppImage, Snap and Flatpak over the default repository as long as it is feasible.\n\n- Install GUI-Userspace apps (like GIMP, Inkscape, Krita, and Blender) from the Debian repository. These extra apps will clutter your system. Instead, use AppImage, Snap, or Flatpak, which are newer formats that are more stable and up-to-date. Choose these newer containerised packaging platforms over the default repository as long as it is feasible.\n\n- Avoid reading the documentation found here, online, discussions found in online forums, doing a web search, asking an AI engine when in doubt, RTFM - Read The Friendly Man Page before taking any steps no matter how trivial the step is when you do not know the deal.\n\n## What you're allowed to do: \u003ca name=\"what-youre-allowed-to-do\"\u003e\u003c/a\u003e\n\nYou can do an `apt search` for a package from the command line. There's no harm in trying to install packages in Debian as `sudo apt install package-gtk` when that particular package is `package-gtk3` in Debian. The command will not find the package in Debian's repository and return an error message without installing anything. However, adding PPAs or installing packages meant exclusively for Ubuntu will certainly damage your installation.\n\nYour best bet will be to find a similar package as:\n\n`apt search package-you-have-seen-in-ubuntu-repository`\n\nYou'll get an overall view and find the right direction.\n\nRemember that Debian and Ubuntu have different package repositories. One doesn't pull anything directly from another's repository. Especially, Debian pulls nothing from Ubuntu's repository. Do not try to mix them.\n\n# How to Use instructions and scripts provided here:\n\n**NOTE:** Please keep this GitHub page open in your phone's browser to look at commands until your system is ready to display TXT/PDF files.\n\n======\n\nPrograms to Create Bootable USB Drives:\n\nhttps://rufus.ie/en/ (Recommended for Microsoft Windows users)\n\nhttps://etcher.balena.io/\n\nDebian Homepage: https://www.debian.org/\n\nDebian Non-Free Firmware:\n\nhttps://cdimage.debian.org/images/unofficial/non-free/firmware/\n\nDownload Debian (Recommended):\n\nhttps://www.debian.org/download\n\n_debian-xx.x.x-amd64-netinst.iso_\n\nDebian Live Images:\n\nRef: https://unix.stackexchange.com/questions/307251/is-there-a-try-debian-without-install-option\n\nDownload: https://www.debian.org/CD/live/\n\nDebian-12-bookworm firmware:\n\nhttps://cdimage.debian.org/images/unofficial/non-free/firmware/bookworm/12.0.0/\n\nFile: `firmware.zip`\n\nA Basic Guide:\n\nhttps://phoenixnap.com/kb/how-to-install-debian-10-buster\n\nTroubleshoot Blank Screen after crossing the GRUB Menu section:\n\nhttps://forums.debian.net/viewtopic.php?t=63844\n\nPress `e` when the GRUB appears.\n\nFind the line containing `ro quiet` or `quiet`.\n\nAdd/Type the following commands to the end of the line,\n\n`splash nomodeset`\n\n`CTRL`+`x` [NOTE: On VirtualBox, use the Soft Keyboard from the menu bar.]\n\nOnce you enter the desktop:\n\nAdd the current user to **sudoers**:\n\n`su`\n\n`sudo su root`\n\n`sudo nano /etc/sudoers`\n\nFind the section:\n\n```bash\n#User privilege specification\nroot  ALL=(ALL:ALL) ALL\n```\n\nThen, add your username there as described below (`yourusername ALL=(ALL: ALL) ALL`).\n\n```bash\n#User privilege specification\nroot  ALL=(ALL:ALL) ALL\nyourusername ALL=(ALL: ALL) ALL\n```\n\nReboot the system.\n\n`sudo reboot now`\n\nAdd the current user to **sudoers** again by doing:\n\n`sudo usermod -aG sudo $(whoami)`\n\nEdit the GRUB Bootloader:\n\nRef: https://unix.stackexchange.com/questions/538562/how-do-i-edit-grub-cfg-and-save-it\n\n`sudo nano /etc/default/grub`\n\nFind the line containing `ro quiet` or `quiet`\n\nAdd the following in the same line\n\n`splash nomodeset`\n\nUpdate the GRUB Bootloader:\n\n`sudo update-grub`\n\n`sudo update-grub2`\n\nTroublshoot: https://serverfault.com/questions/717725/journalctl-access-for-non-root-users\n\n```\nHint: You are currently not seeing messages from other users and the system.\n      Users in groups 'adm', 'systemd-journal' can see all messages.\n      Pass -q to turn off this notice.\n```\n\n`sudo usermod -a -G systemd-journal $(whoami)`\n\nReboot:\n\n`sudo reboot now`\n\nUpdate the system:\n\n`yes | sudo apt update \u0026\u0026 sudo apt upgrade`\n\n======\n\n- Now, read the text file `00_debian-fresh-install.txt`.\n  You'll know when to look at specific files.\n\n- Next, read the script `01_debian_essential.sh` before running it. The script is about installing basic dependency/userspace packages that you usually expect from a computer or you'll need later.\n\nChange the permission of the script before executing the script [Give it permission to execute].\n\n```bssh\nchmod +x 01_debian_essential.sh\n```\n\nTo Run:\n\n```bssh\n./01_debian_essential.sh\n```\n\n- Come back to the primary instruction file `00_debian-fresh-install.txt`. Simply, read it without doing anything.\n\n- When you come to see that the instruction tells you to READ/MODIFY/RUN the final script `02_debian_minimal_packages.sh`, do that and then come back again to the instruction file `00_debian-fresh-install.txt`.\n\n```bssh\nchmod +x 02_debian_minimal_packages.sh\n```\n\n```bssh\n./02_debian_minimal_packages.sh\n```\n\n- Read the files in the folder 'shell' to get an overview of more packages.\n\n- Look at other folders given here for desktop/app/system configurations.\n\n# Alternative Software Search:\n\n1. [switching.software](https://switching.software/)\n   \n   \u003e (Git repository link to _switching.software_: https://codeberg.org/swiso/website)\n\n2. [AlternativeTo](https://alternativeto.net/)\n\n# As a Mega-Bonus Offer for FREE, you'll find: \u003ca name=\"as-a-mega-bonus-offer-for-free-youll-find\"\u003e\u003c/a\u003e\n\n- Some essential MS Windows configurations.\n\n- Suggestions for truly cross-platform alternative software in practical terms.\n\n- Most applications are curated to work on MS Windows for an uncompromising cross-platform experience.\n\n# How Does It Look Like?\n\n![](attachments/5e519b6dc459cca367638f9c4a29ebb1d0e43486.png)\n\n![](attachments/fd52ef796425b4b6643f069f4cd8799a74f2e977.png)\n\n![](attachments/2023-07-07-18-45-41-Screenshot_2023-07-07_18-43-08.png)\n\n![](attachments/2023-07-07-18-45-57-Screenshot_2023-07-07_18-44-58.png)\n\n![](attachments/7117ae649c6deb327125824736617e446937bdf3.png)\n\n# Library PATHs in Linux\n\n# Installation and Configuration of \"libsafec\" Library \u003ca name=\"installation-and-configuration-of-libsafec-Library\"\u003e\u003c/a\u003e\n\n[GitHub - rurban/safeclib: safec libc extension with all C11 Annex K functions](https://github.com/rurban/safeclib.git)\n\n## Step 1: Remove the Previous Installation\n\n```bash\nsudo apt purge --auto-remove libsafec-dev\n```\n\n## Step 2: Clone the \"safeclib\" Repository\n\n```bash\ncd ~/\ngit clone https://github.com/rurban/safeclib.git\ncd safeclib/\n```\n\n## Step 3: Build and Configure the Library\n\n```bash\n./build-aux/autogen.sh\n./configure\n```\n\n## Step 4: Compile the Library\n\n```bash\nmake\n```\n\n## Step 5: Install the Library\n\n```bash\nsudo make install\n```\n\n## Step 6: Update Library Cache\n\n```bash\nsudo ldconfig\n```\n\n## Step 7: Set Library Path (Temporary)\n\n```bash\nexport LD_LIBRARY_PATH=\"/usr/local/lib:$LD_LIBRARY_PATH\"\n```\n\n```bash\nvim .bash_aliases\n```\n\nAdd:\n\n```bash\nexport LD_LIBRARY_PATH=\"/usr/local/lib:$LD_LIBRARY_PATH\"\n```\n\n## Step 8: Source Configuration Files\n\n```bash\nsource .bash_aliases\nsource .bashrc\n```\n\n## Step 9: Compile \u0026 Run the Program\n\n```bash\ngcc -o safeclib_example safeclib_example.c -L/usr/local/lib -lsafec\n```\n\nOr,\n\n```bash\ngcc -Wall -Wextra -pedantic safeclib_example.c -o safeclib_example -L/usr/local/lib -lsafec\n```\n\n```bash\nchmod +x safeclib_example\n```\n\n```bash\n./safeclib_example\n```\n\nAfter following these steps, you should have successfully installed and configured the \"libsafec\" library and run your program using it.\n\nPlease note that these steps assume that you have the necessary permissions to run `sudo` commands and make system-wide changes. Additionally, make sure that you replace any paths or filenames with the actual values specific to your system.\n\nCode:\n\n```c\n#include \u003cstdio.h\u003e\n#include \u003csafeclib/safe_str_lib.h\u003e\n\nint main() {\n    char dest[20]; // Destination buffer\n    const char *src = \"Test libsafec prog.!\"; // Source string\n\n    // Using safeclib function to copy the source string to the destination\n    rsize_t dest_size = sizeof(dest); // Size of the destination buffer\n    errno_t err = strcpy_s(dest, dest_size, src);\n\n    if (err == EOK) {\n        printf(\"Destination: %s\\n\", dest);\n    } else {\n        printf(\"Error copying string: %d\\n\", err);\n    }\n\n    return 0;\n}\n```\n\nOn Debian-based Linux distributions like Debian, static libraries are typically stored in the `/usr/lib` directory. However, Debian uses a specific directory structure, and static libraries are usually stored in subdirectories based on the library's architecture. You can find static libraries in a directory structure like `/usr/lib/\u003carchitecture\u003e/`.\n\nIn the case of the \"libsafec-dev\" package that we installed, we can usually find the static library files under `/usr/lib/\u003carchitecture\u003e/`. To locate the \"safeclib\" static library, you can use the dpkg-query command, which is a Debian package manager tool.\n\n```bash\ndpkg-query -L libsafec-dev | grep libsafe\n```\n\nThis command will list the files and directories installed by the \"libsafec-dev\" package, including the path to the static library file.\n\nOnce you've identified the correct path, you can use it in your `gcc` command to link against the static library:\n\n```bash\ngcc -o safeclib_example safeclib_example.c -L/path/to/libsafec-dev/static/library/directory -lsafec\n```\n\nHowever, in our case, the linker error shown below implies that the linker (`ld`) couldn't find the \"safeclib\" library while trying to compile our program. This issue typically arises if the library is not installed in a location where the linker can locate it.\n\n```\ncannot find -lsafeclib: No such file or directory\ncollect2: error: ld returned 1 exit status\n```\n\nConsequently, we had to build the library from the source.\n\n---\n\n# Library PATH\n\nIn Linux, both static and dynamic libraries are typically stored in specific standard directories. Here's an overview of where Linux generally keeps these library files:\n\n1. **Dynamic Libraries (Shared Libraries):**\n   \n   Dynamic libraries, also known as shared libraries, are typically stored in the following directories:\n   \n   - `/lib`: This directory contains essential system libraries that are needed for the basic operation of the system. These libraries are typically required during the early stages of the boot process.\n   - `/usr/lib`: This directory holds system-wide shared libraries that are not essential for the initial boot process but are necessary for most applications.\n   - `/usr/local/lib`: This directory is used for shared libraries that are installed manually by the system administrator or by software packages not managed by the system's package manager. It's often used for libraries built and installed from source code.\n   \n   Additionally, these directories may have architecture-specific subdirectories, such as `/lib/x86_64-linux-gnu` or `/usr/lib/i386-linux-gnu`, to accommodate libraries for specific processor architectures.\n\n2. **Static Libraries:**\n   \n   Static libraries are usually stored in directories similar to their dynamic counterparts, with the primary difference being the use of the `.a` file extension. Common locations include:\n   \n   - `/usr/lib`: Static libraries that come from packages installed via the system's package manager are often placed here.\n   - `/usr/local/lib`: Similar to dynamic libraries, manually installed or locally built static libraries are typically placed in this directory.\n\n3. **Compiled Libraries (from Source Code):**\n   \n   Libraries that you compile from source code using tools like `make` generally end up in the following directories:\n   \n   - `/usr/local/lib`: If you configure the build to install libraries locally (e.g., using `./configure --prefix=/usr/local`), the compiled libraries will be placed here by default.\n   - A custom location: You can specify a different installation directory when configuring the build using the `--prefix` option. This allows you to choose where the compiled libraries are installed.\n\nIt's important to note that these are general conventions and specific Linux distributions may have variations in their library directory structures. Additionally, the `LD_LIBRARY_PATH` environment variable can be used to temporarily modify the search path for shared libraries. However, it's typically not recommended to use `LD_LIBRARY_PATH` for system-wide library management, as it can lead to compatibility and security issues. Instead, libraries should be installed in standard locations like those mentioned above.\n\nWhen you install libraries using your system's package manager (e.g., `apt`, `yum`, `dnf`), the package manager takes care of placing the libraries in the appropriate directories based on the distribution's conventions. When you compile libraries from source code, you have more control over the installation location, as we demonstrated in our previous installation steps.\n\n---\n\n# Include (Header) files' PATH \u003ca name=\"include-Header-files-path\"\u003e\u003c/a\u003e\n\nIn Linux, header files, also known as include files, are typically placed in specific standard directories. These header files are essential for compiling programs, as they provide declarations and definitions for functions, data structures, and other elements used by the code.\n\nHere are some common directories where Linux places include files:\n\n1. **/usr/include:**\n   \n   - This directory is the primary location for system-wide header files on most Linux distributions.\n   - It contains header files that are part of the standard C library (libc) and other system libraries.\n   - Header files for system-level programming, such as those related to system calls and system-specific features, are often found here.\n\n2. **/usr/local/include:**\n   \n   - Similar to `/usr/include`, this directory is used for header files that are not part of the base system but are installed manually or by software packages not managed by the system's package manager.\n   - When you compile and install software from source code using the `./configure --prefix=/usr/local` option, the associated header files are typically placed here.\n\n3. **/usr/include/linux and /usr/include/asm:**\n   \n   - These subdirectories of `/usr/include` contain kernel-specific header files.\n   - They are used for low-level programming and kernel development, and they include header files related to interacting with the Linux kernel.\n\n4. **`/usr/include/\u003clibrary-name\u003e`:**\n   \n   - Some libraries may have their own subdirectories under `/usr/include` where they store their header files.\n   - For example, header files for the OpenGL graphics library may be found in `/usr/include/GL`.\n\n5. **`/usr/include/\u003cpackage-name\u003e`:**\n   \n   - Header files for specific packages or software libraries may also be placed in subdirectories named after the package or library.\n   - For instance, header files for the OpenSSL library may be found in `/usr/include/openssl`.\n\n6. **/usr/include/X11:**\n   \n   - This directory contains header files related to the X Window System, which is responsible for graphical user interfaces in many Linux desktop environments.\n\n7. **/usr/include/pythonX.Y:**\n   \n   - If you have multiple versions of Python installed, header files for each version may be placed in separate subdirectories under `/usr/include`.\n   - Replace `X.Y` with the specific Python version you're interested in (e.g., `/usr/include/python3.8`).\n\nC and C++ programs use angle brackets (`#include \u003cheader.h\u003e`) to incorporate functionalities of implementations. These are referenced from header files located in these directories and are typically included by the compiler when the compiler searches system-wide include paths in those known places. You can also specify additional include directories using the `-I` compiler flag to include header files from custom or non-standard locations.\n\nIn the context of the Wayland display server protocol and the Wayland window system, the Wayland-specific header files are typically located in a directory specific to Wayland. The precise location may vary depending on your Linux distribution and how Wayland is installed.\n\nHowever, a common location for Wayland-related header files is under the `/usr/include/wayland` directory. You may find various subdirectories and header files related to different aspects of Wayland, such as the core Wayland protocol, extensions, and various Wayland libraries.\n\nHere's an example of what you might find under `/usr/include/wayland`:\n\n- `/usr/include/wayland-client/`: This directory contains header files related to Wayland client libraries, which are used by applications that connect to a Wayland server.\n- `/usr/include/wayland-server/`: This directory contains header files for Wayland server-side libraries, which are used by compositors and Wayland server implementations.\n- `/usr/include/wayland-util/`: This directory contains utility header files that are common to both clients and servers, providing macros and functions for working with Wayland objects.\n- `/usr/include/wayland-protocols/`: This directory contains header files for Wayland protocol extensions, which define additional functionality beyond the core Wayland protocol.\n\nFor developing applications or compositors for Wayland, header files from these directories will likely need to be included in the code for interacting with the Wayland protocol and libraries.\n\nKeep in mind that the actual location of Wayland header files may vary between different Linux distributions and package versions, so it's a good practice to consult the documentation specific to the distribution or check the installation paths of Wayland-related packages using the system's package manager or package manager's tools like `dpkg -L \u003cpackage-name\u003e` or `rpm -ql \u003cpackage-name\u003e` to locate the Wayland header files on the system.\n\nYou can add the `/usr/local/include` directory to the compiler's search path by modifying the `C_INCLUDE_PATH` environment variable in your `.bashrc` or `.bash_aliases`file. The `C_INCLUDE_PATH` variable is used by some compilers to specify additional directories where header files can be found.\n\nHere's how you can add `/usr/local/include` to the `C_INCLUDE_PATH` variable in your `.bashrc`:\n\n1. Open your `.bashrc` or `.bash_aliases` file for editing using a text editor like `nano` or `vim`. You can use your preferred text editor.\n   \n   ```bash\n   nano ~/.bashrc\n   ```\n   \n   Or,\n   \n   ```bash\n   nano ~/.bash_aliases\n   ```\n\n2. Add the following line at the end of the `.bashrc` or `.bash_aliases` file to append `/usr/local/include` to the `C_INCLUDE_PATH`:\n   \n   ```bash\n   export C_INCLUDE_PATH=\"/usr/local/include:$C_INCLUDE_PATH\"\n   ```\n   \n   This line adds `/usr/local/include` to the `C_INCLUDE_PATH` while preserving any existing directories in the path.\n\n3. Save the `.bashrc` or `.bash_aliases` file and exit the text editor.\n\n4. To apply the changes, either close and reopen your terminal or run the following command:\n   \n   ```bash\n   source ~/.bashrc\n   ```\n   \n   ```bash\n   source ~/.bash_aliases\n   ```\n\nNow, the compiler should include the `/usr/local/include` directory in its search path for header files, allowing you to use header files from that directory in your C and C++ programs without specifying the full path each time.\n\nKeep in mind that not all compilers use the `C_INCLUDE_PATH` variable, and some may rely on other environment variables like `CFLAGS` or `CPPFLAGS`. Depending on the specific compiler you're using, you may need to adjust the appropriate environment variable accordingly.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpinaki82%2Fdebian-minimal","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpinaki82%2Fdebian-minimal","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpinaki82%2Fdebian-minimal/lists"}