ติดตั้งแพคเกจ

เสร็จสมบูรณ์เมื่อ

การติดตั้งแพ็คเกจจาก แพ็คเกจ GitHub ช่วยให้คุณสามารถใช้ไลบรารี การขึ้นต่อกัน และอิมเมจคอนเทนเนอร์ที่โฮสต์บน GitHub ได้ คุณสามารถติดตั้งแพคเกจใดก็ได้ที่คุณ มีสิทธิ์ดู และใช้เป็นการพึ่งพาในโครงการของคุณ

การค้นพบแพ็คเกจ

แพ็คเกจ GitHub มีหลายวิธีในการค้นหาแพ็คเกจ:

ตัวเลือกการค้นหา

  • การค้นหาทั่วโลก: ค้นหาแพ็คเกจสาธารณะทั้งหมดบน GitHub
  • การค้นหาองค์กร: ค้นหาแพ็คเกจภายในองค์กรที่เฉพาะเจาะจง
  • การค้นหาที่เก็บ: เรียกดูแพคเกจที่เผยแพร่จากที่เก็บ
  • ตัวกรองประเภทแพคเกจ: กรองตาม npm, NuGet, Maven, Docker เป็นต้น

สําหรับรายละเอียด ดู การค้นหาแพคเกจ

ข้อมูลแพ็คเกจ

เมื่อคุณพบแพ็คเกจ หน้าแพ็คเกจ จะให้ข้อมูลที่จําเป็น:

  • คำอธิบาย: แพ็คเกจทําอะไรและวัตถุประสงค์
  • คําแนะนําในการติดตั้ง: วิธีเพิ่มแพ็คเกจในโครงการของคุณ
  • ประวัติเวอร์ชัน: เวอร์ชันที่พร้อมใช้งานและบันทึกประจํารุ่น
  • อ้าง อิง: แพคเกจที่จําเป็นและข้อจํากัดของเวอร์ชัน
  • ตัวอย่างการใช้งาน: ตัวอย่างโค้ดที่แสดงสถานการณ์ทั่วไป
  • ใบอนุญาต: เงื่อนไขทางกฎหมายสําหรับการใช้แพ็กเกจ
  • ดาวน์โหลดสถิติ: ติดตั้งแพ็คเกจกี่ครั้ง

แนวทางปฏิบัติที่ดีที่สุด: อ่านคําแนะนําในการติดตั้งและคําอธิบายของแพ็คเกจทุกครั้งก่อนการติดตั้งเพื่อทําความเข้าใจข้อกําหนด

ขั้นตอนการติดตั้ง

การติดตั้งแพ็คเกจเป็นไปตาม กระบวนการสองขั้นตอนที่สอดคล้องกัน โดยไม่คํานึงถึงชนิดของแพ็คเกจ:

1. ตรวจสอบสิทธิ์กับแพ็คเกจ GitHub

กําหนดค่าไคลเอ็นต์แพ็คเกจของคุณเพื่อรับรองความถูกต้องด้วยแพ็คเกจ GitHub โดยใช้ โทเค็นการเข้าถึงส่วนบุคคล (PAT) ที่มี read:packages ขอบเขต

ข้อกําหนดในการรับรองความถูกต้อง:

  • แพ็กเกจสาธารณะ: จําเป็นต้องมีการรับรองความถูกต้องแม้กระทั่งสําหรับแพ็คเกจสาธารณะ
  • แพ็คเกจส่วนตัว: ต้องมี PAT ที่มีการเข้าถึงที่เก็บที่เหมาะสม
  • แพ็คเกจองค์กร: อาจต้องเป็นสมาชิกองค์กร
  • แพ็คเกจภายใน: ใช้ได้เฉพาะภายในองค์กร GitHub Enterprise เท่านั้น

2. ติดตั้งแพ็คเกจ

