컴퓨터에 Spotify , Adobe Reader , Chrome , Firefox , 7-Zip , VLC Media Player(VLC Media Player…the list) 같은 앱이 있고 목록이 계속 표시되며 모두 무료입니다. 우리는 프리웨어(freeware) 없이 무엇을 할 것인가? 그러나 이러한 앱은 보안 허점을 수정하고 새롭고 유용한 기능을 도입하기 위해 자주 업데이트해야 합니다. 업데이트는 편리한 시간에 이루어지지 않습니다.
바로 여기에 Chocolatey 가 등장합니다. 무료 앱인 Chocolatey 를 사용하여 소프트웨어를 최신 상태로 유지하십시오. 쉽고 빠르고 간단하며 무료라고 언급 했습니까? 사실이라고 하기에는 너무 좋은 것 같지만 사실입니다. (Seems)하지만 초콜릿(Chocolatey) 은 무엇 입니까?
초콜렛이란?
Windows 명령줄(Windows command line) , PowerShell 또는 Linux 명령줄(Linux command line) 에서 작업을 수행하지 않은 경우 Chocolatey 의 개념이 약간 이상할 수 있습니다. Chocolatey 는 (Chocolatey)소프트웨어를 관리(manage software) 하는 데 도움이 되는 기계 수준 프로그램입니다 .
기계 수준이란 작업을 수행하는 데 도움이 되는 그래픽 사용자 인터페이스(user interface) 가 없다는 의미입니다 . 모든 명령을 입력해야 합니다. 두려워 (Don)하지(t let) 마십시오 ! 당신이 단어를 쓸 수 있다면, 당신은 이것을 마스터 할 수 있습니다.
어떻게 초콜릿을 설치합니까?
Chocolatey 가 작동해야 하는 몇 가지 사항이 있습니다. 프로그램이 작동하기 위해 Windows(Windows) 기능 의 다른 프로그램이 필요할 때 필요한 프로그램을 종속성이라고 합니다. Chocolatey 의 종속성은 최소한 다음을 사용해야 합니다.
- 윈도우 7 이상
- PowerShell 버전 2 이상
- .NET Framework 4 이상
- 또한 컴퓨터에 대한 관리자 액세스 권한(administrator access) 이 있어야 합니다.
Windows 7 이상 이 있다면 이미
PowerShell 버전 2(PowerShell version 2) 이상이 있는 것입니다. .NET Framework 4(Framework 4) 가 있는지 확실하지 않은 경우 걱정하지 마십시오. Chocolatey 를 설치할 때 .NET 4가 없는 경우 Chocolatey
가 설치합니다.
시작 메뉴(Start Menu) 의 검색 상자 에 PowerShell 을 입력하여 PowerShell을 엽니다 . Windows PowerShell App 이라는 결과가 표시되어야 합니다 .
그것을 마우스 오른쪽 버튼으로 클릭하고 관리자 권한으로 실행 을(Run as Administrator) 선택하십시오 . 이렇게 하는 것을 상승된 인스턴스에서 PowerShell을 실행하는 것으로 알려져 (elevated instance)있습니다(PowerShell) . 관리자 권한으로 승격되었습니다. PowerShell 창이(PowerShell window) 열립니다 .
PowerShell 창(PowerShell window) 에서 다음 명령 을 입력하거나 복사(type or copy) 하여 붙여넣습니다.
Set-ExecutionPolicy Bypass -Scope Process -Force; iex
((New-Object
System.Net.WebClient).DownloadString(‘https://chocolatey.org/install.ps1’))
Set-ExecutionPolicy Bypass -Scope Process -Force
부분은 다음 작업에만 제한된 실행 정책을 적용하고 싶지 않다고 PowerShell 에 알려줍니다. (PowerShell)PowerShell 은 기본적으로 서명된 프로세스만 실행하도록 허용합니다. 가장 높은 보안 설정(security setting) 입니다. 그러나 우리는 Chocolatey 를 설치하는 이 서명되지 않은 프로세스를 실행해야 합니다 .
명령 의 iex ((New-Object
System.Net.WebClient).DownloadString(‘https://chocolatey.org/install.ps1’))
부분은 PowerShell 에 (PowerShell)Chocolatey 웹 사이트(Chocolatey website) 로 이동 하여 설치를 다운로드하도록 지시합니다. .ps1 스크립트를 만들고 실행합니다. 그것은 실제로
Chocolatey 를 설치하는 부분입니다 .
많은 텍스트가 날아가는(text fly) 것을 볼 수 있습니다. 그냥(Feel) 돌아가서 방금 무슨 일이 일어났는지 알 수 있도록 읽으십시오. choco /? 명령을 실행할 것을 제안합니다 . 기능 목록을 보려면 설치가 제대로 되었는지 확인하는 좋은 방법입니다. 계속해서 해당 명령을 실행하십시오.
또 다른 텍스트 더미가 지나가며 읽고 이해하기에도 좋습니다. 마지막에 Chocolatey 설치가 작동하면 다음과 같은 내용이 표시됩니다. 초록색 부분에는 방금 설치한 버전이 나열되어 있습니다.
Chocolatey로 소프트웨어 설치하기
소프트웨어 를 업데이트하기 전에 Chocolatey 로 소프트웨어를 설치하는 방법을 간단히 살펴보겠습니다
.
https://chocolatey.org/packages 페이지로 이동하여 Chocolatey 를 통해 사용할 수 있는 소프트웨어를 검색합니다 . 패키지라고 하는 것을 볼 수 있습니다.
설치하려는 패키지를 찾습니다. 이 예에서는 Malwarebytes Anti-Malware를(Malwarebytes Anti-Malware) 사용 합니다. 컴퓨터에 Malwarebytes가 있는 것이 항상 좋습니다.
PowerShell 의 상승된 인스턴스에서 choco install Malwarebytes 명령을 사용합니다 . 그게 다야 설치가 시작됩니다. 다음 텍스트와 함께 중지됩니다.
Chocolatey 가 소프트웨어를 관리 하도록 허용하는 것이 편 하다면 이 설치가 완료되면 choco 기능 enable -n allowGlobalConfirmation(choco feature
enable -n allowGlobalConfirmation) 명령을 사용하여 향후 설치 및 업데이트를 자동화할 수 있습니다. 지금은 A 를 사용 하여 설치를 완료하겠습니다.
Malwarebytes 가 다운로드되고 설치를 시작하는 것을 볼 수 있습니다.
약 1분 안에 Malwarebytes 가 다운로드되어 추가 작업 없이 설치됩니다.
Chocolatey로 소프트웨어 업데이트
소프트웨어가 설치되었으므로 이제 Chocolatey 로 업데이트를 시도할 수 있습니다 . 다시 말하지만 (Again)PowerShell 을 관리자(Administrator) 로 열어야 합니다 . 그런 다음 choco upgrade Malwarebytes(choco upgrade malwarebytes) 명령을 실행할 수 있습니다 .
그러면 Chocolatey 가 나가서 업데이트가 있는지 확인한 다음 업데이트합니다. Malwarebytes를 방금 설치했으므로 하나의 패키지가 업데이트되었음을 표시합니다. 괜찮습니다.
Chocolatey 로 여러 패키지를 설치했다면 choco upgrade all -y 한 줄 명령으로 모두 업데이트할 수 있습니다 .
그만큼 어렵습니다. 이제 Chocolatey(Chocolatey) 로 소프트웨어를 자동으로 업데이트하기 위해 해야 할 일은 일정에 따라 해당 명령을 실행하는 것입니다.
Chocolatey 로 소프트웨어 자동 업데이트(Update Software)
다음 단계는 wither Notepad 또는 PowerShell ISE( 통합 스크립팅 환경(Integrated Scripting Environment) )를 사용하여 수행할 수 있습니다. 모든 Windows 버전에 PowerShell ISE 가 있는 것은 아니므로 (PowerShell ISE)메모장(Notepad) 을 사용하여 이 예제를 수행합니다 .
메모장을 엽니다. choco upgrade all -y 명령 을 메모장에 복사합니다 .
upgrade-ChocoPackages.ps1 과 같은 이름을 지정하여 PowerShell 스크립트(PowerShell script) 로 저장합니다 . .ps1 확장자는 Windows에 이것이 PowerShell 스크립트(PowerShell script) 임을 알려줍니다 .
파일 형식을 Text Documents (*.txt) 에서 All Files (*.*).그렇지 않으면 Windows 에서 ChocoPackages.ps1.txt를 업그레이드(upgrade-ChocoPackages.ps1.txt) 하고 메모장 파일(Notepad file) 이라고 생각 합니다 .
Windows에는 작업 스케줄러(Task Scheduler) 라는 훌륭한 기능이 있습니다. 일반 가정 사용자(home user) 는 아마 그것에 대해 알지 못할 것입니다. 그러나 작업 스케줄러(Task Scheduler) 는 이미 많은 일을 정기적으로 실행하게 하는 기능입니다.
시작 메뉴(Start Menu search) 에서 작업 스케줄러(Task Scheduler) 를 검색 합니다 . 결과로 나타나면 클릭하십시오(Click) .
작업 스케줄러(Task Scheduler) 가 열리면 창의 왼쪽 상단 영역에 있는 작업 스케줄러 라이브러리(Task Scheduler Library) 를 클릭합니다 . 그러면 현재 컴퓨터에 설정된 모든 예약된 작업이 표시됩니다.
오른쪽 상단 영역 의 작업 창에서 작업 (Actions)만들기(Create Task…) 를 클릭합니다 . 나중에 인수 문을 사용할 것이기 때문에 Create Basic Task(Create Basic Task isn) 는 이 상황에 적합하지 않습니다.
열리는 창의 일반(General) 탭에서 작업에 Choco Upgrade All 과 같은 이름을 지정한 다음 Chocolatey가 설치한 모든 소프트웨어 업데이트( Updates all software installed by Chocolatey) 와 같은 설명(Description ) 을 지정 합니다. 현재 사용자 계정(user account) 이 컴퓨터 의 관리자 계정(administrator account) 이 아닌 경우 사용자 또는 그룹 변경(Change User or Group) 버튼을 사용하여 관리자 계정(Administrator account) 을 선택하십시오 .
또한 관리자 계정(Administrator account) 의 비밀번호 도 알아야 합니다. 사용자가 로그온했는지 여부에 관계없이 실행 이 선택되어 (Run whether the user is logged on or not)있는지(Make) 확인 합니다 . 이렇게 하면 컴퓨터에 있지 않아도 스크립트를 실행할 수 있으며 작업을 수행하는 데 필요한 모든 권한을 갖게 됩니다.
트리거(Triggers) 탭 은 작업을 실행할 때 알려주는 곳입니다. 이를 위해서는 일주일에 한 번이면 충분합니다. 이 예에서는 매주 일요일(Sunday) 오전 1시에 실행되도록 설정되어 있습니다. 최상의 성능을 위해 컴퓨터를 사용하지 않을 시간을 선택하십시오.
다음보다 오래 실행되는 경우 작업 중지(Stop the task if it runs longer than:) 도 선택 하고 기간을 2시간으로 변경하는 것이 좋습니다 . 원하는 대로 조정할 수 있습니다. 트리거가 적용되도록 하려면 하단 의 Enabled 확인란을 선택해야 합니다.(Enabled)
작업(Actions) 탭 으로 이동하여 작업 에 수행하려는 작업을 알려줍니다. 작업(Action) 은 기본적으로 프로그램 시작(Start a program) 으로 설정됩니다 . 그것이 우리가 원하는 것이므로 그냥 두십시오. Program/script 필드에 powershell.exe를 입력합니다 . 이렇게 하면 Windows에서 PowerShell 스크립트(PowerShell script) 를 실행할 것임을 알 수 있습니다
.
인수 추가(Add arguments) 필드에 다음 인수를 입력하십시오 .
-noprofile - PowerShell 프로필(PowerShell profile) 스크립트가 실행되는 것을 방지 하고 원하는 스크립트만 실행하도록 지시합니다.
-ExecutionPolicy Bypass - 스크립트 실행이 활성화되었는지 확실하지 않은 경우 인수에 이것을 포함하는 것이 좋습니다. 스크립트가 실행되도록 합니다.
-file - 이것은 작업 스케줄러에게 다음에 나오는 것이 (-file )PowerShell 이 실행 되기를 원하는 파일의 경로임을 알려주는 인수입니다
. 이 예에서 스크립트는 C:\Scripts\upgrade-ChocoPackages.ps1 에 저장되었습니다 . 컴퓨터에 따라 다를 수 있으므로 적절하게 조정하십시오. 파일 경로에 공백이 있는 이름이 있는 경우 전체 경로를 따옴표 안에 넣어야 합니다.
전체 인수는 다음과 같습니다 -noprofile
-executionpolicy bypass -file C:\Scripts\upgrade-ChocoPackages.ps1
조건(Conditions ) 탭 에는 스크립트 실행 방법에 대해 설정할 수 있는 더 많은 옵션이 있습니다. 어떤 것을 적용하고 싶은지 살펴보십시오. 이 예에서는 컴퓨터가 AC 전원에 있는 경우에만 작업 시작(Start the task only if the computer is on AC power) 으로 설정되고 배터리가 소모 되지 않도록 컴퓨터가 배터리 전원으로 전환되는 경우 중지 로 설정됩니다.(Stop if the computer switches to battery power )
(Wake the computer to run this task)컴퓨터가 절전 모드인지 여부에 관계없이 작업이 실행되도록 하려면 이 작업을 실행하기 위해 컴퓨터 깨우기 가 선택됩니다.
설정(Settings ) 탭에서 작업이 완료되면 수동으로 테스트할 수 있도록 요청 시 작업 실행 허용 상자를 선택하는 것이 좋습니다 . (Allow
task to be run on demand)나머지에 대한 기본 선택은 괜찮습니다.
확인(OK) 을 클릭 하여 예약된 작업 생성을 완료합니다. 일반 탭에서 선택한 사용자의 이름이 포함된 창이 팝업되어야 합니다. 사용자의 암호를 입력하고 확인 (OK)을 클릭(user and click) 해야 합니다 . 이것은 실제로 작업을 실행할 권한이 있음을 Windows에 알려줍니다.
이제 기본 작업 스케줄러 창(Task Scheduler window) 으로 돌아갑니다 . 새 작업을 찾으십시오. 작업 을 마우스 오른쪽 버튼으로 클릭하고 실행 을 (Run )선택(task and select) 하여 테스트합니다.
작업 상태가 Running(Running) 으로 변경되는 것을 제외하고는 아무 의미 있는 일이 발생하지 않습니다. 1분 정도 후에 마지막 실행 시간(Last Run Time ) 도 작업 실행을 시작할 때 타임스탬프로 변경되는 것을 볼 수 있습니다.
오류 메시지가 표시되지 않으면 작업이 정상일 것입니다. 작업 스케줄러 창(Task Scheduler window) 을 닫고 Chocolatey 로 설치한 소프트웨어를 수동으로 다시 업데이트해야 하는 것에 대해 걱정하지 마십시오 .
모두 완료되었습니다!
이것을 설정하는 것은 많은 작업처럼 보일 수 있습니다. 이것을 고려하십시오: 이것을 설정하는 데 10분에서 30분 정도 소요되었습니다. 이것을 사용하여 10개의 프로그램을 업데이트하고 각 프로그램이 매월 업데이트 프로세스를 수행하는 데 약 6분이 걸린다면 30분에서 50분 사이를 절약한 것입니다.
절약된 시간에 이미 앞서고 있습니다. 1년 동안 6~10시간의 시간을 절약할 수 있습니다. 10분이나 15분이 아닌 1~2분 안에 프로그램을 설치 하기 위해 Chocolatey 를 사용하는 방법을 알면 절약되는 시간은 포함되지 않습니다 .
How to Automatically Update Free Software with Chocolatey
You’ve got apps on your computer like Spotify, Adobe Rеader, Chrome, Firefox, 7-Zip, VLC Media Рlayer…the list goes on and they’re all free. What would wе do without freeware? Yet, these apps require frequent updates to fix security holes and introduce new and useful features. Updates never happen at a convenient time.
That’s where Chocolatey comes into play. Use the free app Chocolatey to keep your software up to date. It’s easy, fast, simple, and did we mention free? Seems too good to be true, yet it is. But what is Chocolatey?
What is Chocolatey?
If you haven’t done things in the Windows command line, PowerShell, or Linux command line, the concept of Chocolatey can be a bit weird. Chocolatey is a machine-level program that helps you manage software.
Machine-level meaning that there isn’t a graphical user interface that helps you do things. All the commands must be typed. Don’t let that scare you away! If you can write words, you can master this.
How do I Install Chocolatey?
There are a couple things Chocolatey needs to work. When a
program needs other programs of Windows features to work, those needed programs
are referred to as dependencies. Chocolatey’s dependencies are you must be
using at least:
- Windows 7 or newer
- PowerShell version 2 or newer
- .NET Framework 4 or newer
- Plus, you must have administrator access on your computer
If you’ve got Windows 7 or newer, you’ve already got
PowerShell version 2 or newer. If you aren’t sure if you have .NET Framework 4,
don’t worry. When installing Chocolatey, if you don’t have .NET 4, Chocolatey
will install it for you.
Open PowerShell by typing in the Start Menu’s search
box PowerShell. You should see a result come up named Windows PowerShell App.
Right-click on that and select Run as Administrator.
Doing this is known as running PowerShell in an elevated instance. It’s
elevated to the Administrator’s privileges. The PowerShell window will open.
In the PowerShell window, type or copy and paste the command:
Set-ExecutionPolicy Bypass -Scope Process -Force; iex
((New-Object
System.Net.WebClient).DownloadString(‘https://chocolatey.org/install.ps1’))
The Set-ExecutionPolicy Bypass -Scope Process -Force
part tells PowerShell that you don’t want to enforce the restricted execution
policy for just this next thing. PowerShell, by default, will only allow signed
processes to run. It’s the highest security setting. But we need to run this
unsigned process of installing Chocolatey.
The iex ((New-Object
System.Net.WebClient).DownloadString(‘https://chocolatey.org/install.ps1’))
part of the command tells PowerShell to go to the Chocolatey website, download
the install.ps1 script, and run it. That’s the part that really installs
Chocolatey.
You’ll see a bunch of text fly by. Feel free to go back and
read it so you know what just happened. At the end, it suggests that you run
the command choco /? to see a list of functions. That’s a good way to
make sure your install worked. Go ahead and run that command.
Another pile of text will fly by, which is also good to read
and understand. At the end, if your install of Chocolatey worked, you’ll see something
like the following, where the green part lists what version you’ve just
installed.
Installing Software with Chocolatey
Let’s have a quick look at installing software with
Chocolatey before we get to updating software with it.
Go to the page https://chocolatey.org/packages to browse through the software that is available via Chocolatey. You’ll see that they are referred to as packages.
Find a package that you’d like to install. For this example, we’ll use Malwarebytes Anti-Malware. It’s always good to have Malwarebytes on your computer.
In an elevated instance of PowerShell, use the command choco
install malwarebytes. That’s it. The install will begin. It will stop with
the following text:
If you’re comfortable allowing Chocolatey to manage your
software, then when this install is done, we should use the choco feature
enable -n allowGlobalConfirmation command so we can automate installations
and updates in the future. For now, let’s just use A to complete the
installation.
You’ll see that Malwarebytes is downloading and then starts installing.
In about a minute, Malwarebytes will be downloaded and installed without any further work for you.
Update Software with Chocolatey
Now that we’ve got some software installed, we can try updating it with Chocolatey. Again, you need PowerShell open as Administrator. Then you can run the command choco upgrade malwarebytes.
That will make Chocolatey go out and see if there’s an update and then update it. We just installed Malwarebytes, so it will show that zero out one packages were updated. That’s okay.
If you’ve installed several packages with Chocolatey, you
can update them all with a one-line command: choco upgrade all -y.
That’s as hard as it gets. Now what we must do to
automatically update software with Chocolatey is to somehow make that command run
on a schedule.
Automatically Update Software with Chocolatey
The next step you can do using wither Notepad or PowerShell
ISE (Integrated Scripting Environment). We’ll do this example using Notepad as
not all Windows versions have the PowerShell ISE.
Open Notepad. Copy the command choco upgrade all -y into
Notepad.
Save that as PowerShell script by naming it something like upgrade-ChocoPackages.ps1. The .ps1 extension tells Windows that this is a PowerShell script.
Change the file type from Text Documents (*.txt) to All Files (*.*). If you don’t, Windows will make it upgrade-ChocoPackages.ps1.txt and think it’s just a Notepad file.
Windows comes with a great feature called Task Scheduler.
The average home user probably doesn’t know about it, but Task Scheduler is the
feature that already makes a lot of things run on a regular basis.
In Start Menu search on Task Scheduler. Click on it when it
comes up as a result.
When Task Scheduler opens, click on Task Scheduler Library in the top-left area of the window. This will show you all the scheduled tasks currently set up on your computer.
In the Actions pane in the top-right area, click on Create Task…. Create Basic Task isn’t suitable for this situation, as we’ll be using argument statements later.
In the window that opens, in the General tab, give the task a name like Choco Upgrade All and then a Description like Updates all software installed by Chocolatey. If your current user account is not an administrator account on your computer, use the Change User or Group button to select the Administrator account.
You’ll also need to know the Administrator account’s password. Make sure Run whether the user is logged on or not is selected. This will allow the script to run even if you’re not on your computer and it will have all the privileges it needs to do the job.
The Triggers tab is where you tell the task when you want it to run. For this, once a week should be plenty. In our example, it’s set to run every Sunday at 1:00 a.m. Pick a time when you’re not likely to be using your computer, for best performance.
It’s recommended to also check Stop the task if it runs longer than: and change the duration to 2 hours. You can adjust that as you’d like. To allow the trigger to apply, you must check the Enabled box at the bottom.
Over to the Actions tab, and we’ll tell the task what
we want it to do. The Action will be defaulted to Start a program.
That is what we want so just leave that. In the Program/script field,
type powershell.exe. This lets Windows know you’re going to be running a
PowerShell script.
In the Add arguments field, enter the following
arguments.
-noprofile – This prevents PowerShell profile scripts
from running and tells it to just run the script that you want.
-ExecutionPolicy Bypass – If you’re not sure if
script execution was enabled, it’s good to have this in the arguments. It will
ensure the script runs.
-file – This is the argument that tells Task
Scheduler that whatever follows next is the path to the file that we want
PowerShell to run. In our example, the script was saved to C:\Scripts\upgrade-ChocoPackages.ps1.
It may be different on your computer, so adjust accordingly. If the path to
your file has any names with spaces in them, you’ll need to put the entire path
inside of quotes.
The full argument will look like -noprofile
-executionpolicy bypass -file C:\Scripts\upgrade-ChocoPackages.ps1
On the Conditions tab, there are more options we can set on how the script is to run. Look at them to see which ones you’d like to apply. For this example, it is set to Start the task only if the computer is on AC power and Stop if the computer switches to battery power to ensure we’re not running down the battery.
Wake the computer to run this task is selected to ensure the task runs, whether the computer is in sleep mode or not.
In the Settings tab, it’s recommended to check the Allow
task to be run on demand box, so that we can manually test the task when
we’re done. The default selections for the remainder are fine.
Click OK to finish creating the scheduled task. A
window should pop up with the name of the user you selected back on the General
tab. You must enter the password for the user and click OK. This tells
Windows that you do, indeed, have the authority to run the task.
Now you’re back to the main Task Scheduler window. Find your
new task. Right-click on the task and select Run to test it.
You won’t see anything significant happen, except the status
of the task will change to Running. In a minute or so, you should see
the Last Run Time also change to the timestamp when you started running
the task.
If you didn’t get any error messages, the task should be
fine. Close the Task Scheduler window and don’t worry about having to manually
update any of the software you installed with Chocolatey again.
All Done!
It may seem like a lot of work to set this up. Consider this: it took you somewhere between 10 and 30 minutes to set this up. If you’re using this to update 10 programs, and each program takes about 6 minutes to go through the updating process every month, you’ve saved yourself between 30 and 50 minutes.
You’re already ahead in time saved. Over the course of a year, that could be 6 to 10 hours of time saved. That’s not including the time saved by knowing how to use Chocolatey to install programs in a minute or two instead of 10 or 15 minutes.