ที่เก็บของ Raspbian มีรายการแพ็คเกจที่สามารถเรียกดูได้หรือไม่?


62

Raspbianอ้างว่ามี "35,0000 Raspbian packages" ซึ่งยอดเยี่ยม แต่ฉันแค่มองหาแพ็คเกจหนึ่งหรือสองชุดก่อนติดตั้ง

มีรายการแพคเกจพื้นที่เก็บข้อมูลที่เรียกดูได้ที่ฉันสามารถค้นหาด้วยเว็บเบราว์เซอร์โดยไม่ต้องอยู่ในอุปกรณ์หรือไม่?

หากไม่มีวิธีที่เป็นมิตรต่อเบราว์เซอร์มีวิธีดาวน์โหลดรายการแพ็กเกจและเรียกดูวิธีอื่นหรือไม่?

คำตอบ:


40

จากคำถามที่พบบ่อย Raspbian.org

รายการแพ็กเกจปัจจุบันในที่เก็บ Raspbian สามารถพบได้ในไฟล์ข้อความที่ลิงก์ด้านล่าง: http://archive.raspbian.org/raspbian/dists/wheezy/main/binary-armhf/Packages

คำเตือนการดาวน์โหลดคือ 32MB

ไฟล์เป็นข้อความธรรมดาและรายการแพ็กเกจสามารถรับได้ด้วยไพพ์ไลน์ต่อไปนี้:

grep -P '^Package:' Packages | cut -d' ' -f2

เครื่องมือแก้ไขข้อความปกติเป็นวิธีที่ดีที่สุดในการเรียกดูสิ่งนี้ใช่ไหม
Zoot

1
มันเป็นไฟล์ข้อความที่คุณสามารถเปิดด้วยโปรแกรมแก้ไขข้อความ, เบราว์เซอร์, MS Word ฯลฯ คุณเคยคิดที่จะค้นหาแพ็คเกจโดยใช้การค้นหา apt-cache ที่เหมาะสม "ชื่อแพ็คเกจ"
Steve Robillard

2
ฉันไม่ได้อยู่หน้าอุปกรณ์ในปัจจุบันและ Raspbian ไม่ได้ติดตั้งในปัจจุบันทำให้ฉันมีประโยชน์น้อยกว่าฉันเล็กน้อย
Zoot

1
เปิดโดยใช้ Notepad ++ - ฉันจัดการกับไฟล์ขนาดใหญ่เช่นนี้ได้อย่างง่ายดาย รองรับการแสดงออกปกติเช่นกัน
Piotr Kula

3
ในคำสั่งเดียว:curl -s http://archive.raspbian.org/raspbian/dists/stable/main/binary-armhf/Packages.xz | xz -d | grep '^Package:' | cut -d ' ' -f 2
gioele

19

มีรายการแพคเกจ Raspbian ที่สามารถเรียกดูได้ที่http://www.raspberryconnect.comในส่วนซอฟต์แวร์ แพ็คเกจมีการระบุไว้ตามหมวดหมู่


10
ตกยุค. ดูเหมือนว่ารายการดังกล่าวไม่ได้รับการดูแล
Piotr Kula

รายการแพคเกจจะได้รับการดูแลเป็นประจำกับแพคเกจ Jessie และ Wheezy
แกรม

14

Distro raspbian มาพร้อมกับยูทิลิตี้ที่เรียกว่า apt-cache หากต้องการค้นหาดัชนีที่เก็บแพ็กเกจโลคัลให้ใช้:

apt-cache search <keyword>

แต่สิ่งนี้ต้องมีการเข้าถึงอุปกรณ์ (หรืออย่างน้อยอินสแตนซ์ที่ทำงานของ Raspbian) OP ระบุว่าจะต้องสามารถเข้าถึงได้ในเบราว์เซอร์นอก Raspbian
JBentley

8

คุณสามารถเลือกแพคเกจ Debian ดังเสียงฮืด ๆ ใน Debian ของหน้าดังเสียงฮืดแพ็คเกจที่มีควรจะเหมือนกันกับที่เก็บ Raspbian


3
Raspbian สามารถใช้บริการเช่นนี้ได้อย่างแน่นอนเช่นกัน และเข้าถึงตัวติดตามบั๊ก มันจะเป็นการดีถ้าคุณสามารถเรียกดูไฟล์เก็บถาวรสำหรับแพ็คเกจและเวอร์ชันบนซุ้มประตูได้อย่างง่ายดายเมื่อคุณไม่ได้ใช้ raspbian
XTL

3

ฉันได้พบกับเธรดที่มีประโยชน์นี้ด้วย (ขอบคุณผู้มีส่วนร่วมก่อนหน้านี้: สิ่งที่ยอดเยี่ยม!) อย่างไรก็ตามฉันต้องการบางสิ่งที่ซับซ้อนกว่านี้: รับรายการสิ่งที่ต้องการของแพ็กเกจที่ขึ้นต่อกันฉันสามารถใช้ยูทิลิตี้ในการไล่ล่าพวกมันในการแจกแจงแบบราสเบียนต่างๆได้ไหม?

ฉันได้สร้างสคริปต์สองสามอย่างที่ผู้อื่นอาจพบว่ามีประโยชน์ (คุณสามารถบันทึกสิ่งเหล่านี้ไปยังโฟลเดอร์บ้านผู้ใช้piของคุณ(หรือที่ใดก็ได้)) อย่าลืมchmod + x script-name.shหลังจากที่คุณสร้างพวกเขามิฉะนั้นคุณจะมีปัญหาในการใช้พวกเขา

คนแรกคือget-available.sh :

#!/bin/bash

