การอัพเกรดและติดตั้งแพ็คเกจผ่านทางบรรทัดคำสั่ง Cygwin?


113

ฉันเป็นผู้ใช้คอมพิวเตอร์ตาบอดที่ใช้ Cygwin

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

มีวิธีในการติดตั้ง / อัพเกรดแพ็คเกจด้วยตนเองหรือติดตั้ง / อัปเกรดด้วยตนเองผ่านบรรทัดคำสั่งหรือไม่

คำตอบ:


121

ติดตั้งapt-cyg :

lynx -source https://raw.githubusercontent.com/transcode-open/apt-cyg/master/apt-cyg > apt-cyg
install apt-cyg /bin

หลังจากนั้นคุณจะสามารถติดตั้งแพคเกจพูดว่า "คม" รวมถึงการพึ่งพาโดยการทำงาน:

apt-cyg install lynx

4
พื้นที่เก็บข้อมูลยังไม่ได้ย้าย : ร้องเรียน DMCA ได้รับการออก againt แปลงเปิด / apt-CYG อนึ่งผู้ใช้ Github svnpenn ได้สร้างทางแยกชื่อ "ปราชญ์" ในเวลาเดียวกันโดยอ้างว่าเป็นผู้สืบทอด
Lucas Cimon


ผมต้อง chmod + x apt-CYG เพื่อให้เป็นปฏิบัติการ (ในกรณีที่มันจะช่วยให้ใครบางคน)
เปโดร

23

เนื่องจากบางคนระบุไว้อย่างถูกต้องว่าapt-cygตัวเองต้องการ wget และเพื่อให้apt-cygคุณต้องการ wget มีวิธีการทุบตีเพียงอย่างเดียวเพื่อ bootstrap wgetในทุบตีบริสุทธิ์

สร้างฟังก์ชั่นแบบนี้ใน bash shell ของคุณ:

