แต่ใช้งานได้ในเวอร์ชันที่ใหม่กว่าเท่านั้น wget. น่าเสียดายที่ฉันมี
รุ่นเก่ากว่าของ wget (GNU Wget 1.15 สร้างเมื่อวันที่ darwin14.3.0) และ
ไม่สามารถอัปเกรดได้ โดยเฉพาะมันคือ wget --show-progress ตัวเลือกที่ไม่รู้จัก
ขึ้นอยู่กับสิ่งที่ฉันรู้เกี่ยวกับวิธีการ curl ทำงานและอย่างไร wget การทำงานพวกเขาอาจดูเหมือนผิวเผิน แต่ไม่มีอะไรเทียบเท่า wget ฟังก์ชันการเรียกซ้ำใน curl. ที่จะทำอะไรแบบนั้นค่ะ curl ต้องใช้สคริปต์ Bash แฟนซีเพื่อล้อมรอบ curl คำสั่ง
ดังนั้นเมื่อคุณบอกว่าคุณไม่สามารถอัปเกรดได้ wgetคุณหมายถึงอะไรกันแน่ ตั้งแต่ wget เป็นเครื่องมือ GNU ซึ่งไม่ได้ติดตั้งกับดาร์วิน (ซึ่งใช้ BSD) และมักจะรวบรวมจากแหล่งที่มา ในความเป็นจริงรายละเอียดของรุ่นที่คุณให้นั้นได้รวบรวมอย่างชัดเจนจากแหล่งในบางวิธีเนื่องจากรุ่นคือ "GNU Wget 1.15 ที่สร้างขึ้นบน darwin14.3.0" ดังนั้นหากรุ่นของ wget ถูกติดตั้งโดยบางสิ่งบางอย่างเช่น Homebrew มีความหวังเพราะหาก Homebrew อยู่ในระบบของคุณคุณควรมี Xcode และเครื่องมือบรรทัดคำสั่ง / คอมไพเลอร์ที่เกี่ยวข้องติดตั้งอยู่ในระบบของคุณเช่นกัน
ตอนนี้ทราบแล้วว่าคุณควรจะสามารถรวบรวมรุ่นที่ปรับปรุงแล้วของ wget - เช่นเดียวกับ 1.16.3 - จากแหล่งที่มา; ข้ามรุ่นที่ติดตั้ง Homebrew และเพียงแค่ให้มันสามารถทำงานได้จากไดเรกทอรีบ้านของคุณ คุณไม่มี root / sudo เข้าถึงสิ่งนี้ได้ นี่คือวิธีที่คุณสามารถทำได้
การรวบรวม wget จากแหล่งที่มา
ก่อนคว้าไฟล์บีบอัดจากเจ้าหน้าที่ wget แหล่งที่มา:
curl -O http://ftp.gnu.org/gnu/wget/wget-1.16.3.tar.gz
ถัดไปขยายขนาดไฟล์เก็บถาวรเช่นนี้:
tar -xzf wget-1.*.tar.gz
ตอนนี้ไปที่ไดเรกทอรีแตก:
cd wget-1.*
เรียกใช้สิ่งนี้ configure คำสั่ง:
./configure --with-ssl=openssl
ถ้าอย่างนั้น configure คำสั่งล้มเหลวคุณอาจต้องเพิ่ม --with-libssl-prefix คุณค่าเช่นนี้:
./configure --with-ssl=openssl --with-libssl-prefix=/usr/lib
เมื่อครั้ง configure กระบวนการเสร็จสมบูรณ์ให้เรียกใช้ make:
make
ถ้ามันทำงานได้อย่างหมดจด wget 1.16.3 ไบนารี่พร้อมให้คุณใช้งาน
ใช้งานเวอร์ชันที่คอมไพล์สดใหม่ wget จากไดเรกทอรีบ้านของคุณ
ถึงตอนนี้คำแนะนำส่วนใหญ่จะบอกว่าคุณควรจะวิ่ง sudo make install เพื่อรับ wget ติดตั้งอย่างสมบูรณ์ในระบบ แต่ถ้าคุณไม่มี root / sudo สิทธิพิเศษ - หรือคุณไม่ต้องการอัปเกรด wget เวอร์ชันที่ติดตั้งทั้งระบบ - คุณยังสามารถเรียกใช้ wget เลขฐานสองที่คุณเพิ่งคอมไพล์เช่นนี้ ก่อนอื่นให้ถอยออกจากคุณ wget ไดเรกทอรีแหล่งที่มาเช่นนี้:
cd ~/
ตอนนี้เพียงแค่เรียกใช้ wget 1.16.3 ไบนารีที่คุณเพิ่งรวบรวมอย่างชัดเจนเพื่อยืนยันว่ามันใช้งานได้:
~/wget-1.16.3/src/wget --version
ผลลัพธ์ควรเป็นดังนี้:
GNU Wget 1.16.3 built on darwin13.4.0.
+digest +https +ipv6 -iri +large-file -nls +ntlm +opie -psl +ssl/openssl
Wgetrc:
/usr/local/etc/wgetrc (system)
Compile:
gcc -DHAVE_CONFIG_H -DSYSTEM_WGETRC="/usr/local/etc/wgetrc"
-DLOCALEDIR="/usr/local/share/locale" -I. -I../lib -I../lib
-DNDEBUG
Link:
gcc -DNDEBUG -liconv -lssl -lcrypto -ldl -lz ftp-opie.o openssl.o
http-ntlm.o ../lib/libgnu.a
Copyright (C) 2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
<http://www.gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Originally written by Hrvoje Niksic <hniksic@xemacs.org>.
Please send bug reports and questions to <bug-wget@gnu.org>.
ซึ่งหมายความว่าคุณอยู่ในธุรกิจ!
วิ่งของคุณ wget คำสั่งจากไดเรกทอรีบ้านของคุณ
ดังนั้นตอนนี้คุณสามารถเรียกใช้ wget คำสั่งโพสต์ในคำถามของคุณเช่นนี้:
~/wget-1.16.3/src/wget -r --no-parent -nH -nd -q --show-progress --progress=bar:force ftp://ftp.ncdc.noaa.gov/pub/data/swdi/database-csv/v2/
และปรับแต่งเล็กน้อย - แต่สิ่งที่ควรค่าแก่การสังเกต - ก็คือมีมากมาย wget ตัวเลือกมีชื่อเต็มและตัวย่อย่อ ดังนั้น --no-parent สามารถตัดให้สั้นลง -np เพื่อทำให้คำสั่งมีลักษณะดังนี้:
~/wget-1.16.3/src/wget -r -np -nH -nd -q --show-progress --progress=bar:force ftp://ftp.ncdc.noaa.gov/pub/data/swdi/database-csv/v2/
การล้างข้อมูลภายหลังการใช้งาน
และถ้าคุณต้องการที่จะกำจัด wget 1.16.3 สิ่งที่คุณเพิ่งคอมไพล์ - เนื่องจากคุณบอกว่าคอมพิวเตอร์ที่คุณกำลังทำงานไม่ใช่ของคุณ - จากนั้นเพียงลบ wget ไฟล์ต้นฉบับที่คุณทำงานด้วยเช่นนี้:
rm wget-1.16.3.tar.gz
rm -rf wget-1.16.3
wgetแต่ตั้งแต่wgetไม่ได้เป็นส่วนหนึ่งของการตั้งค่าระบบหลักของ Mac OS X และจะต้องเป็นไปตามนั้นเป็นของตัวเองบางคนรวบรวมไว้อย่างชัดเจน ที่กล่าวว่ามีวิธีสำหรับคุณในการรวบรวมและเรียกใช้เวอร์ชันที่ใหม่กว่าwgetโดยไม่ต้องอัพเกรดwgetที่ติดตั้งไว้แล้วในระบบของคุณ รายละเอียดในของฉัน โพสต์คำตอบ .