dist=jessie
[ ${#1} -gt 0 ] && dist=$1

[ ! -e /home/pi/${dist} ] && mkdir /home/pi/${dist}
pushd /home/pi/${dist} &> /dev/null
[ ! -e ./Packages ] && echo Fetching Packages list for ${dist}...
[ ! -e ./Packages ] && wget http://archive.raspbian.org/raspbian/dists/${dist}/main/binary-armhf/Packages
grep -P '^Package:' Packages | cut -d' ' -f2 > available
[ ! -e ./wishlist ] && touch ./wishlist
popd &> /dev/null

คุณเรียกใช้สิ่งนี้และดึงรายการแพ็กเกจสำหรับการแจกแจงที่กำหนด (ค่าเริ่มต้นไปที่jessie ):

./get-available.sh [<distribution-name>]

นอกจากนี้ยังสร้างไฟล์ข้อความสิ่งที่อยากได้ว่างเปล่าในโฟลเดอร์การแจกจ่ายที่สร้างขึ้นใหม่ (ตรวจสอบก่อนว่าคุณยังไม่มีโฟลเดอร์ของชื่อเหล่านี้ในโฟลเดอร์บ้านของคุณหรือคุณสามารถเขียนทับบางสิ่ง): คุณสามารถแก้ไขสิ่งนี้เป็นรายการแพคเกจ ที่คุณหวังว่าจะพบจะรวมอยู่ในการกระจายที่คุณกำลังค้นหา

สคริปต์ที่สองคือcheck-available.sh :

#!/bin/bash

dist=jessie
[ ${#1} -gt 0 ] && dist=$1
[ ! -e /home/pi/${dist}/available ] && echo You need to run ./get-available.sh ${dist} first!
[ ! -e /home/pi/${dist}/available ] && exit

pushd /home/pi/${dist} &> /dev/null
[ -e ./availability ] && rm ./availability
mlen=7

function check-len () {
  [ ${#1} -gt ${mlen} ] && mlen=${#1}
}

function check-available () {

  matches=$(grep -o "^$1$" ./available | wc -l)
  if [ ${matches} -eq 0 ]
  then
    printf "%-${mlen}s :NO  (%s)\n" $1 ${dist} >> ./availability
  else
    printf "%-${mlen}s :YES (%s)\n" $1 ${dist} >> ./availability
  fi
}

readarray packages < ./wishlist

for p in "${packages[@]}"
do
  pw=$(echo ${p}|tr -d '\n')
  check-len "${pw}"
done

for p in "${packages[@]}"
do
  pw=$(echo ${p}|tr -d '\n')
  check-available "${pw}"
done

[ -e ./availability ] && cat ./availability

popd &> /dev/null

เมื่อคุณมีการติดตั้งสิ่งที่ปรารถนาของคุณทำงานนี้และมันจะสแกนรายการแพคเกจสำหรับแพคเกจเหล่านั้น (เริ่มต้นที่เจสซี ):

./check-available.sh [<distribution-name>]

เช่นเดียวกับการส่งออกไปยังคอนโซลจะบันทึกผลลัพธ์การค้นหาไปยังไฟล์ความพร้อมใช้งานในโฟลเดอร์ย่อยการค้นหาการกระจาย

นี่คือตัวอย่างสิ่งที่อยากได้ (ของฉัน) :

vim
wget
software-properties-common
python3.5
libsodium13
python3-pip
oracle-java8-installer
oracle-java8-set-default
libgmp3-dev
libssl-dev
flex
bison

นี่คือสิ่งที่ฉันพบสำหรับความพร้อมใช้งานของแพคเกจwheezy :

vim                        :YES (wheezy)
wget                       :YES (wheezy)
software-properties-common :YES (wheezy)
python3.5                  :NO  (wheezy)
libsodium13                :NO  (wheezy)
python3-pip                :YES (wheezy)
oracle-java8-installer     :NO  (wheezy)
oracle-java8-set-default   :NO  (wheezy)
libgmp3-dev                :YES (wheezy)
libssl-dev                 :YES (wheezy)
flex                       :YES (wheezy)
bison                      :YES (wheezy)

นี่คือสิ่งที่ฉันพบjessieความพร้อมแพคเกจ:

vim                        :YES (jessie)
wget                       :YES (jessie)
software-properties-common :YES (jessie)
python3.5                  :NO  (jessie)
libsodium13                :YES (jessie)
python3-pip                :YES (jessie)
oracle-java8-installer     :NO  (jessie)
oracle-java8-set-default   :NO  (jessie)
libgmp3-dev                :YES (jessie)
libssl-dev                 :YES (jessie)
flex                       :YES (jessie)
bison                      :YES (jessie)

และนี่คือสิ่งที่ฉันพบสำหรับความพร้อมของแพ็คเกจยืด :

vim                        :YES (stretch)
wget                       :YES (stretch)
software-properties-common :YES (stretch)
python3.5                  :YES (stretch)
libsodium13                :NO  (stretch)
python3-pip                :YES (stretch)
oracle-java8-installer     :NO  (stretch)
oracle-java8-set-default   :NO  (stretch)
libgmp3-dev                :YES (stretch)
libssl-dev                 :YES (stretch)
flex                       :YES (stretch)
bison                      :YES (stretch)

หากรายการของคุณยาวกว่านี้เป็นของแน่นอนที่จะใช้grepเพื่อกรองบรรทัด: YESหรือ: NOเพื่อสอบถามไฟล์ความพร้อมใช้งาน

ฉันหวังว่าบางคนจะพบว่ามีประโยชน์นี้!


1

Raspberry Pi Foundation ประกาศว่าจะเปิดตัว " Pi Store " ซึ่งเป็นรายการแอพพลิเคชั่นที่สามารถเรียกดูได้สำหรับ Raspberry Pi รวมถึงแอพทั้งฟรีและจ่ายเงิน

ไม่ใช่รายการแพ็กเกจที่สมบูรณ์เช่นไฟล์เก็บถาวร Raspbian แต่ให้ข้อมูลแบบย่อในบางสิ่งที่สามารถติดตั้งก่อนติดตั้ง Raspbian

แก้ไข: ไม่มีอีกต่อไป คำตอบนี้เป็นคำสั่งของบันทึกประวัติศาสตร์


6
น่าเสียดายที่ Pi Store ปิดแล้วและไม่มีอีกต่อไป
tjohnson

1

สามารถเรียกดูได้ที่นี่: http://archive.raspbian.org/raspbian/pool/main/

........


ฉันสังเกตเห็นว่าสามารถยืนยันสิ่งที่มีอยู่ แต่ไม่สามารถยืนยันสิ่งที่ไม่ได้กล่าวคือคุณจะทำงานข้ามแพ็คเกจที่ติดตั้งผ่านaptแต่ไม่ได้อยู่ในโครงสร้างการเก็บถาวรนั้น อีกวิธีหนึ่งเพียงเพราะคุณไม่สามารถหาสิ่งที่นั่นไม่ได้หมายความว่ามันไม่สามารถใช้ได้
goldilocks
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.