ใช้ คําสั่งการติดตั้งดั้งเดิม ของไคลเอ็นต์แพ็คเกจของคุณ (npm install, dotnet add package, mvn install ฯลฯ) เพื่อเพิ่มแพ็คเกจลงในโครงการของคุณ

รายการตรวจสอบการติดตั้ง:

  • ตรวจสอบว่าชื่อแพ็คเกจและเวอร์ชันถูกต้อง
  • ตรวจสอบความเข้ากันได้กับเวอร์ชันเฟรมเวิร์กของโปรเจ็กต์ของคุณ
  • ตรวจสอบแผนผังการขึ้นต่อกันสําหรับข้อขัดแย้ง
  • ทดสอบการทํางานของแพ็คเกจหลังการติดตั้ง
  • อัปเดตเอกสารประกอบเพื่อแสดงการขึ้นต่อกันใหม่

การติดตั้งแพ็คเกจ NuGet

แพ็คเกจ NuGet สามารถติดตั้งได้โดยใช้ Visual Studio หรือ dotnet CLI

วิธีที่ 1: Visual Studio

Visual Studio มี อินเทอร์เฟซแบบกราฟิก สําหรับจัดการแพ็คเกจ NuGet:

  1. เปิดตัวจัดการแพ็คเกจ NuGet:

    • ขยาย โซลูชัน→โครงการ
    • คลิกขวาที่ การพึ่งพา
    • เลือก จัดการแพ็คเกจ NuGet...

    สกรีนช็อตของตัวเลือก Visual Studio สําหรับจัดการแพคเกจ NuGet

  2. เรียกดูและติดตั้ง:

    • คลิกแท็บเลือกหา
    • ค้นหาชื่อแพ็คเกจของคุณ
    • เลือกเวอร์ชันที่คุณต้องการ
    • คลิก ติดตั้ง

    สกรีนช็อตของวิธีการจัดการแพคเกจ NuGet ติดตั้ง และอัปเดตจาก Visual Studio

คุณสามารถเรียกดู ติดตั้ง และปรับปรุงการขึ้นต่อกันจาก รีจิสทรีหลายรายการ พร้อมกัน สําหรับข้อมูลเพิ่มเติม โปรดดู สร้างและลบการขึ้นต่อกันของโครงการ

วิธีที่ 2: การแก้ไข .csproj โดยตรง

คุณสามารถเพิ่มการอ้างอิงแพ็คเกจไปยังไฟล์โปรเจ็กต์ของคุณ ได้โดยตรง :

ขั้นตอนที่ 1: ตรวจสอบสิทธิ์กับแพ็กเกจ GitHub

สร้างหรืออัปเดตไฟล์ nuget.config ของคุณ (ดูรายละเอียดการรับรองความถูกต้องในส่วนการเผยแพร่)

ขั้นตอนที่ 2: เพิ่ม PackageReference

เพิ่ม ItemGroup ที่มี PackageReference ในไฟล์ .csproj ของคุณ:

<Project Sdk="Microsoft.NET.Sdk">

    <PropertyGroup>
        <OutputType>Exe</OutputType>
        <TargetFramework>net8.0</TargetFramework>
        <PackageId>OctocatApp</PackageId>
        <Version>1.0.0</Version>
        <Authors>Octocat</Authors>
        <Company>GitHub</Company>
        <PackageDescription>This package adds an Octocat!</PackageDescription>
        <RepositoryUrl>https://github.com/OWNER/REPOSITORY</RepositoryUrl>
    </PropertyGroup>

    <ItemGroup>
        <PackageReference Include="OctokittenApp" Version="12.0.2" />
    </ItemGroup>
</Project>

โน้ต

แทนที่ OctokittenApp ด้วยชื่อแพ็คเกจของคุณและ 12.0.2 ด้วยเวอร์ชันที่คุณต้องการใช้

ขั้นตอนที่ 3: กู้คืนแพ็กเกจ

ติดตั้งแพ็คเกจโดยใช้คําสั่ง restore

dotnet restore

วิธีที่ 3: การใช้ dotnet CLI

คุณสามารถติดตั้งแพ็คเกจโดยใช้คําสั่ง เพิ่ม dotnet :

dotnet add package OctokittenApp --version 12.0.2 --source github

แนวทางปฏิบัติที่ดีที่สุดสําหรับการติดตั้ง NuGet:

  • เวอร์ชันพิน: ระบุเวอร์ชันที่แน่นอนสําหรับบิลด์ที่ทําซ้ําได้
  • ใช้การจัดการแพ็คเกจส่วนกลาง: รวมรุ่นใน Directory.Packages.props
  • ตรวจสอบช่องโหว่: ตรวจสอบคําแนะนําด้านความปลอดภัยก่อนการติดตั้ง
  • ทดสอบความเข้ากันได้: ตรวจสอบให้แน่ใจว่าแพ็คเกจทํางานร่วมกับเฟรมเวิร์กเป้าหมายของคุณ

การติดตั้งแพ็คเกจ npm

แพคเกจ npm จําเป็นต้องกําหนดค่าไฟล์ .npmrc เพื่อระบุแพคเกจ GitHub เป็นรีจิสทรี

กําหนดค่าไฟล์ .npmrc

ขั้นตอนที่ 1: ตรวจสอบสิทธิ์กับแพ็กเกจ GitHub

สร้างหรืออัปเดตไฟล์ ~/.npmrc ของคุณด้วยโทเค็นการรับรองความถูกต้องของคุณ (ดูส่วนการเผยแพร่สําหรับรายละเอียดการรับรองความถูกต้อง)

ขั้นตอนที่ 2: สร้างโครงการ .npmrc

ใน ไดเรกทอรีเดียว กับไฟล์ package.json ให้สร้างหรือแก้ไขไฟล์ .npmrc ดังนี้

@OWNER:registry=https://npm.pkg.github.com

โน้ต

แทนที่ OWNER ด้วยชื่อของผู้ใช้หรือบัญชีองค์กรที่เป็นเจ้าของแพ็กเกจ

ขั้นตอนที่ 3: ยอมรับ .npmrc กับที่เก็บ

เพิ่มไฟล์ .npmrc ลงในที่เก็บของคุณเพื่อให้สมาชิกในทีมทุกคนใช้การกําหนดค่าเดียวกัน ดู การเพิ่มไฟล์ไปยังที่เก็บ

เพิ่มการพึ่งพา package.json

กําหนดค่า package.json เพื่อรวมแพคเกจเป็นการขึ้นต่อกัน:

{
  "name": "@my-org/server",
  "version": "1.0.0",
  "description": "Server app that uses the @octo-org/octo-app package",
  "main": "index.js",
  "author": "",
  "license": "MIT",
  "dependencies": {
    "@octo-org/octo-app": "1.0.0"
  }
}

ข้อกําหนดการพึ่งพา:

  • เวอร์ชันที่แน่นอน:"1.0.0" ติดตั้งเวอร์ชันเฉพาะ
  • ช่วงคาเร็ต:"^1.0.0" ติดตั้งการอัปเดตรอง/แพตช์ที่เข้ากันได้
  • ช่วงตัวหนอน:"~1.0.0" ติดตั้งการอัปเดตแพตช์ที่เข้ากันได้เท่านั้น
  • ล่าสุด:"latest" ติดตั้งเวอร์ชันใหม่ล่าสุด (ไม่แนะนําสําหรับการผลิต)

ติดตั้งแพ็คเกจ

เรียกใช้คําสั่ง npm install :

npm install

หรือติดตั้ง แพ็คเกจเฉพาะ:

npm install @octo-org/octo-app

หลายองค์กร

หากคุณต้องการติดตั้งแพคเกจจาก หลายองค์กร ให้เพิ่มบรรทัดเพิ่มเติมในไฟล์ .npmrc ของคุณ:

@first-org:registry=https://npm.pkg.github.com
@second-org:registry=https://npm.pkg.github.com
@third-org:registry=https://npm.pkg.github.com

แนวทางปฏิบัติที่ดีที่สุดสําหรับการติดตั้ง npm:

  • ใช้ package-lock.json: คอมมิตล็อกไฟล์เพื่อการติดตั้งที่สอดคล้องกันในสภาพแวดล้อมต่างๆ
  • การขึ้นต่อกันของการตรวจสอบ: เรียกใช้npm auditเพื่อตรวจสอบช่องโหว่
  • ใช้ npm ci: ในไปป์ไลน์ CI/CD ใช้สําหรับ npm ci การติดตั้งที่รวดเร็วและเชื่อถือได้มากขึ้น
  • ข้อจํากัดของเวอร์ชัน: ใช้ช่วงเวอร์ชันเชิงความหมายเพื่อสร้างสมดุลระหว่างความเสถียรและการอัปเดต
  • รีจิสทรีส่วนตัวก่อน: กําหนดค่าขอบเขตเพื่อตรวจสอบแพ็คเกจ GitHub ก่อน npm สาธารณะ

การติดตั้งในไปป์ไลน์ CI/CD

คุณสามารถติดตั้งแพ็คเกจในเวิร์กโฟลว์ GitHub Actions โดยใช้วิธีการเดียวกัน:

npm ในการดําเนินการ GitHub

- uses: actions/setup-node@v4
  with:
    node-version: "18"
    registry-url: "https://npm.pkg.github.com"
    scope: "@OWNER"
- run: npm ci
  env:
    NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}

การดําเนินการ NuGet ใน GitHub

- uses: actions/setup-dotnet@v4
  with:
    dotnet-version: "8.0.x"
    source-url: https://nuget.pkg.github.com/OWNER/index.json
  env:
    NUGET_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- run: dotnet restore

ประโยชน์ของ GITHUB_TOKEN:

  • ไม่ต้องใช้ PAT: พร้อมใช้งานโดยอัตโนมัติในเวิร์กโฟลว์
  • สิทธิ์ที่กําหนดขอบเขต: จํากัดเฉพาะการเข้าถึงที่เก็บของเวิร์กโฟลว์
  • การหมุนอัตโนมัติ: โทเค็นถูกสร้างขึ้นใหม่สําหรับการเรียกใช้เวิร์กโฟลว์แต่ละครั้ง
  • ยึด: ไม่เคยเปิดเผยในท่อนซุงหรือสิ่งประดิษฐ์

การแก้ไขปัญหาการติดตั้ง

ปัญหาทั่วไปและแนวทางแก้ไข:

ปัญหา สาเหตุ โซลูชัน
401 ไม่ได้รับอนุญาต PAT ขาดหายไปหรือไม่ถูกต้อง ตรวจสอบว่าโทเค็นมี read:packages ขอบเขต
404 ไม่พบ ชื่อแพคเกจหรือ URL รีจิสทรีไม่ถูกต้อง ตรวจสอบแพ็คเกจที่มีอยู่และเจ้าของถูกต้อง
403 ต้องห้าม ไม่ได้รับอนุญาตให้เข้าถึงแพ็คเกจ ขอสิทธิ์เข้าถึงหรือยืนยันการเป็นสมาชิกขององค์กร
ไม่พบเวอร์ชัน ไม่มีเวอร์ชันที่ร้องขอ ตรวจสอบเวอร์ชันที่มีในหน้าแพ็คเกจ
ความขัดแย้งของการขึ้นต่อกัน เวอร์ชันแพ็คเกจที่เข้ากันไม่ได้ อัปเดตการขึ้นต่อกันอื่นๆ หรือใช้การแก้ปัญหา

แหล่งข้อมูลเพิ่มเติม

สําหรับข้อมูลเพิ่มเติม โปรดดู: