• 今天补下之前在 ExternalProject 实践 留下的坑:如何下载第三方依赖。

    理清需求

    由于大家的需求很可能是不一致的,这里选一个比较通用的需求:下载第三方依赖压缩包,于是我们就需要下载压缩包文件到本地,验证文件签名,然后解压到指定目录。

    CMake 提供的命令

    我们要用到主要有以下两个命令:

    • file
      • DOWNLOAD:下载文件
      • INSTALL:安装文件到目录
      • READ:读取文件内容
      • REMOVE:删除文件
      • REMOVE_RECURSE:递归删除文件
      • MAKE_DIRECTORY:创建目录
    • cmake_parse_arguments:解析传入的函数参数
    • execute_pr
  • // 用reduce时:
        var arr = ["李","李","设","弟","弟","生","生","李"]; 
        function getRepeatNum(){ 
            return arr.reduce(function(prev,next){ 
                prev[next] = (prev[next] + 1) || 1; 
                return prev; 
            },{}); 
        } 
        console.log(getRepeatNum());
  • 参考资料

    • 你不知道的 useRef
    • React Hooks 详解 【近 1W 字】+ 项目实战

    问题产生

    在antd中想要在上层函数式组件获取到下级组件中的一些方法

    function Parent() {
     const childRef = useRef(null)
     return (
       <div>
         <Child ref=childRef />
       </div>
     )
    }
    
    // -------------------
    function Child(props, ref) {
      const [form] = Form.useForm
    • 生成 UUID
    cat /proc/sys/kernel/random/uuid
    • 创建配置文件
    mkdir -p /etc/v2ray
    vim /etc/v2ray/config.json
    • 配置文件内容
    {
        "inbounds": [
            {
                "port": 端口1,
                "protocol": "vmess",
                "settings": {
                    "clients": [
                        {
                            "id
  • 在操作Linux 系统时,往往会误删除一部分文件或者移除软件时将依赖的系统包个删除掉,而当时未发现。而后续在需要某些命令或者执行某些操作时才发现提示无此命令,例如Centos 下删除iptables,导致initscripts 这个包被删除掉,而这个包提供ifup,ifdown,两个命令,缺少该文件会导致网卡无法启动。如果仅因为缺少某个命令重装系统,成本太高。

    下面就是如何来解决这个问题,需要说明的时,下面的方法仅在服务器尚能正常运行且看可以访问网络的情况下才可使用。如果没有网络,那么需要先配置好网络。

    在Centos中,删除iptables 后,又重启了network服务后者服务器,就会发现