כיצד להתקין כרום באובונטו ו- CentOS?

מדריך צעד אחר צעד להתקנת כרום נטול ראש באובונטו ו- CentOS.


מה זה כרום ללא ראש?

כרום נטול ראש הוא כמו הפעלת דפדפן כרום ללא ממשק משתמש (דפדפן), כלומר הוא פועל בסביבה נטולת ראש, וזה מאוד שימושי להפעלת בדיקות אוטומטיות..

אז, מה שכרום חסר הראש פותח לנו?

אחד הדברים המרגשים ביותר הוא היכולת לבדוק את התכונות האחרונות והגדולות ביותר של פלטפורמת האינטרנט כמו מודולי ES6, עובדי שירות וזרמים. עם כרום נטול ראש, אתה יכול לכתוב אפליקציות ולבחון את האפליקציות הללו עם עיבוד עדכני. הדבר האחר שהוא פותח הוא פונקציות מדהימות אלה כמו מצערת רשת, הדמיית מכשירים וכיסוי קוד.

עם כרום נטול ראש אתה יכול לבצע בדיקות אפילו בלי לכתוב שורת קוד, זה לא כל כך מגניב!

אתה יכול פשוט לבצע אותם דרך שורת הפקודה. להלן כמה מהדגלים הפופולריים.

–צילום מסך # לצילום מסך
–הדפס ל- PDF # המרת דף אינטרנט ל- PDF
–dump-dom #dump DOM (מודל אובייקט מסמך)

התקנת כרום באובונטו

שלב 1: עדכן את אובונטו

בהתחלה, עדכן את החבילות באובונטו.

[מוגן בדוא”ל]: ~ $ עדכון apt-get
הכה: 1 https://download.docker.com/linux/ubuntu Bionic InRelease
הלהיט: 2 http://security.ubuntu.com/ubuntu קוסמית-ביטחון InRelease
הכה: 3 http://ppa.launchpad.net/ansible/ansible/ubuntu InRelease הקוסמי
Hit: 5 http://apt.puppetlabs.com Bionic InRelease
Ign: 6 http://pkg.jenkins.io/debian-stable בינארי / InRelease
הלהיט: 7 http://us.archive.ubuntu.com/ubuntu InRelease קוסמי
הלהיט: 8 http://ppa.launchpad.net/canonical-chromium-builds/stage/ubuntu קוסמית InRelease
להיט: 9 http://pkg.jenkins.io/debian-stinary binary / Release
מכה: 10 http://us.archive.ubuntu.com/ubuntu עדכוני הקוסם InRelease
הלהיט: 11 http://us.archive.ubuntu.com/ubuntu cosmic-backports InRelease
התאמה: 4 https://packages.cloud.google.com/apt kubernetes-xenial InRelease
קריאת רשימות חבילה … בוצע

שלב 2: התקן תלות

התקן תלות אלה הנדרשים להתקנה.

[מוגן בדוא”ל]: ~ $ sudo apt-get install -y libappindicator1 גופנים-שחרור
קריאת רשימות חבילה … בוצע
בניית עץ תלות
קורא מידע על המדינה … בוצע
שחרור גופנים היא כבר הגירסה החדשה ביותר (1: 1.07.4-7).
שחרור גופנים מוגדר להתקנה ידנית.
החבילה הבאה הותקנה אוטומטית ואינה נדרשת עוד:
כרום-רכיבי codec-ffmpeg-extra
השתמש ב ‘sudo apt autoremove’ כדי להסיר אותו.
החבילות הנוספות הבאות יותקנו:
libdbusmenu-gtk4 libindicator7
חבילות מוצעות:
יישום מחוון
החבילות החדשות הבאות יותקנו:
libappindicator1 libdbusmenu-gtk4 libindicator7
0 שודרג, 3 הותקן לאחרונה, 0 להסרה ו 238 לא שודרגו.
צריך לקבל ארכיון של 68.2 קילובייט.
לאחר פעולה זו ישמש 280 kB של שטח דיסק נוסף.
קבלו: 1 http://us.archive.ubuntu.com/ubuntu kosmic / universe amd64 libdbusmenu-gtk4 amd64 16.04.1 + 18.10.20180917-0ubuntu1 [27.1 kB]
קבלו: 2 http://us.archive.ubuntu.com/ubuntu cosmic / universe amd64 libindicator7 amd64 16.10.0 + 18.04.20180321.1-0ubuntu1 [21.7 kB]
קבלו: 3 http://us.archive.ubuntu.com/ubuntu cosmic / universe amd64 libappindicator1 amd64 12.10.1 + 18.04.20180322.1-0ubuntu1 [19.4 kB]
השיג 68.2 קילוואט לשנייה (61.1 קילו-ביט / שניות)
בחירת חבילה שלא נבחרה בעבר libdbusmenu-gtk4: amd64.
(קורא מסד נתונים … 318270 קבצים וספריות המותקנים כעת.)
מתכונן לפרוק … / libdbusmenu-gtk4_16.04.1 + 18.10.20180917-0ubuntu1_amd64.deb …
פרוק את libdbusmenu-gtk4: amd64 (16.04.1 + 18.10.20180917-0ubuntu1) …
בחירת חבילה libindicator7 שלא נבחרה בעבר.
מתכונן לפרוק … / libindicator7_16.10.0 + 18.04.20180321.1-0ubuntu1_amd64.deb …
פריקת libindicator7 (16.10.0 + 18.04.20180321.1-0ubuntu1) …
בחירת חבילה libappindicator1 שלא נבחרה בעבר.
מתכונן לפרוק … / libappindicator1_12.10.1 + 18.04.20180322.1-0ubuntu1_amd64.deb …
פרוק את libappindicator1 (12.10.1 + 18.04.20180322.1-0ubuntu1) …
הגדרת libindicator7 (16.10.0 + 18.04.20180321.1-0ubuntu1) …
הגדרת libdbusmenu-gtk4: amd64 (16.04.1 + 18.10.20180917-0ubuntu1) …
עיבוד טריגרים עבור libc-bin (2.28-0ubuntu1) …
הגדרת libappindicator1 (12.10.1 + 18.04.20180322.1-0ubuntu1) …
עיבוד טריגרים עבור libc-bin (2.28-0ubuntu1) …
libappindicator1: ספרייה זו משמשת לייצוא תפריט על ידי יישום לפאנל
שחרור גופנים: בספריה זו יש מדדי גופנים דומים לאריאל, טיימס ובלדר

יתכנו מקרים שחסרים מעט תלות להתקנת כרום. אז הפעל את הפקודה למטה, היא תתקין את כל התלות החסרה הנדרשת להתקנת כרום.

[מוגן בדוא”ל]: ~ $ sudo apt-get להתקין -f
החבילות הנוספות הבאות יותקנו:
at-spi2-core cpp cpp-7 dconf-gsettings-backend dconf-service gcc-7-base glib-networking glib-networking-common
glib-networking-services gsettings-desktop-schemas libappindicator3-1 libasound2 libasound2-data libatk-bridge2.0-0
libatspi2.0-0 libauthen-sasl-perl libcairo-gobject2 libcolord2 libdata-dump-perl libdbusmenu-gtk3-4 libdconf1
libdrm-amdgpu1 libdrm-intel1 libdrm-nouveau2 libdrm-radeon1 libencode-locale-perl libepoxy0 libfile-basedir-perl
libfile-desktopentry-perl libfile-listing-perl libfile-mimeinfo-perl libfont-afm-perl libfontenc1 libgl1
libgl1-mesa-dri libgl1-mesa-glx libglapi-mesa libglvnd0 libglx-mesa0 libglx0 libgtk-3-0 libgtk-3-bin libgtk-3-common
libhtml-form-perl libhtml-format-perl libhtml-parser-perl libhtml-tagset-perl libhtml-tree-perl libhttp-cookies-perl
libhttp-daemon-perl libhttp-date-perl libhttp-message-perl libhttp-discuss-perl libice6 libindicator3-7
libio-html-perl libio-socket-ssl-perl libipc-system-simple-perl libisl19 libjson-glib-1.0-0 libjson-glib-1.0-common
liblcms2-2 libllvm9 liblwp-mediatypes-perl liblwp-protocol-https-perl libmailtools-perl libmpc3 libnet-dbus-perl
libnet-http-perl libnet-smtp-ssl-perl libnet-ssleay-perl libnspr4 libnss3 libpciaccess0 libproxy1v5 librest-0.7-0
libsensors4 libsm6 libsoup-gnome2.4-1 libsoup2.4-1 libtie-ixhash-perl libtimedate-perl libtry-זעיר-פרל liburi-perl
libwayland-client0 libwayland-cursor0 libwayland-egl1 libwww-perl libwww-robotrules-perl libx11-protocol-perl
libx11-xcb1 libxaw7 libxcb-dri2-0 libxcb-dri3-0 libxcb-glx0 libxcb-present0 libxcb-shape0 libxcb-sync1 libxft2
libxkbcommon0 libxml-parser-perl libxml-twig-perl libxml-xpathengine-perl libxmu6 libxpm4 libxshmfence1 libxss1 libxt6
libxtst6 libxv1 libxxf86dga1 libxxf86vm1 perl-openssl-ברירות מחדל x11-נפוצות x11-utils x11-xserver-utils xdg-utils
חבילות מוצעות:
cpp-doc gcc-7-locales מחוון-יישום libasound2-plugins alsa-utils libdigest-hmac-perl libgssapi-perl colord
gvfs liblcms2-utils libcrypt-ssleay-perl lm-sensors libauthen-ntlm-perl libunicode-map8-perl libunicode-string-perl
xml-twig-tools mesa-utils ניקל קיירו -5c xorg-docs-core
החבילות החדשות הבאות יותקנו:
at-spi2-core cpp cpp-7 dconf-gsettings-backend dconf-service gcc-7-base glib-networking glib-networking-common
glib-networking-services gsettings-desktop-schemas libappindicator3-1 libasound2 libasound2-data libatk-bridge2.0-0
libatspi2.0-0 libauthen-sasl-perl libcairo-gobject2 libcolord2 libdata-dump-perl libdbusmenu-gtk3-4 libdconf1
libdrm-amdgpu1 libdrm-intel1 libdrm-nouveau2 libdrm-radeon1 libencode-locale-perl libepoxy0 libfile-basedir-perl
libfile-desktopentry-perl libfile-listing-perl libfile-mimeinfo-perl libfont-afm-perl libfontenc1 libgl1
libgl1-mesa-dri libgl1-mesa-glx libglapi-mesa libglvnd0 libglx-mesa0 libglx0 libgtk-3-0 libgtk-3-bin libgtk-3-common
libhtml-form-perl libhtml-format-perl libhtml-parser-perl libhtml-tagset-perl libhtml-tree-perl libhttp-cookies-perl
libhttp-daemon-perl libhttp-date-perl libhttp-message-perl libhttp-discuss-perl libice6 libindicator3-7
libio-html-perl libio-socket-ssl-perl libipc-system-simple-perl libisl19 libjson-glib-1.0-0 libjson-glib-1.0-common
liblcms2-2 libllvm9 liblwp-mediatypes-perl liblwp-protocol-https-perl libmailtools-perl libmpc3 libnet-dbus-perl
libnet-http-perl libnet-smtp-ssl-perl libnet-ssleay-perl libnspr4 libnss3 libpciaccess0 libproxy1v5 librest-0.7-0
libsensors4 libsm6 libsoup-gnome2.4-1 libsoup2.4-1 libtie-ixhash-perl libtimedate-perl libtry-זעיר-פרל liburi-perl
libwayland-client0 libwayland-cursor0 libwayland-egl1 libwww-perl libwww-robotrules-perl libx11-protocol-perl
libx11-xcb1 libxaw7 libxcb-dri2-0 libxcb-dri3-0 libxcb-glx0 libxcb-present0 libxcb-shape0 libxcb-sync1 libxft2
libxkbcommon0 libxml-parser-perl libxml-twig-perl libxml-xpathengine-perl libxmu6 libxpm4 libxshmfence1 libxss1 libxt6
libxtst6 libxv1 libxxf86dga1 libxxf86vm1 perl-openssl-ברירות מחדל x11-נפוצות x11-utils x11-xserver-utils xdg-utils
0 שודרג, 117 הותקן לאחרונה, 0 להסרה ו 58 לא שודרגו.
1 לא הותקן או הוסר לחלוטין.
צריך לקבל ארכיונים של 40.7 מגהבייט.
לאחר פעולה זו ישמש 369 MB של שטח דיסק נוסף.
האם אתה רוצה להמשיך? [Y / n] Y
הושג 40.7 מגה בייט בסיביות (9470 kB / s)
חילוץ תבניות מחבילות: 100%

שלב 3: הורד את Chrome

הורד את חבילת Chrome Chrome יציבה למערכת אובונטו.

[מוגן בדוא”ל]: ~ $ wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
–2020-01-15 13: 58: 41– https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
פותר את dl.google.com (dl.google.com) … 172.217.163.78, 2404: 6800: 4007: 80c :: 200e
מתחבר ל- dl.google.com (dl.google.com) | 172.217.163.78 |: 443 … מחובר.
בקשת HTTP נשלחה, ממתינה לתגובה … 200 אישור
אורך: 62204098 (59M) [חבילת יישום / x-debian]
שומר ב: ‘google-chrome-stable_current_amd64.deb’

google-chrome-stable_current_amd64. 100% [=============================================== ==================>] 59.32M 11.1MB / s בשנות ה -29

2020-01-15 13:59:10 (2.04 מגהבייט לשניות) – ‘google-chrome-stable_current_amd64.deb’ נשמר [62204098/62204098]

שלב 4: התקן את Chrome

התקן את החבילה היציבה.

[מוגן בדוא”ל]: ~ $ sudo dpkg -i google-chrome * .deb
בחירת חבילה שגילה שלא נבחרה בעבר ב- Google-Chrome.
(קורא מסד נתונים … 318285 קבצים וספריות המותקנים כעת.)
מתכונן לפרוק את google-chrome-stable_current_amd64.deb …
פירוק יציב של גוגל-כרום (79.0.3945.117-1) …
הגדרת גוגל-כרום יציב (79.0.3945.117-1) …
עדכון חלופות: שימוש / usr / bin / google-chrome-stable כדי לספק / usr / bin / x-www-browser (x-www-browser) במצב אוטומטי
חלופות עדכון: שימוש / usr / bin / google-chrome-stable כדי לספק / usr / bin / gnome-www-browser (gnome-www-browser) במצב אוטומטי
חלופות עדכון: שימוש / usr / bin / google-chrome-stable כדי לספק / usr / bin / google-chrome (google-chrome) במצב אוטומטי
עיבוד טריגרים לתפריטי גנום (3.13.3-11ubuntu2) …
עיבוד טריגרים עבור כלי שולחן עבודה-קבצים (0.23-3ubuntu2) …
עיבוד טריגרים לתמיכת mime (3.60ubuntu1) …
עיבוד טריגרים עבור man-db (2.8.4-2) …

שלב 5: בדוק את גרסת Chrome

כדי לאשר שההתקנה הסתיימה בהצלחה, בדוק את גרסת Google Chrome.

[מוגן בדוא”ל]: ~ $ google-chrome-stabile -version
Google Chrome 79.0.3945.117

אופציונלי: הפעל את Chrome ללא ראש

הרשה לי להראות לך דוגמא להפעלת כרום במצב ללא ראש.

אני ארוץ כרום במצב ללא ראש, וכל התוכן של https://gf.dev/ יישמר כקובץ PDF.

[מוגן בדוא”ל]: ~ $ google-chrome-stable – ללא ראש – ניתן להחיל-gpu – print-to-pdf https://gf.dev/
[0115 / 140930.772108: INFO: headless_shell.cc (620)] נכתב לפלט הקובץ. Pdf.

אתה יכול לראות קובץ output.pdf

[מוגן בדוא”ל]: ~ $ ls -l out *
-rw ——- 1 geekflare geekflare 80799 15 בינואר 14:09 output.pdf
[מוגן בדוא”ל]: ~ $

בשלב הבא, אראה לך כיצד לבצע את אותה ההתקנה במערכת CentOS.

התקנת כרום ב- CentOS

שלב 1: עדכן את CentOS

עדכן את מערכת CentOS באמצעות הפקודה שלהלן.

[[מוגן בדוא”ל] ~] עדכון $ sudo yum

שלב 2: צור מאגר Chrome

הוסף מאגר Chrome של Chrome למערכת. צור קובץ google-chrome.repo בתוך /etc/yum.repos.d/ והוסף את הפרטים שלהלן.

[[מוגן בדוא”ל] ~] $ sudo gedit /etc/yum.repos.d/google-chrome.repo

[גוגל כרום]
name = google-chrome
baseurl = http: //dl.google.com/linux/chrome/rpm/stable/$basearch
מופעל = 1
gpgcheck = 1
gpgkey = https: //dl-ssl.google.com/linux/linux_signing_key.pub

שלב 3: התקן את Chrome

הפעל את הפקודה yum למטה כדי להתקין את Chrome Chrome במערכת CentOS.

[[מוגן בדוא”ל] ~] $ sudo yum התקן יציב גוגל-כרום
בדיקת תפוגה של המטא נתונים האחרונים: 0:04:04 לפני יום רביעי 22 ינואר 2020 01:06:24 אחר הצהריים.
התלות נפתרה.
================================================== ==============================
גודל מאגר גרסאות קשת החבילה
================================================== ==============================
מתקין:
google-chrome-stabile x86_64 79.0.3945.130-1 google-chrome 60 M
התקנת תלות:
libXScrnSaver x86_64 1.2.3-1.el8 AppStream 31 k
libappindicator-gtk3 x86_64 12.10.0-19.el8 AppStream 43 k
libdbusmenu x86_64 16.04.0-12.el8 AppStream 140 k
libdbusmenu-gtk3 x86_64 16.04.0-12.el8 AppStream 41 k
libindicator-gtk3 x86_64 12.10.1-14.el8 AppStream 70 k
שחרור-גופנים noarch 1: 2.00.3-4.el8 BaseOS 19 k
שחרור-גופני serif-noarch 1: 2.00.3-4.el8 BaseOS 607 k

סיכום עסקה
================================================== ==============================
התקן 8 חבילות

גודל הורדה כולל: 60 מ ‘
גודל מותקן: 213 M
האם זה בסדר [y / N]: y
מוריד חבילות:
(1/8): libXScrnSaver-1.2.3-1.el8.x86_64.rpm 146 kB / s | 31 kB 00:00
(2/8): libappindicator-gtk3-12.10.0-19.el8.x86_ 171 kB / s | 43 kB 00:00
(3/8): libdbusmenu-gtk3-16.04.0-12.el8.x86_64.r 691 kB / s | 41 kB 00:00
(4/8): libindicator-gtk3-12.10.1-14.el8.x86_64. 558 kB / s | 70 kB 00:00
(5/8): שחרור-גופנים-2.00.3-4.el8.noarch.rpm 74 kB / s | 19 kB 00:00
(6/8): שחרור-serif-font-2.00.3-4.el8.noar 1.3 MB / s | 607 kB 00:00
(7/8): libdbusmenu-16.04.0-12.el8.x86_64.rpm 121 kB / s | 140 kB 00:01
(8/8): google-chrome-stable-79.0.3945.130-1.x86 8.4 MB / s | 60 מגה 00:07
——————————————————————————–
סה”כ 6.5 מגהבייט / שניות | 60 מגה 00:09
אזהרה: /var/cache/dnf/google-chrome-eb0d6f10ccbdafba/packages/google-chrome-stable-79.0.3945.130-1.x86_64.rpm: כותרת V4 DSA / SHA1 חתימה, מזהה מפתח 7fac5991: NOKEY
google-chrome 49 kB / s | 10 kB 00:00
ייבוא ​​מפתח GPG 0x7FAC5991:
תעודת זהות של המשתמש : "מפתח חתימה על חבילה לינוקס <[מוגן בדוא”ל]>"
טביעות אצבע: 4CCA 1EAF 950C EE4A B839 76DC A040 830F 7FAC 5991
מאת: https://dl-ssl.google.com/linux/linux_signing_key.pub
האם זה בסדר [y / N]: y
המפתח מיובא בהצלחה
ייבוא ​​מפתח GPG 0xD38B4796:
תעודת זהות של המשתמש : "Google Inc. (רשות חתימה על חבילות לינוקס) <[מוגן בדוא”ל]>"
טביעות אצבע: EB4C 1BFD 4F04 2F6D DDCC EC91 7721 F63B D38B 4796
מאת: https://dl-ssl.google.com/linux/linux_signing_key.pub
האם זה בסדר [y / N]: y
המפתח מיובא בהצלחה
הפעלת בדיקת עסקאות
בדיקת העסקה הצליחה.
מבחן עסקאות
מבחן העסקה הצליח.
מבצע עסקאות
מכין: 1/1
התקנה: libdbusmenu-16.04.0-12.el8.x86_64 1/8
התקנה: libdbusmenu-gtk3-16.04.0-12.el8.x86_64 2/8
התקנה: שחרור-serif-font-1: 2.00.3-4.el8.noarch 3/8
מתקין: שחרור-פונטים-1: 2.00.3-4.el8.noarch 4/8
התקנה: libindicator-gtk3-12.10.1-14.el8.x86_64 5/8
התקנה: libappindicator-gtk3-12.10.0-19.el8.x86_64 6/8
התקנה: libXScrnSaver-1.2.3-1.el8.x86_64 7/8
הפעלת scriptlet: google-chrome-stable-79.0.3945.130-1.x86_64 8/8
מתקין: google-chrome-stable-79.0.3945.130-1.x86_64 8/8
הפעלת scriptlet: google-chrome-stable-79.0.3945.130-1.x86_64 8/8
הפניה מחדש / bin / systemctl התחל atd.service

אימות: libXScrnSaver-1.2.3-1.el8.x86_64 1/8
אימות: libappindicator-gtk3-12.10.0-19.el8.x86_64 2/8
אימות: libdbusmenu-16.04.0-12.el8.x86_64 3/8
אימות: libdbusmenu-gtk3-16.04.0-12.el8.x86_64 4/8
אימות: libindicator-gtk3-12.10.1-14.el8.x86_64 5/8
אימות: שחרור-גופנים -1: 2.00.3-4.el8.noarch 6/8
אימות: שחרור-serif-font-1: 2.00.3-4.el8.noarch 7/8
אימות: google-chrome-stable-79.0.3945.130-1.x86_64 8/8

מותקן:
google-chrome-stable-79.0.3945.130-1.x86_64
libXScrnSaver-1.2.3-1.el8.x86_64
libappindicator-gtk3-12.10.0-19.el8.x86_64
libdbusmenu-16.04.0-12.el8.x86_64
libdbusmenu-gtk3-16.04.0-12.el8.x86_64
libindicator-gtk3-12.10.1-14.el8.x86_64
שחרור-גופנים -1: 2.00.3-4.el8.noarch
שחרור-serif-font-1: 2.00.3-4.el8.noarch

שלם!

שלב 4: בדוק את גרסת Chrome

כדי לאשר שההתקנה הסתיימה בהצלחה, בדוק את גרסת Google Chrome.

[[מוגן בדוא”ל] ~] $ google-chrome -version
Google Chrome 79.0.3945.130

אופציונלי: הפעל את Chrome ללא ראש

הרשה לי להראות לך דוגמא להפעלת כרום במצב ללא ראש ב- CentOS.

אני אקח את הדוגמא של לכידת צילום מסך. פקודה זו להלן תריץ כרום במצב חסר ראש, וכל התוכן של https://www.chromestatus.com/ יישמר כקובץ pdf..

[[מוגן בדוא”ל] ~] $ google-chrome-stable – ללא ראש – ניתן להחלפה-gpu – הדפס ל- pdf https://www.chromestatus.com/
[0122 / 131602.193881: INFO: headless_shell.cc (620)] נכתב לפלט הקובץ. Pdf.

נוצר קובץ output.pdf הכולל את כל התוכן של https://www.chromestatus.com/

[[מוגן בדוא”ל] ~] $ ls -l
סך הכל 61208
drwxr-xr-x. 2 geekflare geekflare 6 ספטמבר 25 11:49 שולחן עבודה
drwxr-xr-x. 2 geekflare geekflare 6 ספטמבר 25 11:49 מסמכים
drwxr-xr-x. 2 geekflare geekflare 6 ספטמבר 25 11:49 הורדות
-rw-rw-r–. 1 geekflare geekflare 180 ינואר 22 13:05 google-chrome.repo
-rw ——-. 1 geekflare geekflare 146776 22 ינואר 13:16 output.pdf

זה היה הכל איך להתקין את Chrome באובונטו & CentOS והפעל אותו במצב חסר ראש.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map