To install all programs from one Manjaro system on another, you can follow these steps:
Export Package List
On the source Manjaro system:
- Open a terminal
- Run the following command to export a list of explicitly installed packages:
pacman -Qqe > packages.txt
This will create a file called “packages.txt” containing the names of all explicitly installed packages[1].
Transfer the Package List
Transfer the “packages.txt” file to the target Manjaro system. You can use various methods like USB drive, network transfer, or cloud storage.
Install Packages on Target System
On the target Manjaro system:
- Open a terminal
- Navigate to the directory containing the “packages.txt” file
- Run the following command to install all packages from the list:
sudo pacman -S --needed - < packages.txt
This command will install all packages listed in the file, skipping any that are already installed[1].
Additional Considerations
-
AUR Packages: The above method only covers official repository packages. For AUR packages, you’ll need to install them manually or use an AUR helper like
yay
[2]. -
Configuration Files: Remember that this process only installs packages, not their configurations. You may need to transfer configuration files separately.
-
System Differences: Be aware that some packages might not be compatible if the two systems have different architectures or Manjaro versions.
-
Updates: After installation, run a system update:
sudo pacman -Syu
- Cleaning Up: You might want to remove unnecessary packages on the target system:
sudo pacman -Rns $(pacman -Qtdq)
This process should help you replicate most of the software environment from one Manjaro system to another. However, always review the package list before installation to ensure it’s appropriate for the target system[1][2].
Citations: [1] https://www.reddit.com/r/ManjaroLinux/comments/ifowrz/how_to_install_software_in_manjaro/ [2] https://github.com/manzurahmed/manjaro-software-installation-guide [3] https://www.youtube.com/watch?v=82YinI2Cgbc [4] https://www.youtube.com/watch?v=VTE4vtrvIM4 [5] https://forum.manjaro.org/t/install-software-from-terminal-cd-downloads-in-manjaro/88674 [6] https://forum.manjaro.org/t/how-to-install-software-over-applications-in-manjaro-hello/110060 [7] https://forum.manjaro.org/t/how-to-install-apps-on-manjaro/84114 [8] https://forum.manjaro.org/t/how-to-install-new-software/141060
While yay doesn’t have a direct --needed option like pacman, you can still achieve a similar result using a loop. Here’s how you can install packages from a list, skipping those that are already installed:
- First, export the list of installed packages from the source system:
yay -Qqe > installed_packages.txt
-
Transfer the “installed_packages.txt” file to the new Manjaro system.
-
On the new system, use the following bash script to install packages:
#!/bin/bash # Function to print a separator line print_separator() { echo "========================================" } # Function to handle Ctrl+C ctrl_c() { echo echo "Skipping current package..." return 1 } # Set up trap for Ctrl+C trap ctrl_c INT # Read the file line by line while IFS= read -r package; do print_separator echo "Processing package: $package" print_separator if ! yay -Qi "$package" &> /dev/null; then echo "Installing $package..." echo "Press Ctrl+C to skip this package." print_separator if yay -S --noconfirm "$package"; then echo "Installation of $package completed." else if [ $? -eq 130 ]; then echo "Installation of $package skipped." else echo "Installation of $package failed." fi fi else echo "$package is already installed. Skipping." fi echo # Print an empty line for better readability done < installed_packages.txt # Remove the trap trap - INT print_separator echo "All packages processed." print_separator
This script does the following:
- It reads each package name from the “installed_packages.txt” file.
- For each package, it checks if it’s already installed using
yay -Qi
. - If the package is not installed, it installs it using
yay -S --noconfirm
. - If the package is already installed, it skips it and prints a message.
Save this script as “install_packages.sh” and make it executable:
chmod +x install_packages.sh
Then run the script:
./install_packages.sh
Important considerations:
- This method will install packages one by one, which may be slower than installing them all at once.
- The
--noconfirm
option is used to avoid prompts, but be cautious as it will automatically accept all default options. - Some AUR packages might still require manual intervention during the build process.
- Be aware that not all packages may be compatible with the new system, especially if there are significant differences in hardware or software versions.
- This method only installs packages, not their configurations. You’ll need to transfer configuration files separately.
By using this approach, you can replicate the functionality of the
--needed
option while using yay to install packages from both official repositories and the AUR[2].Citations: [1] https://www.hostzealot.com/blog/how-to/installing-yay-aur-helper-on-arch-linux-a-step-by-step-guide [2] https://www.reddit.com/r/archlinux/comments/jtaraj/is_there_a_way_to_automate_pkg_install_with_yay/ [3] https://linuxcommandlibrary.com/man/yay [4] https://stackoverflow.com/questions/53921707/loop-in-order-to-load-or-install-packages-does-not-work-what-am-i-doing-wrong [5] https://forum.manjaro.org/t/force-yay-to-rebuild-aur-package-s/141726 [6] https://es.hostzealot.com/blog/how-to/instalacion-de-yay-aur-helper-en-arch-linux-guia-paso-a-paso [7] https://xerolinux.xyz/posts/install-yay-paru/ [8] https://bbs.archlinux.org/viewtopic.php?id=281104