ವೈಶಿಷ್ಟ್ಯಗಳು
ccam ಅನ್ನು ಅಪ್ಡೇಟ್ ಮಾಡುವುದು
ಈ ಪುಟವನ್ನು ಇಂಗ್ಲಿಷ್ನಿಂದ ಯಂತ್ರದ ಮೂಲಕ ಅನುವಾದಿಸಲಾಗಿದೆ. ತಿದ್ದುಪಡಿಗಳಿಗೆ ಸ್ವಾಗತ. ಈ ಪುಟವನ್ನು GitHub ನಲ್ಲಿ ಸಂಪಾದಿಸಿ
ccam update GitHub ನಿಂದ ccam ಬಿಡುಗಡೆಯನ್ನು ಡೌನ್ಲೋಡ್ ಮಾಡುತ್ತದೆ, ಅದನ್ನು ಬಿಡುಗಡೆಯ checksums.txt ಜೊತೆ ಪರಿಶೀಲಿಸುತ್ತದೆ, ಮತ್ತು ಚಾಲನೆಯಲ್ಲಿರುವ ಬೈನರಿಯನ್ನು ಒಂದೇ rename ಮೂಲಕ ಬದಲಾಯಿಸುತ್ತದೆ. ನೀವು ccam ಅನ್ನು ಇನ್ಸ್ಟಾಲ್ ಸ್ಕ್ರಿಪ್ಟ್ ಮೂಲಕ ಅಥವಾ ಆರ್ಕೈವ್ನಿಂದ ಇನ್ಸ್ಟಾಲ್ ಮಾಡಿದ್ದರೆ ಇದನ್ನು ಬಳಸಿ. ccam ತಾನಾಗಿಯೇ ಎಂದಿಗೂ ಅಪ್ಡೇಟ್ಗಳಿಗಾಗಿ ಪರಿಶೀಲಿಸುವುದಿಲ್ಲ: ಈ ಕಮಾಂಡ್ ಮಾತ್ರ GitHub ಅನ್ನು ಸಂಪರ್ಕಿಸುತ್ತದೆ, ಹೀಗಾಗಿ ಉಳಿದ ಎಲ್ಲಾ ಕಮಾಂಡ್ಗಳು ಆಫ್ಲೈನ್ನಲ್ಲೂ ಅದೇ ರೀತಿ ಕೆಲಸ ಮಾಡುತ್ತವೆ.
ಬಳಕೆ
ccam update # install the latest release
ccam update --check # only say whether a newer release exists
ccam update --version v0.3.0 # install that release, also an older one
ccam --dry-run update # show what would be downloaded and replaced$ ccam update --check
ccam 0.5.0 is available (you have 0.4.0). Run `ccam update`.
$ ccam --dry-run update
Would update ccam 0.4.0 → 0.5.0:
download https://github.com/jhyunwoo/ccam/releases/download/v0.5.0/ccam_linux_amd64.tar.gz
verify with https://github.com/jhyunwoo/ccam/releases/download/v0.5.0/checksums.txt
replace /home/you/.local/bin/ccam
$ ccam update
→ downloading https://github.com/jhyunwoo/ccam/releases/download/v0.5.0/ccam_linux_amd64.tar.gz
✓ Updated ccam 0.4.0 → 0.5.0 (/home/you/.local/bin/ccam)ಹೊಸ ಬಿಡುಗಡೆ ಇಲ್ಲದಿದ್ದಾಗ, ccam ccam 0.4.0 is up to date. ಎಂದು ಮುದ್ರಿಸುತ್ತದೆ ಮತ್ತು ಏನನ್ನೂ ಬದಲಾಯಿಸುವುದಿಲ್ಲ. --version ಜೊತೆ ನೀವು ಈಗಾಗಲೇ ಬಳಸುತ್ತಿರುವ ಆವೃತ್ತಿಯನ್ನು ನೀಡಿದರೆ, ಅದು ccam 0.4.0 is already installed. ಎಂದು ಮುದ್ರಿಸುತ್ತದೆ.
ಆಯ್ಕೆಗಳು
| ಆಯ್ಕೆ | ಏನು ಮಾಡುತ್ತದೆ | ಡೀಫಾಲ್ಟ್ |
|---|---|---|
--check |
ಹೊಸ ಬಿಡುಗಡೆ ಇದೆಯೇ ಎಂದು ಮಾತ್ರ ತಿಳಿಸುತ್ತದೆ | off |
--version <tag> |
v0.3.0 ನಂತಹ ಈ ಬಿಡುಗಡೆಯ ಟ್ಯಾಗ್ ಅನ್ನು ಇನ್ಸ್ಟಾಲ್ ಮಾಡುತ್ತದೆ, ಈಗಿನದಕ್ಕಿಂತ ಹೊಸದಾಗಿರಲಿ ಅಥವಾ ಹಳೆಯದಾಗಿರಲಿ |
latest |
--dry-run |
ಗೌರವಿಸಲಾಗುತ್ತದೆ: ಇತ್ತೀಚಿನ ಟ್ಯಾಗ್ ಅನ್ನು ಹುಡುಕುತ್ತದೆ (--version ಒಂದನ್ನು ಹೆಸರಿಸದಿದ್ದರೆ), ಬೈನರಿಯ ಮೇಲೆ ಅದೇ ಪರಿಶೀಲನೆಗಳನ್ನು ನಡೆಸುತ್ತದೆ, ಮತ್ತು ಡೌನ್ಲೋಡ್ ಮಾಡದೆ ಡೌನ್ಲೋಡ್, ಚೆಕ್ಸಮ್ ಮತ್ತು ಬದಲಾಯಿಸುವ ಪಾತ್ಗಳನ್ನು ಮುದ್ರಿಸುತ್ತದೆ |
off |
--check ಮತ್ತು --version ಅನ್ನು ಒಟ್ಟಿಗೆ ಬಳಸಲಾಗುವುದಿಲ್ಲ. ಟ್ಯಾಗ್ vMAJOR.MINOR.PATCH ರೂಪದಲ್ಲಿರಬೇಕು, ಐಚ್ಛಿಕ ಪ್ರೀ-ರಿಲೀಸ್ ಅಥವಾ ಬಿಲ್ಡ್ ಪ್ರತ್ಯಯದೊಂದಿಗೆ; ಆರಂಭದ v ಅನ್ನು ಬಿಡಬಹುದು. ಬೇರೆ ಯಾವುದೇ ರೂಪ ವಿಫಲವಾಗುತ್ತದೆ, ಉದಾಹರಣೆಗೆ --version takes a release tag such as v0.3.0, not "1.2".
ಎನ್ವಿರಾನ್ಮೆಂಟ್ ವೇರಿಯೇಬಲ್ CCAM_RELEASES_URL ಮಿರರ್ಗಾಗಿ ಅಥವಾ ಪರೀಕ್ಷೆಗಳಿಗಾಗಿ https://github.com/jhyunwoo/ccam/releases ಅನ್ನು ಬದಲಾಯಿಸುತ್ತದೆ. ಅದರ ರಚನೆಯೂ ಹಾಗೆಯೇ ಇರಬೇಕು: <url>/latest <url>/tag/<tag> ಗೆ ರೀಡೈರೆಕ್ಟ್ ಆಗಬೇಕು, ಮತ್ತು ಫೈಲ್ಗಳು <url>/download/<tag>/<asset> ನಲ್ಲಿರಬೇಕು.
ಇದು ಹೇಗೆ ಕೆಲಸ ಮಾಡುತ್ತದೆ
ಕೋಡ್ internal/update ನಲ್ಲಿದೆ, ಅದನ್ನು ccam update ಮಾತ್ರ ಇಂಪೋರ್ಟ್ ಮಾಡುತ್ತದೆ. Claude Code ಆರಂಭಿಸುವ ಮಾರ್ಗ ಅದನ್ನು ಎಂದಿಗೂ ಕರೆಯುವುದಿಲ್ಲ.
cli.updateCmdಚಾಲನೆಯಲ್ಲಿರುವ ಬೈನರಿಯನ್ನುos.Executableಮೂಲಕ ಕಂಡುಹಿಡಿಯುತ್ತದೆ ಮತ್ತು symlink ಗಳನ್ನುfilepath.EvalSymlinksಮೂಲಕ ಪರಿಹರಿಸುತ್ತದೆ. ಬದಲಾಗುವುದು ಆ ನಿಜವಾದ ಪಾತ್.--versionಇಲ್ಲದಿದ್ದಾಗ,Updater.Latestರೀಡೈರೆಕ್ಟ್ ಅನುಸರಿಸದೆ<releases>/latestಅನ್ನು ಕೇಳುತ್ತದೆ, ಮತ್ತು ಟ್ಯಾಗ್ ಅನ್ನುLocationಹೆಡರ್ನಿಂದ (…/tag/v0.5.0) ಓದುತ್ತದೆ. ಇದು GitHub API ಬದಲು ಬಿಡುಗಡೆಗಳ ಪುಟವನ್ನು ಬಳಸುತ್ತದೆ, ಹೀಗಾಗಿ API ಯ ಗಂಟೆಗೆ 60 ವಿನಂತಿಗಳ ಮಿತಿ ಅನ್ವಯಿಸುವುದಿಲ್ಲ. ಈ ಹುಡುಕಾಟಕ್ಕೆ 10 ಸೆಕೆಂಡ್ ಸಮಯವಿದೆ.parseVersionಟ್ಯಾಗ್ ಅನ್ನು ಕಟ್ಟುನಿಟ್ಟಾದ ಮಾದರಿಯ ಜೊತೆ ಪರಿಶೀಲಿಸುತ್ತದೆ. ಟ್ಯಾಗ್ ಡೌನ್ಲೋಡ್ URL ಗಳಲ್ಲಿ ಮತ್ತು ಮುದ್ರಿಸಿದ ಶೆಲ್ ಕಮಾಂಡ್ನಲ್ಲಿ ಸೇರುತ್ತದೆ, ಹೀಗಾಗಿ/,%, ಸ್ಪೇಸ್ ಅಥವಾ ಶೆಲ್ ಅಕ್ಷರಗಳಿರುವ ಯಾವುದೂ ಒಳಗೆ ಬರುವುದಿಲ್ಲ.compareVersionsಅದನ್ನು ಚಾಲನೆಯಲ್ಲಿರುವ ಆವೃತ್ತಿಯ ಜೊತೆ ಹೋಲಿಸುತ್ತದೆ; ಪ್ರೀ-ರಿಲೀಸ್ ತನ್ನ ಬಿಡುಗಡೆಗಿಂತ ಮೊದಲು ಬರುತ್ತದೆ.- ccam ಬೈನರಿಯನ್ನು ಬದಲಾಯಿಸಬಹುದೇ ಎಂಬುದನ್ನು
managed()ಮತ್ತುwritable()ನಿರ್ಧರಿಸುತ್ತವೆ (ಕೆಳಗೆ ನೋಡಿ). Updater.Fetchccam_<os>_<arch>.tar.gzಮತ್ತುchecksums.txtಅನ್ನು ಒಂದೇ ಸಮಯದಲ್ಲಿ ಡೌನ್ಲೋಡ್ ಮಾಡುತ್ತದೆ, ಎರಡಕ್ಕೂ ಸೇರಿ 2 ನಿಮಿಷ. ಪ್ರತಿ ಡೌನ್ಲೋಡ್ಗೆ 256 MB ಮಿತಿ ಇದೆ.- ಬೇರೆ ಏನಾದರೂ ಆಗುವ ಮೊದಲು, ಆರ್ಕೈವ್ನ SHA-256
checksums.txtನಲ್ಲಿರುವ ಅದರ ಸಾಲಿಗೆ ಹೊಂದಬೇಕು. ಸಾಲು ಇಲ್ಲದಿದ್ದರೆ ಅಥವಾ ಚೆಕ್ಸಮ್ ಬೇರೆಯಾಗಿದ್ದರೆ, ಅಪ್ಡೇಟ್nothing was changedಎಂದು ನಿಲ್ಲುತ್ತದೆ. extract()tar ಅನ್ನು ಓದುತ್ತದೆ ಮತ್ತುccamಹೆಸರಿನ ಮೊದಲ ಸಾಮಾನ್ಯ ಫೈಲ್ ಅನ್ನು ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ. ಫೋಲ್ಡರ್ಗಳು, ಲಿಂಕ್ಗಳು ಮತ್ತು ಇತರ ಐಟಂಗಳನ್ನು ನಿರ್ಲಕ್ಷಿಸಲಾಗುತ್ತದೆ, ಮತ್ತು ಬೈನರಿಗೂ 256 MB ಮಿತಿ ಇದೆ.Updater.Installಹೊಸ ಬೈನರಿಯನ್ನುfsutil.AtomicWriteಮೂಲಕ ಬರೆಯುತ್ತದೆ: ಬೈನರಿಯ ಪಕ್ಕದಲ್ಲಿ.ccam.tmp*ಎಂಬ ತಾತ್ಕಾಲಿಕ ಫೈಲ್, ಹಳೆಯ ಫೈಲ್ನ ಅನುಮತಿ ಬಿಟ್ಗಳೊಂದಿಗೆ, ಡಿಸ್ಕ್ಗೆ ಫ್ಲಶ್ ಮಾಡಿ ಹಳೆಯದರ ಮೇಲೆ rename ಮಾಡಲಾಗುತ್ತದೆ.
ಟ್ಯಾಗ್ ಹುಡುಕಾಟದಿಂದ rename ವರೆಗಿನ ಸಂಪೂರ್ಣ ಪ್ರಕ್ರಿಯೆ:
ಆರ್ಕೈವ್ ಮತ್ತು checksums.txt ಜೊತೆಜೊತೆಯಾಗಿ ಡೌನ್ಲೋಡ್ ಆಗುತ್ತವೆ, ಮತ್ತು ಚೆಕ್ಸಮ್ ಹೊಂದುವವರೆಗೆ ಏನನ್ನೂ ಬರೆಯಲಾಗುವುದಿಲ್ಲ. rename ಅಟಾಮಿಕ್ ಆಗಿದೆ, ಹೀಗಾಗಿ ಕ್ರ್ಯಾಶ್ ಅಥವಾ ತುಂಬಿದ ಡಿಸ್ಕ್ ಹಳೆಯ ಬೈನರಿಯನ್ನು ಅಥವಾ ಹೊಸದನ್ನು ಉಳಿಸುತ್ತದೆ, ಎಂದಿಗೂ ಅರ್ಧ ಬೈನರಿಯನ್ನಲ್ಲ. ~/.local/bin/ccwork ನಂತಹ ಶಾರ್ಟ್ಕಟ್ ಕಮಾಂಡ್ಗಳು ccam ಬೈನರಿಗೆ symlink ಗಳು, ಹೀಗಾಗಿ ಯಾವುದೇ ಬದಲಾವಣೆ ಇಲ್ಲದೆ ಅವು ಹೊಸ ಆವೃತ್ತಿಯನ್ನು ಚಲಾಯಿಸುತ್ತವೆ.
ಪ್ಯಾಕೇಜ್ ಮ್ಯಾನೇಜರ್ ಮೂಲಕ ಇನ್ಸ್ಟಾಲ್ ಮಾಡಿದಾಗ
.deb ನಿಂದ ಇನ್ಸ್ಟಾಲ್ ಮಾಡಿದ ccam apt ಗೆ ಸೇರಿದ್ದು, ಮತ್ತು apt ಗೆ ತಿಳಿಯದಂತೆ ಅದನ್ನು ಬದಲಾಯಿಸಿದರೆ ಪ್ಯಾಕೇಜ್ ಡೇಟಾಬೇಸ್ ತಪ್ಪಾಗುತ್ತದೆ. ಡೌನ್ಲೋಡ್ ಮಾಡುವ ಮೊದಲು, ಬೈನರಿ ಯಾರಿಗೆ ಸೇರಿದೆ ಎಂದು ccam ಪರಿಶೀಲಿಸುತ್ತದೆ:
/usr/bin,/bin,/usr/sbinಅಥವಾ/sbinನಲ್ಲಿರುವ ಬೈನರಿಯನ್ನು ಪ್ಯಾಕೇಜ್ ನಿರ್ವಹಿಸುವುದೆಂದು ಪರಿಗಣಿಸಲಾಗುತ್ತದೆ.- ಬೇರೆಡೆ,
dpkgಇನ್ಸ್ಟಾಲ್ ಆಗಿದ್ದುdpkg -S <path>ಯಶಸ್ವಿಯಾದರೆ, ಅದನ್ನೂ ಪ್ಯಾಕೇಜ್ ನಿರ್ವಹಿಸುವುದೆಂದು ಪರಿಗಣಿಸಲಾಗುತ್ತದೆ. - ಇಲ್ಲದಿದ್ದರೆ, ಅಲ್ಲಿ ಬರೆಯಬಹುದೇ ಎಂದು ಖಚಿತಪಡಿಸಲು ccam ಬೈನರಿಯ ಪಕ್ಕದಲ್ಲಿ ತಾತ್ಕಾಲಿಕ
.ccam-update-*ಫೈಲ್ ಅನ್ನು ರಚಿಸಿ ತೆಗೆದುಹಾಕುತ್ತದೆ.
ಪ್ಯಾಕೇಜ್ ನಿರ್ವಹಿಸುವ ಬೈನರಿಗೆ ccam ನಿಲ್ಲುತ್ತದೆ ಮತ್ತು apt ಹಂತಗಳನ್ನು ಮುದ್ರಿಸುತ್ತದೆ:
$ ccam update
ccam: /usr/bin/ccam was installed by a package, so `ccam update` leaves it alone.
To update the .deb, download ccam_0.5.0_linux_amd64.deb from https://github.com/jhyunwoo/ccam/releases/tag/v0.5.0 and run:
sudo apt install ./ccam_0.5.0_linux_amd64.deb
Or install a copy in ~/.local/bin with the install script:
curl -fsSL https://raw.githubusercontent.com/jhyunwoo/ccam/main/install.sh | shLinux ಅಲ್ಲದ ಸಿಸ್ಟಮ್ಗಳಲ್ಲಿ, ಇನ್ಸ್ಟಾಲ್ ಸ್ಕ್ರಿಪ್ಟ್ನ ಸಾಲು ಮಾತ್ರ ಮುದ್ರಿತವಾಗುತ್ತದೆ. ಫೋಲ್ಡರ್ಗೆ ಬರೆಯಲು ಸಾಧ್ಯವಿಲ್ಲದಿದ್ದಾಗ, ccam ಇನ್ಸ್ಟಾಲ್ ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಮತ್ತೆ ರನ್ ಮಾಡಲು ಸೂಚಿಸುತ್ತದೆ; ಅದು ccam ಅನ್ನು ~/.local/bin ನಲ್ಲಿ ಇನ್ಸ್ಟಾಲ್ ಮಾಡುತ್ತದೆ.
ಸುರಕ್ಷತೆ ಮತ್ತು ವಿಶೇಷ ಸಂದರ್ಭಗಳು
- ಡೆವಲಪ್ಮೆಂಟ್ ಬಿಲ್ಡ್ ತನ್ನ ಆವೃತ್ತಿಯನ್ನು
devಎಂದು ತೋರಿಸುತ್ತದೆ ಮತ್ತು ಹೋಲಿಸಲು ಅದಕ್ಕೆ ಯಾವುದೇ ಬಿಡುಗಡೆ ಇಲ್ಲ, ಹೀಗಾಗಿccam updateಮತ್ತುccam update --checkಅದನ್ನು ನಿರಾಕರಿಸುತ್ತವೆ.ccam update --version vX.Y.Zಅದರ ಮೇಲೆ ಒಂದು ಬಿಡುಗಡೆಯನ್ನು ಇನ್ಸ್ಟಾಲ್ ಮಾಡುತ್ತದೆ. - ವಿಫಲವಾದ ಡೌನ್ಲೋಡ್, ನಿಮ್ಮ ಪ್ಲಾಟ್ಫಾರ್ಮ್ಗಾಗಿ ಇಲ್ಲದ ಫೈಲ್, ಅಥವಾ ಹೊಂದದ ಚೆಕ್ಸಮ್ ಇನ್ಸ್ಟಾಲ್ ಆಗಿರುವ ಬೈನರಿಯನ್ನು ಇದ್ದಂತೆಯೇ ಬಿಡುತ್ತದೆ.
- ಇಲ್ಲದ ಬಿಡುಗಡೆ
there is no release <tag>ಎಂದು ವಿಫಲವಾಗುತ್ತದೆ. GitHub HTTP 403 ಅಥವಾ 429 ನೊಂದಿಗೆ ನಿರಾಕರಿಸಿದಾಗ, ಇದು ಬಹುಶಃ ರೇಟ್ ಮಿತಿ ಎಂದು ccam ಹೇಳುತ್ತದೆ ಮತ್ತು ನಂತರ ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಲು ಕೇಳುತ್ತದೆ. --checkಓದುತ್ತದೆ ಅಷ್ಟೇ. ಬೈನರಿ ಪ್ಯಾಕೇಜ್ ನಿರ್ವಹಿಸುವುದೇ ಅಥವಾ ಬರೆಯಬಹುದಾದುದೇ ಎಂದು ಅದು ಪರಿಶೀಲಿಸುವುದಿಲ್ಲ.- ಹಳೆಯ ಟ್ಯಾಗ್ನೊಂದಿಗೆ
--versionಬಳಸುವುದೇ ಹಿಂದಿನ ಆವೃತ್ತಿಗೆ ಮರಳುವ ವಿಧಾನ.