Advertisement
Guest User

migrate_generic

a guest
Aug 12th, 2019
281
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 6.50 KB | None | 0 0
  1. #!/bin/bash
  2. clear
  3. grep "Antergos" /etc/*-release > /dev/null 2>&1
  4. if [ $? -eq 1 ]; then echo "A script designed for Antergos Linux! BYE!"; exit 1; fi
  5. #sorry for my english ;)
  6. echo -e "\033[1m
  7. SCRIPT DOESN'T GUARANTEE CORRECT WORKING OF THE SYSTEM AFTER MIGRATION FROM ANTERGOS TO ARCH LINUX!!\n
  8. FOR USE ON YOUR OWN RESPONSIBILITY. THE SCRIPT MAKES A BASIC COPY OF MODIFIED FILES.\n
  9. HOWEVER, TO RESTORE THEM, YOU NEED TO DO IT MANUAL. THE BEST TO MAKE A FULL COPY OF THE SYSTEM.\033[0m \n[ To abort, press Ctrl+C, ENTER - to continue ]"
  10. read n
  11.  
  12. echo -e "\033[1mList of files to be modified:\033[0m \n"
  13. echo -e "-> /etc/pacman.conf
  14. -> /etc/os-release
  15. -> /etc/issue
  16. -> /boot/grub/grub.cfg
  17. -> /etc/grub.d/10_antergos <-- It will be REMOVED! \n\n"
  18.  
  19. echo -e "\033[1mList of Antergos packages to be removed (list without dependencies,\norphaned dependencies will also be removed):\033[0m \n"
  20. pacman -Qq | grep antergos || echo "Nothing here! (removed earlier?)"
  21. echo -e "\n\n"
  22.  
  23.  
  24. read -n 1 -p "Back up files that will be modified? (y/n)? " odp
  25. case $odp in
  26.     [yY])
  27.             sudo cp -v /etc/pacman.conf /etc/pacman.conf.ANTERGOS
  28.             sudo cp -v /etc/os-release /etc/os-release.ANTERGOS
  29.             sudo cp -v /etc/issue /etc/issue.ANTERGOS
  30.             sudo cp -v /boot/grub/grub.cfg /boot/grub/grub.cfg.ANTERGOS
  31.             sudo cp -v /etc/grub.d/10_antergos /etc/grub.d/_10_antergos.ANTERGOS
  32.             sudo chmod -x /etc/grub.d/_10_antergos.ANTERGOS
  33.             sudo pacman -Qq | grep antergos > ~/antergos_pkglist_$$.txt && echo "A list of specific Antergos packages have been saved to a file ~/antergos_pkglist.txt"
  34.             echo -e "\nA copy of the files to be modified has been created,\nyou will find them with the extension '.ANTERGOS'!"
  35.             ;;
  36.     [nN])
  37.             echo -e "\nNo backup selected!!"
  38.             ;;
  39.     *)
  40.             echo -e "\nPlease select \"y\" or \"n\" (yes/no)!"
  41.             exit 1
  42.             ;;
  43. esac
  44.  
  45.  
  46. tmpfile=`mktemp` || exit 1
  47.  
  48.  
  49. echo -e "-> \033[1mRemoving Antergos-specific packages and dependencies\033[0m\n"
  50. sudo pacman -Rddnus --noconfirm $(pacman -Qq | grep antergos)
  51.  
  52. echo -e "-> \033[1mRemoving GRUB Antergos modifications /etc/grub.d/10_antergos\033[0m\n"
  53. sudo rm -v /etc/grub.d/10_antergos
  54.  
  55. echo -e  "-> \033[1mReplacing the content /etc/pacman.conf\033[0m\n"
  56. cat > $tmpfile << "EOF"
  57. #
  58. # /etc/pacman.conf
  59. #
  60. # See the pacman.conf(5) manpage for option and repository directives
  61.  
  62. #
  63. # GENERAL OPTIONS
  64. #
  65. [options]
  66. # The following paths are commented out with their default values listed.
  67. # If you wish to use different paths, uncomment and update the paths.
  68. #RootDir     = /
  69. #DBPath      = /var/lib/pacman/
  70. #CacheDir    = /var/cache/pacman/pkg/
  71. #LogFile     = /var/log/pacman.log
  72. #GPGDir      = /etc/pacman.d/gnupg/
  73. #HookDir     = /etc/pacman.d/hooks/
  74. HoldPkg     = pacman glibc
  75. #XferCommand = /usr/bin/curl -C - -f %u > %o
  76. #XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
  77. #CleanMethod = KeepInstalled
  78. #UseDelta    = 0.7
  79. Architecture = auto
  80.  
  81. # Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
  82. #IgnorePkg   =
  83. #IgnoreGroup =
  84.  
  85. #NoUpgrade   =
  86. #NoExtract   =
  87.  
  88. # Misc options
  89. #UseSyslog
  90. Color
  91. TotalDownload
  92. CheckSpace
  93. #VerbosePkgLists
  94. ILoveCandy
  95.  
  96. # By default, pacman accepts packages signed by keys that its local keyring
  97. # trusts (see pacman-key and its man page), as well as unsigned packages.
  98. SigLevel    = Required DatabaseOptional
  99. LocalFileSigLevel = Optional
  100. #RemoteFileSigLevel = Required
  101.  
  102. # NOTE: You must run `pacman-key --init` before first using pacman; the local
  103. # keyring can then be populated with the keys of all official Arch Linux
  104. # packagers with `pacman-key --populate archlinux`.
  105.  
  106. #
  107. # REPOSITORIES
  108. #   - can be defined here or included from another file
  109. #   - pacman will search repositories in the order defined here
  110. #   - local/custom mirrors can be added here or in separate files
  111. #   - repositories listed first will take precedence when packages
  112. #     have identical names, regardless of version number
  113. #   - URLs will have $repo replaced by the name of the current repo
  114. #   - URLs will have $arch replaced by the name of the architecture
  115. #
  116. # Repository entries are of the format:
  117. #       [repo-name]
  118. #       Server = ServerName
  119. #       Include = IncludePath
  120. #
  121. # The header [repo-name] is crucial - it must be present and
  122. # uncommented to enable the repo.
  123. #
  124.  
  125. # The testing repositories are disabled by default. To enable, uncomment the
  126. # repo name header and Include lines. You can add preferred servers immediately
  127. # after the header, and they will be used before the default mirrors.
  128.  
  129. #[testing]
  130. #Include = /etc/pacman.d/mirrorlist
  131.  
  132. [core]
  133. Include = /etc/pacman.d/mirrorlist
  134.  
  135. [extra]
  136. Include = /etc/pacman.d/mirrorlist
  137.  
  138. #[community-testing]
  139. #Include = /etc/pacman.d/mirrorlist
  140.  
  141. [community]
  142. Include = /etc/pacman.d/mirrorlist
  143.  
  144. # If you want to run 32 bit applications on your x86_64 system,
  145. # enable the multilib repositories as required here.
  146.  
  147. #[multilib-testing]
  148. #Include = /etc/pacman.d/mirrorlist
  149.  
  150. [multilib]
  151. Include = /etc/pacman.d/mirrorlist
  152.  
  153. # An example of a custom package repository.  See the pacman manpage for
  154. # tips on creating your own repositories.
  155. #[custom]
  156. #SigLevel = Optional TrustAll
  157. #Server = file:///home/custompkgs
  158. EOF
  159. sudo mv -v $tmpfile /etc/pacman.conf
  160.  
  161. echo -e  "-> \033[1mReplacing the content /etc/os-release\033[0m\n"
  162. cat > $tmpfile << "EOF"
  163. NAME="Arch Linux"
  164. PRETTY_NAME="Arch Linux"
  165. ID=arch
  166. BUILD_ID=rolling
  167. ANSI_COLOR="0;36"
  168. HOME_URL="https://www.archlinux.org/"
  169. DOCUMENTATION_URL="https://wiki.archlinux.org/"
  170. SUPPORT_URL="https://bbs.archlinux.org/"
  171. BUG_REPORT_URL="https://bugs.archlinux.org/"
  172. LOGO=archlinux
  173. EOF
  174. sudo mv -v $tmpfile /etc/os-release
  175.  
  176.  
  177. echo -e  "-> \033[1mReplacing the content /etc/issue\033[0m\n"
  178. cat > $tmpfile << "EOF"
  179. Arch Linux \r (\l)
  180.  
  181. EOF
  182. sudo mv -v $tmpfile /etc/issue
  183.  
  184.  
  185. echo -e  "-> \033[1mPamac removal\033[0m\n"
  186. kill -s SIGKILL $(pgrep pamac)
  187. sudo pacman --noconfirm --remove -nus pamac
  188.  
  189.  
  190. echo -e  "-> \033[1mUpdating Pacman keys and repository databases - Please be patient\033[0m\n"
  191. sudo pacman-key --refresh
  192. sudo pacman -Syy
  193.  
  194. echo -e  "-> \033[1mReinstall linux and linux-headers\033[0m\n"
  195. sudo pacman -Syu --noconfirm linux linux-headers
  196.  
  197.  
  198. echo -e  "-> \033[1mReinstall GRUB and refresh entries in grub.cfg\033[0m\n"
  199. sudo pacman -Syu --noconfirm grub
  200. sudo grub-mkconfig -o /boot/grub/grub.cfg
  201.  
  202.  
  203. echo -e  "-> \033[1mFull system update\033[0m\n"
  204. sudo sudo pacman -Syyuu --noconfirm
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement