1 line
No EOL
16 KiB
JavaScript
1 line
No EOL
16 KiB
JavaScript
"use strict";(globalThis.webpackChunkwebsite=globalThis.webpackChunkwebsite||[]).push([[317,566],{4502(e,n,t){t.r(n),t.d(n,{assets:()=>u,contentTitle:()=>d,default:()=>x,frontMatter:()=>c,metadata:()=>i,toc:()=>h});const i=JSON.parse('{"id":"getting-started/installation","title":"Installation","description":"{{","source":"@site/content/getting-started/installation.mdx","sourceDirName":"getting-started","slug":"/getting-started/installation","permalink":"/docs/getting-started/installation","draft":false,"unlisted":false,"editUrl":"https://github.com/modernuo/ModernUO/tree/main/website/content/getting-started/installation.mdx","tags":[],"version":"current","sidebarPosition":1,"frontMatter":{"sidebar_position":1,"title":"Installation"},"sidebar":"docsSidebar","next":{"title":"Creating a Build","permalink":"/docs/getting-started/building"}}');var r=t(4848),s=t(8453),a=t(5103),l=t(3457),o=t(7293);const c={sidebar_position:1,title:"Installation"},d="Installation",u={},h=[];function m(e){const n={h1:"h1",header:"header",...(0,s.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.header,{children:(0,r.jsx)(n.h1,{id:"installation",children:"Installation"})}),"\n",(0,r.jsx)(a.A,{children:{windows:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("h3",{children:"Prerequisites"}),(0,r.jsxs)("ol",{children:[(0,r.jsxs)("li",{children:["Download and install the latest ",(0,r.jsx)("a",{href:"https://dotnet.microsoft.com/download/dotnet/10.0",children:".NET 10 SDK"})]}),(0,r.jsxs)("li",{children:["Download and install ",(0,r.jsx)("a",{href:"https://git-scm.com/download/win",children:"Git for Windows"})]}),(0,r.jsxs)("li",{children:["Install ",(0,r.jsx)("a",{href:"https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist",children:"Visual C++ Redistributable"})," (v14 or later)"]})]}),(0,r.jsx)(o.A,{type:"tip",children:(0,r.jsxs)("p",{children:["Use ",(0,r.jsx)("a",{href:"https://learn.microsoft.com/en-us/windows/terminal/install",children:"Windows Terminal"})," as your command prompt."]})}),(0,r.jsxs)("p",{children:[(0,r.jsx)("strong",{children:"Recommended IDEs:"})," ",(0,r.jsx)("a",{href:"https://visualstudio.microsoft.com/",children:"Visual Studio 2026+"}),", ",(0,r.jsx)("a",{href:"https://www.jetbrains.com/rider/",children:"JetBrains Rider 2025.3+"}),", or ",(0,r.jsx)("a",{href:"https://code.visualstudio.com/",children:"VS Code"})]}),(0,r.jsx)("h3",{children:"Install ModernUO"}),(0,r.jsxs)("ol",{children:[(0,r.jsx)("li",{children:"Navigate to the folder where you want to install ModernUO."}),(0,r.jsxs)("li",{children:["Using ",(0,r.jsx)("em",{children:"Windows Terminal"}),", run:"]})]}),(0,r.jsx)(l.A,{language:"bash",children:"git clone https://github.com/modernuo/modernuo\ncd modernuo"})]}),macos:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("h3",{children:"Prerequisites"}),(0,r.jsxs)("ol",{children:[(0,r.jsxs)("li",{children:["Download and install the latest ",(0,r.jsx)("a",{href:"https://dotnet.microsoft.com/download/dotnet/10.0",children:".NET 10 SDK"})]}),(0,r.jsxs)("li",{children:["Using ",(0,r.jsx)("em",{children:"terminal"}),", install ",(0,r.jsx)("a",{href:"https://brew.sh",children:"Homebrew"})," and dependencies:"]})]}),(0,r.jsx)(l.A,{language:"bash",children:'/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"\nbrew install git icu4c libdeflate argon2'}),(0,r.jsxs)("p",{children:[(0,r.jsx)("strong",{children:"Recommended IDEs:"})," ",(0,r.jsx)("a",{href:"https://www.jetbrains.com/rider/",children:"JetBrains Rider 2025.3+"})," or ",(0,r.jsx)("a",{href:"https://code.visualstudio.com/",children:"VS Code"})]}),(0,r.jsx)("h3",{children:"Install ModernUO"}),(0,r.jsx)("ol",{children:(0,r.jsxs)("li",{children:["Using ",(0,r.jsx)("em",{children:"terminal"}),", navigate to the folder where you want to install ModernUO and run:"]})}),(0,r.jsx)(l.A,{language:"bash",children:"git clone https://github.com/modernuo/modernuo\ncd modernuo"})]}),linux:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("h3",{children:"Prerequisites"}),(0,r.jsxs)("ol",{children:[(0,r.jsxs)("li",{children:["Download and install the latest ",(0,r.jsx)("a",{href:"https://docs.microsoft.com/en-us/dotnet/core/install/linux",children:".NET 10 SDK"})]}),(0,r.jsxs)("li",{children:["Using ",(0,r.jsx)("em",{children:"bash"}),", install git and dependencies:"]})]}),(0,r.jsx)("p",{children:(0,r.jsx)("strong",{children:"Debian / Ubuntu:"})}),(0,r.jsx)(l.A,{language:"bash",children:"sudo apt update && sudo apt install git libicu-dev libdeflate-dev libargon2-dev"}),(0,r.jsx)("p",{children:(0,r.jsx)("strong",{children:"Fedora:"})}),(0,r.jsx)(l.A,{language:"bash",children:"sudo dnf install git libicu libdeflate-devel libargon2-devel"}),(0,r.jsx)(o.A,{type:"note",children:(0,r.jsx)("p",{children:"The exact package names may vary by distribution. Consult your distribution's package manager documentation."})}),(0,r.jsxs)("p",{children:[(0,r.jsx)("strong",{children:"Recommended IDEs:"})," ",(0,r.jsx)("a",{href:"https://www.jetbrains.com/rider/",children:"JetBrains Rider 2025.3+"})," or ",(0,r.jsx)("a",{href:"https://code.visualstudio.com/",children:"VS Code"})]}),(0,r.jsx)("h3",{children:"Install ModernUO"}),(0,r.jsx)("ol",{children:(0,r.jsxs)("li",{children:["Using ",(0,r.jsx)("em",{children:"bash"}),", navigate to the folder where you want to install ModernUO and run:"]})}),(0,r.jsx)(l.A,{language:"bash",children:"git clone https://github.com/modernuo/modernuo\ncd modernuo"})]})}})]})}function x(e={}){const{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(m,{...e})}):m(e)}},7293(e,n,t){t.d(n,{A:()=>E});var i=t(6540),r=t(4848);function s(e){const{mdxAdmonitionTitle:n,rest:t}=function(e){const n=i.Children.toArray(e),t=n.find(e=>i.isValidElement(e)&&"mdxAdmonitionTitle"===e.type),s=n.filter(e=>e!==t),a=t?.props.children;return{mdxAdmonitionTitle:a,rest:s.length>0?(0,r.jsx)(r.Fragment,{children:s}):null}}(e.children),s=e.title??n;return{...e,...s&&{title:s},children:t}}var a=t(4164),l=t(1312),o=t(7559);const c="admonition_xJq3",d="admonitionHeading_Gvgb",u="admonitionIcon_Rf37",h="admonitionContent_BuS1";function m({type:e,className:n,children:t}){return(0,r.jsx)("div",{className:(0,a.A)(o.G.common.admonition,o.G.common.admonitionType(e),c,n),children:t})}function x({icon:e,title:n}){return(0,r.jsxs)("div",{className:d,children:[(0,r.jsx)("span",{className:u,children:e}),n]})}function f({children:e}){return e?(0,r.jsx)("div",{className:h,children:e}):null}function p(e){const{type:n,icon:t,title:i,children:s,className:a}=e;return(0,r.jsxs)(m,{type:n,className:a,children:[i||t?(0,r.jsx)(x,{title:i,icon:t}):null,(0,r.jsx)(f,{children:s})]})}function j(e){return(0,r.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,r.jsx)("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"})})}const g={icon:(0,r.jsx)(j,{}),title:(0,r.jsx)(l.A,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)",children:"note"})};function b(e){return(0,r.jsx)(p,{...g,...e,className:(0,a.A)("alert alert--secondary",e.className),children:e.children})}function v(e){return(0,r.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,r.jsx)("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})})}const w={icon:(0,r.jsx)(v,{}),title:(0,r.jsx)(l.A,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)",children:"tip"})};function A(e){return(0,r.jsx)(p,{...w,...e,className:(0,a.A)("alert alert--success",e.className),children:e.children})}function y(e){return(0,r.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,r.jsx)("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})})}const N={icon:(0,r.jsx)(y,{}),title:(0,r.jsx)(l.A,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)",children:"info"})};function T(e){return(0,r.jsx)(p,{...N,...e,className:(0,a.A)("alert alert--info",e.className),children:e.children})}function I(e){return(0,r.jsx)("svg",{viewBox:"0 0 16 16",...e,children:(0,r.jsx)("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"})})}const V={icon:(0,r.jsx)(I,{}),title:(0,r.jsx)(l.A,{id:"theme.admonition.warning",description:"The default label used for the Warning admonition (:::warning)",children:"warning"})};function C(e){return(0,r.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,r.jsx)("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})})}const S={icon:(0,r.jsx)(C,{}),title:(0,r.jsx)(l.A,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)",children:"danger"})};const k={icon:(0,r.jsx)(I,{}),title:(0,r.jsx)(l.A,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)",children:"caution"})};const D={...{note:b,tip:A,info:T,warning:function(e){return(0,r.jsx)(p,{...V,...e,className:(0,a.A)("alert alert--warning",e.className),children:e.children})},danger:function(e){return(0,r.jsx)(p,{...S,...e,className:(0,a.A)("alert alert--danger",e.className),children:e.children})}},...{secondary:e=>(0,r.jsx)(b,{title:"secondary",...e}),important:e=>(0,r.jsx)(T,{title:"important",...e}),success:e=>(0,r.jsx)(A,{title:"success",...e}),caution:function(e){return(0,r.jsx)(p,{...k,...e,className:(0,a.A)("alert alert--warning",e.className),children:e.children})}}};function E(e){const n=s(e),t=(i=n.type,D[i]||(console.warn(`No admonition component found for admonition type "${i}". Using Info as fallback.`),D.info));var i;return(0,r.jsx)(t,{...n})}},9365(e,n,t){t.d(n,{A:()=>a});t(6540);var i=t(4164);const r="tabItem_Ymn6";var s=t(4848);function a({children:e,hidden:n,className:t}){return(0,s.jsx)("div",{role:"tabpanel",className:(0,i.A)(r,t),hidden:n,children:e})}},1470(e,n,t){t.d(n,{A:()=>N});var i=t(6540),r=t(4164),s=t(7559),a=t(3104),l=t(6347),o=t(205),c=t(7485),d=t(1682),u=t(679);function h(e){return i.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||(0,i.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)})?.filter(Boolean)??[]}function m(e){const{values:n,children:t}=e;return(0,i.useMemo)(()=>{const e=n??function(e){return h(e).map(({props:{value:e,label:n,attributes:t,default:i}})=>({value:e,label:n,attributes:t,default:i}))}(t);return function(e){const n=(0,d.XI)(e,(e,n)=>e.value===n.value);if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map(e=>e.value).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e},[n,t])}function x({value:e,tabValues:n}){return n.some(n=>n.value===e)}function f({queryString:e=!1,groupId:n}){const t=(0,l.W6)(),r=function({queryString:e=!1,groupId:n}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!n)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:e,groupId:n});return[(0,c.aZ)(r),(0,i.useCallback)(e=>{if(!r)return;const n=new URLSearchParams(t.location.search);n.set(r,e),t.replace({...t.location,search:n.toString()})},[r,t])]}function p(e){const{defaultValue:n,queryString:t=!1,groupId:r}=e,s=m(e),[a,l]=(0,i.useState)(()=>function({defaultValue:e,tabValues:n}){if(0===n.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(e){if(!x({value:e,tabValues:n}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${e}" but none of its children has the corresponding value. Available values are: ${n.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return e}const t=n.find(e=>e.default)??n[0];if(!t)throw new Error("Unexpected error: 0 tabValues");return t.value}({defaultValue:n,tabValues:s})),[c,d]=f({queryString:t,groupId:r}),[h,p]=function({groupId:e}){const n=function(e){return e?`docusaurus.tab.${e}`:null}(e),[t,r]=(0,u.Dv)(n);return[t,(0,i.useCallback)(e=>{n&&r.set(e)},[n,r])]}({groupId:r}),j=(()=>{const e=c??h;return x({value:e,tabValues:s})?e:null})();(0,o.A)(()=>{j&&l(j)},[j]);return{selectedValue:a,selectValue:(0,i.useCallback)(e=>{if(!x({value:e,tabValues:s}))throw new Error(`Can't select invalid tab value=${e}`);l(e),d(e),p(e)},[d,p,s]),tabValues:s}}var j=t(2303);const g="tabList__CuJ",b="tabItem_LNqP";var v=t(4848);function w({className:e,block:n,selectedValue:t,selectValue:i,tabValues:s}){const l=[],{blockElementScrollPositionUntilNextRender:o}=(0,a.a_)(),c=e=>{const n=e.currentTarget,r=l.indexOf(n),a=s[r].value;a!==t&&(o(n),i(a))},d=e=>{let n=null;switch(e.key){case"Enter":c(e);break;case"ArrowRight":{const t=l.indexOf(e.currentTarget)+1;n=l[t]??l[0];break}case"ArrowLeft":{const t=l.indexOf(e.currentTarget)-1;n=l[t]??l[l.length-1];break}}n?.focus()};return(0,v.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,r.A)("tabs",{"tabs--block":n},e),children:s.map(({value:e,label:n,attributes:i})=>(0,v.jsx)("li",{role:"tab",tabIndex:t===e?0:-1,"aria-selected":t===e,ref:e=>{l.push(e)},onKeyDown:d,onClick:c,...i,className:(0,r.A)("tabs__item",b,i?.className,{"tabs__item--active":t===e}),children:n??e},e))})}function A({lazy:e,children:n,selectedValue:t}){const s=(Array.isArray(n)?n:[n]).filter(Boolean);if(e){const e=s.find(e=>e.props.value===t);return e?(0,i.cloneElement)(e,{className:(0,r.A)("margin-top--md",e.props.className)}):null}return(0,v.jsx)("div",{className:"margin-top--md",children:s.map((e,n)=>(0,i.cloneElement)(e,{key:n,hidden:e.props.value!==t}))})}function y(e){const n=p(e);return(0,v.jsxs)("div",{className:(0,r.A)(s.G.tabs.container,"tabs-container",g),children:[(0,v.jsx)(w,{...n,...e}),(0,v.jsx)(A,{...n,...e})]})}function N(e){const n=(0,j.A)();return(0,v.jsx)(y,{...e,children:h(e.children)},String(n))}},5103(e,n,t){t.d(n,{A:()=>a});var i=t(1470),r=t(9365),s=t(4848);function a({children:e}){const n=function(){if("undefined"==typeof navigator)return"linux";const e=(navigator.platform??"").toLowerCase(),n=navigator.userAgent.toLowerCase();return e.startsWith("win")||n.includes("windows")?"windows":e.startsWith("mac")||n.includes("macintosh")?"macos":"linux"}();return(0,s.jsxs)(i.A,{groupId:"os",defaultValue:n,children:[e.windows&&(0,s.jsx)(r.A,{value:"windows",label:"Windows",children:e.windows}),e.macos&&(0,s.jsx)(r.A,{value:"macos",label:"macOS",children:e.macos}),e.linux&&(0,s.jsx)(r.A,{value:"linux",label:"Linux",children:e.linux})]})}}}]); |