function __wget() {
    : ${DEBUG:=0}
    local URL=$1
    local tag="Connection: close"
    local mark=0

    if [ -z "${URL}" ]; then
        printf "Usage: %s \"URL\" [e.g.: %s http://www.google.com/]" \
               "${FUNCNAME[0]}" "${FUNCNAME[0]}"
        return 1;
    fi
    read proto server path <<<$(echo ${URL//// })
    DOC=/${path// //}
    HOST=${server//:*}
    PORT=${server//*:}
    [[ x"${HOST}" == x"${PORT}" ]] && PORT=80
    [[ $DEBUG -eq 1 ]] && echo "HOST=$HOST"
    [[ $DEBUG -eq 1 ]] && echo "PORT=$PORT"
    [[ $DEBUG -eq 1 ]] && echo "DOC =$DOC"

    exec 3<>/dev/tcp/${HOST}/$PORT
    echo -en "GET ${DOC} HTTP/1.1\r\nHost: ${HOST}\r\n${tag}\r\n\r\n" >&3
    while read line; do
        [[ $mark -eq 1 ]] && echo $line
        if [[ "${line}" =~ "${tag}" ]]; then
            mark=1
        fi
    done <&3
    exec 3>&-
}

ตอนนี้คุณสามารถใช้มันเกือบเหมือน wget:

__wget http://apt-cyg.googlecode.com/svn/trunk/apt-cyg > /usr/bin/apt-cyg && chmod 0755 /usr/bin/apt-cyg

ขออภัย @moreaki แต่มีสิ่งหนึ่งที่ฉันไม่สามารถเข้าใจได้จาก apt-cyg: ใน CygWin ตัวติดตั้ง Windows แบบดั้งเดิมฉันอาจ / ต้องระบุตำแหน่งที่เก็บ / แพ็กเกจไม่ว่าจะเป็นหนึ่งในการดาวน์โหลด ftp / http ไซต์หรือไดรฟ์ในเครื่อง (ในคอมพิวเตอร์ของฉัน) ฉันไม่เห็นตัวเลือกดังกล่าวในเว็บไซต์ทางการของ googlecode สถานที่ที่ไม่apt-cygดาวน์โหลดแพคเกจจากไหน?
Sopalajo de Arrierez

ให้อภัยการตอบช้าของฉัน ฉันมีไขมันต่ำเพียงรหัสผ่านของ apt-CYG บนเว็บไซต์อย่างเป็นทางการ googlecode และให้ฉันมันดูเหมือนว่าเว็บไซต์ดาวน์โหลดเลือกน่าจะเป็นhttp://mirrors.kernel.org/sourceware/cygwinตามที่ระบุในเมื่อคุณไม่ได้ระบุกระจกโดยใช้ตัวเลือกบรรทัดคำสั่งfindworkspace() ถ้าคุณระบุบรรทัดคำสั่งข้อมูลเซิร์ฟเวอร์กระจกจะถูกเขียนไป-m /etc/setup/last-mirror
Moreaki

การติดตั้ง apt-cyg ไม่ต้องพึ่ง wget อีกต่อไปแล้วไม่มีสิ่งใดที่จะเป็นเรื่องสำคัญอีกต่อไปแล้วใช่ไหม พวกเขาใช้คม (ซึ่งดูเหมือนว่าจะมีอยู่แล้วใน cygwin?) บนเว็บไซต์ของพวกเขา
akauppi

@steven เหตุผลสำหรับการแก้ไขการขายส่งที่เปลี่ยนแปลงมากกว่าส่วนที่สำคัญคืออะไร มันค่อนข้างจะเป็นคำตอบที่แยกจากกัน
สุ่ม

1
จากนั้นลงคะแนนและให้คำตอบการแข่งขัน หากคุณเป็นผู้ดูแลของ apt-cyg ไม่มีข้อบ่งชี้ในโปรไฟล์ของคุณหรือในการสรุปการแก้ไขของคุณหรือที่ใดก็ตามที่มองเห็นซึ่งแสดงให้เห็นว่าอำนาจหรือพื้นหลังที่จะใช้ในการแก้ไขเหล่านี้
สุ่ม

21

การติดตั้งอย่างเป็นทางการ apt-CYGวิธีคือ

lynx -source rawgit.com/transcode-open/apt-cyg/master/apt-cyg > apt-cyg
install apt-cyg /bin

สองขั้นตอนดีกว่าสามขั้น แล้ว:

apt-cyg install nano

โดยวิธีการที่จะทำให้มันทำงานคุณจะต้องติดตั้งwget , tar , gawk และbzip2เพื่อใช้ apt-cyg นอกเหนือจาก wget แล้วยังมีการติดตั้ง Cygwin เริ่มต้นอีกด้วย


2
สำหรับ Cygwin 64- บิตsvnและapt-cygอาจจะเสีย ดังนั้นคุณอาจต้องใช้three stepวิธี wget เพื่อติดตั้งapt-cygแล้วแทนที่$mirror/setup...ด้วย$mirror/x86_64/setup...ในบรรทัด 98 และ 105 ของไฟล์ apt-cyg
sagunms

17

คำถามเก่า ๆ แต่สำหรับคนอื่น ๆ ที่ google และมาที่นี่: การตั้งค่าอย่างเป็นทางการมีอาร์กิวเมนต์บรรทัดคำสั่งที่อนุญาตให้ฉันเตรียมสคริปต์ * .bat อย่างง่าย - เพียงแค่ใส่บรรทัดต่อไปนี้ใน "install-pkg.bat" และใส่ไฟล์ลงในไดเรกทอรีรากของคุณ (เช่น C: \ cygwin):

setup-x86.exe --no-desktop --no-shortcuts --no-startmenu --quiet-mode --root "%cd%" --packages %*

คุณต้องดาวน์โหลดและวางhttp://www.cygwin.com/setup-x86.exe (32 บิต) หรือhttp://www.cygwin.com/setup-x86_64.exe (64 บิต) ลงในไดเรกทอรีเดียวกัน ตอนนี้สิ่งที่คุณต้องทำเพื่อติดตั้งแพ็คเกจคือ:

install-pkg packagename

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


1
คำตอบที่ดีเพราะมันเป็นเครื่องมือที่คุณมีอยู่แล้วในการติดตั้ง Cygwin; อย่างไรก็ตามดูเหมือนว่าคุณไม่สามารถป้องกันไม่ให้อัปเดตแพ็คเกจที่ติดตั้งไว้ทั้งหมดได้ใช่ไหม มันค่อนข้างน่ารำคาญหากคุณต้องการติดตั้งแพ็คเกจใหม่ กล่าวอีกนัยหนึ่งไม่มีบรรทัดคำสั่งเทียบเท่ากับตัวเลือก "Keep" ของ setup.exe แบบกราฟิก
golimar

1
note setup.exe เรียกว่า setup-x86.exe - หรือตัวแปรขึ้นอยู่กับบิตของ cpu
ErichBSchulz

ลิงก์เสียตอนนี้คือ: cygwin.com/faq/faq.html#faq.setup.cliคุณสามารถแก้ไขสิ่งนั้นในคำตอบของคุณได้หรือไม่ ขอบคุณ
Benj

คุณไม่ต้องการสิทธิ์ผู้ดูแลระบบหากคุณใช้--no-adminสวิตช์ (เช่นเดียวกับ-B)
cdlvcdlv

13

setup.exe ของ Cygwin อย่างน้อยในรุ่น 1.7 "เบต้า" มีโหมด "ไม่ต้องใส่ข้อมูล" ในตัว ลากและวางช็อตคัต setup.exe ของคุณลงในหน้าต่างคำสั่ง (หรือเตรียมใช้งานด้วยสวิตช์) และเพิ่ม-qโหมดที่ไม่ต้องใส่ข้อมูลตาม-Pด้วยชื่อแพคเกจที่คั่นด้วยเครื่องหมายจุลภาค ดังนั้นสำหรับฉันคมติดตั้งนี้:

$ "C:\Documents and Settings\martind\Desktop\setup-1.7.exe" -q -P lynx

เฮ้มันใช้งานได้ แต่ถ้าหากฉันต้องการเพิ่มแพ็คเกจบางอย่างในเวลาติดตั้งจะทำอย่างไร?
Johnydep

1
note setup.exe เรียกว่า setup-x86.exe - หรือตัวแปรขึ้นอยู่กับบิตของ cpu
ErichBSchulz

7
setup-x86 -nq -s http://box-soft.com -P curl,git,make

หรือ

setup-x86 -nq -s http://box-soft.com -P curl -P git -P make

สิ่งนี้จะติดตั้ง cURL, git และสร้างโดยไม่มีทางลัดในโหมดเงียบ


2

ฉันพบผู้จัดการแพคเกจ 'apt like' สองคนสำหรับ cygwin หนึ่งคือสคริปต์ไพ ธ อนชื่อ cyg-apt ซึ่งคุณสามารถดาวน์โหลดได้จากhttp://www.lilypond.org/~janneke/software/cyg-aptและอีกอันคือ apt-cyg ซึ่งคุณสามารถค้นหาได้ที่http: // code google.com/p/apt-cyg/


0

มีปัญหาไก่ <=> ปัญหาไข่พร้อมคำตอบที่ยอมรับได้ หากคุณไม่ได้รับwgetหรือlynxระหว่างการติดตั้งครั้งแรกคุณจะไม่สามารถใช้งานapt-cygได้ นี่คือวิธีที่ผมติดตั้งเพื่อที่ฉันจะใช้wget apt-cyg(ใช้คุณสมบัติ CLI ของ exe เซ็ตอัพ cygwin )

# check to see if you are running 64 bit cygwin
$ uname -a
CYGWIN_NT-10.0 WINDOWS-ABMESEI 2.6.0(0.304/5/3) 2016-08-31 14:32 x86_64 Cygwin

# if you are not using 64 bit, get http://www.cygwin.com/setup-x86.exe instead of...
$ curl -o cygwin-setup.exe http://www.cygwin.com/setup-x86_64.exe
$ chmod +x cygwin-setup.exe

# now you are ready to use it according to: https://cygwin.com/faq/faq.html#faq.setup.cli
$ cygwin-setup.exe --no-desktop --no-shortcuts --no-startmenu --quiet-mode --packages wget

-1

สำหรับแพ็คเกจอย่างน้อยที่ไม่ต้องการการกำหนดค่าหลังการติดตั้งฉันได้ทำการถอดมันออกจากรูท cygwin '/' ฉันต้องการเวอร์ชันเก่าของการโค่นล้ม (1.7.14) ซึ่งผ่านเกินกว่าทั้งสองรุ่นที่จัดการโดยการตั้งค่า

ข้อได้เปรียบเพิ่มเติมคือแพคเกจกลายเป็นนอกโลกการจัดการแพคเกจ cygwin และในบัญชีดำประเภท adhoc ไม่ได้รับการปรับปรุงโดยอัตโนมัติด้วยแพคเกจใหม่ล่าสุดหากเก็บค่าเริ่มต้น

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