Fasaloli
Sabunta ccam
Na'ura ce ta fassara wannan shafin daga Turanci. Ana maraba da gyare-gyare. Gyara wannan shafin a GitHub
ccam update yana sauke sakin ccam daga GitHub, yana duba shi da checksums.txt na sakin kuma yana maye gurbin binary da ke gudana da rename ɗaya. Yi amfani da shi idan ka girka ccam da rubutun girkawa (install script) ko daga archive. ccam ba ya taɓa neman sabuntawa da kansa: wannan umarni ne kaɗai ke tuntuɓar GitHub, don haka kowane sauran umarni yana aiki iri ɗaya ba tare da intanet ba.
Amfani
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)Idan babu sabon saki, ccam yana buga ccam 0.4.0 is up to date. kuma ba ya canza komai. Da --version da sigar da kake gudanarwa tuni, yana buga ccam 0.4.0 is already installed.
Zaɓuɓɓuka
| Zaɓi | Abin da yake yi | Tsoho |
|---|---|---|
--check |
Bayar da rahoto kawai ko akwai sabon saki | a kashe |
--version <tag> |
Girka wannan tag na saki, kamar v0.3.0, sabo ko tsoho fiye da na yanzu |
na baya-bayan nan |
--dry-run |
Ana karɓar sa: yana neman tag na baya-bayan nan (sai dai idan --version ya ambaci ɗaya), yana gudanar da dubawa iri ɗaya a kan binary, kuma yana buga hanyoyin saukewa, checksum da maye gurbi ba tare da saukewa ba |
a kashe |
Ba za a iya amfani da --check da --version tare ba. Dole tag ɗin ya yi kama da vMAJOR.MINOR.PATCH, tare da ƙarin pre-release ko build idan ana so; ana iya barin v na farko. Duk wani abu dabam yana gazawa, misali --version takes a release tag such as v0.3.0, not "1.2".
Mai canjin muhalli CCAM_RELEASES_URL yana maye gurbin https://github.com/jhyunwoo/ccam/releases, don madubi (mirror) ko don gwaje-gwaje. Dole ya kasance da tsari iri ɗaya: <url>/latest yana turawa zuwa <url>/tag/<tag>, kuma assets suna a <url>/download/<tag>/<asset>.
Yadda yake aiki
Lambar tana cikin internal/update, wanda ccam update ne kaɗai ke shigo da shi. Hanyar farawa ba ta taɓa kiran sa.
cli.updateCmdyana nemo binary da ke gudana daos.Executablekuma yana warware symlinks dafilepath.EvalSymlinks. Wannan ainihin hanyar ita ce ake maye gurbinta.- Ba tare da
--versionba,Updater.Latestyana neman<releases>/latestba tare da bin turawar ba, kuma yana karanta tag ɗin daga header naLocation(…/tag/v0.5.0). Wannan yana amfani da shafin saki maimakon GitHub API, don haka iyakar API ta buƙatu 60 a awa ba ta shafa ba. Neman yana da daƙiƙa 10. parseVersionyana duba tag ɗin da tsari mai tsauri. Tag yana ƙarewa a URLs na saukewa da a umarnin shell da aka buga, don haka babu abin da ke da/,%, sarari ko haruffan shell da ke wucewa.compareVersionsyana kwatanta shi da sigar da ke gudana; pre-release yana zuwa kafin sakinsa.managed()dawritable()suna yanke shawara ko ccam zai iya maye gurbin binary kwata-kwata (duba ƙasa).Updater.Fetchyana saukeccam_<os>_<arch>.tar.gzdachecksums.txta lokaci ɗaya, da mintuna 2 ga duka biyun. Kowane saukewa an iyakance shi zuwa 256 MB.- Dole SHA-256 na archive ɗin ya yi daidai da layinsa a
checksums.txtkafin wani abu ya faru. Layin da ya ɓace ko checksum daban yana dakatar da sabuntawar danothing was changed. extract()yana karanta tar ɗin kuma yana ɗaukar fayil na yau da kullum na farko mai sunaccam. Ana watsi da foldoji, mahaɗai da sauran shigarwa, kuma binary ɗin ma an iyakance shi zuwa 256 MB.Updater.Installyana rubuta sabon binary dafsutil.AtomicWrite: fayil na wucin gadi.ccam.tmp*kusa da binary, da bits na izinin tsohon fayil, ana tura shi zuwa faifai kuma ana rename shi a kan tsohon.
Dukkan hanyar, daga neman tag zuwa rename:
Ana sauke archive da checksums.txt gefe da gefe, kuma ba a rubuta komai har sai checksum ya yi daidai. Rename ɗin atomic ne, don haka faɗuwar shiri ko cikakken faifai yana barin ko dai tsohon binary ko sabon, ba taɓa rabin ɗaya ba. Gajerun umarni kamar ~/.local/bin/ccwork symlinks ne zuwa binary na ccam, don haka suna gudanar da sabuwar sigar ba tare da wani canji ba.
Girkin da mai sarrafa kunshi ke sarrafawa
ccam da aka girka daga .deb na apt ne, kuma maye gurbinsa a bayan apt zai bar bayanan kunshin ba daidai ba. Kafin saukewa, ccam yana duba wanene ke da binary ɗin:
- Binary a
/usr/bin,/bin,/usr/sbinko/sbinana ɗaukar sa a matsayin wanda kunshi ke sarrafawa. - A wani wuri, idan an girka
dpkgkumadpkg -S <path>ya yi nasara, shi ma ana ɗaukar sa a matsayin wanda kunshi ke sarrafawa. - In ba haka ba ccam yana ƙirƙira kuma yana cire fayil na wucin gadi
.ccam-update-*kusa da binary don tabbatar da cewa zai iya rubutu a can.
Ga binary da kunshi ke sarrafawa ccam yana tsayawa kuma yana buga matakan 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 | shA tsarin da ba Linux ba, layin rubutun girkawa ne kawai ake bugawa. Idan ba za a iya rubutu a foldar ba, ccam yana ba da shawarar sake gudanar da rubutun girkawa, wanda ke girka ccam a ~/.local/bin.
Tsaro da yanayi na musamman
- Build na haɓakawa (development) yana bayar da sigarsa a matsayin
devkuma ba shi da sakin da za a kwatanta da shi, don hakaccam updatedaccam update --checksuna ƙin sa.ccam update --version vX.Y.Zyana girka saki a kansa. - Saukewa da ya gaza, asset da ya ɓace ga dandalinka, ko checksum da bai yi daidai ba yana barin binary da aka girka yadda yake.
- Sakin da babu shi yana gazawa da
there is no release <tag>. Idan GitHub ya ƙi da HTTP 403 ko 429, ccam yana cewa wataƙila iyakar buƙatu ce kuma yana roƙon ka ka sake gwadawa daga baya. --checkyana karantawa ne kawai. Ba ya duba ko kunshi ke sarrafa binary ɗin ko ana iya rubutu a kansa.--versiontare da tsohon tag shi ne yadda ake komawa baya (roll back).