Advertisement
Guest User

Funções pacotes distros

a guest
Dec 23rd, 2020
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 4.66 KB | None | 0 0
  1. #debian -- list of all packages
  2. debian()
  3. {
  4.     echo 'List of all packages' >&2
  5.     curl -sL "https://packages.debian.org/${1:-stable}/allpackages?format=txt.gz"
  6. }
  7. #Distribution:
  8. #  experimental
  9. #  unstable
  10. #  testing
  11. #  stable
  12. #  oldstable
  13. #  any
  14. #Section:
  15. #  main
  16. #  contrib
  17. #  non-free
  18. #  any
  19.  
  20. #debian -- list of all packages by repo (without version)
  21. debian2()
  22. {
  23.     local v r
  24.  
  25.     echo 'List of all packages' >&2
  26.     for v in bullseye buster stretch jessie
  27.     do
  28.         for r in main contrib non-free
  29.         do
  30.             printf '%s in %s\n' "$v" "$r" | tr a-z A-Z >&2
  31.             curl -Ls "http://ftp.br.debian.org/debian/dists/${v}/${r}/source/Sources.xz" |
  32.                 unxz | grep Package:
  33.         done
  34.     done
  35. }
  36. ##other mirrors
  37. #ftp.us.debian.org/debian/
  38. #ftp.de.debian.org/debian/
  39. #ftp.uk.debian.org/debian/
  40. ##other dists/ entries
  41. #Debian8.11     #jessie
  42. #Debian9.12     #stretch
  43. #Debian10.3     #buster
  44. #Debian     #next bullseye
  45. #stable
  46. #testing
  47. #unstable
  48. #experimental
  49. #sid
  50.  
  51. #ubuntu -- list all pkg names (without version)
  52. ubuntu()
  53. {
  54.     local v vv r
  55.  
  56.     echo 'List of all packages' >&2
  57.     for v in groovy focal eoan bionic xenial trusty precise
  58.     do
  59.         case "$v" in
  60.             devel  ) vv=development;;
  61.             precise) vv='12.04 LTS';;
  62.             trusty ) vv='14.04 LTS';;
  63.             xenial ) vv='16.04 LTS';;
  64.             bionic ) vv='18.04 LTS';;
  65.             cosmic ) vv='18.10';;
  66.             disco  ) vv='19.04';;  #removed from repo
  67.             eoan   ) vv='19.10';;
  68.             focal  ) vv='20.04 LTS';;
  69.             groovy ) vv='20.10';;
  70.             #? ) vv='21.04';;
  71.         esac
  72.  
  73.         for r in main multiverse restricted universe
  74.         do
  75.             echo "$v $vv in $r" | tr a-z A-Z >&2
  76.             curl -Ls "http://archive.ubuntu.com/ubuntu/dists/${v}/${r}/source/Sources.gz" |
  77.                 gzip -dc | grep -F Package:
  78.         done
  79.     done
  80. }
  81.  
  82. #ubuntu -- search a package in ubuntu repos
  83. ubuntu2()
  84. {
  85.     curl -sL "http://packages.ubuntu.com/${1:?pkg name required}" | sed -e 's/<[^>]*>//g'  -Ee 's/^(\s|\t)+//g' |
  86.         sed -n '/You have searched for/,/This page is also/p' |
  87.         sed -E ':a; N; $!ba; :b; s/([^\n])\n\n([^\n])/\1\n\2/g; tb' |
  88.         sed -e ':a;N;s/\n\(.\)/ \1/;ta' |
  89.         sed -e '/^\s*$/d' -e 's/^\s*//g' -e 's/^Package\s/\n&/g' | cat <(echo) - |
  90.         tac -rs '^$'
  91. }
  92. #w3m "http://packages.ubuntu.com/$1" -dump | sed -n '/^Package/,$p' | tac
  93.  
  94. #freebsd ports
  95. freebsd()
  96. {
  97.     echo 'List of all ports' >&2
  98.  
  99.     curl -sL 'http://www.cz.freebsd.org/ports/master-index.html' |
  100.         sed -n '/<p>/,$p' | sed -e 's/<[^>]*>//g' |
  101.         grep -oe '^[[:alnum:]].*' -e 'Last modified.*'
  102. }
  103. ##mirrors
  104. #https://www.freebsd.org/doc/handbook/mirrors-ftp.html
  105. #main server: https://www.freebsd.org/ports/master-index.html
  106. #http://www1.fr.freebsd.org/ports/master-index.html
  107. #http://www.cz.freebsd.org/ports/master-index.html
  108. #also: ftp://ftp.freebsd.org/pub/FreeBSD/ports/
  109.  
  110. #freebsd fresh ports (without version)
  111. freebsd2()
  112. {
  113.     curl -sL "https://www.freshports.org/search.php?stype=name&method=match&query=${1:?port name required}&num=500&orderby=category&orderbyupdown=desc&search=Search&format=plaintext&branch=head"
  114. }
  115.  
  116.  
  117. #gentoo pkg list from mirror
  118. gentoo()
  119. {
  120.     echo 'List of all packages' >&2
  121.     echo 'Downloading..' >&2
  122.  
  123.     curl -Ls 'https://mirrors.evowise.com/gentoo/distfiles/' | sed 's/<[^>]*>//g'
  124. }
  125. #https://mirrors.lug.mtu.edu/gentoo/distfiles/
  126.  
  127. #gentoo pkg list from search engine
  128. gentoo2()
  129. {
  130.     curl -Ls --compressed "https://packages.gentoo.org/packages/search?q=${1:?pkg name required}" |
  131.         sed -e 's/<[^>]*>//g' -e 's/^\s*//g' |
  132.         sed -n '/^Results/,/^Next/p' | cat -s
  133. }
  134.  
  135. #linux mint
  136. mint()
  137. {
  138.     echo 'List of all packages' >&2
  139.     curl --compressed -Lo - http://mirrors.evowise.com/linuxmint/packages/db/packages.db |  #about 78MB
  140.         tr -cd '\11\12\15\40-\176'  #remove binary chars
  141. }
  142. #https://www.linuxmint.com/mirrors.php
  143.  
  144. mint2()
  145. {
  146.     w3m -dump "http://packages.linuxmint.com/search.php?release=any&section=any&keyword=${1:?pkg name required}" |
  147.         tac
  148. }
  149.  
  150. #fedora
  151. fedora()
  152. {
  153.     local ver index
  154.  
  155.     echo 'List of (almost) all packages' >&2
  156.     for ver in 33
  157.     do
  158.         for index in {a..z} {0..9}
  159.         do
  160.             curl --compressed -sL "http://fedora.c3sl.ufpr.br/linux/releases/$ver/Everything/aarch64/os/Packages/$index" |
  161.                 sed -e 's/</\t&/g; s/<[^>]*>//g' -e 's/^[\s\t]*//; s/\t\+/\t/g; s/&nbsp;//' | cat -s
  162.         done
  163.        
  164.         echo "Packages above from Fedora $ver repos" >&2
  165.     done
  166. }
  167. #https://admin.fedoraproject.org/mirrormanager/
  168.  
  169. fedora2()
  170. {
  171.     curl -Ls "https://apps.fedoraproject.org/packages/fcomm_connector/xapian/query/search_packages/%7B%22filters%22:%7B%22search%22:%22${1:?pkg name required}%22%7D,%22rows_per_page%22:100,%22start_row%22:0%7D" |
  172.         jq -r '.rows[].name' | tac
  173.  
  174.     echo 'Top results'
  175. }
  176.  
  177. #pkgs from all distros
  178. #use with grep
  179. alldist()
  180. {
  181.     echo 'Loading..' >&2
  182.     w3m -dump "https://pkgs.org/search/?q=${1:?pkg name required}"
  183. }
  184.  
  185.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement