কিভাবে সিগুইন এর কমান্ড লাইন থেকে সিগুইন আপডেট করবেন?


73

সিগুইন থেকে মিস করা একটি প্যাকেজ অনুসন্ধান এবং ডাউনলোড করতে আমাকে প্রতিটি সময় setup.exe GUI চালানোর দরকার হয়, অনেক বার ক্লিক করুন এবং অন্যান্য বিরক্তিকর জিনিসগুলি করুন।

সিগুইন এর কমান্ড লাইন থেকে সরাসরি কি এমন একটি উপায় আছে? অনুকূল পেতে সরঞ্জাম মত।

উত্তর:


40

এখানে একটি চেহারা নিন:

অন্য কিছু থেকে, এটি নিম্নলিখিত বিকল্পগুলির তালিকা দেয় setup.exe:

Command Line Options:
 -A --disable-buggy-antivirus           Disable known or suspected buggy anti
                    virus software packages during execution.
 -C --categories                        Specify entire categories to install
 -D --download                          Download from internet
 -d --no-desktop                        Disable creation of desktop shortcut
 -h --help                              print help
 -K --pubkey                            Path to extra public key file (gpg format)
 -L --local-install                     Install from local directory
 -l --local-package-dir                 Local package directory
 -n --no-shortcuts                      Disable creation of desktop and start menu
                    shortcuts
 -N --no-startmenu                      Disable creation of start menu shortcut
 -O --only-site                         Ignore all sites except for -s
 -P --packages                          Specify packages to install
 -p --proxy                             HTTP/FTP proxy (host:port)
 -q --quiet-mode                        Unattended setup mode
 -r --no-replaceonreboot                Disable replacing in-use files on next
                    reboot.
 -R --root                              Root installation directory
 -S --sexpr-pubkey                      Extra public key in s-expr format
 -s --site                              Download site
 -U --keep-untrusted-keys               Use untrusted keys and retain all
 -u --untrusted-keys                    Use untrusted keys from last-extrakeys
 -X --no-verify                         Don't verify setup.ini signatures

তাই setup.exe -P <package name>কাজ করতে হবে। এখানে ডানদিকে সিগুইন নেই, তাই এটি প্রত্যাশিত হিসাবে এটি কাজ করে নিশ্চিত করার জন্য পরীক্ষা করুন।

একটি প্যাকেজ অনুসন্ধান করার জন্য, প্রতি:

আপনি ব্যবহার করতে পারেন cygcheck -p:

  cygcheck -p REGEXP
  ...
  -p, --package-query  search for REGEXP in the entire cygwin.com package
                       repository (requires internet connectivity)

যা আউটপুট উত্পাদন করে (উপরের সাইট থেকে উদাহরণ):

$ cygcheck -p 'libexpat.*\.a'
Found 2 matches for 'libexpat.*\.a'.

expat-1.95.7-1            XML parser library written in C
expat-1.95.8-1            XML parser library written in C

9
ক্যাভিট: আপডেটটি প্রতিস্থাপিত হলে cygwin1.dll, সিগুইন প্রোগ্রামগুলি ভুল পথে চলতে শুরু করবে এবং সিগুইন ডকুমেন্টেশনগুলি পুনরায় বুট করার সুপারিশ করবে। সুতরাং সব সিগুইন প্রোগ্রাম বন্ধ করা ভাল, তারপর setup.exeথেকে সরাসরি চালান cmd(যদি আপনি স্বয়ংক্রিয় করতে চান, একটি ব্যাচ ফাইল ব্যবহার করুন, একটি শেল স্ক্রিপ্ট ব্যবহার করবেন না)।
গিলস

ধন্যবাদ! আরেকটি জিনিস যা আমার দরকার তা অনুসন্ধান করার ক্ষমতা, কারন আমি এখনও কোন প্যাকেজ ডাউনলোড করতে চাই না জানি না। একবার আমি প্যাকেজগুলির সম্পূর্ণ তালিকাটি খুঁজে পাব আমি grepএটি অন্তত ...
পাভেল Vlasov

একটি উদাহরণ জন্য সম্পাদনা দেখুন।
icyrock.com

22

এটি সমস্ত সাইগুইন উপাদানগুলির একটি অপ্রত্যাশিত আপগ্রেড সম্পাদন করে

cd C:\cygwin
wget -N https://cygwin.com/setup-x86.exe
setup-x86.exe --no-desktop --no-shortcuts --no-startmenu --quiet-mode

আপগ্রেড cygwin1.dll কারণে সাইগুইন অ্যাপ্লিকেশনগুলি ভুল আচরণ থেকে বাধা দেওয়ার জন্য আপগ্রেড সম্পন্ন হওয়ার পরে আপনাকে পুনরায় বুট করা উচিত

--no-desktop ডেস্কটপ শর্টকাট তৈরি নিষ্ক্রিয় করুন

--no-shortcuts ডেস্কটপ তৈরি এবং মেনু শুরু অক্ষম করুন

--no-startmenu শুরু মেনু শর্টকাট তৈরি করতে অক্ষম করুন

--quiet মোড অপ্রয়োজনীয় সেটআপ মোড


প্রতিটি কমান্ড কী ব্যাখ্যা করে তা ব্যাখ্যা করার জন্য আপনি উত্তরটি প্রসারিত করবেন?
রাইস্টাফিয়ার

9
আমি বিশ্বাস করি এখন আপনাকে setup-x86_64.exe বা setup-x86.exe প্রয়োজন হতে পারে।
drescherjm

Cygwin 2.9, আমি পেতে zsh: command not found: setup.exe, কিন্তু সেটআপ exe এখানে।
টিমো

আপনি ব্যবহার করেন, তাহলে no-shortcutsকেন আপনার কাছে হবে no-desktopএবং no-startmenu?
হাশিম

খুব সহায়ক, আমি এই সম্পর্কে জানতাম না। আপনি কোন প্যাকেজটি ইনস্টল করতে পারেন তা নির্দিষ্ট করতে পারেন, যা সময় সঞ্চয়কারী। উদাহরণস্বরূপ এখানে দেখুন: gist.github.com/piotrpolak/c616455f1da8dfc2d4e101afbfdcdc8d
শ্রীধার সরনবাত

10

একটি বিকল্প সমাধান GitHub পাওয়া apt-cygস্ক্রিপ্ট ব্যবহার করা হবে ।


3
এটি নিজেই সিগুইন আপগ্রেড সমর্থন করে না, আমি মনে করি।
Thoni56

@ থমাসসিলসন আপনি কেন মনে করেন?
আন্দ্রে চ্যালেলা

1
যেহেতু আপনি এটি cygwin1.dll ব্যবহার করে একটি শেল থেকে চালাতে চান। অবশ্যই আপনি অন্য শেল ব্যবহার করতে পারেন ...
thoni56

"বাস্তব" প্রশ্নটি আপডেট হয়নি, তবে "সেটআপ UI ব্যবহার না করেই একটি প্যাকেজ কীভাবে ইনস্টল করবেন", এবং এটি আসল উত্তর ... সত্যিই, সেটআপের চেয়েও অনেক ভাল-পি হতে হবে, এটি আপনাকে কী বলবে তা জানাবে না, এবং শুধুমাত্র আপনার বিশ্বাস অন্ধকারে সেটআপ করা না
থেসোজার

7

সিগুইনের সেটআপের অবস্থান পরিবর্তন এবং বিভক্ত বলে মনে হচ্ছে। এখন আপনি প্রয়োজন হয়

wget http://cygwin.com/setup-x86.exe

অথবা

wget http://cygwin.com/setup-x86_64.exe

আমার কাছে একটি স্ট্যাটাস আছে। bin\wget.exe --timestamping http://www.cygwin.com/setup-x86_64.exe && start setup-x86_64.exeনিশ্চিতভাবেই আমি সর্বশেষ ইন্সটলারটি চালাচ্ছি এবং শুধুমাত্র একটি নতুন সংস্করণ (এটি কি - টিমস্ট্যাম্পিং করে) তা ইনস্টলার ডাউনলোড করুন, তাহলে ব্যাট ফাইলটি শুরু হয়
হানশ্রনিক

4

ইনস্টলার পারবেন কমান্ড লাইন (থেকে এটা উঁচু শেল , দয়া করে):

setup-x86.exe --root c:\cygwin -q --upgrade-also

64 বিট সংস্করণের জন্য:

setup-x86_64.exe --root c:\cygwin -q --upgrade-also

বিবরণ:

  • c:\cygwinআপনার CygWin এর মূল ইনস্টলেশন ডিরেক্টরি দিয়ে প্রতিস্থাপন করুন ।
  • কোনও সিগওয়িন শেল বা প্রোগ্রাম বন্ধ করার পরামর্শ দেওয়া হয়েছে (অর্থাত: net stop sshdযদি আপনি OpenSSH ইনস্টল করেন)।
  • পরামিতি -qবাধ্যতামূলক নয়।

GUI (DOS শেল) অথবা এমনকি দূরবর্তী কনসোল (এসএসএইচ বা টেলনেট) এর মাধ্যমে কাজ করে। PowerShell পরীক্ষা করা হয়নি (কেউ করেনি?)।

সঠিক আপডেট আউটপুট উদাহরণ :

G:\Instalac\CygWin\v2.852>Starting cygwin install, version 2.852
User has backup/restore rights
Current Directory: g:\Instalac\CygWin\Packages
Could not open service McShield for query, start and stop. McAfee may not be installed, or we don't have access.
root: c:\cygwin system
Selected local directory: g:\Instalac\CygWin\Packages
net: Direct
Loaded cached mirror list
get_url_to_membuf http://cygwin.com/mirrors.lst
getUrlToStream http://cygwin.com/mirrors.lst
site: http://ftp.hawo.stw.uni-erlangen.de/cygwin/
get_url_to_membuf http://ftp.hawo.stw.uni-erlangen.de/cygwin/x86/setup.bz2
getUrlToStream http://ftp.hawo.stw.uni-erlangen.de/cygwin/x86/setup.bz2
get_url_to_membuf http://ftp.hawo.stw.uni-erlangen.de/cygwin/x86/setup.bz2.sig
getUrlToStream http://ftp.hawo.stw.uni-erlangen.de/cygwin/x86/setup.bz2.sig
Changing gid back to original
Visited: 122 nodes out of 4415 while creating dependency order.
Dependency order of packages: _autorebase base-cygwin cygwin _update-info-dir libgcc1 libiconv2 libintl8 alternatives libattr1 li
bgmp10 coreutils libstdc++6 terminfo libncursesw10 libreadline7 bash findutils sed base-files libuuid1 libblkid1 libsmartcols1 zl
ib0 util-linux bashdb zlib-devel binutils libbz2_1 bzip2 libffi6 libp11-kit0 libtasn1_6 p11-kit p11-kit-trust ca-certificates cry
pt libmpfr4 gawk editrights libpcre1 grep libsigsegv2 diffutils csih cygrunsrv popt libpopt0 cygutils cygwin-devel dash file liba
tomic1 libcloog-isl4 libgomp1 libisl10 libmpc3 libquadmath0 libssp0 w32api-headers w32api-runtime windows-default-manifest gcc-co
re libexpat1 liblzma5 libdb4.8 libgdbm4 libopenssl100 libsqlite3_0 libcharset1 libiconv libintl-devel libuuid-devel python gdb li
bargp getent groff gzip hostname info ipc-utils libncurses10 less libapr1 libiodbc2 libmysqlclient18 libcom_err2 libkrb5support0
libk5crypto3 libkrb5_3 libgssapi_krb5_2 libsasl2_3 libopenldap2_4_2 perl openssl libpq5 libaprutil1 libedit0 libproxy1 libneon27
libpipeline1 libserf1_0 login lynx make man-db mintty nano ncurses openssh procps psmisc rebase run screen subversion xz tar tzco
de vim-minimal which zsh
Changing gid to Administrators
Ending cygwin install

যদি, আপডেটের সময়, আপনার মত সমস্যা ছিল :

The following DLLs couldn't be rebased due to errors:
  /usr/bin/cygcrypt-0.dll

বা:

The following DLLs couldn't be rebased because they were in use:
  /usr/bin/cygcrypt-0.dll

বা:

ReBaseImage (/usr/bin/cygcrypt-0.dll) failed with last error = 6

... তাহলে আপনি ইনস্টলেশনের পরে রিবেস করতে হবে:

1.- সব CygWin শেল, প্রোগ্রাম এবং সেবা বন্ধ করুন।
2.- c:\CygWin\bin\ash.exeঅ্যাডমিন (উচ্চতর) হিসাবে খুলুন ।
3.- রান /bin/rebaseall


1
আমার জন্য কাজ কর. ধন্যবাদ। সর্বশেষ সেটআপ-x86.exe বা সেটআপ-x86_64.exe প্রথমে ডাউনলোড করতে হবে। এবং cmd চালান অ্যাডমিনিস্ট্রেটর হিসেবে
মার্সলো

2
অ্যাডমিনিস্ট্রেটর হিসাবে সেটআপ করার জন্য প্রায় কোন কারণ নেই অথবা যদি আপনি সমস্ত ব্যবহারকারীর জন্য ইনস্টল না করেন তবে --root- এর অর্থ হল সাইগুইন রুট এডমিনের কাছে লিখতে হবে ...)। setup-86[_x64].exe -Bবর্তমান ব্যবহারকারী হিসাবে চালানো। আপনি প্রয়োজন হলে একটি উইন্ডোজ সেবা হিসাবে cygrunsrv ইনস্টল করার জন্য উচ্চতর করতে পারেন।
কাউববার

1

আমি খুব আগে এই প্রয়োজন অনুভূত। আমি কেবল ইনস্টলার ফাইলটি ডাউনলোড করতে ব্যবহার করতাম যাতে আমি এটি ইনস্টল করতে পারি তবে মাঝে মাঝে সিগুইন আপডেট হয়ে গেলে, ইনস্টলার ফাইলটি পুরনো হয়ে যাবে। আমি একটি PowerShell স্ক্রিপ্ট তৈরি আপ শেষ যা স্বয়ংক্রিয় elevates, ইনস্টলার ডাউনলোড, এবং একটি অপ্রত্যাশিত আপগ্রেড চালায়। আমি এটা আমার ডেস্কটপে বসতে এবং ঠিক ডান ক্লিক করুন এবং "PowerShell সঙ্গে চালান" করতে পারেন এবং এটি আমার সব সিগুইন প্যাকেজ একটি ইনসেস আপগ্রেড সঞ্চালন করা হবে। একমাত্র ইউজার ইন্টারঅ্যাকশন প্রয়োজন ইউএসি এবং খুব শেষে প্রম্পট "চলতে কোন কী চাপুন" জন্য। এটি কমান্ড লাইন থেকেও চালানো যেতে পারে, যদিও এটি একটি স্ক্রিপ্ট।

আমি এখানে কিছু সময়ের জন্য কোডটি পেয়েছি: http://pastebin.com/wMRctAUL

আমি নীচের এটি অনুলিপি। আমি কয়েক স্ট্যাকওভারফ্লো প্রশ্ন এবং সেইসাথে সহায়তার সাথে এটি লিখেছি। :) এটি চালানোর জন্য আপনাকে যা করতে হবে তা হল আপনার মেশিনে স্থানীয় Powershell স্ক্রিপ্ট সক্ষম করা । এটি একটি সম্পূর্ণ, উইন্ডোজ নেটিভ সমাধান।

# Get the ID and security principal of the current user account
$myWindowsID=[System.Security.Principal.WindowsIdentity]::GetCurrent()
$myWindowsPrincipal=new-object System.Security.Principal.WindowsPrincipal($myWindowsID)

# Get the security principal for the Administrator role
$adminRole=[System.Security.Principal.WindowsBuiltInRole]::Administrator

# Check to see if we are currently running "as Administrator"
if ($myWindowsPrincipal.IsInRole($adminRole)) {
   # We are running "as Administrator" - so change the title and background color to indicate this
   $Host.UI.RawUI.WindowTitle = $myInvocation.MyCommand.Definition + "(Elevated)"
   $Host.UI.RawUI.BackgroundColor = "DarkBlue"
   clear-host
}
else {
   # We are not running "as Administrator" - so relaunch as administrator

   # Create a new process object that starts PowerShell
   $newProcess = new-object System.Diagnostics.ProcessStartInfo "PowerShell";

   # Specify the current script path and name as a parameter
   $newProcess.Arguments = $myInvocation.MyCommand.Definition;

   # Indicate that the process should be elevated
   $newProcess.Verb = "runas";

   # Start the new process
   [System.Diagnostics.Process]::Start($newProcess);

   # Exit from the current, unelevated, process
   exit
}

# Run your code that needs to be elevated here
(new-object System.Net.WebClient).DownloadFile('http://cygwin.com/setup-x86_64.exe','setup-x86_64.exe')

if (!$?) {
   Write-Host "Something wrong happened when downloading the Cygwin installer."
   Write-Host -NoNewLine "Press any key to continue..."
   $null = $Host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")
   exit
}

$p = Start-Process .\setup-x86_64.exe -ArgumentList "--upgrade-also --quiet-mode" -wait -NoNewWindow -PassThru

if ($p.ExitCode -ne 0) {
   Write-Host "Cygwin setup failed with an error!"
}

Remove-Item .\setup-x86_64.exe

Write-Host -NoNewLine "Press any key to continue..."
$null = $Host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")

0

@ জনি এর উত্তরটি প্রসারিত করছে https://superuser.com/a/624731/110335

আমি যে বিরক্তির মুখোমুখি হয়েছিলাম, সেটি হল যে .ini ফাইলটি সিগুইনের সেটআপের একটি নতুন সংস্করণ থেকে এসেছে। Exe

আমি নিজে নিজে নিম্নলিখিত আপডেটের স্ক্রিপ্টটি স্ব-আপডেটে লিখেছিলাম, এবং তারপরে যা প্রয়োজন তা আপডেট করে নিলাম।

cygwinSetup64.cmd

@echo on
cd /d e:\cygwin
move /y cygwinSetup-x86_64.exe   setup-x86_64.exe
wget --progress=dot -S -N  http://cygwin.com/setup-x86_64.exe
move /y  setup-x86_64.exe cygwinSetup-x86_64.exe 

cygwinSetup-x86_64.exe   --no-desktop --no-shortcuts --no-startmenu --quiet-mode


0

নিম্নলিখিত সামগ্রীর সাথে "cygwin-update.bat" হিসাবে একটি ব্যাচ ফাইল তৈরি করুন এবং এটি আপনার পথে রাখুন:

@echo off
"%~dp0\gnubin\wget.exe" --no-check-certificate https://www.cygwin.com/setup-x86_64.exe -O C:\cygwin64\setup-x86_64.exe
cd /d C:\cygwin64
setup-x86_64.exe -q -g
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.