Cad é leabharlann Gotk3? Ar an gcéad dul síos, is sraith ceangail í don uirlis chruthaithe feidhmchlár grafach GTK3, atá coitianta i Linux don teanga ríomhchlárúcháin GoLang. I Linux, is féidir leat aon rud a thógáil gan earráidí. Mar sin féin, tá cláir Golang tras-ardáin, is féidir iad a thógáil do Windows freisin, mar sin d'fhéadfadh roinnt deacrachtaí a bheith ag an úsáideoir.
Is í an fhadhb atá ann ná go bhfuil Ubuntu lán d'earráidí le linn tiomsaithe. Ceann de na hearráidí is coitianta fatal error: libintl.h: No such file or directory
. Léiríonn sé go bhfuil fadhb ag GoLang na comhaid ceanntásca C riachtanacha a aimsiú. Ach níl an fhadhb seo ag ArchLinux.
Chun críocha tras-thiomsúcháin, moltar d’úsáideoirí ArchLinux a úsáid le DockerHub. Uaireanta tarlaíonn earráidí agus tar éis an íomhá a íoslódáil, feicfidh tú conas iad a shocrú. Ar dtús, íoslódáil an íomhá agus rith an coimeádán, ag caitheamh an fhillteáin ina bhfuil do thionscadal isteach ann ag baint úsáide as gléasadh volume
. Mar shampla, sa bhfillteán /project
:
$ docker run -it --rm -v ~/go/src/KeywordsMixer/:/project archlinux/archlinux bash
Ligeann --rm
duit an coimeádán a scriosadh tar éis duit é a fhágáil. Déantar é seo chun spás a shaoradh ar an tiomántán crua. Tá fadhb ag an íomhá is déanaí de ArchLinux le glibc
, rud a chuireann cosc ar pacman
oibriú. Chun seo a shocrú, rith an t-ordú seo a leanas:
$ patched_glibc=glibc-linux4-2.33-4-x86_64.pkg.tar.zst && curl -LO "https://repo.archlinuxcn.org/x86_64/$patched_glibc" && bsdtar -C / -xvf "$patched_glibc"
Bíonn fadhbanna ann uaireanta le heochracha freisin. Ní córas atá ag obair é seo, mar sin ba chóir duit fíorú pacáiste a dhíchumasú ionas nach mbeidh ort réiteach a lorg ar an bhfadhb seo gach uair. Conas a dhéantar é seo? Chun seo a dhéanamh, sa chuid [options]
den chomhad /etc/pacman.conf
, athraigh an paraiméadar SigLevel
go Never
:
$ vim /etc/pacman.conf [options] SigLevel = Never
Ar aghaidh, nuashonraigh bunachar sonraí an phacáiste:
$ pacman -Sy
Suiteáil na pacáistí riachtanacha:
$ pacman -S git go vim mingw-w64-gcc cairo pango pkg-config gtk3
Beidh pacáiste amháin ó AUR
ag teastáil uainn freisin. Chun é a íoslódáil, cuir an chuid seo a leanas le /etc/pacman.conf
:
$ vim /etc/pacman.conf [ownstuff] SigLevel = Never Server = http://martchus.no-ip.biz/repo/arch/$repo/os/$arch
Ansin suiteáil an pacáiste:
$ pacman -S mingw-w64-gtk3
Is fiú a thabhairt faoi deara ar leithligh go bhfuil modúil Go sa leagan is déanaí de Golang cheana féin. Mura bhfuil siad in úsáid i do thionscadal ar chúis éigin, beidh ort tosú ag baint úsáide astu. Is fearr na modúil agus na spleáchais tionscadail a chumrú i do chóras oibre agus a sheiceáil go bhfuil gach rud tógtha i gceart do Linux. Ba chóir an leagan gotk3 a thógáil ón mbrainse master
, toisc nach bhfuil leaganacha níos sine tógtha leis an leagan seo den teanga:
$ got get github.com/gotk3/gotk3 master
Ansin, téigh go dtí an fillteán tionscadail agus rith an t-ordú tógála:
$ cd /project CGO_CFLAGS_ALLOW=".*" CGO_LDFLAGS_ALLOW=".*" PKG_CONFIG_PATH=/usr/x86_64-w64-mingw32/lib/pkgconfig CC=x86_64-w64-mingw32-gcc CGO_ENABLED=1 GOOS=windows GOARCH=amd64 go build -v -tags gtk_3_24 -gcflags "-N -l" -ldflags "-s -w -H=windowsgui" -o main-windows-amd64.exe main.go
D’fhéadfadh an tógáil tamall fada a thógáil, ach nuair a bheidh sé críochnaithe feicfidh tú an comhad críochnaithe i do fhillteán tionscadail.
Tar éis an tsuiteáil a bheith críochnaithe, feicfidh an t-úsáideoir an comhad críochnaithe i bhfillteán an tionscadail:
Chun na gníomhartha céanna a sheachaint arís agus arís eile, bain úsáid as Dockerfile speisialta:
$ vi Dockerfile FROM archlinux/archlinux RUN patched_glibc=glibc-linux4-2.33-4-x86_64.pkg.tar.zst && curl -LO "https://repo.archlinuxcn.org/x86_64/$patched_glibc" && bsdtar -C / -xvf "$patched_glibc" RUN sed 's/SigLevel = Never/SigLevel = Never/g' /etc/pacman.conf RUN pacman -Syu --noconfirm RUN pacman -S git go mingw-w64-gcc cairo pango pkg-config gtk3 --noconfirm RUN pacman -S vim --noconfirm RUN echo "[ownstuff]" >> /etc/pacman.conf RUN echo "SigLevel = Never" >> /etc/pacman.conf RUN echo ''Server = http://martchus.no-ip.biz/repo/arch/$repo/os/$arch'' >> /etc/pacman.conf RUN pacman -Sy --noconfirm RUN pacman -S mingw-w64-gtk3 --noconfirm
B’fhéidir go mbeadh ort beagán athruithe a dhéanamh air agus é a chur ag obair.
Ní mór duit eolaire ar leith a chruthú, an comhad seo a chur ann agus an méid seo a leanas a rith:
$ docker build
Tar éis an t-ordú a fhorghníomhú, feicfear ID an choimeádáin nua:
Ansin is féidir leat coimeádán a rith bunaithe ar an íomhá a eascraíonn as leis an ordú:
$ docker run -it --rm -v ~/go/src/KeywordsMixer/:/project 028451c45c15 bash
Críochnaíonn sé seo na treoracha.